===== Commit 2014-02-10 ===== Calcul des vitesses et accélérations des degrés de liberté fixés Suppression de oo_nda/tpi ===== Vitesse & Accélérations DDL's Fixés ====== === Calcul des forces centrifuges et gravité dans FInert === * dans le cadre des aubes tournantes, cherchant à comprendre la différence de comportement vibratoire entre un modèle aube tournante et un modèle où les forces centrifuges sont ajoutées à un modèle dont l'aube est fixe, une piste était liée au schéma de Chung & Hulbert (à travers la pondération pas de temps 0 / pas de temps 1 des forces inertielles (via alpha_m) & extérieures (via alpha_f). * une propriété booléenne des éléments (propelem) ''INERTIAINFEXT'' a été ajoutée telle que par défaut, les forces de gravité et centrifuge soient ajoutées dans le vecteur FExt et que l'on puisse les ajouter dans FInert : * FGrav/FCentrifuge dans FExt (defaut): prp.put(INERTIAINFEXT,True) * FGrav/FCentrifuge dans Finert : prp.put(INERTIAINFEXT,False) * tests : * apps/imp/aube3dFix1 : INERTIAINFEXT = true * apps/imp/aube3dFix2 : INERTIAINFEXT = false * apps/imp/aube3dFix2Num : INERTIAINFEXT = false & matrice de raideur numérique * apps/imp/aube2DFix1CarterRigidArcRot: INERTIAINFEXT = true * apps/imp/aube2DFix2CarterRigidArcRot: INERTIAINFEXT = false === Calcul des Vitesses et accélérations des ddls fixés === * Lors de l'implémentations de "INERTIAINFEXT ", j'ai repéré que les vitesses et accélérations des degrés de libertés fixés sont calculés non pas en utilisant les formules du schéma (voir thèse JPP pg VIII.13 : formules VIII.3.3 VIII.3.4), mais bien par un Euler arrière (pour des raisons de stabilité dans le cadre d'un schéma de Newmark :Thèse JPP pg VIII.28 et suivantes, formules VIII.5.8) * Cette formulation permet d'éviter des oscillations sur des calculs fait via Newmark (cad jamais avec Metafor), mais entraîne les erreurs le bruit important à chaque division de pas de temps : ci dessous les contraintes et forces d'une "aube" en rotation avec variation (imposée/importante) du pas de temps en 0.014sec (+ variations du pas de temps lié à des accidents de convergence) * Calcul des Vitesses & Accelerations DDL's fixés Euler Arrière : {{:commit:2014:stressesvaeulerarriere.png?300|Contraintes Euler Arrière}}{{:commit:2014:forcesvaeulerarriere.png?300|Forces Euler Arrière}} * Calcul des Vitesses & Accelerations DDL's fixés Consistant schéma : {{:commit:2014:stressesvaconsistant.png?300|Forces Schema consistant}}{{:commit:2014:forcesvaconsistant.png?300|Forces Schema consistant}} * Pour l'instant seul le schéma ''AlphaGeneralizedTimeIntegration'' est adapté * le choix entre le calcul consistant avec le schéma des vitesses et accélérations se fait via la commande * mim.setConstrainedDofsVAComputationMethod(VACOMPUTATION_SCHEMECONSISTANT) (default) * mim.setConstrainedDofsVAComputationMethod(VACOMPUTATION_LINEAR) * Une tentative de définir les vitesses & accélérations des ddl's fixes via la fonction d'évolution exacte (vu qu'elle est connue) a été tentée, mais n'est pas aboutie à ce jour (et pose certaines questions ...) === Tests === * apps/imp/massSpring3d2NewmarkVAConsistant : démontre le problème de conditions limites en newmark * apps/imp/massSpring3d2 : ancien test en Euler Arrière prend 6500 fois moins de pas de temps * apps/imp/aube3DRotVAConsistant : Schéma consistant * apps/imp/aube3DRotVALinear : Schéma Euler Arrière ===== Suppression de oo_nda/tpi ====== * le module tpi n'étant qu'un gros copier-coller des éléments volumiques * l'objectif était de mettre un espace de développement à disposition de Arnaud Collet * vu qu'il n'a finalement pas développé sa thèse dans Metafor, le module n'a plus de raison d'être ... * Il est donc supprimé du répository (n'oubliez pas de refaire completement votre CMake!!!) * suppression de tpi dans la batterie ==== Divers ==== * ''KevinVoigtViscoElastHypoMaterial'' : * Correction du modèle lorsque dt = 0.0 (mise en rotation QS) * ''PythonOneParameterFunction::computeDerivation (double abs)'': * Implémentation d'une fonction générique de calcul de dérivation numérique d'une ''PythonOneParameterFunction'' (toujours lui préférer une implémentation exacte de la dérivée. L'appel à cette fonction affichera d'ailleurs un gros WARNING recurrent ...) * stats.py : * Correction du serveur svn & des courbes gnuplot * ''Forces.setToZero();'': * Alors que la fonction ''element::fillVector'' commence par redimensionner & remettre à zero les vecteurs qu'elle va remplir, toutes les fonctions ''fillInternalForces'', ''fillInertialForces'', ''fillExternalForces'', ''fillDiagonalMass'', ''fillDissipationForces'' commencaient par remettre le vecteur à zero (au cas ou le passage aurait changé les zeros en quelque chose d'autre * => supprimé tous les setToZero des ''fill...Forces'' * #include => #include * Il restait des appels à scalapack.h (implémentation mpi de lapack qui n'existe pas nécessairement sur toutes les plateformes) alors qu'on n'utilise que la partie smp ===== Fichiers ajoutés/supprimés ===== A R oo_nda/tpi/* ===== Tests ajoutés/supprimés ===== A oo_meta\apps\bIe\aube2_VACONSISTANT.py text/plain A oo_meta\apps\imp\aube2DFix1CarterRigidArcRot.py text/plain A oo_meta\apps\imp\aube2DFix2CarterRigidArcRot.py text/plain A oo_meta\apps\imp\aube3DFix1.py text/plain A oo_meta\apps\imp\aube3DFix2.py text/plain A oo_meta\apps\imp\aube3DFix2Num.py text/plain A oo_meta\apps\imp\aube3DRotVAConsistant.py text/plain A oo_meta\apps\imp\aube3DRotVALinear.py text/plain A oo_meta\apps\imp\massSpring3d2NewmarkVAConsistant.py text/plain R --- //[[L.Papeleux@ulg.ac.be|Luc Papeleux]] 2014/02/10 //