{"id":"https://openalex.org/W7131091283","doi":"https://doi.org/10.1016/j.cpc.2026.110088","title":"Pigreads: The Python-integrated GPU-enabled reaction-diffusion solver using OpenCL for cardiac electrophysiology and other applications","display_name":"Pigreads: The Python-integrated GPU-enabled reaction-diffusion solver using OpenCL for cardiac electrophysiology and other applications","publication_year":2026,"publication_date":"2026-02-24","ids":{"openalex":"https://openalex.org/W7131091283","doi":"https://doi.org/10.1016/j.cpc.2026.110088"},"language":"en","primary_location":{"id":"doi:10.1016/j.cpc.2026.110088","is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.cpc.2026.110088","pdf_url":null,"source":{"id":"https://openalex.org/S142305363","display_name":"Computer Physics Communications","issn_l":"0010-4655","issn":["0010-4655","1879-2944"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Computer Physics Communications","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://doi.org/10.1016/j.cpc.2026.110088","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5062175389","display_name":"Desmond Kabus","orcid":"https://orcid.org/0000-0002-6965-5211"},"institutions":[{"id":"https://openalex.org/I121797337","display_name":"Leiden University","ror":"https://ror.org/027bh9e22","country_code":"NL","type":"education","lineage":["https://openalex.org/I121797337"]},{"id":"https://openalex.org/I2800006345","display_name":"Leiden University Medical Center","ror":"https://ror.org/05xvt9f17","country_code":"NL","type":"funder","lineage":["https://openalex.org/I2800006345"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Desmond Kabus","raw_affiliation_strings":["Laboratory of Experimental Cardiology, Leiden University Medical Center (LUMC), Albinusdreef 2, Leiden, 2333 ZA, The Netherlands","Mathematical Institute, Leiden University, Einsteinweg 55, Leiden, 2333 CC, The Netherlands"],"raw_orcid":"https://orcid.org/0000-0002-6965-5211","affiliations":[{"raw_affiliation_string":"Laboratory of Experimental Cardiology, Leiden University Medical Center (LUMC), Albinusdreef 2, Leiden, 2333 ZA, The Netherlands","institution_ids":["https://openalex.org/I2800006345"]},{"raw_affiliation_string":"Mathematical Institute, Leiden University, Einsteinweg 55, Leiden, 2333 CC, The Netherlands","institution_ids":["https://openalex.org/I121797337"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5038258898","display_name":"Hans Dierckx","orcid":"https://orcid.org/0000-0003-0899-8082"},"institutions":[{"id":"https://openalex.org/I121797337","display_name":"Leiden University","ror":"https://ror.org/027bh9e22","country_code":"NL","type":"education","lineage":["https://openalex.org/I121797337"]},{"id":"https://openalex.org/I2800006345","display_name":"Leiden University Medical Center","ror":"https://ror.org/05xvt9f17","country_code":"NL","type":"funder","lineage":["https://openalex.org/I2800006345"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Hans Dierckx","raw_affiliation_strings":["Laboratory of Experimental Cardiology, Leiden University Medical Center (LUMC), Albinusdreef 2, Leiden, 2333 ZA, The Netherlands","Mathematical Institute, Leiden University, Einsteinweg 55, Leiden, 2333 CC, The Netherlands"],"raw_orcid":"https://orcid.org/0000-0003-0899-8082","affiliations":[{"raw_affiliation_string":"Laboratory of Experimental Cardiology, Leiden University Medical Center (LUMC), Albinusdreef 2, Leiden, 2333 ZA, The Netherlands","institution_ids":["https://openalex.org/I2800006345"]},{"raw_affiliation_string":"Mathematical Institute, Leiden University, Einsteinweg 55, Leiden, 2333 CC, The Netherlands","institution_ids":["https://openalex.org/I121797337"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5027907775","display_name":"Tim De Coster","orcid":"https://orcid.org/0000-0002-4942-9866"},"institutions":[{"id":"https://openalex.org/I121797337","display_name":"Leiden University","ror":"https://ror.org/027bh9e22","country_code":"NL","type":"education","lineage":["https://openalex.org/I121797337"]},{"id":"https://openalex.org/I2800006345","display_name":"Leiden University Medical Center","ror":"https://ror.org/05xvt9f17","country_code":"NL","type":"funder","lineage":["https://openalex.org/I2800006345"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Tim De Coster","raw_affiliation_strings":["Laboratory of Experimental Cardiology, Leiden University Medical Center (LUMC), Albinusdreef 2, Leiden, 2333 ZA, The Netherlands","Mathematical Institute, Leiden University, Einsteinweg 55, Leiden, 2333 CC, The Netherlands"],"raw_orcid":"https://orcid.org/0000-0002-4942-9866","affiliations":[{"raw_affiliation_string":"Laboratory of Experimental Cardiology, Leiden University Medical Center (LUMC), Albinusdreef 2, Leiden, 2333 ZA, The Netherlands","institution_ids":["https://openalex.org/I2800006345"]},{"raw_affiliation_string":"Mathematical Institute, Leiden University, Einsteinweg 55, Leiden, 2333 CC, The Netherlands","institution_ids":["https://openalex.org/I121797337"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5027907775","https://openalex.org/A5062175389"],"corresponding_institution_ids":["https://openalex.org/I121797337","https://openalex.org/I2800006345"],"apc_list":{"value":3670,"currency":"USD","value_usd":3670},"apc_paid":{"value":3670,"currency":"USD","value_usd":3670},"fwci":13.6393,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.97048999,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":95,"max":98},"biblio":{"volume":"323","issue":null,"first_page":"110088","last_page":"110088"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10217","display_name":"Cardiac electrophysiology and arrhythmias","score":0.7752000093460083,"subfield":{"id":"https://openalex.org/subfields/2705","display_name":"Cardiology and Cardiovascular Medicine"},"field":{"id":"https://openalex.org/fields/27","display_name":"Medicine"},"domain":{"id":"https://openalex.org/domains/4","display_name":"Health Sciences"}},"topics":[{"id":"https://openalex.org/T10217","display_name":"Cardiac electrophysiology and arrhythmias","score":0.7752000093460083,"subfield":{"id":"https://openalex.org/subfields/2705","display_name":"Cardiology and Cardiovascular Medicine"},"field":{"id":"https://openalex.org/fields/27","display_name":"Medicine"},"domain":{"id":"https://openalex.org/domains/4","display_name":"Health Sciences"}},{"id":"https://openalex.org/T10044","display_name":"Protein Structure and Dynamics","score":0.03880000114440918,"subfield":{"id":"https://openalex.org/subfields/1312","display_name":"Molecular Biology"},"field":{"id":"https://openalex.org/fields/13","display_name":"Biochemistry, Genetics and Molecular Biology"},"domain":{"id":"https://openalex.org/domains/1","display_name":"Life Sciences"}},{"id":"https://openalex.org/T10621","display_name":"Gene Regulatory Network Analysis","score":0.008999999612569809,"subfield":{"id":"https://openalex.org/subfields/1312","display_name":"Molecular Biology"},"field":{"id":"https://openalex.org/fields/13","display_name":"Biochemistry, Genetics and Molecular Biology"},"domain":{"id":"https://openalex.org/domains/1","display_name":"Life Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.8019000291824341},{"id":"https://openalex.org/keywords/solver","display_name":"Solver","score":0.6464999914169312},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.5335000157356262},{"id":"https://openalex.org/keywords/graphics","display_name":"Graphics","score":0.5167999863624573},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.5063999891281128},{"id":"https://openalex.org/keywords/graphics-processing-unit","display_name":"Graphics processing unit","score":0.38999998569488525},{"id":"https://openalex.org/keywords/sketch","display_name":"Sketch","score":0.37549999356269836}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8345999717712402},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.8019000291824341},{"id":"https://openalex.org/C459310","wikidata":"https://www.wikidata.org/wiki/Q117801","display_name":"Computational science","level":1,"score":0.6686999797821045},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.6464999914169312},{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.5335000157356262},{"id":"https://openalex.org/C21442007","wikidata":"https://www.wikidata.org/wiki/Q1027879","display_name":"Graphics","level":2,"score":0.5167999863624573},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.5063999891281128},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.483599990606308},{"id":"https://openalex.org/C2779851693","wikidata":"https://www.wikidata.org/wiki/Q183484","display_name":"Graphics processing unit","level":2,"score":0.38999998569488525},{"id":"https://openalex.org/C2779231336","wikidata":"https://www.wikidata.org/wiki/Q7534724","display_name":"Sketch","level":2,"score":0.37549999356269836},{"id":"https://openalex.org/C79581498","wikidata":"https://www.wikidata.org/wiki/Q1367530","display_name":"Suite","level":2,"score":0.3555000126361847},{"id":"https://openalex.org/C61381695","wikidata":"https://www.wikidata.org/wiki/Q3302130","display_name":"Cardiac electrophysiology","level":3,"score":0.3553999960422516},{"id":"https://openalex.org/C73000952","wikidata":"https://www.wikidata.org/wiki/Q17007827","display_name":"Discretization","level":2,"score":0.3538999855518341},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.3517000079154968},{"id":"https://openalex.org/C50630238","wikidata":"https://www.wikidata.org/wiki/Q971505","display_name":"General-purpose computing on graphics processing units","level":3,"score":0.34950000047683716},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3361999988555908},{"id":"https://openalex.org/C113775141","wikidata":"https://www.wikidata.org/wiki/Q428691","display_name":"Computer engineering","level":1,"score":0.3158999979496002},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.31150001287460327},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.28940001130104065},{"id":"https://openalex.org/C205711294","wikidata":"https://www.wikidata.org/wiki/Q176953","display_name":"Rendering (computer graphics)","level":2,"score":0.2685000002384186},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.2612999975681305},{"id":"https://openalex.org/C121684516","wikidata":"https://www.wikidata.org/wiki/Q7600677","display_name":"Computer graphics (images)","level":1,"score":0.2603999972343445},{"id":"https://openalex.org/C205606062","wikidata":"https://www.wikidata.org/wiki/Q5249645","display_name":"Decoupling (probability)","level":2,"score":0.2522999942302704}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1016/j.cpc.2026.110088","is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.cpc.2026.110088","pdf_url":null,"source":{"id":"https://openalex.org/S142305363","display_name":"Computer Physics Communications","issn_l":"0010-4655","issn":["0010-4655","1879-2944"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Computer Physics Communications","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1016/j.cpc.2026.110088","is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.cpc.2026.110088","pdf_url":null,"source":{"id":"https://openalex.org/S142305363","display_name":"Computer Physics Communications","issn_l":"0010-4655","issn":["0010-4655","1879-2944"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Computer Physics Communications","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320320929","display_name":"Universiteit Leiden","ror":"https://ror.org/027bh9e22"},{"id":"https://openalex.org/F4320321800","display_name":"Nederlandse Organisatie voor Wetenschappelijk Onderzoek","ror":"https://ror.org/04jsz6e67"},{"id":"https://openalex.org/F4320322681","display_name":"Onderzoeksraad, KU Leuven","ror":"https://ror.org/05f950310"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":59,"referenced_works":["https://openalex.org/W1974119618","https://openalex.org/W1977356579","https://openalex.org/W1979084896","https://openalex.org/W1984222112","https://openalex.org/W1984336411","https://openalex.org/W1985462363","https://openalex.org/W1985940938","https://openalex.org/W1986023817","https://openalex.org/W1987881358","https://openalex.org/W1996198135","https://openalex.org/W2009375605","https://openalex.org/W2011301426","https://openalex.org/W2017095658","https://openalex.org/W2021611778","https://openalex.org/W2028146834","https://openalex.org/W2037716334","https://openalex.org/W2042110107","https://openalex.org/W2046899724","https://openalex.org/W2061191702","https://openalex.org/W2062183001","https://openalex.org/W2065465338","https://openalex.org/W2068665487","https://openalex.org/W2077331262","https://openalex.org/W2077590638","https://openalex.org/W2078242986","https://openalex.org/W2079211986","https://openalex.org/W2080148075","https://openalex.org/W2082395037","https://openalex.org/W2088631692","https://openalex.org/W2101203342","https://openalex.org/W2104749146","https://openalex.org/W2127748321","https://openalex.org/W2130139165","https://openalex.org/W2130321115","https://openalex.org/W2132561989","https://openalex.org/W2139232108","https://openalex.org/W2163071496","https://openalex.org/W2214631210","https://openalex.org/W2256812163","https://openalex.org/W2400152479","https://openalex.org/W2463154677","https://openalex.org/W2560585316","https://openalex.org/W2604473795","https://openalex.org/W2619515329","https://openalex.org/W2801800817","https://openalex.org/W2922746047","https://openalex.org/W2945475836","https://openalex.org/W2996036235","https://openalex.org/W3035965352","https://openalex.org/W3048575781","https://openalex.org/W3166488131","https://openalex.org/W4313894226","https://openalex.org/W4387597420","https://openalex.org/W4402629114","https://openalex.org/W4405359303","https://openalex.org/W4409345902","https://openalex.org/W4414970395","https://openalex.org/W4415170646","https://openalex.org/W7124689529"],"related_works":[],"abstract_inverted_index":{"\u2022":[0,9,16,25],"GPU-accelerated":[1],"reaction-diffusion":[2,44,202],"solver":[3],"in":[4,178,225],"up":[5],"to":[6,119,222],"three":[7],"dimensions.":[8],"Minimal":[10],"NumPy-friendly":[11],"API":[12],"with":[13,29,50,107,190,204],"OpenCL":[14,133,179],"kernels.":[15],"Includes":[17],"commonly":[18],"used":[19],"reaction":[20,74],"terms":[21],"for":[22,39],"cardiac":[23,208],"electrophysiology.":[24],"Open-source,":[26],"tested,":[27,103],"documented,":[28,104],"examples":[30,69,108],"and":[31,57,84,93,95,105,109,144,153,159,170,180,197,211,214,233],"tutorials.":[32,110],"Pigreads":[33,115,200],"is":[34,101],"a":[35,55,205],"streamlined":[36],"Python":[37,184],"module":[38],"efficient":[40],"numerical":[41,147,218],"solution":[42,148],"of":[43,135],"systems":[45,138],"on":[46,207],"graphics":[47],"cards":[48],"(GPU),":[49],"CPU":[51],"fallback.":[52],"It":[53],"exposes":[54],"simple":[56],"straight-forward":[58],"NumPy-compatible":[59],"API.":[60],"Users":[61],"may":[62],"employ":[63],"built-in":[64],"models":[65],"\u2013":[66,70],"including":[67,195,229],"electrophysiology":[68,209],"or":[71],"supply":[72],"custom":[73],"terms.":[75,98],"Supported":[76],"features":[77],"include":[78],"0D-3D":[79],"uniform":[80],"Cartesian":[81],"grids,":[82],"no-flux":[83],"periodic":[85],"boundary":[86],"conditions,":[87],"anisotropic":[88],"diffusion,":[89],"spatially":[90],"varying":[91],"diffusion":[92],"reaction,":[94],"localised":[96],"source":[97],"The":[99,164],"project":[100],"open-source,":[102],"distributed":[106],"PROGRAM":[111],"SUMMARY":[112],"Program":[113],"Title:":[114],"CPC":[116],"Library":[117],"link":[118],"program":[120],"files:":[121],"https://doi.org/10.17632/5k8jjx74hc.1":[122],"Developer\u2019s":[123],"repository":[124],"link:":[125],"https://gitlab.com/pigreads/pigreads":[126],"Licensing":[127],"provisions:":[128],"MIT":[129],"Programming":[130],"language:":[131],"Python,":[132],"Nature":[134],"problem:":[136],"Reaction-diffusion":[137],"model":[139],"phenomena":[140],"across":[141],"physics,":[142],"chemistry":[143],"biology;":[145],"their":[146],"can":[149],"be":[150],"computationally":[151],"demanding":[152],"research":[154],"codes":[155],"are":[156,181,188],"often":[157],"ad-hoc":[158],"poorly":[160],"documented.":[161],"Solution":[162],"method:":[163],"implementation":[165],"uses":[166],"finite-differences":[167],"spatial":[168],"discretisation":[169],"explicit":[171],"forward-Euler":[172],"time":[173],"stepping.":[174],"Performance-critical":[175],"kernels":[176],"run":[177],"called":[182],"from":[183],"using":[185],"PyOpenCL;":[186],"data":[187],"represented":[189],"NumPy":[191],"arrays.":[192],"Additional":[193],"comments":[194],"restrictions":[196],"unusual":[198],"features:":[199],"targets":[201],"problems":[203],"focus":[206],"applications":[210],"emphasises":[212],"simplicity":[213],"reproducibility":[215],"over":[216],"advanced":[217],"complexity.":[219],"We":[220],"adhere":[221],"best":[223],"practices":[224],"scientific":[226],"software":[227],"development,":[228],"version":[230],"control,":[231],"testing,":[232],"continuous":[234],"integration.":[235]},"counts_by_year":[{"year":2026,"cited_by_count":1}],"updated_date":"2026-06-02T09:04:35.204637","created_date":"2026-02-24T00:00:00"}
