Invité Posté(e) 9 août 2007 Partager Posté(e) 9 août 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? Lien à poster Partager sur d’autres sites More sharing options...
Avel Posté(e) 10 août 2007 Auteur Partager Posté(e) 10 août 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. Lien à poster Partager sur d’autres sites More sharing options...
sirius Posté(e) 10 août 2007 Haut Doubs Partager Posté(e) 10 août 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) Lien à poster Partager sur d’autres sites More sharing options...
Cotissois 31 Posté(e) 10 août 2007 Brest Partager Posté(e) 10 août 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 Lien à poster Partager sur d’autres sites More sharing options...
Avel Posté(e) 10 août 2007 Auteur Partager Posté(e) 10 août 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 ? Lien à poster Partager sur d’autres sites More sharing options...
Cotissois 31 Posté(e) 10 août 2007 Brest Partager Posté(e) 10 août 2007 J'ai fait le maillage ! Sinon vous pouvez préciser comment utiliser l'opérateur "convect" ? Lien à poster Partager sur d’autres sites More sharing options...
Avel Posté(e) 11 août 2007 Auteur Partager Posté(e) 11 août 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 ! Lien à poster Partager sur d’autres sites More sharing options...
Gombervaux Posté(e) 24 octobre 2007 Partager Posté(e) 24 octobre 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? Lien à poster Partager sur d’autres sites More sharing options...
Cotissois 31 Posté(e) 24 octobre 2007 Brest Partager Posté(e) 24 octobre 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. Lien à poster Partager sur d’autres sites More sharing options...
Messages recommandés