{"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/neural-operators-with-localized-integral-and","title":"Neural Operators with Localized Integral and Differential Kernels","arxiv_id":"2402.16845","date":"2024-02-26","proceeding":null,"authors":["Miguel Liu-Schiaffini","Julius Berner","Boris Bonev","Thorsten Kurth","Kamyar Azizzadenesheli","Anima Anandkumar"],"abstract":"Neural operators learn mappings between function spaces, which is practical for learning solution operators of PDEs and other scientific modeling applications. Among them, the Fourier neural operator (FNO) is a popular architecture that performs global convolutions in the Fourier space. However, such global operations are often prone to over-smoothing and may fail to capture local details. In contrast, convolutional neural networks (CNN) can capture local features but are limited to training and inference at a single resolution. In this work, we present a principled approach to operator learning that can capture local features under two frameworks by learning differential operators and integral operators with locally supported kernels. Specifically, inspired by stencil methods, we prove that we obtain differential operators under an appropriate scaling of the kernel values of CNNs. To obtain local integral operators, we utilize suitable basis representations for the kernels based on discrete-continuous convolutions. Both these approaches preserve the properties of operator learning and, hence, the ability to predict at any resolution. Adding our layers to FNOs significantly improves their performance, reducing the relative L2-error by 34-72% in our experiments, which include a turbulent 2D Navier-Stokes and the spherical shallow water equations.","url_abs":"https://arxiv.org/abs/2402.16845v2","url_pdf":"https://arxiv.org/pdf/2402.16845v2.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":"neural-operators-with-localized-integral-and","repo_url":"https://github.com/nvidia/torch-harmonics","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"neural-operators-with-localized-integral-and","repo_url":"https://github.com/yzshi5/spl_ofm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"operator-learning","task_name":"Operator learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2402.16845","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.16845"}},"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/nvidia/torch-harmonics","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yzshi5/spl_ofm","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":4},"by_repo_kind":{"official":{"samples":10,"ran":6,"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":10,"samples":[{"code_sha256_prefix":"78a797d687bb035b","entry":"clm","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/legendre.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/legendre.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"78a797d687bb035b"}},{"code_sha256_prefix":"55d8457eda5d6c0d","entry":"dlegpoly","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/legendre.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/legendre.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"55d8457eda5d6c0d"}},{"code_sha256_prefix":"ef2d96da0df12c94","entry":"ensure_contiguous","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/utils.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"ef2d96da0df12c94"}},{"code_sha256_prefix":"9df7dd03796378d4","entry":"legpoly","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/legendre.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/legendre.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9df7dd03796378d4"}},{"code_sha256_prefix":"bb7755f10db35697","entry":"lru_cache","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/cache.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/cache.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"bb7755f10db35697"}},{"code_sha256_prefix":"4010280d86162929","entry":"truncate_sht","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/truncation.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/truncation.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4010280d86162929"}},{"code_sha256_prefix":"f7afeafe35a4bb24","entry":"get_projection","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/plotting.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/plotting.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"f7afeafe35a4bb24"}},{"code_sha256_prefix":"66d3178aeecaa402","entry":"imshow_sphere","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/plotting.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/plotting.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"66d3178aeecaa402"}},{"code_sha256_prefix":"88c063258ec8cba3","entry":"load_mola_elevation","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/utils.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"88c063258ec8cba3"}},{"code_sha256_prefix":"c8ab8a682bd82248","entry":"plot_sphere","repo":"nvidia/torch-harmonics","repo_kind":"official","path":"torch_harmonics/plotting.py","file_url":"https://github.com/nvidia/torch-harmonics/blob/HEAD/torch_harmonics/plotting.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c8ab8a682bd82248"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}