{"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/aroma-preserving-spatial-structure-for-latent","title":"AROMA: Preserving Spatial Structure for Latent PDE Modeling with Local Neural Fields","arxiv_id":"2406.02176","date":"2024-06-04","proceeding":null,"authors":["Louis Serrano","Thomas X Wang","Etienne Le Naour","Jean-Noël Vittaut","Patrick Gallinari"],"abstract":"We present AROMA (Attentive Reduced Order Model with Attention), a framework designed to enhance the modeling of partial differential equations (PDEs) using local neural fields. Our flexible encoder-decoder architecture can obtain smooth latent representations of spatial physical fields from a variety of data types, including irregular-grid inputs and point clouds. This versatility eliminates the need for patching and allows efficient processing of diverse geometries. The sequential nature of our latent representation can be interpreted spatially and permits the use of a conditional transformer for modeling the temporal dynamics of PDEs. By employing a diffusion-based formulation, we achieve greater stability and enable longer rollouts compared to conventional MSE training. AROMA's superior performance in simulating 1D and 2D equations underscores the efficacy of our approach in capturing complex dynamical behaviors.","url_abs":"https://arxiv.org/abs/2406.02176v3","url_pdf":"https://arxiv.org/pdf/2406.02176v3.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":"aroma-preserving-spatial-structure-for-latent","repo_url":"https://github.com/louisserrano/aroma","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"}],"methods":[{"method_slug":"patching","method_name":"Patching"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2406.02176","atlas_url":"https://app.syntology.ai/?focus=2406.02176","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.02176"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/louisserrano/aroma","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_honours":2,"ran_violates":2,"ran":2,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"official":{"samples":10,"ran":7,"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":"f6b944f50d3f15ae","entry":"count_parameters","repo":"louisserrano/aroma","repo_kind":"official","path":"aroma/encoder_decoder.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/aroma/encoder_decoder.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f6b944f50d3f15ae"}},{"code_sha256_prefix":"60fff7c3c400d7ff","entry":"default","repo":"louisserrano/aroma","repo_kind":"official","path":"aroma/encoder_decoder.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/aroma/encoder_decoder.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"60fff7c3c400d7ff"}},{"code_sha256_prefix":"aa5486a3650902d8","entry":"exists","repo":"louisserrano/aroma","repo_kind":"official","path":"aroma/encoder_decoder.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/aroma/encoder_decoder.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aa5486a3650902d8"}},{"code_sha256_prefix":"c92c27c924b517e8","entry":"get_2d_sincos_pos_embed","repo":"louisserrano/aroma","repo_kind":"official","path":"aroma/DIT.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/aroma/DIT.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c92c27c924b517e8"}},{"code_sha256_prefix":"6c62c97d55bdd5b8","entry":"linear_scheduler","repo":"louisserrano/aroma","repo_kind":"official","path":"dynamics_modeling/train_refiner_graph.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/dynamics_modeling/train_refiner_graph.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":"6c62c97d55bdd5b8"}},{"code_sha256_prefix":"03310bba324ae4fb","entry":"modulate","repo":"louisserrano/aroma","repo_kind":"official","path":"aroma/DIT.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/aroma/DIT.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"03310bba324ae4fb"}},{"code_sha256_prefix":"30f9a317c56b5420","entry":"per_element_nll_fn","repo":"louisserrano/aroma","repo_kind":"official","path":"aroma/losses.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/aroma/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"30f9a317c56b5420"}},{"code_sha256_prefix":"cdee26ce4b13d516","entry":"batch_multi_scale_fn","repo":"louisserrano/aroma","repo_kind":"official","path":"aroma/losses.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/aroma/losses.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":"cdee26ce4b13d516"}},{"code_sha256_prefix":"665d8a4e8f673a4c","entry":"get_2d_sincos_pos_embed_from_grid","repo":"louisserrano/aroma","repo_kind":"official","path":"aroma/DIT.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/aroma/DIT.py","link_basis":"harvester_set","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":"665d8a4e8f673a4c"}},{"code_sha256_prefix":"fde22d55da472aed","entry":"per_element_multi_scale_fn","repo":"louisserrano/aroma","repo_kind":"official","path":"aroma/losses.py","file_url":"https://github.com/louisserrano/aroma/blob/HEAD/aroma/losses.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":"fde22d55da472aed"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}