Back to Search Start Over

State of the Practice for Lattice Boltzmann Method Software.

Authors :
Smith, Spencer
Michalski, Peter
Carette, Jacques
Keshavarz-Motamed, Zahra
Source :
Archives of Computational Methods in Engineering; Jan2024, Vol. 31 Issue 1, p313-350, 38p
Publication Year :
2024

Abstract

We analyze the state of software development practice for Lattice Boltzmann solvers by quantitatively and qualitatively measuring and comparing 24 software packages for 10 software qualities (installability, correctness/verifiability, reliability, robustness, usability, maintainability, reusability, understandability, visibility/transparency and reproducibility). Our reproducible analysis method employs a measurement template (containing 108 measures that are manually and automatically extracted from the project repository) and developer interviews (consisting of 20 questions). After measuring, we rank the software using the Analytic Hierarchy Process. Our ranking is roughly consistent with GitHub stars ranking, suggesting at least a partial correlation between the use of best practices and popularity. We find the state of the practice to be healthy with 67% of the measured packages ranking in the top two for at least two qualities, the majority of LBM generated artifacts corresponding to general recommendations from research software developers, common use of version control (67% of packages) and the adoption of a quasi-agile development process. Areas of best practice to potentially improve include adoption of continuous integration, API documentation and enforcement of programming style guides. We interviewed four developers to gain insight into their current pain points. Identified challenges include lack of development time, lack of funding, and difficulty with ensuring correctness. Developers are addressing these pain points by designing for change, circumventing the oracle problem and prioritizing documentation and usability. For future improvements we suggest the following: employing linters, conducting rigorous peer reviews, writing and submitting more papers on software, growing the number of contributors by following current recommendations for open source projects, and augmenting the theory manuals to include more requirements specification relevant information. [ABSTRACT FROM AUTHOR]

Details

Language :
English
ISSN :
11343060
Volume :
31
Issue :
1
Database :
Complementary Index
Journal :
Archives of Computational Methods in Engineering
Publication Type :
Academic Journal
Accession number :
174602074
Full Text :
https://doi.org/10.1007/s11831-023-09981-2