commit:2014:10_31
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
commit:2014:10_31 [2014/10/31 17:23] – created wautelet | commit:2014:10_31 [2016/03/30 15:23] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Commit 2014-10-29 ====== | + | ====== Commit 2014-11-04 ====== |
===== Modifications ===== | ===== Modifications ===== | ||
- | ==== Nouvel Interfaçage du Lagrangien Augmenté | + | ==== Réorganisation de la libraire mtContact |
- | L'algorithme du Lagrangien Augmenté pour la gestion du contact est implementé | + | J'ai regroupé toutes les sources dans le nouveau |
- | - Version standard (On effectue un nombre fixe d'augmentations par pas de temps sur les interactions de contact sélectionnées.) | + | ==== Modification Interfaçage du Lagrangien Augmenté |
- | < | + | |
- | alm = StandardAugmentedLagrangianManager(metafor) | + | Par rapport à mon commit précédent, |
- | alm.setNbOfIterationsPerStep(parameter[' | + | < |
- | + | alm.addContactInteraction(ci) devient | |
- | augLagAugmentation = AugLagClassicalAugmentation(alm) | + | |
- | ci.setAugLagAugmentation(augLagAugmentation) | + | |
- | + | ||
- | alm.addContactInteraction(ci) | + | |
</ | </ | ||
- | - Version automatique (On effectue un nombre d' | ||
- | < | ||
- | alm = AutomaticAugmentedLagrangianManager(metafor) | ||
- | alm.setMaxNbOfIterations(parameter[' | ||
- | | ||
- | 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/ | ||
- | < | ||
- | 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[' | ||
- | 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> | + | ==== Ajout d'une fonctionnalité |
- | 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é | + | |
- | + | ||
- | 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 | + | Pour des cas-tests |
Pour se faire, il suffit d' | Pour se faire, il suffit d' | ||
< | < | ||
- | extractorFt | + | prp2 = ElementProperties(Contact2D|3DElement) |
- | extractorFt.setUseToolLocalSystemAxes(True) | + | prp2.put(AREAINCONTACTBOUNDARYSELECTION, AICBS_INTERNAL) |
- | valuesmanager.add(1, | + | |
</ | </ | ||
- | **Cette fonctionnalité ne marche que pour l' | ||
- | ==== Ajout d' | + | Par défaut, l'option AREAINCONTACTBOUNDARYSELECTION est fixée à AICBS_EXTERNAL. Dans ce cas là, un noeud de contact à l' |
- | Afin de tenir compte de la fraction du temps CPU passée dans les routines liées à l' | ||
- | ==== Ajout d'options globales pour debugger Metafor ==== | + | <note important> |
+ | J'ai corrigé un bug dans mes sources précédentes qu' | ||
- | Il est possible de | + | La fonction valeur absolue " |
+ | |||
+ | </ | ||
- | - de mettre à jour la fenêtre de visualisation à chaque augmentation. | + | <note warning> |
- | - de sauvegarder les grandeurs | + | |
==== Modification des Cas Tests ==== | ==== Modification des Cas Tests ==== | ||
- | === ALE === | + | === Area In Contact |
- | Le cas test apps.ale.friction2Ddd utilise le mailleur gen4. J' | + | J' |
- | Pour obtenir des résultats cohérents et (avoir des résultats puisqu' | + | < |
- | + | prp2 = ElementProperties(Contact2D|3DElement) | |
- | === Lagrangien Augmenté === | + | prp2.put(AREAINCONTACT, True) => prp2.put(AREAINCONTACT, |
- | + | prp2.put(AREAINCONTACT, | |
- | Il y a quelques cas-tests dans la batterie sur le lagrangien augmenté : | + | prp2.put(AREAINCONTACT, |
- | + | prp2.put(AREAINCONTACT, | |
- | - apps.complex.contact3dDefoDefoAugLag1 | + | </ |
- | - apps.complex.contact3dDefoDefoAugLag2 | + | |
- | - apps.complex.contact3dDefoDefoAugLag3 | + | |
- | - apps.contactMec.contact2dEpeAugLagCoul | + | |
- | - apps.contactMec.contact2dEpeAugLagFricLess | + | |
- | - apps.contactMec.contact2dEpeAugLagStick | + | |
- | - apps.qs.contact3dDefoDefo1 | + | |
- | - apps.qs.contactDefoDefoAugLag1 | + | |
- | - apps.qs.contactDefoDefoAugLag2 | + | |
- | - apps.qs.contactDefoDefoAugLag3 | + | |
- | - apps.qs.contactDefoDefoAugLag4 | + | |
- | + | ||
- | J'ai adapté l' | + | |
Line 182: | Line 67: | ||
[a]: | [a]: | ||
[a]: | [a]: | ||
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
- | [r]: | + | [r]: |
</ | </ | ||
Line 472: | Line 357: | ||
- | --- // | + | --- // |
commit/2014/10_31.1414772611.txt.gz · Last modified: 2016/03/30 15:22 (external edit)