Skip to content

Commit

Permalink
Add paper for JOSS
Browse files Browse the repository at this point in the history
  • Loading branch information
gerlero committed Feb 18, 2024
1 parent 2bba9c2 commit ce24e1b
Show file tree
Hide file tree
Showing 3 changed files with 120 additions and 0 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/draft-pdf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
on: [push]

jobs:
paper:
runs-on: ubuntu-latest
name: Paper Draft
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build draft PDF
uses: openjournals/openjournals-draft-action@master
with:
journal: joss
# This should be the path to the paper within your repo.
paper-path: paper.md
- name: Upload
uses: actions/upload-artifact@v1
with:
name: paper
# This is the output path where Pandoc will write the compiled
# PDF. Note, this should be the same directory as the input
# paper.md
path: paper.pdf
51 changes: 51 additions & 0 deletions paper.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
@article{openfoam,
title = {A tensorial approach to computational continuum mechanics using object-oriented techniques},
author = {Weller, Henry G and Tabor, Gavin and Jasak, Hrvoje and Fureby, Christer},
journal = {Computers in Physics},
volume = {12},
number = {6},
pages = {620--631},
year = {1998},
publisher = {AIP},
doi = {https://doi.org/10.1063/1.168744}
}

@article{electromicrotransport,
title = {{electroMicroTransport v2107}: Open-source toolbox for paper-based electromigrative separations},
author = {Gerlero, Gabriel S and Dami{\'a}n, Santiago M{\'a}rquez and Kler, Pablo A},
journal = {Computer Physics Communications},
volume = {269},
pages = {108143},
year = {2021},
publisher = {Elsevier},
doi = {10.1016/j.cpc.2021.108143}
}

@article{porousmultiphasefoam,
title = {{porousMultiphaseFoam v2107}: An open-source tool for modeling saturated/unsaturated water flows and solute transfers at watershed scale},
author = {Horgue, Pierre and Renard, F and Gerlero, Gabriel S and Guibert, Romain and Debenest, G{\'e}rald},
journal = {Computer Physics Communications},
volume = {273},
pages = {108278},
year = {2022},
publisher = {Elsevier},
doi = {10.1016/j.cpc.2021.108278}
}

@misc{porousmicrotransport,
author = {Gerlero, Gabriel S and Berli, Claudio L A and Kler, Pablo A},
title = {{porousMicroTransport}},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/gerlero/porousMicroTransport}
}

@misc{openfoam-app,
author = {Gerlero, Gabriel S},
title = {{OpenFOAM.app: Native OpenFOAM for macOS}},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/gerlero/openfoam-app}
}
46 changes: 46 additions & 0 deletions paper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: 'OpenFOAM.app: Native OpenFOAM for macOS'
tags:
- OpenFOAM
- macOS
- Arm
- Apple silicon
- Intel
authors:
- name: Gabriel S. Gerlero
orcid: 0000-0002-5138-0328
affiliation: "1, 2" # (Multiple affiliations must be quoted)
affiliations:
- name: Centro de Investigación en Métodos Computacionales (CIMEC, UNL-CONICET), Argentina
index: 1
- name: Universidad Nacional de Rafaela (UNRaf), Argentina
index: 2
date: 18 February 2024
bibliography: paper.bib
---

# Summary

**OpenFOAM.app** provides pre-built binaries of the OpenFOAM CFD software package for macOS. It offers a native OpenFOAM experience for Mac users, by making pre-built binaries available in the form of a standard macOS application. Both Intel and Apple silicon (i.e., Arm-based M-series) CPUs used by Macs are supported. The project has been successful in providing a seamless OpenFOAM experience for Mac users, and has been well-received by the community.

# Statement of need

OpenFOAM [@openfoam] is a popular open-source CFD software package that has seen wide adoption in academia and industry. However, its installation and use on macOS has been challenging, as, while OpenFOAM can be compiled from source on that operating system, it requires special considerations—including the procurement and configuration of dependencies, the use of a case-sensitive filesystem, and allowing for the relatively long compile times—and no official pre-compiled binaries are available for it. Alternatively, macOS users can run Linux-based OpenFOAM using Docker Desktop or a regular virtual machine, but these solutions involve virtualization, which can be cumbersome and adds unnecessary overhead to the execution.

Over the course of its two-year existence since its first launch in February 2022, the **OpenFOAM.app** project [@openfoam-app] has seen over 5000 total downloads, received over 100 stars on GitHub, had more than 30 issues opened, and offered five different major versions of OpenFOAM.

# Details

**OpenFOAM.app** offers OpenFOAM as distributed by OpenCFD Ltd. (www.openfoam.com). As of this paper, the last two versions of OpenFOAM (currently v2312 and v2306) are offered in the latest release. Older OpenFOAM versions are still available via previous releases of the project, but are not updated or supported.

By default, dependencies are obtained using a custom-prefix Homebrew installation whose contents are then bundled with the app (although users compiling from source can also choose other options for handling dependencies). The project fetches the OpenFOAM source code, applies the necessary configuration and patches (the majority of which has been upstreamed), and performs the compilation. Case-sensitivity issues on macOS are eliminated by using a case-sensitive filesystem in a disk image.

The project uses continuous integration to automatically build and test the apps. Besides the current OpenFOAM versions, the upstream development branches are also regularly tested in order to anticipate any issues; this has allowed the project to offer new OpenFOAM versions within days of their official release. **OpenFOAM.app** has also been tested with various third-party extensions to OpenFOAM [@electromicrotransport; @porousmultiphasefoam; @porousmicrotransport].

With GitHub's new offering of free Apple silicon-based macOS runners for open-source projects, all releases of **OpenFOAM.app** are now built online in fully reproducible workflows. For users who want to build the app themselves, the project offers a GNU Make–based build system that can compile the app with a single command, while also allowing for some customizations.

# Acknowledgements

I would like to acknowledge the fruitful interactions with members the OpenFOAM Mac community, including Guanyang Xue, Alexey Matveichev and Andrew Janke; as well as everyone who has opened issues in the **OpenFOAM.app** repository. I also want to acknowledge the upstream OpenFOAM developer team, and Mark Olesen in particular, for their fast response to issues raised in their repository that affect macOS.

# References

0 comments on commit ce24e1b

Please sign in to comment.