Modélisation - FDS & Smokeview (II)

Date: 09 janvier 2007 à 08:00:00
Sujet: Modélisation Informatique


Après un premier cours « découverte », nous attaquons cette fois le vif du sujet avec le placement des portes, leur ouverture et enfin la mise en place d'éléments mobiliers. Nous allons également commencer à animer l'ensemble en produisant de la chaleur. Nous serons bientôt prêts pour modéliser notre premier incendie!

Remarques préliminaires
En premier, il semble que sur certaines machines ou sans doute suivant les versions de FDS, l'ajout du signe « / » en fin de ligne soit obligatoire. Afin qu'à terme nous puissions échanger les fichiers de code que chacun produira, il me semble préférable d'ajouter systématiquement ce signe à la fin des lignes.
En second, je pense qu'il est bien de conserver un fichier par cours. Le premier cours s'est fait avec un fichier qui se nomme «test ». Dupliquez ce fichier et renommez le « test_2 » pour travailler dessus. Nous ferons désormais de même à chaque cours: le cours 3 se fera donc avec « test_3 » etc ... Une fois la duplication effectuée, ouvrez le fichier et changez le &HEAD pour mettre CHID='test_2'.

Les couleurs RGB
Dans le cours I, nous avons placé des murs en y associant des couleurs avec le code RGB. Le résultat était pour les moins « flashy ». Nous allons voir comment mettre des couleurs plus douces, pour ne pas avoir d'interaction visuelle avec les couleurs qui indiqueront ultérieurement les températures.
Sur votre ordinateur, les couleurs primaires sont le rouge, le vert et le bleu, alors que, sur votre imprimante, ces couleurs primaires sont le cyan, le jaune et le magenta. Etant donné que nous utilisons un logiciel donc un outil informatique dont l'affichage se fait sur l'écran, nous utiliserons le système RVB (Rouge Vert Bleu) donc en anglais RGB (Red Green Blue). C'est le mélange de rouge, de vert et de bleu, donc la quantité respective de ces composantes de base, qui donne toutes les couleurs.
Avec FDS, chaque composante (donc le rouge, le vert et le bleu) peut prendre une valeur comprise entre 0 et 1. Nous pouvons donc avoir (0,0,0) ce qui donne du noir. Avec (1,1,1) nous avons du blanc. Pour avoir du gris « moyen », il faut donc avoir (0.5,0.5,0.5). Pour du rouge vif, il faut mettre le rouge au maximum et les autres à 0, donc (1,0,0) etc...
Pour construire les couleurs, je vous ai fait un petit outil auquel vous pouvez accéder en cliquant ici. Il vous suffit de cliquer sur un des pavés de couleurs ci-dessous et la couleur au format FDS s'affichera en dessous.


L'autre solution consiste à prendre un logiciel de dessin et à faire la conversion. Si votre logiciel de dessin vous présente des couleurs en notant les valeurs de 0 à 255, il vous suffit de diviser ces valeurs par 255 (la valeur maxi.) pour avoir les valeurs FDS. Exemple: un orange qui vous sera présenté avec les valeurs R=255, G=153 et B=51 vaudra pour FDS: R=255/255=1, G=153/255=0.6 et B=51/255=0.2

Pour avoir des murs avec des couleurs « correctes », modifier leur code comme ceci:

/ Premier mur (côté gauche du couloir)
&OBST XB= 2.8, 3.0, 0.0, 4.0, 0.0, 2.4, RGB=0.6,0.6,0.6 /
/ Second mur (côté droit du couloir)
&OBST XB= 4.0, 4.2, 0.0, 4.0, 0.0, 2.4, RGB=0.6,0.6,0.6 /
/ Troisième mur (sépare la pièce de droite en deux)
&OBST XB= 4.2, 8.0, 2.0, 2.2, 0.0, 2.4, RGB=0.6,0.6,0.6 /

Les ouvertures
Nous allons placer des ouvertures vers l'extérieur et des ouvertures dans les cloisons. Pour se repérer, le plus simple consiste à faire un plan de notre habitation, vue de dessus.

 

Pour FDS, il existe deux types de murs. Les murs donnant sur l'extérieur, définis par les valeurs générales (PDIM) et les murs intérieurs qui ne sont que des objets, définis par OBST.
Pour réaliser des ouvertures, il existe également deux solutions: l'une pour les murs extérieurs, l'autre pour les murs intérieurs (ou toute sorte d'objet OBST).

Ouvertures sur l'extérieur
Pour les murs donnant sur l'extérieur, c'est la commande VENT qui permettra de faire une ouverture. Mais en fait, VENT est un objet assez complexe, qui peut émettre du froid, du chaud ou être « neutre ». Lorsqu'il est placé sur une paroi extérieure, le VENT peut-être considéré comme une porte ou une fenêtre. Mais comme il peut émettre du chaud ou du froid, nous pouvons nous en servir pour simuler un chauffage à air chaud par exemple. D'un autre côté, VENT peut être considéré comme une surface chaude. En quelque sorte une plaque de métal qui chaufferait. Nous pouvons dans ce cas utiliser un « VENT » pour mettre le feu quelque part: il suffit de poser un VENT sur un fauteuil et de le définir comme chauffant à 400°C pour que le fauteuil prenne feu.
Pour l'instant, nous allons nous contenter d'utiliser l'objet VENT pour définir la porte d'entrée de notre habitation, en ajoutant dans notre fichier la ligne suivante:

&VENT XB= 3.1, 3.9, 0.0, 0.0, 0.0, 2.0, RGB=0,0,1 / Porte 1 (entrée)

Le vent étant « plat », deux de ses valeurs sont identiques (ici Y1=Y2).
Note: le VENT n'est pas visible de l'extérieur de la structure et pour le voir il faut le colorer.

Ouvertures intérieures
Les ouvertures, dans les murs intérieurs (ou en fait, tous les OBST), se font avec HOLE (qui signifie «trou» en Anglais) et qui est défini de la même manière que OBST (coordonnées X1,X2,Y1,Y2,Z1,Z2 comme pour VENT).
Le code pour les trois portes est donc le suivant:

&HOLE XB= 2.8, 3.0, 1.0, 1.8, 0.0, 2.0 / Porte 2 (mur de gauche)
&HOLE XB= 4.0, 4.2, 3.0, 3.8, 0.0, 2.0 / Porte 3 (mur de droite)
&HOLE XB= 5.0, 5.8, 2.0, 2.2, 0.0, 2.0 / Porte 4 (entre les pièces de droite)

Deux canapés
Avant de passer à l'animation de nos ouvertures, continuons à aménager notre local. Pour cela, nous allons ajouter deux canapés dans la pièce de gauche, en nous repérant sur le plan suivant:

 

Chaque canapé à une base de 1,40 de large, 80 cm de profondeur et 30 cm de haut. Le dossier est posé sur cette base. Il fait 1,40 de large, 30 cm d'épaisseur et 60 cm de haut. Comme il est posé sur la base, le sommet du canapé est donc à 90 cm du sol. Nous ajoutons 2 accoudoirs, posées aussi sur la base. Chaque accoudoir fait 20 cm de côté et donc 50 cm de long pour toucher le dossier. Comme Smokeview n'a pas vocation à faire de la « jolie 3D », il ne gère ni les ombrages, ni l'éclairage. Le résultat c'est que si nous colorons tous les éléments du canapé avec la même couleur, nous aurons du mal à les distinguer. C'est pour cela que nous allons colorer les accoudoirs d'une couleur plus claire que le reste du canapé. Pour faciliter également le repérage, il y a un canapé bleu (le A) et un autre vert (le B).

Le code pour les deux canapés est le suivant:

/ Canapé Bleu: assise, dossier et 2 accoudoirs
&OBST XB= 0.7, 2.1, 4.0, 3.2, 0.0, 0.3, RGB=0,0,0.6 /
&OBST XB= 0.7, 2.1, 4.0, 3.7, 0.3, 0.9, RGB=0,0,0.6 /
&OBST XB= 0.7, 0.9, 3.7, 3.2, 0.3, 0.5, RGB=0.2,0.6,1 /
&OBST XB= 1.9, 2.1, 3.7, 3.2, 0.3, 0.5, RGB=0.2,0.6,1 /

/ Canapé vert contre le mur de gauche
&OBST XB= 0.0, 0.8, 1.3, 2.7, 0.0, 0.3, RGB=0.2,0.4,0 /
&OBST XB= 0.0, 0.3, 1.3, 2.7, 0.3, 0.9, RGB=0.2,0.4,0 /
&OBST XB= 0.3, 0.8, 1.3, 1.5, 0.3, 0.5, RGB=0.6,1,0 /
&OBST XB= 0.3, 0.8, 2.4, 2.7, 0.3, 0.5, RGB=0.6,1,0 /

Une fois les instructions VENT, HOLE et les éléments des canapés mis en place, lancez FDS puis Smokeview et vous obtiendrez le résultat suivant. Le dessins représente le local un fois tourné sous Smokeview, afin de faire apparaître le VENT, les 3 portes intérieures et les deux canapés. Vous notez que désormais, nos murs sont gris, suite à notre changement de couleur.

Ouvrir les portes
Dans tous les articles et document que vous avez trouvés sur ce site, vous avez vu que la ventilation avait toujours un impact énorme sur les conditions dans le local.
Avec FDS, l'ouverture d'une porte se fait simplement en créant un objet VENT ou HOLE. Le problème c'est que cette ouverture va se faire dès le début de l'animation. Pour retarder cette ouverture, il faut spécifier un délai, avec le paramètre T_CREATE pour les HOLE et T_ACTIVATE pour les VENT, suivi du nombre de secondes.

Attention: les durées sont toujours comptées en secondes, depuis le début de la simulation!

Remplacez les lignes avec VENT et HOLE par les lignes suivantes:

&SURF ID='BLOW' ,VEL=-0.3, TMPWAL=200.0, RGB=0.0,0.0,1.0 /
/ Création dés le départ de la porte 2, ouverte sur 60cm
&HOLE XB= 2.8, 3.0, 1.0, 1.6, 0.0, 2.0 /
/ Porte principale (1), ouverte au bout de 2 secondes
&VENT XB= 3.1, 3.9, 0.0, 0.0, 0.0, 2.0, SURF_ID='BLOW',T_ACTIVATE=2.0 /
/ Création porte 3, ouverte en grand au bout de 3 secondes
&HOLE XB= 4.0, 4.2, 3.0, 3.8, 0.0, 2.0, T_CREATE=3.0 /
/ Création porte 4, ouverte en grand au bout de 5 secondes
&HOLE XB= 5.0, 5.8, 2.0, 2.2, 0.0, 2.0, T_CREATE=5.0 /

Voyons ce que cela signifie en regardant d'abord les codes HOLE. Notre porte 2 étant ouverte dès le départ, nous la créons comme précédemment. Simplement nous voulons qu'elle ne soit ouverte que de 60 cm (donc sa largeur ne va que de 1.0 à 1.6).
La porte 3 sera ouverte en grand (80cm de large) au bout de 3 secondes (T_CREATE=3.0) et la porte 4 sera ouverte en grande (également 80cm de large) au bout de 5 secondes (T_CREATE=5.0).

Pour l'objet VENT c'est un peu plus compliqué car nous avons deux lignes:
La ligne &SURF va définir un type de surface,. Ici nous lui avons donné le nom BLOW. Le paramètre VEL indique le sens et la vitesse d'émission de la chaleur (ou du froid). Ici, le signe négatif indique que cette surface « pousse » la chaleur vers l'intérieur de la structure et la valeur numérique indique que la vitesse est de 0.3 mètres par seconde. Le paramètre TMPWAL indique la température, donc ici 200°C. Le code RGB défini ensuite la couleur. Ici, SURF est donc une définition qui indique «objet nommé BLOW, soufflage à 200°C vers l'intérieur, à une vitesse de de 0.3m/s et une coloration en bleu».

Ensuite nous créons notre objet VENT et nous disons «réagit comme l'indique la définition SURF dont le nom est BLOW». Bien sûr, si nous avions besoin de 25 objets VENT réagissant de cette manière, nous n'aurions qu'une ligne SURF! Et pour changer la vitesse d'émission de nos 25 VENT, nous n'aurions qu'à changer le paramètre VEL de notre SURF. Bien pratique!

Si vous sauvez le fichier, que vous lancez FDS puis Smokeview, vous constaterez que rien ne se passe. Deux raisons à cela :
En premier il faut ajouter du temps. Pour l'instant nous avons une durée de simulation de 0. Nous allons donc modifier la ligne TIME pour mettre:

&TIME TWFIN=6.0 /

Nous aurons ainsi une simulation sur 6 secondes, ce qui est suffisant puisque la dernière ouverture de porte se fait à 5 secondes.

Ceci étant réglé, le résultat ne change pas. A priori (je dis à priori car je n'ai pas trouvé d'autres raisons), FDS ne va procéder à la création d'une suite «animée» que si nous lui demandons de sauvegarder une donnée potentiellement évolutive. Nous allons donc ajouter, en fin de notre fichier, la ligne suivante:

&BNDF QUANTITY='GAUGE_HEAT_FLUX' /

Cela va demander à FDS d'enregistrer les variations du flux thermique, ce qui tombe bien puisque notre VENT souffle un vent à 200°C dans notre habitation!

Lancez le calcul sous FDS. Vous constaterez qu'il faut plus de 6 secondes pour calculer les 6 secondes d'animation. Preuve qu'il est illusoire d'espérer utiliser un tel outil en temps réel durant une intervention!

Une fois le calcul terminé, lancez Smokeview, puis effectuez un clic droit (Ctrl Clic sur Mac) pour faire apparaître le menu. Dans celui-ci, choisissez « Load/Unload - Boundary File - GAUGE_HEAT_FLUX ».
Si l'animation se déroule trop rapidement, cliquez sur « Options - Max Frame rate » dans le petit menu, et réglez la vitesse d'affichage. Autre solution, cliquez sur la barre de défilement du temps puis avancez image par image avec la barre d'espace.

Une animation plus longue ?
Notre animation ne dure que 6 secondes et les portes s'animent très tôt. Pourtant nous voyons qu'avec seulement 6 secondes le temps de calcul s'allonge. Or, ce qui peut nous intéresser, c'est de modéliser des feux réels : le canapé est mis à feu, 5 minutes après les habitants se sauvent, préviennent les sapeurs-pompiers qui arrivent au bout de10 minutes, pénètrent dans le local et se font piéger 5 minutes plus tard. En tout, nous avons donc 20 minutes d'animation. Bien sûr, vous pouvez laisser tourner votre machine toute la nuit. Mais une fois Smokeview lancé, si vous vous rendez compte que tout est à refaire car la porte est mal placée ou ne s'ouvre pas au bon moment, cela risque de vous décourager assez rapidement.
Pour éviter cela, il faut commencer par faire un plan de la structure, avec les dimensions. Définissez les dimensions extérieures, vérifiez les en lançant FDS avec TIME TWFIN à 0. Placez ensuite les cloisons, puis vérifier. Faites de même avec les meubles et enfin avec les ouvertures que vous ouvrirez en totalité dés le début.
Lorsque tout est bien placé, régler les commandes d'ouverture, en vous basant sur des délais très court comme nous venons de le faire, ce qui vous permettra de voir l'enchaînement des actions.

Une fois ceci réalisé, il vous restera simplement à changer les délais, à allonger le temps général et d'être patient.

Voici le code complet de notre cours:

&HEAD CHID='test_2',TITLE='Test cours 2 pour flashover.fr' /
&GRID IBAR=80,JBAR=40,KBAR=24 / Nombre de cellules en x, y, z
&PDIM XBAR=8.0,YBAR=4.0,ZBAR=2.4 / Dimensions en mètres
&TIME TWFIN=6.0 / Durée de la simulation

/ Premier mur (côté gauche du couloir)
&OBST XB= 2.8, 3.0, 0.0, 4.0, 0.0, 2.4, RGB=0.6,0.6,0.6 /
/ Second mur (côté droit du couloir)
&OBST XB= 4.0, 4.2, 0.0, 4.0, 0.0, 2.4, RGB=0.6,0.6,0.6 /
/ Troisème mur (sépare la pièce de droite en deux)
&OBST XB= 4.2, 8.0, 2.0, 2.2, 0.0, 2.4, RGB=0.6,0.6,0.6 /

&SURF ID='BLOW' ,VEL=-0.3, TMPWAL=200.0, RGB=0.0,0.0,1.0 /
/ Création dés le départ de la porte 2, ouverte sur 60cm
&HOLE XB= 2.8, 3.0, 1.0, 1.6, 0.0, 2.0 /
/ Porte principale (1), ouverte au bout de 2 secondes
&VENT XB= 3.1, 3.9, 0.0, 0.0, 0.0, 2.0, SURF_ID='BLOW',T_ACTIVATE=2.0 /
/ Création porte 3, ouverte en grand au bout de 3 secondes
&HOLE XB= 4.0, 4.2, 3.0, 3.8, 0.0, 2.0, T_CREATE=3.0 /
/ Création porte 4, ouverte en grand au bout de 5 secondes
&HOLE XB= 5.0, 5.8, 2.0, 2.2, 0.0, 2.0, T_CREATE=5.0 /

/ Canapé Bleu: assise, dossier et 2 accoudoirs
&OBST XB= 0.7, 2.1, 4.0, 3.2, 0.0, 0.3, RGB=0,0,0.6 /
&OBST XB= 0.7, 2.1, 4.0, 3.7, 0.3, 0.9, RGB=0,0,0.6 /
&OBST XB= 0.7, 0.9, 3.7, 3.2, 0.3, 0.5, RGB=0.2,0.6,1 /
&OBST XB= 1.9, 2.1, 3.7, 3.2, 0.3, 0.5, RGB=0.2,0.6,1 /

/ Canapé vert contre le mur de gauche
&OBST XB= 0.0, 0.8, 1.3, 2.7, 0.0, 0.3, RGB=0.2,0.4,0 /
&OBST XB= 0.0, 0.3, 1.3, 2.7, 0.3, 0.9, RGB=0.2,0.4,0 /
&OBST XB= 0.3, 0.8, 1.3, 1.5, 0.3, 0.5, RGB=0.6,1,0 /
&OBST XB= 0.3, 0.8, 2.4, 2.7, 0.3, 0.5, RGB=0.6,1,0 /

&BNDF QUANTITY='GAUGE_HEAT_FLUX' /


Une animation plus longue!
Sans toucher aux délais d'ouverture des portes, changer simplement TIME TWFIN pour le régler à 60 (donc une minute d'animation). Lancer FDS, patientez, puis lancez puis Smokeview et observez: vous constaterez que pédagogiquement, cela commence à devenir très intéressant : alors que l'on peut penser que c'est la pièce de gauche, donc la plus proche de la source de chaleur, qui sera la plus chaude, il s'avère que c'est en fait la pièce du fond! La chaleur arrive au bout du couloir, percute le mur, descend, se retrouve sous le niveau du haut de la porte et pénètre donc dans cette pièce. Vous pouvez changer les délais d'ouverture des portes, ou changer la température et la vitesse de production de chaleur et regarder ce que cela donne.

La prochaine fois
Nous voici à la fin de cette seconde leçon. Nous commençons à avoir une petite idée des possibilités de cet outil. Nous avons désormais de beaux canapés, des portes qui s'ouvrent, de la chaleur qui se déplace La prochaine fois nous allons définir la matière des canapés et y mettre le feu!

Et comme toujours, si vous avez des questions, le forum "Modélisation informatique" est là pour ça!

Pierre-Louis Lamballais / pl.lamballais@flashover.fr





Cet article provient de Flashover - Backdraft - Fire Gas Ignition
http://www.flashover.fr

L'URL de cet article est:
http://www.flashover.fr/modules.php?name=News&file=article&sid=58
File: /home/flashove/www/mainfile.php
Line: 35
Type: 8
Message: Undefined index: HTTP_ACCEPT_ENCODING
User-Agent: claudebot
Ip: 3.239.52.235