Différences finies sur les domaines aux frontières irrégulières

11

Quelqu'un peut-il m'aider à trouver les livres sur les solutions numériques (différences finies et méthodes de Crank-Nicolson) des équations de Poisson et de diffusion, y compris des exemples sur la géométrie irrégulière, comme un domaine composé de l'aire entre un rectangle et un cercle (en particulier des livres ou des liens) sur les exemples de code MATLAB dans ce cas)?

liona
la source
4
Dans quel but? Introduction pour les étudiants au tout début? Et quelle est une géométrie irrégulière dans votre cas? Des domaines aux coins rentrants?
shuhalo
@Martin: Je suis biginner dans ce domaine. J'en ai besoin pour résoudre l'équation de poisson en utilisant des méthodes itératives sur des domaines de forme irrégulière, en particulier ceux avec des faisceaux incurvés (par exemple, domaine circulaire 2D)
liona
2
@last Veuillez modifier le titre et le corps de la question afin de préciser ce que vous demandez. Spécifiez les types d'équations qui vous intéressent. Êtes-vous intéressé par les discrétisations, les solveurs algébriques ou les deux? Vous vous souciez de la différence finie par rapport aux éléments finis ( scicomp.stackexchange.com/questions/290/… )? Votre question actuelle est extrêmement large et difficile à trouver dans la recherche.
Jed Brown
@JedBrown: Je veux résoudre l'équation du poisson en utilisant une différence finie sur un domaine et une condition aux limites donnés.
liona
Enfin, veuillez modifier le corps de votre question pour inclure les informations dans vos deux commentaires à ce jour. En outre, comme l'a dit JedBrown, veuillez également modifier le titre de votre question afin qu'il soit plus facile pour les gens de rechercher votre question, et plus facile pour les gens de juger si la question pourrait être intéressante ou applicable à eux.
Geoff Oxberry

Réponses:

3

La clé pour faire fonctionner un schéma de différences finies sur une géométrie irrégulière est d'avoir une matrice de «forme» avec des valeurs qui dénotent des points à l'extérieur, à l'intérieur et sur la frontière du domaine. Disons que nous avions une forme comme celle-ci:

000000000000011111111110001222222100000122221000000012210000000001100000000000000000

Le vrai domaine (où se trouvent toutes les entrées non nulles de la matrice) forme un triangle pointé vers le bas. Les 1 représentent des points sur la frontière, tandis que les 2 représentent des points intérieurs (inconnus, généralement) Nous pouvons attribuer des numéros de nœuds comme suit:

0000000000000-1-1-1-1-1-1-1-1-1-1000-1123456-100000-1789dix-10000000-11112-1000000000-1-100000000000000000

Ici, les -1 représentent les emplacements des limites. Ensuite, vous pouvez exécuter un schéma de différences finies sur toutes les entrées de la matrice, mais utilisez une instruction if pour exécuter votre schéma uniquement sur les nœuds intérieurs (de 1 à 12). Cette approche n'est pas le moyen le plus efficace de le faire, mais elle fera le travail ... si vous pouvez vous permettre la mémoire, il pourrait être bon de stocker les entrées (i, j) de tous les nœuds intérieurs et d'exécuter une boucle for uniquement sur ces nœuds.

Pour créer directement la géométrie, vous pouvez faire l'une des deux choses suivantes:
1. Créez une image en noir et blanc manuellement et importez-la dans votre programme (plus facile à implémenter, mais impossible d'affiner votre résolution spatiale dx ou dy).
2. Écrivez du code qui créera des représentations discrètes des formes de base que vous souhaitez pour toute résolution spatiale que vous choisissez (plus difficile à implémenter, mais plus robuste pour les schémas généraux de différences finies de toute résolution spatiale dx ou dy).

Si vous souhaitez en savoir plus sur la façon de procéder, vous pouvez envisager de regarder ces vidéos:
Cours d'infographie NPTEL, Vidéo 2 (Graphiques raster)
Cours d'infographie NPTEL, Vidéo 3 (Graphiques raster, suite)
Consultez-les, et faites-moi savoir si cela répond à votre question.

Paul
la source
Existe-t-il un moyen d'améliorer le format des valeurs de matrice que j'ai publiées ... cela ne ressemble pas tout à fait à ce que j'aimerais que cela ressemble
Paul
Oui, vous pouvez utiliser MathJax et les placer dans un environnement de tableau.
David Ketcheson
Vous avez raison ... ça a l'air beaucoup plus agréable avec MathJax. Merci pour la suggestion :)
Paul
@Paul: Merci pour votre solution simple! Cependant, comment puis-je calculer les points limites pour obtenir des points intérieurs pour une région fermée entre rectangulaire et triangle ou (région fermée entre rectangulaire et cercle)?
liona
Avez-vous une image de la forme du domaine que vous souhaitez modéliser? Il est toujours plus facile de le voir que de le décrire simplement avec des mots :)
Paul
2

Je suggère les papiers suivants:

La méthode des différences finies aux grilles irrégulières arbitraires et son application en mécanique appliquée - Liszka Orkisz

http://www.sciencedirect.com/science/article/pii/0045794980901492

Techniques de différences finies pour les grilles variables - Jensen

http://www.mendeley.com/research/finite-difference-techniques-variable-grids-7/

Résolution d'équations paraboliques et hyperboliques par la méthode des différences finies généralisées - Benito Urena Gavete

http://www.sciencedirect.com/science/article/pii/S037704270600687X

Fondamentalement, ils décrivent comment générer des différences stenciales finies pour les maillages non structurés / irréguliers. Je ne connais aucun livre qui traite ce sujet en profondeur, mais le livre de Randall LeVeque pourrait avoir quelque chose à ce sujet. Voici le lien vers la page Web de l'auteur, qui contient des fichiers m Matlab pour les différences finies.

http://faculty.washington.edu/rjl/booksnotes.html

Bernardo MR
la source
1

Je pense que rendre le maillage ajusté à la frontière et donc s'écarter du maillage carré standard du fdm est probablement une solution mais a néanmoins de sérieuses implications quant à l'utilisation d'algorithmes d'ordre élevé - difficile, sinon impossible. J'ai adopté une approche différente, à savoir garder la grille rectangulaire sur la géométrie de la courbe courbe, créer des algorithmes d'ordre élevé, interpoler à partir de la frontière pour définir les valeurs "en dehors" de la géométrie, et c'est tout ce qu'il y a. nous avons obtenu des précisions dans les géométries de test de sphère concentrique de ~ 1e-12 avec cette méthode en utilisant un algorithme d'ordre 8. si vous allez sur Google "Edwards, fdm Curved Border", vous trouverez des références à mon travail.

David
la source
0

Serait-il possible pour vous d'utiliser le raffinement adaptatif du maillage? Une recherche rapide sur Google fera apparaître de nombreux liens. L'AMR est utilisé, par exemple, en dynamique des fluides pour modéliser l'écoulement au-delà de formes compliquées; ainsi que de nombreuses autres applications. Voici un exemple de résolution de systèmes de lois de conservation hyperboliques qui surviennent lors de la formation d'étoiles. Les géométries sont très complexes. La première partie de l'article est un joli tutoriel. http://www.mpa-garching.mpg.de/lectures/ADSEM/SS05_Homann.pdf

JohnS
la source
0

Cette question ouvre une boîte de vers, comme en témoigne la variété des réponses données. Beaucoup d’entre elles soulèvent des points utiles, mais une réponse vraiment utile tiendrait compte de considérations qui n’ont pas été soulevées. En plus de préciser la nature exacte de la géométrie, il serait utile de savoir a) De quel type de précision avez-vous besoin? b) Voulez-vous rester avec des mailles carrées régulières? c) Combien êtes-vous prêt à investir dans l'apprentissage de nouvelles technologies?

Les maillages carrés réguliers rendent difficile la définition précise de la frontière, de sorte que de nombreuses personnes changent en maillages conformes. Les maillages conformes avec une connectivité rectangulaire ont du mal à s'adapter à des formes très irrégulières, donc beaucoup de gens adoptent des maillages non structurés (triangles / tetraheda ou plus généraux).

Pour toutes les données n'ayant pas de structure cartésienne régulière, il est difficile d'évaluer les dérivées, donc beaucoup de gens reformulent leurs problèmes sous forme intégrale, ce qui conduit à des méthodes d'éléments finis / de volumes finis (qui PEUVENT atteindre un ordre élevé). Il existe des méthodes sans maillage. Il existe des méthodes d'éléments de frontière. Il existe des méthodes aux limites immergées. Il existe des méthodes à cellules coupées. Il existe souvent une méthode qui est populaire dans certaines applications mais pas dans d'autres, pour des raisons essentiellement historiques.

Je vous souhaite bonne chance dans la navigation dans ce labyrinthe, mais vous devez comprendre qu'il n'y a pas de solution universelle à votre question.

Philip Roe
la source