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.