Welcome to Mantaray’s documentation!

Rust checks

Ray Tracing

A library for surface gravity waves ray tracing.

Development

Installation

  1. Install Pixi

  2. Clone the repo

git clone git@github.com:mines-oceanography/mantaray.git
cd mantaray
  1. Build Python

pixi run develop

This will take about 20 to 30 minutes (at least for first time compiling on windows 10).

Usage

At the top of your python file, you will need to include the following import line:

from mantaray.core import single_ray, ray_tracing

Documentation for these functions are located in core.py.

Run Python file

pixi run python path_to_file.py

Using Jupyter Lab

  1. Develop the code for the examples environment

pixi run -e examples develop
  1. Open Jupyter Lab using the examples environment

pixi run -e examples jupyter lab

To test Python library run:

pixi run -e test pytest

License

Licensed under either of

  • Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)

  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

We welcome contributions to this project! Whether you’re fixing a bug, adding a new feature, or improving the documentation, your help is greatly appreciated. All contributions should be made through GitHub, by forking the repository, creating a new branch, and submitting a pull request.

Ways to Contribute

There are many ways to contribute to this project, including:

  • Reporting bugs: If you find a bug, please open an issue with the bug label and provide as much detail as possible, including steps to reproduce the issue.

  • Suggesting features: Have an idea for a new feature or improvement? Open an issue with the enhancement label and describe your suggestion.

  • Submitting code changes: We welcome code contributions! Please follow the Pull Request Guidelines below.

  • Improving documentation: Clear and concise documentation is essential. If you find areas where the documentation can be improved, please submit an issue with the documentation label.

Pull Request Guidelines

Before submitting a pull request, please make sure it meets these guidelines:

  1. Tests: All pull requests should include unit tests that cover the changes.

  2. Documentation: If your pull request adds or modifies functionality, please update the documentation accordingly.

  3. CI: Your pull request must pass all existing continuous integration checks.

  4. Single Functionality: Each pull request should ideally address a single, well-defined functionality. If your changes are more extensive, please consider breaking them down into multiple, smaller pull requests.

Getting Help

If you have questions or need help getting started, please open an issue with the question label. We’ll do our best to assist you.