Skip to content

ray-chew/pyBELLA

Repository files navigation

pyBELLA Logo

Blended sEamLess soLver for Atmospheric dynamics

GitHub Actions: docs open issues License: BSD-3

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


Read the documentation here


Requirements

See requirements.txt

Note: The development dependencies can be found in dev-requirements.txt.

To install the requirements:

pip install -r requirements.txt

Usage

Installation

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.

Configuration

The user-defined input parameters are in the inputs subpackage. These parameters are imported into the run scripts in run_scripts.

Execution

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.

License

BSD License v3.0

Contributions

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.