Je pense que le post ci-dessous est meilleur pour la finition en tant que programme, alors veuillez vous y référer.
J'ai réalisé un programme d'analyse de contraintes FEM bidimensionnel élastique linéaire par Python.
L'élément est un élément isoparamétrique avec 4 nœuds par élément, et chaque élément a 4 points d'intégration Gauss.
Les charges pouvant être manipulées sont les suivantes.
$ \ {\ boldsymbol {\ epsilon_0} \} $ est une distorsion due à un changement de température
$ \ {\ boldsymbol {\ epsilon} \} $ est la distorsion de n'importe quel point de l'élément
$ \ {\ boldsymbol {v} \} $ est le déplacement de n'importe quel point de l'élément
Puisque Python est un interpréteur, je me demandais si cela serait utile en termes de vitesse de calcul, mais le temps de calcul dans le modèle avec le nombre de nœuds: 3417, le nombre d'éléments: 3257 et le degré de liberté: 6834 est de 7,9 secondes, ce qui est un niveau utilisable. Cela a été confirmé.
Le programme est long, j'ai donc mis un lien vers ce que j'ai collé dans Gist. De plus, le dessin de contour consiste simplement à peindre les éléments de différentes couleurs en fonction du niveau de stress. Pour mon propos, il n'est pas nécessaire de l'insérer séparément et de dessiner une ligne de contour.
npoin nele nsec npfix nlod NSTR #Montant de base
t E po alpha gamma gkh gkv #Propriété matérielle
..... (1~nsec) .....
node1 node2 node3 node4 isec #élément-Relation nodale, numéro de propriété du matériau
..... (1~nele) .....
x y deltaT #Coordonnées nodales, changements de température nodaux
..... (1~npoin) .....
node kox koy rdisx rdisy #Condition de contrainte de déplacement
..... (1~npfix) .....
node fx fy #Force externe
..... (1~nlod) .....
npoin, nele, nsec td> | Nombre de nœuds, nombre d'éléments, nombre de propriétés du matériau td> tr> |
npfix, nlod td> | Nombre de nœuds de contrainte, nombre de nœuds de chargement td> tr> |
NSTR td> | État de contrainte (déformation plane: 0, contrainte plane: 1) td> tr> |
t, E, po, alpha td> | Épaisseur de la plaque, coefficient d'élasticité, coefficient de Poisson, coefficient de dilatation linéaire td> tr> |
gamma, gkh, gkv td> | Poids volumique unitaire, accélération horizontale et verticale (rapport de g) td> tr> |
x, y, delta T td> | Coordonnée noeud x, coordonnée noeud y, changement de température du noeud td> tr> |
nœud, kox, koy td> | Numéro de nœud de restriction, présence / absence de contraintes de direction x et y (contrainte: 1, liberté: 0) td> tr> |
rdisx, rdisy td> | Déplacement des directions x et y (entrez 0 même si sans contrainte) td> tr> |
node, fx, fy td> | Load node number, x-direction load, y-direction load td> tr> |
npoin nele nsec npfix nlod NSTR
4 1 1 2 2 1
sec t E po alpha gamma gkh gkv
1 1.0000000e+00 1.0000000e+03 0.0000000e+00 1.0000000e-05 2.3000000e+00 0.000 0.000
node x y fx fy deltaT kox koy
1 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 1
2 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1
3 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+01 0.0000000e+00 0 0
4 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+01 0.0000000e+00 0 0
node kox koy rdis_x rdis_y
1 1 1 0.0000000e+00 0.0000000e+00
2 0 1 0.0000000e+00 0.0000000e+00
elem i j k l sec
1 1 2 3 4 1
node dis-x dis-y
1 0.0000000e+00 0.0000000e+00
2 8.8817842e-19 0.0000000e+00
3 1.7763568e-18 2.0000000e-02
4 4.1448326e-18 2.0000000e-02
elem sig_x sig_y tau_xy p1 p2 ang
1 -7.4014868e-16 2.0000000e+01 1.1333527e-16 2.0000000e+01 0.0000000e+00 9.0000000e+01
n=8 time=0.044 sec
nœud, dis-x, dis-y td> | Numéro de nœud, déplacement dans la direction x, déplacement dans la direction y td> tr> |
elme, sig_x, sig_y, tau_xy td> | Numéro d'élément, contrainte directe direction x, contrainte directe direction y, contrainte de cisaillement td> tr> |
p1, p2, ang td> | Première contrainte principale, seconde contrainte principale, direction de la première contrainte principale td> tr> |
n, temps td> | Liberté totale, temps de calcul td> tr> |
c'est tout