File: post_champ.capy

package info (click to toggle)
aster 11.5.0%2Bdfsg2-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 549,416 kB
  • ctags: 157,865
  • sloc: f90: 744,073; ansic: 228,936; python: 108,350; makefile: 38; sh: 31
file content (136 lines) | stat: -rwxr-xr-x 6,654 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#            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: 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",)},
                 fr="extraction de champs sur un sous-point. ",

         regles=(UN_PARMI('EXTR_COQUE','EXTR_TUYAU','EXTR_PMF','MIN_MAX_SP','COQU_EXCENT'),
                 EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
                        'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS',),
                 ),

         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 :
#====
         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='**' ),
         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',),),
         ),


#====
# 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='**'),
         MAILLE     =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),



#====
# 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',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" ),
           NIVE_COUCHE  =SIMP(statut='o',typ='TXM',into=("SUP","INF","MOY"),
                             fr="position dans l'épaisseur de la couche" ),
           ),


#====
# 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',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" ),
           NIVE_COUCHE  =SIMP(statut='o',typ='TXM',into=("SUP","INF","MOY"),
                             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" ),
           ),


#====
# 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 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 multifibre" ),
           ),


#====
# 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=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",),
           ),


#====
# 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",),),
           ),
      )