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: (external edit)
