Table of Contents



Commit 2007-11-22

Modifs

Rupture

RC = MeanRuptureCriteria(IF_EPL,0.2)

app = FieldApplicator(1)
app.push(1, SIDE_ID)
app.addRuptureCriteria(RC)
intset = domain.getInteractionSet()
intset.copy(app)
del RC

On voit donc qu'on est limité à une valeur critique d' InternalField pour définir le critère de rupture. Si le critère est plus compliqué, on se retrouve bête. Maintenant, on écrit:

rc = EplRuptureCriterion()
rc.put(RUPT_CRIT_VALUE, 0.2)
rc.put(RUPT_TYPE_CRIT, ONEBROKEN)

app = FieldApplicator(1)
app.push(1, SIDE_ID)
app.addRuptureCriterion(rc)
intset = domain.getInteractionSet()
intset.copy(app)
del rc

Donc, on a un critère de rupture de type EplRuptureCriterion qui comme son nom l'indique est vérifié pour une valeur critique de la défo plastique de 0.2. L'élément est rompu si le critère est vérifié en un point de Gauss (paramètre RUPT_TYPE_CRIT). On peut aussi choisir de rompre l'élément si le critère est vérifié sur tous les points de Gauss (RUPT_TYPE_CRIT = ALLBROKEN) ou en moyenne sur tous les points de Gauss (RUPT_TYPE_CRIT = MEANBROKEN). Supposons à présent qu'on ait un critère de rupture Machin qui dépend de la pression, de l'endommagement et de la défo plastique en fonction de paramètre P_1, P_2 et P_3. Il suffit d'implémenter le critère MachinRuptureCriterion en modifiant dans la classe la fonction examineIfElementIsBroken qui évalue le critère à chaque point de Gauss, exactement comme on fait quand on met une nouvelle loi d'écrouissage pour évaluer la limite élastique. On introduit les codes des nouveaux paramètres, on interface dans SWIG et hop ça marche! On aurait donc dans le jeu de données:

rc = MachinRuptureCriterion()
rc.put(RUPT_CRIT_VALUE, 0.2)
rc.put(RUPT_TYPE_CRIT, ONEBROKEN)
rc.put(P_1, 5.0)
rc.put(P_2, 3.0)
rc.put(P_3, 1.6)

app = FieldApplicator(1)
app.push(1, SIDE_ID)
app.addRuptureCriterion(rc)
intset = domain.getInteractionSet()
intset.copy(app)
del rc

Les paramètres communs à tous les critères de rupture sont la valeur critique RUPT_CRIT_VALUE et le type de rupture de l'élément (il se rompt si le critère de rupture est vérifié en un point de Gauss, à tous les points de Gauss ou en moyenne sur les points de Gauss).

Matériaux/Lois matérielles

Todo List

1)

Fichiers ajoutés/supprimés

mtMaterialLaws/damage/DummyContinuousDamage.cpp	added (+)	
mtMaterialLaws/damage/DummyContinuousDamage.h	added (+)	
mtMaterialLaws/damage/BidonContinuousDamage.cpp	deleted	
mtMaterialLaws/damage/BidonContinuousDamage.h	deleted
mtElements/rupture/DamRuptureCriterion.cpp	added
mtElements/rupture/EplRuptureCriterion.cpp	added
mtElements/rupture/RuptureCriterion.cpp	added
mtElements/rupture/RuptureCriterionIDList.cpp
mtElements/rupture/RuptureCriterionProperties.cpp
mtElements/rupture/DamRuptureCriterion.h	added
mtElements/rupture/EplRuptureCriterion.h	added
mtElements/rupture/RuptureCriterion.h	added
mtElements/rupture/RuptureCriterionFactoryArgs.h	added
mtElements/rupture/RuptureCriterionIDList.h	added
mtElements/rupture/RuptureCriterionProperties.h	added
mtElements/RuptureCriterionID.h	added	 	
mtElements/RuptureCriterionPropertyID.h	added	
mtElements/rupture/MaxRuptureCriteria.cpp	deleted	
mtElements/rupture/MeanRuptureCriteria.cpp	deleted	
mtElements/rupture/RuptureCriteria.cpp	deleted	 	
mtElements/rupture/MaxRuptureCriteria.h	deleted	 	
mtElements/rupture/MeanRuptureCriteria.h	deleted	 
mtElements/rupture/RuptureCriteria.h	deleted	 
apps/imp/ruptureAll1.py	added		
apps/imp/ruptureAll2.py	added		
apps/imp/ruptureCont2All.py	added	
apps/imp/ruptureCont2Max.py	added (+)	
apps/imp/ruptureCont2Mean.py	added		
apps/imp/ruptureCont2.py	deleted

Pierre-Paul Jeunechamps 2007/11/21 20:50

1)
Mais comme ce n'est pas de la science, je laisse ça à Ludo…