J'ai fait une observation étrange en calculant la solution d'une simple équation de diffusion de réaction 1D:
La valeur initiale de est une constante ( b ( 0 , x ) = b 0 ), et je ne suis intéressé que par l'intégrale sur a de 0 à 1 ( ∫ 1 0 a ( t , x ) d t ). Le but de c et l'équation ∂est juste pour évaluer cette intégrale.
J'ai utilisé un schéma de fractionnement de Strang pour le couplage entre la diffusion et la réaction (une réaction en demi-étape, puis une diffusion en étape complète, puis à nouveau une réaction en demi-étape), un schéma de Crank Nicholson pour la diffusion et une solution analytique pour la réaction ( y compris l'équation ).
Parce qu'une étape de la solution analytique était plus d'un facteur 3 plus lente qu'une étape du schéma de Crank Nicholson, j'ai essayé de faire plus d'une étape de Crank Nicholson pour chaque étape de réaction. J'espérais m'en sortir avec moins d'étape du schéma de fractionnement Strang, afin d'être plus rapide dans l'ensemble.
Cependant, l'effet inverse peut être observé, à savoir que beaucoup plus d'étapes pour le schéma de fractionnement de Strang sont nécessaires si plus d'une étape Crank Nicholson est utilisée. (Je ne m'intéresse qu'à la précision de l'intégrale sur , qui semble converger plus vite que a lui - même.) Après m'être demandé pendant un certain temps, j'ai remarqué que le même effet se produit également pour b ( t , x ) = b 0 = 0 , et que je comprends même pourquoi pour ce cas. Le fait est que si je fais exactement un pas de Crank Nicholson, alors le schéma global se transforme en une règle trapézoïdale (si b ( t ) = 0 ).
Donc si je traitais dans le cadre de l'étape de diffusion, l'augmentation du nombre d'étapes Crank Nicholson (probablement) ne conduirait pas à une précision globale réduite (comme observé). Mais cela semble aller à l'encontre de l'objectif d'utiliser une solution analytique pour la partie réactionnelle (non linéaire et potentiellement très rigide) du système.
Voici donc ma question: existe-t-il une meilleure façon de traiter dans le cadre d'un fractionnement de Strang, que de le traiter dans le cadre de l'étape de réaction, ou de le traiter dans le cadre de l'étape de diffusion. Je veux éviter d'être «forcé» d'utiliser exactement une étape Crank Nicholson pour la diffusion. (Par exemple, en 3D, je préférerais résoudre la diffusion analytiquement par une FFT au lieu d'utiliser Crank Nicholson. Bien sûr, je peux également combiner FFT avec Crank Nicholson, donc ce n'est pas si grave.)