5. Ajout d’un nouveau chargement#

Les chargements au sens de Code_Aster se scindent en deux directives distinctes dans EPX: LINK et CHAR. Le catalogue de traduction suit cette règle en séparant les chargements et les liaisons dans deux dictionnaires différents: cata_liais et cata_char.

5.1. Ajout d’une liaison#

5.1.1. Dictionnaire des liaisons#

Pour ajouter une nouvelle liaison il faut dupliquer un couple clé/valeur du dictionnaire cata_liais.

cata_liais = {

“DDL_IMPO” : {

“MOT_CLE_EPX”: [“BLOQ”,”DEPL”],

# le choix entre BLOQ et DEPL est fait en dur dans calc_epx_char

# il est fait selon la présence d’une fonction ou non

# si fonction => DEPL , sinon BLOQ

“ASTER” : [“DX”, “DY”, “DZ”, “DRX”, “DRY”, “DRZ”],

“EPX” : [“1”, “2”, “3”, “4”, “5”, “6”],

“ENTITE” : [“GROUP_MA”, “GROUP_NO”],

“NB_CLE_MAX” : {“BLOQ” : 6,

“DEPL” : 1,

},

“VALE_IMPO” : {“BLOQ” : 0.,

“DEPL” : None,

},

“FONC_MULT” : {“BLOQ” : False,

“DEPL” : True,

},

},

“RELA_CINE_BP”: {

“MOT_CLE_EPX”: [“LCAB”],

“ASTER”: [“CABLE_BP”],

“EPX”: None,

“MOT_CLE_VERIF”: [“SIGM_BPEL”, “RELA_CINE”, “TYPE_EPX”],

“VALE_VERIF”: [“NON”, “OUI”, [“ADHE”, “GLIS”, “FROT”]],

“FONC_MULT”: False,

},

“LIAISON_MAIL” : {

“MOT_CLE_EPX”: [“RELA”],

“FONC_MULT”: False,

},

}

5.1.2. Étapes#

  1. Remplacer le nom de la clé par le nom du mot-clé de AFFE_CHAR_MECAà ajouter.

  2. Indiquer dans “MOT_CLE_EPX’le nom de la ou les liaisons correspondantes dans EPX. La valeur doit être une liste, le plus souvent constituée d’un seul élément. Plusieurs éléments présents dans la liste indiquent que le mot-clé peut correspondre à plusieurs liaisons dans EPX. La marche à suivre dans ce cas est décrite en 5.3 .

Quand “MOT_CLE_EPX” prend la valeur RELA, comme pour LIAISON_MAIL, CALC_EUROPLEXUS va traduire la liste de relations contenue dans une table attachée au concept char_meca. On ne suit pas ensuite les autres points (sauf le point 8). Un branchement sera par contre nécessaire dans AFFE_CHAR_MECA pour que la table contenant les relations soit créée (voir la routine bibfor/load/calirc.F90).

  1. Indiquer dans “ASTER” la liste des mots-clés à traduire.

  2. Indiquer dans “EPX” la liste des traductions de ces mots-clés. Indiquer None si la syntaxe EPX de la liaison ne permet pas de rentrer dans ce cadre (attention ce n’est possible que si la liste “ASTER” n’a qu’un élément).

  3. Indiquer dans “ENTITE” les mots-clés (parmi GROUP_MA et GROUP_NO) pouvant décrire l’ensemble sur lequel s’applique la liaison. Ne pas indiquer ce mot-clé si les syntaxes Code_Aster et/ou EPX ne rentrent pas dans ce cadre.

  4. Si la liste “ASTER” est supérieure à 1, indiquer dans “NB_CLE_MAX” le nombre de mots-clés de cette liste pouvant être présents dans une même occurrence de la liaison. Si ce nombre est 1, il n’est pas nécessaire d’indiquer cette clé, c’est la valeur par défaut.

  5. Si les valeurs prises par les mots-clés de la liste “ASTER” sont imposées, indiquer cette valeur dans “VALE_IMPO”.

  6. Indiquer dans “FONC_MULT” si la liaison doit être accompagnée d’une fonction multiplicatrice (True/False).

  7. Indiquer dans “MOT_CLE_VERIF” les mots-clés dont on doit seulement vérifier la valeur, s’il en existe.

  8. Indiquer dans “VALE_VERIF” au même indice les valeurs que doivent prendre les mots-clés.

  9. Chaque mot-clé présent dans l’occurrence de la liaison Code_Aster doit se trouver dans une les listes “ASTER”, “ENTITE’ou “MOT_CLE_VERIF”. Cela empêche l’utilisateur d’utiliser des mots-clés non pris en compte sans qu’il en soit averti.

  10. Si besoin, indiquer dans “COEF_MULT” le coefficient par lequel doivent être multipliées les valeurs issues de Code_Aster lors de la traduction dans EPX.

5.2. Ajout d’un chargement#

5.2.1. Dictionnairedes chargements#

Pour ajouter un nouveau chargement, il faut dupliquer un couple clé/valeur du dictionnaire cata_char. On donne ici une clé de ce dictionnaire:

cata_charge = {

“FORCE_COQUE” : {

“TYPE_CHAR” : “FACTO”,

“MOT_CLE_EPX”: [“PRES COQU”],

“ASTER” : [“PRES”],

“EPX” : None,

“COEF_MULT” : -1,

“ENTITE” : [“GROUP_MA”],

},

}

5.2.2. Étapes#

Les étapes sont exactement les mêmes que pour une liaison à deux exceptions près:

  1. Indiquer dans “TYPE_CHAR”, le type EPX du chargement (FACTO ou CONST). Dans le cas FACTO, le chargement doit être accompagné d’une fonction multiplicatrice, mais pas dans le cas CONST.

  2. Ne pas donner le mot-clé “FONC_MULT” puisqu’il est sous-entendu par le type de chargement.

5.3. Traitement des choix multiples#

Il peut arriver qu’un chargement ou une liaison de Code_Aster puisse correspondre à plusieurs chargements ou liaisons dans EPX.

Tout d’abord il faut identifier ce qui va déterminer quelle possibilité est retenue. L’analyse de ce critère et le choix qui en découle doivent être programmés en dur dans le module calc_epx_char.py dans la routine export_charge après la liste de code:

if len(mot_cle_epx) > 1:

Le dictionnaire doit ensuite être adapté à ces multiples possibilités avec la logique suivante. Chaque clé dont la valeur n’est pas identique pour chacun des cas doit être un dictionnaire dont les clés sont les différents noms des chargements ou liaisons possibles et dont les valeurs sont les valeurs souhaitées pour la clé en question. La liaison DDL_IMPO en est une illustration.