Contexte:
Je n'ai créé qu'une seule solution numérique fonctionnelle pour 2d Navier-Stokes, pour un cours. C'était une solution pour l'écoulement de la cavité entraîné par le couvercle. Le cours a cependant discuté d'un certain nombre de schémas pour les discrétisations spatiales et les discrétisations temporelles. J'ai également suivi plus de cours de manipulation de symboles appliqués à NS.
Certaines des approches numériques pour gérer la conversion de l'équation analytique / symbolique de PDE en différence finie comprennent:
- Euler FTFS, FTCS, BTCS
- Relâché
- Leapfrog Midpoint
- Lax-Wendroff
- MacCormack
- grille décalée (la diffusion spatiale permet à l'information de se propager)
- TVD
Pour moi, à l'époque, cela ressemblait à "insert-name trouve un schéma et cela fonctionne". Beaucoup d'entre eux datent d'avant l'époque du "silicium abondant". Ce sont toutes des approximations. Dans la limite ils. en théorie, conduire aux PDE.
Bien que la simulation numérique directe ( DNS ) soit amusante et que Reynolds Averaged Navier-Stokes ( RANS ) soit également amusant, ce sont les deux «points de terminaison» du continuum entre le calculable et représentatifs complets des phénomènes. Il existe plusieurs familles d'approches qui vivent à l'intérieur de celles-ci.
J'ai eu des professeurs de CFD dire, en conférence, que la plupart des solveurs CFD font de jolies images, mais pour la plupart, ces images ne représentent pas la réalité et qu'il peut être très difficile, et prendre beaucoup de travail, d'obtenir une solution de solveur qui représente la réalité.
La séquence de développement (si je comprends bien, non exhaustive) est la suivante:
- commencer par les équations régissant -> PDE
- déterminer votre discrétisation spatiale et temporelle -> grille et règles FD
- appliquer au domaine, y compris les conditions initiales et les conditions aux limites
- résoudre (beaucoup de variations sur l'inversion de matrice)
effectuer des vérifications de réalité grossière, s'adapter à des solutions connues, etc.
construire des modèles physiques plus simples dérivés des résultats analytiques
- les tester, analyser et évaluer
- itérer (revenir à l'étape 6, 3 ou 2)
Réflexions:
J'ai récemment travaillé avec des modèles CART, des arbres obliques, des forêts aléatoires et des arbres à gradient amélioré. Ils suivent des règles plus dérivées mathématiquement et les mathématiques déterminent la forme de l'arbre. Ils travaillent pour bien faire des formes discrétisées.
Bien que ces approches numériques créées par l'homme fonctionnent quelque peu, il existe un "vaudou" important pour relier leurs résultats aux phénomènes physiques qu'ils sont censés modéliser. Souvent, la simulation ne remplace pas substantiellement les tests et la vérification dans le monde réel. Il est facile d'utiliser le mauvais paramètre ou de ne pas tenir compte des variations de géométrie ou des paramètres d'application rencontrés dans le monde réel.
Des questions:
- Existe-t-il une approche permettant à la nature du problème de définir
la discrétisation appropriée, le schéma de différenciation spatiale et temporelle, les conditions initiales ou la solution? - Une solution haute définition couplée aux techniques d'apprentissage automatique peut-elle être utilisée pour créer un schéma de différenciation qui a des tailles de pas beaucoup plus grandes mais qui conserve la convergence, la précision, etc.
- Tous ces schémas sont accessibles "humainement exploitables pour dériver" - ils ont une poignée d'éléments. Existe-t-il un schéma de différenciation avec des milliers d'éléments qui fait un meilleur travail? Comment est-il dérivé?
Remarque: Je poursuivrai avec les données empiriquement intialisées et empiriquement dérivées (par opposition à analytiquement) dans une question distincte.
MISE À JOUR:
Utilisation de l'apprentissage en profondeur pour accélérer les écoulements de Boltzmann sur réseau. Gave ~ 9x accélération pour leur cas particulier
Hennigh, O. (sous presse). Lat-Net: Simulations d'écoulement Boltzmann en réseau compressé utilisant des réseaux de neurones profonds. Extrait de: https://arxiv.org/pdf/1705.09036.pdf
Repo avec du code (je pense):
https://github.com/loliverhennigh/Phy-NetEnviron 2 ordres de grandeur plus rapides que le GPU, 4 ordres de grandeur ou ~ O (10 000x) plus rapides que le CPU et le même matériel.
Guo, X., Li, W. & Ioiro, F. Réseaux de neurones convolutionnels pour l'approximation d'écoulement stable. Extrait de: https://autodeskresearch.com/publications/convolutional-neural-networks-steady-flow-approximation
D'autres qui se sont penchés sur le sujet il y a environ 20 ans:
Muller, S., Milano, M. & Koumoutsakos P. Application d'algorithmes d'apprentissage automatique à la modélisation et à l'optimisation des flux. Centre for Turbulence Research Annual Research Briefs 1999 Extrait de: https://web.stanford.edu/group/ctr/ResBriefs99/petros.pdf
Mise à jour (2017):
Cela caractérise l'utilisation de méthodes non dégradées dans l'apprentissage profond, une arène qui a été exclusivement basée sur le gradient. Bien que l'implication directe de l'activité soit dans l'apprentissage en profondeur, cela suggère également que l'AG peut être utilisé comme équivalent pour résoudre un problème très difficile, très profond et très complexe au niveau cohérent ou supérieur aux méthodes basées sur la descente en gradient.
Dans le cadre de cette question, cela pourrait suggérer qu'une attaque basée sur l'apprentissage automatique à plus grande échelle pourrait permettre des «modèles» dans le temps et l'espace qui accélèrent considérablement la convergence des méthodes de domaine de gradient. L'article va jusqu'à dire que parfois aller dans le sens de la descente de gradient s'éloigne de la solution. Alors que dans tout problème avec les optima locaux ou les trajectoires pathologiques (la plupart des problèmes du monde réel à haute valeur en ont certains), on s'attend à ce que le gradient ne soit pas globalement informatif, il est toujours agréable de le quantifier et de le valider empiriquement tel qu'il était dans cet article et la capacité de «sauter le cap» sans nécessiter de «réduction de l'apprentissage» à mesure que vous obtenez une dynamique ou une sous-relaxation.
Mise à jour (2019):
Il semble que Google ait maintenant une pièce "comment trouver un meilleur solveur" du puzzle de l'IA. link Ceci fait partie de l'IA qui fait le solveur.
** Mise à jour (2020): ** Et maintenant, ils le font et le font bien ...
https://arxiv.org/pdf/1911.08655.pdf
On pourrait faire valoir qu'ils pourraient ensuite déconstruire leur NN pour déterminer la discrétisation réelle. J'aime particulièrement la figure 4.
la source
Réponses:
C'est une blague de longue date que CFD signifie «dynamique des fluides colorés». Néanmoins, il est utilisé - et utile - dans un large éventail d'applications. Je crois que votre mécontentement découle de la distinction insuffisante entre deux étapes interconnectées mais différentes: créer un modèle mathématique d'un processus physique et le résoudre numériquement. Permettez-moi de commenter un peu ces éléments:
Aucun modèle mathématique (ou vraiment aucun) de la réalité physique n'est jamais correct ; au mieux, il est utile pour prédire les résultats des mesures dans un ensemble de circonstances très précisément délimité (mais, espérons-le, important). Cela inclut le fait qu'il doit être possible d'obtenir une telle prédiction compte tenu d'une configuration spécifique; c'est pourquoi nous avons toute une hiérarchie de modèles allant de la théorie des champs quantiques à la mécanique newtonienne. En particulier, les équations de Navier-Stokes ne décrivent pas l'écoulement des fluides, elles donnent une prédiction d'aspects spécifiques du comportement de certains fluides dans certaines conditions.
Pour les modèles mathématiques plus compliqués (tels que les équations de Navier-Stokes), vous ne pouvez jamais obtenir une solution exacte (et donc une prédiction), mais seulement une approximation numérique. Ce n'est pas une si mauvaise chose que cela puisse paraître, car les mesures avec lesquelles vous souhaitez les comparer ne sont jamais exactes. Tout comme dans le choix des modèles, il y a un compromis entre précision et maniabilité - cela n'a aucun sens de dépenser du temps ou de l'argent pour obtenir une solution plus précise que nécessaire. À ce stade, il devient purement une question sur la façon d'approcher numériquement la solution (dans ce cas) d'une équation différentielle partielle, qui fait l'objet d'un champ mathématique entier: l'analyse numérique. Ce domaine vise à prouverestimation des erreurs pour certaines méthodes numériques (là encore, sous certaines conditions, explicitement spécifiées). Votre déclaration "insert-name trouve un schéma et il se trouve qu'il fonctionne", est extrêmement injuste - il devrait être "insert-name trouve un schéma et prouve qu'il fonctionne". De plus, ces schémas ne sont pas tirés de nulle part - ils sont dérivés de principes mathématiques bien compris.
(Par exemple, les schémas de différences finies peuvent être dérivés en utilisant des approximations de Taylor d'un ordre donné. Il est certainement possible - et certaines personnes le font - d'obtenir des schémas de différences d'ordre très élevé et de les mettre en œuvre, mais il existe une loi des rendements décroissants : cela ne peut être automatisé que partiellement, et nécessite donc beaucoup d'efforts, et certaines conditions de plus en plus restrictives doivent être remplies pour en obtenir la plus grande précision correspondante. En outre, à un moment donné, il est préférable d'utiliser un schéma différent, tel que méthodes spectrales.)
Le thème commun ici est que les modèles et les schémas numériques sont livrés avec une gamme d'applicabilité, et il est important de choisir la bonne combinaison pour un objectif donné. C'est précisément pourquoi un informaticien doit connaître à la fois le domaine scientifique (pour savoir quel modèle est valide dans quelle situation) et les mathématiques (pour savoir quelle méthode est applicable à quel modèle et à quelle précision)! Ignorer ces étiquettes "utiliser uniquement comme dirigé" conduit à produire le genre de "conneries de calcul" (au sens technique de Harry Frankfurt) auquel vos professeurs de CFD ont fait référence.
Quant à savoir pourquoi utiliser un modèle de calcul lorsque vous avez un modèle physique (comme une soufflerie): L'une des raisons est que l'exécution d'un logiciel peut être beaucoup moins chère que la création d'un modèle et sa mise en soufflerie. De plus, ce n'est généralement pas un ou l'autre: Par exemple, lors de la conception d'une voiture ou d'un avion, vous exécutez des centaines ou des milliers de simulations pour affiner les choses, puis uniquement pour le (s) candidat (s) final (s) mettre un modèle dans le vent tunnel.
Mise à jour:
Utiliser l'apprentissage automatique au lieu de la simulation numérique, c'est comme dire "ne pas avoir de modèle, c'est mieux que d'avoir un modèle approximatif", ce avec quoi je doute que quiconque en dynamique des fluides (ou dans tout autre domaine) soit d'accord. Cela étant dit, il est certainement possible (et effectivement fait) d'utiliser l'apprentissage automatique pour sélectionner des «paramètres de géométrie ou d'application» inconnus en fonction de l'accord avec les données mesurées; cependant, ici aussi, les méthodes basées sur des modèles telles que la quantification de l'incertitude ou les problèmes inverses (bayésiens) fonctionnent généralement beaucoup mieux (et sont basées sur des principes mathématiques rigoureux). Sélection numérique des paramètres tels que la taille des pas ou l'ordre de la méthode utilisant l'apprentissage automatique sont également possibles en principe, mais je ne vois pas l'avantage car il existe une théorie mathématique qui vous indique précisément comment choisir ces paramètres en fonction de votre modèle (mathématique).
Mise à jour 2:
Le document auquel vous vous connectez concerne l'infographie , pas la science informatique : leur objectif n'est pas d'avoir une simulation précise (c'est-à-dire une solution numérique d'un modèle mathématique) d'un processus physique, mais quelque chose qui ressemble à un à l'œil nu. (un cas extrême de "dynamique des fluides colorés" ...) - c'est une question très différente. En particulier, il n'y a pas d' erreur liée à la sortie du réseau formé par rapport à la solution correspondante aux équations de Navier-Stokes, qui est un élément indispensable de toute méthode numérique.
(Et votre première question part d'une fausse prémisse: dans chaque approche, le problème détermine le modèle, le modèle détermine la discrétisation, la discrétisation détermine le solveur.)
la source
in every approach, the problem determines the model, the model determines the discretization, the discretization determines the solver.
Je pense que vous mélangez quelques idées différentes qui sont source de confusion. Oui, il existe une grande variété de façons de discrétiser un problème donné. Le choix d'une manière appropriée peut ressembler à du «vaudou» lorsque vous apprenez ces choses en classe, mais lorsque les chercheurs les choisissent, ils le font en s'appuyant sur l'expérience combinée du domaine, telle que publiée dans la littérature. Par conséquent, ils font des choix beaucoup plus éclairés qu'un étudiant.
Question 1: Si vous résolvez un problème et que vous passez d'un schéma à un autre, votre temps d'exécution changera, les critères de convergence peuvent changer ou votre comportement asymptotique, mais un point très important est que votre solution convergée finale ne doit PAS changer . Si c'est le cas, vous devez soit affiner vos maillages, soit il y a un problème avec votre schéma numérique. Vous pouvez peut-être utiliser un algorithme d'optimisation pour créer vos schémas numériques et améliorer les performances pour une classe de problèmes spécifique, mais plusieurs fois les schémas dérivés de la main sont créés avec un comportement de convergence / asymptotique optimal prouvable mathématiquement pour le nombre de termes impliqués ou le type de maillage utilisé.
Maintenant, le paragraphe ci-dessus ne prend pas en compte des éléments tels que différents modèles de turbulence, qui sont différentes formulations / approximations mathématiques de la physique, et devraient donc avoir des solutions différentes. Ceux-ci sont à nouveau très étudiés dans la littérature, et je ne pense pas que les programmes soient au point de pouvoir examiner les phénomènes physiques et produire un modèle mathématique qui prédit correctement la réponse de systèmes physiques similaires.
Question 2: Oui, vous pouvez dériver un schéma qui utilise tout le maillage à la fois, en utilisant du code informatique pour le faire. Je me sens même en sécurité en disant que pour certains maillages, de tels codes existent et pourraient vous donner votre schéma en quelques heures (une fois que vous aurez trouvé le code). Le problème est que vous ne battrez jamais Nyquist. Il y a une limite à la taille des pas de temps que vous effectuez, en fonction de la fréquence maximale de la réponse de votre système, et une limite à la taille des cellules / éléments de maillage que vous pouvez avoir en fonction des fréquences spatiales de la solution.
Cela ne tient même pas compte du fait que souvent le travail de calcul impliqué dans l'utilisation d'un schéma plus complexe est souvent non linéaire et complexe. La plupart des étudiants apprennent les méthodes RK4 pour l'intégration du temps parce que lorsque vous commencez à utiliser des méthodes avec un ordre plus élevé que cela, vous obtenez plus d'évaluations de votre dérivé plus rapidement que vous ne gagnez d'ordres de votre méthode. Dans le domaine spatial, les méthodes d'ordre supérieur augmentent considérablement le remplissage de la matrice, vous avez donc besoin de moins de points de maillage, mais le travail que vous faites pour inverser la matrice clairsemée augmente considérablement, compensant au moins partiellement vos gains.
Je ne sais pas de quoi vous parlez à la question trois. Vous parlez de transformer des solutions proches d'un problème en de meilleures solutions? Si c'est le cas, je recommande une lecture légère sur multigrid. Si vous demandez à transformer des schémas numériques décents en schémas incroyables, je pense que le reste de ma réponse y touche au moins.
la source