{"id":6715,"date":"2026-05-27T15:04:41","date_gmt":"2026-05-27T13:04:41","guid":{"rendered":"https:\/\/www.mi.uni-koeln.de\/NumSim\/?p=6715"},"modified":"2026-05-27T15:04:41","modified_gmt":"2026-05-27T13:04:41","slug":"thesis-snapshot-odil-in-julia-bachelor-thesis-by-luca-diederich","status":"publish","type":"post","link":"https:\/\/www.mi.uni-koeln.de\/NumSim\/2026\/05\/27\/thesis-snapshot-odil-in-julia-bachelor-thesis-by-luca-diederich\/","title":{"rendered":"Thesis Snapshot: ODIL in Julia (Bachelor thesis by Luca Diederich)"},"content":{"rendered":"<p>ODIL is a numerical method for solving partial differential equations developed and published in 2023 [1]. Instead of relying on neural networks, ODIL employs conventional grid-based PDE discretizations and optimizes a discrete loss function using gradient-based methods as well as Gauss\u2013Newton techniques, thereby combining numerical methods with machine learning into a powerful tool for challenging inverse problems in the natural sciences. As part of this work, the approach originally developed in Python was implemented and evaluated in Julia.<\/p>\n<p>The working principle of ODIL can be seen in the following picture. Burger&#8217;s equation is solved on a one dimensional domain in time and space. Sparse measurements of a precomputed Finite Volume solution (left) are prescribed at the depicted points (right, black dots on rectangle), and ODIL is run to reconstruct the solution. After 75 Gau\u00df-Newton steps a stable solution (right) is obtained.<\/p>\n<p><a href=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2026\/05\/Bildschirmfoto-2026-05-19-um-14.21.28.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2026\/05\/Bildschirmfoto-2026-05-19-um-14.21.28-1024x596.png\" alt=\"\" width=\"584\" height=\"340\" class=\"aligncenter size-large wp-image-6717\" srcset=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2026\/05\/Bildschirmfoto-2026-05-19-um-14.21.28-1024x596.png 1024w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2026\/05\/Bildschirmfoto-2026-05-19-um-14.21.28-300x174.png 300w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2026\/05\/Bildschirmfoto-2026-05-19-um-14.21.28-768x447.png 768w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2026\/05\/Bildschirmfoto-2026-05-19-um-14.21.28-500x291.png 500w, https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-content\/uploads\/2026\/05\/Bildschirmfoto-2026-05-19-um-14.21.28.png 1238w\" sizes=\"(max-width: 584px) 100vw, 584px\" \/><\/a><\/p>\n<p><strong>References:<\/strong><br \/>\n[1] Karnakov, P., Litvinov, S. &#038; Koumoutsakos, P. Flow reconstruction by multiresolution optimization of a discrete loss with automatic differentiation. Eur. Phys. J. E 46, 59 (2023). <a href=\"https:\/\/doi.org\/10.1140\/epje\/s10189-023-00313-7\">https:\/\/doi.org\/10.1140\/epje\/s10189-023-00313-7<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ODIL is a numerical method for solving partial differential equations developed and published in 2023 [1]. Instead of relying on neural networks, ODIL employs conventional grid-based PDE discretizations and optimizes a discrete loss function using gradient-based methods as well as &hellip; <a href=\"https:\/\/www.mi.uni-koeln.de\/NumSim\/2026\/05\/27\/thesis-snapshot-odil-in-julia-bachelor-thesis-by-luca-diederich\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[58],"tags":[],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/posts\/6715"}],"collection":[{"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/comments?post=6715"}],"version-history":[{"count":5,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/posts\/6715\/revisions"}],"predecessor-version":[{"id":6722,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/posts\/6715\/revisions\/6722"}],"wp:attachment":[{"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/media?parent=6715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/categories?post=6715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mi.uni-koeln.de\/NumSim\/wp-json\/wp\/v2\/tags?post=6715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}