Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
be09394
upload data files
hivanov-nrel Dec 19, 2024
4773dcd
init mooring functions
hivanov-nrel Dec 19, 2024
4832e4c
Actions: Use stable version of ubuntu
simmsa Jun 10, 2025
32478c0
Actions: Disable hindcast tests temporarily
simmsa Jun 10, 2025
1fa9211
Actions: Force usage of system libc++ on ubuntu
simmsa Jun 10, 2025
86229a3
Actions: Use newer version of MATLAB and Python for cache population job
simmsa Jun 10, 2025
d976579
Actions: Test deprecation MATLAB 2022b on Windows
simmsa Jun 10, 2025
d9cf87a
Actions: Test adding MATLAB 2025a on Windows
simmsa Jun 10, 2025
0b7e033
Actions: Use Python 3.11 for Windows cache population job
simmsa Jun 10, 2025
043bb37
Actions: Ignore one failing ubuntu test
simmsa Jun 10, 2025
9c07e36
Actions: Test MATLAB 2025a on Unix
simmsa Jun 10, 2025
63c464f
Actions: Add pybind11 workaround for windows
simmsa Jun 10, 2025
b8c37cf
Actions: Remove MATLAB 2025a on Windows
simmsa Jun 10, 2025
1d72dfc
Actions: Add pybind 11 assertion on all Windows jobs
simmsa Jun 10, 2025
d3513e4
Actions: Skip MATLAB 2025 a on MacOS
simmsa Jun 10, 2025
5f89b77
Actions: Force install of expat on Windows
simmsa Jun 10, 2025
2e29d80
Actions: Simplify expat install on Windows
simmsa Jun 10, 2025
a3007e2
Actions: Exclude a windows job with a non MHKiT related failure
simmsa Jun 11, 2025
885acae
Actions: Add MATLAB releases to code compatibility report matrix
simmsa Jun 11, 2025
31388bb
Merge pull request #168 from simmsa/fix_tests_2025_06
simmsa Jul 1, 2025
c8995ef
Compat: Replace verLessThan with isMATLABReleaseOlderThan
simmsa Jul 17, 2025
e0caeaa
Compat: Fix LEGPVPAIR warning by moving legend config outside loop
simmsa Jul 17, 2025
cee7a5e
Compat: Fix IDISVARLOW warning by replacing varargin with named param…
simmsa Jul 17, 2025
477cbe7
Compat: Replace deprecated histc with accumarray for counting occurre…
simmsa Jul 17, 2025
0d8a21c
Compat: Remove unused format commands and debug printf statements
simmsa Jul 17, 2025
ebf5b8b
Compat: Replace deprecated display() with disp() function calls
simmsa Jul 18, 2025
915ccc8
Compat: Replace deprecated datestr with string() and direct datenum c…
simmsa Jul 18, 2025
c7db8ca
Compat: Replace deprecated datenum with datetime operations in test f…
simmsa Jul 18, 2025
3246982
Add TODO comments for future datenum to posixtime research in read_rdi.m
simmsa Jul 18, 2025
a0b8e24
Compat: Use 256-color colormaps by default to fix COLMP warnings
simmsa Jul 18, 2025
ef3b74b
Compat: Replace deprecated caxis with clim function
simmsa Jul 18, 2025
3b4da7a
auto hs threshold
hivanov-nrel Jul 24, 2025
bc82f15
Merge remote-tracking branch 'upstream/develop' into pr/hivanov-nrel/170
hivanov-nrel Jul 24, 2025
93217e9
add tolerance to assert
hivanov-nrel Jul 28, 2025
aeeac3c
explicit type conversion
hivanov-nrel Jul 28, 2025
4237e85
add return_year_value
hivanov-nrel Jul 29, 2025
f7bed1c
Merge branch 'develop' of github.com:MHKiT-Software/MHKiT-MATLAB into…
hivanov-nrel Jul 29, 2025
334c5c9
Compat: Define levels for colormaps
simmsa Jul 29, 2025
4051f14
Compat: Replace deprecated datetick with xtickformat and ISO 8601 dates
simmsa Jul 29, 2025
1b6781b
Compat: Fix legend property interpretation with empty labels array
simmsa Jul 29, 2025
f95e037
Compat: Fix datetime format string from 'yyyymmdd' to 'yyyyMMdd'
simmsa Jul 29, 2025
41d388c
Tests: Create test_results directory if it does not exist
simmsa Jul 29, 2025
baaa748
Compat: Fix datetime format string in plot_compendium
simmsa Jul 29, 2025
aa26e32
mooring module
hivanov-nrel Jul 29, 2025
020ff6e
Tests: Fix QC timestamp comparison using duration objects
simmsa Jul 30, 2025
6724cde
update lay length for older matlab versions
hivanov-nrel Jul 30, 2025
6e2b9b9
edits from review
hivanov-nrel Jul 31, 2025
721cfb1
update changelog
hivanov-nrel Aug 4, 2025
a78c3bb
Clean: Remove unnecessary python import
simmsa Aug 5, 2025
9227715
Mooring: Add additional detail to lay_length docstring
simmsa Aug 7, 2025
1ae8675
Mooring: Add .m and .html versions of example
simmsa Aug 7, 2025
70c333d
Merge pull request #170 from hivanov-nrel/wdrt_parity
simmsa Aug 7, 2025
9b8fe8d
Merge remote-tracking branch 'upstream/develop' into fix_code_compat
simmsa Aug 7, 2025
5a7e232
Changelog: Add Code Compat entry
simmsa Aug 7, 2025
cffda7a
Version: Update dev version
simmsa Aug 7, 2025
c259b9f
Dolfyn: Add `calc_tilt` function
simmsa Aug 7, 2025
884beef
Merge pull request #169 from simmsa/fix_code_compat
simmsa Aug 7, 2025
13a0d7c
Merge remote-tracking branch 'upstream/develop' into mooring
simmsa Aug 8, 2025
c058267
Changelog: Add Mooring Module
simmsa Aug 8, 2025
86d96e0
Build: Bump develop version number
simmsa Aug 8, 2025
c2ee87e
Merge pull request #153 from hivanov-nrel/mooring
simmsa Aug 8, 2025
c4e2cde
init module
hivanov-nrel Aug 13, 2025
b0a330a
wecsim power performance example
akeeste Aug 28, 2025
a0899e0
Dolfyn: Add dolfyn_stepsize function
simmsa Sep 8, 2025
f246e1a
Dolfyn: Update water_depth_from_pressure docstring
simmsa Sep 9, 2025
f08abe1
Dolfyn: Update dolfyn_read docstring
simmsa Sep 9, 2025
e160c8d
Utils: Add mhkit_nanmean function
simmsa Sep 9, 2025
5e5a796
Dolfyn: Add dolfyn_select function
simmsa Sep 9, 2025
baa8d72
Dolfyn: Add helper subtract_mean_from_dimension function
simmsa Sep 9, 2025
e1a5193
Dolfyn: Add reshape_for_ensemble function
simmsa Sep 9, 2025
5fbf846
Fix: Relax arguments block in mhkit_nanmean
simmsa Sep 9, 2025
79cd30d
Dolfyn: Add turbulence_intensity calculation
simmsa Sep 9, 2025
93c43a9
Dolfyn: Update title for depth plot
simmsa Sep 9, 2025
623dee0
Signal: Add hann window function
simmsa Sep 9, 2025
c9494d6
Signal: Add hann window function
simmsa Sep 9, 2025
98d7493
Signal: Add hamming window function
simmsa Sep 9, 2025
216b6fa
Signal: Add rectwin window
simmsa Sep 9, 2025
79a7783
Signal: Add get_window function
simmsa Sep 9, 2025
cd13ae0
Dolfyn: Add dolfyn_psd_1D function
simmsa Sep 9, 2025
3c9b2a3
Dolfyn: Add WIP adcp_example
simmsa Sep 9, 2025
19b0ca5
Merge remote-tracking branch 'upstream/develop' into feat_dolfyn_turb…
simmsa Sep 9, 2025
5f43d3a
Signal: Add detrend array function
simmsa Sep 9, 2025
24df75d
Dolfyn: Add power_spectral_density function
simmsa Sep 9, 2025
2669fb2
Fix: Incorrect tilt qoi logic in calc_tilt
simmsa Sep 9, 2025
5a53e2a
Dolfyn: Add calculate_doppler_noise_level function
simmsa Sep 9, 2025
c384d7e
example and data
hivanov-nrel Sep 17, 2025
2fd5cd2
acoustics module functions
hivanov-nrel Sep 17, 2025
0c135a4
bug fix for older versions of matlab
hivanov-nrel Sep 17, 2025
7222509
Examples: Add MHKiT-MATLAB intro language in adcp_example
simmsa Sep 19, 2025
726fc6a
Examples: Remove upcoming from adcp_example Turbulence section
simmsa Sep 19, 2025
2226a10
Utils: Add cmocean colormaps
simmsa Sep 19, 2025
5f88719
Examples: Adcp, clarify point -> cell
simmsa Sep 19, 2025
ee55eb1
Examples: ADCP, clarify current speed plot labels
simmsa Sep 19, 2025
b41c9ef
Examples: ADCP, Use cmocean phase colormap for direction plot
simmsa Sep 19, 2025
f7b6e59
Examples: ADCP, improve markup
simmsa Sep 19, 2025
9dc8ac8
Examples: ADCP, use cmocean amp for Turbulence Intensity
simmsa Sep 19, 2025
9d39325
Examples: ADCP, remove unnecessary print statements
simmsa Sep 19, 2025
501ff75
Examples: Remove PSD plot cmap fallback
simmsa Sep 19, 2025
94b37b2
Examples: ADCP, Fix PSD overlapping y axis cbar text
simmsa Sep 19, 2025
6419920
Dolfyn: Clean up power_spectral_density print statements
simmsa Sep 22, 2025
ddaf7d1
Examples: ADCP, clean up, prep for new version
simmsa Sep 22, 2025
7f33a98
Examples: ADCP: Fix reynolds stress equation syntax
simmsa Sep 22, 2025
0d3aefa
Dolfyn: Clean up debugging print statements in calculate_turbulence_i…
simmsa Sep 22, 2025
73abcf0
Dolfyn: plot, use cmocean colors by default
simmsa Sep 22, 2025
48763be
Dolfyn: Add s-1 to PSD radians units
simmsa Sep 22, 2025
a79e143
Dolfyn: Add calculate_dissipation_rate_LT83 function
simmsa Sep 22, 2025
fe7574d
Dolfyn: Add calculate_dissipation_rate_profile function
simmsa Sep 22, 2025
e4fb77b
Dolfyn: Add calculate_reynolds_stress_5beam function
simmsa Sep 22, 2025
d4fcc8e
Dolfyn: Add calculate_velocity_shear function
simmsa Sep 22, 2025
0411b35
Examples: Update adcp mlx and html
simmsa Sep 22, 2025
c97985e
Dolfyn: Average from wall clock start time
simmsa Sep 22, 2025
39dba65
Dolfyn: Fix args block in stepsize
simmsa Sep 22, 2025
7e257ad
Dolfyn: Update bin average test
simmsa Sep 22, 2025
a7b9e47
Dolfyn: lint new lines at end of files
simmsa Sep 22, 2025
7ce68b7
Dolfyn: Clean up docstrings
simmsa Sep 22, 2025
d7983a4
converts the functions related to the extreme_response_contour_example
MShabara Jun 9, 2025
8ce54a9
Loads: Revert changes in `short_term_extreme.m`
simmsa Aug 8, 2025
0431fc2
Wave: Follow MHKiT-Python spectra frequency conventions
simmsa Sep 4, 2025
b2c630a
Revert: Don't include changes in adcp_example
simmsa Sep 4, 2025
d4e7263
Revert: Don't include changes in extreme_response_contour_example
simmsa Sep 4, 2025
e4f1850
Wave: Add helper function to standardize spectra frequency preparation
simmsa Sep 4, 2025
dce717e
Wave: Add MATLAB native frequency moment calculation
simmsa Sep 4, 2025
e96aea3
Wave: Use MHKiT-Python methodology in jonswap_spectrum calc
simmsa Sep 4, 2025
cf15bf1
Wave: Standardize surface elevation docstring
simmsa Sep 4, 2025
1d41b7c
Wave: Use MHKiT-Python frequency difference calculation methodology
simmsa Sep 4, 2025
e27aba9
Wave: Use same ifft method as MHKiT-Python
simmsa Sep 4, 2025
a3c5c91
Wave: Use arguments block to validate inputs where reasonable
simmsa Sep 4, 2025
699f778
Wave: Use standardize_wave_spectra_frequency
simmsa Sep 4, 2025
64d586c
Wave: Use frequency_moment for Te and Hm0 calculations
simmsa Sep 4, 2025
ee946c2
Wave: Standardize docstring formatting
simmsa Sep 22, 2025
7ffdfdd
Wave: Use jonswap_spectrum with a gamma of 1 to calculate PM
simmsa Sep 22, 2025
9da90cb
Wave: Fix docstring whitespace
simmsa Sep 22, 2025
6dc9b36
Changelog: Update with PR#176 features
simmsa Sep 22, 2025
03ba147
Examples: SWAN, Remove './examples' from data path
simmsa Sep 23, 2025
c1fc25f
Examples: Wave, Remove './examples' from data path
simmsa Sep 23, 2025
8b3ac90
Examples: Acoustics, add original .m version of acoustics_example
simmsa Sep 23, 2025
23f8381
Merge pull request #176 from simmsa/ndbc_examples_wave_module_only
simmsa Sep 23, 2025
ac9a9f4
bug fix for phase angle
hivanov-nrel Sep 23, 2025
542301f
explicit elmntwise multiplication
hivanov-nrel Sep 23, 2025
7ec6ead
multiply fix v2
hivanov-nrel Sep 23, 2025
69b8872
multiply fix v3
hivanov-nrel Sep 23, 2025
c4a990f
Tests: Explicitly print types in mler_coefficients
simmsa Sep 23, 2025
4b24e0d
Revert "Tests: Explicitly print types in mler_coefficients"
simmsa Sep 23, 2025
d9ad7a9
Merge remote-tracking branch 'upstream/develop' into loads_bug_fix
simmsa Sep 23, 2025
4f4e4e0
Loads: Specify input dimensions in mler_coefficients docstring
simmsa Sep 23, 2025
55513bd
Loads: Be explicit about how column vs row vectors are handled/validated
simmsa Sep 23, 2025
0aaf524
Tests: Remove transposing from test_mler_coefficients
simmsa Sep 23, 2025
d7a227c
Examples: MLER, remove unnecessary transpose
simmsa Sep 23, 2025
65a3a2d
Dolfyn: Add analysis workflow tests
simmsa Sep 24, 2025
2d20fd7
Actions: Add MATLAB 2025a and 2025b
simmsa Sep 24, 2025
ed0d4a3
Revert "Actions: Add MATLAB 2025a and 2025b"
simmsa Sep 24, 2025
2c76f49
Merge pull request #179 from hivanov-nrel/loads_bug_fix
simmsa Sep 25, 2025
f824efc
Examples: Acoustics, add nmfs_auditory_weighting section
simmsa Sep 28, 2025
12f331d
Examples: Acoustics, clean up typos and formatting
simmsa Sep 28, 2025
07e77cc
Acoustics: Fix typo in plot_spectrogram function name
simmsa Sep 28, 2025
ec21476
Acoustics: Add functions to validate repeated acoustics structures
simmsa Sep 28, 2025
61ad1df
Acoustics: Standardize apply_calibration docstring and input validation
simmsa Sep 28, 2025
2331400
Acoustics: Standardize band_aggregate docstring and input validation
simmsa Sep 28, 2025
7634526
Acoustics: Standardize band_sound_pressure_level docstring and valida…
simmsa Sep 28, 2025
12cdfb2
Acoustics: Standardize create_frequency_bands docstring and input val…
simmsa Sep 28, 2025
90a0e02
Acoustics: Fix unit typo db -> dB
simmsa Sep 28, 2025
313afa7
Acoustics: Standardize decidecade_sound_pressure_level docstring and …
simmsa Sep 28, 2025
0667820
Acoustics: Standardize sound_exposure_level docstring and validation
simmsa Sep 28, 2025
5175d91
Acoustics: Standardize sound_pressure_level docstring and input valid…
simmsa Sep 28, 2025
7613a3d
Acoustics: Standardize sound_pressure_spectral_density docstring and …
simmsa Sep 28, 2025
d9abbee
Acoustics: Standardize sound_pressure_spectral_density_level docstrin…
simmsa Sep 28, 2025
6b0c755
Acoustics: Standardize third_octave_sound_pressure_level docstring an…
simmsa Sep 28, 2025
7e4c876
Acoustics: Standardize time_aggregate docstring and validation
simmsa Sep 28, 2025
2d7531b
Acoustics: Standardize plot_spectra docstring and input validation
simmsa Sep 28, 2025
897b644
Acoustics: Standardize read_hydrophone docstring and input validation
simmsa Sep 28, 2025
1809132
Acoustics: Standardize read_iclisten docstring and input validation
simmsa Sep 28, 2025
c7bf6ff
Acoustics: Standardize read_soundtrap docstring
simmsa Sep 28, 2025
031b461
Acoustics: Add test for `export_audio` function
simmsa Sep 28, 2025
21636e6
Acoustics: Add export_audio function
simmsa Sep 28, 2025
e3cc9dd
Acoustics: Refactor plot_spectrogram to add smoothing and plot methods
simmsa Sep 28, 2025
c277a09
Examples: Acoustics, use refactored plot_spectrogram function
simmsa Sep 28, 2025
573f74c
Acoustics: Improve docstring formatting
simmsa Sep 28, 2025
9eb36ca
Acoustics: Standardize fft_hann docstring
simmsa Sep 29, 2025
04df266
Acoustics: Clean up `fft_hann` formatting
simmsa Sep 29, 2025
0c28110
Acoustics: Standardize fmax_warning docstring and input validation
simmsa Sep 29, 2025
c0020c3
Acoustics: Remove restrictive shape/size check
simmsa Sep 29, 2025
64ec704
Acoustics: Clean up whitespace
simmsa Sep 29, 2025
853c6b8
Examples: Acoustics, hardcode frequency range
simmsa Sep 29, 2025
8606e3c
Examples: Acoustics, add export_audio comment
simmsa Sep 29, 2025
1f87be2
Acoustics: Standardize minimum_frequency docstring and input validation
simmsa Sep 29, 2025
829acfa
Acoustics: Standardize validate_method docstring and input validation
simmsa Sep 29, 2025
bdae482
Acoustics: Fix edge cases in validate_method
simmsa Sep 29, 2025
39e7e61
Acoustics: Update validate_method error messages in tests
simmsa Sep 29, 2025
536d37a
Examples: Update acoustics example assets
simmsa Sep 29, 2025
f65d864
Examples: WEC-Sim, standardize to using `data` directory
simmsa Sep 29, 2025
a8ed6f6
Merge remote-tracking branch 'upstream/develop' into wecsim_example_2
simmsa Sep 29, 2025
10d03bd
Prep Release: Bump versions to 1.0.0
simmsa Sep 29, 2025
ac3132a
Merge pull request #1 from simmsa/acoustics-standardization
hivanov-nrel Sep 29, 2025
996409f
Actions: Only run full test suite when MATLAB files are changed
simmsa Sep 29, 2025
7e5ab9d
Merge pull request #174 from hivanov-nrel/acoustics
simmsa Sep 29, 2025
a10a1d3
Examples: WEC-Sim, Organize mhkit wave statistics in a table
simmsa Sep 29, 2025
7daa268
Examples: WEC-sim, update livescript assets
simmsa Sep 29, 2025
b9e07bf
Merge pull request #175 from akeeste/wecsim_example_2
simmsa Sep 29, 2025
ccf5986
Dolfyn: Add check_turbulence_cascade_slope function
simmsa Sep 29, 2025
b4134af
Dolfyn: Fix name to actually run test
simmsa Sep 29, 2025
9d7011c
Dolfyn: Add calculate_reynolds_stress_4beam function
simmsa Sep 29, 2025
1a3045b
Tests: Enable WPTO hindcast tests
simmsa Sep 30, 2025
9f73b23
Changelog: Update for v1.0.0
simmsa Sep 30, 2025
0ad774e
Merge pull request #173 from simmsa/feat_dolfyn_turbulence
simmsa Sep 30, 2025
144c78b
Merge pull request #181 from simmsa/prep_v1.0_release
simmsa Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .github/workflows/code_compatibility_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,8 @@ jobs:

matrix:
# os: [macos-13, ubuntu-latest, windows-latest]
os: [ubuntu-latest]
python-version: [3.8, 3.9, "3.10", 3.11]
matlab-version: [R2021b, R2022a, R2022b, R2023a, R2023b]
os: ["ubuntu-22.04"]
matlab-version: [R2022b, R2023a, R2023b, R2024a, R2024b, R2025a, latest]

runs-on: ${{ matrix.os }}

Expand Down
41 changes: 33 additions & 8 deletions .github/workflows/unix_unit_tests.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,29 @@
name: MHKiT-MATLAB Unix Unit Tests

# Only run tests when MATLAB files or this workflow file changes
on:
push:
branches: [ master, develop ]
paths:
- 'mhkit/**/*.m'
- 'examples/**/*.m'
- '.github/workflows/unix_unit_tests.yml'
pull_request:
branches: [ master, develop ]
paths:
- 'mhkit/**/*.m'
- 'examples/**/*.m'
- '.github/workflows/unix_unit_tests.yml'

jobs:
cache_population:
strategy:
fail-fast: false

matrix:
os: [ubuntu-latest]
python-version: ["3.10"]
matlab-version: [R2022b]
os: ["ubuntu-22.04"]
python-version: ["3.11"]
matlab-version: [R2023b]

runs-on: ${{ matrix.os }}

Expand All @@ -37,6 +46,12 @@ jobs:
conda activate mhkit_conda_env
conda install numpy cython pip pytest hdf5 libnetcdf cftime netcdf4

- name: Fix libstdc++ compatibility
if: matrix.os == 'ubuntu-22.04'
run: |
# Force MATLAB to use system libstdc++
echo "LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/lib/x86_64-linux-gnu/libstdc++.so.6" >> "$GITHUB_ENV"

- name: Check out MHKiT-MATLAB
uses: actions/checkout@v4

Expand Down Expand Up @@ -122,15 +137,15 @@ jobs:
fail-fast: false

matrix:
os: [macos-13, ubuntu-latest]
os: [macos-13, "ubuntu-22.04"]
python-version: ["3.10", 3.11, 3.12]
# Note: It is preferred to use an actual release name as opposed to 'latest'
matlab-version: [R2022b, R2023a, R2023b, R2024a, R2024b]
mhkit-python-version: ["0.9.0"]
exclude:
- python-version: "3.10" # cache_population job
matlab-version: R2022b
os: ubuntu-latest
os: "ubuntu-22.04"
# Python 3.12 + MATLAB incompatability
- matlab-version: R2024a
python-version: 3.12
Expand All @@ -153,6 +168,10 @@ jobs:
- matlab-version: R2024b
python-version: 3.12
os: macos-13
# Unable to resolve the name 'py.mhkit.wave.resource.jonswap_spectrum'
- matlab-version: R2023a
python-version: 3.10
os: "ubuntu-22.04"

runs-on: ${{ matrix.os }}

Expand All @@ -179,9 +198,15 @@ jobs:
conda activate mhkit_conda_env
conda install numpy cython pip pytest hdf5 libnetcdf cftime netcdf4

- name: Setup MATLAB Path on Ubuntu
if: ${{ matrix.os == 'ubuntu-latest' }}
run: echo "LD_PRELOAD=/lib/x86_64-linux-gnu/libstdc++.so.6" >> "$GITHUB_ENV"
- name: Fix libstdc++ compatibility
if: matrix.os == 'ubuntu-22.04'
run: |
# Force MATLAB to use system libstdc++
echo "LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/lib/x86_64-linux-gnu/libstdc++.so.6" >> "$GITHUB_ENV"

# - name: Setup MATLAB Path on Ubuntu
# if: ${{ matrix.os == '"ubuntu-22.04"' }}
# run: echo "LD_PRELOAD=/lib/x86_64-linux-gnu/libstdc++.so.6" >> "$GITHUB_ENV"

- name: Print Python executable
shell: bash -l {0}
Expand Down
50 changes: 48 additions & 2 deletions .github/workflows/windows_unit_tests.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,27 @@
name: MHKiT-MATLAB Windows Unit Tests

# Only run tests when MATLAB files or this workflow file changes
on:
push:
branches: [ master, develop ]
paths:
- 'mhkit/**/*.m'
- 'examples/**/*.m'
- '.github/workflows/windows_unit_tests.yml'
pull_request:
branches: [ master, develop ]
paths:
- 'mhkit/**/*.m'
- 'examples/**/*.m'
- '.github/workflows/windows_unit_tests.yml'

jobs:
cache_population:
strategy:
fail-fast: false
matrix:
os: [windows-latest]
python-version: ["3.10"]
python-version: ["3.11"]
matlab-version: [R2023b]
runs-on: ${{ matrix.os }}

Expand Down Expand Up @@ -80,6 +89,14 @@ jobs:
with:
release: ${{ matrix.matlab-version }}

- name: Set PYBIND11 GIL workaround
# if: ${{ matrix.matlab-version == 'R2025a' }}
shell: bash -l {0}
run: |
conda activate mhkit_conda_env
export PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF=1
echo "PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF=1" >> $GITHUB_ENV

- name: Configure MATLAB pyenv Version and ExecutionMode
if: ${{ matrix.os == 'windows-latest' }}
shell: pwsh
Expand Down Expand Up @@ -128,7 +145,8 @@ jobs:
matrix:
os: [windows-latest]
python-version: ["3.10", 3.11, 3.12]
matlab-version: [R2022b, R2023a, R2023b, R2024a, R2024b]
# matlab-version: [R2022b, R2023a, R2023b, R2024a, R2024b]
matlab-version: [R2023a, R2023b, R2024a, R2024b]
mhkit-python-version: ["0.9.0"]
exclude:
# Cache population job
Expand All @@ -150,6 +168,11 @@ jobs:
python-version: 3.11
- matlab-version: R2022b
python-version: 3.11
# Failing Job
# Python Error: ImportError: DLL load failed while importing pyexpat: The operating system cannot run %1
- matlab-version: R2023a
python-version: "3.10"

runs-on: ${{ matrix.os }}

env:
Expand Down Expand Up @@ -197,6 +220,21 @@ jobs:
# pip uninstall -y scipy
# pip install scipy==1.10.1
#

# Some tests fail with:
# Python Error: ImportError: DLL load failed while importing pyexpat: The operating system cannot run %1.
# One potential fix is to install expat and lxml
- name: Install Windows XML dependencies
if: ${{ matrix.os == 'windows-latest' }}
shell: bash -l {0}
run: |
conda activate mhkit_conda_env
# Simple single package install to avoid solver issues
conda install expat -y
# Alternative: use pip for XML parsing
pip install lxml


- name: List installed pip modules
shell: bash -l {0}
run: |
Expand Down Expand Up @@ -227,6 +265,14 @@ jobs:
with:
release: ${{ matrix.matlab-version }}

- name: Set PYBIND11 GIL workaround
# if: ${{ matrix.matlab-version == 'R2025a' }}
shell: bash -l {0}
run: |
conda activate mhkit_conda_env
export PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF=1
echo "PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF=1" >> $GITHUB_ENV

- name: Add Python Dir to Path
shell: bash -l {0}
run: |
Expand Down
65 changes: 65 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,68 @@
# Version 1.0.0

## Release Highlights

- New acoustics, and mooring modules
- Improvements to Wave, WDRT, and DOLFYN modules
- New examples for acoustics, mooring, and WEC-sim, and improved examples for DOLFYN and wave modules
- Multiple bug fixes and performance improvements

## PR #174 - Acoustics Module

- Authors: @hivanov-nrel, @simmsa
- Addition of acoustics module:
- Reading and standardization of of OceanSonics icListen and OceanInstruments Soundtrap hydrophone files
- Implementation of numerical computation sections IEC 62600-40 "Acoustic characterization of marine energy converters" standard
- Spectrogram data visualizations using `plot_spectrogram`
- Sound exposure level calculations with auditory weighting functions for 5 groups of marine mammals
- Complete example livescript in examples/acoustics_example.mlx

## PR 176 - Wave Module Native MATLAB Implementation

- Authors: @MShabara, @simmsa
- Convert wave module functions to native MATLAB code:
- wave/resource/standardize_wave_spectra_frequency.m:
- wave/resource/frequency_moment.m:
- wave/resource/energy_period.m:
- wave/resource/significant_wave_height.m:
- wave/resource/jonswap_spectrum.m:
- wave/resource/pierson_moskowitz_spectrum.m:
- wave/resource/surface_elevation.m:

## PR 153 - Mooring Module

- Author: @hivanov-nrel
- Addition of the mooring module, which includes
- Read in MoorDyn files into MATLAB
- Function to calculate mooring line lay length
- Functions to visualize mooring line dynamics in 2D or 3D.
- Example LiveScript demonstrating the functionality of the mooring module

## PR #173 - Dolfyn Turbulence Functionality

- Author: @simmsa, @browniea
- Addition of turbulence calculations for acoustic doppler instruments
- Turbulence intensity, noise, and reynolds stress calculations
- Updates to examples/adcp_example.mlx live script

## PR 170 - WDRT leftovers

- Author: @hivanov-nrel
- Expanded WDRT functionality by adding `automatic_hs_threshold` and `return_year_value` functions

## PR 169 - Code Compatibility Improvements

- Author: @simmsa
- Fix code compatibility issues detailed in issues #115, #116, #117, #118, #119, #120, #121, and #122

## Bug Fixes

- Issue #172 - Fix Failing MLER Test - @hivanov-nrel
- Issue #152 - Fix dimensionality differences in environmental_contours_example - @simmsa
- Issue #146, #74 - Finish WDRT Parity - @hivanov-nrel
- Issue #145 - Fix build errors in documentation - @simmsa
- Issue #114, #115, #116, #117, #118, #119, #121, #122 - MATLAB code compatibility issues

# MHKiT-MATLAB v0.6.0

## Release Highlights
Expand Down
Loading
Loading