Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2014:02_13

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  

Marco Lucio Cerquaglia 2014/02/13

commit/2014/02_13.txt · Last modified: 2018/05/04 16:37 by boman