Skip to content

WISDEM/pyHAMS

Repository files navigation

pyHAMS

This is a python wrapper for HAMS, a boundary element method for hydrodynamic analysis of submerged structures.

There is cylinder test case that demonstrates usage and outputs in test/test_cylinder.py.

Prerequisites

pyHAMS requires a Fortran compiler and OpenBLAS / MKL / LAPACK. We strongly recommend the Miniforge distribution of conda to satisfy package dependencies, as the traditional Anaconda distribution can be slow and struggle with mapping out dependencies.

Install (as a library)

To install pyHAMS as a library that can be used by WEIS or RAFT in the backend, conda is your best option:

$ conda install pyHAMS

Install (from source)

If you would like to build the project locally from source for easier access to the underlying methods and tests, we still recommend using conda to satisfy dependencies.

$ git clone https://github.com/WISDEM/pyHAMS.git
$ cd pyHAMS
$ conda env create --name pyhams-env -f environment.yml
$ conda activate pyhams-env
$ conda install -y compilers                       # (Mac/Linux without other compilers)
$ conda install -y m2w64-toolchain libpython       # (Windows only)
$ pip install .

If developer/editable mode, replace the final step with:

$ pip install --no-build-isolation -e .

The --no-build-isolation option is important per Meson guidelines. Note that this package uses mesonpy for an installation backend, so there is no setup.py file.

Unit Tests

$ pytest test

For software issues please use https://github.com/WISDEM/pyHAMS/issues. For theory related questions and comments please use the HAMS issues page.

License

pyHAMS uses the Apache License v2.0