{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/generative-diffusion-for-3d-turbulent-flows","title":"From Zero to Turbulence: Generative Modeling for 3D Flow Simulation","arxiv_id":"2306.01776","date":"2023-05-29","proceeding":null,"authors":["Marten Lienen","David Lüdke","Jan Hansen-Palmus","Stephan Günnemann"],"abstract":"Simulations of turbulent flows in 3D are one of the most expensive simulations in computational fluid dynamics (CFD). Many works have been written on surrogate models to replace numerical solvers for fluid flows with faster, learned, autoregressive models. However, the intricacies of turbulence in three dimensions necessitate training these models with very small time steps, while generating realistic flow states requires either long roll-outs with many steps and significant error accumulation or starting from a known, realistic flow state - something we aimed to avoid in the first place. Instead, we propose to approach turbulent flow simulation as a generative task directly learning the manifold of all possible turbulent flow states without relying on any initial flow state. For our experiments, we introduce a challenging 3D turbulence dataset of high-resolution flows and detailed vortex structures caused by various objects and derive two novel sample evaluation metrics for turbulent flows. On this dataset, we show that our generative model captures the distribution of turbulent flows caused by unseen objects and generates high-quality, realistic samples amenable for downstream applications without access to any initial state.","url_abs":"https://arxiv.org/abs/2306.01776v3","url_pdf":"https://arxiv.org/pdf/2306.01776v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"generative-diffusion-for-3d-turbulent-flows","repo_url":"https://github.com/martenlienen/generative-turbulence","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[{"slug":"3d-flow-shapes","name":"3D Flow Shapes","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.01776","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.01776"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/martenlienen/generative-turbulence","reach":null}],"summary":{"ran":2,"ran_honours":3,"ran_draft_wrong":4,"unverified":1},"by_repo_kind":{"official":{"samples":10,"ran":9,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"6ae697d52bb7d328","entry":"GaussianDiffusion","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6ae697d52bb7d328"}},{"code_sha256_prefix":"401db7131605c5fc","entry":"ModelPrediction","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"401db7131605c5fc"}},{"code_sha256_prefix":"3d7c22baf966de94","entry":"batch_mean","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3d7c22baf966de94"}},{"code_sha256_prefix":"af13971ec5335987","entry":"log_linear_beta_schedule","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"af13971ec5335987"}},{"code_sha256_prefix":"191c57482f6a6f7c","entry":"log_snr_linear_beta_schedule","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"191c57482f6a6f7c"}},{"code_sha256_prefix":"52471728865056fc","entry":"normal_kl","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"52471728865056fc"}},{"code_sha256_prefix":"c3245e963ceb6826","entry":"normal_log_lk","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c3245e963ceb6826"}},{"code_sha256_prefix":"58cf41c62a9724de","entry":"ravel_cells","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"58cf41c62a9724de"}},{"code_sha256_prefix":"d50d212d93c594ab","entry":"where_cells","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d50d212d93c594ab"}},{"code_sha256_prefix":"b8cdcc9c16780e5d","entry":"broadcast_right","repo":"martenlienen/generative-turbulence","repo_kind":"official","path":"turbdiff/models/ddpm.py","file_url":"https://github.com/martenlienen/generative-turbulence/blob/HEAD/turbdiff/models/ddpm.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b8cdcc9c16780e5d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}