The Blended sEamLess soLver for Atmospheric dynamics (pyBELLA) is a Python-based numerical flow solver. The current version features PyBELLA+ as it is coupled to an ensemble data assimillation engine based on the Local Ensemble Transform Kalman Filter.
The numerical scheme for pyBELLA was introduced by Benacchio and Klein (2019), and the seamless blending between physical model regimes within a simulation run was extended in Chew et al. (2022); see v0.3.0-localdab
for the source code.
This code was also used to produce the results in
See requirements.txt
Note: The development dependencies can be found in dev-requirements.txt
.
To install the requirements:
pip install -r requirements.txt
Fork this repository and clone your remote fork. cd
into your local forked repository and execute:
pip install -e .
Note: depending on your IDE, you may need to add the --config-settings editable_mode
at the end of the above command for the pyBELLA package to be visible to the linter. However, this comes with limitations to the development mode, see here for more details.
The user-defined input parameters are in the inputs
subpackage. These parameters are imported into the run scripts in run_scripts
.
A simple test can be found in run_scripts.test_dycore
. To execute this test script from the pyBELLA parent directory:
pytest ./run_scripts/test_dycore.py -v
However, the codebase is structured such that the user can easily assemble a run script to define their own experiments. Refer to the documentation for the available APIs.
Refer to the open issues, in particular issues with the help wanted
label.
Any changes, improvements, or bug fixes can be submitted from your remote to upstream via a pull request.