La majorité des images est une hardcopie de la démo. Si vous laissez la démo s'effectuer jusqu'au bout, vous aurez les fichiers DemoXXX.csg associes dans le répertoire ou se trouve l'exécutable.
Les autre images sont accompagnées de fichiers CSG, qui je l'espère sont toujours valides avec la dernière version.
Parfois, les valeurs par défaut sont un peu "optimistes " pour des machines peu puissantes, ou avec peu de mémoire.
Les fichiers CSG ci dessous de démo sont " bruts de fonderie ". Ils ne sont pas "optimums ". C’est dit.
Si vous avez des difficultés à relire les fichiers CSG avec un éditeur de texte, essayez en un autre. J’ai parfois des problèmes avec notepad qui m’ignore les retours à la ligne. Un passage dans wordpad, un save, et le fichier redevient lisible par notepad.
Les fichiers doivent être du type xxxxxx.CSG
L'action à distance vise à remplacer les vitesses de particules distantes qui s'éloignent par des vitesses qui les font se rapprocher.
Cette modification conserve la quantité de mouvement et le nombre de particules.
Pour les détails, cherchez sur le net avec les mots clefs "Long Range Interaction Lattice Gas Automata".
Ici, la veine est pré-remplie. Aucun injecteur ni Absorbeur n'est défini, et seule l'action à distance (cherchez Long Range Interaction sur le net) intervient.
Cette action à distance peut être paramètrée par :
- la distance maximum à laquelle deux particules peuvent interagir
- la probabilité avec laquelle deux particules interagissent.
Quelques variations:
Ici, la distance d'interaction est très grande (attention, l'implémentation n'est pas optimale, et ce calcul coûte cher…), et la probabilité d'interaction est 1.
On voit qu'à chaque fois que c'est possible, l'action à distance fait se rapprocher les particules. La couronne extérieure a tendance à se rétracter, et du fait du mouvement, l'action à distance se déclenche moins facilement.
Il est possible de définir des zones ou la gravite s'applique sur les particules. La probabilité avec laquelle les particules ressentent la gravité est commune à toutes les zones, mais des directions différentes peuvent être données.
Exemple:
Le sablier est soumis à un champ de force dirigé vers le bas (270°), une partie du tube du bas à un champ dirigé vers la droite (0°), et deux zones circulaires dans l'objet de droite dirigent les particules vers le haut (90°) et vers le bas.
Autre exemple:
Ici, chaque cercle contient 4 zones qui induisent un mouvement rotatif… Pourquoi pas .
J'aime beaucoup cet exemple, car c'est typiquement un tp numérique.
A gauche, on injecte sur chaque rampe la même quantité de matière, qui s'écoule. Il est intéressant de visualiser la relation entre la vitesse et l'angle.
Enfin, comme pour un vrai TP de physique, il faut faire attention à ce que le fluide qui tombe du dernier étage ne modifie pas l'écoulement des étages au dessous.
Dans cet exemple se trouvent la plupart des derniers développements. Utilisés ici pour simuler un écoulement d'un fluide très visqueux à travers une paroi poreuse.
La géométrie est 'circulaire', à savoir que les bords gauche et droits sont connectés. Cette option (CYL 1) est très pratique pour simuler des écoulements du type 'soufflerie', car la vitesse de l'écoulement ainsi que sa masse volumique sont bien plus facile à régler qu'avec un jeu d'injecteurs et d'absorbeurs.
La 'pompe' sera en fait une zone dans l'ecoulement où la 'gravité' est dirigée vers la droite par exemple. Et la puissance de la pompe est la probabilité pour nue particule de ressentir cette force. (On peut régler ceci par la proba. PRG, mais aussi par l'étendue de la zone de gravité).
Enfin, Il peut etre judicieux de placer un 'diffuseur' pour atténuer les ondes sonores qui se produisent à la mise en route du modèle.
Pour cela, une nouvelle syntaxe: RANDOM NbC X0 Y0 X1 Y1 R0 R1, utilisée dans cet exemple pour créer de façon aléatoire des trous dans la veine.
Un cas un peu plus joli encore…
Ici, environ 4500 objets sont générés, on applique de la gravité vers le bas, et on marque une zone horizontale pour suivre son évolution.
Notez que le nombre de mailles est "très" faible, moins de 370 000.
Si vous voulez visualiser plusieurs configurations, vous pouvez regrouper plusieurs Veines:
Et, pourquoi pas, injecteur des filets de colorant…
La recherche du chemin menant de l'injecteur a l'aborbeur est un peu longue, mais le cheminement est plaisant a observer.
(Note, la syntaxe du fichier CSG necessite la version 1.12)
Le fichier CSG contient une commande "P x y ... SHELL name dist"
Par exemple:
P 100 100
PR 100 0
PR 0 50
SHELL a 10
genere une ligne brisee, d'une epaisseur de 10.
Le fichier csg: labyrinthe.csg
Essayez de mettre Proba gravité=0, directio gravite=270 (Bas de l'écran) puis de presser de temps en temps la touche 'g'.
Voici la CSG.
ATUBE.csg
Et les paramètres:
Vous devez charger la CSG, puis aller dans le menu parametres (F3),
changer la direction gravite de -1 a 270 (270 = Bas de l'ecran) et la probabilite gravite a 0.5
puis injecter (stopper l'injection) des particules (touche I et J).
Enfin, vous pouvez visualiser la perte de charge dans chacun des tubes verticaux:
Si vous pressez de temps a autre la touche M, vous pourrez marquer des particules.
Fichier CSG:
PerteCharge.csgMeme procedure que pour PerteCharge. Vous devez regler la direction de la gravite a 270
et la probab gravite a 0.7
Le fichier sablier.csg
Une petite pluie fine en haut à gauche. Pour aller plus vite, vous pouvez régler les valeurs de la probabilité d’injection à 1, puis stopper quand ca déborde.
Ici, on visualise les particules. C’est du temps réel.
Fichier CSG :
EX_DEVERSOIR.csg(
EX_DEVERSOIR.txt)Vous pouvez très facilement modifier le fichier précèdent, en remontant la cloison. Vous verrez alors (apres avoir coupe l’injection) , que les niveaux se stabilisent à la même hauteur.
Je n’étais vraiment pas sur que cela marche avant cet essai.
La CSG est un peu plus complexe que dans les exemples précédents.
Voici quelques images :
Le remplissage.
On coupe l’injection. On constate que le fluide remonte contre la gravite.
Voici une représentation plus " contrastée ". Ici on affiche la densité.
Ici, le fichier qui décrit ce modèle a été pour une grande partie généré par un petit utilitaire. Chaque pixel de chaque lettre a ete transforme en rectangle, tous fusionnes ensuite et soustraits à la veine.
Le cercle est la pour faire joli, et montrer que le maillage n'est pas trop "grossier".
Le fichier est un fichier de type .txt
La CSG est sensiblement différente, les objets ne sont pas nommes, et les manipulations se font sur une pile. Je me suis rendu compte que construire des objets de cette façon n'était pas si simple. J'ai donc ajoute la possibilité de nommer les objets, et de les manipuler ensuite par leur noms.
Attention: Les fichiers au format txt sont relus avec un bout de code diffèrent des fichiers .csg. L'extension est importante.
Ici, l'idée est de définir une paroi qui alterne entre les modes injecteurs et absorbeur.
Avec les paramètres par défaut et un PC moyen, vous pourrez voir un bel écoulement en temps réel.
Conseil: (Chargez le fichier)(lancez tout de suite la simulation avec F5)(regardez un peu)(Arrêtez avec F6)(Modifiez les paramètres d'affichage (F3) et sélectionnez Iteration=10; Integration=10; Affichage de la densité.)
Ce qui est intéressant avec les méthodes où les maillages sont reconstruit à partir d'une csg, c'est qu'il est tres facile de modifier un modèle pour créer quelque chose de tout à fait diffèrent.
Ici, un absorbeur est crée au milieu du cercle, et empêche les rebonds. Deux lignes séparent ce fichier du précèdent.
Ici, les cercles ont été générés par soft. La csg commence à comporter de nombreux objets, mais il n'y a pas d'autres limites que la mémoire de votre PC et votre imagination.
Comme ce modèle est joli, je mets plusieurs images. Au dessus, c'était la densité:
Ici, c'est densité + vitesse.
Voici l'écran des paramètres:
L'échelle a été modifiée après chargement du fichier CSG. N'oubliez pas de faire F7 (Reset) dans la fenêtre principale pour recalculer le maillage.
Suggestion, Essayez différentes valeurs du remplissage initial.
exemples\EX3.txt (c'est aussi ici un "vieux" fichier csg. Avec une extension .txt)
Parmi les écoulements tests, il y a souvent le cylindre, qui permet de "savoir" à quel nombre de Reynolds on se trouve, selon le type d'ecoulement. Lamininaire, avec deux zones de recirculation, avec des ondulations en arriere, avec des lachez de tourbillons, avec de la turbulence….
On voit donc souvent ces figures. Et les ailes d'avion.
Ici, je n'ai pas voulu reprendre un profil NACA ou un cas réel. Seul l'aspect qualitatif m'intéresse, et je pense qu'il me faudrait une machine plus puissante pour simuler ce cas test correctement.
J'ai essaye de placer des "ailettes" pour simuler une pression de sortie "uniforme". C'est un des gros problèmes que je ne sais pas trop bien résoudre.
Pour un tel test, il est agréable de pouvoir zoomer sur une partie de l'écoulement.
Voici la csg:
exemples\EX5.txt
A bientôt pour d'autres exemples.
Page mise a jour le 15dec04