Table of Contents
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 doncspring3d1.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
— Marco Lucio Cerquaglia 2014/02/13