====== Commit 2014-02-13 ======
Matrice de raideur tangente analytique pour l'élément de ressort
===== Considérations générales ======
Jusqu'à présent la matrice de raideur tangente pour l'élémént de ressort était calculée numériquement. Vu la complexité pas trop élevée de la tâche, le calcul de la matrice de raideur tangente analytique a donc été implémenté.
En particulier une matrice de raideur tangente analytique est maintenant disponible pour l'élément de ressort dans le cas de:
* ''ConstantSpringMaterial'', avec tous les schémas d'intégration (y compris les conservatifs) et en présence ou pas d'amortissement
* ''NonLinearSpringMaterial'', avec tous les schémas d'intégration (y compris les conservatifs) et en présence ou pas d'amortissement
En plus, pour garder une certaine cohérence par rapport à d' autres types d'éléments une série de nouveaux cas tests ont été créés exprès pour le ressort et regroupés dans le dossier ''oo_meta\apps\mechanisms''
===== Remarques ======
* La matrice de raideur tangente analytique n'est PAS encore disponible pour le matériel ''BreakingSpringMaterial''.
* NB: le calcul de la matrice analytique est maintenant devenu l'option par défaut. Si on souhaite utiliser la matrice de raideur tangente numérique, il faut l'indiquer explicitement dans les propriétés de l'élément (''STIFFMETHOD=STIFF_NUMERIC''). Cela a été fait notamment pour les cas tests suivants:
* ''oo_meta\apps\bQs\spring3dRup.py'' (et donc ''spring3d1.py'')
* ''oo_meta\apps\imp\massSpring3dRotationRupture.py''
* Pour rappel, avec les méthodes d'intégration conservatives on ne peut pas introduire de l'amortissement dans le ressort, ça indépendamment que l'on utilise une matrice tangente analytique ou numérique.
===== Divers ======
Dans mes pérégrinations liées au ressort j'ai découvert que la fonction ''computeIntegration()'', qui calcul l'intégrale d'une ''PieceWiseLinearFunction'', en fait ne calculait pas du tout de façon générale l'intégrale d'une fonction. Cette fonction a donc été reécrite.
Cela fera l'objet d'un commit ultérieur, mais si jamais vous étiez amenés à l'utiliser, voilà ce qu'elle fait exactement:
* ''f.computeIntegration(a,b)'': \begin{equation} \int_{a}^{b}{f(x)dx}\end{equation}
* ''f.computeIntegration(a)'': \begin{equation} \int_{0}^{a}{f(x)dx}\end{equation}
===== Fichiers ajoutés/supprimés =====
A
R
===== Tests ajoutés/supprimés =====
A oo_meta\apps\mechanisms\spring3dPrescribedLoad.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadCons.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadFxyNum.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadFxyz.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadFxyzDelay.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadImp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadImpNum.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadKelvinVoigt2.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadKelvinVoigt2NonLinWithDamp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadKelvinVoigt2NonLinWithNonLinDamp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadKelvinVoigt2WithDamp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadKelvinVoigt2WithNonLinDamp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadNonLin.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadNum.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadStandardLinear.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadStandardLinear2.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadStandardLinear2NonLinWithDamp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadStandardLinear2NonLinWithNonLinDamp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadStandardLinear2WithDamp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadStandardLinear2WithNonLinDamp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadStandardLinearWithDamp.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMass.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMassFxyNum.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMassFxyz.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMassFxyzCons.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMassFxyzDelay.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMassFxyzExpl.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMassFxyzExplChung.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMassFxyzNumCons.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMassFxyzNumPointMilieu.py
A oo_meta\apps\mechanisms\spring3dPrescribedLoadWithMassNum.py
A oo_meta\apps\mechanisms\springMass3d.py
A oo_meta\apps\mechanisms\springMass3dCons.py
A oo_meta\apps\mechanisms\springMass3dDamp.py
A oo_meta\apps\mechanisms\springMass3dNonLin.py
A oo_meta\apps\mechanisms\springMass3dNonLinCons.py
A oo_meta\apps\mechanisms\springMass3dNonLinWithNonLinDamp.py
A oo_meta\apps\mechanisms\springMass3dNum.py
A oo_meta\apps\mechanisms\springMass3dNumCons.py
A oo_meta\apps\mechanisms\springMass3dNumDamp.py
A oo_meta\apps\mechanisms\springMass3dNumNonLin.py
A oo_meta\apps\mechanisms\springMass3dNumNonLinCons.py
A oo_meta\apps\mechanisms\springMass3dNumNonLinWithNonLinDamp.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedDisplacement.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedDisplacementNonLin.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedDisplacementNonLinWithNonLinDamp.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedDisplacementOnlyDamp.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedDisplacementOnlyNonLinDamp.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedDisplacementWithDamp.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedDisplacementWithNonLinDamp.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedLoadKelvinVoigt.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedLoadKelvinVoigt2.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedLoadKelvinVoigt2WithDamp.py
A oo_meta\apps\mechanisms\threeSprings3dPrescribedLoadKelvinVoigtWithDamp.py
R
--- //[[MarcoLucio.Cerquaglia@ulg.ac.be|Marco Lucio Cerquaglia]] 2014/02/13 //