doc:user:xfem:xfem
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
doc:user:xfem:xfem [2013/08/21 11:21] – biotteau | doc:user:xfem:xfem [2015/01/10 16:15] – [eXtended Finite Element Method] boman | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== eXtended | + | ====== eXtended |
===== Introduction ===== | ===== Introduction ===== | ||
- | Les éléments finis enrichis définis dans la librairies mtXFEM ne permettent pour le moment que de modéliser des discontinuités matérielles de type " | + | Les éléments finis enrichis définis dans la librairies mtXFEM ne permettent pour le moment que de modéliser des discontinuités matérielles de type " |
==== Principe ==== | ==== Principe ==== | ||
Line 15: | Line 15: | ||
{{ : | {{ : | ||
- | Ces sous-cellules n’ont pas de degrés de liberté associés. Ce sont uniquement des supports des quantités du quadrangle sur les section de l’élément ou il existe de la matière. | + | Ces sous-cellules n’ont pas de degrés de liberté associés. Ce sont uniquement des supports des quantités du quadrangle sur les section de l’élément ou il existe de la matière. |
Pour l' | Pour l' | ||
Line 23: | Line 23: | ||
==== Intérêt ==== | ==== Intérêt ==== | ||
- | Les éléments | + | Les frontières des éléments |
+ | |||
+ | Quelque soit la complexité de la zone matérielle, | ||
+ | |||
+ | {{ : | ||
==== Implémentation numérique ==== | ==== Implémentation numérique ==== | ||
+ | Dans Metafor, une nouvelle librairie appelée mtXFEM a permis d' | ||
+ | |||
+ | Plus précisement différentes classes ont étés introduites. Les plus importantes sont les suivantes : | ||
+ | |||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * 3 classes d' | ||
+ | * Une méthode d' | ||
+ | * 3 classes de matériau de contact (// | ||
===== Formalisme du jeu de données ===== | ===== Formalisme du jeu de données ===== | ||
+ | |||
+ | Différents exemples sont disponibles dans le dossier apps/XFEM/. Le plus simple pour découvrir la syntaxe d'un cas test est de lancer " | ||
+ | |||
+ | from toolbox.importMetafor_XFEM import * | ||
+ | |||
+ | ==== Définition géométriques ==== | ||
+ | |||
+ | Dans un premier temps on définit une bounding box (rectangulaire, | ||
+ | |||
+ | Une wire doit par la suite être définie de manière à décrire la frontière initiale de la structure. Cette wire doit éventuellement être orientée selon la méthode de calcul de la level set retenue (voir l' | ||
+ | |||
+ | Enfin des wires permettant de décrire les frontières chargées de la structure (ou suceptible d' | ||
==== XFEMFieldApplicator ==== | ==== XFEMFieldApplicator ==== | ||
- | ==== Interactions | + | Tout comme pour les FieldApplicator et autre interactions, |
+ | prp1 = ElementProperties(XFEMElement) | ||
+ | prp1.put(BOUNDARY_WIRE, | ||
+ | prp1.put(CAUCHYMECHVOLINTMETH, | ||
+ | prp1.put(MATERIAL, | ||
+ | | ||
+ | Les paramêtre optionnels sont les suivants. Pour cet exemple les paramètres par défaut sont donnés | ||
+ | | ||
+ | prp1.put(NB_IP_INTCELL, | ||
+ | prp1.put(INVERSE_WIRE, | ||
+ | prp1.put(TOL_LEVELSET, | ||
+ | prp1.put(LS_CALC_METH, | ||
+ | prp1.put(SOUS_INTEG, | ||
+ | prp1.put(FULL_SIDES, | ||
+ | Attention, en fonction des paramêtres LS_CALC_METH et TOL_LEVELSET, | ||
+ | Une fois l' | ||
- | ===== Limitations actuelles | + | app = XFEMFieldApplicator(1) |
+ | app.push(Sset(1)) | ||
+ | app.addProperty(prp1) | ||
+ | domain.getInteractionSet().add(app) | ||
+ | ==== Interaction de chargement | ||
+ | L' | ||
+ | |||
+ | prp2 = ElementProperties(XFEMTractionElement) | ||
+ | prp2.put(XPRESSURE, | ||
+ | prp2.put(XNIP, | ||
+ | |||
+ | En pratique, il absolument inutile d' utiliser plus de deux points d' | ||
+ | |||
+ | fct = PieceWiseLinearFunction() | ||
+ | fct.setData(0.0, | ||
+ | fct.setData(1.0, | ||
+ | prp2.depend(XPRESSURE, | ||
+ | | ||
+ | L' | ||
+ | | ||
+ | load = XFEMLoadingInteraction(2) | ||
+ | load.push(Cset(13)) | ||
+ | load.addProperty(prp2) | ||
+ | domain.getInteractionSet().add(load) | ||
+ | ==== Interaction de contact ==== | ||
+ | |||
+ | Dans un premier temps on définit un matériau de contact, qui permet de définir les paramètres de pénalités. En fonction du matériau de contact retenu, seuls certains paramètres doivent être définis : | ||
+ | |||
+ | Mat.define(2, | ||
+ | Mat(2).put(NPENALTY, | ||
+ | Mat(2).put(TPENALTY, | ||
+ | Mat(2).put(COEF_FROT, | ||
+ | Mat(2).put(UNILAT, | ||
+ | |||
+ | Seuls deux paramêtres sont définis dans le ElementProperties : la loi de matériau de contact, et le nombre de point de gauss par sous-cellule d' | ||
+ | |||
+ | prp2 = ElementProperties(XFEMContactElement) | ||
+ | prp2.put(MATERIAL, | ||
+ | prp2.put(XNIP, | ||
+ | |||
+ | Enfin l' | ||
+ | |||
+ | load = XFEMContactInteraction(2) | ||
+ | load.setTool(Cset(8)) | ||
+ | load.push(Cset(5)) | ||
+ | load.push(Cset(12)) | ||
+ | load.push(Cset(9)) | ||
+ | load.addProperty(prp2) | ||
+ | domain.getInteractionSet().add(load) | ||
+ | | ||
+ | ==== Reste du jeu de données ==== | ||
+ | |||
+ | Le reste du jeu de données est classique. Pour le mechanicalIterationManager, | ||
+ | | ||
+ | ==== Affichage ==== | ||
+ | |||
+ | L' | ||
+ | |||
+ | try : | ||
+ | win1 = VizWin() | ||
+ | win1.add(app.getXFEMSides().getCurveSet()) | ||
+ | win1.add(app.getXFEMElementSet()) | ||
+ | win1.open() | ||
+ | metafor.addObserver(win1) | ||
+ | except NameError: | ||
+ | pass | ||
+ | | ||
+ | et de désactiver l' | ||
+ | |||
+ | |||
+ | ===== Limitations actuelles ==== | ||
+ | * Lorsque le chargement sur la structure devient trop important, la distorsion du maillage pour les éléments peut remplis provoque l' | ||
+ | * Dans certains cas, le calcul du signe de la fonction level set peut être faux... Dans ce cas la zone matérielle numérique ne correspond pas à la zone matérielle définie par l' | ||
+ | * Des surcontraintes peuvent apparaitre sur les éléments en contact de part le chargement. | ||
+ | * L' | ||
+ | * Si la frontière présente deux arrêtes vives au sein d'un unique élément, un seul point de " |
doc/user/xfem/xfem.txt · Last modified: 2016/03/30 15:23 by 127.0.0.1