{"id":5136,"date":"2014-07-07T14:35:01","date_gmt":"2014-07-07T12:35:01","guid":{"rendered":"http:\/\/www.f-sim.de\/?p=5136"},"modified":"2014-07-07T14:35:01","modified_gmt":"2014-07-07T12:35:01","slug":"von-schnellen-simulationen-belastbaren-ergebnissen-apfeln-und-birnen","status":"publish","type":"post","link":"https:\/\/www.f-sim.de\/?p=5136","title":{"rendered":"Von schnellen Simulationen, belastbaren Ergebnissen, \u00c4pfeln und Birnen"},"content":{"rendered":"<p>Im offiziellen Issue-Tracker zu FDS und SMV wurde in den letzten\u00a0Wochen eine <a title=\"FDS Issue Tracker: FDS 6 5times slower than FDS 5\" href=\"https:\/\/code.google.com\/p\/fds-smv\/issues\/detail?id=2143\">interessante Diskussion<\/a> um eine &#8222;Fehler&#8220;-Meldung zu FDS gef\u00fchrt.<\/p>\n<p>Ein Anwender meldet, dass seine Simulation mit FDS 6 ca. 5mal mehr Zeit ben\u00f6tigt, als mit FDS 5.<\/p>\n<p>Einer der Entwickler, Dr. Jason Floyd von <a title=\"Hughes Associates\" href=\"http:\/\/www.haifire.com\/\">Hughes Associates<\/a>, weist in seiner Antwort darauf hin, dass die Eingabedateien zu beiden Simulationen, die hier hinsichtlich ihrer Laufzeit verglichen werden, <em>nicht<\/em> identisch sind, sondern in der FDS 5-Simulation die Str\u00f6mung eines Fluids ohne Verbrennungsreaktion simuliert wird, w\u00e4hrend in der Simulation f\u00fcr FDS 6 explizit Reaktionseigenschaften definiert wurden, was zus\u00e4tzliche Rechenzeit kostet.<\/p>\n<p><!--more--><\/p>\n<p>Dar\u00fcber hinaus weist Dr. Floyd darauf hin, dass (selbst wenn die Eingaben identisch w\u00e4ren) der Vergleich zwischen FDS 5 und 6 hinkt, da beide Programmversionen sich in vielerlei Hinsicht unterscheiden:<\/p>\n<ul>\n<li>Als Hintergrundfluid ist in FDS 5 Stickstoff voreingestellt, in FDS 6 ein Gemisch aus Stickstoff, Sauerstoff, Wasserdampf und Kohlenstoffdioxid. Zwar werden die einzelnen Stoffe als Gemisch betrachtet, also die Ausbreitung mit nur einer Transportgleichung simuliert, der Strahlungsl\u00f6ser hat jedoch bei der Berechnung der stoffabh\u00e4ngigen Absorption mehr zu tun.<\/li>\n<li>FDS 6 stellt sch\u00e4rfere Bedingungen an das Courant-Friedrichs-Lewy-Kriterium zur Bestimmung der Zeitschrittweite, was zu kleineren Zeitschritten und damit zu einem h\u00f6heren Rechenaufwand f\u00fchrt.<\/li>\n<li>Bei der Verwendung von mehreren Berechnungsgebieten (nur so konnte der Anwender\u00a0vor FDS 6.1\u00a0die 32 Kerne seines System mit FDS 6 \u00fcberhaupt in <em>einer<\/em> Simulation nutzen) wendet FDS 6 nicht mehr ausschlie\u00dflich den direkten Druckl\u00f6ser an, sondern setzt auf eine iterative Anwendung des Druckl\u00f6sers, wobei die Anzahl der Iterationen von dem Erreichen eines voreingestellten Abbruchfehlers abh\u00e4ngt. Zusammen mit einer ganzen Menge anderer Verbesserungen probieren die Entwickler so den Massen- und Energieaustausch an den \u00dcberg\u00e4ngen zwischen den Berechnungsgebieten zu verbessern. Voreingestellt sind maximal 10 Iterationen pro Zeitschritt, in den V&amp;V-Beispielen werden allerdings teilweise 100 bis 1.000 Iterationen angesetzt &#8211; verantwortlich f\u00fcr die Wahl der m\u00f6glichen Iterationen ist der Nutzer.<\/li>\n<li>Anders als FDS 5 nutzt FDS 6 nicht mehr den Ansatz mit einer Smagorinsky-Konstante, sondern das Deardorff-Modell, in dem die kinetische Energie im Bereich kleiner der Filtergr\u00f6\u00dfe anders berechnet wird. Das Modell kann signifikant bessere Ergebnisse bei der Simulation turbulenter Str\u00f6mungen liefern, aber (der Leser wird es schon ahnen): es\u00a0kostet mehr Rechenzeit.<\/li>\n<\/ul>\n<p>Es gibt also genug gute Gr\u00fcnde, warum FDS 6 langsamer als FDS 5 sein darf. Die Entwickler haben hier aus meiner Sicht genau die richtige Entscheidung getroffen, und Qualit\u00e4t nicht der heiligen Kuh &#8222;Geschwindigkeit&#8220; geopfert, sondern mit FDS 6 viele der kleinen und gro\u00dfen Probleme von FDS 5 behoben und <em>erst dann<\/em> entschieden, ob der Qualit\u00e4tsgewinn den entstandenen Mehraufwand rechtfertigt. Dar\u00fcber hinaus gibt es aber noch eine andere Sichtweise auf die Dinge: Ist die Fragestellung &#8222;Warum ist meine Simulation mit FDS 6 bis zu 5 mal langsamer als meine Simulation mit FDS 5?&#8220; \u00fcberhaupt zielf\u00fchrend oder anders gefragt:<\/p>\n<blockquote><p>&#8222;Ist FDS 6 \u00fcberhaupt langsamer als FDS 5?&#8220;.<\/p><\/blockquote>\n<p>Ein sch\u00f6nes Beispiel f\u00fcr einen irref\u00fchrenden Vergleich hat Ende letzten Jahres Elon Musk in einem Blog-Beitrag zu Br\u00e4nden des Model S seiner Firma <a title=\"(Der Autor will hier nicht erneut auf Vergleiche zwischen Trabis und deutschen Premium-Marken eingehen :-)\" href=\"http:\/\/www.teslamotors.com\/blog\/model-s-fire\">Tesla Motors<\/a> ver\u00f6ffentlicht.<br \/>\nAufgrund der intensiven Berichterstattung \u00fcber einzelne PKW-Br\u00e4nde der Marke Tesla Motors konnte der Eindruck erweckt worden sein, seine Fahrzeuge seien hinsichtlich des Brandeintrittsrisikos unsicherer als konventionelle Fahrzeuge mit Verbrennungsmotor.<br \/>\nMusk weist darauf hin, dass statstisch alle 20 Millionen gefahrene km ein konventioneller PKW brennt, w\u00e4hrend Br\u00e4nde bei der Marke Tesla Motors statistisch nur alle 100 Millionen gefahrene km vorkommen.<br \/>\n\u00c4hnliche Vergleiche werden h\u00e4ufig bei Fragestellung nach dem sichereren Trasportmedium (Flieger oder PKW) oder beispielsweise dem Risiko eines Hai-Angriffs gezogen.<\/p>\n<p>Will man also die Simulationszeiten 2er verschiedener Programme oder die numerischen Kosten der Umsetzung 2er verschiedener Modelle vergleichen, kann es irref\u00fchrend sein, lediglich die Laufzeit der Simulation auszuwerten. Entscheidend ist die Laufzeit bei vergleichbarer Qualit\u00e4t, und da hinkt der direkte Vergleich des fragenden Anwenders gewaltig.<\/p>\n<p>Der Str\u00f6mungsl\u00f6ser von FDS 5 mit konstanter Smagorinsky-Zahl neigt dazu, die L\u00e4nge der Kernzone (also des Bereiches einer konstanten Geschwindigkeit)\u00a0deutlich zu \u00fcbersch\u00e4tzen. Im Ergebnis prognostizierte FDS in gr\u00f6\u00dferer Entfernung vom D\u00fcsenauslass zu hohe Geschwindigkeiten.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5145\" src=\"https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS5.png\" alt=\"Jet_Vel_FDS5\" width=\"540\" height=\"270\" srcset=\"https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS5.png 540w, https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS5-150x75.png 150w, https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS5-300x150.png 300w, https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS5-500x250.png 500w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/p>\n<p>Der Str\u00f6mungsl\u00f6ser von FDS 6 mit Ansatz nach Deardorff liefert schon bei deutlich gr\u00f6berer Diskretisierung deutlich bessere Ergebnisse (gezeigt wird beide male das Geschwindigkeitsprofil entlang der Achse).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5146\" src=\"https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS6.png\" alt=\"Jet_Vel_FDS6\" width=\"540\" height=\"270\" srcset=\"https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS6.png 540w, https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS6-150x75.png 150w, https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS6-300x150.png 300w, https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_Vel_FDS6-500x250.png 500w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/p>\n<p>Mein Kollege Gregor J\u00e4ger konnte dazu vor einigen Jahren einen Testfall in das offizielle Handbuch einbringen, der beide FDS-Versionen deutlich vergleicht:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_vel_center.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5141 size-full\" src=\"https:\/\/www.f-sim.de\/wp-content\/uploads\/2014\/05\/Jet_vel_center.png\" alt=\"Jet_vel_center\" width=\"540\" height=\"273\" \/><\/a><\/p>\n<p>Wie bei jedem guten Diagramm lohnt auch hier ein zweiter Blick, um sich die Aussage des Diagramms klar zu machen.<\/p>\n<p>Auf der X-Achse ist das Verh\u00e4ltnis des Abstandes x vom D\u00fcsenauslass zum D\u00fcsendurchmesser aufgetragen, auf der Y-Achse die Geschwindigkeit am D\u00fcsenauslass im Verh\u00e4ltnis zur lokalen Geschwindigkeit in einem Abstand x vom D\u00fcsenauslass. Ein horizontaler Kurvenverlauf in der N\u00e4he des D\u00fcsenauslasses zeigt also eine konstante Geschwindigkeit an. Der \u00dcbergangspunkt vom horizontalen Verlauf der Kurve in einen fallenden Verlauf markiert also das Ende der Kernzone.<\/p>\n<p>Die beiden schwarzen Kurven stellen den Kurvenverlauf zweier analytischer L\u00f6sungen mit unterschiedlichen Mischzahlen m dar. Ein qualitativ gutes Ergebnis sollte zwischen beiden Kurven liegen.<\/p>\n<p>Betrachtet man jetzt die L\u00f6sung mit konstanter Smagorinsky-Zahl (csmag wie in FDS 5 angewendet), f\u00e4llt auf, dass ein qualitativ akzeptables Ergebnis mindestens eine Aufl\u00f6sung des Auslasses von 16 x 16 = 256 Zellen ben\u00f6tigt. Im Vergleich dazu liefert beispielsweise das dynamische Smagorinsky-Modell schon mit 8\u00a0x 8 = 64 Zellen\u00a0 ein sehr gutes Ergebnis.<\/p>\n<p>Um qualitativ vergleichbar gute Ergebnisse in FDS 5 erreichen zu k\u00f6nnen, ben\u00f6tigt FDS 5 also grob 8 mal so viele Zellen wie FDS 6 und ca. eine halb so gro\u00dfe Zeitschrittweite dt, woraus sich in erster N\u00e4herung eine 16fach l\u00e4ngere Simulationsdauer ergibt. Im Vergleich dazu,\u00a0kann man FDS 6 eigentlich einfach nur schnell nennen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im offiziellen Issue-Tracker zu FDS und SMV wurde in den letzten\u00a0Wochen eine interessante Diskussion um eine &#8222;Fehler&#8220;-Meldung zu FDS gef\u00fchrt. Ein Anwender meldet, dass seine Simulation mit FDS 6 ca. 5mal mehr Zeit ben\u00f6tigt, als<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-5136","post","type-post","status-publish","format-standard","hentry","category-fds"],"_links":{"self":[{"href":"https:\/\/www.f-sim.de\/index.php?rest_route=\/wp\/v2\/posts\/5136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.f-sim.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.f-sim.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.f-sim.de\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.f-sim.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5136"}],"version-history":[{"count":23,"href":"https:\/\/www.f-sim.de\/index.php?rest_route=\/wp\/v2\/posts\/5136\/revisions"}],"predecessor-version":[{"id":5218,"href":"https:\/\/www.f-sim.de\/index.php?rest_route=\/wp\/v2\/posts\/5136\/revisions\/5218"}],"wp:attachment":[{"href":"https:\/\/www.f-sim.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.f-sim.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.f-sim.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}