commit:2014:10_29
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
commit:2014:10_29 [2014/10/29 21:26] – wautelet | commit:2014:10_29 [2016/03/30 15:23] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 8: | Line 8: | ||
- Version standard (On effectue un nombre fixe d' | - Version standard (On effectue un nombre fixe d' | ||
- | + | < | |
- | alm = StandardAugmentedLagrangianManager(metafor) | + | alm = StandardAugmentedLagrangianManager(metafor) |
- | alm.setNbOfIterationsPerStep(parameter[' | + | alm.setNbOfIterationsPerStep(parameter[' |
| | ||
- | | + | augLagAugmentation = AugLagClassicalAugmentation(alm) |
- | ci.setAugLagAugmentation(augLagAugmentation) | + | ci.setAugLagAugmentation(augLagAugmentation) |
| | ||
- | | + | alm.addContactInteraction(ci) |
- | + | </ | |
- | - Version automatique (On effectue un nombre d' | + | - Version automatique (On effectue un nombre d' |
- | + | < | |
- | alm = AutomaticAugmentedLagrangianManager(metafor) | + | alm = AutomaticAugmentedLagrangianManager(metafor) |
- | alm.setMaxNbOfIterations(parameter[' | + | alm.setMaxNbOfIterations(parameter[' |
| | ||
- | | + | augLagCriterion = AugLagGeoCriterion(alm) |
- | augLagCriterion.setNormalGapPrec(parameter[' | + | augLagCriterion.setNormalGapPrec(parameter[' |
- | augLagCriterion.setTangentialGapPrec(parameter[' | + | augLagCriterion.setTangentialGapPrec(parameter[' |
- | ci.setAugLagCriterion(augLagCriterion) | + | ci.setAugLagCriterion(augLagCriterion) |
| | ||
- | | + | augLagAugmentation = AugLagClassicalAugmentation(alm) |
- | ci.setAugLagAugmentation(augLagAugmentation) | + | ci.setAugLagAugmentation(augLagAugmentation) |
| | ||
- | | + | alm.addContactInteraction(ci) |
- | + | </ | |
- | Pour se faire, il faut associer le matériau suivant pour chaque interaction de contact sélectionnée : | + | Il existe 4 critères de base : |
+ | - Critère géométrique | ||
+ | < | ||
+ | augLagGeoCriterion= AugLagGeoCriterion(alm) | ||
+ | augLagGeoCriterion.setNormalGapNorm(ALM_MAX_NORM) | ||
+ | augLagGeoCriterion.setTangentialGapNorm(ALM_MEAN_NORM) | ||
+ | augLagGeoCriterion.setNormalGapPrec(parameter[' | ||
+ | augLagGeoCriterion.setTangentialGapPrec(parameter[' | ||
+ | </ | ||
+ | - Critère géométrique normalisé | ||
+ | < | ||
+ | augLagNormalisedGeoCriterion= AugLagNormalisedGeoCriterion(alm) | ||
+ | augLagNormalisedGeoCriterion.setNormalGapNorm(ALM_MAX_NORM) | ||
+ | augLagNormalisedGeoCriterion.setTangentialGapNorm(ALM_MEAN_NORM) | ||
+ | augLagNormalisedGeoCriterion.setNormalGapPrec(parameter[' | ||
+ | augLagNormalisedGeoCriterion.setTangentialGapPrec(parameter[' | ||
+ | </ | ||
+ | - Critère force ou pression/ | ||
+ | < | ||
+ | augLagForceCriterion= AugLagForceCriterion(alm) | ||
+ | augLagForceCriterion.setContactPressureNorm(ALM_MAX_NORM) | ||
+ | augLagForceCriterion.setContactShearNorm(ALM_MEAN_NORM) | ||
+ | augLagForceCriterion.setContactPressurePrec(parameter[' | ||
+ | augLagForceCriterion.setContactShearPrec(parameter[' | ||
+ | </ | ||
+ | - Critère force ou pression/ | ||
+ | < | ||
+ | augLagNormalisedForceCriterion= AugLagNormalisedForceCriterion(alm) | ||
+ | augLagNormalisedForceCriterion.setContactPressureNorm(ALM_MAX_NORM) | ||
+ | augLagNormalisedForceCriterion.setContactShearNorm(ALM_MEAN_NORM) | ||
+ | augLagNormalisedForceCriterion.setContactPressurePrec(parameter[' | ||
+ | augLagNormalisedForceCriterion.setContactShearPrec(parameter[' | ||
+ | </ | ||
+ | Il est possible de les combiner pour faire un critère multiple : | ||
+ | < | ||
+ | augLagGeoForceCriterion = AugLagMultipleCriterions(alm) | ||
+ | augLagGeoForceCriterion.add(augLagGeoCriterion) | ||
+ | augLagGeoForceCriterion.add(augLagNormalisedForceCriterion) | ||
+ | </ | ||
+ | Il est possible d' | ||
+ | < | ||
+ | augLagGeoForceCriterion.remove(augLagNormalisedForceCriterion) | ||
+ | </ | ||
+ | Pour finir, il faut associer le matériau suivant pour chaque interaction de contact sélectionnée : | ||
+ | < | ||
if(parameter[' | if(parameter[' | ||
materset.define (2, AugLagFrictionlessContactMaterial) | materset.define (2, AugLagFrictionlessContactMaterial) | ||
Line 58: | Line 101: | ||
else: | else: | ||
print "Bad definition of type contact" | print "Bad definition of type contact" | ||
- | Étant donné que la configuration/ | + | </ |
+ | **Étant donné que la configuration/ | ||
<note important> | <note important> | ||
Line 67: | Line 111: | ||
- en contact 3D, ... | - en contact 3D, ... | ||
</ | </ | ||
+ | |||
+ | D' | ||
==== Ajout d'une fonctionnalité sur l' | ==== Ajout d'une fonctionnalité sur l' | ||
- | La gestion du contact tangentielle se fait au moyen d'une base locale associée à chaque nœud en contact construite à partir du gap tangentielle, de manière à ce que la direction tangentielle soit toujours alignée avec la direction du glissement. Ainsi, par construction, | + | La gestion du contact tangentielle se fait au moyen d'une base locale associée à chaque nœud en contact construite à partir du gap tangentiel, de manière à ce que la direction tangentielle soit toujours alignée avec la direction du glissement. Ainsi, par construction, |
Dans certains cas de figure, afin de comparer avec des résultats de la littérature, | Dans certains cas de figure, afin de comparer avec des résultats de la littérature, | ||
Pour se faire, il suffit d' | Pour se faire, il suffit d' | ||
- | + | < | |
- | extractorFt = TangentForceValueExtractor(ci) | + | extractorFt = TangentForceValueExtractor(ci) |
- | extractorFt.setUseToolLocalSystemAxes(True) | + | extractorFt.setUseToolLocalSystemAxes(True) |
- | valuesmanager.add(1, | + | valuesmanager.add(1, |
+ | </ | ||
**Cette fonctionnalité ne marche que pour l' | **Cette fonctionnalité ne marche que pour l' | ||
- | |||
- | |||
==== Ajout d'un Timer ==== | ==== Ajout d'un Timer ==== | ||
- | Afin de tenir compte de la fraction du temps CPU passée dans les routines liées à l' | + | Afin de tenir compte de la fraction du temps CPU passée dans les routines liées à l' |
==== Ajout d' | ==== Ajout d' | ||
Line 134: | Line 178: | ||
< | < | ||
- | [r]: | + | [a]:mtContact/ |
- | [a]: | + | [a]:mtContact/ |
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [r]: | ||
+ | [r]: | ||
</ | </ | ||
commit/2014/10_29.1414614415.txt.gz · Last modified: 2016/03/30 15:22 (external edit)