Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2017:07_24

Commit 2017-07-24

  • RotativeLoading2 : embryon de loading via GeoOperator
  • VTK7.1 : compilation Metafor avec VTK7.1 sous windows
  • Divers

RotativeLoading2 :

RotativeLoading2

Il est actuellement difficile de faire des chargements complexes. La combinaison de plusieurs “loading” successifs sur le même DOF ne conserve que le dernier loading.

Dans la cadre du fluotournage, on veut imposer à la fois la rotation des mollettes sur elles même mais aussi autour du tube (lorsque l'on calcule dans le référentiel du tube).

J'ai donc implémenté un loading spécifique qui fait 2 rotations successives. Les LoadingOperator ne sont pas adaptés à un chargement multiple. Certain point étant d'ailleurs déplacés plusieurs fois (vu la méthodologie de “bouclage” sur les points), il fallait s'assurer que l'on n'additionne pas les déplacements. Pour changer, j'ai décidé d'utiliser les opérateur de transformation géométriques. La méthodologie du loading se trouve ainsi un peu modifiée :

  • Unordered List Item Pour s'assurer que chaque point ne subit que 1 fois les opérations de transformation, un PointHashSet (contenant soit des meshPoints, soit des points géométriques selon que la cible est maillée ou non) est rempli en début de calcul.
  • Le calcul de l'amplitude se fait comme habituellement à travers les drivers temporels
  • La configuration précédente est récupérée comme état initial des transformations (INCREMENTAL_LOAD)
  • Les 2 operateurs de Rotation sont successivement appliqués (Initialisation, Execution, Finalisation)
  • Un resetShcut de la target est appelé (pour remettre à 0 toutes les variables internes du code)

A terme, j'ai l'idée de combiner un nombre indéfini de TransformationOperator ajoutés dans un loading. Pour ce faire, il faut implémenter une évolution temporelle (via driver) des amplitudes des transformations.

Avant d'ajouter les tests de fluotournage, j'ai ajouté 2 tests utilisant RotativeLoading2 : 2D : apps/qs/rotation2.py 3D : apps/qs/rotation3.py

RotativeLoading

Conjointement, je me suis rendu compte que les commandes RotativeLoading selon 1 seule composante ne fonctionnent plus. J'ai supprimé la possibilité (elle n'était pas utilisée à bon escient).

LoadingSet

Ajout d'une fonction define2 n'utilisant pas la fonction getClone sur le Loading (les operateurs de transformation ainsi que les axes ne pouvant être clonés. Après discussion avec Romain, la fonction define2 devrait remplacer define.

Divers :

VTK7.1

Pour débugger des problèmes de Cedric, j'ai compilé VTK7.1 sous windows (VS2012) et adapté les cmake en conséquences (⇒ updatez les libs!!!). Qui plus est, les captures d'image posait problème à cause des packages nécessaires à gl2ps non linké avec Metafor ⇒ j'ai ajouté ces libs au link (sous windows uniquement, vu que ces libs ne sont pas dispo dans les repository de base sous linux ⇒ Romain, faut qu'on voit ce qu'on fait …)

geniso

correction d'un bug de “cast” dans boneRepairTools :

        ynew=smooth(Y,nb_zones/2.)                  -> ynew=smooth(Y,nb_zones/2)
        xnew=smooth(X,nb_zones/2.)                  -> ynew=smooth(X,nb_zones/2)
        znew=smooth(Z,nb_zones/2.)                  -> ynew=smooth(Z,nb_zones/2)

VTK7.1 étant un peu plus stricte, il ne permet plus l'utilisation d'un double à la place d'un entier (le 2 eme paramètre de smooth devant être un entier).

OneParameterRuptureCriterion

Réécriture de la fonction OneParameterRuptureCriterion pour un peu plus de clarté de lecture…

Se pose aussi la question sur le critère de COCKROFT, si la contrainte à prendre en compte est la première contrainte principale (Traction ou compression) ou si c'est la contrainte principale la plus grande (priorité à la traction et plus petite compression ???!!!!)

GeoPointValueExtractor

Modification des tests de détection de l'appartenance d'un noeud à une maille :

  • En couplage Fluide Structure, Marco importe des mailles (fluides) qui n'ont pas d'élément dans Metafor. Or si on génère un GeoPointValueExtractor à la frontière fluide/solide, il se peut que la détection commence par la maille fluide…

mtGeo::Axe

Gestion de la mémoire des points des axes par RefCounted

mtMath::Vect3

Ajout d'une fonction double getMaxOfAbsValue() const; permettant de récupérer la première valeur propre (en amplitude, quel que soit son signe)

Fichiers ajoutés/supprimés

A oo_meta/mtFEMBase/RotativeLoading2.h/cpp     

Tests ajoutés/supprimés

A oo_meta/apps/rotation2.py
A oo_meta/apps/rotation3.py      
A      

Luc Papeleux 2017/07/24

commit/2017/07_24.txt · Last modified: 2018/05/04 16:44 by boman