Un nouveau catalogue pour ajouter des lois de comportement encore plus simplement

23 juillet 2008

L’objectif principal est de rendre la programmation des lois de comportement plus
modulaire et plus maintenable, de manière à ce qu’un développeur
n’ait qu’à écrire une routine Fortran et un catalogue simple pour ajouter
une nouvelle loi dans Aster.

Pour cela, on a écrit, pour chacun des 145 comportements actuels, un catalogue qui regroupe les
informations de manière centralisée (on retrouve les informations de la doc U4.51.11).

Par exemple :

loi = LoiComportement(
  doc            =  """
Relation de comportement anisotrope du béton
avec endommagement [R7.01.09].
Il s'agit d'une modélisation locale d'endommagement
prenant en compte la refermeture des fissures.
""",
  nom            = 'ENDO_ORTH_BETON',    
  num_lc         = 7,
  nb_vari        = 7,
  nom_vari       = ('ENDO_XX','ENDO_YY','ENDO_ZZ','ENDO_XY','ENDO_XZ','ENDO_YZ','ENDOCOMP'),
  mc_mater       = ('ELAS', 'ENDO_ORTH_BETON', 'NON_LOCAL'),
  modelisation   = ('3D', 'AXIS', 'D_PLAN','GRADEPSI'),
  deformation    = ('PETIT', 'PETIT_REAC', 'EULER_ALMANSI','REAC_GEOM', 'GREEN','GREEN_GR'),
  nom_varc       = ('TEMP', 'SECH', 'HYDR'),
  schema         = ('IMPLICITE',),
  type_matr_tang = ('PERTURBATION', 'VERIFICATION'),)

dans lequel on définit :

  • le nom du comportement,
  • un numéro permettant l’association à la routine fortran lc00xx.f,
  • les noms des variables internes,
  • les mots-clés utilisés dans DEFI_MATERIAU,
  • les types de déformations autorisés,
  • les variables de commandes utilisables,
  • les types de matrices tangentes possibles.

Impact utilisateur :

AUCUN !

Le découpage local du pas de
temps, par ITER_INTE_PAS, est disponible pour tous les comportements, sauf SIMO_MIEHE.

Attention, le
redécoupage local aide à la convergence de l’intégration du comportement, et améliore la
précision, mais conduit à une matrice tangente moins efficace.

Impact développeur :

Pour développer une nouvelle loi, il suffit de :

  • créer son catalogue, choisir un numéro de LC
  • ajouter son nom dans c_comp_incr.capy
  • créer la routine lc00xx (à partir de l’existant). Si on utilise PLASTI, on peut directement prendre LC0030. Si on utilise PLASTI (IMPLICITE) + RUNGE_KUTTA_2 (EXPLICITE), on peut prendre LC0032.

Par contre, les comportements dont les routines ne sont pas appelées par nmcomp (THM,
poutres, discrets) bénéficient bien sûr du catalogue, mais pas (encore) de la
généralité des routines LC0000.

Disponible à partir de la version 9.3.3.

Voir aussi : Intégrer un nouveau comportement