commit:2014:02_10
Table of Contents
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 :
- Calcul des Vitesses & Accelerations DDL's fixés Consistant schéma :
- 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 fonctionsfillInternalForces
,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 <mkl_scalapack.h> ⇒ #include <mkl_lapack.h>
- 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
— Luc Papeleux 2014/02/10
commit/2014/02_10.txt · Last modified: 2016/03/30 15:23 by 127.0.0.1