Apprendre la programmation scientifique des éléments finis avec Python
Un tutoriel de Steven Masfaraud
Le 2017-09-17 23:37:11, par Malick, Community Manager
Chers membres du club,
J'ai le plaisir de vous présenter ce tutoriel de Steven Masfaraud :
Bonne lecture
Retrouvez les meilleurs cours et tutoriels pour apprendre Python.
J'ai le plaisir de vous présenter ce tutoriel de Steven Masfaraud :
Ce cours présente les outils de Python utilisables pour les éléments finis (matrices, vecteurs) pour aboutir à un code élément fini pour une poutre en traction. Sont présentées également des méthodes pour visualiser et vérifier les résultats produits.
-
lg_53Membre émériteMerci pour cet update, qui du coup m'a fait découvrir qu'il existait un tuto pour les éléments finis.
J'aimerais commenter plusieurs points.
1)Le problème est que pour Python, la division d'un entier donne un entier (division euclidienne). Pour le forcer à considérer i comme un réel, on lui convertit explicitement i en réel en appelant float(i).
2) A ce même endroit, pourquoi faire remplir le tableau valeur par valeur comme ça :
Code : 1
2
3
4
5# Maillage # Generation de la table coor coor = np.zeros((ne+1,1)) # Initialisation for i in range(ne+1): coor[i,0]=(float(i)/(ne))*L
3)Code : 1
2
3
4# Prise en compte des CL Kii = np.delete(K,0,0) Kii = np.delete(Kii,0,1) Fi = np.delete(F,0,0)
Peut-être est-ce pour réduire la taille du système vu que l'on connait la donnée au bord (ce que je présume), on l'enlève du système et on la rajoute après résolution du système. Mais ca reste moins rentable avec ces copies et ces réallocations que cela engendre. Et de plus si on a un autre type de condition limite, avec cette technique, on est coincé.
Pourquoi ne pas directement construire une matrice qui ait, d'emblée, la même taille que le maillage, quitte à en updater la première et la dernière ligne si la condition limite l'exige et à ne travailler qu'avec cette matrice ?le 18/09/2017 à 9:41 -
marco056Membre chevronnéMerci.
Je trouve cela bien compliqué.
Pour ma part, je traite cela plus légèrement, peut-être moins rigoureusement aussi...le 18/09/2017 à 7:36 -
emilie77Membre éprouvéMerci beaucoup,
j'ai trouvé très utile ce tutoriel. Est-ce qu'il serait possibile de l'etendre pour le calcul d'une structure 2d?le 19/09/2017 à 8:07 -
k_crochet_xCandidat au ClubBonjour , je viens d'executer le programme et il ne marche que pour un ne=1 et lorsque je l'augmente , ma matrice devient singulière .Je suis débutant en éléments finis , quelqu'un pourrait m'apporter une explication svp?le 14/08/2019 à 12:34