Table of Contents

Commit 2012-02-01

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 :

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