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 18:45] – [Ajout d'un Timer] wautelet | commit:2014:10_29 [2016/03/30 15:23] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| ==== Nouvel Interfaçage du Lagrangien Augmenté | ==== Nouvel Interfaçage du Lagrangien Augmenté | ||
| - | J'ai nettoyé l' | + | L'algorithme |
| - | Désormais, on a uniquement " | + | |
| - | ==== Ajout d' | + | - Version standard (On effectue un nombre fixe d' |
| + | < | ||
| + | alm = StandardAugmentedLagrangianManager(metafor) | ||
| + | alm.setNbOfIterationsPerStep(parameter[' | ||
| + | |||
| + | augLagAugmentation | ||
| + | ci.setAugLagAugmentation(augLagAugmentation) | ||
| + | |||
| + | alm.addContactInteraction(ci) | ||
| + | </ | ||
| + | - Version automatique (On effectue un nombre | ||
| + | < | ||
| + | alm = AutomaticAugmentedLagrangianManager(metafor) | ||
| + | alm.setMaxNbOfIterations(parameter['NbreAugmentationMax' | ||
| + | |||
| + | augLagCriterion = AugLagGeoCriterion(alm) | ||
| + | augLagCriterion.setNormalGapPrec(parameter[' | ||
| + | augLagCriterion.setTangentialGapPrec(parameter[' | ||
| + | ci.setAugLagCriterion(augLagCriterion) | ||
| + | |||
| + | augLagAugmentation = AugLagClassicalAugmentation(alm) | ||
| + | ci.setAugLagAugmentation(augLagAugmentation) | ||
| + | |||
| + | alm.addContactInteraction(ci) | ||
| + | </ | ||
| + | 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/cisaillement | ||
| + | < | ||
| + | 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 | ||
| + | < | ||
| + | if(parameter[' | ||
| + | materset.define (2, AugLagFrictionlessContactMaterial) | ||
| + | materset(2).put(PROF_CONT, | ||
| + | materset(2).put(PEN_NORMALE, | ||
| + | materset(2).put(TYPE_CONT, | ||
| + | print " | ||
| + | elif(parameter[' | ||
| + | materset.define (2, AugLagStickingContactMaterial) | ||
| + | materset(2).put(PROF_CONT, | ||
| + | materset(2).put(PEN_TANGENT, | ||
| + | materset(2).put(PEN_NORMALE, | ||
| + | materset(2).put(TYPE_CONT, | ||
| + | print " | ||
| + | elif(parameter[' | ||
| + | materset.define (2, AugLagCoulombContactMaterial) | ||
| + | materset(2).put(PROF_CONT, | ||
| + | materset(2).put(COEF_FROT_STA, | ||
| + | materset(2).put(COEF_FROT_DYN, | ||
| + | materset(2).put(PEN_TANGENT, | ||
| + | materset(2).put(PEN_NORMALE, | ||
| + | materset(2).put(TYPE_CONT, | ||
| + | print " | ||
| + | else: | ||
| + | print "Bad definition of type contact" | ||
| + | </ | ||
| + | **Étant donné que la configuration/ | ||
| + | <note important> | ||
| + | Il est à noter que l' | ||
| + | - ALE (Mise à jour du point de collement ?), | ||
| + | - en contact déformable - déformable, | ||
| + | - en contact 3D, ... | ||
| + | </ | ||
| + | |||
| + | D' | ||
| + | |||
| + | ==== 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 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, | ||
| + | |||
| + | Pour se faire, il suffit d' | ||
| + | < | ||
| + | extractorFt = TangentForceValueExtractor(ci) | ||
| + | extractorFt.setUseToolLocalSystemAxes(True) | ||
| + | valuesmanager.add(1, | ||
| + | </ | ||
| + | **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 62: | 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.1414604726.txt.gz · Last modified: (external edit)
