Salome HOME
PN
[tools/eficas.git] / Minicode / homard_cata_V6n.py
1
2 # --------------------------------------------------
3 # debut entete
4 # --------------------------------------------------
5
6 import Accas
7 from Accas import *
8
9 #CONTEXT.debug=1
10
11 JdC = JDC_CATA(code='HOMARD',
12                execmodul=None,
13                regles = (AU_MOINS_UN('DONNEES_HOMARD'),),
14                         )
15
16 # Type le plus general
17 #class entier  (ASSD):pass
18 #class reel    (ASSD):pass
19 #class complexe(ASSD):pass
20 #class liste   (ASSD):pass
21 #class chaine  (ASSD):pass
22
23 # Types geometriques
24 #class no  (GEOM):pass
25 #class grno(GEOM):pass
26 #class ma  (GEOM):pass
27 #class grma(GEOM):pass
28
29 # --------------------------------------------------
30 # fin entete
31 # --------------------------------------------------
32
33 def bloc_maj_champ():
34     return BLOC(condition = "( RAFFINEMENT != None ) or ( DERAFFINEMENT != None ) ",
35                 fr="Nom MED du maillage en sortie, numero d'iteration et mise à jour de champs",
36                 ang="MED name of the out-mesh, iteration rank and field updating",
37                 NITER =SIMP(statut='o',typ='I',
38                            fr="Numéro d'itération avant l'adaptation.",
39                            ang="Iteration number before adaptation." ),
40                 NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM',
41                            fr="Nom MED du maillage en sortie",
42                            ang="MED name of the out-mesh" ),
43                 FICHIER_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM',
44                            fr="Nom du fichier MED du maillage en sortie",
45                            ang="MED file name of the out-mesh" ),
46            ) 
47
48 def critere_de_deraffinement():
49    return BLOC(condition = "( DERAFFINEMENT == 'LIBRE' ) ",
50                fr="Critère de déraffinement.",
51                ang="Unrefinement threshold.",
52                regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
53                CRIT_DERA_ABS =SIMP(statut='f',typ='R' ,
54                                    fr="Critère absolu",
55                                    ang="Absolute threshold" ),
56                CRIT_DERA_REL   =SIMP(statut='f',typ='R',
57                                      fr="Critère relatif",
58                                      ang="Relative threshold" ),
59                CRIT_DERA_PE    =SIMP(statut='f',typ='R',
60                                      fr="Pourcentage d'éléments",
61                                      ang="Percentage of elements" ),
62           )
63
64 TEST=PROC(nom="TEST",op= 189, docu="U7.04.01-b",
65           fr="Imprime le fichier de configuration de HOMARD.",
66        TRAITEMENT      =FACT(statut='o',
67           regles=( UN_PARMI('TYPE_RAFFINEMENT_LIBRE','TYPE_RAFFINEMENT_UNIFORME'),),
68           TYPE_RAFFINEMENT_LIBRE = FACT(statut='f',
69                                    RAFFINEMENT   = SIMP(statut='o',typ='TXM',
70                                                     fr="Choix du mode de raffinement.",
71                                                     ang="Choice of refinement mode.",
72                                                     into=("LIBRE","UNIFORME",),
73                                                    ),
74                                    DERAFFINEMENT = SIMP(statut='o',typ='TXM',
75                                                     fr="Choix du mode de deraffinement.",
76                                                     ang="Choice of unrefinement mode.",
77                                                     into=("LIBRE",), 
78                                                    ),
79                                    b_iteration_maj_champ =bloc_maj_champ(),
80                                    b_critere_de_deraffinement =critere_de_deraffinement(),
81                                    ),
82
83            TYPE_RAFFINEMENT_UNIFORME = FACT(statut='f',
84                                        RAFFINEMENT   = SIMP(statut='o',typ='TXM',
85                                                        fr="Choix du mode de raffinement.",
86                                                        ang="Choice of refinement mode.",
87                                                        into=("NON","NON-CONFORME","NON-CONFORME-INDICATEUR"),
88                                                        ),
89                                        DERAFFINEMENT = SIMP(statut='o',typ='TXM',
90                                                        fr="Choix du mode de deraffinement.",
91                                                        ang="Choice of unrefinement mode.",
92                                                        into=("UNIFORME","NON",),
93                                                        ),
94                                        b_iteration_maj_champ =bloc_maj_champ(),
95                                        b_critere_de_deraffinement =critere_de_deraffinement(),
96                                        ),
97        ),
98 );
99
100 DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b",
101             UIinfo={"groupes":("Fonction",)},
102                     fr="Imprime le fichier de configuration de HOMARD.",
103                     ang="Writes the configuration file for HOMARD.",
104 # 3. Le type de traitement :
105 #
106        TRAITEMENT      =FACT(statut='o',
107 #
108 # 3.1. DEUX CHOIX EXCLUSIFS :
109 #
110 #      A. ADAPTATION AVEC DES VARIANTES SUR LE MODE DE RAFFINEMENT/DERAFFINEMENT
111 #         . RAFFINEMENT ET DERAFFINEMENT
112 #         . RAFFINEMENT SEUL
113 #         . DERAFFINEMENT SEUL
114 #
115          regles=( AU_MOINS_UN('TYPE_RAFFINEMENT_LIBRE','TYPE_RAFFINEMENT_UNIFORME'),
116                   EXCLUS('TYPE_RAFFINEMENT_LIBRE','TYPE_RAFFINEMENT_UNIFORME'),),
117            TYPE_RAFFINEMENT_LIBRE = FACT(statut='f',
118                 RAFFINEMENT      = SIMP(statut='o',typ='TXM',     
119                                  position='global',
120                                  fr="Choix du mode de raffinement.",
121                                  ang="Choice of refinement mode.",
122                                  into=("LIBRE","UNIFORME",) ),
123                 DERAFFINEMENT = SIMP(statut='o',typ='TXM',     
124                                  position='global',
125                                  fr="Choix du mode de deraffinement.",
126                                  ang="Choice of unrefinement mode.",
127                                  into=("LIBRE",), ),),
128            TYPE_RAFFINEMENT_UNIFORME = FACT(statut='f',
129                 RAFFINEMENT      = SIMP(statut='o',typ='TXM',     
130                                  fr="Choix du mode de raffinement.",
131                                  ang="Choice of refinement mode.",
132                                  into=("NON","NON-CONFORME","NON-CONFORME-INDICATEUR") ),
133                 DERAFFINEMENT = SIMP(statut='o',typ='TXM',     
134                                  fr="Choix du mode de deraffinement.",
135                                  ang="Choice of unrefinement mode.",
136                                  into=("UNIFORME","NON",), ),),
137 #
138            b_iteration_maj_champ =BLOC(condition = "( RAFFINEMENT != None ) or ( DERAFFINEMENT != None ) ",
139            #b_iteration_maj_champ =BLOC(condition = "(TYPE_RAFFINEMENT_UNIFORME != None) or (TYPE_RAFFINEMENT_LIBRE != None)",
140                            fr="Nom MED du maillage en sortie, numero d'iteration et mise à jour de champs",
141                            ang="MED name of the out-mesh, iteration rank and field updating",
142                            NITER                =SIMP(statut='o',typ='I',
143                            fr="Numéro d'itération avant l'adaptation.",
144                            ang="Iteration number before adaptation." ),
145                            NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM',
146                            fr="Nom MED du maillage en sortie",
147                            ang="MED name of the out-mesh" ),
148                            FICHIER_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM',
149                            fr="Nom du fichier MED du maillage en sortie",
150                            ang="MED file name of the out-mesh" ),
151                            ) ,
152 #
153            b_critere_de_deraffinement =BLOC ( condition = "( DERAFFINEMENT == 'LIBRE' ) ",
154                            fr="Critère de déraffinement.",
155                            ang="Unrefinement threshold.",
156                            regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
157                            CRIT_DERA_ABS   =SIMP(statut='f',typ='R' ,
158                                                  fr="Critère absolu",
159                                                  ang="Absolute threshold" ),
160                            CRIT_DERA_REL   =SIMP(statut='f',typ='R',
161                                                  fr="Critère relatif",
162                                                  ang="Relative threshold" ),
163                            CRIT_DERA_PE    =SIMP(statut='f',typ='R',
164                                                  fr="Pourcentage d'éléments",
165                                                  ang="Percentage of elements" ),
166                            ) ,
167 #
168      ),
169 );