{"id":10,"date":"2017-11-02T16:39:42","date_gmt":"2017-11-02T15:39:42","guid":{"rendered":"https:\/\/thetheoreticaldiver.org\/wordpress\/?p=10"},"modified":"2019-12-12T14:03:50","modified_gmt":"2019-12-12T13:03:50","slug":"vpm-b-wie-funktionierts-deutsche-ubersetzung","status":"publish","type":"post","link":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/2017\/11\/02\/vpm-b-wie-funktionierts-deutsche-ubersetzung\/","title":{"rendered":"VPM-B: Wie funktioniert&#8217;s (deutsche \u00dcbersetzung)"},"content":{"rendered":"<p><span style=\"font-size: 1rem;\">Dies ist der erste technische Post dar\u00fcber, wie VPM-B funktioniert. Ich werde nur den Algorithmus beschrieben (mit allen wichtigen Formeln, einige davon vielleicht \u00a0in ungewohnter Form), w\u00e4hrend die physikalische Herleitung in einem sp\u00e4teren Post behandelt werden wird.\u00a0<\/span><\/p>\n<p>Ich werde nicht versuchen, die urspr\u00fcngliche Herleitung nachzubeten (auch schon alleine, weil ich sie nicht wirklich verstehe), sondern vielmehr beschreiben, was ich durch langes Starren auf <a href=\"\">unsere Implementierung des Modells in Subsurface<\/a> gelernt habe. Wie vorher schon erkl\u00e4rt haben wir versucht eine unabh\u00e4ngige Neuimplementierung zu machen, haben aber nat\u00fcrlich sicher gestellt, dass die Austauschpl\u00e4ne des urspr\u00fcnglichen FORTRAN-Programms reproduziert werden. Dieses haben wir letztendlich als die Definition von VPM-B hergenommen.<\/p>\n<p><span style=\"font-size: 1rem;\">Zun\u00e4chst ist dieses dem B\u00fchlmannmodell sehr \u00e4hnlich und baut darauf auf. F\u00fcr diesen Post nehme ich an, dass dieses bekannt ist (falls nicht habe ich hier mal <\/span><a style=\"font-size: 1rem;\" href=\"https:\/\/thetheoreticaldiver.org\/wordpress\/\/var\/lib\/wordpress\/wp-content\/uploads\/2017\/11\/dekotheorie1.pdf\">eine kurze Zusammenfassung<\/a><span style=\"font-size: 1rem;\"> aufgeschrieben). Insbesondere werden die S\u00e4ttigungen der verschiedenen Gewebe mit Inertgasen mit der gleichen einfachen Diffusionsgleichung beschrieben:<\/span><\/p>\n<p>$$\\frac{dp_i}{dt} = \\alpha_i(p_{amb}-p_i)$$<\/p>\n<p>wobei die Zeitkonstante \\(\\alpha_i\\) im wesentlichen der Kehrwert der Halbwertzeit des Gewebes ist.<span style=\"font-size: 1rem;\">\u00a0<\/span><\/p>\n<p>Der einzige Unterschied besteht darin, wie die Ceiling (die momentan minimal erlaubte Tiefe) aus den Gewebesaettigungen \\(p_i\\) berechnet wird: B\u00fchlmann verwendet einen affine Zusammenhang mit dem Umgebungsdruck (die Geradengleichung wird durch die gekannten \\(a\\) und \\(b\\) Koeffizienten parametrisiert. Verwendet man Gradientenfaktoren, die wird Geradengleichung noch weiter modifiziert (abh\u00e4ngig von der maximalen Ceiling, aber die Ceiling, geplottet als Funktion von \u00a0\\(p_i\\) bleibt eine Gerade, ist also affin).<\/p>\n<p>F\u00fcr VPM-B ist dies anders: Nur in der nullten N\u00e4herung bleibt es eine Gerade: In der Tat wird die Ceiling einfach durch einen konstanten Gradienten (die Differenz zwischen Umgebungsdruck und Gewebedruck) gegeben, dieser ist sogar von der Tiefe unabh\u00e4ngig:<\/p>\n<p>$$p_{amb} &#8211; p_i \\le G_{0,i}.$$<\/p>\n<p>Dieser Gradient wird als Anfangsgradient \u00a0\\(G_0\\) bezeichnet. In dieser N\u00e4herung verh\u00e4lt sich VPM-B genau wie ein Buehlmannmodell mit modifizierten a und b Koeffizienten.<\/p>\n<p>F\u00fcr die n\u00e4chste N\u00e4herung, die &#8220;Boyle-Kompensation&#8221; m\u00fcssen wir etwas \u00fcber Blasen wissen. Alles, was wir brauchen, ist, dass diese eine Oberfl\u00e4che haben und dass die Oberfl\u00e4che zur Gesamtenergie proportional zu ihrer Fl\u00e4che beitr\u00e4gt:<\/p>\n<p>$$E_{surf}= \\gamma r^2$$<\/p>\n<p>f\u00fcr eine Blase mit Radius \\(r\\) (wir k\u00f6nnen numerische Faktoren wie \\(4\\pi\\) in der Proportionalit\u00e4tskonstantante\u00a0\\(\\gamma\\) absorbieren). Die Kraft auf die Oberfl\u00e4che, die diese zu verkleinern sucht, ist dann<\/p>\n<p>$$F_{surf} = \\frac{\\partial E_{surf}}{\\partial r} = 2\\gamma r.$$<\/p>\n<p>Diese Kraft wirkt auf die gesamte Fl\u00e4che, teilen wir durch den Fl\u00e4cheninhalte erhalten wir einen Beitrag zum Druck in der Blase:<\/p>\n<p><span style=\"font-size: 1rem;\">$$G=\\frac{2\\gamma}r.$$<\/span><\/p>\n<p>Derartige Formeln, bei denen eine Blasenoberfl\u00e4che \u00a0\\(2\\gamma\/r\\) zum Druck beitr\u00e4gt, werden im Folgenden immer wieder auftauchen.<\/p>\n<p>Insbesondere zu dem Zeitpunkt im Tauchgang mit der tiefsten Ceiling ist der Gradient \\(G_0\\) genau dies. &#8220;Boyle-Kompensation&#8221; bedeutet, dass der von nun an tiefenabh\u00e4ngige Gradient (also der Umgebungsdruck minus Gewebedruck) dadurch gegeben ist, dass man eine Blase nach dem Boyle-Marriott-Gesetz expandieren l\u00e4sst, also dass man annimmt, dass\u00a0\\(pV\\) konstant ist. \\(p\\) im Inneren der Blase (was nach dem Modell mit dem Gewebedruck gleich ist) wird dann berechnet als der Umgebungsdruck plus dem momentanen maximalen Gradienten. Das Volumen der Blase ist proportional zu \\(r^3\\) und dies ist nach der obigen Formel proportional zu \\(1\/G^3\\). Alles in allem ist die erlaubte Differenz zwischen Gewebe- und Umgebungsdruck in der Tiefe \\(d\\) gegeben durch die L\u00f6sung von<\/p>\n<p>$$\\frac{G+p(d)}{G^3} = \\frac {G_0+p_{1st\\ ceiling}}{G_0^3}.$$<\/p>\n<p>Folglich ist der der maximale Gradient keine Gerade mehr, sondern die L\u00f6sung einer kubischen Gleichung (f\u00fcr die wir in Subsurface auch einen analytischen Ausdruck verwenden statt wie im Originalcode eine Nullstellensuche mittels Newtonverfahren zu veranstalten).<\/p>\n<p>&nbsp;<\/p>\n<p>Ich habe noch nicht erkl\u00e4rt, wie der Anfangsgradient\u00a0\\(G_0\\) berechnet wird. F\u00fcr VPM-B lautet der Ausdruck daf\u00fcr<\/p>\n<p>$$G_0 = 2 \\frac\\gamma{\\gamma_c} \\frac {\\gamma_c &#8211; \\gamma}{r_{reg}}.$$<\/p>\n<p>Hier ist \u00a0\\(r_{reg}\\) der &#8220;Crushing-Radius&#8221;, der sich mittels<\/p>\n<p>$$\\frac{2(\\gamma_c-\\gamma)}{r_{reg}} = p_{max} + \\frac{2(\\gamma_c-\\gamma)}{r_{crit}}$$<\/p>\n<p>aus der Oberfl\u00e4chenspannung der Blase berechnen l\u00e4sst.<\/p>\n<p>Hier wiederum sind\u00a0\u00a0\\(\\gamma\\) und\u00a0\\(\\gamma_c\\) Oberfl\u00e4chenspannungen (am Ende: Modellparameter), ebenso wie \\(r_{crit}\\). Letzteres ist der Parameter, an dem man den Konservatismus des Modells einstellen kann: Jede zus\u00e4tzliche Konservatismusstufe (zum Beispiel VPM-B+3) erh\u00f6ht \\(r_{crit}\\) um 5 Prozent. \u00a0\\(p_{max}\\) ist das Maximum des Umgebungsdrucks w\u00e4hrend des Tauchgangs. Im Prinzip soll man diesen auch wieder exponentiell \u00a0an \u00a0\\(r_{crit}\\) angleichen; dies kann man aber getrost ignorieren, da die Halbwertzeit von zwei Wochen viel l\u00e4nger als alle relevanten Zeitskalen eines Tauchgangs sind.<\/p>\n<p>Jetzt haben wir alles, was wir brauchen, um eine Deko-Profil zu berechnen: F\u00fcr jede Tiefe kennen wir wie im Buhlmann-Modell den maximal erlaubten \u00dcberdruck.<\/p>\n<p>Es stellt sich heraus, dass die so erhaltenen Dekoprofile viel zu lange dauern. Hier kommt der &#8220;Kritische-Volumen-Algorithmus&#8221; ins Spiel. Wir erh\u00f6hen leicht den Anfangsgradienten (bisher war das\u00a0<span style=\"font-size: 1rem;\">\\(G_0\\) und\u00a0<\/span>unterwerfen<span style=\"font-size: 1rem;\">\u00a0den dann ebenso der Boyle-Korrektur.<\/span><\/p>\n<p>Die Idee dabei ist, dass der K\u00f6rper eine bestimmte zus\u00e4tzliche Menge an Gas in Blasenform vertr\u00e4gt. Dieses erlaubte Volumen ist wiederum ein Modellparameter und wird mit einem wie folgt f\u00fcr einen Anfangsgradienten \\(G_0&#8242;\\) berechnet: Es wird angenommen, dass es vor dem Tauchgang eine bestimmte Verteilung der Blasenzahl abh\u00e4ngig von ihrer Gr\u00f6\u00dfe im K\u00f6rper gibt. Dadurch, dass der Anfangsgradient von\u00a0<span style=\"font-size: 1rem;\">\\(G_0\\) auf \\(G_0&#8242;\\) erh\u00f6ht wird, erh\u00f6ht sich die Zahl der wachsenden Blasen (generell wachsen grosse Blasen, da bei ihnen der Druckanteil durch die Oberfl\u00e4chenspannung kleiner ist, siehe oben, w\u00e4hrend kleine schrumpfen). Die Zahl der zus\u00e4tzlich wachsenden Blasen ist dann in linearer\u00a0<\/span>N\u00e4herung proportional zu (und dies ist einer der Orte, wo ich die Herleitung nicht verstehe, aber verwenden wir den Ausdruck trotzdem):<span style=\"font-size: 1rem;\"><br \/>\n<\/span><\/p>\n<p>$$\\frac{G_0&#8242;-G_0}{G_0&#8242;-\\alpha G_{crush}}.$$<\/p>\n<p>&nbsp;<\/p>\n<p>Hier ist \u00a0\\(\\alpha\\) ein weiterer Modellparameter und \u00a0\\(G_{crush}\\) ist der maximale \u00dcberdruck des Umgebungsdrucks zum Gewebedruck w\u00e4hrend des Tauchgangs und nach den Regeln des Modells ebenso der maximale Unterschied zwischen dem Innen- und dem Au\u00dfendruck einer Blase (wenn dieser zu gro\u00df ist, kommen wir ins &#8220;nichtpermeable Regime&#8221; und man wendet eine weitere Boyle-Kompensation an).<\/p>\n<p>Eine weiter Annahme ist, dass die Rate mit der Gas in die Gasphase in Blasen geht, proportional zum Gradienten\u00a0\\(G_0&#8242;\\) ist (die erfolgte Boyle-Compensation f\u00e4llt hier unter den Tisch). Da man also annimmt, dass der Gradient w\u00e4hrend der Deko (definiert als die Zeit, zwischen dem Zeitpunkt, bei dem das erste Gewebe beginnt, den Gewebedruck wieder abzubauen bis zum Erreichen der Oberfl\u00e4che) konstant ist, multiplizieren wir den Gradienten mit der Dekozeit (dies ist die Zeit \\(t_D\\) die wir oben berechnet haben, als wir den Dekoplan aus den Gradienten berechnet haben).<\/p>\n<p>Sobald wir die Oberfl\u00e4che erreichen, gibt es immer noch einen \u00dcberdruck im Gewebe, zun\u00e4chst\u00a0<span style=\"font-size: 1rem;\">\\(G_0&#8242;\\) (wiederum wird die Boyle-Kompensation unterschlagen) und im Folgenden f\u00e4llt dieser exponentiell entsprechend der obigen Diffusionsgleichung auf 0. Somit ist das Zeit-<\/span>Integral<span style=\"font-size: 1rem;\">\u00a0des Gradienten an der Oberfl\u00e4che\u00a0\\(G_0&#8217;\/\\alpha_i\\). Nimmt man alles zusammen, ist das\u00a0<\/span>Kriterium<span style=\"font-size: 1rem;\">\u00a0f\u00fcr den neuen Gradienten \\(G_0&#8242;\\)<\/span><\/p>\n<p>$$V\\ge\u00a0\\frac{G_0&#8242;-G_0}{G_0&#8242;-\\alpha G_{crush}} G_0&#8242; \\left(t_D +\\frac 1{\\alpha_i}\\right)$$<\/p>\n<p>Dies l\u00f6st man nach \\(G_0&#8242;\\) auf, was dann f\u00fcr einen neuen Dekoplan benutzt wird, der wiederum ein neues \\(t_D\\) ergibt. Dieses Verfahren wiederholt man, bis sich \\(G_0&#8242;\\) nicht mehr \u00e4ndert.<\/p>\n<p>Bis auf etwas Kleingedrucktes (wie etwa wie der Dekoplan aus dem Gradienten im Detail berechnet wird) ist dies der gesamte VPM-B Algorithmus. Mit diesen Informationen kann man ihn im Prinzip selber implementieren.<\/p>\n<p><span style=\"font-size: 1rem;\">In einem zuk\u00fcnftigen Post plane ich dann die Physik anzusehen, die aufgerufen wird, um die hier verwendeten Gleichungen herzuleiten.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dies ist der erste technische Post dar\u00fcber, wie VPM-B funktioniert. Ich werde nur den Algorithmus beschrieben (mit allen wichtigen Formeln, einige davon vielleicht \u00a0in ungewohnter Form), w\u00e4hrend die physikalische Herleitung in einem sp\u00e4teren Post behandelt werden wird.\u00a0 Ich werde nicht versuchen, die urspr\u00fcngliche Herleitung nachzubeten (auch schon alleine, weil ich sie nicht wirklich verstehe), sondern &hellip; <a href=\"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/2017\/11\/02\/vpm-b-wie-funktionierts-deutsche-ubersetzung\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;VPM-B: Wie funktioniert&#8217;s (deutsche \u00dcbersetzung)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[1],"tags":[3,12,10],"class_list":["post-10","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-decompression","tag-deutsch","tag-vpm-b"],"_links":{"self":[{"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":2,"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":68,"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/10\/revisions\/68"}],"wp:attachment":[{"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thetheoreticaldiver.org\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}