Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2012:02_20

Commit 2012-02-20

Définition d'une interaction de contact XFEM. Pour le moment c'est uniquement du contact sans frottement rigide défo

Le fonctionnement est très similaire à celui de l'interaction de forces imposées. Le contact est appliqué sous forme de pression de contact. La frontière matière est décrite par un élément 1D sur lequel sont définis des points de Gauss. Lorsque la frontière matière passe de l'autre coté de l'outil, on définit une pénétration en chaque point de Gauss de l'élement 1D. La pression à intégrer sur le point de Gauss est vue comme le produit entre la pénétration et un coefficient de pénalité “surfacique”. Puis on intègre sur les noeuds du quadrangle en utilisant les points de Gauss de l'élément 1D.

Implémentation numérique

  • Elément de contact XFEM (XFEMContactElement): C'est de nouveau un élément 2D (étant donné que les forces résultant du contact sont appliquées sur les 4 noeuds de l'élément) dans lequel un élement 1D est disponible pour l'intégration d'une pression de contact sur la frontière.
  • Elément 1D d'intégration (XFEM1DContactElement) : Cet élément permet d'intégrer les pressions de contact.
  • Interaction de contact (XFEMContactInteraction) : Le fonctionnement est similaire à celui utilisé de manière standard dans Metafor.
  • Point de Gauss de contact (XFEMContactGpState) : Un GpState qui est voué a évoluer. Pour l'instant il ne comprend que la pénétration normale, mais quand je vais commencer à coder le frottement j'en aurais surement besoin.

Mise en forme du jeu de donnée

Le “XFEMContactElement” prend en propriétés XPENALITE_NORMALE (coefficient de pénalité normale) et XNPG (nombre de points de Gauss utilisés pour l'intégration des conditions limites de pression).

    
    prp2 = ElementProperties(XFEMContactElement)
    prp2.put(XPENALITE_NORMALE, 1.e18)
    prp2.put(XNPG, 2)

Le “XFEMContactInteraction” est définit comme l'interaction de contact classique de metafor (un outil, puis des lignes suceptibles de rentrer en contact) :

    load = XFEMContactInteraction(2)
    load.setTool(Cset(9))
    load.push(Cset(1))
    load.push(Cset(2))
    load.addProperty(prp2)
    domain.getInteractionSet().add(load)

Ou Cset(1) et Cset(2) sont les curves pour lesquelles le contact est recherché.

Pour le moment, le XFEMContactInteraction ne fonctionne que si un XFEMFieldApplicator avec un UserNo de 1 est utilisé

Fichiers ajoutés

[a]:oo_meta/XFEM/XFEMContactElement.h
[a]:oo_meta/XFEM/XFEMContactElement.cpp
[a]:oo_meta/XFEM/XFEM1DContactElement.h
[a]:oo_meta/XFEM/XFEM1DContactElement.cpp
[a]:oo_meta/XFEM/XFEMContactInteraction.h
[a]:oo_meta/XFEM/XFEMContactInteraction.cpp
[a]:oo_meta/XFEM/XFEMContactGpState.h
[a]:oo_meta/XFEM/XFEMContactGpState.cpp
[a]:oo_meta/apps/xfem/cont.py
commit/2012/02_20.txt · Last modified: 2016/03/30 15:23 (external edit)