===== 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 --- //[[L.Papeleux@ulg.ac.be|Luc Papeleux]] 2017/07/24 //