Reference. State of the Practice for Lattice Boltzmann Method Software
Cite
Cited by (1)
State of the Practice for Medical Imaging Software Based on Open Source Repositories smith-2025-state
We review the state of the practice for the development of medical imaging (MI) software based on data available in open-source repositories. We selected 29 projects from 48 candidates and assessed nine software qualities by answering 108 questions for each. Using the analytic hierarchy process (AHP) on the quantitative data, we ranked the MI software. The top five are 3D Slicer, ImageJ, Fiji, OHIF Viewer, and ParaView. This is consistent with the community’s view, with four of these also appearing in the top five using GitHub metrics (stars per year). The quality and quantity of documentation present in a project correlate quite well with its popularity. Generally, MI software is in a healthy state: in the repositories, we observed 88% of the documentation artifacts recommended by research software development guidelines, and 100% of MI projects use version control tools. However, the current state of the practice deviates from existing guidelines as some recommended artifacts are rarely present (such as a test plan, requirements’ specification, and code style guidelines), low usage of continuous integration (17% of the projects), low use of unit testing (~50% of projects), and room for improvement with documentation. From developer interviews, we identified seven concerns: lack of development time, lack of funding, technology hurdles, correctness, usability, maintainability, and reproducibility. We recommend increasing effort on documentation, increasing testing by enriching datasets, increasing continuous integration, moving to web applications, employing linters, using peer reviews, and designing for change.
Cites 174 works (0 here)
External (174)
- Impact of mixed valvular disease on coarctation hemodynamics using patient-specific lumped parameter and Lattice Boltzmann modeling (2022)
- Reducing Morbidity and Mortality in Patients With Coarctation Requires Systematic Differentiation of Impacts of Mixed Valvular Disease on Coarctation Hemodynamics (2022)
- Digging Deeper into the State of the Practice for Domain Specific Research Software (2022)
- Thematic domain analysis for ocean modeling (2022)
- Software quality grades for lattice Boltzmann solvers (2022)
- Online sustainability evaluation (2022)
- What is a linter and why your team should use it? (2022)
- Enhanced support for citations on GitHub (2022)
- lbmpy: Automatic code generation for efficient parallel lattice Boltzmann methods (2021)
- Lettuce: PyTorch-Based Lattice Boltzmann Framework (2021)
- Palabos: Parallel Lattice Boltzmann Solver (2021)
- waLBerla: A block-structured high-performance framework for multiphysics simulations (2021)
- Codes of conduct in Open Source Software—for warm and fuzzy feelings or equality in community? (2021)
- State of sustainability for research software (poster) (2021)
- Continuous Integration, In-Code Documentation, and Automation for Nuclear Quality Assurance Conformance (2021)
- Recognizing the value of software: a software citation guide (2021)
- Methodology for assessing the state of the practice for domain X (2021)
- Assessing the state of the practice for medical imaging software (2021)
- State of the practice for lattice Boltzmann method software (2021)
- Sloc cloc and code (2021)
- Scottish Covid-19 Response Consortium (2021)
- Professional Engineers Act, RSO 1990, c P.28 (2021)
- Sustainable software via generation (2021)
- Towards non-invasive computational-mechanics and imaging-based diagnostic framework for personalized cardiology for coarctation (2020)
- Open-loop optimal control of a flapping wing using an adjoint Lattice Boltzmann method (2020)
- EURISE Network Technical Reference (2020)
- Follow Google’s lead with programming style guides (2020)
- A checklist of basic software engineering practices for data analysts and data scientists (2020)
- ESPResSo 4.0 – an extensible software package for simulating soft matter systems (2019)
- Product Roadmap – From Vision to Reality: A Systematic Literature Review (2019)
- Naming the Pain in Developing Scientific Software (2019)
- Software Citation Checklist for Developers (2019)
- Identifying, categorizing and mitigating threats to validity in software engineering secondary studies (2019)
- USGS (United States Geological Survey) Software Plannning Checklist (2019)
- What makes research software sustainable? An interview study with research software engineers (2019)
- Three-dimensional lattice-Boltzmann model for liquid water transport and oxygen diffusion in cathode of polymer electrolyte membrane fuel cell with electrochemical reaction (2018)
- Seismology software: state of the practice (2018)
- Re-run, Repeat, Reproduce, Reuse, Replicate: Transforming Code into Scientific Contributions (2018)
- LUMA: A many-core, Fluid–Structure Interaction solver based on the Lattice-Boltzmann Method (2018)
- DLR Software Engineering Guidelines (2018)
- xSDK community package policies (2018)
- Categorizing the Content of GitHub README Files (2018)
- Application Programming Interface Documentation: What Do Software Developers Want? (2018)
- Software Engineering for Computational Science: Past, Present, Future (2018)
- Beyond software carpentry (2018)
- How do scientists develop scientific software? An external replication (2018)
- Recommendations On The Development, Use And Provision Of Research Software (2018)
- Journal of Open Source Software (JOSS): design and first-year review (2018)
- Detecting Near Duplicates in Software Documentation (2018)
- On the use of models for high-performance scientific computing applications: an experience report (2018)
- State of the practice for GIS software (2018)
- Statistical software for psychology: comparing development practices between CRAN and other communities (2018)
- Why generation Z learners prefer youtube lessons over printed books (2018)
- How to open source your Python library (2018)
- Better (small) scientific software teams, tutorial in argonne training program on extreme-scale computing (ATPESC) (2018)
- Towards computational reproducibility: researcher perspectives on the use and sharing of software (2018)
- The open source contributor funnel (or: why people don’t contribute to your open source project) (2018)
- LB3D: A parallel implementation of the Lattice-Boltzmann method for simulation of interacting amphiphilic fluids (2017)
- Good enough practices in scientific computing (2017)
- A set of common software quality assurance baseline criteria for research projects (2017)
- Code of conduct in open source projects (2017)
- Bridging the Chasm (2017)
- Continuous Integration, Delivery and Deployment: A Systematic Review on Approaches, Tools, Challenges and Practices (2017)
- Don’t judge a project by its GitHub stars alone (2017)
- Track 1 paper: surveying the U.S. National Postdoctoral Association regarding software use and training in research (2017)
- A roadmap for HEP software and computing R &D for the 2020s (2017)
- How to attract new contributors (2017)
- Commonality analysis for a family of material models (2017)
- State of the practice for mesh generation and mesh processing software (2016)
- Adjoint Lattice Boltzmann for topology optimization on multi-GPU architecture (2016)
- A Document-Driven Method for Certifying Scientific Computing Software for Use in Nuclear Safety Analysis (2016)
- Software engineering for science (2016)
- Usage, costs, and benefits of continuous integration in open-source projects (2016)
- More Common Than You Think: An In-depth Study of Casual Contributors (2016)
- Software in the scientific literature: Problems with seeing, finding, and using software mentioned in the biology literature (2016)
- Software Citation Principles (2016)
- Tools and techniques for computational reproducibility (2016)
- A knowledge-based approach to scientific software development (2016)
- Guidelines for software quality, CLARIAH Task Force 54.100 (2016)
- Software carpentry: lessons learned [version 2; referees: 3 approved] (2016)
- How do you get programmers to join your project? (2016)
- How to attract new contributors to your open source project (2016)
- Automated metamorphic testing of scientific software (2016)
- Application of nonlinear systems in nanomechanics and nanofluids: analytical methods and applications (2015)
- Claims about the use of software engineering practices in science: A systematic literature review (2015)
- Scientific software development viewed as knowledge acquisition: Towards understanding the development of risk-averse scientific software (2015)
- State of the practice for developing oceanographic software (2015)
- Notes from“How to grow a sustainable software development process (for scientific software)” (2015)
- Complex fluid simulations with the parallel tree-based Lattice Boltzmann solver Musubi (2014)
- Sailfish: A flexible multi-GPU implementation of the lattice Boltzmann method (2014)
- Better Software, Better Research (2014)
- Best Practices for Scientific Computing (2014)
- “Can i implement your algorithm?”: a model for reproducible research software (2014)
- Measuring the Installability of Service Orchestrations Using the Square Method (2013)
- DL_MESO: highly scalable mesoscale simulations (2013)
- ESPResSo++: A modern multiscale simulation package for soft matter systems (2013)
- A coupled Discrete Element Lattice Boltzmann Method for the simulation of fluid–solid interaction with particles of general shapes (2013)
- Accounting for adsorption and desorption in lattice Boltzmann simulations (2013)
- Ludwig: multiple GPUs for a complex fluid lattice Boltzmann application (2013)
- The Software Sustainability Institute: Changing Research Software Attitudes and Practices (2013)
- Techniques for testing scientific programs without an oracle (2013)
- Dependently-Typed Programming in Scientific Computing (2013)
- Industrial scientific software: a set of interviews on software development (2013)
- Development high performance scientific computing application using model-driven architecture (2013)
- Technical Debt: From Metaphor to Theory and Practice (2012)
- Marketing for scientists: how to shine in tough times (2012)
- Automated Solution of Differential Equations by the Finite Element Method (2012)
- Usability 101: introduction to usability (2012)
- Quality and sustainability of software tools in neuroscience (2012)
- Working with an agile product roadmap (2012)
- Lattice Boltzmann method for fluid simulations (2011)
- Software Engineering for Scientists (2011)
- Multi-stage programming with functors and monads: Eliminating abstraction overhead from generic code (2011)
- Systems and software engineering- Systems and software Quality Requirements and Evaluation (SQuaRE)- System and software quality models (2011)
- A survey of scientific software development (2010)
- Continuous delivery: reliable software releases through build, test, and deployment automation (2010)
- OpenLB: towards an efficient parallel open source library for lattice Boltzmann fluid flow simulations (2010)
- Regional scale transient groundwater flow modeling using Lattice Boltzmann methods (2009)
- Towards a hybrid parallelization of lattice Boltzmann methods (2009)
- Scientific Computing's Productivity Gridlock: How Software Engineering Can Help (2009)
- Engineering the Software for Understanding Climate Change (2009)
- A document driven methodology for developing a high quality Parallel Mesh Generation Toolbox (2009)
- How do scientists develop and use scientific software? (2009)
- Embedded Software: Facts, Figures, and Future (2009)
- Guidelines for conducting and reporting case study research in software engineering (2009)
- HemeLB: A high performance parallel lattice-Boltzmann code for large scale fluid flow in complex geometries (2008)
- Dealing with Risk in Scientific Software Development (2008)
- Developing Scientific Software (2008)
- Scientific Software Development at a Research Facility (2008)
- Trilinos developers guide part II: ASC software quality engineering practices version 2.0 (2008)
- Assessing the quality of scientific software (2008)
- Measuring defect potentials and defect removal efficiency (2008)
- Commonality analysis of families of physical models for use in scientific computing (2008)
- Software engineering: Barry W. Boehm’s lifetime contributions to software development, management, and research (2007)
- A Software Chasm: Software Engineering and Scientific Computing (2007)
- Software Development Environments for Scientific and Engineering Software: A Series of Case Studies (2007)
- Requirements Analysis for Engineering Computation: A Systematic Approach for Improving Reliability (2007)
- Developing a technology roadmapping system (2006)
- Where's the Real Bottleneck in Scientific Computing? (2006)
- Software Carpentry: Getting Scientists to Write Better Code by Making Them More Productive (2006)
- Producing open source software: how to run a successful free software project (2005)
- When Software Engineers Met Research Scientists: A Case Study (2005)
- A new requirements template for scientific computing (2005)
- Semi-formal design of reliable mesh generation systems (2004)
- Commonality and requirements analysis for mesh generating software (2004)
- Fundamentals of software engineering (2003)
- Software requirements, 2e (2003)
- The non-technical factors of reusability (2003)
- How software engineers use documentation: the state of the practice (2003)
- An approach to product roadmapping in small software product businesses (2002)
- LUDWIG: A parallel Lattice-Boltzmann code for complex fluids (2001)
- Interval arithmetic (2001)
- Automated empirical optimizations of software and the ATLAS project (2001)
- Fast Automatic Generation of DSP Algorithms (2001)
- ISO/IEC 9126 (2001)
- Software engineering. Principles and practice (2000)
- Task-directed software inspection technique: an experiment and case study (2000)
- Chapter Volere requirements specification template (1999)
- LATTICE BOLTZMANN METHOD FOR FLUID FLOWS (1998)
- IEEE Recommended Practice for Software Requirements Specifications (1998)
- Software engineering code of ethics and professional practice: version 4 (1998)
- Verification and validation in computational science and engineering (1998)
- Arrays in Blitz++ (1998)
- Commonality Analysis: A Systematic Process for Defining Families (1998)
- Defining families: the commonality analysis (1997)
- Design patterns, elements of reusable object-oriented software (1995)
- Software design, automated testing, and maintenance: a practical approach (1995)
- IEEE standard glossary of software engineering terminology (1991)
- ESA Software Engineering Standards, PSS-05-0 Issue 2 (1991)
- Software reliability: prediction and application (1987)
- The modular structure of complex systems (1984)
- The analytic hierarchy process: planning, priority setting, resource allocation (1980)
- On the Design and Development of Program Families (1976)
- On the criteria to be used in decomposing systems into modules (1972)