Skip to main content

A Python package for semi-analytical hydrodynamics modeling including matched eigenfunction expansion method

Project description

OpenFLASH ⚡️

Open-source Flexible Library for Analytical and Semi-analytical Hydrodynamics

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Unit Tests codecov License

DOI - entire project DOI - code only GitHub Release PyPI - Version Conda Version

About The OpenFLASH Project

The OpenFLASH project is a Python package designed for solving hydrodynamic boundary value problems using eigenfunction expansion methods. It provides a modular framework for defining complex geometries, setting up multi-domain problems, performing numerical computations, and analyzing results, particularly for linear potential flow hydrodynamics. It can be significantly faster than Boundary Element Method calculations although is restricted to certain geometries (currently axisymmetric compound cylinders).

When referencing this work, please reference our citation.cff.

This project is licensed under the MIT License. See the LICENSE file for details.

Installation

Three common installation options are shown below. For more details, see the installation section of the docs.

Option 1: via pypi (recommended for users who manage environments with venv or similar)

pip install open-flash

Option 2: via conda (recommended for users who manage environments with conda)

conda create -n openflash-env sea-lab::open-flash
conda activate openflash-env

Option 3: via git (recommended for developers)

Note - if you are a developer outside of the SEA Lab, please create a fork and clone your fork.

  1. Clone the repository:
git clone https://github.com/symbiotic-engineering/OpenFLASH.git
cd OpenFLASH
  1. Install the package:
pip install -e .
  1. Install dependencies:
pip install -e .[dev]

Usage

Please see our documentation and tutorial notebook. The documentation provides detailed instructions and API reference for the different modules and classes within the openflash package.

If you prefer not to utilize the package programatically, the model can also be run with an interactive web app (the site may take several seconds to load).

Theory

Please see our equations documentation and references for mathematical background and derivations as well as validation information.

MATLAB

We also have a MATLAB code version, although the Python package is intended as primary for future development. MATLAB only supports bodies consisting of 2 concentric cylinders, rather than the arbitrary N concentric cylinders in the Python package.

See matlab/src/run_MEEM.m for the symbolic and numeric code, see matlab/test/ for some scripts to get results, and matlab/dev for various matlab experiments.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

open_flash-1.0.38.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

open_flash-1.0.38-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

File details

Details for the file open_flash-1.0.38.tar.gz.

File metadata

  • Download URL: open_flash-1.0.38.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for open_flash-1.0.38.tar.gz
Algorithm Hash digest
SHA256 a434e734931ba424a89e0b5bd137f83a2a44b3e4d910b27d0b63935c6868ce9e
MD5 aeea43bb9bf32cca6f0d1f6f3f7b5f3c
BLAKE2b-256 839445a9a508b64d8f7a4568a1d6e855ec4857332f134f02ac04235d0986cb33

See more details on using hashes here.

Provenance

The following attestation bundles were made for open_flash-1.0.38.tar.gz:

Publisher: publish-package.yml on symbiotic-engineering/OpenFLASH

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file open_flash-1.0.38-py3-none-any.whl.

File metadata

  • Download URL: open_flash-1.0.38-py3-none-any.whl
  • Upload date:
  • Size: 29.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for open_flash-1.0.38-py3-none-any.whl
Algorithm Hash digest
SHA256 1e1e7243155563a087e1fd6f0e103b766fdc46e45f5e0d0b450fcccca06aff57
MD5 fdf203a55fc0a7fb969a4eccc0c79ce6
BLAKE2b-256 8ef34ab326afd3e1fa1e7bdbc47fd6cd08ac4a291b189518e1c361caddb15926

See more details on using hashes here.

Provenance

The following attestation bundles were made for open_flash-1.0.38-py3-none-any.whl:

Publisher: publish-package.yml on symbiotic-engineering/OpenFLASH

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page