From 26ce4835775e609ce2e44a0a4ae64c143ac23ce6 Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Mon, 26 Jun 2023 13:34:37 -0700 Subject: [PATCH 01/20] Initial setup of utils functions" --- wecopttool/__init__.py | 1 + wecopttool/utilities.py | 65 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 wecopttool/utilities.py diff --git a/wecopttool/__init__.py b/wecopttool/__init__.py index d36607f3..88ba9cb4 100644 --- a/wecopttool/__init__.py +++ b/wecopttool/__init__.py @@ -33,6 +33,7 @@ from wecopttool import waves from wecopttool import hydrostatics from wecopttool import pto +from wecopttool import utilities try: from wecopttool import geom diff --git a/wecopttool/utilities.py b/wecopttool/utilities.py new file mode 100644 index 00000000..dceb67d3 --- /dev/null +++ b/wecopttool/utilities.py @@ -0,0 +1,65 @@ +"""Functions that are useful for WEC analysis and design. +""" + + +from __future__ import annotations + + +__all__ = [ + "intrinsic_impedance" + "natural_frequency", + "plot_bem_results" +] + + +from typing import Optional, Union +import logging +from pathlib import Path + +import numpy as np +from xarray import DataArray +from numpy.typing import ArrayLike +# from autograd.numpy import ndarray +from xarray import DataArray, Dataset + +# from wecopttool.core import linear_hydrodynamics + + +# logger +_log = logging.getLogger(__name__) + +def natural_frequency(impedance: DataArray, freq: ArrayLike + ) -> tuple[ArrayLike, int]: + """Find the natural frequency based on the lowest magnitude impedance. + + Parameters + ---------- + impedance: DataArray + Complex intrinsic impedance matrix. + Dimensions: omega, radiating_dofs, influenced_dofs + freq: list[float] + Frequencies. + + Returns + ------- + f_n: float + Natural frequencies. + ind: int + Index of natural frequencies. + + Examples + -------- + import capytaine as cpy + + hydrostatic_stiffness = lupa_fb.hydrostatic_stiffness + hydro_data = wecopttool.linear_hydrodynamics(bem_data, inertia_matrix, hydrostatic_stiffness) + hydro_data = wecopttool.check_linear_damping(hydro_data) + impedance = wecopttool.hydrodynamic_impedance(hydro_data) + """ + #TODO: Only calculate for the dofs that have natural restoring force, + #heave, roll, pitch + np.diag(np.abs(impedance).argmin(dim = 'omega')) + ind = np.argmin(np.abs(impedance), axis=0) + f_n = freq[ind] + + return f_n, ind From 779e1cc849436ab41b826c0d005741cbc999ff70 Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Mon, 26 Jun 2023 15:52:27 -0700 Subject: [PATCH 02/20] Updated notation and doc string (added example use) of impedance calculation in core --- wecopttool/core.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/wecopttool/core.py b/wecopttool/core.py index cb92b1f9..161c4d50 100644 --- a/wecopttool/core.py +++ b/wecopttool/core.py @@ -2273,13 +2273,33 @@ def hydrodynamic_impedance(hydro_data: Dataset) -> Dataset: hydro_data Dataset with linear hydrodynamic coefficients produced by :py:func:`wecopttool.linear_hydrodynamics`. + + + Examples + ---------- + The :py:fun:`wecopttool.run_bem` function only returns the + boundary elemet results for the given :py:meth:`capytaine` + floating body :python:`fb` and the frequency vector :python:`meth` + + >>> bem_data = wot.run_bem(fb, freq) + + The user needs to define the inertial and hydrostatic stiffness properties + :python:`inertia_matrix` and :python:`hydrostatic_stiffness` to use + :py:func:`wecopttool.linear_hydrodynamics`, followed by the check + :py:func:`wecopttool.check_linear_damping`. + + >>> hydro_data = wot.linear_hydrodynamics(bem_data, + inertia_matrix, + hydrostatic_stiffness) + >>> hydro_data = wot.check_linear_damping(hydro_data) + >>> impedance = wot.hydrodynamic_impedance(hydro_data) """ - Zi = (hydro_data['inertia_matrix'] \ + intrinsic_impedance = (hydro_data['inertia_matrix'] \ + hydro_data['added_mass'])*1j*hydro_data['omega'] \ + hydro_data['radiation_damping'] + hydro_data['friction'] \ + hydro_data['hydrostatic_stiffness']/1j/hydro_data['omega'] - return Zi + return intrinsic_impedance def atleast_2d(array: ArrayLike) -> ndarray: From 33ac6bcf70da7bd8eb1411c3109ae6e2bc1977ac Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Mon, 26 Jun 2023 15:53:21 -0700 Subject: [PATCH 03/20] added functions for plotting hydrodynamic coefficients and for plotting bode graph of impedance --- wecopttool/utilities.py | 81 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/wecopttool/utilities.py b/wecopttool/utilities.py index dceb67d3..5b29072c 100644 --- a/wecopttool/utilities.py +++ b/wecopttool/utilities.py @@ -21,6 +21,7 @@ from numpy.typing import ArrayLike # from autograd.numpy import ndarray from xarray import DataArray, Dataset +import matplotlib.pyplot as plt # from wecopttool.core import linear_hydrodynamics @@ -58,8 +59,84 @@ def natural_frequency(impedance: DataArray, freq: ArrayLike """ #TODO: Only calculate for the dofs that have natural restoring force, #heave, roll, pitch - np.diag(np.abs(impedance).argmin(dim = 'omega')) - ind = np.argmin(np.abs(impedance), axis=0) + + ind = np.diag(np.abs(impedance).argmin(dim = 'omega')) f_n = freq[ind] return f_n, ind + + +def plot_hydrodynamic_coefficients(bem_data): + """Plots hydrodynamic coefficients (added mass, radiation damping, + and wave excitation)based on BEM data. + + + Parameters + ---------- + bem_data + Linear hydrodynamic coefficients obtained using the boundary + element method (BEM) code Capytaine, with sign convention + corrected. + + + """ + radiating_dofs = bem_data.radiating_dof.values + influenced_dofs = bem_data.influenced_dof.values + + # plots + fig_am, ax_am = plt.subplots(len(radiating_dofs), len(influenced_dofs), + tight_layout=True, sharex=True, + figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), squeeze=False) + fig_rd, ax_rd = plt.subplots(len(radiating_dofs), len(influenced_dofs), + tight_layout=True, sharex=True, + figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), squeeze=False) + fig_ex, ax_ex = plt.subplots(len(influenced_dofs), 1, + tight_layout=True, sharex=True, + figsize=(3, 3*len(radiating_dofs)), squeeze=False) + + # plot titles + fig_am.suptitle('Added Mass Coefficients', fontweight='bold') + fig_rd.suptitle('Radiation Damping Coefficients', fontweight='bold') + fig_ex.suptitle('Wave Excitation Coefficients', fontweight='bold') + + sp_idx = 0 + for i, rdof in enumerate(radiating_dofs): + for j, idof in enumerate(influenced_dofs): + sp_idx += 1 + if i == 0: + np.abs(bem_data.diffraction_force.sel(influenced_dof=idof)).plot( + ax=ax_ex[j,0], linestyle='dashed', label='Diffraction force') + np.abs(bem_data.Froude_Krylov_force.sel(influenced_dof=idof)).plot( + ax=ax_ex[j,0], linestyle='dashdot', label='Froude-Krylov force') + ex_handles, ex_labels = ax_ex[j,0].get_legend_handles_labels() + ax_ex[j,0].set_title(f'{idof}') + ax_ex[j,0].set_xlabel('') + ax_ex[j,0].set_ylabel('') + if j <= i: + bem_data.added_mass.sel( + radiating_dof=rdof, influenced_dof=idof).plot(ax=ax_am[i, j]) + bem_data.radiation_damping.sel( + radiating_dof=rdof, influenced_dof=idof).plot(ax=ax_rd[i, j]) + if i == len(radiating_dofs)-1: + ax_am[i, j].set_xlabel(f'$\omega$', fontsize=10) + ax_rd[i, j].set_xlabel(f'$\omega$', fontsize=10) + ax_ex[j, 0].set_xlabel(f'$\omega$', fontsize=10) + else: + ax_am[i, j].set_xlabel('') + ax_rd[i, j].set_xlabel('') + if j == 0: + ax_am[i, j].set_ylabel(f'{rdof}', fontsize=10) + ax_rd[i, j].set_ylabel(f'{rdof}', fontsize=10) + else: + ax_am[i, j].set_ylabel('') + ax_rd[i, j].set_ylabel('') + if j == i: + ax_am[i, j].set_title(f'{idof}', fontsize=10) + ax_rd[i, j].set_title(f'{idof}', fontsize=10) + else: + ax_am[i, j].set_title('') + ax_rd[i, j].set_title('') + else: + fig_am.delaxes(ax_am[i, j]) + fig_rd.delaxes(ax_rd[i, j]) + fig_ex.legend(ex_handles, ex_labels, loc=(0.08, 0), ncol=2, frameon=False) From 2f5ab58a0105912ba24d7d32b4b106efb5ca9c70 Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Mon, 26 Jun 2023 16:01:06 -0700 Subject: [PATCH 04/20] added impedance bode plot function --- wecopttool/utilities.py | 65 +++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 12 deletions(-) diff --git a/wecopttool/utilities.py b/wecopttool/utilities.py index 5b29072c..1e908d66 100644 --- a/wecopttool/utilities.py +++ b/wecopttool/utilities.py @@ -8,7 +8,8 @@ __all__ = [ "intrinsic_impedance" "natural_frequency", - "plot_bem_results" + "plot_bem_results", + "plot_bode_intrinsic_impedance" ] @@ -36,7 +37,8 @@ def natural_frequency(impedance: DataArray, freq: ArrayLike Parameters ---------- impedance: DataArray - Complex intrinsic impedance matrix. + Complex intrinsic impedance matrix produced by + :py:func:`wecopttool.hydrodynamic_impedance`. Dimensions: omega, radiating_dofs, influenced_dofs freq: list[float] Frequencies. @@ -47,18 +49,11 @@ def natural_frequency(impedance: DataArray, freq: ArrayLike Natural frequencies. ind: int Index of natural frequencies. - - Examples - -------- - import capytaine as cpy - - hydrostatic_stiffness = lupa_fb.hydrostatic_stiffness - hydro_data = wecopttool.linear_hydrodynamics(bem_data, inertia_matrix, hydrostatic_stiffness) - hydro_data = wecopttool.check_linear_damping(hydro_data) - impedance = wecopttool.hydrodynamic_impedance(hydro_data) """ + #TODO: Only calculate for the dofs that have natural restoring force, - #heave, roll, pitch + #heave, roll, pitch, but issue is that dofs might not necessairly be called\ + # 'Heave', 'Roll', 'Pitch', otherwise can print warning that results for other dofs are meaningless ind = np.diag(np.abs(impedance).argmin(dim = 'omega')) f_n = freq[ind] @@ -140,3 +135,49 @@ def plot_hydrodynamic_coefficients(bem_data): fig_am.delaxes(ax_am[i, j]) fig_rd.delaxes(ax_rd[i, j]) fig_ex.legend(ex_handles, ex_labels, loc=(0.08, 0), ncol=2, frameon=False) + + +def plot_bode_intrinsic_impedance(impedance: DataArray): + """Find the natural frequency based on the lowest magnitude impedance. + + Parameters + ---------- + impedance: DataArray + Complex intrinsic impedance matrix produced by + :py:func:`wecopttool.hydrodynamic_impedance`. + Dimensions: omega, radiating_dofs, influenced_dofs + + + """ + radiating_dofs = impedance.radiating_dof.values + influenced_dofs = impedance.influenced_dof.values + mag = 20.0 * np.log10(np.abs(impedance)) + phase = np.rad2deg(np.unwrap(np.angle(impedance))) + freq = impedance.omega.values #TODO: freq units?! + fig, axes = plt.subplots(2*len(radiating_dofs), len(influenced_dofs), + tight_layout=True, sharex=True, + figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), squeeze=False) + fig.suptitle('Impedance Bode Plots \n Mag (dB), Phase (deg)', fontweight='bold') + + sp_idx = 0 + for i, rdof in enumerate(radiating_dofs): + for j, idof in enumerate(influenced_dofs): + sp_idx += 1 + axes[2*i, j].semilogx(freq, mag[i, j, :]) # Bode magnitude plot + axes[2*i+1, j].semilogx(freq, phase[i, j, :]) # Bode phase plot + axes[2*i, j].grid(True, which = 'both') + axes[2*i+1, j].grid(True, which = 'both') + + if i == len(radiating_dofs)-1: + axes[2*i+1, j].set_xlabel(f'Frequency (Hz)', fontsize=10) + else: + axes[i, j].set_xlabel('') + if j == 0: + axes[2*i, j].set_ylabel(f'{rdof} \n Mag. (dB)', fontsize=10) + axes[2*i+1, j].set_ylabel(f'Phase. (deg)', fontsize=10) + else: + axes[i, j].set_ylabel('') + if i == 0: + axes[i, j].set_title(f'{idof}', fontsize=10) + else: + axes[i, j].set_title('') From ab43675f7ca0955fc0cad999675387cf5313e41f Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Thu, 29 Jun 2023 11:26:56 -0700 Subject: [PATCH 05/20] latest version before draft pr --- wecopttool/utilities.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/wecopttool/utilities.py b/wecopttool/utilities.py index 1e908d66..72ec6e73 100644 --- a/wecopttool/utilities.py +++ b/wecopttool/utilities.py @@ -51,14 +51,15 @@ def natural_frequency(impedance: DataArray, freq: ArrayLike Index of natural frequencies. """ - #TODO: Only calculate for the dofs that have natural restoring force, - #heave, roll, pitch, but issue is that dofs might not necessairly be called\ - # 'Heave', 'Roll', 'Pitch', otherwise can print warning that results for other dofs are meaningless - - ind = np.diag(np.abs(impedance).argmin(dim = 'omega')) - f_n = freq[ind] - - return f_n, ind + restoring_dofs = ['Heave','Roll','Pitch'] + indeces = [np.abs(impedance.loc[rdof,idof]).argmin(dim = 'omega') + for rdof in impedance.radiating_dof + for idof in impedance.influenced_dof + if rdof == idof #considering modes to be independent + and any([df in str(rdof.values) for df in restoring_dofs])] + f_n = [freq[indx.values] for indx in indeces] + + return f_n, indeces def plot_hydrodynamic_coefficients(bem_data): From 08103cad773af2f41cff9fecd467a6e41bf593ea Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Thu, 6 Jul 2023 10:52:55 -0700 Subject: [PATCH 06/20] adding zero freq function --- wecopttool/utilities.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/wecopttool/utilities.py b/wecopttool/utilities.py index 72ec6e73..6fa3ed26 100644 --- a/wecopttool/utilities.py +++ b/wecopttool/utilities.py @@ -9,7 +9,8 @@ "intrinsic_impedance" "natural_frequency", "plot_bem_results", - "plot_bode_intrinsic_impedance" + "plot_bode_intrinsic_impedance", + "add_zerofreq_to_xr" ] @@ -21,7 +22,7 @@ from xarray import DataArray from numpy.typing import ArrayLike # from autograd.numpy import ndarray -from xarray import DataArray, Dataset +from xarray import DataArray, concat import matplotlib.pyplot as plt # from wecopttool.core import linear_hydrodynamics @@ -138,8 +139,8 @@ def plot_hydrodynamic_coefficients(bem_data): fig_ex.legend(ex_handles, ex_labels, loc=(0.08, 0), ncol=2, frameon=False) -def plot_bode_intrinsic_impedance(impedance: DataArray): - """Find the natural frequency based on the lowest magnitude impedance. +def plot_bode_impedance(impedance: DataArray, title: str): + """Plot Bode graph from wecoptool impedance data array. Parameters ---------- @@ -154,11 +155,11 @@ def plot_bode_intrinsic_impedance(impedance: DataArray): influenced_dofs = impedance.influenced_dof.values mag = 20.0 * np.log10(np.abs(impedance)) phase = np.rad2deg(np.unwrap(np.angle(impedance))) - freq = impedance.omega.values #TODO: freq units?! + freq = impedance.omega.values/2/np.pi fig, axes = plt.subplots(2*len(radiating_dofs), len(influenced_dofs), tight_layout=True, sharex=True, figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), squeeze=False) - fig.suptitle('Impedance Bode Plots \n Mag (dB), Phase (deg)', fontweight='bold') + fig.suptitle(title + ' Bode Plots \n Mag (dB), Phase (deg)', fontweight='bold') sp_idx = 0 for i, rdof in enumerate(radiating_dofs): @@ -182,3 +183,13 @@ def plot_bode_intrinsic_impedance(impedance: DataArray): axes[i, j].set_title(f'{idof}', fontsize=10) else: axes[i, j].set_title('') + +def add_zerofreq_to_xr(data): + """Add a zero-frequency component to an :python:`xarray.Dataset`. + Frequency variable must be called :python:`omega`. """ + if not np.isclose(data.coords['omega'][0].values, 0): + tmp = data.isel(omega=0).copy(deep=True) * 0 + tmp['omega'] = tmp['omega'] * 0 + data = concat([tmp, data], dim='omega') + return data + From 9dfa37a91b19de80cb0302b1f21afc82a233f59b Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Wed, 2 Aug 2023 13:29:42 -0700 Subject: [PATCH 07/20] changes to pto.py that Im unaware what they were --- wecopttool/pto.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wecopttool/pto.py b/wecopttool/pto.py index 2d6ba3e0..a73bbc7c 100644 --- a/wecopttool/pto.py +++ b/wecopttool/pto.py @@ -60,7 +60,7 @@ def __init__(self, loss: Optional[TLOSS] = None, names: Optional[list[str]] = None, ) -> None: - """Create a PTO object. + """Create a PTO object The :py:class:`wecopttool.pto.PTO` class describes the kinematics, control logic, impedance and/or non-linear power From 7d12b97c823c3937a280b99f76fc9be140460c14 Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Tue, 24 Oct 2023 22:13:29 -0700 Subject: [PATCH 08/20] slight updates --- examples/tutorial_1_WaveBot.ipynb | 686 +++++++++++++++++++++++++++++- wecopttool/utilities.py | 16 +- 2 files changed, 691 insertions(+), 11 deletions(-) diff --git a/examples/tutorial_1_WaveBot.ipynb b/examples/tutorial_1_WaveBot.ipynb index 34c0cd99..c4029aa0 100644 --- a/examples/tutorial_1_WaveBot.ipynb +++ b/examples/tutorial_1_WaveBot.ipynb @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -85,7 +85,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -108,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -128,9 +128,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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s6jMecnJyZGHR8mvfU9PT0n/dyXCtFw1cru2uzLl8d133zVSUlKM6dOnG/7+/saRI0cMwzCM2bNnGzExMcXtr0ytnzFjhpGSkmK8++67TK13koqem48//tjw8vIy3nzzTSM9Pb3459y5c656CbVSRc/LLzGbzHkqem7Onz9vtGzZ0rj77ruNH374wdi4caPRoUMH449//KOrXkKtVNHz8v777xteXl7GW2+9ZRw8eNDYvHmz0adPH6Nfv36uegk1BmHIid58802jdevWho+Pj9GrVy9j48aNxb+77777jFtvvbVE+2+//dbo2bOn4ePjY4SGhhp//etfq7li86jIubn11lsNSVf93HfffdVfeC1X0ffMzxGGnKui5yY1NdUYMmSIUadOHaNly5ZGbGyskZOTU81V134VPS+LFi0yunTpYtSpU8cIDg42fvvb3xppaWnVXHXNw1PrAQCAqTFmCAAAmBphCAAAmBphCAAAmBphCAAAmBphCAAAmBphCAAAmBphCAAAmBphCAAAmBphCECtMHHiRI0ePbp4efDgwZo+fbpTj2exWGSxWLR69eob2tecOXOK97Vw4cIqqQ9A+RGGAFSbnwcILy8vtWrVSg899JDOnj1b5cdauXKlnnvuuSrf789FRUUpPT1dw4cPv6H9zJw5U+np6TzEFHARL1cXAMBcoqKi9P7776uwsFApKSm6//77de7cOX3yySdVepxGjRpV6f5K4+vrq2bNmt3wfurVq6d69eoVP0EcQPWiZwhAtboSIFq2bKmhQ4cqOjpaX331VfHvi4qK9MADD6hNmzaqU6eOOnXqpNdee63EPoqKihQbG6sGDRqocePGeuyxx/TLxyz+8jJZaZezGjRooA8++ECSlJ+frylTpig4OFh+fn4KDQ1VfHx8hV7bkSNHZLFYtGzZMt18882qU6eO+vbtq/379+u7775Tnz59VK9ePUVFRSkzM7NC+wbgPIQhAC5z6NAhJSYmytvbu3idw+FQy5YttWzZMqWkpOjpp5/W448/rmXLlhW3eeWVV/Tee+/p3Xff1ebNm3XmzBmtWrXqhmpZtGiR1qxZo2XLlmnfvn366KOPFBoaWql9PfPMM3ryySf1/fffy8vLS/fee68ee+wxvfbaa9q0aZMOHjyop59++obqBVB1uEwGoFp98cUXqlevnoqKipSbmytJevXVV4t/7+3trblz5xYvt2nTRlu2bNGyZcs0btw4SdLChQsVFxenu+66S5K0ePFirV+//obqOnbsmDp06KCbbrpJFotFrVu3rvS+Zs6cqWHDhkmSpk2bpnvvvVf/+te/NGjQIEnSAw88UNwjBcD16BkCUK1uu+022Ww2bdu2TY888oiGDRumRx55pESbxYsXq0+fPmrSpInq1aunJUuW6NixY5Iku92u9PR0RUZGFrf38vJSnz59bqiuiRMnymazqVOnTpo6dWqJS3cVFR4eXvzvpk2bSpK6d+9eYt2pU6cqXyyAKkUYAlCt/P391b59e4WHh2vRokXKy8sr0RO0bNkyzZgxQ/fff7+++uor2Ww2/eEPf1B+fv4NHddisVw1rqigoKD437169dLhw4f13HPP6dKlSxo3bpzuvvvuSh3r55f9LBZLqescDkel9g2g6hGGALjUM888o/nz5+vEiROSpE2bNmngwIF6+OGH1bNnT7Vv314HDx4sbm+1WhUcHKykpKTidYWFhdq5c2eZx2nSpInS09OLlw8cOKCcnJwSbQICAhQdHa0lS5YoISFBn332mc6cOVMVLxNADcaYIQAuNXjwYHXt2lUvvvii3njjDbVv317/+Mc/tH79erVp00YffvihvvvuO7Vp06Z4m2nTpmnevHnq0KGDwsLC9Oqrr+rcuXNlHuf222/XG2+8oQEDBsjhcOjPf/5zid6aBQsWKDg4WBEREfLw8NDy5cvVrFkzNWjQwEmvHEBNQc8QAJeLjY3VkiVLdPz4cU2ePFljx45VdHS0+vfvr9OnT+vhhx8u0f7RRx/V73//e02cOFGRkZGqX7++xowZU+YxXnnlFYWEhOiWW27RhAkTNHPmTNWtW7f49/Xq1dNf/vIX9enTR3379tWRI0e0bt06eXjwMQnUdhbjlxfRAQDXNXHiRJ07d+6GH8Xxc6GhoZo+fbpTHyMC4Gr8Lw8AVNKV2wR88cUXN7SfF198UfXq1SueMQegetEzBACVcOrUKWVnZ0uSgoOD5e/vX+l9nTlzpnigdpMmTWS1WqukRgDlQxgCAACmxmUyAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgav8f9dJcO+Bw/hIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fb.show_matplotlib()\n", "_ = wb.plot_cross_section(show=True) # specific to WaveBot" @@ -150,9 +171,160 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=8.796, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=7.97e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=9.111, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=7.43e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=9.425, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.94e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=9.739, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.50e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=10.053, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.10e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=10.367, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.73e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=10.681, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.40e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=10.996, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.10e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=11.310, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.82e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=11.624, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.56e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=11.938, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.32e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=12.252, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.11e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=12.566, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.90e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=12.881, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.72e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=13.195, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.54e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=13.509, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.38e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=13.823, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.23e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=14.137, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.08e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=14.451, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.95e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=14.765, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.83e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=15.080, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.71e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=15.394, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.60e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=15.708, depth=inf, wave_direction=0.000, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.50e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=8.796, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=7.97e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=9.111, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=7.43e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=9.425, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.94e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=9.739, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.50e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=10.053, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.10e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=10.367, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.73e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=10.681, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.40e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=10.996, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.10e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=11.310, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.82e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=11.624, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.56e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=11.938, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.32e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=12.252, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.11e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=12.566, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.90e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=12.881, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.72e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=13.195, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.54e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=13.509, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.38e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=13.823, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.23e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=14.137, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.08e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=14.451, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.95e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=14.765, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.83e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=15.080, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.71e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=15.394, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.60e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", + "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=15.708, depth=inf, radiating_dof=Heave, rho=1025.0):\n", + "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.50e-01.\n", + "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n" + ] + } + ], "source": [ "f1 = 0.05\n", "nfreq = 50\n", @@ -161,6 +333,506 @@ "bem_data = wot.run_bem(fb, freq)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "XX TODO: Illustration if intrinsic impedance" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:wecopttool.core:Linear damping for DOF \"Heave\" has negative or close to zero terms. Shifting up via linear friction of 44.31820709090029 N/(m/s).\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.7150000000000001, \n", + "array(1890.73905495)\n", + "Coordinates:\n", + " g float64 9.81\n", + " rho float64 1.025e+03\n", + " body_name " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "hd = wot.linear_hydrodynamics(bem_data, mass, stiffness)\n", + "hd = wot.check_linear_damping(hd)\n", + "intrinsic_impedance = wot.hydrodynamic_impedance(hd)\n", + "fig, axes = wot.utilities.plot_bode_impedance(intrinsic_impedance,'WaveBot Intrinsic Impedance',True)\n", + "natural_freq, _ = wot.utilities.natural_frequency(intrinsic_impedance, freq)\n", + "axes[0,0].axvline(natural_freq,color = 'k', linestyle = ':')\n", + "axes[0,0].text(x=natural_freq[0]*1.1, y =np.min(abs(intrinsic_impedance))*1.2, s = f'f_n = {natural_freq[0]}')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[\n", + " array(12)\n", + " Coordinates:\n", + " g float64 9.81\n", + " rho float64 1.025e+03\n", + " body_name \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray (radiating_dof: 1, influenced_dof: 1)>\n",
+       "array([[12]], dtype=int64)\n",
+       "Coordinates:\n",
+       "    g               float64 9.81\n",
+       "    rho             float64 1.025e+03\n",
+       "    body_name       <U16 'WaveBot_immersed'\n",
+       "    water_depth     float64 inf\n",
+       "  * radiating_dof   (radiating_dof) object 'Heave'\n",
+       "  * influenced_dof  (influenced_dof) object 'Heave'
" + ], + "text/plain": [ + "\n", + "array([[12]], dtype=int64)\n", + "Coordinates:\n", + " g float64 9.81\n", + " rho float64 1.025e+03\n", + " body_name tuple[ArrayLike, int]: - """Find the natural frequency based on the lowest magnitude impedance. + """Find the natural frequency based on the lowest magnitude impedance, + for restoring degrees of freedom (Heave, Roll, Pitch). Parameters ---------- @@ -139,7 +140,10 @@ def plot_hydrodynamic_coefficients(bem_data): fig_ex.legend(ex_handles, ex_labels, loc=(0.08, 0), ncol=2, frameon=False) -def plot_bode_impedance(impedance: DataArray, title: str): +def plot_bode_impedance(impedance: DataArray, + title: Optional[str]= None, + plot_natural_freq: Optional[bool] = False, +): """Plot Bode graph from wecoptool impedance data array. Parameters @@ -159,7 +163,8 @@ def plot_bode_impedance(impedance: DataArray, title: str): fig, axes = plt.subplots(2*len(radiating_dofs), len(influenced_dofs), tight_layout=True, sharex=True, figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), squeeze=False) - fig.suptitle(title + ' Bode Plots \n Mag (dB), Phase (deg)', fontweight='bold') + fig.suptitle(title + ' Bode Plots', fontweight='bold') + fn, fn_indx = natural_frequency(impedance=impedance,freq=freq) sp_idx = 0 for i, rdof in enumerate(radiating_dofs): @@ -169,7 +174,9 @@ def plot_bode_impedance(impedance: DataArray, title: str): axes[2*i+1, j].semilogx(freq, phase[i, j, :]) # Bode phase plot axes[2*i, j].grid(True, which = 'both') axes[2*i+1, j].grid(True, which = 'both') - + # if i == j and plot_natural_freq: + # axes[2*i, j].axvline(freq[fn_indx.sel(radiating_dofs=rdof, + # influenced_dofs=idof)]) if i == len(radiating_dofs)-1: axes[2*i+1, j].set_xlabel(f'Frequency (Hz)', fontsize=10) else: @@ -183,6 +190,7 @@ def plot_bode_impedance(impedance: DataArray, title: str): axes[i, j].set_title(f'{idof}', fontsize=10) else: axes[i, j].set_title('') + return fig, axes def add_zerofreq_to_xr(data): """Add a zero-frequency component to an :python:`xarray.Dataset`. From a5c743a9df0d32974bde45f2a686de8d9fea9e8b Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:44:32 -0700 Subject: [PATCH 09/20] Drafted calculation of power flows and visualization with sankey diagram --- wecopttool/utilities.py | 117 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/wecopttool/utilities.py b/wecopttool/utilities.py index fee8ae7c..fee49c5a 100644 --- a/wecopttool/utilities.py +++ b/wecopttool/utilities.py @@ -24,6 +24,7 @@ # from autograd.numpy import ndarray from xarray import DataArray, concat import matplotlib.pyplot as plt +from matplotlib.sankey import Sankey # from wecopttool.core import linear_hydrodynamics @@ -201,3 +202,119 @@ def add_zerofreq_to_xr(data): data = concat([tmp, data], dim='omega') return data + +def calculate_power_flows(wec, pto, results, waves, intrinsic_impedance): + wec_fdom, _ = wec.post_process(results, waves) + x_wec, x_opt = wec.decompose_state(results.x) + + #power quntities from solver + P_mech = pto.mechanical_average_power(wec, x_wec, x_opt, waves) + P_elec = pto.average_power(wec, x_wec, x_opt, waves) + + #compute analytical power flows + Fex_FD = wec_fdom.force.sel(type=['Froude_Krylov', 'diffraction']).sum('type') + Rad_res = np.real(intrinsic_impedance.squeeze()) + Vel_FD = wec_fdom.vel + + P_max, P_e, P_r = [], [], [] + + #This solution only works if the radiation resistance matrix Rad_res is invertible + # TODO In the future we might want to add an entirely unconstrained solve for optimized mechanical power + for om in Rad_res.omega.values: #use frequency vector from intrinsic impedance because it does not contain zero freq + #Eq. 6.69 + Fe_FD_t = np.atleast_2d(Fex_FD.sel(omega = om)) #Dofs are row vector, which is transposed in standard convention + Fe_FD = np.transpose(Fe_FD_t) + R_inv = np.linalg.inv(np.atleast_2d(Rad_res.sel(omega= om))) + P_max.append((1/8)*(Fe_FD_t@R_inv)@np.conj(Fe_FD)) + #Eq.6.57 + U_FD_t = np.atleast_2d(Vel_FD.sel(omega = om)) + U_FD = np.transpose(U_FD_t) + R = np.atleast_2d(Rad_res.sel(omega= om)) + P_r.append((1/2)*(U_FD_t@R)@np.conj(U_FD)) + #Eq. 6.56 (replaced pinv(Fe)*U with U'*conj(Fe) as suggested in subsequent paragraph) + P_e.append((1/4)*(Fe_FD_t@np.conj(U_FD) + U_FD_t@np.conj(Fe_FD))) + + power_flows = {'Optimal Excitation' : 2* np.sum(np.real(P_max)), #6.68 positive because the only inflow + 'Radiated': -1*np.sum(np.real(P_r)), #negative because "out"flow + 'Actual Excitation': -1*np.sum(np.real(P_e)), #negative because "out"flow + 'Electrical (solver)': P_elec, #solver determins sign + 'Mechanical (solver)': P_mech, #solver determins sign + } + + power_flows['Absorbed'] = power_flows['Actual Excitation'] - power_flows['Radiated'] + power_flows['Unused Potential'] = -1*power_flows['Optimal Excitation'] - power_flows['Actual Excitation'] + power_flows['PTO Loss'] = power_flows['Mechanical (solver)'] - power_flows['Electrical (solver)'] + + return power_flows + + +def plot_power_flow(power_flows): + fig = plt.figure(figsize = [8,4]) + ax = fig.add_subplot(1, 1, 1,) + plt.viridis() + sankey = Sankey(ax=ax, + scale= 1/power_flows['Optimal Excitation'], + offset= 0, + format = '%.1f', + shoulder = 0.02, + tolerance=1e-03*power_flows['Optimal Excitation'], + unit = 'W' + ) + + sankey.add(flows=[power_flows['Optimal Excitation'], + power_flows['Unused Potential'], + power_flows['Actual Excitation']], + labels = ['Optimal Excitation', + 'Unused Potential ', + 'Excited'], + orientations=[0, -1, -0],#arrow directions, + pathlengths = [0.2,0.3,0.2], + trunklength = 1.0, + edgecolor = 'None', + facecolor = (0.253935, 0.265254, 0.529983, 1.0) #viridis(0.2) + ) + + sankey.add(flows=[-1*(power_flows['Absorbed'] + power_flows['Radiated']), + power_flows['Radiated'], + power_flows['Absorbed'], + ], + labels = ['Excited', + 'Radiated', + ''], + prior= (0), + connect=(2,0), + orientations=[0, -1, -0],#arrow directions, + pathlengths = [0.2,0.3,0.2], + trunklength = 1.0, + edgecolor = 'None', + facecolor = (0.127568, 0.566949, 0.550556, 1.0) #viridis (0.5) + ) + + sankey.add(flows=[-1*(power_flows['Mechanical (solver)']), + power_flows['PTO Loss'], + power_flows['Electrical (solver)'], + ], + labels = ['Mechanical', + 'PTO-Loss' , + 'Electrical'], + prior= (1), + connect=(2,0), + orientations=[0, -1, -0],#arrow directions, + pathlengths = [.2,0.3,0.2], + trunklength = 1.0, + edgecolor = 'None', + facecolor = (0.741388, 0.873449, 0.149561, 1.0) #viridis(0.9) + ) + + + diagrams = sankey.finish() + for diagram in diagrams: + for text in diagram.texts: + text.set_fontsize(10) + #remove text label from last entries + for diagram in diagrams[0:2]: + diagram.texts[2].set_text('') + + + plt.axis("off") + plt.show() From dadb917f378c09eeb37c8532a080f3101581f76b Mon Sep 17 00:00:00 2001 From: dtgaebe <86246113+dtgaebe@users.noreply.github.com> Date: Tue, 31 Oct 2023 13:06:55 -0700 Subject: [PATCH 10/20] Added intrinsic impedance bode plot and sankey diagrams --- examples/tutorial_1_WaveBot.ipynb | 738 +++--------------------------- 1 file changed, 76 insertions(+), 662 deletions(-) diff --git a/examples/tutorial_1_WaveBot.ipynb b/examples/tutorial_1_WaveBot.ipynb index c4029aa0..066d84e0 100644 --- a/examples/tutorial_1_WaveBot.ipynb +++ b/examples/tutorial_1_WaveBot.ipynb @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -85,7 +85,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -108,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -128,30 +128,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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s6jMecnJyZGHR8mvfU9PT0n/dyXCtFw1cru2uzLl8d133zVSUlKM6dOnG/7+/saRI0cMwzCM2bNnGzExMcXtr0ytnzFjhpGSkmK8++67TK13koqem48//tjw8vIy3nzzTSM9Pb3459y5c656CbVSRc/LLzGbzHkqem7Onz9vtGzZ0rj77ruNH374wdi4caPRoUMH449//KOrXkKtVNHz8v777xteXl7GW2+9ZRw8eNDYvHmz0adPH6Nfv36uegk1BmHIid58802jdevWho+Pj9GrVy9j48aNxb+77777jFtvvbVE+2+//dbo2bOn4ePjY4SGhhp//etfq7li86jIubn11lsNSVf93HfffdVfeC1X0ffMzxGGnKui5yY1NdUYMmSIUadOHaNly5ZGbGyskZOTU81V134VPS+LFi0yunTpYtSpU8cIDg42fvvb3xppaWnVXHXNw1PrAQCAqTFmCAAAmBphCAAAmBphCAAAmBphCAAAmBphCAAAmBphCAAAmBphCAAAmBphCAAAmBphCECtMHHiRI0ePbp4efDgwZo+fbpTj2exWGSxWLR69eob2tecOXOK97Vw4cIqqQ9A+RGGAFSbnwcILy8vtWrVSg899JDOnj1b5cdauXKlnnvuuSrf789FRUUpPT1dw4cPv6H9zJw5U+np6TzEFHARL1cXAMBcoqKi9P7776uwsFApKSm6//77de7cOX3yySdVepxGjRpV6f5K4+vrq2bNmt3wfurVq6d69eoVP0EcQPWiZwhAtboSIFq2bKmhQ4cqOjpaX331VfHvi4qK9MADD6hNmzaqU6eOOnXqpNdee63EPoqKihQbG6sGDRqocePGeuyxx/TLxyz+8jJZaZezGjRooA8++ECSlJ+frylTpig4OFh+fn4KDQ1VfHx8hV7bkSNHZLFYtGzZMt18882qU6eO+vbtq/379+u7775Tnz59VK9ePUVFRSkzM7NC+wbgPIQhAC5z6NAhJSYmytvbu3idw+FQy5YttWzZMqWkpOjpp5/W448/rmXLlhW3eeWVV/Tee+/p3Xff1ebNm3XmzBmtWrXqhmpZtGiR1qxZo2XLlmnfvn366KOPFBoaWql9PfPMM3ryySf1/fffy8vLS/fee68ee+wxvfbaa9q0aZMOHjyop59++obqBVB1uEwGoFp98cUXqlevnoqKipSbmytJevXVV4t/7+3trblz5xYvt2nTRlu2bNGyZcs0btw4SdLChQsVFxenu+66S5K0ePFirV+//obqOnbsmDp06KCbbrpJFotFrVu3rvS+Zs6cqWHDhkmSpk2bpnvvvVf/+te/NGjQIEnSAw88UNwjBcD16BkCUK1uu+022Ww2bdu2TY888oiGDRumRx55pESbxYsXq0+fPmrSpInq1aunJUuW6NixY5Iku92u9PR0RUZGFrf38vJSnz59bqiuiRMnymazqVOnTpo6dWqJS3cVFR4eXvzvpk2bSpK6d+9eYt2pU6cqXyyAKkUYAlCt/P391b59e4WHh2vRokXKy8sr0RO0bNkyzZgxQ/fff7+++uor2Ww2/eEPf1B+fv4NHddisVw1rqigoKD437169dLhw4f13HPP6dKlSxo3bpzuvvvuSh3r55f9LBZLqescDkel9g2g6hGGALjUM888o/nz5+vEiROSpE2bNmngwIF6+OGH1bNnT7Vv314HDx4sbm+1WhUcHKykpKTidYWFhdq5c2eZx2nSpInS09OLlw8cOKCcnJwSbQICAhQdHa0lS5YoISFBn332mc6cOVMVLxNADcaYIQAuNXjwYHXt2lUvvvii3njjDbVv317/+Mc/tH79erVp00YffvihvvvuO7Vp06Z4m2nTpmnevHnq0KGDwsLC9Oqrr+rcuXNlHuf222/XG2+8oQEDBsjhcOjPf/5zid6aBQsWKDg4WBEREfLw8NDy5cvVrFkzNWjQwEmvHEBNQc8QAJeLjY3VkiVLdPz4cU2ePFljx45VdHS0+vfvr9OnT+vhhx8u0f7RRx/V73//e02cOFGRkZGqX7++xowZU+YxXnnlFYWEhOiWW27RhAkTNHPmTNWtW7f49/Xq1dNf/vIX9enTR3379tWRI0e0bt06eXjwMQnUdhbjlxfRAQDXNXHiRJ07d+6GH8Xxc6GhoZo+fbpTHyMC4Gr8Lw8AVNKV2wR88cUXN7SfF198UfXq1SueMQegetEzBACVcOrUKWVnZ0uSgoOD5e/vX+l9nTlzpnigdpMmTWS1WqukRgDlQxgCAACmxmUyAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgaoQhAABgav8f9dJcO+Bw/hIAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fb.show_matplotlib()\n", "_ = wb.plot_cross_section(show=True) # specific to WaveBot" @@ -171,160 +150,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=8.796, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=7.97e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=9.111, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=7.43e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=9.425, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.94e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=9.739, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.50e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=10.053, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.10e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=10.367, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.73e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=10.681, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.40e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=10.996, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.10e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=11.310, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.82e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=11.624, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.56e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=11.938, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.32e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=12.252, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.11e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=12.566, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.90e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=12.881, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.72e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=13.195, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.54e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=13.509, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.38e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=13.823, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.23e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=14.137, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.08e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=14.451, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.95e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=14.765, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.83e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=15.080, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.71e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=15.394, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.60e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for DiffractionProblem(body=WaveBot_immersed, omega=15.708, depth=inf, wave_direction=0.000, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.50e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=8.796, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=7.97e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=9.111, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=7.43e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=9.425, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.94e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=9.739, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.50e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=10.053, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=6.10e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=10.367, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.73e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=10.681, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.40e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=10.996, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=5.10e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=11.310, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.82e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=11.624, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.56e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=11.938, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.32e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=12.252, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=4.11e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=12.566, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.90e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=12.881, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.72e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=13.195, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.54e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=13.509, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.38e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=13.823, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.23e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=14.137, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=3.08e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=14.451, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.95e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=14.765, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.83e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=15.080, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.71e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=15.394, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.60e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n", - "WARNING:capytaine.bem.problems_and_results:Mesh resolution for RadiationProblem(body=WaveBot_immersed, omega=15.708, depth=inf, radiating_dof=Heave, rho=1025.0):\n", - "The resolution of the mesh 'WaveBot' of the body 'WaveBot_immersed' might be insufficient for the wavelength λ=2.50e-01.\n", - "This warning appears because the largest panel of this mesh has radius 1.01e-01 > λ/8.\n" - ] - } - ], + "outputs": [], "source": [ "f1 = 0.05\n", "nfreq = 50\n", @@ -337,58 +165,19 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "XX TODO: Illustration if intrinsic impedance" + "Next, we use the utilities class `wecopttool.utilities`, which has functions that help you analyze and design WECs, but are not needed for the core function of WecOptTool.\n", + "For example, we calculate the WEC's intrinsic impedance with it's hydrodynamic coefficients and inherent inertial properties.\n", + "\n", + "The intrinsic impedance tells us how a hydrodynamic body responds to different excitation frequencies. For oscillating systems we are intersted in both, the amplitude of the resulting velocity as well as the phase between velocity and excitation force. Bode plots are useful tool to visualize the frequency response function.\n", + "\n", + "Lastly, we also calculate the natural frequency of the hydrodynamic body. At this frequency of excitation the floating body would be naturally at resonance. The natural frequency reveals itself as a trough in the intrinsic impedance for restoring degrees of freedom (heave, roll, pitch).\n" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:wecopttool.core:Linear damping for DOF \"Heave\" has negative or close to zero terms. Shifting up via linear friction of 44.31820709090029 N/(m/s).\n" - ] - }, - { - "data": { - "text/plain": [ - "Text(0.7150000000000001, \n", - "array(1890.73905495)\n", - "Coordinates:\n", - " g float64 9.81\n", - " rho float64 1.025e+03\n", - " body_name " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "hd = wot.linear_hydrodynamics(bem_data, mass, stiffness)\n", "hd = wot.check_linear_damping(hd)\n", @@ -396,441 +185,7 @@ "fig, axes = wot.utilities.plot_bode_impedance(intrinsic_impedance,'WaveBot Intrinsic Impedance',True)\n", "natural_freq, _ = wot.utilities.natural_frequency(intrinsic_impedance, freq)\n", "axes[0,0].axvline(natural_freq,color = 'k', linestyle = ':')\n", - "axes[0,0].text(x=natural_freq[0]*1.1, y =np.min(abs(intrinsic_impedance))*1.2, s = f'f_n = {natural_freq[0]}')" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[\n", - " array(12)\n", - " Coordinates:\n", - " g float64 9.81\n", - " rho float64 1.025e+03\n", - " body_name \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.DataArray (radiating_dof: 1, influenced_dof: 1)>\n",
-       "array([[12]], dtype=int64)\n",
-       "Coordinates:\n",
-       "    g               float64 9.81\n",
-       "    rho             float64 1.025e+03\n",
-       "    body_name       <U16 'WaveBot_immersed'\n",
-       "    water_depth     float64 inf\n",
-       "  * radiating_dof   (radiating_dof) object 'Heave'\n",
-       "  * influenced_dof  (influenced_dof) object 'Heave'
" - ], - "text/plain": [ - "\n", - "array([[12]], dtype=int64)\n", - "Coordinates:\n", - " g float64 9.81\n", - " rho float64 1.025e+03\n", - " body_name Date: Wed, 29 Nov 2023 10:35:29 -0800 Subject: [PATCH 11/20] updated to latest wot version and removed natural frequency calc --- examples/tutorial_1_WaveBot.ipynb | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/examples/tutorial_1_WaveBot.ipynb b/examples/tutorial_1_WaveBot.ipynb index 9ab640cb..a1141b60 100644 --- a/examples/tutorial_1_WaveBot.ipynb +++ b/examples/tutorial_1_WaveBot.ipynb @@ -173,7 +173,7 @@ "\n", "The intrinsic impedance tells us how a hydrodynamic body responds to different excitation frequencies. For oscillating systems we are intersted in both, the amplitude of the resulting velocity as well as the phase between velocity and excitation force. Bode plots are useful tool to visualize the frequency response function.\n", "\n", - "Lastly, we also calculate the natural frequency of the hydrodynamic body. At this frequency of excitation the floating body would be naturally at resonance. The natural frequency reveals itself as a trough in the intrinsic impedance for restoring degrees of freedom (heave, roll, pitch).\n" + "The natural frequency reveals itself as a trough in the intrinsic impedance for restoring degrees of freedom (heave, roll, pitch).\n" ] }, { @@ -182,13 +182,11 @@ "metadata": {}, "outputs": [], "source": [ - "hd = wot.linear_hydrodynamics(bem_data, mass, stiffness)\n", + "hd = wot.add_linear_friction(bem_data, friction = None) #we're not actually adding friction\n", "hd = wot.check_linear_damping(hd)\n", + "\n", "intrinsic_impedance = wot.hydrodynamic_impedance(hd)\n", - "fig, axes = wot.utilities.plot_bode_impedance(intrinsic_impedance,'WaveBot Intrinsic Impedance',True)\n", - "natural_freq, _ = wot.utilities.natural_frequency(intrinsic_impedance, freq)\n", - "axes[0,0].axvline(natural_freq,color = 'k', linestyle = ':')\n", - "axes[0,0].text(x=natural_freq[0]*1.1, y =axes[0,0].get_ylim()[1]*0.9, s = f'$f_n$ = {natural_freq[0]} Hz')" + "fig, axes = wot.utilities.plot_bode_impedance(intrinsic_impedance,'WaveBot Intrinsic Impedance',True)" ] }, { @@ -951,7 +949,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.6" }, "vscode": { "interpreter": { From 13346699bdaa9b6be96b0c6189cc23ce5514ff42 Mon Sep 17 00:00:00 2001 From: dtgaebe Date: Wed, 29 Nov 2023 10:41:47 -0800 Subject: [PATCH 12/20] Added bem plot function from utilities --- examples/tutorial_2_AquaHarmonics.ipynb | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/examples/tutorial_2_AquaHarmonics.ipynb b/examples/tutorial_2_AquaHarmonics.ipynb index 36a95c44..275c9ad7 100644 --- a/examples/tutorial_2_AquaHarmonics.ipynb +++ b/examples/tutorial_2_AquaHarmonics.ipynb @@ -143,23 +143,7 @@ "metadata": {}, "outputs": [], "source": [ - "fig, axes = plt.subplots(3,1)\n", - "bem_data['added_mass'].plot(ax = axes[0])\n", - "bem_data['radiation_damping'].plot(ax = axes[1])\n", - "axes[2].plot(bem_data['omega'],np.abs(np.squeeze(bem_data['diffraction_force'].values)), color = 'orange')\n", - "axes[2].set_ylabel('abs(diffraction_force)', color = 'orange')\n", - "axes[2].tick_params(axis ='y', labelcolor = 'orange')\n", - "ax2r = axes[2].twinx()\n", - "ax2r.plot(bem_data['omega'], np.abs(np.squeeze(bem_data['Froude_Krylov_force'].values)), color = 'blue')\n", - "ax2r.set_ylabel('abs(FK_force)', color = 'blue')\n", - "ax2r.tick_params(axis ='y', labelcolor = 'blue')\n", - "\n", - "for axi in axes:\n", - " axi.set_title('')\n", - " axi.label_outer()\n", - " axi.grid()\n", - " \n", - "axes[-1].set_xlabel('Frequency [rad/s]')" + "wot.utilities.plot_hydrodynamic_coefficients(bem_data)" ] }, { @@ -915,7 +899,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.6" }, "vscode": { "interpreter": { From 39b58292ebf8695b62a81c6210365906249f7aa3 Mon Sep 17 00:00:00 2001 From: dtgaebe Date: Wed, 29 Nov 2023 10:51:41 -0800 Subject: [PATCH 13/20] replaced bem plot code with utilities function --- examples/tutorial_3_LUPA.ipynb | 63 ++-------------------------------- 1 file changed, 3 insertions(+), 60 deletions(-) diff --git a/examples/tutorial_3_LUPA.ipynb b/examples/tutorial_3_LUPA.ipynb index 10c9dc55..832acb2e 100644 --- a/examples/tutorial_3_LUPA.ipynb +++ b/examples/tutorial_3_LUPA.ipynb @@ -380,65 +380,7 @@ "metadata": {}, "outputs": [], "source": [ - "# plot coefficients\n", - "radiating_dofs = bem_data.radiating_dof.values\n", - "influenced_dofs = bem_data.influenced_dof.values\n", - "\n", - "# plots\n", - "fig_am, ax_am = plt.subplots(len(radiating_dofs), len(influenced_dofs),\n", - " tight_layout=True, sharex=True)\n", - "fig_rd, ax_rd = plt.subplots(len(radiating_dofs), len(influenced_dofs),\n", - " tight_layout=True, sharex=True)\n", - "fig_ex, ax_ex = plt.subplots(len(influenced_dofs), 1,\n", - " tight_layout=True, sharex=True, figsize=(4, 6))\n", - "\n", - "# plot titles\n", - "fig_am.suptitle('Added Mass Coefficients', fontweight='bold')\n", - "fig_rd.suptitle('Radiation Damping Coefficients', fontweight='bold')\n", - "fig_ex.suptitle('Wave Excitation Coefficients', fontweight='bold')\n", - "\n", - "# subplotting across 4DOF\n", - "sp_idx = 0\n", - "for i, rdof in enumerate(radiating_dofs):\n", - " for j, idof in enumerate(influenced_dofs):\n", - " sp_idx += 1\n", - " if i == 0:\n", - " np.abs(bem_data.diffraction_force.sel(influenced_dof=idof)).plot(\n", - " ax=ax_ex[j], linestyle='dashed', label='Diffraction force')\n", - " np.abs(bem_data.Froude_Krylov_force.sel(influenced_dof=idof)).plot(\n", - " ax=ax_ex[j], linestyle='dashdot', label='Froude-Krylov force')\n", - " ex_handles, ex_labels = ax_ex[j].get_legend_handles_labels()\n", - " ax_ex[j].set_title(f'{idof}')\n", - " ax_ex[j].set_xlabel('')\n", - " ax_ex[j].set_ylabel('')\n", - " if j <= i:\n", - " bem_data.added_mass.sel(\n", - " radiating_dof=rdof, influenced_dof=idof).plot(ax=ax_am[i, j])\n", - " bem_data.radiation_damping.sel(\n", - " radiating_dof=rdof, influenced_dof=idof).plot(ax=ax_rd[i, j])\n", - " if i == len(radiating_dofs)-1:\n", - " ax_am[i, j].set_xlabel(f'$\\omega$', fontsize=10)\n", - " ax_rd[i, j].set_xlabel(f'$\\omega$', fontsize=10)\n", - " ax_ex[j].set_xlabel(f'$\\omega$', fontsize=10)\n", - " else:\n", - " ax_am[i, j].set_xlabel('')\n", - " ax_rd[i, j].set_xlabel('')\n", - " if j == 0:\n", - " ax_am[i, j].set_ylabel(f'{rdof}', fontsize=10)\n", - " ax_rd[i, j].set_ylabel(f'{rdof}', fontsize=10)\n", - " else:\n", - " ax_am[i, j].set_ylabel('')\n", - " ax_rd[i, j].set_ylabel('')\n", - " if j == i:\n", - " ax_am[i, j].set_title(f'{idof}', fontsize=10)\n", - " ax_rd[i, j].set_title(f'{idof}', fontsize=10)\n", - " else:\n", - " ax_am[i, j].set_title('')\n", - " ax_rd[i, j].set_title('')\n", - " else:\n", - " fig_am.delaxes(ax_am[i, j])\n", - " fig_rd.delaxes(ax_rd[i, j])\n", - "fig_ex.legend(ex_handles, ex_labels, loc=(0.08, 0), ncol=2, frameon=False)" + "wot.utilities.plot_hydrodynamic_coefficients(bem_data)" ] }, { @@ -1218,6 +1160,7 @@ "metadata": {}, "outputs": [], "source": [ + "influenced_dofs = bem_data.influenced_dof.values\n", "## Forces\n", "fig_res2, ax_res2 = plt.subplots(len(influenced_dofs), 1, sharex=True, figsize=(8, 10))\n", "for j, idof in enumerate(influenced_dofs):\n", @@ -1475,7 +1418,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.4" + "version": "3.11.6" }, "vscode": { "interpreter": { From 01e1a85f241ff2f7e228115efe12bdde5d35993e Mon Sep 17 00:00:00 2001 From: dtgaebe Date: Wed, 29 Nov 2023 11:30:35 -0800 Subject: [PATCH 14/20] updated the sankey power flow calculation in order to use the utility function --- examples/tutorial_4_Pioneer.ipynb | 53 +++++++++---------------------- 1 file changed, 15 insertions(+), 38 deletions(-) diff --git a/examples/tutorial_4_Pioneer.ipynb b/examples/tutorial_4_Pioneer.ipynb index 0fd03425..e73a3bc6 100644 --- a/examples/tutorial_4_Pioneer.ipynb +++ b/examples/tutorial_4_Pioneer.ipynb @@ -759,17 +759,24 @@ "Vel = wec_fdom.vel\n", "\n", "P_max_absorbable = (np.abs(Fex)**2/(8*Rad_res) ).squeeze().sum('omega').item() # after Falnes Eq. 6.10\n", - "P_opt_excitation = 2*P_max_absorbable # after Falnes Eq. 6.10\n", "P_radiated = ((1/2)*(Rad_res * np.abs(Vel)**2 ).squeeze().sum('omega').item()) # after Falnes Eq. 6.4\n", "P_excited= (1/4)*(Fex*np.conjugate(Vel) + np.conjugate(Fex)*Vel ).squeeze().sum('omega').item() # after Falnes Eq. 6.3\n", - "P_absorbed = P_excited - P_radiated # after Falnes Eq. 6.2 absorbed by WEC-PTO (difference between actual excitation power and actual radiated power needs to be absorbed by PTO)" + "\n", + "power_flows = {'Optimal Excitation' : 2* (np.real(P_max_absorbable)), #positive because the only inflow\n", + " 'Radiated': -1*(np.real(P_radiated)), #negative because \"out\"flow\n", + " 'Actual Excitation': -1*(np.real(P_excited)), #negative because \"out\"flow\n", + "}\n", + "power_flows['Unused Potential'] = -1*power_flows['Optimal Excitation'] - power_flows['Actual Excitation']\n", + "power_flows['Absorbed'] = power_flows['Actual Excitation'] - power_flows['Radiated'] # after Falnes Eq. 6.2 \n", + "#absorbed by WEC-PTO (difference between actual excitation power and actual radiated power needs to be absorbed by PTO)\n", + "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "We also calculate the power dissipated due to flywheel friction and make sure that the absorbed power (calculated as the difference between excited and radiated power) matches the sum of mechanical power captured by the PTO and the power dissipated due to flywheel friction. We use a relative tolerance of 1%." + "We also calculate the power dissipated due to flywheel friction and make sure that the absorbed power (calculated as the difference between excited and radiated power) matches the sum of mechanical power captured by the PTO and the power dissipated due to flywheel friction. The utilities function to plot the Sankey diagram lumps the dissipated power due to flywheel friction into the PTO loss." ] }, { @@ -792,7 +799,9 @@ "fw_fric_power = fw_friction_power(wec, x_wec, x_opt, waves_regular, nsubsteps)\n", "avg_fw_fric_power = np.mean(fw_fric_power)\n", "\n", - "assert(np.isclose(P_absorbed, -1*(avg_mech_power -avg_fw_fric_power), rtol=0.01)) # assert that solver solution matches" + "power_flows['Electrical (solver)']= avg_elec_power #solver determins sign\n", + "power_flows['Mechanical (solver)']= avg_mech_power - avg_fw_fric_power #solver determins sign, friction is dissipated\n", + "power_flows['PTO Loss'] = power_flows['Mechanical (solver)'] - power_flows['Electrical (solver)'] " ] }, { @@ -801,39 +810,7 @@ "metadata": {}, "outputs": [], "source": [ - "from matplotlib.sankey import Sankey\n", - "\n", - "P_PTO_loss = avg_mech_power - avg_elec_power \n", - "P_unused = P_opt_excitation - P_excited # Difference between the theoretical optimum excitation, if the WEC velocity would be in resonance with the excitation force\n", - "\n", - "Power_flows = [P_opt_excitation, P_PTO_loss, -1*avg_fw_fric_power, -1*P_radiated, -1*P_unused, avg_elec_power, ]\n", - "\n", - "fig = plt.figure(figsize = [6,4])\n", - "ax = fig.add_subplot(1, 1, 1,)\n", - "sankey = Sankey(ax=ax, \n", - " scale=0.5/P_max_absorbable,\n", - " offset= 0,\n", - " format = '%.2f W',shoulder = 0.02)\n", - "\n", - "sankey.add(flows=Power_flows, \n", - " labels = ['Optimal Excitation \\n $ 2 \\\\frac{\\left | F_e \\\\right |^2}{8Re(Z_i)} = 2*P_{mech}^{max}$ ', \n", - " 'PTO-Loss \\n $ P_{mech} - P_{elec}$', \n", - " 'Flywheel friction',\n", - " 'Radiated \\n $ \\\\frac{1}{2} Re(Z_i) \\left | U \\\\right |^2 $ ', \n", - " 'Unused Potential \\n(neither absorbed nor radiated)', \n", - " 'Electrical'], \n", - " orientations=[0, -1, -1,-1, -1, 0], # arrow directions\n", - " pathlengths = [0.4,0.2,0.6,0.6,0.7,0.5,],\n", - " trunklength = 1.5,\n", - " edgecolor = '#2b8cbe',\n", - " facecolor = '#2b8cbe' )\n", - "\n", - "diagrams = sankey.finish()\n", - "for diagram in diagrams:\n", - " for text in diagram.texts:\n", - " text.set_fontsize(10);\n", - "plt.axis(\"off\") \n", - "plt.show()" + "wot.utilities.plot_power_flow(power_flows)" ] }, { @@ -972,7 +949,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.6" } }, "nbformat": 4, From d0d6a8431b66f2365a8cf83fb27acb6b05a71a4f Mon Sep 17 00:00:00 2001 From: dtgaebe Date: Thu, 7 Dec 2023 16:05:28 -0800 Subject: [PATCH 15/20] Adjusted tut1 to waves realization notation --- examples/tutorial_1_WaveBot.ipynb | 6 +++--- wecopttool/core.py | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/tutorial_1_WaveBot.ipynb b/examples/tutorial_1_WaveBot.ipynb index 28bb686e..cbea5044 100644 --- a/examples/tutorial_1_WaveBot.ipynb +++ b/examples/tutorial_1_WaveBot.ipynb @@ -468,7 +468,7 @@ "metadata": {}, "outputs": [], "source": [ - "p_flows = wot.utilities.calculate_power_flows(wec, pto, results, waves, intrinsic_impedance)\n", + "p_flows = wot.utilities.calculate_power_flows(wec, pto, results[0], waves.sel(realization=0), intrinsic_impedance)\n", "wot.utilities.plot_power_flow(p_flows)" ] }, @@ -677,7 +677,7 @@ "metadata": {}, "outputs": [], "source": [ - "p_flows_2 = wot.utilities.calculate_power_flows(wec_2, pto_2, results_2, waves, intrinsic_impedance)\n", + "p_flows_2 = wot.utilities.calculate_power_flows(wec_2, pto_2, results_2[0], waves.sel(realization = 0), intrinsic_impedance)\n", "wot.utilities.plot_power_flow(p_flows_2)" ] }, @@ -694,7 +694,7 @@ "metadata": {}, "outputs": [], "source": [ - "p_flows_2_nocon = wot.utilities.calculate_power_flows(wec_2_nocon, pto_2, results_2_nocon, waves, intrinsic_impedance)\n", + "p_flows_2_nocon = wot.utilities.calculate_power_flows(wec_2_nocon, pto_2, results_2_nocon[0], waves.sel(realization = 0), intrinsic_impedance)\n", "wot.utilities.plot_power_flow(p_flows_2_nocon)" ] }, diff --git a/wecopttool/core.py b/wecopttool/core.py index caeebd05..37847cd4 100644 --- a/wecopttool/core.py +++ b/wecopttool/core.py @@ -2270,7 +2270,8 @@ def hydrodynamic_impedance(hydro_data: Dataset) -> Dataset: + hydro_data['added_mass'])*1j*hydro_data['omega'] \ + hydro_data['radiation_damping'] + hydro_data['friction'] \ + hydro_data['hydrostatic_stiffness']/1j/hydro_data['omega'] - return Zi.transpose('omega', 'radiating_dof', 'influenced_dof') + return intrinsic_impedance.transpose('omega', 'radiating_dof', 'influenced_dof') + def atleast_2d(array: ArrayLike) -> ndarray: From a2d6861aeab3f51d90ff5d43633017c3b37294a8 Mon Sep 17 00:00:00 2001 From: dtgaebe Date: Mon, 11 Dec 2023 11:47:29 -0800 Subject: [PATCH 16/20] deleted empty cell --- examples/tutorial_4_Pioneer.ipynb | 7 ------- 1 file changed, 7 deletions(-) diff --git a/examples/tutorial_4_Pioneer.ipynb b/examples/tutorial_4_Pioneer.ipynb index ae548897..455fbedb 100644 --- a/examples/tutorial_4_Pioneer.ipynb +++ b/examples/tutorial_4_Pioneer.ipynb @@ -935,13 +935,6 @@ " axi.label_outer()\n", " axi.autoscale(axis='x', tight=True)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 0eeda29920e75ef606ffd67a7d7a78dad130ef3f Mon Sep 17 00:00:00 2001 From: dtgaebe Date: Mon, 11 Dec 2023 13:41:56 -0800 Subject: [PATCH 17/20] format changes --- examples/tutorial_1_WaveBot.ipynb | 2 +- wecopttool/utilities.py | 382 ++++++++++++++++++------------ 2 files changed, 230 insertions(+), 154 deletions(-) diff --git a/examples/tutorial_1_WaveBot.ipynb b/examples/tutorial_1_WaveBot.ipynb index cbea5044..a4b0948c 100644 --- a/examples/tutorial_1_WaveBot.ipynb +++ b/examples/tutorial_1_WaveBot.ipynb @@ -186,7 +186,7 @@ "hd = wot.check_linear_damping(hd)\n", "\n", "intrinsic_impedance = wot.hydrodynamic_impedance(hd)\n", - "fig, axes = wot.utilities.plot_bode_impedance(intrinsic_impedance,'WaveBot Intrinsic Impedance',True)" + "fig, axes = wot.utilities.plot_bode_impedance(intrinsic_impedance,'WaveBot Intrinsic Impedance')" ] }, { diff --git a/wecopttool/utilities.py b/wecopttool/utilities.py index fee49c5a..7bbf6262 100644 --- a/wecopttool/utilities.py +++ b/wecopttool/utilities.py @@ -6,11 +6,12 @@ __all__ = [ - "intrinsic_impedance" - "natural_frequency", - "plot_bem_results", - "plot_bode_intrinsic_impedance", - "add_zerofreq_to_xr" + "plot_hydrodynamic_coefficients", + "plot_bode_impedance", + "calculate_power_flows", + "plot_power_flow", + # "add_zerofreq_to_xr", + # "natural_frequency", ] @@ -26,48 +27,17 @@ import matplotlib.pyplot as plt from matplotlib.sankey import Sankey -# from wecopttool.core import linear_hydrodynamics # logger _log = logging.getLogger(__name__) -def natural_frequency(impedance: DataArray, freq: ArrayLike - ) -> tuple[ArrayLike, int]: - """Find the natural frequency based on the lowest magnitude impedance, - for restoring degrees of freedom (Heave, Roll, Pitch). - Parameters - ---------- - impedance: DataArray - Complex intrinsic impedance matrix produced by - :py:func:`wecopttool.hydrodynamic_impedance`. - Dimensions: omega, radiating_dofs, influenced_dofs - freq: list[float] - Frequencies. - - Returns - ------- - f_n: float - Natural frequencies. - ind: int - Index of natural frequencies. - """ - - restoring_dofs = ['Heave','Roll','Pitch'] - indeces = [np.abs(impedance.loc[rdof,idof]).argmin(dim = 'omega') - for rdof in impedance.radiating_dof - for idof in impedance.influenced_dof - if rdof == idof #considering modes to be independent - and any([df in str(rdof.values) for df in restoring_dofs])] - f_n = [freq[indx.values] for indx in indeces] - - return f_n, indeces -def plot_hydrodynamic_coefficients(bem_data): +def plot_hydrodynamic_coefficients(bem_data)-> None: """Plots hydrodynamic coefficients (added mass, radiation damping, - and wave excitation)based on BEM data. + and wave excitation) based on BEM data. Parameters @@ -76,22 +46,36 @@ def plot_hydrodynamic_coefficients(bem_data): Linear hydrodynamic coefficients obtained using the boundary element method (BEM) code Capytaine, with sign convention corrected. - """ radiating_dofs = bem_data.radiating_dof.values influenced_dofs = bem_data.influenced_dof.values # plots - fig_am, ax_am = plt.subplots(len(radiating_dofs), len(influenced_dofs), - tight_layout=True, sharex=True, - figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), squeeze=False) - fig_rd, ax_rd = plt.subplots(len(radiating_dofs), len(influenced_dofs), - tight_layout=True, sharex=True, - figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), squeeze=False) - fig_ex, ax_ex = plt.subplots(len(influenced_dofs), 1, - tight_layout=True, sharex=True, - figsize=(3, 3*len(radiating_dofs)), squeeze=False) + fig_am, ax_am = plt.subplots( + len(radiating_dofs), + len(influenced_dofs), + tight_layout=True, + sharex=True, + figsize=(3*len(radiating_dofs),3*len(influenced_dofs)), + squeeze=False + ) + fig_rd, ax_rd = plt.subplots( + len(radiating_dofs), + len(influenced_dofs), + tight_layout=True, + sharex=True, + figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), + squeeze=False + ) + fig_ex, ax_ex = plt.subplots( + len(influenced_dofs), + 1, + tight_layout=True, + sharex=True, + figsize=(3, 3*len(radiating_dofs)), + squeeze=False + ) # plot titles fig_am.suptitle('Added Mass Coefficients', fontweight='bold') @@ -143,17 +127,18 @@ def plot_hydrodynamic_coefficients(bem_data): def plot_bode_impedance(impedance: DataArray, title: Optional[str]= None, - plot_natural_freq: Optional[bool] = False, -): + #plot_natural_freq: Optional[bool] = False, +)-> None: """Plot Bode graph from wecoptool impedance data array. Parameters ---------- impedance: DataArray - Complex intrinsic impedance matrix produced by + Complex impedance matrix produced by for example by :py:func:`wecopttool.hydrodynamic_impedance`. Dimensions: omega, radiating_dofs, influenced_dofs - + title: String + Title string to be displayed in the plot. """ radiating_dofs = impedance.radiating_dof.values @@ -161,23 +146,24 @@ def plot_bode_impedance(impedance: DataArray, mag = 20.0 * np.log10(np.abs(impedance)) phase = np.rad2deg(np.unwrap(np.angle(impedance))) freq = impedance.omega.values/2/np.pi - fig, axes = plt.subplots(2*len(radiating_dofs), len(influenced_dofs), - tight_layout=True, sharex=True, - figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), squeeze=False) + fig, axes = plt.subplots( + 2*len(radiating_dofs), + len(influenced_dofs), + tight_layout=True, + sharex=True, + figsize=(3*len(radiating_dofs), 3*len(influenced_dofs)), + squeeze=False + ) fig.suptitle(title + ' Bode Plots', fontweight='bold') - fn, fn_indx = natural_frequency(impedance=impedance,freq=freq) sp_idx = 0 for i, rdof in enumerate(radiating_dofs): for j, idof in enumerate(influenced_dofs): sp_idx += 1 - axes[2*i, j].semilogx(freq, mag[i, j, :]) # Bode magnitude plot - axes[2*i+1, j].semilogx(freq, phase[i, j, :]) # Bode phase plot + axes[2*i, j].semilogx(freq, mag[:, i, j]) # Bode magnitude plot + axes[2*i+1, j].semilogx(freq, phase[:, i, j]) # Bode phase plot axes[2*i, j].grid(True, which = 'both') axes[2*i+1, j].grid(True, which = 'both') - # if i == j and plot_natural_freq: - # axes[2*i, j].axvline(freq[fn_indx.sel(radiating_dofs=rdof, - # influenced_dofs=idof)]) if i == len(radiating_dofs)-1: axes[2*i+1, j].set_xlabel(f'Frequency (Hz)', fontsize=10) else: @@ -193,17 +179,37 @@ def plot_bode_impedance(impedance: DataArray, axes[i, j].set_title('') return fig, axes -def add_zerofreq_to_xr(data): - """Add a zero-frequency component to an :python:`xarray.Dataset`. - Frequency variable must be called :python:`omega`. """ - if not np.isclose(data.coords['omega'][0].values, 0): - tmp = data.isel(omega=0).copy(deep=True) * 0 - tmp['omega'] = tmp['omega'] * 0 - data = concat([tmp, data], dim='omega') - return data -def calculate_power_flows(wec, pto, results, waves, intrinsic_impedance): + +def calculate_power_flows(wec, + pto, + results, + waves, + intrinsic_impedance)-> dict[str, float]: + """Calculate power flows into a :py:class:`wecopttool.WEC` + and through a :py:class:`wecopttool.pto.PTO` based on the results + of :py:meth:`wecopttool.WEC.solve` for a single wave realization. + + Parameters + ---------- + wec + WEC object of :py:class:`wecopttool.WEC` + pto + PTO object of :py:class:`wecopttool.pto.PTO` + results + Results produced by :py:func:`scipy.optimize.minimize` for a single wave + realization. + waves + :py:class:`xarray.Dataset` with the structure and elements + shown by :py:mod:`wecopttool.waves`. + intrinsic_impedance: DataArray + Complex intrinsic impedance matrix produced by + :py:func:`wecopttool.hydrodynamic_impedance`. + Dimensions: omega, radiating_dofs, influenced_dofs + + + """ wec_fdom, _ = wec.post_process(results, waves) x_wec, x_opt = wec.decompose_state(results.x) @@ -218,11 +224,15 @@ def calculate_power_flows(wec, pto, results, waves, intrinsic_impedance): P_max, P_e, P_r = [], [], [] - #This solution only works if the radiation resistance matrix Rad_res is invertible - # TODO In the future we might want to add an entirely unconstrained solve for optimized mechanical power - for om in Rad_res.omega.values: #use frequency vector from intrinsic impedance because it does not contain zero freq + #This solution requires radiation resistance matrix Rad_res to be invertible + # TODO In the future we might want to add an entirely unconstrained solve + # for optimized mechanical power + + for om in Rad_res.omega.values: + #use frequency vector from intrinsic impedance (no zero freq) #Eq. 6.69 - Fe_FD_t = np.atleast_2d(Fex_FD.sel(omega = om)) #Dofs are row vector, which is transposed in standard convention + #Dofs are row vector, which is transposed in standard convention + Fe_FD_t = np.atleast_2d(Fex_FD.sel(omega = om)) Fe_FD = np.transpose(Fe_FD_t) R_inv = np.linalg.inv(np.atleast_2d(Rad_res.sel(omega= om))) P_max.append((1/8)*(Fe_FD_t@R_inv)@np.conj(Fe_FD)) @@ -231,90 +241,156 @@ def calculate_power_flows(wec, pto, results, waves, intrinsic_impedance): U_FD = np.transpose(U_FD_t) R = np.atleast_2d(Rad_res.sel(omega= om)) P_r.append((1/2)*(U_FD_t@R)@np.conj(U_FD)) - #Eq. 6.56 (replaced pinv(Fe)*U with U'*conj(Fe) as suggested in subsequent paragraph) + #Eq. 6.56 (replaced pinv(Fe)*U with U'*conj(Fe) + # as suggested in subsequent paragraph) P_e.append((1/4)*(Fe_FD_t@np.conj(U_FD) + U_FD_t@np.conj(Fe_FD))) - power_flows = {'Optimal Excitation' : 2* np.sum(np.real(P_max)), #6.68 positive because the only inflow - 'Radiated': -1*np.sum(np.real(P_r)), #negative because "out"flow - 'Actual Excitation': -1*np.sum(np.real(P_e)), #negative because "out"flow - 'Electrical (solver)': P_elec, #solver determins sign - 'Mechanical (solver)': P_mech, #solver determins sign - } - - power_flows['Absorbed'] = power_flows['Actual Excitation'] - power_flows['Radiated'] - power_flows['Unused Potential'] = -1*power_flows['Optimal Excitation'] - power_flows['Actual Excitation'] - power_flows['PTO Loss'] = power_flows['Mechanical (solver)'] - power_flows['Electrical (solver)'] - + power_flows = { + 'Optimal Excitation' : 2* np.sum(np.real(P_max)),#eq 6.68 positive inflow + 'Radiated': -1*np.sum(np.real(P_r)), #negative because "out"flow + 'Actual Excitation': -1*np.sum(np.real(P_e)), #negative because "out"flow + 'Electrical (solver)': P_elec, #solver determins sign + 'Mechanical (solver)': P_mech, #solver determins sign + } + + power_flows['Absorbed'] = ( + power_flows['Actual Excitation'] + - power_flows['Radiated'] + ) + power_flows['Unused Potential'] = ( + -1*power_flows['Optimal Excitation'] + - power_flows['Actual Excitation'] + ) + power_flows['PTO Loss'] = ( + power_flows['Mechanical (solver)'] + - power_flows['Electrical (solver)'] + ) return power_flows -def plot_power_flow(power_flows): - fig = plt.figure(figsize = [8,4]) - ax = fig.add_subplot(1, 1, 1,) - plt.viridis() - sankey = Sankey(ax=ax, - scale= 1/power_flows['Optimal Excitation'], - offset= 0, - format = '%.1f', - shoulder = 0.02, - tolerance=1e-03*power_flows['Optimal Excitation'], - unit = 'W' - ) - - sankey.add(flows=[power_flows['Optimal Excitation'], - power_flows['Unused Potential'], - power_flows['Actual Excitation']], - labels = ['Optimal Excitation', - 'Unused Potential ', - 'Excited'], - orientations=[0, -1, -0],#arrow directions, - pathlengths = [0.2,0.3,0.2], - trunklength = 1.0, - edgecolor = 'None', - facecolor = (0.253935, 0.265254, 0.529983, 1.0) #viridis(0.2) - ) - - sankey.add(flows=[-1*(power_flows['Absorbed'] + power_flows['Radiated']), - power_flows['Radiated'], - power_flows['Absorbed'], - ], - labels = ['Excited', - 'Radiated', - ''], - prior= (0), - connect=(2,0), - orientations=[0, -1, -0],#arrow directions, - pathlengths = [0.2,0.3,0.2], - trunklength = 1.0, - edgecolor = 'None', - facecolor = (0.127568, 0.566949, 0.550556, 1.0) #viridis (0.5) - ) - - sankey.add(flows=[-1*(power_flows['Mechanical (solver)']), - power_flows['PTO Loss'], - power_flows['Electrical (solver)'], - ], - labels = ['Mechanical', - 'PTO-Loss' , - 'Electrical'], - prior= (1), - connect=(2,0), - orientations=[0, -1, -0],#arrow directions, - pathlengths = [.2,0.3,0.2], - trunklength = 1.0, - edgecolor = 'None', - facecolor = (0.741388, 0.873449, 0.149561, 1.0) #viridis(0.9) - ) +def plot_power_flow(power_flows: dict[str, float])-> None: + """Plot power flow through a WEC as Sankey diagram. - - diagrams = sankey.finish() - for diagram in diagrams: - for text in diagram.texts: - text.set_fontsize(10) - #remove text label from last entries - for diagram in diagrams[0:2]: - diagram.texts[2].set_text('') + Parameters + ---------- + power_flows: dictionary + Power flow dictionary produced by for example by + :py:func:`wecopttool.utilities.calculate_power_flows`. + Required keys: 'Optimal Excitation', 'Radiated', 'Actual Excitation' + 'Electrical (solver)', 'Mechanical (solver)', + 'Absorbed', 'Unused Potential', 'PTO Loss' - plt.axis("off") - plt.show() + """ + fig = plt.figure(figsize = [8,4]) + ax = fig.add_subplot(1, 1, 1,) + plt.viridis() + sankey = Sankey(ax=ax, + scale= 1/power_flows['Optimal Excitation'], + offset= 0, + format = '%.1f', + shoulder = 0.02, + tolerance=1e-03*power_flows['Optimal Excitation'], + unit = 'W' + ) + + sankey.add(flows=[power_flows['Optimal Excitation'], + power_flows['Unused Potential'], + power_flows['Actual Excitation']], + labels = ['Optimal Excitation', + 'Unused Potential ', + 'Excited'], + orientations=[0, -1, -0],#arrow directions, + pathlengths = [0.2,0.3,0.2], + trunklength = 1.0, + edgecolor = 'None', + facecolor = (0.253935, 0.265254, 0.529983, 1.0) #viridis(0.2) + ) + + sankey.add(flows=[ + -1*(power_flows['Absorbed'] + power_flows['Radiated']), + power_flows['Radiated'], + power_flows['Absorbed'], + ], + labels = ['Excited', + 'Radiated', + ''], + prior= (0), + connect=(2,0), + orientations=[0, -1, -0],#arrow directions, + pathlengths = [0.2,0.3,0.2], + trunklength = 1.0, + edgecolor = 'None', + facecolor = (0.127568, 0.566949, 0.550556, 1.0) #viridis(0.5) + ) + + sankey.add(flows=[-1*(power_flows['Mechanical (solver)']), + power_flows['PTO Loss'], + power_flows['Electrical (solver)'], + ], + labels = ['Mechanical', + 'PTO-Loss' , + 'Electrical'], + prior= (1), + connect=(2,0), + orientations=[0, -1, -0],#arrow directions, + pathlengths = [.2,0.3,0.2], + trunklength = 1.0, + edgecolor = 'None', + facecolor = (0.741388, 0.873449, 0.149561, 1.0) #viridis(0.9) + ) + + + diagrams = sankey.finish() + for diagram in diagrams: + for text in diagram.texts: + text.set_fontsize(10) + #remove text label from last entries + for diagram in diagrams[0:2]: + diagram.texts[2].set_text('') + + + plt.axis("off") + plt.show() + + +# def add_zerofreq_to_xr(data): +# """Add a zero-frequency component to an :python:`xarray.Dataset`. +# Frequency variable must be called :python:`omega`. """ +# if not np.isclose(data.coords['omega'][0].values, 0): +# tmp = data.isel(omega=0).copy(deep=True) * 0 +# tmp['omega'] = tmp['omega'] * 0 +# data = concat([tmp, data], dim='omega') +# return data + +# def natural_frequency(impedance: DataArray, freq: ArrayLike +# ) -> tuple[ArrayLike, int]: +# """Find the natural frequency based on the lowest magnitude impedance, +# for restoring degrees of freedom (Heave, Roll, Pitch). + +# Parameters +# ---------- +# impedance: DataArray +# Complex intrinsic impedance matrix produced by +# :py:func:`wecopttool.hydrodynamic_impedance`. +# Dimensions: omega, radiating_dofs, influenced_dofs +# freq: list[float] +# Frequencies. + +# Returns +# ------- +# f_n: float +# Natural frequencies. +# ind: int +# Index of natural frequencies. +# """ + +# restoring_dofs = ['Heave','Roll','Pitch'] +# indeces = [np.abs(impedance.loc[rdof,idof]).argmin(dim = 'omega') +# for rdof in impedance.radiating_dof +# for idof in impedance.influenced_dof +# if rdof == idof #considering modes to be independent +# and any([df in str(rdof.values) for df in restoring_dofs])] +# f_n = [freq[indx.values] for indx in indeces] + +# return f_n, indeces \ No newline at end of file From c4c7630eecc12fae037605d23f61577c2048b606 Mon Sep 17 00:00:00 2001 From: dtgaebe Date: Mon, 11 Dec 2023 15:51:48 -0800 Subject: [PATCH 18/20] accounted for wave direction in bem_plot --- wecopttool/utilities.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/wecopttool/utilities.py b/wecopttool/utilities.py index 7bbf6262..3063d82a 100644 --- a/wecopttool/utilities.py +++ b/wecopttool/utilities.py @@ -19,12 +19,15 @@ import logging from pathlib import Path -import numpy as np +import autograd.numpy as np +from autograd.numpy import ndarray + from xarray import DataArray from numpy.typing import ArrayLike # from autograd.numpy import ndarray from xarray import DataArray, concat import matplotlib.pyplot as plt +from matplotlib.figure import Figure from matplotlib.sankey import Sankey @@ -35,7 +38,8 @@ -def plot_hydrodynamic_coefficients(bem_data)-> None: +def plot_hydrodynamic_coefficients(bem_data, + wave_dir: Optional[float] = 0.0)-> None: """Plots hydrodynamic coefficients (added mass, radiation damping, and wave excitation) based on BEM data. @@ -46,8 +50,12 @@ def plot_hydrodynamic_coefficients(bem_data)-> None: Linear hydrodynamic coefficients obtained using the boundary element method (BEM) code Capytaine, with sign convention corrected. + wave_dir + Wave direction(s) to plot the """ + + bem_data = bem_data.sel(wave_direction = wave_dir, method='nearest') radiating_dofs = bem_data.radiating_dof.values influenced_dofs = bem_data.influenced_dof.values @@ -268,7 +276,7 @@ def calculate_power_flows(wec, return power_flows -def plot_power_flow(power_flows: dict[str, float])-> None: +def plot_power_flow(power_flows: dict[str, float])-> Figure: """Plot power flow through a WEC as Sankey diagram. Parameters @@ -349,10 +357,11 @@ def plot_power_flow(power_flows: dict[str, float])-> None: for diagram in diagrams[0:2]: diagram.texts[2].set_text('') - plt.axis("off") plt.show() + return fig + # def add_zerofreq_to_xr(data): # """Add a zero-frequency component to an :python:`xarray.Dataset`. From 4c4f60b7bece6c026529193e6f64ebd4cd1fa94b Mon Sep 17 00:00:00 2001 From: dtgaebe Date: Tue, 12 Dec 2023 11:33:41 -0800 Subject: [PATCH 19/20] added tests and changes during testing --- tests/test_utilities.py | 209 ++++++++++++++++++++++++++++++++++++++++ wecopttool/utilities.py | 46 +++++---- 2 files changed, 236 insertions(+), 19 deletions(-) create mode 100644 tests/test_utilities.py diff --git a/tests/test_utilities.py b/tests/test_utilities.py new file mode 100644 index 00000000..c5de9cdc --- /dev/null +++ b/tests/test_utilities.py @@ -0,0 +1,209 @@ +""" Unit tests for functions in the :python:`utilities.py` module. +""" + +import pytest +import numpy as np +import xarray as xr +from matplotlib.pyplot import Figure, Axes +import wecopttool as wot +from pytest import approx +import capytaine as cpy + + + +# test function in the utilities.py + + + +@pytest.fixture(scope="module") +def power_flows(): + """Dictionary of power flows.""" + pflows = {'Optimal Excitation': -100, + 'Radiated': -20, + 'Actual Excitation': -70, + 'Electrical (solver)': -40, + 'Mechanical (solver)': -50, + 'Absorbed': -50, + 'Unused Potential': -30, + 'PTO Loss': -10 + } + return pflows + +@pytest.fixture(scope="module") +def f1(): + """Fundamental frequency [Hz].""" + return 0.1 + + +@pytest.fixture(scope="module") +def nfreq(): + """Number of frequencies in frequency vector.""" + return 5 + +@pytest.fixture(scope="module") +def ndof(): + """Number of degrees of freedom.""" + return 2 + +@pytest.fixture(scope="module") +def ndir(): + """Number of wave directions.""" + return 3 + +@pytest.fixture(scope='module') +def bem_data(f1, nfreq, ndof, ndir): + """Synthetic BEM data.""" + # TODO - start using single BEM solution across entire test suite + coords = { + 'omega': [2*np.pi*(ifreq+1)*f1 for ifreq in range(nfreq)], + 'influenced_dof': [f'DOF_{idof+1}' for idof in range(ndof)], + 'radiating_dof': [f'DOF_{idof+1}' for idof in range(ndof)], + 'wave_direction': [2*np.pi/ndir*idir for idir in range(ndir)], + } + radiation_dims = ['omega', 'radiating_dof', 'influenced_dof'] + excitation_dims = ['omega', 'influenced_dof', 'wave_direction'] + hydrostatics_dims = ['radiating_dof', 'influenced_dof'] + + added_mass = np.ones([nfreq, ndof, ndof]) + radiation_damping = np.ones([nfreq, ndof, ndof]) + diffraction_force = np.ones([nfreq, ndof, ndir], dtype=complex) + 1j + Froude_Krylov_force = np.ones([nfreq, ndof, ndir], dtype=complex) + 1j + inertia_matrix = np.ones([ndof, ndof]) + hydrostatic_stiffness = np.ones([ndof, ndof]) + + data_vars = { + 'added_mass': (radiation_dims, added_mass), + 'radiation_damping': (radiation_dims, radiation_damping), + 'diffraction_force': (excitation_dims, diffraction_force), + 'Froude_Krylov_force': (excitation_dims, Froude_Krylov_force), + 'inertia_matrix': (hydrostatics_dims, inertia_matrix), + 'hydrostatic_stiffness': (hydrostatics_dims, hydrostatic_stiffness) + } + return xr.Dataset(data_vars=data_vars, coords=coords) + +@pytest.fixture(scope='module') +def intrinsic_impedance(bem_data): + bem_data = wot.add_linear_friction(bem_data) + intrinsic_impedance = wot.hydrodynamic_impedance(bem_data) + return intrinsic_impedance + +@pytest.fixture(scope='module') +def pi_controller_pto(): + """Basic PTO: proportional-integral (PI) controller, 1DOF, mechanical + power.""" + ndof = 1 + pto = wot.pto.PTO(ndof=ndof, kinematics=np.eye(ndof), + controller=wot.pto.controller_pi, + names=["PI controller PTO"]) + return pto + +@pytest.fixture(scope='module') +def regular_wave(f1, nfreq): + """Single frequency wave""" + wfreq = 0.3 + wamp = 0.0625 + wphase = 0 + wdir = 0 + waves = wot.waves.regular_wave(f1, nfreq, wfreq, wamp, wphase, wdir) + return waves + +@pytest.fixture(scope="module") +def fb(): + """Capytaine FloatingBody object""" + try: + import wecopttool.geom as geom + except ImportError: + pytest.skip( + 'Skipping integration tests due to missing optional geometry ' + + 'dependencies. Run `pip install wecopttool[geometry]` to run ' + + 'these tests.' + ) + mesh_size_factor = 0.5 + wb = geom.WaveBot() + mesh = wb.mesh(mesh_size_factor) + fb = cpy.FloatingBody.from_meshio(mesh, name="WaveBot") + fb.add_translation_dof(name="Heave") + return fb + + +@pytest.fixture(scope="module") +def wb_bem(f1, nfreq, fb): + """Boundary elemement model (Capytaine) results""" + freq = wot.frequency(f1, nfreq, False) + return wot.run_bem(fb, freq) + +@pytest.fixture(scope='class') +def wb_hydro_impedance(wb_bem): + """Intrinsic hydrodynamic impedance""" + hd = wot.add_linear_friction(wb_bem) + hd = wot.check_linear_damping(hd) + Zi = wot.hydrodynamic_impedance(hd) + return Zi + + + + +def test_plot_hydrodynamic_coefficients(bem_data,ndof): + bem_figure_list = wot.utilities.plot_hydrodynamic_coefficients(bem_data) + correct_len = ndof*(ndof+1)/2 #using only the subdiagonal elements + #added mass + fig_am = bem_figure_list[0][0] + assert correct_len == len(fig_am.axes) + assert isinstance(fig_am,Figure) + #radiation damping + fig_rd = bem_figure_list[1][0] + assert correct_len == len(fig_rd.axes) + assert isinstance(fig_rd,Figure) + #radiation damping + fig_ex = bem_figure_list[2][0] + assert ndof == len(fig_ex.axes) + assert isinstance(fig_ex,Figure) + +def test_plot_bode_impedance(intrinsic_impedance, ndof): + fig_Zi, axes_Zi = wot.utilities.plot_bode_impedance(intrinsic_impedance) + + assert 2*ndof*ndof == len(fig_Zi.axes) + assert isinstance(fig_Zi,Figure) + assert all([isinstance(ax, Axes) for ax in np.reshape(axes_Zi,-1)]) + + +def test_plot_power_flow(power_flows): + fig_sankey, ax_sankey = wot.utilities.plot_power_flow(power_flows) + + assert isinstance(fig_sankey, Figure) + assert isinstance(ax_sankey, Axes) + +def test_calculate_power_flow(wb_bem, + regular_wave, + pi_controller_pto, + wb_hydro_impedance): + """PI controller matches optimal for any regular wave, + thus we check if the radiated power is equal the absorber power + and if the Optimal excitation is equal the actual excitation""" + + f_add = {"PTO": pi_controller_pto.force_on_wec} + wec = wot.WEC.from_bem(wb_bem, f_add=f_add) + + res = wec.solve(waves=regular_wave, + obj_fun=pi_controller_pto.average_power, + nstate_opt=2, + x_wec_0=1e-1*np.ones(wec.nstate_wec), + x_opt_0=[-1e3, 1e4], + scale_x_wec=1e2, + scale_x_opt=1e-3, + scale_obj=1e-2, + optim_options={'maxiter': 50}, + bounds_opt=((-1e4, 0), (0, 2e4),) + ) + + pflows = wot.utilities.calculate_power_flows(wec, + pi_controller_pto, + res[0], + regular_wave.sel(realization = 0), + wb_hydro_impedance) + + assert pflows['Absorbed'] == approx(pflows['Radiated'], rel=1e-4) + assert pflows['Optimal Excitation'] == approx(pflows['Actual Excitation'], rel=1e-4) + + + diff --git a/wecopttool/utilities.py b/wecopttool/utilities.py index 3063d82a..357a451d 100644 --- a/wecopttool/utilities.py +++ b/wecopttool/utilities.py @@ -28,6 +28,8 @@ from xarray import DataArray, concat import matplotlib.pyplot as plt from matplotlib.figure import Figure +from matplotlib.axes import Axes + from matplotlib.sankey import Sankey @@ -39,7 +41,8 @@ def plot_hydrodynamic_coefficients(bem_data, - wave_dir: Optional[float] = 0.0)-> None: + wave_dir: Optional[float] = 0.0 + )-> list(tuple(Figure, Axes)): """Plots hydrodynamic coefficients (added mass, radiation damping, and wave excitation) based on BEM data. @@ -131,12 +134,12 @@ def plot_hydrodynamic_coefficients(bem_data, fig_am.delaxes(ax_am[i, j]) fig_rd.delaxes(ax_rd[i, j]) fig_ex.legend(ex_handles, ex_labels, loc=(0.08, 0), ncol=2, frameon=False) - + return [(fig_am,ax_am), (fig_rd,ax_rd), (fig_ex,ax_ex)] def plot_bode_impedance(impedance: DataArray, - title: Optional[str]= None, + title: Optional[str]= '', #plot_natural_freq: Optional[bool] = False, -)-> None: +)-> tuple(Figure, Axes): """Plot Bode graph from wecoptool impedance data array. Parameters @@ -254,11 +257,11 @@ def calculate_power_flows(wec, P_e.append((1/4)*(Fe_FD_t@np.conj(U_FD) + U_FD_t@np.conj(Fe_FD))) power_flows = { - 'Optimal Excitation' : 2* np.sum(np.real(P_max)),#eq 6.68 positive inflow - 'Radiated': -1*np.sum(np.real(P_r)), #negative because "out"flow - 'Actual Excitation': -1*np.sum(np.real(P_e)), #negative because "out"flow - 'Electrical (solver)': P_elec, #solver determins sign - 'Mechanical (solver)': P_mech, #solver determins sign + 'Optimal Excitation' : -2* np.sum(np.real(P_max)),#eq 6.68 + 'Radiated': -1*np.sum(np.real(P_r)), + 'Actual Excitation': -1*np.sum(np.real(P_e)), + 'Electrical (solver)': P_elec, + 'Mechanical (solver)': P_mech, } power_flows['Absorbed'] = ( @@ -266,7 +269,7 @@ def calculate_power_flows(wec, - power_flows['Radiated'] ) power_flows['Unused Potential'] = ( - -1*power_flows['Optimal Excitation'] + power_flows['Optimal Excitation'] - power_flows['Actual Excitation'] ) power_flows['PTO Loss'] = ( @@ -276,7 +279,7 @@ def calculate_power_flows(wec, return power_flows -def plot_power_flow(power_flows: dict[str, float])-> Figure: +def plot_power_flow(power_flows: dict[str, float])-> tuple(Figure, Axes): """Plot power flow through a WEC as Sankey diagram. Parameters @@ -290,19 +293,24 @@ def plot_power_flow(power_flows: dict[str, float])-> Figure: """ - fig = plt.figure(figsize = [8,4]) - ax = fig.add_subplot(1, 1, 1,) - plt.viridis() + # fig = plt.figure(figsize = [8,4]) + # ax = fig.add_subplot(1, 1, 1,) + fig, ax = plt.subplots(1, 1, + tight_layout=True, + figsize=(8, 4), + ) + + # plt.viridis() sankey = Sankey(ax=ax, - scale= 1/power_flows['Optimal Excitation'], + scale= -1/power_flows['Optimal Excitation'], offset= 0, format = '%.1f', shoulder = 0.02, - tolerance=1e-03*power_flows['Optimal Excitation'], + tolerance=-1e-03*power_flows['Optimal Excitation'], unit = 'W' ) - sankey.add(flows=[power_flows['Optimal Excitation'], + sankey.add(flows=[-1*power_flows['Optimal Excitation'], power_flows['Unused Potential'], power_flows['Actual Excitation']], labels = ['Optimal Excitation', @@ -358,9 +366,9 @@ def plot_power_flow(power_flows: dict[str, float])-> Figure: diagram.texts[2].set_text('') plt.axis("off") - plt.show() + # plt.show() - return fig + return fig, ax # def add_zerofreq_to_xr(data): From 1413321d13ddedcc050e86fbb4ea3d2811296959 Mon Sep 17 00:00:00 2001 From: dtgaebe Date: Tue, 12 Dec 2023 13:54:49 -0800 Subject: [PATCH 20/20] corrected sign convention in tut4 --- examples/tutorial_4_Pioneer.ipynb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/tutorial_4_Pioneer.ipynb b/examples/tutorial_4_Pioneer.ipynb index 455fbedb..e1ef6055 100644 --- a/examples/tutorial_4_Pioneer.ipynb +++ b/examples/tutorial_4_Pioneer.ipynb @@ -772,11 +772,11 @@ "P_radiated = ((1/2)*(Rad_res * np.abs(Vel)**2 ).squeeze().sum('omega').item()) # after Falnes Eq. 6.4\n", "P_excited= (1/4)*(Fex*np.conjugate(Vel) + np.conjugate(Fex)*Vel ).squeeze().sum('omega').item() # after Falnes Eq. 6.3\n", "\n", - "power_flows = {'Optimal Excitation' : 2* (np.real(P_max_absorbable)), #positive because the only inflow\n", - " 'Radiated': -1*(np.real(P_radiated)), #negative because \"out\"flow\n", - " 'Actual Excitation': -1*(np.real(P_excited)), #negative because \"out\"flow\n", + "power_flows = {'Optimal Excitation' : -2* (np.real(P_max_absorbable)), \n", + " 'Radiated': -1*(np.real(P_radiated)), \n", + " 'Actual Excitation': -1*(np.real(P_excited)), \n", "}\n", - "power_flows['Unused Potential'] = -1*power_flows['Optimal Excitation'] - power_flows['Actual Excitation']\n", + "power_flows['Unused Potential'] = power_flows['Optimal Excitation'] - power_flows['Actual Excitation']\n", "power_flows['Absorbed'] = power_flows['Actual Excitation'] - power_flows['Radiated'] # after Falnes Eq. 6.2 \n", "#absorbed by WEC-PTO (difference between actual excitation power and actual radiated power needs to be absorbed by PTO)\n", "\n"