{"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/multi-grid-graph-neural-networks-with-self","title":"Multi-Grid Graph Neural Networks with Self-Attention for Computational Mechanics","arxiv_id":"2409.11899","date":"2024-09-18","proceeding":null,"authors":["Paul Garnier","Jonathan Viquerat","Elie Hachem"],"abstract":"Advancement in finite element methods have become essential in various disciplines, and in particular for Computational Fluid Dynamics (CFD), driving research efforts for improved precision and efficiency. While Convolutional Neural Networks (CNNs) have found success in CFD by mapping meshes into images, recent attention has turned to leveraging Graph Neural Networks (GNNs) for direct mesh processing. This paper introduces a novel model merging Self-Attention with Message Passing in GNNs, achieving a 15\\% reduction in RMSE on the well known flow past a cylinder benchmark. Furthermore, a dynamic mesh pruning technique based on Self-Attention is proposed, that leads to a robust GNN-based multigrid approach, also reducing RMSE by 15\\%. Additionally, a new self-supervised training method based on BERT is presented, resulting in a 25\\% RMSE reduction. The paper includes an ablation study and outperforms state-of-the-art models on several challenging datasets, promising advancements similar to those recently achieved in natural language and image processing. Finally, the paper introduces a dataset with meshes larger than existing ones by at least an order of magnitude. Code and Datasets will be released at https://github.com/DonsetPG/multigrid-gnn.","url_abs":"https://arxiv.org/abs/2409.11899v1","url_pdf":"https://arxiv.org/pdf/2409.11899v1.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":"multi-grid-graph-neural-networks-with-self","repo_url":"https://github.com/DonsetPG/graph-physics","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bert","method_name":"BERT"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-linear-decay","method_name":"Linear Warmup With Linear Decay"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"pruning","method_name":"Pruning"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"},{"method_slug":"wordpiece","method_name":"WordPiece"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2409.11899","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.11899"}},"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/DonsetPG/graph-physics","reach":{"status":"ok"}}],"summary":{"ran":8,"unverified":3},"by_repo_kind":{"official":{"samples":11,"ran":8,"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":11,"samples":[{"code_sha256_prefix":"25a255d963e8bfd3","entry":"build_mlp","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"graphphysics/models/layers.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/graphphysics/models/layers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"25a255d963e8bfd3"}},{"code_sha256_prefix":"717abf83d19cc698","entry":"compute_k_hop_edge_index","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"graphphysics/utils/torch_graph.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/graphphysics/utils/torch_graph.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"717abf83d19cc698"}},{"code_sha256_prefix":"9982483381d0cc3b","entry":"compute_k_hop_edge_index","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"jraphphysics/utils/jax_graph.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/jraphphysics/utils/jax_graph.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9982483381d0cc3b"}},{"code_sha256_prefix":"6931b654c23f3caa","entry":"compute_k_hop_graph","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"graphphysics/utils/torch_graph.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/graphphysics/utils/torch_graph.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6931b654c23f3caa"}},{"code_sha256_prefix":"70fdb4963631a8e6","entry":"face_to_edge","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"jraphphysics/utils/jax_graph.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/jraphphysics/utils/jax_graph.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"70fdb4963631a8e6"}},{"code_sha256_prefix":"967c2eda827a1708","entry":"gumbel_softmax","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"graphphysics/models/transolver.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/graphphysics/models/transolver.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"967c2eda827a1708"}},{"code_sha256_prefix":"417486e192f1d2e2","entry":"scaled_dot_product_attention","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"jraphphysics/models/layers.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/jraphphysics/models/layers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"417486e192f1d2e2"}},{"code_sha256_prefix":"b23c55917991bfbd","entry":"scaled_query_key_softmax","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"graphphysics/models/layers.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/graphphysics/models/layers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b23c55917991bfbd"}},{"code_sha256_prefix":"31946da23612882b","entry":"build_gated_mlp","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"graphphysics/models/layers.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/graphphysics/models/layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"31946da23612882b"}},{"code_sha256_prefix":"717b1ddec140d3b8","entry":"create_subgraphs","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"graphphysics/utils/torch_graph.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/graphphysics/utils/torch_graph.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"717b1ddec140d3b8"}},{"code_sha256_prefix":"904fc3c367b7d747","entry":"scaled_query_key_softmax","repo":"DonsetPG/graph-physics","repo_kind":"official","path":"jraphphysics/models/layers.py","file_url":"https://github.com/DonsetPG/graph-physics/blob/HEAD/jraphphysics/models/layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"904fc3c367b7d747"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}