{"id":1296,"date":"2026-08-21T14:31:15","date_gmt":"2026-08-21T14:31:15","guid":{"rendered":"https:\/\/matforge.org\/?p=1296","raw":"https:\/\/matforge.org\/?p=1296"},"modified":"2026-08-21T14:31:15","modified_gmt":"2026-08-21T14:31:15","slug":"spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them","status":"publish","type":"post","link":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/","title":{"rendered":"M\u00e9thodes spectrales pour la simulation PDE : th\u00e9orie, mise en \u0153uvre et quand les utiliser","raw":"M\u00e9thodes spectrales pour la simulation PDE : th\u00e9orie, mise en \u0153uvre et quand les utiliser"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 12<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><article>\n<p>Les m\u00e9thodes spectrales sont des techniques num\u00e9riques d&rsquo;ordre \u00e9lev\u00e9 pour r\u00e9soudre les \u00e9quations aux d\u00e9riv\u00e9es partielles. Contrairement aux m\u00e9thodes de diff\u00e9rences finies, qui se rapprochent des d\u00e9riv\u00e9s par le biais de pochoirs locaux, les m\u00e9thodes spectrales repr\u00e9sentent la solution avec des fonctions de base qui s&rsquo;\u00e9tendent sur l&rsquo;ensemble du domaine de calcul.<\/p>\n<p>Les choix courants incluent les modes de Fourier pour les probl\u00e8mes p\u00e9riodiques et les polyn\u00f4mes de Chebyshev ou Legendre pour les domaines born\u00e9s et non p\u00e9riodiques. Lorsque la solution est suffisamment lisse, ces approximations globales peuvent atteindre une pr\u00e9cision tr\u00e8s \u00e9lev\u00e9e avec relativement peu de degr\u00e9s de libert\u00e9.<\/p>\n<p>Cet avantage s&rsquo;accompagne d&rsquo;importantes limitations. Les m\u00e9thodes spectrales fonctionnent mieux sur des domaines simples avec des solutions fluides et des conditions aux limites bien d\u00e9finies. Les discontinuit\u00e9s provoquent des oscillations, une g\u00e9om\u00e9trie complexe affaiblit la commodit\u00e9 des bases globales et l&rsquo;int\u00e9gration explicite dans le temps peut devenir s\u00e9v\u00e8rement restreinte \u00e0 mesure que la r\u00e9solution augmente.<\/p>\n<h2>Quelles sont les m\u00e9thodes spectrales ?<\/h2>\n<p>Une m\u00e9thode spectrale se rapproche d&rsquo;une fonction comme une somme pond\u00e9r\u00e9e de fonctions de base lisses :<\/p>\n<pre><code>u(x) \u2248 \u03a3 c\u2099 \u03c6\u2099(x)<\/code><\/pre>\n<p>Les fonctions <code>\u03c6\u2099<\/code> forment la base spectrale, tandis que les coefficients <code>c\u2099<\/code> d\u00e9crivent la contribution de chaque mode. Au lieu de stocker uniquement des informations locales, chaque coefficient peut affecter l&rsquo;approximation sur le domaine complet.<\/p>\n<p>La base doit refl\u00e9ter la structure du probl\u00e8me. Les fonctions de Fourier sont naturelles pour les domaines p\u00e9riodiques car elles satisfont d\u00e9j\u00e0 \u00e0 la p\u00e9riodicit\u00e9. Les polyn\u00f4mes de Chebyshev et Legendre sont couramment utilis\u00e9s sur des intervalles finis tels que <code>[-1, 1]<\/code>.<\/p>\n<p>Les m\u00e9thodes spectrales ne sont pas simplement des sch\u00e9mas de diff\u00e9rences finies tr\u00e8s \u00e9lev\u00e9es. Ils suivent une strat\u00e9gie d&rsquo;approximation diff\u00e9rente. Les m\u00e9thodes locales construisent la solution \u00e0 partir d&rsquo;informations dans des cellules ou des \u00e9l\u00e9ments \u00e0 proximit\u00e9. Les m\u00e9thodes spectrales utilisent des modes globaux qui peuvent d\u00e9crire une fonction fluide avec une efficacit\u00e9 remarquable.<\/p>\n<h2>Trois principales formulations spectrales<\/h2>\n<p>Les m\u00e9thodes spectrales peuvent appliquer la PDE gouvernante de plusieurs mani\u00e8res.<\/p>\n<h3>M\u00e9thodes de collocation<\/h3>\n<p>Une m\u00e9thode de collocation n\u00e9cessite que l&rsquo;\u00e9quation diff\u00e9rentielle soit maintenue aux points de grille s\u00e9lectionn\u00e9s. Ces points sont souvent connect\u00e9s \u00e0 la r\u00e8gle de base et de quadrature, tels que les points de grille de Fourier ou les n\u0153uds Chebyshev-Gauss-Lobatto.<\/p>\n<p>La collocation est populaire car elle convertit les d\u00e9riv\u00e9s en op\u00e9rations matricielles ou en transformations spectrales. Il est \u00e9galement relativement facile \u00e0 combiner avec des termes non lin\u00e9aires \u00e9valu\u00e9s dans l&rsquo;espace physique.<\/p>\n<h3>M\u00e9thodes de Galerkin<\/h3>\n<p>Une m\u00e9thode de Galerkin projette le r\u00e9sidu de la PDE sur les fonctions de base s\u00e9lectionn\u00e9es. Le r\u00e9sidu n&rsquo;a pas besoin de dispara\u00eetre \u00e0 chaque point, mais il doit \u00eatre orthogonal \u00e0 l&rsquo;espace d&rsquo;approximation.<\/p>\n<p>Cette formulation fournit une forme faible naturelle et peut pr\u00e9server d&rsquo;importantes propri\u00e9t\u00e9s d&rsquo;\u00e9nergie ou de sym\u00e9trie lorsqu&rsquo;elle est con\u00e7ue avec soin.<\/p>\n<h3>M\u00e9thodes TAU<\/h3>\n<p>Une m\u00e9thode TAU modifie les \u00e9quations s\u00e9lectionn\u00e9es associ\u00e9es aux modes d&rsquo;ordre le plus \u00e9lev\u00e9 afin que les conditions aux limites puissent \u00eatre impos\u00e9es. Il est \u00e9troitement li\u00e9 \u00e0 l&rsquo;approche de Galerkin mais g\u00e8re les contraintes diff\u00e9remment.<\/p>\n<p>Les logiciels spectraux modernes peuvent masquer une grande partie de ces d\u00e9tails d&rsquo;impl\u00e9mentation. Cependant, les utilisateurs doivent encore comprendre comment la formulation choisie repr\u00e9sente les conditions aux limites et les op\u00e9rateurs diff\u00e9rentiels.<\/p>\n<h2>M\u00e9thodes spectrales de Fourier<\/h2>\n<p>Les m\u00e9thodes de Fourier repr\u00e9sentent une solution p\u00e9riodique comme une somme des modes trigonom\u00e9triques :<\/p>\n<pre><code>u(x) \u2248 \u03a3 \u00fb\u2096 exp(ikx)<\/code><\/pre>\n<p>La diff\u00e9renciation devient particuli\u00e8rement simple dans l&rsquo;espace spectral :<\/p>\n<pre><code>d\u00fb\u2096\/dx = ik \u00fb\u2096<\/code><\/pre>\n<p>Un solveur num\u00e9rique peut donc transformer la solution en coefficients de Fourier, multiplier chaque coefficient par le nombre d&rsquo;onde appropri\u00e9 et transformer le r\u00e9sultat en espace physique.<\/p>\n<p>La transform\u00e9e de Fourier rapide r\u00e9duit le co\u00fbt de ces op\u00e9rations \u00e0 environ <code>O(N log N)<\/code>. Cela rend les m\u00e9thodes de Fourier tr\u00e8s efficaces pour les simulations p\u00e9riodiques impliquant des ondes, la turbulence, la dynamique des fluides et la formation de motifs.<\/p>\n<h2>Un d\u00e9riv\u00e9 de Fourier en Python<\/h2>\n<p>La fonction suivante calcule la premi\u00e8re d\u00e9riv\u00e9e d&rsquo;une fonction p\u00e9riodique \u00e9chantillonn\u00e9e sur une grille uniforme :<\/p>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.fft import fft, ifft, fftfreq\n\ndef fourier_derivative(values, domain_length):\n    \"\"\"Return the first derivative of periodic grid data.\"\"\"\n\n    number_of_points = len(values)\n    spacing = domain_length \/ number_of_points\n\n    wave_numbers = (\n        2.0\n        * np.pi\n        * fftfreq(number_of_points, d=spacing)\n    )\n\n    spectral_values = fft(values)\n    spectral_derivative = (\n        1j\n        * wave_numbers\n        * spectral_values\n    )\n\n    return ifft(spectral_derivative).real\n\n\n# Example\nlength = 2.0 * np.pi\npoints = 128\n\nx = np.linspace(\n    0.0,\n    length,\n    points,\n    endpoint=False\n)\n\nvalues = np.sin(3.0 * x)\nderivative = fourier_derivative(values, length)\n\nexact_derivative = 3.0 * np.cos(3.0 * x)\nerror = np.max(np.abs(derivative - exact_derivative))\n\nprint(\"Maximum error:\", error)<\/code><\/pre>\n<p>Pour une fonction p\u00e9riodique lisse qui est bien r\u00e9solue par la grille, la d\u00e9riv\u00e9e peut \u00eatre extr\u00eamement pr\u00e9cise. La m\u00e9thode \u00e9vite \u00e9galement l&rsquo;erreur de troncature associ\u00e9e \u00e0 un pochoir \u00e0 diff\u00e9rences finies courtes.<\/p>\n<h2>M\u00e9thodes spectrales de Chebyshev<\/h2>\n<p>Les modes de Fourier ne conviennent pas lorsque la solution n&rsquo;est pas p\u00e9riodique. Les m\u00e9thodes de Chebyshev offrent une alternative courante sur un intervalle fini.<\/p>\n<p>Les n\u0153uds Chebyshev-Gauss-Lobatto sont d\u00e9finis par :<\/p>\n<pre><code>x\u2c7c = cos(\u03c0j \/ N),  j = 0, ..., N<\/code><\/pre>\n<p>Ces points se regroupent \u00e0 proximit\u00e9 des points de terminaison. Le regroupement am\u00e9liore l&rsquo;interpolation polynomiale et aide \u00e0 contr\u00f4ler les grandes oscillations qui peuvent se produire avec une interpolation d&rsquo;ordre \u00e9lev\u00e9 \u00e9quidistant.<\/p>\n<p>Le m\u00eame clustering cr\u00e9e \u00e9galement un d\u00e9fi de pas de temps. Le plus petit espacement pr\u00e8s des limites devient beaucoup plus petit que l&rsquo;espacement moyen de la grille, ce qui peut imposer des limites de stabilit\u00e9 restrictives aux m\u00e9thodes explicites.<\/p>\n<h2>Construire une matrice de diff\u00e9renciation de Chebyshev<\/h2>\n<p>L&rsquo;impl\u00e9mentation suivante cr\u00e9e la matrice de diff\u00e9renciation de Chebyshev standard du premier ordre :<\/p>\n<pre><code class=\"language-python\">import numpy as np\n\ndef chebyshev_differentiation_matrix(order):\n    \"\"\"Return Chebyshev nodes and first derivative matrix.\"\"\"\n\n    if order == 0:\n        return (\n            np.array([1.0]),\n            np.array([[0.0]])\n        )\n\n    indices = np.arange(order + 1)\n    nodes = np.cos(np.pi * indices \/ order)\n\n    coefficients = np.ones(order + 1)\n    coefficients[0] = 2.0\n    coefficients[-1] = 2.0\n\n    coefficients *= (-1.0) ** indices\n\n    node_matrix = np.tile(\n        nodes,\n        (order + 1, 1)\n    )\n\n    differences = (\n        node_matrix.T\n        - node_matrix\n    )\n\n    ratio_matrix = np.outer(\n        coefficients,\n        1.0 \/ coefficients\n    )\n\n    derivative_matrix = (\n        ratio_matrix\n        \/ (\n            differences\n            + np.eye(order + 1)\n        )\n    )\n\n    derivative_matrix -= np.diag(\n        np.sum(\n            derivative_matrix,\n            axis=1\n        )\n    )\n\n    return nodes, derivative_matrix\n\n\n# Example\norder = 32\nx, derivative_matrix = (\n    chebyshev_differentiation_matrix(order)\n)\n\nvalues = np.exp(x)\nnumerical_derivative = derivative_matrix @ values\nexact_derivative = np.exp(x)\n\nerror = np.max(\n    np.abs(\n        numerical_derivative\n        - exact_derivative\n    )\n)\n\nprint(\"Maximum error:\", error)<\/code><\/pre>\n<p>La matrice de diff\u00e9renciation est dense car chaque fonction de base globale influence l&rsquo;intervalle entier. Une multiplication directe matrice-vecteur a un co\u00fbt d&rsquo;environ <code>O(N\u00b2)<\/code>.<\/p>\n<p>Pour des probl\u00e8mes unidimensionnels mod\u00e9r\u00e9s, cela peut toujours \u00eatre pratique. Les simulations plus grandes peuvent utiliser des m\u00e9thodes bas\u00e9es sur des transformations, des reformulations clairsem\u00e9es, une d\u00e9composition de domaine ou des biblioth\u00e8ques sp\u00e9cialis\u00e9es.<\/p>\n<h2>Pourquoi la convergence spectrale peut \u00eatre si rapide<\/h2>\n<p>Le principal avantage des m\u00e9thodes spectrales est leur taux de convergence pour des solutions fluides. Une diff\u00e9rence finie d&rsquo;ordre faible ou une m\u00e9thode d&rsquo;\u00e9l\u00e9ments finis converge normalement de mani\u00e8re alg\u00e9brique :<\/p>\n<pre><code>Error \u2248 C N\u207b\u1d56<\/code><\/pre>\n<p>La valeur de <code>p<\/code> d\u00e9pend de l&rsquo;ordre de la m\u00e9thode. Par exemple, doubler le nombre de points dans une m\u00e9thode de second ordre peut r\u00e9duire l&rsquo;erreur d&rsquo;environ un facteur de quatre lorsque la solution est dans la plage de convergence asymptotique.<\/p>\n<p>Pour une solution analytique, une approximation spectrale peut converger g\u00e9om\u00e9triquement ou exponentiellement :<\/p>\n<pre><code>Error \u2248 C exp(-\u03b1N)<\/code><\/pre>\n<p>Cela signifie que l&rsquo;augmentation du nombre de modes peut r\u00e9duire l&rsquo;erreur beaucoup plus rapidement que l&rsquo;augmentation de la r\u00e9solution d&rsquo;une m\u00e9thode locale d&rsquo;ordre inf\u00e9rieur.<\/p>\n<p>Une introduction pratique avec des exemples num\u00e9riques est disponible dans <a href=\"https:\/\/doi.org\/10.1137\/1.9780898712877\" rel=\"nofollow\" target=\"_blank\"><i>M\u00e9thodes spectrales dans Matlab<\/i><\/a>.<\/p>\n<h2>L&rsquo;exigence de douceur<\/h2>\n<p>La convergence exponentielle ne se produit pas pour toutes les fonctions. Cela d\u00e9pend de la r\u00e9gularit\u00e9 de la solution exacte.<\/p>\n<ul>\n<li>Une solution analytique peut produire une convergence g\u00e9om\u00e9trique ou exponentielle.<\/li>\n<li>Une solution infiniment diff\u00e9rentiable mais non analytique peut produire une convergence plus rapide qu&rsquo;alg\u00e9brique sans un taux exponentiel fixe.<\/li>\n<li>Une solution avec seulement un nombre fini de d\u00e9riv\u00e9s produit normalement une convergence alg\u00e9brique.<\/li>\n<li>Une solution discontinue cr\u00e9e des oscillations de Gibbs et supprime le principal avantage d&rsquo;une base lisse globale.<\/li>\n<\/ul>\n<p>Les coefficients lisses ne garantissent pas une solution lisse. Les coins, les conditions aux limites incompatibles, le for\u00e7age discontinu, les interfaces de mat\u00e9riaux et les donn\u00e9es initiales singuli\u00e8res peuvent r\u00e9duire la r\u00e9gularit\u00e9.<\/p>\n<p>Avant de s\u00e9lectionner une m\u00e9thode spectrale, les chercheurs doivent examiner la douceur attendue de la solution plut\u00f4t que uniquement l&rsquo;apparence de l&rsquo;\u00e9quation gouvernante.<\/p>\n<h2>Le ph\u00e9nom\u00e8ne Gibbs<\/h2>\n<p>Une expansion globale de Fourier ou polynomiale ne peut repr\u00e9senter un saut sans osciller \u00e0 proximit\u00e9. Ce comportement est connu comme le ph\u00e9nom\u00e8ne Gibbs.<\/p>\n<p>Au fur et \u00e0 mesure que le nombre de modes augmente, la r\u00e9gion oscillatoire devient plus \u00e9troite, mais le d\u00e9passement maximum pr\u00e8s de la discontinuit\u00e9 ne dispara\u00eet pas de la m\u00eame mani\u00e8re que l&rsquo;erreur de r\u00e9gion lisse ordinaire.<\/p>\n<p>Ces oscillations peuvent cr\u00e9er des concentrations n\u00e9gatives, des valeurs de pression non physiques ou des calculs non lin\u00e9aires instables. Le filtrage peut les r\u00e9duire, mais le filtrage supprime \u00e9galement les informations \u00e0 haute fr\u00e9quence et introduit la dissipation.<\/p>\n<p>Les m\u00e9thodes spectrales globales pures sont donc rarement le premier choix pour les lois de conservation domin\u00e9es par les chocs.<\/p>\n<h2>M\u00e9thodes spectrales multidomaines<\/h2>\n<p>Une fa\u00e7on de pr\u00e9server la pr\u00e9cision spectrale est de diviser le domaine en sous-domaines. Chaque sous-domaine re\u00e7oit sa propre expansion spectrale en douceur.<\/p>\n<p>Si une interface de discontinuit\u00e9 ou de mat\u00e9riau se situe exactement sur une limite de sous-domaine, l&rsquo;approximation \u00e0 l&rsquo;int\u00e9rieur de chaque r\u00e9gion peut rester lisse. Conditions d&rsquo;interface puis connectez les solutions de sous-domaine.<\/p>\n<p>Cette approche est courante en astrophysique et en relativit\u00e9 num\u00e9rique. Un examen d\u00e9taill\u00e9 est disponible dans le <a href=\"https:\/\/pmc.ncbi.nlm.nih.gov\/articles\/PMC5253976\/\" rel=\"nofollow\" target=\"_blank\">M\u00e9thodes spectrales pour la relativit\u00e9 num\u00e9rique<\/a>.<\/p>\n<p>Les formulations multidomaines cr\u00e9ent \u00e9galement un pont entre les m\u00e9thodes spectrales globales et les techniques d&rsquo;\u00e9l\u00e9ments spectraux.<\/p>\n<h2>Approches de capture des chocs<\/h2>\n<p>Plusieurs techniques ont \u00e9t\u00e9 d\u00e9velopp\u00e9es pour stabiliser les approximations spectrales \u00e0 proximit\u00e9 des chocs. Ils comprennent le filtrage spectral, la viscosit\u00e9 de la disparition spectrale, la relaxation et la suppression p\u00e9riodique des modes \u00e0 haute fr\u00e9quence non r\u00e9solus.<\/p>\n<p>Des travaux r\u00e9cents sur la relaxation spectrale et la purge spectrale examinent comment des noyaux soigneusement con\u00e7us peuvent contr\u00f4ler les oscillations tout en conservant des informations utiles \u00e0 petite \u00e9chelle. Un exemple est l&rsquo;\u00e9tude <a href=\"https:\/\/arxiv.org\/abs\/2402.17688\" rel=\"nofollow\" target=\"_blank\">M\u00e9thodes spectrales nouvelles pour la capture des chocs et la suppression de Tygers dans Dynamique des fluides informatique<\/a>.<\/p>\n<p>Ces techniques peuvent am\u00e9liorer une simulation spectrale, mais elles ne font pas un probl\u00e8me discontinu \u00e9quivalent \u00e0 un probl\u00e8me lisse. La m\u00e9thode, la force du filtre, la r\u00e9solution et les propri\u00e9t\u00e9s de conservation n\u00e9cessitent toujours une validation minutieuse.<\/p>\n<h2>Restrictions de pas de temps<\/h2>\n<p>Une pr\u00e9cision spatiale \u00e9lev\u00e9e ne supprime pas les limites de stabilit\u00e9 temporelle. En fait, les discr\u00e9tisations spectrales peuvent produire de grandes valeurs propres qui rendent l&rsquo;int\u00e9gration explicite du temps restrictive.<\/p>\n<p>Pour la discr\u00e9tisation de Fourier de l&rsquo;advection du premier ordre, le plus grand nombre d&rsquo;ondes augmente proportionnellement \u00e0 <code>N<\/code>. Une limite de stabilit\u00e9 explicite est donc souvent approximative :<\/p>\n<pre><code>\u0394t \u221d N\u207b\u00b9<\/code><\/pre>\n<p>Pour la discr\u00e9tisation de Fourier de la diffusion, les valeurs propres augmentent comme le carr\u00e9 du nombre d&rsquo;ondes&nbsp;:<\/p>\n<pre><code>\u0394t \u221d N\u207b\u00b2<\/code><\/pre>\n<p>Le clustering de points Chebyshev rend les limites explicites plus restrictives. Pour les probl\u00e8mes de premi\u00e8re d\u00e9riv\u00e9e, la limite pratique peut \u00e9voluer \u00e0 peu pr\u00e8s comme <code>N\u207b\u00b2<\/code>. Pour les op\u00e9rateurs de diffusion de la deuxi\u00e8me d\u00e9riv\u00e9e, cela peut devenir encore plus grave.<\/p>\n<p>La condition exacte d\u00e9pend de la PDE, du traitement des limites, de la formulation et de l&rsquo;int\u00e9grateur de temps. Il ne doit pas \u00eatre r\u00e9duit \u00e0 un seul exposant universel.<\/p>\n<h2>Int\u00e9gration implicite et IMEX<\/h2>\n<p>Les m\u00e9thodes implicites peuvent \u00e9viter les restrictions de stabilit\u00e9 les plus fortes associ\u00e9es \u00e0 la diffusion lin\u00e9aire ou \u00e0 d&rsquo;autres termes rigides. Les formules de Crank-Nicolson et de diff\u00e9renciation vers l&rsquo;arri\u00e8re sont des choix courants.<\/p>\n<p>Une m\u00e9thode IMEX traite implicitement les termes lin\u00e9aires rigides et \u00e9value explicitement les termes non lin\u00e9aires ou moins restrictifs&nbsp;:<\/p>\n<pre><code>\u2202u\/\u2202t = L(u) + N(u)<\/code><\/pre>\n<p>L&rsquo;op\u00e9rateur lin\u00e9aire <code>L<\/code> peut repr\u00e9senter la diffusion, tandis que <code>N<\/code> contient une advection ou une r\u00e9action non lin\u00e9aire. Cette structure est largement utilis\u00e9e dans les logiciels Spectral PDE.<\/p>\n<p>Une comparaison plus large est disponible dans le guide <a href=\"https:\/\/matforge.org\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\">M\u00e9thodes d&rsquo;int\u00e9gration temporelle pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites<\/a>.<\/p>\n<h2>Termes non lin\u00e9aires et alias<\/h2>\n<p>Les produits non lin\u00e9aires cr\u00e9ent des modes avec des fr\u00e9quences sup\u00e9rieures \u00e0 la r\u00e9solution d&rsquo;origine. Lorsque ces modes sont \u00e9chantillonn\u00e9s sur la grille existante, ils peuvent appara\u00eetre de mani\u00e8re incorrecte en tant que composants \u00e0 basse fr\u00e9quence. C&rsquo;est ce qu&rsquo;on appelle le cr\u00e9nelage.<\/p>\n<p>Les solveurs pseudospectraux calculent g\u00e9n\u00e9ralement des d\u00e9riv\u00e9s dans l&rsquo;espace spectral et des produits non lin\u00e9aires dans l&rsquo;espace physique. Avant de transformer le produit, ils peuvent appliquer la distribution.<\/p>\n<p>La r\u00e8gle commune des deux tiers supprime les modes de Fourier les plus \u00e9lev\u00e9s apr\u00e8s une multiplication non lin\u00e9aire. Une autre approche renforce la repr\u00e9sentation spectrale vers une grille plus grande, effectue la multiplication et tronque le r\u00e9sultat.<\/p>\n<p>Sans n\u00e9gocier, une simulation peut devenir inexacte ou instable m\u00eame lorsque la grille spatiale semble suffisamment fine.<\/p>\n<h2>Utiliser Dedalus<\/h2>\n<p>La construction d&rsquo;un solveur spectral multidimensionnel complet n\u00e9cessite une gestion de base, des transformations, des \u00e9quations de limites, une distribution parall\u00e8le et une int\u00e9gration temporelle. Le <a href=\"https:\/\/dedalus-project.readthedocs.io\/\" rel=\"nofollow\" target=\"_blank\">DeDalus Documentation<\/a> d\u00e9crit un framework Python con\u00e7u sp\u00e9cifiquement pour les simulations PDE spectrales.<\/p>\n<p>Dedalus prend en charge les bases de Fourier et polynomiales, les probl\u00e8mes de valeurs initiales, les probl\u00e8mes de valeurs limites, les probl\u00e8mes de valeurs propres et l&rsquo;ex\u00e9cution parall\u00e8le. Il fournit \u00e9galement des outils bas\u00e9s sur Tau pour imposer des contraintes dans des domaines non p\u00e9riodiques.<\/p>\n<p>Les utilisateurs doivent suivre la syntaxe de la version de Dedalus install\u00e9e, car son API a chang\u00e9 entre les principales versions. Conceptuellement, le flux de travail reste coh\u00e9rent :<\/p>\n<ol>\n<li>S\u00e9lectionnez les coordonn\u00e9es et les bases spectrales.<\/li>\n<li>Cr\u00e9ez des champs pour les variables d\u00e9pendantes.<\/li>\n<li>D\u00e9finissez les \u00e9quations et les contraintes de limites.<\/li>\n<li>S\u00e9lectionnez un int\u00e9grateur de temps ou un solveur lin\u00e9aire.<\/li>\n<li>D\u00e9finissez les t\u00e2ches de r\u00e9solution, de n\u00e9gociation et de sortie.<\/li>\n<li>Ex\u00e9cutez les contr\u00f4les de convergence et de stabilit\u00e9.<\/li>\n<\/ol>\n<h2>M\u00e9thodes spectrales et conditions aux limites<\/h2>\n<p>Les conditions aux limites p\u00e9riodiques sont construites naturellement dans une base de Fourier. Les conditions non p\u00e9riodiques n\u00e9cessitent plus de travail.<\/p>\n<p>Les conditions de Dirichlet ou de Neumann peuvent \u00eatre impos\u00e9es en rempla\u00e7ant les \u00e9quations de collocation, en construisant des fonctions de base qui satisfont d\u00e9j\u00e0 aux conditions ou en ajoutant des variables et des contraintes TAU.<\/p>\n<p>L&rsquo;approche s\u00e9lectionn\u00e9e affecte le conditionnement de la matrice et la structure du syst\u00e8me final. Les conditions aux limites doivent donc \u00eatre prises en compte lors de la s\u00e9lection de la base, et non seulement une fois la discr\u00e9tisation spatiale termin\u00e9e.<\/p>\n<p>La recherche sur les bases orthogonales des EDP d\u00e9pendant du temps fournit des moyens suppl\u00e9mentaires de classer les syst\u00e8mes de base et le comportement aux limites. Une discussion math\u00e9matique r\u00e9cente est disponible dans <a href=\"https:\/\/arxiv.org\/abs\/2402.16744\" rel=\"nofollow\" target=\"_blank\">Foundations math\u00e9matiques des m\u00e9thodes spectrales pour les PDE d\u00e9pendantes du temps <\/a>.<\/p>\n<h2>M\u00e9thodes spectrales vs Galerkin discontinu<\/h2>\n<p>Les m\u00e9thodes de Galerkin spectrale et discontinue utilisent toutes deux une approximation polynomiale, mais elles r\u00e9partissent diff\u00e9remment la base.<\/p>\n<p>Une m\u00e9thode spectrale traditionnelle utilise une base globale dans l&rsquo;ensemble du domaine. Une m\u00e9thode DG attribue une base polynomiale distincte \u00e0 chaque \u00e9l\u00e9ment et permet des sauts entre les \u00e9l\u00e9ments voisins.<\/p>\n<table class=\"custom-table\">\n<tbody>\n<tr>\n<th>aspect<\/th>\n<th>M\u00e9thode spectrale globale<\/th>\n<th>M\u00e9thode Galerkin discontinue<\/th>\n<\/tr>\n<tr>\n<td>Assistance de base<\/td>\n<td>Globalement dans le domaine<\/td>\n<td>local \u00e0 chaque \u00e9l\u00e9ment<\/td>\n<\/tr>\n<tr>\n<td>Meilleure convergence<\/td>\n<td>G\u00e9om\u00e9trique pour des solutions analytiques<\/td>\n<td>Alg\u00e9brique d&rsquo;ordre \u00e9lev\u00e9 ou p-convergence rapide dans les r\u00e9gions lisses<\/td>\n<\/tr>\n<tr>\n<td>G\u00e9om\u00e9trie<\/td>\n<td>Le plus pratique sur des domaines simples<\/td>\n<td>Convient aux mailles non structur\u00e9es complexes<\/td>\n<\/tr>\n<tr>\n<td>discontinuit\u00e9s<\/td>\n<td>causer des oscillations mondiales de Gibbs<\/td>\n<td>Peut \u00eatre plac\u00e9 \u00e0 des interfaces d&rsquo;\u00e9l\u00e9ments<\/td>\n<\/tr>\n<tr>\n<td>Pr\u00e9servation<\/td>\n<td>d\u00e9pend de la formulation<\/td>\n<td>Conservation locale \u00e0 travers des flux d&rsquo;interface<\/td>\n<\/tr>\n<tr>\n<td>La communication<\/td>\n<td>Transformations globales ou op\u00e9rateurs denses<\/td>\n<td>Principalement un travail d&rsquo;\u00e9l\u00e9ment local avec un \u00e9change de visages<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Les m\u00e9thodes d&rsquo;\u00e9l\u00e9ment spectral et de diff\u00e9rence spectrale combinent la d\u00e9composition du domaine local avec une approximation d&rsquo;ordre \u00e9lev\u00e9 \u00e0 l&rsquo;int\u00e9rieur de chaque \u00e9l\u00e9ment. Un exemple orient\u00e9 python de la connexion entre une approximation locale d&rsquo;ordre \u00e9lev\u00e9 et DG est d\u00e9crit dans <a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S235271102200005X\" rel=\"nofollow\" target=\"_blank\">Quail&nbsp;: un code Galerkin discontinu l\u00e9ger open-source en python<\/a>.<\/p>\n<h2>Quand les m\u00e9thodes spectrales fonctionnent mieux<\/h2>\n<p>Une m\u00e9thode spectrale globale est un choix fort lorsque :<\/p>\n<ul>\n<li>La solution attendue est lisse ou analytique.<\/li>\n<li>Le domaine est p\u00e9riodique, rectangulaire ou unidimensionnel.<\/li>\n<li>Les conditions aux limites correspondent \u00e0 la base s\u00e9lectionn\u00e9e.<\/li>\n<li>Une pr\u00e9cision spatiale \u00e9lev\u00e9e est plus importante que la flexibilit\u00e9 g\u00e9om\u00e9trique.<\/li>\n<li>Le probl\u00e8me peut utiliser des transformations bas\u00e9es sur FFT ou des matrices denses mod\u00e9r\u00e9es.<\/li>\n<li>Les discontinuit\u00e9s et les interfaces mat\u00e9rielles nettes sont absentes.<\/li>\n<\/ul>\n<p>Les applications typiques comprennent la propagation des ondes lisses, l&rsquo;analyse de stabilit\u00e9, les flux incompressibles sur des domaines simples, les mod\u00e8les quantiques, la formation de motifs et les probl\u00e8mes s\u00e9lectionn\u00e9s en g\u00e9ophysique et en astrophysique.<\/p>\n<h2>Quand une autre m\u00e9thode est meilleure<\/h2>\n<p>Le volume fini ou les m\u00e9thodes DG sont g\u00e9n\u00e9ralement plus naturels lorsque les chocs, les discontinuit\u00e9s de contact ou la conservation locale stricte dominent le probl\u00e8me.<\/p>\n<p>Les m\u00e9thodes des \u00e9l\u00e9ments finis et des \u00e9l\u00e9ments spectraux peuvent \u00eatre plus appropri\u00e9es pour la g\u00e9om\u00e9trie compliqu\u00e9e, le raffinement local et les limites irr\u00e9guli\u00e8res.<\/p>\n<p>Les m\u00e9thodes de diff\u00e9rences finies d&rsquo;ordre inf\u00e9rieur peuvent rester pr\u00e9f\u00e9rables lorsque la facilit\u00e9 de mise en \u0153uvre, l&rsquo;alg\u00e8bre lin\u00e9aire clairsem\u00e9e et le comportement local pr\u00e9visible sont plus importants qu&rsquo;une pr\u00e9cision extr\u00eame.<\/p>\n<p>La d\u00e9cision doit \u00eatre bas\u00e9e sur la r\u00e9gularit\u00e9 de la solution, la g\u00e9om\u00e9trie du domaine, les conditions aux limites, les restrictions d&rsquo;\u00e9chelle de temps et la sortie qui doit \u00eatre pr\u00e9dite.<\/p>\n<h2>Un tableau de s\u00e9lection pratique<\/h2>\n<table class=\"custom-table\">\n<tbody>\n<tr>\n<th>Probl\u00e8me<\/th>\n<th>M\u00e9thode sugg\u00e9r\u00e9e<\/th>\n<th>Raison<\/th>\n<\/tr>\n<tr>\n<td>PDE p\u00e9riodique lisse<\/td>\n<td>M\u00e9thode spectrale de Fourier<\/td>\n<td>Transformations rapides et p\u00e9riodicit\u00e9 naturelle<\/td>\n<\/tr>\n<tr>\n<td>PDE lisse sur un intervalle fini<\/td>\n<td>M\u00e9thode Chebyshev ou Legendre<\/td>\n<td>Haute pr\u00e9cision avec des limites non p\u00e9riodiques<\/td>\n<\/tr>\n<tr>\n<td>Probl\u00e8me lisse sur la g\u00e9om\u00e9trie complexe<\/td>\n<td>\u00c9l\u00e9ment spectral ou FEM d&rsquo;ordre \u00e9lev\u00e9<\/td>\n<td>Combine la g\u00e9om\u00e9trie locale avec une approximation d&rsquo;ordre \u00e9lev\u00e9<\/td>\n<\/tr>\n<tr>\n<td>Loi de conservation domin\u00e9e par les chocs<\/td>\n<td>M\u00e9thode DG ou volume fini<\/td>\n<td>Un meilleur soutien aux discontinuit\u00e9s et \u00e0 la conservation locale<\/td>\n<\/tr>\n<tr>\n<td>M\u00e9lange de r\u00e9gions lisses et non lisses<\/td>\n<td>M\u00e9thode des \u00e9l\u00e9ments multidomaines ou spectraux<\/td>\n<td>S\u00e9pare les extensions fluides par r\u00e9gion<\/td>\n<\/tr>\n<tr>\n<td>PDE rigide et lisse<\/td>\n<td>M\u00e9thode spectrale avec int\u00e9gration implicite ou IMEX<\/td>\n<td>Pr\u00e9cision spatiale \u00e9lev\u00e9e sans restrictions explicites<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>erreurs de mise en \u0153uvre courantes<\/h2>\n<p>Une erreur courante consiste \u00e0 s\u00e9lectionner une m\u00e9thode spectrale uniquement parce qu&rsquo;une grande pr\u00e9cision est attendue. La solution doit d&rsquo;abord \u00eatre v\u00e9rifi\u00e9e pour la douceur.<\/p>\n<p>Parmi les autres probl\u00e8mes fr\u00e9quents, citons :<\/p>\n<ul>\n<li>Utilisation des modes de Fourier pour des donn\u00e9es non p\u00e9riodiques sans extension appropri\u00e9e<\/li>\n<li>Ignorer l&rsquo;alias dans les \u00e9quations non lin\u00e9aires<\/li>\n<li>Utilisation d&rsquo;un pas de temps explicite qui viole la limite de stabilit\u00e9 spectrale<\/li>\n<li>Application des conditions aux limites de mani\u00e8re incoh\u00e9rente<\/li>\n<li>En supposant que toutes les fonctions fluides produisent le m\u00eame taux exponentiel<\/li>\n<li>Utiliser trop de modes sans surveiller le conditionnement<\/li>\n<li>Interpr\u00e9ter les oscillations de Gibbs comme un comportement physique<\/li>\n<li>Sauter les comparaisons avec des m\u00e9thodes d&rsquo;ordre inf\u00e9rieur ou local<\/li>\n<\/ul>\n<h2>Comment valider un solveur spectral<\/h2>\n<p>Commencez par une fonction lisse dont la solution d\u00e9riv\u00e9e ou PDE est connue analytiquement. Augmentez le nombre de modes et mesurez l&rsquo;erreur.<\/p>\n<p>Pour un probl\u00e8me analytique, l&rsquo;erreur devrait diminuer rapidement jusqu&rsquo;\u00e0 ce qu&rsquo;elle atteigne les limites caus\u00e9es par la pr\u00e9cision \u00e0 virgule flottante, le conditionnement, l&rsquo;erreur d&rsquo;int\u00e9gration temporelle ou une solution de r\u00e9f\u00e9rence insuffisamment pr\u00e9cise.<\/p>\n<p>Pour les probl\u00e8mes non lin\u00e9aires, r\u00e9p\u00e9tez l&rsquo;exp\u00e9rience avec et sans traitement. V\u00e9rifiez les quantit\u00e9s conserv\u00e9es, les r\u00e9sidus de limites et la d\u00e9croissance des coefficients spectraux.<\/p>\n<p>Une solution spectrale utile montre normalement des coefficients diminuant vers les modes r\u00e9solus les plus \u00e9lev\u00e9s. Si les coefficients finaux restent \u00e9lev\u00e9s, la simulation peut \u00eatre sous-r\u00e9solue.<\/p>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/what-is-scientific-simulation-and-why-it-matters\/\">Qu&rsquo;est-ce que la simulation scientifique et pourquoi cela est important ?<\/a><\/li>\n<li><a href=\"https:\/\/matforge.org\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\">M\u00e9thodes d&rsquo;int\u00e9gration de temps pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites<\/a><\/li>\n<\/ul>\n<h2>Lectures compl\u00e9mentaires<\/h2>\n<ul>\n<li><a href=\"https:\/\/doi.org\/10.1137\/1.9780898712877\" rel=\"nofollow\" target=\"_blank\">Trefethen, L. N. \u2014 M\u00e9thodes spectrales dans Matlab<\/a><\/li>\n<li><a href=\"https:\/\/epubs.siam.org\/doi\/10.1137\/16M1103622\" rel=\"nofollow\" target=\"_blank\">Mat\u00e9riau SIAM suppl\u00e9mentaire sur les approximations spectrales<\/a><\/li>\n<li><a href=\"https:\/\/arxiv.org\/abs\/2402.16744\" rel=\"nofollow\" target=\"_blank\">Iserles, A. \u2014 Fondements math\u00e9matiques des m\u00e9thodes spectrales pour les PDE d\u00e9pendant du temps<\/a><\/li>\n<li><a href=\"https:\/\/arxiv.org\/abs\/2402.17688\" rel=\"nofollow\" target=\"_blank\">Recherche sur la relaxation spectrale, la purge et la capture des chocs<\/a><\/li>\n<li><a href=\"https:\/\/pmc.ncbi.nlm.nih.gov\/articles\/PMC5253976\/\" rel=\"nofollow\" target=\"_blank\">Grandcl\u00e9ment et Novak \u2014 M\u00e9thodes spectrales pour la relativit\u00e9 num\u00e9rique<\/a><\/li>\n<li><a href=\"https:\/\/dedalus-project.readthedocs.io\/\" rel=\"nofollow\" target=\"_blank\">Documentation du projet Dedalus<\/a><\/li>\n<li><a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S235271102200005X\" rel=\"nofollow\" target=\"_blank\">Caille : un code Galerkin discontinu l\u00e9ger open-source en Python<\/a><\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Les m\u00e9thodes spectrales se rapprochent des solutions PDE avec des bases globales de Fourier ou polynomiales. Pour les solutions analytiques sur des domaines appropri\u00e9s, elles peuvent atteindre une tr\u00e8s grande pr\u00e9cision avec beaucoup moins de degr\u00e9s de libert\u00e9 que les m\u00e9thodes locales de faible ordre.<\/p>\n<p>Leurs performances d\u00e9pendent fortement de la douceur. Les discontinuit\u00e9s provoquent des oscillations de Gibbs, la g\u00e9om\u00e9trie irr\u00e9guli\u00e8re affaiblit la commodit\u00e9 des bases globales et les discr\u00e9tisations de Chebyshev \u00e0 haute r\u00e9solution peuvent imposer de s\u00e9v\u00e8res restrictions de pas de temps explicites.<\/p>\n<p>Les m\u00e9thodes de Fourier sont particuli\u00e8rement efficaces pour les probl\u00e8mes p\u00e9riodiques, tandis que les techniques de Chebyshev et Legendre prennent en charge des domaines non p\u00e9riodiques d\u00e9limit\u00e9s. L&rsquo;int\u00e9gration implicite ou IMEX du temps, la n\u00e9gociation et le traitement rigoureux des limites sont souvent n\u00e9cessaires dans les simulations pratiques.<\/p>\n<p>Lorsque le domaine est complexe ou que la solution contient des interfaces nettes, des \u00e9l\u00e9ments spectraux, des m\u00e9thodes discontinues de Galerkin ou de volume fini peuvent fournir un meilleur \u00e9quilibre. La m\u00e9thode correcte est d\u00e9termin\u00e9e non seulement par la pr\u00e9cision souhait\u00e9e, mais \u00e9galement par la r\u00e9gularit\u00e9, la g\u00e9om\u00e9trie, les exigences de conservation et le co\u00fbt de calcul.<\/p>\n<\/article>\n","protected":false,"raw":"<article>\n<p>Les m\u00e9thodes spectrales sont des techniques num\u00e9riques d'ordre \u00e9lev\u00e9 pour r\u00e9soudre les \u00e9quations aux d\u00e9riv\u00e9es partielles. Contrairement aux m\u00e9thodes de diff\u00e9rences finies, qui se rapprochent des d\u00e9riv\u00e9s par le biais de pochoirs locaux, les m\u00e9thodes spectrales repr\u00e9sentent la solution avec des fonctions de base qui s'\u00e9tendent sur l'ensemble du domaine de calcul.<\/p>\n<p>Les choix courants incluent les modes de Fourier pour les probl\u00e8mes p\u00e9riodiques et les polyn\u00f4mes de Chebyshev ou Legendre pour les domaines born\u00e9s et non p\u00e9riodiques. Lorsque la solution est suffisamment lisse, ces approximations globales peuvent atteindre une pr\u00e9cision tr\u00e8s \u00e9lev\u00e9e avec relativement peu de degr\u00e9s de libert\u00e9.<\/p>\n<p>Cet avantage s'accompagne d'importantes limitations. Les m\u00e9thodes spectrales fonctionnent mieux sur des domaines simples avec des solutions fluides et des conditions aux limites bien d\u00e9finies. Les discontinuit\u00e9s provoquent des oscillations, une g\u00e9om\u00e9trie complexe affaiblit la commodit\u00e9 des bases globales et l'int\u00e9gration explicite dans le temps peut devenir s\u00e9v\u00e8rement restreinte \u00e0 mesure que la r\u00e9solution augmente.<\/p>\n<h2>Quelles sont les m\u00e9thodes spectrales ?<\/h2>\n<p>Une m\u00e9thode spectrale se rapproche d'une fonction comme une somme pond\u00e9r\u00e9e de fonctions de base lisses :<\/p>\n<pre><code>u(x) \u2248 \u03a3 c\u2099 \u03c6\u2099(x)<\/code><\/pre>\n<p>Les fonctions <code>\u03c6\u2099<\/code> forment la base spectrale, tandis que les coefficients <code>c\u2099<\/code> d\u00e9crivent la contribution de chaque mode. Au lieu de stocker uniquement des informations locales, chaque coefficient peut affecter l'approximation sur le domaine complet.<\/p>\n<p>La base doit refl\u00e9ter la structure du probl\u00e8me. Les fonctions de Fourier sont naturelles pour les domaines p\u00e9riodiques car elles satisfont d\u00e9j\u00e0 \u00e0 la p\u00e9riodicit\u00e9. Les polyn\u00f4mes de Chebyshev et Legendre sont couramment utilis\u00e9s sur des intervalles finis tels que <code>[-1, 1]<\/code>.<\/p>\n<p>Les m\u00e9thodes spectrales ne sont pas simplement des sch\u00e9mas de diff\u00e9rences finies tr\u00e8s \u00e9lev\u00e9es. Ils suivent une strat\u00e9gie d'approximation diff\u00e9rente. Les m\u00e9thodes locales construisent la solution \u00e0 partir d'informations dans des cellules ou des \u00e9l\u00e9ments \u00e0 proximit\u00e9. Les m\u00e9thodes spectrales utilisent des modes globaux qui peuvent d\u00e9crire une fonction fluide avec une efficacit\u00e9 remarquable.<\/p>\n<h2>Trois principales formulations spectrales<\/h2>\n<p>Les m\u00e9thodes spectrales peuvent appliquer la PDE gouvernante de plusieurs mani\u00e8res.<\/p>\n<h3>M\u00e9thodes de collocation<\/h3>\n<p>Une m\u00e9thode de collocation n\u00e9cessite que l'\u00e9quation diff\u00e9rentielle soit maintenue aux points de grille s\u00e9lectionn\u00e9s. Ces points sont souvent connect\u00e9s \u00e0 la r\u00e8gle de base et de quadrature, tels que les points de grille de Fourier ou les n\u0153uds Chebyshev-Gauss-Lobatto.<\/p>\n<p>La collocation est populaire car elle convertit les d\u00e9riv\u00e9s en op\u00e9rations matricielles ou en transformations spectrales. Il est \u00e9galement relativement facile \u00e0 combiner avec des termes non lin\u00e9aires \u00e9valu\u00e9s dans l'espace physique.<\/p>\n<h3>M\u00e9thodes de Galerkin<\/h3>\n<p>Une m\u00e9thode de Galerkin projette le r\u00e9sidu de la PDE sur les fonctions de base s\u00e9lectionn\u00e9es. Le r\u00e9sidu n'a pas besoin de dispara\u00eetre \u00e0 chaque point, mais il doit \u00eatre orthogonal \u00e0 l'espace d'approximation.<\/p>\n<p>Cette formulation fournit une forme faible naturelle et peut pr\u00e9server d'importantes propri\u00e9t\u00e9s d'\u00e9nergie ou de sym\u00e9trie lorsqu'elle est con\u00e7ue avec soin.<\/p>\n<h3>M\u00e9thodes TAU<\/h3>\n<p>Une m\u00e9thode TAU modifie les \u00e9quations s\u00e9lectionn\u00e9es associ\u00e9es aux modes d'ordre le plus \u00e9lev\u00e9 afin que les conditions aux limites puissent \u00eatre impos\u00e9es. Il est \u00e9troitement li\u00e9 \u00e0 l'approche de Galerkin mais g\u00e8re les contraintes diff\u00e9remment.<\/p>\n<p>Les logiciels spectraux modernes peuvent masquer une grande partie de ces d\u00e9tails d'impl\u00e9mentation. Cependant, les utilisateurs doivent encore comprendre comment la formulation choisie repr\u00e9sente les conditions aux limites et les op\u00e9rateurs diff\u00e9rentiels.<\/p>\n<h2>M\u00e9thodes spectrales de Fourier<\/h2>\n<p>Les m\u00e9thodes de Fourier repr\u00e9sentent une solution p\u00e9riodique comme une somme des modes trigonom\u00e9triques :<\/p>\n<pre><code>u(x) \u2248 \u03a3 \u00fb\u2096 exp(ikx)<\/code><\/pre>\n<p>La diff\u00e9renciation devient particuli\u00e8rement simple dans l'espace spectral :<\/p>\n<pre><code>d\u00fb\u2096\/dx = ik \u00fb\u2096<\/code><\/pre>\n<p>Un solveur num\u00e9rique peut donc transformer la solution en coefficients de Fourier, multiplier chaque coefficient par le nombre d'onde appropri\u00e9 et transformer le r\u00e9sultat en espace physique.<\/p>\n<p>La transform\u00e9e de Fourier rapide r\u00e9duit le co\u00fbt de ces op\u00e9rations \u00e0 environ <code>O(N log N)<\/code>. Cela rend les m\u00e9thodes de Fourier tr\u00e8s efficaces pour les simulations p\u00e9riodiques impliquant des ondes, la turbulence, la dynamique des fluides et la formation de motifs.<\/p>\n<h2>Un d\u00e9riv\u00e9 de Fourier en Python<\/h2>\n<p>La fonction suivante calcule la premi\u00e8re d\u00e9riv\u00e9e d'une fonction p\u00e9riodique \u00e9chantillonn\u00e9e sur une grille uniforme :<\/p>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.fft import fft, ifft, fftfreq\n\ndef fourier_derivative(values, domain_length):\n    \"\"\"Return the first derivative of periodic grid data.\"\"\"\n\n    number_of_points = len(values)\n    spacing = domain_length \/ number_of_points\n\n    wave_numbers = (\n        2.0\n        * np.pi\n        * fftfreq(number_of_points, d=spacing)\n    )\n\n    spectral_values = fft(values)\n    spectral_derivative = (\n        1j\n        * wave_numbers\n        * spectral_values\n    )\n\n    return ifft(spectral_derivative).real\n\n\n# Example\nlength = 2.0 * np.pi\npoints = 128\n\nx = np.linspace(\n    0.0,\n    length,\n    points,\n    endpoint=False\n)\n\nvalues = np.sin(3.0 * x)\nderivative = fourier_derivative(values, length)\n\nexact_derivative = 3.0 * np.cos(3.0 * x)\nerror = np.max(np.abs(derivative - exact_derivative))\n\nprint(\"Maximum error:\", error)<\/code><\/pre>\n<p>Pour une fonction p\u00e9riodique lisse qui est bien r\u00e9solue par la grille, la d\u00e9riv\u00e9e peut \u00eatre extr\u00eamement pr\u00e9cise. La m\u00e9thode \u00e9vite \u00e9galement l'erreur de troncature associ\u00e9e \u00e0 un pochoir \u00e0 diff\u00e9rences finies courtes.<\/p>\n<h2>M\u00e9thodes spectrales de Chebyshev<\/h2>\n<p>Les modes de Fourier ne conviennent pas lorsque la solution n'est pas p\u00e9riodique. Les m\u00e9thodes de Chebyshev offrent une alternative courante sur un intervalle fini.<\/p>\n<p>Les n\u0153uds Chebyshev-Gauss-Lobatto sont d\u00e9finis par :<\/p>\n<pre><code>x\u2c7c = cos(\u03c0j \/ N),  j = 0, ..., N<\/code><\/pre>\n<p>Ces points se regroupent \u00e0 proximit\u00e9 des points de terminaison. Le regroupement am\u00e9liore l'interpolation polynomiale et aide \u00e0 contr\u00f4ler les grandes oscillations qui peuvent se produire avec une interpolation d'ordre \u00e9lev\u00e9 \u00e9quidistant.<\/p>\n<p>Le m\u00eame clustering cr\u00e9e \u00e9galement un d\u00e9fi de pas de temps. Le plus petit espacement pr\u00e8s des limites devient beaucoup plus petit que l'espacement moyen de la grille, ce qui peut imposer des limites de stabilit\u00e9 restrictives aux m\u00e9thodes explicites.<\/p>\n<h2>Construire une matrice de diff\u00e9renciation de Chebyshev<\/h2>\n<p>L'impl\u00e9mentation suivante cr\u00e9e la matrice de diff\u00e9renciation de Chebyshev standard du premier ordre :<\/p>\n<pre><code class=\"language-python\">import numpy as np\n\ndef chebyshev_differentiation_matrix(order):\n    \"\"\"Return Chebyshev nodes and first derivative matrix.\"\"\"\n\n    if order == 0:\n        return (\n            np.array([1.0]),\n            np.array([[0.0]])\n        )\n\n    indices = np.arange(order + 1)\n    nodes = np.cos(np.pi * indices \/ order)\n\n    coefficients = np.ones(order + 1)\n    coefficients[0] = 2.0\n    coefficients[-1] = 2.0\n\n    coefficients *= (-1.0) ** indices\n\n    node_matrix = np.tile(\n        nodes,\n        (order + 1, 1)\n    )\n\n    differences = (\n        node_matrix.T\n        - node_matrix\n    )\n\n    ratio_matrix = np.outer(\n        coefficients,\n        1.0 \/ coefficients\n    )\n\n    derivative_matrix = (\n        ratio_matrix\n        \/ (\n            differences\n            + np.eye(order + 1)\n        )\n    )\n\n    derivative_matrix -= np.diag(\n        np.sum(\n            derivative_matrix,\n            axis=1\n        )\n    )\n\n    return nodes, derivative_matrix\n\n\n# Example\norder = 32\nx, derivative_matrix = (\n    chebyshev_differentiation_matrix(order)\n)\n\nvalues = np.exp(x)\nnumerical_derivative = derivative_matrix @ values\nexact_derivative = np.exp(x)\n\nerror = np.max(\n    np.abs(\n        numerical_derivative\n        - exact_derivative\n    )\n)\n\nprint(\"Maximum error:\", error)<\/code><\/pre>\n<p>La matrice de diff\u00e9renciation est dense car chaque fonction de base globale influence l'intervalle entier. Une multiplication directe matrice-vecteur a un co\u00fbt d'environ <code>O(N\u00b2)<\/code>.<\/p>\n<p>Pour des probl\u00e8mes unidimensionnels mod\u00e9r\u00e9s, cela peut toujours \u00eatre pratique. Les simulations plus grandes peuvent utiliser des m\u00e9thodes bas\u00e9es sur des transformations, des reformulations clairsem\u00e9es, une d\u00e9composition de domaine ou des biblioth\u00e8ques sp\u00e9cialis\u00e9es.<\/p>\n<h2>Pourquoi la convergence spectrale peut \u00eatre si rapide<\/h2>\n<p>Le principal avantage des m\u00e9thodes spectrales est leur taux de convergence pour des solutions fluides. Une diff\u00e9rence finie d'ordre faible ou une m\u00e9thode d'\u00e9l\u00e9ments finis converge normalement de mani\u00e8re alg\u00e9brique :<\/p>\n<pre><code>Error \u2248 C N\u207b\u1d56<\/code><\/pre>\n<p>La valeur de <code>p<\/code> d\u00e9pend de l'ordre de la m\u00e9thode. Par exemple, doubler le nombre de points dans une m\u00e9thode de second ordre peut r\u00e9duire l'erreur d'environ un facteur de quatre lorsque la solution est dans la plage de convergence asymptotique.<\/p>\n<p>Pour une solution analytique, une approximation spectrale peut converger g\u00e9om\u00e9triquement ou exponentiellement :<\/p>\n<pre><code>Error \u2248 C exp(-\u03b1N)<\/code><\/pre>\n<p>Cela signifie que l'augmentation du nombre de modes peut r\u00e9duire l'erreur beaucoup plus rapidement que l'augmentation de la r\u00e9solution d'une m\u00e9thode locale d'ordre inf\u00e9rieur.<\/p>\n<p>Une introduction pratique avec des exemples num\u00e9riques est disponible dans <a href=\"https:\/\/doi.org\/10.1137\/1.9780898712877\" rel=\"nofollow\" target=\"_blank\"><i>M\u00e9thodes spectrales dans Matlab<\/i><\/a>.<\/p>\n<h2>L'exigence de douceur<\/h2>\n<p>La convergence exponentielle ne se produit pas pour toutes les fonctions. Cela d\u00e9pend de la r\u00e9gularit\u00e9 de la solution exacte.<\/p>\n<ul>\n<li>Une solution analytique peut produire une convergence g\u00e9om\u00e9trique ou exponentielle.<\/li>\n<li>Une solution infiniment diff\u00e9rentiable mais non analytique peut produire une convergence plus rapide qu'alg\u00e9brique sans un taux exponentiel fixe.<\/li>\n<li>Une solution avec seulement un nombre fini de d\u00e9riv\u00e9s produit normalement une convergence alg\u00e9brique.<\/li>\n<li>Une solution discontinue cr\u00e9e des oscillations de Gibbs et supprime le principal avantage d'une base lisse globale.<\/li>\n<\/ul>\n<p>Les coefficients lisses ne garantissent pas une solution lisse. Les coins, les conditions aux limites incompatibles, le for\u00e7age discontinu, les interfaces de mat\u00e9riaux et les donn\u00e9es initiales singuli\u00e8res peuvent r\u00e9duire la r\u00e9gularit\u00e9.<\/p>\n<p>Avant de s\u00e9lectionner une m\u00e9thode spectrale, les chercheurs doivent examiner la douceur attendue de la solution plut\u00f4t que uniquement l'apparence de l'\u00e9quation gouvernante.<\/p>\n<h2>Le ph\u00e9nom\u00e8ne Gibbs<\/h2>\n<p>Une expansion globale de Fourier ou polynomiale ne peut repr\u00e9senter un saut sans osciller \u00e0 proximit\u00e9. Ce comportement est connu comme le ph\u00e9nom\u00e8ne Gibbs.<\/p>\n<p>Au fur et \u00e0 mesure que le nombre de modes augmente, la r\u00e9gion oscillatoire devient plus \u00e9troite, mais le d\u00e9passement maximum pr\u00e8s de la discontinuit\u00e9 ne dispara\u00eet pas de la m\u00eame mani\u00e8re que l'erreur de r\u00e9gion lisse ordinaire.<\/p>\n<p>Ces oscillations peuvent cr\u00e9er des concentrations n\u00e9gatives, des valeurs de pression non physiques ou des calculs non lin\u00e9aires instables. Le filtrage peut les r\u00e9duire, mais le filtrage supprime \u00e9galement les informations \u00e0 haute fr\u00e9quence et introduit la dissipation.<\/p>\n<p>Les m\u00e9thodes spectrales globales pures sont donc rarement le premier choix pour les lois de conservation domin\u00e9es par les chocs.<\/p>\n<h2>M\u00e9thodes spectrales multidomaines<\/h2>\n<p>Une fa\u00e7on de pr\u00e9server la pr\u00e9cision spectrale est de diviser le domaine en sous-domaines. Chaque sous-domaine re\u00e7oit sa propre expansion spectrale en douceur.<\/p>\n<p>Si une interface de discontinuit\u00e9 ou de mat\u00e9riau se situe exactement sur une limite de sous-domaine, l'approximation \u00e0 l'int\u00e9rieur de chaque r\u00e9gion peut rester lisse. Conditions d'interface puis connectez les solutions de sous-domaine.<\/p>\n<p>Cette approche est courante en astrophysique et en relativit\u00e9 num\u00e9rique. Un examen d\u00e9taill\u00e9 est disponible dans le <a href=\"https:\/\/pmc.ncbi.nlm.nih.gov\/articles\/PMC5253976\/\" rel=\"nofollow\" target=\"_blank\">M\u00e9thodes spectrales pour la relativit\u00e9 num\u00e9rique<\/a>.<\/p>\n<p>Les formulations multidomaines cr\u00e9ent \u00e9galement un pont entre les m\u00e9thodes spectrales globales et les techniques d'\u00e9l\u00e9ments spectraux.<\/p>\n<h2>Approches de capture des chocs<\/h2>\n<p>Plusieurs techniques ont \u00e9t\u00e9 d\u00e9velopp\u00e9es pour stabiliser les approximations spectrales \u00e0 proximit\u00e9 des chocs. Ils comprennent le filtrage spectral, la viscosit\u00e9 de la disparition spectrale, la relaxation et la suppression p\u00e9riodique des modes \u00e0 haute fr\u00e9quence non r\u00e9solus.<\/p>\n<p>Des travaux r\u00e9cents sur la relaxation spectrale et la purge spectrale examinent comment des noyaux soigneusement con\u00e7us peuvent contr\u00f4ler les oscillations tout en conservant des informations utiles \u00e0 petite \u00e9chelle. Un exemple est l'\u00e9tude <a href=\"https:\/\/arxiv.org\/abs\/2402.17688\" rel=\"nofollow\" target=\"_blank\">M\u00e9thodes spectrales nouvelles pour la capture des chocs et la suppression de Tygers dans Dynamique des fluides informatique<\/a>.<\/p>\n<p>Ces techniques peuvent am\u00e9liorer une simulation spectrale, mais elles ne font pas un probl\u00e8me discontinu \u00e9quivalent \u00e0 un probl\u00e8me lisse. La m\u00e9thode, la force du filtre, la r\u00e9solution et les propri\u00e9t\u00e9s de conservation n\u00e9cessitent toujours une validation minutieuse.<\/p>\n<h2>Restrictions de pas de temps<\/h2>\n<p>Une pr\u00e9cision spatiale \u00e9lev\u00e9e ne supprime pas les limites de stabilit\u00e9 temporelle. En fait, les discr\u00e9tisations spectrales peuvent produire de grandes valeurs propres qui rendent l'int\u00e9gration explicite du temps restrictive.<\/p>\n<p>Pour la discr\u00e9tisation de Fourier de l'advection du premier ordre, le plus grand nombre d'ondes augmente proportionnellement \u00e0 <code>N<\/code>. Une limite de stabilit\u00e9 explicite est donc souvent approximative :<\/p>\n<pre><code>\u0394t \u221d N\u207b\u00b9<\/code><\/pre>\n<p>Pour la discr\u00e9tisation de Fourier de la diffusion, les valeurs propres augmentent comme le carr\u00e9 du nombre d'ondes&nbsp;:<\/p>\n<pre><code>\u0394t \u221d N\u207b\u00b2<\/code><\/pre>\n<p>Le clustering de points Chebyshev rend les limites explicites plus restrictives. Pour les probl\u00e8mes de premi\u00e8re d\u00e9riv\u00e9e, la limite pratique peut \u00e9voluer \u00e0 peu pr\u00e8s comme <code>N\u207b\u00b2<\/code>. Pour les op\u00e9rateurs de diffusion de la deuxi\u00e8me d\u00e9riv\u00e9e, cela peut devenir encore plus grave.<\/p>\n<p>La condition exacte d\u00e9pend de la PDE, du traitement des limites, de la formulation et de l'int\u00e9grateur de temps. Il ne doit pas \u00eatre r\u00e9duit \u00e0 un seul exposant universel.<\/p>\n<h2>Int\u00e9gration implicite et IMEX<\/h2>\n<p>Les m\u00e9thodes implicites peuvent \u00e9viter les restrictions de stabilit\u00e9 les plus fortes associ\u00e9es \u00e0 la diffusion lin\u00e9aire ou \u00e0 d'autres termes rigides. Les formules de Crank-Nicolson et de diff\u00e9renciation vers l'arri\u00e8re sont des choix courants.<\/p>\n<p>Une m\u00e9thode IMEX traite implicitement les termes lin\u00e9aires rigides et \u00e9value explicitement les termes non lin\u00e9aires ou moins restrictifs&nbsp;:<\/p>\n<pre><code>\u2202u\/\u2202t = L(u) + N(u)<\/code><\/pre>\n<p>L'op\u00e9rateur lin\u00e9aire <code>L<\/code> peut repr\u00e9senter la diffusion, tandis que <code>N<\/code> contient une advection ou une r\u00e9action non lin\u00e9aire. Cette structure est largement utilis\u00e9e dans les logiciels Spectral PDE.<\/p>\n<p>Une comparaison plus large est disponible dans le guide <a href=\"https:\/\/matforge.org\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\">M\u00e9thodes d'int\u00e9gration temporelle pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites<\/a>.<\/p>\n<h2>Termes non lin\u00e9aires et alias<\/h2>\n<p>Les produits non lin\u00e9aires cr\u00e9ent des modes avec des fr\u00e9quences sup\u00e9rieures \u00e0 la r\u00e9solution d'origine. Lorsque ces modes sont \u00e9chantillonn\u00e9s sur la grille existante, ils peuvent appara\u00eetre de mani\u00e8re incorrecte en tant que composants \u00e0 basse fr\u00e9quence. C'est ce qu'on appelle le cr\u00e9nelage.<\/p>\n<p>Les solveurs pseudospectraux calculent g\u00e9n\u00e9ralement des d\u00e9riv\u00e9s dans l'espace spectral et des produits non lin\u00e9aires dans l'espace physique. Avant de transformer le produit, ils peuvent appliquer la distribution.<\/p>\n<p>La r\u00e8gle commune des deux tiers supprime les modes de Fourier les plus \u00e9lev\u00e9s apr\u00e8s une multiplication non lin\u00e9aire. Une autre approche renforce la repr\u00e9sentation spectrale vers une grille plus grande, effectue la multiplication et tronque le r\u00e9sultat.<\/p>\n<p>Sans n\u00e9gocier, une simulation peut devenir inexacte ou instable m\u00eame lorsque la grille spatiale semble suffisamment fine.<\/p>\n<h2>Utiliser Dedalus<\/h2>\n<p>La construction d'un solveur spectral multidimensionnel complet n\u00e9cessite une gestion de base, des transformations, des \u00e9quations de limites, une distribution parall\u00e8le et une int\u00e9gration temporelle. Le <a href=\"https:\/\/dedalus-project.readthedocs.io\/\" rel=\"nofollow\" target=\"_blank\">DeDalus Documentation<\/a> d\u00e9crit un framework Python con\u00e7u sp\u00e9cifiquement pour les simulations PDE spectrales.<\/p>\n<p>Dedalus prend en charge les bases de Fourier et polynomiales, les probl\u00e8mes de valeurs initiales, les probl\u00e8mes de valeurs limites, les probl\u00e8mes de valeurs propres et l'ex\u00e9cution parall\u00e8le. Il fournit \u00e9galement des outils bas\u00e9s sur Tau pour imposer des contraintes dans des domaines non p\u00e9riodiques.<\/p>\n<p>Les utilisateurs doivent suivre la syntaxe de la version de Dedalus install\u00e9e, car son API a chang\u00e9 entre les principales versions. Conceptuellement, le flux de travail reste coh\u00e9rent :<\/p>\n<ol>\n<li>S\u00e9lectionnez les coordonn\u00e9es et les bases spectrales.<\/li>\n<li>Cr\u00e9ez des champs pour les variables d\u00e9pendantes.<\/li>\n<li>D\u00e9finissez les \u00e9quations et les contraintes de limites.<\/li>\n<li>S\u00e9lectionnez un int\u00e9grateur de temps ou un solveur lin\u00e9aire.<\/li>\n<li>D\u00e9finissez les t\u00e2ches de r\u00e9solution, de n\u00e9gociation et de sortie.<\/li>\n<li>Ex\u00e9cutez les contr\u00f4les de convergence et de stabilit\u00e9.<\/li>\n<\/ol>\n<h2>M\u00e9thodes spectrales et conditions aux limites<\/h2>\n<p>Les conditions aux limites p\u00e9riodiques sont construites naturellement dans une base de Fourier. Les conditions non p\u00e9riodiques n\u00e9cessitent plus de travail.<\/p>\n<p>Les conditions de Dirichlet ou de Neumann peuvent \u00eatre impos\u00e9es en rempla\u00e7ant les \u00e9quations de collocation, en construisant des fonctions de base qui satisfont d\u00e9j\u00e0 aux conditions ou en ajoutant des variables et des contraintes TAU.<\/p>\n<p>L'approche s\u00e9lectionn\u00e9e affecte le conditionnement de la matrice et la structure du syst\u00e8me final. Les conditions aux limites doivent donc \u00eatre prises en compte lors de la s\u00e9lection de la base, et non seulement une fois la discr\u00e9tisation spatiale termin\u00e9e.<\/p>\n<p>La recherche sur les bases orthogonales des EDP d\u00e9pendant du temps fournit des moyens suppl\u00e9mentaires de classer les syst\u00e8mes de base et le comportement aux limites. Une discussion math\u00e9matique r\u00e9cente est disponible dans <a href=\"https:\/\/arxiv.org\/abs\/2402.16744\" rel=\"nofollow\" target=\"_blank\">Foundations math\u00e9matiques des m\u00e9thodes spectrales pour les PDE d\u00e9pendantes du temps <\/a>.<\/p>\n<h2>M\u00e9thodes spectrales vs Galerkin discontinu<\/h2>\n<p>Les m\u00e9thodes de Galerkin spectrale et discontinue utilisent toutes deux une approximation polynomiale, mais elles r\u00e9partissent diff\u00e9remment la base.<\/p>\n<p>Une m\u00e9thode spectrale traditionnelle utilise une base globale dans l'ensemble du domaine. Une m\u00e9thode DG attribue une base polynomiale distincte \u00e0 chaque \u00e9l\u00e9ment et permet des sauts entre les \u00e9l\u00e9ments voisins.<\/p>\n<table class=\"custom-table\">\n<tbody><tr>\n<th>aspect<\/th>\n<th>M\u00e9thode spectrale globale<\/th>\n<th>M\u00e9thode Galerkin discontinue<\/th>\n<\/tr>\n<tr>\n<td>Assistance de base<\/td>\n<td>Globalement dans le domaine<\/td>\n<td>local \u00e0 chaque \u00e9l\u00e9ment<\/td>\n<\/tr>\n<tr>\n<td>Meilleure convergence<\/td>\n<td>G\u00e9om\u00e9trique pour des solutions analytiques<\/td>\n<td>Alg\u00e9brique d'ordre \u00e9lev\u00e9 ou p-convergence rapide dans les r\u00e9gions lisses<\/td>\n<\/tr>\n<tr>\n<td>G\u00e9om\u00e9trie<\/td>\n<td>Le plus pratique sur des domaines simples<\/td>\n<td>Convient aux mailles non structur\u00e9es complexes<\/td>\n<\/tr>\n<tr>\n<td>discontinuit\u00e9s<\/td>\n<td>causer des oscillations mondiales de Gibbs<\/td>\n<td>Peut \u00eatre plac\u00e9 \u00e0 des interfaces d'\u00e9l\u00e9ments<\/td>\n<\/tr>\n<tr>\n<td>Pr\u00e9servation<\/td>\n<td>d\u00e9pend de la formulation<\/td>\n<td>Conservation locale \u00e0 travers des flux d'interface<\/td>\n<\/tr>\n<tr>\n<td>La communication<\/td>\n<td>Transformations globales ou op\u00e9rateurs denses<\/td>\n<td>Principalement un travail d'\u00e9l\u00e9ment local avec un \u00e9change de visages<\/td>\n<\/tr>\n<\/tbody><\/table>\n<p>Les m\u00e9thodes d'\u00e9l\u00e9ment spectral et de diff\u00e9rence spectrale combinent la d\u00e9composition du domaine local avec une approximation d'ordre \u00e9lev\u00e9 \u00e0 l'int\u00e9rieur de chaque \u00e9l\u00e9ment. Un exemple orient\u00e9 python de la connexion entre une approximation locale d'ordre \u00e9lev\u00e9 et DG est d\u00e9crit dans <a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S235271102200005X\" rel=\"nofollow\" target=\"_blank\">Quail&nbsp;: un code Galerkin discontinu l\u00e9ger open-source en python<\/a>.<\/p>\n<h2>Quand les m\u00e9thodes spectrales fonctionnent mieux<\/h2>\n<p>Une m\u00e9thode spectrale globale est un choix fort lorsque :<\/p>\n<ul>\n<li>La solution attendue est lisse ou analytique.<\/li>\n<li>Le domaine est p\u00e9riodique, rectangulaire ou unidimensionnel.<\/li>\n<li>Les conditions aux limites correspondent \u00e0 la base s\u00e9lectionn\u00e9e.<\/li>\n<li>Une pr\u00e9cision spatiale \u00e9lev\u00e9e est plus importante que la flexibilit\u00e9 g\u00e9om\u00e9trique.<\/li>\n<li>Le probl\u00e8me peut utiliser des transformations bas\u00e9es sur FFT ou des matrices denses mod\u00e9r\u00e9es.<\/li>\n<li>Les discontinuit\u00e9s et les interfaces mat\u00e9rielles nettes sont absentes.<\/li>\n<\/ul>\n<p>Les applications typiques comprennent la propagation des ondes lisses, l'analyse de stabilit\u00e9, les flux incompressibles sur des domaines simples, les mod\u00e8les quantiques, la formation de motifs et les probl\u00e8mes s\u00e9lectionn\u00e9s en g\u00e9ophysique et en astrophysique.<\/p>\n<h2>Quand une autre m\u00e9thode est meilleure<\/h2>\n<p>Le volume fini ou les m\u00e9thodes DG sont g\u00e9n\u00e9ralement plus naturels lorsque les chocs, les discontinuit\u00e9s de contact ou la conservation locale stricte dominent le probl\u00e8me.<\/p>\n<p>Les m\u00e9thodes des \u00e9l\u00e9ments finis et des \u00e9l\u00e9ments spectraux peuvent \u00eatre plus appropri\u00e9es pour la g\u00e9om\u00e9trie compliqu\u00e9e, le raffinement local et les limites irr\u00e9guli\u00e8res.<\/p>\n<p>Les m\u00e9thodes de diff\u00e9rences finies d'ordre inf\u00e9rieur peuvent rester pr\u00e9f\u00e9rables lorsque la facilit\u00e9 de mise en \u0153uvre, l'alg\u00e8bre lin\u00e9aire clairsem\u00e9e et le comportement local pr\u00e9visible sont plus importants qu'une pr\u00e9cision extr\u00eame.<\/p>\n<p>La d\u00e9cision doit \u00eatre bas\u00e9e sur la r\u00e9gularit\u00e9 de la solution, la g\u00e9om\u00e9trie du domaine, les conditions aux limites, les restrictions d'\u00e9chelle de temps et la sortie qui doit \u00eatre pr\u00e9dite.<\/p>\n<h2>Un tableau de s\u00e9lection pratique<\/h2>\n<table class=\"custom-table\">\n<tbody><tr>\n<th>Probl\u00e8me<\/th>\n<th>M\u00e9thode sugg\u00e9r\u00e9e<\/th>\n<th>Raison<\/th>\n<\/tr>\n<tr>\n<td>PDE p\u00e9riodique lisse<\/td>\n<td>M\u00e9thode spectrale de Fourier<\/td>\n<td>Transformations rapides et p\u00e9riodicit\u00e9 naturelle<\/td>\n<\/tr>\n<tr>\n<td>PDE lisse sur un intervalle fini<\/td>\n<td>M\u00e9thode Chebyshev ou Legendre<\/td>\n<td>Haute pr\u00e9cision avec des limites non p\u00e9riodiques<\/td>\n<\/tr>\n<tr>\n<td>Probl\u00e8me lisse sur la g\u00e9om\u00e9trie complexe<\/td>\n<td>\u00c9l\u00e9ment spectral ou FEM d'ordre \u00e9lev\u00e9<\/td>\n<td>Combine la g\u00e9om\u00e9trie locale avec une approximation d'ordre \u00e9lev\u00e9<\/td>\n<\/tr>\n<tr>\n<td>Loi de conservation domin\u00e9e par les chocs<\/td>\n<td>M\u00e9thode DG ou volume fini<\/td>\n<td>Un meilleur soutien aux discontinuit\u00e9s et \u00e0 la conservation locale<\/td>\n<\/tr>\n<tr>\n<td>M\u00e9lange de r\u00e9gions lisses et non lisses<\/td>\n<td>M\u00e9thode des \u00e9l\u00e9ments multidomaines ou spectraux<\/td>\n<td>S\u00e9pare les extensions fluides par r\u00e9gion<\/td>\n<\/tr>\n<tr>\n<td>PDE rigide et lisse<\/td>\n<td>M\u00e9thode spectrale avec int\u00e9gration implicite ou IMEX<\/td>\n<td>Pr\u00e9cision spatiale \u00e9lev\u00e9e sans restrictions explicites<\/td>\n<\/tr>\n<\/tbody><\/table>\n<h2>erreurs de mise en \u0153uvre courantes<\/h2>\n<p>Une erreur courante consiste \u00e0 s\u00e9lectionner une m\u00e9thode spectrale uniquement parce qu'une grande pr\u00e9cision est attendue. La solution doit d'abord \u00eatre v\u00e9rifi\u00e9e pour la douceur.<\/p>\n<p>Parmi les autres probl\u00e8mes fr\u00e9quents, citons :<\/p>\n<ul>\n<li>Utilisation des modes de Fourier pour des donn\u00e9es non p\u00e9riodiques sans extension appropri\u00e9e<\/li>\n<li>Ignorer l'alias dans les \u00e9quations non lin\u00e9aires<\/li>\n<li>Utilisation d'un pas de temps explicite qui viole la limite de stabilit\u00e9 spectrale<\/li>\n<li>Application des conditions aux limites de mani\u00e8re incoh\u00e9rente<\/li>\n<li>En supposant que toutes les fonctions fluides produisent le m\u00eame taux exponentiel<\/li>\n<li>Utiliser trop de modes sans surveiller le conditionnement<\/li>\n<li>Interpr\u00e9ter les oscillations de Gibbs comme un comportement physique<\/li>\n<li>Sauter les comparaisons avec des m\u00e9thodes d'ordre inf\u00e9rieur ou local<\/li>\n<\/ul>\n<h2>Comment valider un solveur spectral<\/h2>\n<p>Commencez par une fonction lisse dont la solution d\u00e9riv\u00e9e ou PDE est connue analytiquement. Augmentez le nombre de modes et mesurez l'erreur.<\/p>\n<p>Pour un probl\u00e8me analytique, l'erreur devrait diminuer rapidement jusqu'\u00e0 ce qu'elle atteigne les limites caus\u00e9es par la pr\u00e9cision \u00e0 virgule flottante, le conditionnement, l'erreur d'int\u00e9gration temporelle ou une solution de r\u00e9f\u00e9rence insuffisamment pr\u00e9cise.<\/p>\n<p>Pour les probl\u00e8mes non lin\u00e9aires, r\u00e9p\u00e9tez l'exp\u00e9rience avec et sans traitement. V\u00e9rifiez les quantit\u00e9s conserv\u00e9es, les r\u00e9sidus de limites et la d\u00e9croissance des coefficients spectraux.<\/p>\n<p>Une solution spectrale utile montre normalement des coefficients diminuant vers les modes r\u00e9solus les plus \u00e9lev\u00e9s. Si les coefficients finaux restent \u00e9lev\u00e9s, la simulation peut \u00eatre sous-r\u00e9solue.<\/p>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/what-is-scientific-simulation-and-why-it-matters\/\">Qu'est-ce que la simulation scientifique et pourquoi cela est important ?<\/a><\/li>\n<li><a href=\"https:\/\/matforge.org\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\">M\u00e9thodes d'int\u00e9gration de temps pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites<\/a><\/li>\n<\/ul>\n<h2>Lectures compl\u00e9mentaires<\/h2>\n<ul>\n<li><a href=\"https:\/\/doi.org\/10.1137\/1.9780898712877\" rel=\"nofollow\" target=\"_blank\">Trefethen, L. N. \u2014 M\u00e9thodes spectrales dans Matlab<\/a><\/li>\n<li><a href=\"https:\/\/epubs.siam.org\/doi\/10.1137\/16M1103622\" rel=\"nofollow\" target=\"_blank\">Mat\u00e9riau SIAM suppl\u00e9mentaire sur les approximations spectrales<\/a><\/li>\n<li><a href=\"https:\/\/arxiv.org\/abs\/2402.16744\" rel=\"nofollow\" target=\"_blank\">Iserles, A. \u2014 Fondements math\u00e9matiques des m\u00e9thodes spectrales pour les PDE d\u00e9pendant du temps<\/a><\/li>\n<li><a href=\"https:\/\/arxiv.org\/abs\/2402.17688\" rel=\"nofollow\" target=\"_blank\">Recherche sur la relaxation spectrale, la purge et la capture des chocs<\/a><\/li>\n<li><a href=\"https:\/\/pmc.ncbi.nlm.nih.gov\/articles\/PMC5253976\/\" rel=\"nofollow\" target=\"_blank\">Grandcl\u00e9ment et Novak \u2014 M\u00e9thodes spectrales pour la relativit\u00e9 num\u00e9rique<\/a><\/li>\n<li><a href=\"https:\/\/dedalus-project.readthedocs.io\/\" rel=\"nofollow\" target=\"_blank\">Documentation du projet Dedalus<\/a><\/li>\n<li><a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S235271102200005X\" rel=\"nofollow\" target=\"_blank\">Caille : un code Galerkin discontinu l\u00e9ger open-source en Python<\/a><\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Les m\u00e9thodes spectrales se rapprochent des solutions PDE avec des bases globales de Fourier ou polynomiales. Pour les solutions analytiques sur des domaines appropri\u00e9s, elles peuvent atteindre une tr\u00e8s grande pr\u00e9cision avec beaucoup moins de degr\u00e9s de libert\u00e9 que les m\u00e9thodes locales de faible ordre.<\/p>\n<p>Leurs performances d\u00e9pendent fortement de la douceur. Les discontinuit\u00e9s provoquent des oscillations de Gibbs, la g\u00e9om\u00e9trie irr\u00e9guli\u00e8re affaiblit la commodit\u00e9 des bases globales et les discr\u00e9tisations de Chebyshev \u00e0 haute r\u00e9solution peuvent imposer de s\u00e9v\u00e8res restrictions de pas de temps explicites.<\/p>\n<p>Les m\u00e9thodes de Fourier sont particuli\u00e8rement efficaces pour les probl\u00e8mes p\u00e9riodiques, tandis que les techniques de Chebyshev et Legendre prennent en charge des domaines non p\u00e9riodiques d\u00e9limit\u00e9s. L'int\u00e9gration implicite ou IMEX du temps, la n\u00e9gociation et le traitement rigoureux des limites sont souvent n\u00e9cessaires dans les simulations pratiques.<\/p>\n<p>Lorsque le domaine est complexe ou que la solution contient des interfaces nettes, des \u00e9l\u00e9ments spectraux, des m\u00e9thodes discontinues de Galerkin ou de volume fini peuvent fournir un meilleur \u00e9quilibre. La m\u00e9thode correcte est d\u00e9termin\u00e9e non seulement par la pr\u00e9cision souhait\u00e9e, mais \u00e9galement par la r\u00e9gularit\u00e9, la g\u00e9om\u00e9trie, les exigences de conservation et le co\u00fbt de calcul.<\/p>\n<\/article>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 12<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>Les m\u00e9thodes spectrales sont des techniques num\u00e9riques d&rsquo;ordre \u00e9lev\u00e9 pour r\u00e9soudre les \u00e9quations aux d\u00e9riv\u00e9es partielles. Contrairement aux m\u00e9thodes de diff\u00e9rences finies, qui se rapprochent des d\u00e9riv\u00e9s par le biais de pochoirs locaux, les m\u00e9thodes spectrales repr\u00e9sentent la solution avec des fonctions de base qui s&rsquo;\u00e9tendent sur l&rsquo;ensemble du domaine de calcul. Les choix courants [&hellip;]<\/p>\n","protected":false,"raw":""},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"fr_FR","_original_post":"https:\/\/matforge.org\/?p=464","iawp_total_views":2,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1296","post","type-post","status-publish","format-standard","hentry","category-simulation-modeling-projects","fr-FR"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>M\u00e9thodes spectrales pour la simulation PDE<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez comment les m\u00e9thodes spectrales de Fourier et Chebyshev r\u00e9solvent des PDE fluides, obtiennent une pr\u00e9cision \u00e9lev\u00e9e, g\u00e8rent le pas de temps et se comportent \u00e0 proximit\u00e9.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"M\u00e9thodes spectrales pour la simulation PDE\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez comment les m\u00e9thodes spectrales de Fourier et Chebyshev r\u00e9solvent des PDE fluides, obtiennent une pr\u00e9cision \u00e9lev\u00e9e, g\u00e8rent le pas de temps et se comportent \u00e0 proximit\u00e9.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T14:31:15+00:00\" \/>\n<meta name=\"author\" content=\"Elena Markovska\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elena Markovska\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\\\/\"},\"author\":{\"name\":\"Elena Markovska\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"headline\":\"M\u00e9thodes spectrales pour la simulation PDE : th\u00e9orie, mise en \u0153uvre et quand les utiliser\",\"datePublished\":\"2026-08-21T14:31:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\\\/\"},\"wordCount\":3852,\"commentCount\":0,\"articleSection\":[\"Simulation &amp; Projets de mod\u00e9lisation\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/fr\\\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\\\/\",\"name\":\"M\u00e9thodes spectrales pour la simulation PDE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-08-21T14:31:15+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"description\":\"D\u00e9couvrez comment les m\u00e9thodes spectrales de Fourier et Chebyshev r\u00e9solvent des PDE fluides, obtiennent une pr\u00e9cision \u00e9lev\u00e9e, g\u00e8rent le pas de temps et se comportent \u00e0 proximit\u00e9.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"M\u00e9thodes spectrales pour la simulation PDE : th\u00e9orie, mise en \u0153uvre et quand les utiliser\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\",\"name\":\"Elena Markovska\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"caption\":\"Elena Markovska\"},\"sameAs\":[\"http:\\\/\\\/matforge.org\"],\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/elena-markovska\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"M\u00e9thodes spectrales pour la simulation PDE","description":"D\u00e9couvrez comment les m\u00e9thodes spectrales de Fourier et Chebyshev r\u00e9solvent des PDE fluides, obtiennent une pr\u00e9cision \u00e9lev\u00e9e, g\u00e8rent le pas de temps et se comportent \u00e0 proximit\u00e9.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/","og_locale":"fr_FR","og_type":"article","og_title":"M\u00e9thodes spectrales pour la simulation PDE","og_description":"D\u00e9couvrez comment les m\u00e9thodes spectrales de Fourier et Chebyshev r\u00e9solvent des PDE fluides, obtiennent une pr\u00e9cision \u00e9lev\u00e9e, g\u00e8rent le pas de temps et se comportent \u00e0 proximit\u00e9.","og_url":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/","og_site_name":"matforge.org","article_published_time":"2026-08-21T14:31:15+00:00","author":"Elena Markovska","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Elena Markovska","Dur\u00e9e de lecture estim\u00e9e":"20 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/"},"author":{"name":"Elena Markovska","@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"headline":"M\u00e9thodes spectrales pour la simulation PDE : th\u00e9orie, mise en \u0153uvre et quand les utiliser","datePublished":"2026-08-21T14:31:15+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/"},"wordCount":3852,"commentCount":0,"articleSection":["Simulation &amp; Projets de mod\u00e9lisation"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/","url":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/","name":"M\u00e9thodes spectrales pour la simulation PDE","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-08-21T14:31:15+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"description":"D\u00e9couvrez comment les m\u00e9thodes spectrales de Fourier et Chebyshev r\u00e9solvent des PDE fluides, obtiennent une pr\u00e9cision \u00e9lev\u00e9e, g\u00e8rent le pas de temps et se comportent \u00e0 proximit\u00e9.","breadcrumb":{"@id":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/fr\/spectral-methods-for-pde-simulation-theory-implementation-and-when-to-use-them\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/"},{"@type":"ListItem","position":2,"name":"M\u00e9thodes spectrales pour la simulation PDE : th\u00e9orie, mise en \u0153uvre et quand les utiliser"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da","name":"Elena Markovska","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","caption":"Elena Markovska"},"sameAs":["http:\/\/matforge.org"],"url":"https:\/\/matforge.org\/author\/elena-markovska\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=1296"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1296\/revisions"}],"predecessor-version":[{"id":1394,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1296\/revisions\/1394"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=1296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=1296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=1296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}