{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,30]],"date-time":"2026-09-30T17:42:56Z","timestamp":1790790176600,"version":"4.1.0"},"reference-count":54,"publisher":"Society for Industrial & Applied Mathematics (SIAM)","issue":"4","funder":[{"DOI":"10.13039\/501100008848","name":"Elitenetzwerk Bayern","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100008848","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"publisher","award":["408062554"],"award-info":[{"award-number":["408062554"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"publisher","award":["433735254"],"award-info":[{"award-number":["433735254"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100010661","name":"Horizon 2020 Framework Programme","doi-asserted-by":"publisher","award":["956000"],"award-info":[{"award-number":["956000"]}],"id":[{"id":"10.13039\/100010661","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["SIAM J. Sci. Comput."],"published-print":{"date-parts":[[2023,8,31]]},"abstract":"<jats:p>Abstract.<\/jats:p>\n                  <jats:p>The scientific code generation package lbmpy supports the automated design and the efficient implementation of lattice Boltzmann method (LBM) through metaprogramming. It is based on a new, concise calculus for describing multiple relaxation-time LBMs, including techniques that enable the numerically advantageous subtraction of the constant background component from the populations. These techniques are generalized to a wide range of collision spaces and equilibrium distributions. The article contains an overview of lbmpy\u2019s frontend and its code generation pipeline, which implements the new LBM calculus by means of symbolic formula manipulation tools and object-oriented programming. The generated codes have only a minimal number of arithmetic operations. Their automatic derivation rests on two novel chimera transforms that have been specifically developed for efficiently computing raw and central moments. Information contained in the symbolic representation of the methods is further exploited in a customized sequence of algebraic simplifications, further reducing computational cost. When combined, these algebraic transformations lead to concise and compact numerical kernels. Specifically, with these optimizations, the advanced central moment- and cumulant-based methods can be realized with only little additional cost as when compared with the simple Bhatnagar\u2013Gross\u2013Krook method. The effectiveness and flexibility of the new lbmpy code generation system is demonstrated in simulating Taylor\u2013Green vortex decay and the automatic derivation of an LBM algorithm to solve the shallow water equations.<\/jats:p>","DOI":"10.1137\/22m1531348","type":"journal-article","created":{"date-parts":[[2023,8,4]],"date-time":"2023-08-04T04:45:16Z","timestamp":1691124316000},"page":"C233-C254","source":"Crossref","is-referenced-by-count":15,"title":["Advanced Automatic Code Generation for Multiple Relaxation-Time Lattice Boltzmann Methods"],"prefix":"10.1137","volume":"45","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-5298-7968","authenticated-orcid":true,"given":"Frederik","family":"Hennig","sequence":"first","affiliation":[{"name":"Chair for System Simulation, Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg, Erlangen, 91058 Germany."}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5499-5857","authenticated-orcid":true,"given":"Markus","family":"Holzer","sequence":"additional","affiliation":[{"name":"Chair for System Simulation, Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg, Erlangen, 91058 Germany, and CERFACS, 31100 Toulouse, France."}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8796-8599","authenticated-orcid":true,"given":"Ulrich","family":"R\u00fcde","sequence":"additional","affiliation":[{"name":"Chair for System Simulation, Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg, Erlangen, 91058 Germany, and CERFACS, 31100 Toulouse, France."}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"351","published-online":{"date-parts":[[2023,8,4]]},"reference":[{"key":"ref1","doi-asserted-by":"crossref","unstructured":"IEEE standard for floating-point arithmetic, IEEE Std 754-2019 (Revision of IEEE 754-2008), (2019), pp. 1\u201384, https:\/\/doi.org\/10.1109\/IEEESTD.2019.8766229.","DOI":"10.1109\/IEEESTD.2019.8766229"},{"key":"ref2","doi-asserted-by":"crossref","unstructured":"P. Bailey , \nJ. Myre , \nS. Walsh , \nD. Lilja , and \nM. Saar , Accelerating lattice Boltzmann fluid flow simulations using graphics processors, in Proceedings of the 2009 International Conference on Parallel Processing, IEEE, 2009, https:\/\/doi.org\/10.1109\/icpp.2009.38.","DOI":"10.1109\/ICPP.2009.38"},{"key":"ref3","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2020.01.007"},{"key":"ref4","doi-asserted-by":"crossref","unstructured":"M. Bauer , \nJ. H\u00f6tzer , \nD. Ernst , \nJ. Hammer , \nM. Seiz , \nH. Hierl , \nJ. H\u00f6nig , \nH. K\u00f6stler , \nG. Wellein , \nB. Nestler , and \nU. R\u00fcde , Code generation for massively parallel phase-field simulations, in Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, ACM, 2019, pp. 1\u201332, https:\/\/doi.org\/10.1145\/3295500.3356186.","DOI":"10.1145\/3295500.3356186"},{"key":"ref5","doi-asserted-by":"publisher","DOI":"10.1016\/j.jocs.2020.101269"},{"key":"ref6","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRev.94.511"},{"key":"ref7","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevA.45.R5339"},{"key":"ref8","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.100.033305"},{"key":"ref9","doi-asserted-by":"publisher","DOI":"10.1098\/rsta.2001.0955"},{"key":"ref10","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.76.036704"},{"key":"ref11","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.96.053307"},{"key":"ref12","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.97.053309"},{"key":"ref13","unstructured":"M. Geier , Ab initio Derivation of the Cascaded Lattice Boltzmann Automaton, Ph.D. thesis, University of Freiburg, Germany, 2006."},{"key":"ref14","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.91.063309"},{"key":"ref15","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.73.066705"},{"key":"ref16","doi-asserted-by":"publisher","DOI":"10.1007\/s00162-020-00555-7"},{"key":"ref17","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2017.05.040"},{"key":"ref18","doi-asserted-by":"publisher","DOI":"10.3390\/computation5020019"},{"key":"ref19","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2015.05.001"},{"key":"ref20","doi-asserted-by":"crossref","first-page":"427","DOI":"10.4208\/cicp.2008.v3.p427","volume":"3","author":"Ginzburg I.","year":"2008","journal-title":"Commun. Comput. Phys."},{"key":"ref21","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2019.08.018"},{"key":"ref22","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.65.046308"},{"key":"ref23","doi-asserted-by":"crossref","unstructured":"T. Gysi , \nT. Grosser , and \nT. Hoefler , MODESTO: Data-centric analytic optimization of complex stencil programs on heterogeneous architectures, in Proceedings of the 29th ACM on International Conference on Supercomputing, ICS \u201915, Association for Computing Machinery, New York, NY, 2015, pp. 177\u2013186, https:\/\/doi.org\/10.1145\/2751205.2751223.","DOI":"10.1145\/2751205.2751223"},{"key":"ref24","doi-asserted-by":"publisher","DOI":"10.1023\/B:JOSS.0000015179.12689.e4"},{"key":"ref25","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.57.R13"},{"key":"ref26","doi-asserted-by":"publisher","DOI":"10.1177\/10943420211016525"},{"key":"ref27","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2020.04.033"},{"key":"ref28","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-44649-3"},{"key":"ref29","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2015.12.043"},{"key":"ref30","unstructured":"J. Latt  and \nB. Chopard , Lattice Boltzmann Method with Regularized Non-Equilibrium Distribution Functions, https:\/\/arxiv.org\/abs\/physics\/0506157, 2005."},{"key":"ref31","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2020.03.022"},{"key":"ref32","doi-asserted-by":"publisher","DOI":"10.3390\/computation10060092"},{"key":"ref33","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.106.015308"},{"key":"ref34","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-47956-5_14"},{"key":"ref35","doi-asserted-by":"publisher","DOI":"10.1145\/1731022.1731030"},{"key":"ref36","doi-asserted-by":"crossref","unstructured":"N. Maruyama , \nT. Nomura , \nK. Sato , and \nS. Matsuoka , Physis: An implicitly parallel programming model for stencil computations on large-scale gpu-accelerated supercomputers, in Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, SC \u201911, Association for Computing Machinery, New York, NY, 2011, https:\/\/doi.org\/10.1145\/2063384.2063398.","DOI":"10.1145\/2063384.2063398"},{"key":"ref37","doi-asserted-by":"publisher","DOI":"10.7717\/peerj-cs.103"},{"key":"ref38","unstructured":"OpenMP Architecture Review Board, OpenMP Application Programming Interface Version 5.2, 2021."},{"key":"ref39","doi-asserted-by":"publisher","DOI":"10.1007\/s10955-011-0208-9"},{"key":"ref40","doi-asserted-by":"publisher","DOI":"10.1145\/2998441"},{"key":"ref41","doi-asserted-by":"publisher","DOI":"10.1145\/2830018.2830025"},{"key":"ref42","doi-asserted-by":"publisher","DOI":"10.1209\/0295-5075\/116\/44003"},{"key":"ref43","doi-asserted-by":"publisher","DOI":"10.1016\/j.cma.2017.03.001"},{"key":"ref44","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.95.013310"},{"key":"ref45","doi-asserted-by":"publisher","DOI":"10.1137\/15M1035240"},{"key":"ref46","doi-asserted-by":"publisher","DOI":"10.1137\/17M1128411"},{"key":"ref47","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2019.04.019"},{"key":"ref48","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.48.4823"},{"key":"ref49","doi-asserted-by":"publisher","DOI":"10.3390\/w12020439"},{"key":"ref50","doi-asserted-by":"publisher","DOI":"10.1007\/s11069-020-04378-x"},{"key":"ref51","doi-asserted-by":"publisher","DOI":"10.1016\/j.advwatres.2019.103474"},{"key":"ref52","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2005.02.008"},{"key":"ref53","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2012.05.002"},{"key":"ref54","doi-asserted-by":"publisher","DOI":"10.1016\/S0045-7825(02)00291-8"}],"container-title":["SIAM Journal on Scientific Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/epubs.siam.org\/doi\/pdf\/10.1137\/22M1531348","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,8,21]],"date-time":"2026-08-21T15:59:19Z","timestamp":1787327959000},"score":1,"resource":{"primary":{"URL":"https:\/\/epubs.siam.org\/doi\/10.1137\/22M1531348"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,8,4]]},"references-count":54,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2023,8,31]]}},"alternative-id":["10.1137\/22M1531348"],"URL":"https:\/\/doi.org\/10.1137\/22m1531348","relation":{},"ISSN":["1064-8275","1095-7197"],"issn-type":[{"value":"1064-8275","type":"print"},{"value":"1095-7197","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,8,4]]}}}