-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
120 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |