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.
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.
[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