Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2012:02_01

Commit 2012-02-01

  • Mise au propre des forces imposées avec la création d'une interaction dédiée.
  • Correction des alertes données par chkrep.py dans la librairie et les cas test XFEM

Implémentation numérique

Mon élément XFEM commencait à ressembler a un fourre-tout (calcul des forces internes, des forces externes, debut du gestion de contact, etc.). Meme moi je me perdais dans le code que j'avais écrit donc j'ai essayé de remettre ca au propre :

  • Creation d'un élément de traction XFEM (XFEMTractionElement): C'est un élément 2D (etant donné que les forces appliquées par l'intermédiaire d'une pression sur la frontière de la matière dans l'élément fini sont réparties sur les 4 noeuds de l'élément) dans lequel un élement 1D est disponible pour l'intégration de la pression sur la frontière (cf. Commit 2011-12-13).
  • Création d'un élément 1D d'intégration nommé “XFEMLoadingElement” (celui qui était définit dans le dernier commit comme un XFEMTractionElement).
  • Création d'une interaction de contact “XFEMLoadingInteraction” : Le fonctionnement est similaire à celui utilisé de manière standard dans Metafor.

La frontière de chargement n'est plus décrite par une level set. Dans le cas ou la frontière de chargement coupe un élément enrichi, des points d'intersection sont crées ainsi qu'un élément unidimensionnel d’intégration.

Mise en forme du jeu de donnée

Le “XFEMTractionElement” prend en propriétés XPRESSURE (pression appliquée) et XNPG (nombre de points de Gauss utilisés pour l'intégration des conditions limites de pression).

    prp2 = ElementProperties(XFEMTractionElement)
    prp2.put(XPRESSURE, 100000000)
    prp2.put(XNPG, 2)
    fct = PieceWiseLinearFunction()
    fct.setData(0.0, 0.0)
    fct.setData(1.0, 1.0)
    prp2.depend(XPRESSURE, fct, Field1D(TM,RE))

Le “XFEMLoadingInteraction” est définit comme suit :

    load = XFEMLoadingInteraction(2)
    load.push(Cset(1))
    load.push(Cset(2))
    load.addProperty(prp2)
    domain.getInteractionSet().add(load)

Ou Cset(1) et Cset(2) sont les curves sur lesquelles la pression est appliquée.

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

Fichiers ajoutés

[a]:oo_meta/XFEM/XFEMLoadingElement.h
[a]:oo_meta/XFEM/XFEMLoadingElement.cpp
[a]:oo_meta/XFEM/XFEMLoadingInteraction.h
[a]:oo_meta/XFEM/XFEMLoadingInteraction.cpp
[a]:oo_meta/apps/xfem/bloc_carre.py
commit/2012/02_01.txt · Last modified: 2016/03/30 15:23 (external edit)