meteor Posted August 9, 2007 Muret(180 m) et Font-Romeu (1760m) Share Posted August 9, 2007 On a parlé de "shallow water" à un moment, mais vu qu'on néglige l'élévation du niveau de la mer, je réalise tardivement qu'on fait du "simple" Navier-Stokes... Je précise pour les non-initiés que Navier-Stokes est une formulation du principe de Newton (masse x accélération = somme des forces) adaptée pour les fluides, on retrouve dans la formule : à gauche, l'accélération d'une particule, exprimée de façon indirecte de telle sorte qu'elle fasse ressortir notre champ de vitesses u (le principe de Newton a été écrit pour étudier le mouvement de corps individualisés et donc calculer leur accélération propre, mais pour les fluides on veut surtout connaître les flux, cad notre champ de vitesses u) à droite, la somme des forces avec : l'effet de la pression (gradient de p), l'effet de la viscosité moléculaire, cad le frottement (laplacien de u), l'effet de Coriolis (k vectoriel u) et bien sûr l'effet du vent (tau) Bon, la programmation c'est une autre histoire lol Oui heureusement que tu mets "simple" entre guillemets. C'est vrai que le principe de Newton est relativement simple (quoique) mais sa déclinaison aux fluides l'est un peu moins. Bon à gauche je reconnais l'accélération (1er membre) mais pour le 2ème membre (u.nabla) u, je vois moins. Pourrais-tu préciser? Link to post Share on other sites
Avel Posted August 10, 2007 Author Share Posted August 10, 2007 Oui heureusement que tu mets "simple" entre guillemets. C'est vrai que le principe de Newton est relativement simple (quoique) mais sa déclinaison aux fluides l'est un peu moins. Bon à gauche je reconnais l'accélération (1er membre) mais pour le 2ème membre (u.nabla) u, je vois moins. Pourrais-tu préciser? Salut ! Pour te rafraichir la mémoire, je te rappelle que l'opérateur dérivée particulaire (ou totale) peut s'écrire : D_t = d_t + (u grad)u D_t : dérivée totale par rapport à t d_t : dérivée partielle par rapport à t Pour mieux comprendre, je peux te dire que la formulation en dérivée particulaire est une approche lagrangienne. Dans notre cas de résolution du problème, on se place dans un référentiel fixe, donc description eulérienne. Le terme (u grad)u est le terme d'advection. Link to post Share on other sites
sirius Posted August 10, 2007 Haut Doubs Share Posted August 10, 2007 Bonjour LA question de Meteor est bien compréhensible Pour rappel: ce qui nous intéresse, c'est évidemment la différentielle totale d'une fonction par rapport au temps on l'exprime comme le fait Avel par la somme d'une variation locale plus des termes d'advection. Mathématiquement c'est DA/Dt= (dA/dt) pour x fixé + (dA/dx)(dx/dt) ici les d sont des d ronds et ça se complique un peu parce qu'il y a plusieurs composantes mais le principe est là. Moi, jusque là, je suis à peu près, je crois c'est après que ça se complique mais je verrai ça demain ou dimanche bon "amusement" à tous (et à toutes) Link to post Share on other sites
Cotissois 31 Posted August 10, 2007 Brest Share Posted August 10, 2007 Je comprends Avel, on va faire du shallow water après en rajoutant l'équation verticale sur H, mais pour l'instant si on bloque H on retrouve bien du Navier-Stokes 2D /emoticons/tongue@2x.png 2x" width="20" height="20"> Pour l'équation de la masse, je suppose qu'en premier temps on prend div u = 0 ? (ce qu'il ne faudra pas faire en modèle shallow water, car sinon on n'aura pas de variation du niveau de la mer) Sinon oui, l'accélération d'une particule c'est tout le d rond u / d rond t + (u grad)u On peut résumer l'expression par un Du / Dt comme le montre wikipedia, sous-entendu l'accélération particulaire. Le (u grad) c'est un opérateur. Explicitement, le (u grad) appliqué à un vecteur quelconque a , c'est (u grad)a= (grad a) u Dans le cas de la température, c'est (u grad)T = (grad T) . u Link to post Share on other sites
Avel Posted August 10, 2007 Author Share Posted August 10, 2007 Je comprends Avel, on va faire du shallow water après en rajoutant l'équation verticale sur H, mais pour l'instant si on bloque H on retrouve bien du Navier-Stokes 2D /emoticons/biggrin@2x.png 2x" width="20" height="20"> Pour l'équation de la masse, je suppose qu'en premier temps on prend div u = 0 ? (ce qu'il ne faudra pas faire en modèle shallow water, car sinon on n'aura pas de variation du niveau de la mer) Sinon oui, l'accélération d'une particule c'est tout le d rond u / d rond t + (u grad)u On peut résumer l'expression par un Du / Dt comme le montre wikipedia, sous-entendu l'accélération particulaire. Le (u grad) c'est un opérateur. Explicitement, le (u grad) appliqué à un vecteur quelconque a , c'est (u grad)a= (grad a) u Dans le cas de la température, c'est (u grad)T = (grad T) . u Pour l'équation de continuité : en première approximation, on peut considérer au choix les équations suivantes (on peut discuter le choix d'approximation) div u = -1/(2*rho*beta) d_y(rot tau moyen) , pour une forme linéaire sur une beta plane div u = 0 , pour un océan dont le niveau varie lentement dans le temps ou quasiment pas Je vous conseille la deuxième pour commencer. Je ne détaille pas la deuxième (en tout cas pour le moment, c'etait juste pour ceux qui chipottent ) Commencer par la première pourrait vous embrouiller définitivement. Je rappelle rapidement le plan du script : - frontières - maillage - initialisation/paramétrisation - écriture de la boucle + résolution de la formulation - écriture de l'algorithme - plot de la vitesse/vecteur vitesse - renvoi des valeurs dans un fichier texte Bon, c'est parti ? Link to post Share on other sites
Cotissois 31 Posted August 10, 2007 Brest Share Posted August 10, 2007 J'ai fait le maillage ! Sinon vous pouvez préciser comment utiliser l'opérateur "convect" ? Link to post Share on other sites
Avel Posted August 11, 2007 Author Share Posted August 11, 2007 Salut ! On utilise la syntaxe suivante pour l'opérateur convect : f=convect([u,v],-dt,u) appliqué à la composante u de la vitesse dans ce cas f=uoX [u,v]=vecteur vitesse dt : pas de temps Attention toutefois, il faut introduire l'espace des vitesses ! Link to post Share on other sites
Gombervaux Posted October 24, 2007 Share Posted October 24, 2007 Je rappelle rapidement le plan du script : - frontières - maillage - initialisation/paramétrisation - écriture de la boucle + résolution de la formulation - écriture de l'algorithme - plot de la vitesse/vecteur vitesse - renvoi des valeurs dans un fichier texte Bon, c'est parti ? semblerait que ça ait du mal à démarrer.Plus de 2 mois après, quelqu'un peut il expliquer pourquoi? Link to post Share on other sites
Cotissois 31 Posted October 24, 2007 Brest Share Posted October 24, 2007 Perso j'y ai pas touché depuis la dernière fois. C'est intéressant à faire sans doute, mais bon ce n'est plus les vacances. Peut-être Avel pourrait-il nous donner le script tout fait, où on aurait juste à faire varier la résolution du maillage et les conditions initiales (en espérant que la formulation variationnelle, nécessaire à freefem, permette de le faire facilement), ce qui mettrait en évidence les principaux problèmes de la prévision numérique. Link to post Share on other sites
Recommended Posts