# Analyse aux éléments finis en nuage pour systèmes de fermes avec Node.js, React et Three.js
Cette application web monopage (SPA) hébergée dans le nuage, développée avec Node.js, Express.js, React.js, MobX et Three.js, simule des systèmes de fermes en 3D en utilisant le modèle de poutre d'Euler-Bernoulli. Le système de matrice de rigidité éparse est résolu par la méthode itérative du gradient conjugué. Les diagrammes des efforts internes dans les éléments de ferme sont visualisés sur GPU grâce à des shaders GLSL de sommets et de fragments, offrant un rendu instantané de polynômes de 5e degré en espace 3D.
Du côté client, une application monopage responsive propose l'inscription des utilisateurs, des profils privés de modèles, une galerie publique de projets et un visualiseur 3D. La barre de navigation et la scène Three.js fonctionnent parfaitement sur ordinateurs de bureau, tablettes et appareils mobiles.
Fondements mathématiques : théorie de la poutre d'Euler-Bernoulli
Pour une poutre de longueur L avec rigidité en flexion EJ₃ soumise à des charges ponctuelles F, des moments M, des charges réparties q(x) = kx + q₀ et des moments m(x) = rx + m₀, l'équation de flexion en coordonnées locales (x₁ le long de la poutre, x₂ verticale, x₃ transversale) s'écrit :
$$EJ_3 \dfrac{d^4v}{dx^4} = q(x) - \dfrac{dm}{dx}, \quad x\in[0,L]$$
Solution générale :
$$v(x)=\dfrac{kx^5}{120EJ_3}+\dfrac{(q_0-r)x^4}{24EJ_3}+a_4x^3+a_3x^2+a_2x+a_1$$
Les conditions aux limites v(0)=v¹, v'(0)=φ¹, v(L)=v², v'(L)=φ² déterminent les coefficients via les polynômes d'Hermite N_p^i :
$$v(x) = \dfrac{k}{EJ_3}(\dfrac{x^5}{120}-\dfrac{x^3L^2}{40}+\dfrac{x^2L^2}{60})+\dfrac{q_0-r}{EJ_3}(\dfrac{x^4}{24}-\dfrac{x^3L}{12}+\dfrac{x^2L^2}{24})+N_p^i\alpha_i^p$$
$$N_p^1\alpha_1^p=(2\dfrac{x^3}{L^3}-3\dfrac{x^2}{L^2}+1)v^1 + (-2\dfrac{x^3}{L^3}+3\dfrac{x^2}{L^2})v^2$$
$$N_p^2\alpha_2^p=(x^3/L^2-2x^2/L+x)φ^1 + (x^3/L^2-x^2/L)φ^2$$
Des principes variationnels de Lagrange, l'équation de rigidité locale est :
$$K_{pq}^{ij}\alpha_j^q=F_p^i,\quad K_{pq}^{ij}=EJ_3 \int_0^L N_{p,11}^i N_{q,11}^j dx$$
$$F_p^i = \int_0^L [q(x) N_p^i + m(x) N_{p,1}^i] dx + f_p^i$$
Pour la flexion plane dans le plan 0xy, la matrice de rigidité est :
$$\dfrac{EJ_3}{L^3}\begin{bmatrix} 12&6L&-12&6L\\ 6L&4L^2&-6L&2L^2\\-12&-6L&12&-6L\\6L&2L^2&-6L&4L^2\end{bmatrix} \left\lbrace \begin{matrix}v^1\\ \varphi^1\\v^2\\ \varphi^2 \end{matrix}\right\rbrace=\left\lbrace \begin{matrix} F_1\\M_1\\F_2\\M_2 \end{matrix}\right\rbrace$$
Transformation vers les coordonnées globales
Les déplacements locaux sont liés aux globaux via la matrice de transformation orthogonale a_ij (coordonnées de la base locale i,j,k dans le système global) :
$$\alpha_i^p = a_{im} \beta_m^p \Rightarrow \mathbb{K}_{pq}^{mn} = a_{im}^T K_{pq}^{ij} a_{jn}$$
$$a_{ij}=\begin{bmatrix}ix&iy&iz\\jx&jy&jz\\kx&ky&kz\end{bmatrix}$$
Le système global est résolu pour les déplacements nodaux β. La transformation inverse donne les déformations et rotations locales, puis les diagrammes d'efforts :
$$M_3(x)=-EJ_3\dfrac{d^2v}{dx^2}, \quad Q(x) = -\dfrac{dM}{dx} - m(x)$$
Pour l'extension-compression axiale (i,j,m,n={1,2,3}), la matrice de transformation 6x6 est :
$$\begin{bmatrix} ix & iy & iz & 0 & 0 & 0 \\ jx & jy &jz & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & ix & iy & iz \\ 0&0&0&jx&jy&jz\\0&0&0&0&0&1\end{bmatrix}$$
Matrice de rigidité locale 6x6 incluant EA/L pour l'extension axiale u et EJ pour la flexion :
$$K_{pq}^{ij} = \begin{bmatrix} \frac{EA}{L} & 0 & 0 & -\frac{EA}{L} & 0 & 0 \\ 0 & \frac{12EJ}{L^3} &\frac{6EJ}{L^2} & 0 & -\frac{12EJ}{L^3} &\frac{6EJ}{L^2}\\ 0 & \frac{6EJ}{L^2} & \frac{4EJ}{L} & 0 & -\frac{6EJ}{L^2} & \frac{2EJ}{L} \\ -\frac{EA}{L} & 0 & 0 &\frac{EA}{L} & 0 & 0 \\ 0 & -\frac{12EJ}{L^3} &-\frac{6EJ}{L^2} & 0 & \frac{12EJ}{L^3} &-\frac{6EJ}{L^2}\\ 0 & \frac{6EJ}{L^2} & \frac{2EJ}{L} & 0 & -\frac{6EJ}{L^2} & \frac{4EJ}{L}\end{bmatrix}$$
Exemples de diagrammes d'efforts et visualisation
- Diagrammes de déflexion Uy pour une ossature 3D sous torsion M₃ : polynôme de 5e degré sous charge linéaire q(x).
- Diagrammes de moments dans une ossature à 3 éléments : polynôme de 3e degré le long de chaque poutre.
Les diagrammes sont calculés analytiquement à partir des déplacements nodaux et rendus en temps réel via des shaders pour chaque élément.
Points forts clés
- Solveur hybride numérique-analytique combinant polynômes exacts et itération du gradient conjugué pour systèmes épars volumineux.
- Shaders GLSL pour une visualisation accélérée par GPU des diagrammes d'efforts 3D.
- Modèle complet 6-DOF : flexion + axial avec transformations orthogonales.
- Interface SPA responsive sur React/MobX/Three.js adaptée aux ingénieurs.
- Modèles publics/privés hébergés dans le nuage via Node.js/Express.js.
— Editorial Team
Aucun commentaire pour le moment.