diff --git a/.calkit/overleaf-sync.json b/.calkit/overleaf-sync.json index c642b9218..354cc19c0 100644 --- a/.calkit/overleaf-sync.json +++ b/.calkit/overleaf-sync.json @@ -1,7 +1,7 @@ { "pubs/renewable-energy-mdo": { "project_id": "6753a38b61276b931380c29c", - "last_sync_commit": "b860cbee5c24094baf6a976ed8e554684b155c0d" + "last_sync_commit": "898387eb3473335a9ed1216987e5a11708202c9b" }, "pubs/UMERC-2025-grid-value": { "project_id": "68516ba5bc36663bb61711a6", @@ -9,7 +9,7 @@ }, "pubs/applied-ocean-research-model": { "project_id": "69ecde8851d14790c59f03d5", - "last_sync_commit": "c204ee9798f8bac73f2f6596c5575b3eb7866597" + "last_sync_commit": "4c01f20ab6b6a1d160b1169f15ae80dc98f75072" }, "pubs/defense": { "project_id": "69ef01941916c106f7f5c565", diff --git a/.calkit/runs/2026-06-19T23-04-04-6858fcf6e8bf484abe1ecff90fb1e522.json b/.calkit/runs/2026-06-19T23-04-04-6858fcf6e8bf484abe1ecff90fb1e522.json new file mode 100644 index 000000000..b6fcb834d --- /dev/null +++ b/.calkit/runs/2026-06-19T23-04-04-6858fcf6e8bf484abe1ecff90fb1e522.json @@ -0,0 +1,5169 @@ +{ + "id": "6858fcf6e8bf484abe1ecff90fb1e522", + "system_id": "69d75abfd2750ded2a26c7cdaa45b52bde180a0e", + "start_time": "2026-06-19T23:04:04.535066+00:00", + "end_time": "2026-06-19T23:04:45.888937+00:00", + "targets": [ + "build-AOR-paper" + ], + "force": false, + "dvc_args": [ + "build-AOR-paper" + ], + "status": "completed", + "stages": { + "make-drag-integral": { + "start_time": "2026-06-19T23:04:11.187000", + "end_time": "2026-06-19T23:04:11.187000", + "status": "skipped" + }, + "make-var-bounds": { + "start_time": "2026-06-19T23:04:11.214000", + "end_time": "2026-06-19T23:04:11.214000", + "status": "skipped" + }, + "analysis-Runtime": { + "start_time": "2026-06-19T23:04:11.265000", + "end_time": "2026-06-19T23:04:11.265000", + "status": "skipped" + }, + "make-standalone-tex-pdf@circuit_intrinsic": { + "start_time": "2026-06-19T23:04:11.322000", + "end_time": "2026-06-19T23:04:11.322000", + "status": "skipped" + }, + "analysis-SparHydro": { + "start_time": "2026-06-19T23:04:11.397000", + "end_time": "2026-06-19T23:04:11.397000", + "status": "skipped" + }, + "make-standalone-tex-pdf@circuit_pto": { + "start_time": "2026-06-19T23:04:11.430000", + "end_time": "2026-06-19T23:04:11.430000", + "status": "skipped" + }, + "pyxdsm": { + "start_time": "2026-06-19T23:04:11.458000", + "end_time": "2026-06-19T23:04:11.458000", + "status": "skipped" + }, + "analysis-Wecsim": { + "start_time": "2026-06-19T23:04:11.533000", + "end_time": "2026-06-19T23:04:11.533000", + "status": "skipped" + }, + "analysis-DesignSpaceExploration": { + "start_time": "2026-06-19T23:04:11.584000", + "end_time": "2026-06-19T23:04:11.584000", + "status": "skipped" + }, + "make-standalone-tex-pdf@circuit_kinematics": { + "start_time": "2026-06-19T23:04:11.740000", + "end_time": "2026-06-19T23:04:11.740000", + "status": "skipped" + }, + "move-standalone-pdfs@circuit_kinematics": { + "start_time": "2026-06-19T23:04:11.765000", + "end_time": "2026-06-19T23:04:11.765000", + "status": "skipped" + }, + "mermaid-make-pngs@mod_freq_domain_ctrl_evaluation": { + "start_time": "2026-06-19T23:04:11.791000", + "end_time": "2026-06-19T23:04:11.791000", + "status": "skipped" + }, + "analysis-Parameters": { + "start_time": "2026-06-19T23:04:11.840000", + "end_time": "2026-06-19T23:04:11.840000", + "status": "skipped" + }, + "postpro-Parameters": { + "start_time": "2026-06-19T23:04:11.893000", + "end_time": "2026-06-19T23:04:11.893000", + "status": "skipped" + }, + "analysis-RunSingleFigFunc": { + "start_time": "2026-06-19T23:04:11.965000", + "end_time": "2026-06-19T23:04:11.965000", + "status": "skipped" + }, + "postpro-RunSingleFigFunc": { + "start_time": "2026-06-19T23:04:12.063000", + "end_time": "2026-06-19T23:04:12.063000", + "status": "skipped" + }, + "postpro-Runtime": { + "start_time": "2026-06-19T23:04:12.131000", + "end_time": "2026-06-19T23:04:12.131000", + "status": "skipped" + }, + "analysis-PtoSweep": { + "start_time": "2026-06-19T23:04:12.180000", + "end_time": "2026-06-19T23:04:12.180000", + "status": "skipped" + }, + "postpro-PtoSweep": { + "start_time": "2026-06-19T23:04:12.240000", + "end_time": "2026-06-19T23:04:12.240000", + "status": "skipped" + }, + "postpro-Wecsim": { + "start_time": "2026-06-19T23:04:14.038000", + "end_time": "2026-06-19T23:04:14.038000", + "status": "skipped" + }, + "aor-results-to-latex": { + "start_time": "2026-06-19T23:04:14.108000", + "end_time": "2026-06-19T23:04:19.245000", + "status": "completed" + }, + "analysis-SweepGeoms": { + "start_time": "2026-06-19T23:04:19.245000", + "end_time": "2026-06-19T23:04:19.245000", + "status": "skipped" + }, + "make-standalone-tex-pdf@control_method_venn_diagram": { + "start_time": "2026-06-19T23:04:19.303000", + "end_time": "2026-06-19T23:04:19.303000", + "status": "skipped" + }, + "analysis-Slamming": { + "start_time": "2026-06-19T23:04:19.355000", + "end_time": "2026-06-19T23:04:19.355000", + "status": "skipped" + }, + "postpro-Slamming": { + "start_time": "2026-06-19T23:04:19.410000", + "end_time": "2026-06-19T23:04:19.410000", + "status": "skipped" + }, + "analysis-DampingPlateStructures": { + "start_time": "2026-06-19T23:04:19.466000", + "end_time": "2026-06-19T23:04:19.466000", + "status": "skipped" + }, + "postpro-DampingPlateStructures": { + "start_time": "2026-06-19T23:04:19.531000", + "end_time": "2026-06-19T23:04:19.531000", + "status": "skipped" + }, + "analysis-HydroCoeffFigFunc": { + "start_time": "2026-06-19T23:04:19.608000", + "end_time": "2026-06-19T23:04:19.608000", + "status": "skipped" + }, + "postpro-HydroCoeffFigFunc": { + "start_time": "2026-06-19T23:04:19.664000", + "end_time": "2026-06-19T23:04:19.664000", + "status": "skipped" + }, + "mermaid-make-pdfs@mod_freq_domain_ctrl_evaluation": { + "start_time": "2026-06-19T23:04:19.690000", + "end_time": "2026-06-19T23:04:19.690000", + "status": "skipped" + }, + "move-standalone-pdfs@circuit_intrinsic": { + "start_time": "2026-06-19T23:04:19.741000", + "end_time": "2026-06-19T23:04:19.741000", + "status": "skipped" + }, + "copy-shared-latex": { + "start_time": "2026-06-19T23:04:19.899000", + "end_time": "2026-06-19T23:04:25.181000", + "status": "completed" + }, + "analysis-DragIntegral": { + "start_time": "2026-06-19T23:04:25.181000", + "end_time": "2026-06-19T23:04:25.181000", + "status": "skipped" + }, + "postpro-DragIntegral": { + "start_time": "2026-06-19T23:04:25.252000", + "end_time": "2026-06-19T23:04:25.252000", + "status": "skipped" + }, + "analysis-FitOlaya": { + "start_time": "2026-06-19T23:04:25.310000", + "end_time": "2026-06-19T23:04:25.310000", + "status": "skipped" + }, + "postpro-FitOlaya": { + "start_time": "2026-06-19T23:04:25.623000", + "end_time": "2026-06-19T23:04:25.623000", + "status": "skipped" + }, + "analysis-ReadNonMatlabFigs": { + "start_time": "2026-06-19T23:04:25.673000", + "end_time": "2026-06-19T23:04:25.673000", + "status": "skipped" + }, + "mermaid-make-pngs@taxonomy": { + "start_time": "2026-06-19T23:04:25.700000", + "end_time": "2026-06-19T23:04:25.700000", + "status": "skipped" + }, + "mermaid-make-pngs@mod_freq_domain_ctrl_synthesis": { + "start_time": "2026-06-19T23:04:25.726000", + "end_time": "2026-06-19T23:04:25.726000", + "status": "skipped" + }, + "mermaid-make-pdfs@taxonomy": { + "start_time": "2026-06-19T23:04:25.979000", + "end_time": "2026-06-19T23:04:25.979000", + "status": "skipped" + }, + "mermaid-make-pdfs@mod_freq_domain_ctrl_synthesis": { + "start_time": "2026-06-19T23:04:26.005000", + "end_time": "2026-06-19T23:04:26.005000", + "status": "skipped" + }, + "move-standalone-pdfs@circuit_pto": { + "start_time": "2026-06-19T23:04:26.031000", + "end_time": "2026-06-19T23:04:26.031000", + "status": "skipped" + }, + "move-standalone-pdfs@control_method_venn_diagram": { + "start_time": "2026-06-19T23:04:26.057000", + "end_time": "2026-06-19T23:04:26.057000", + "status": "skipped" + }, + "make-standalone-tex-pdf@meem_dims": { + "start_time": "2026-06-19T23:04:26.089000", + "end_time": "2026-06-19T23:04:26.089000", + "status": "skipped" + }, + "move-standalone-pdfs@meem_dims": { + "start_time": "2026-06-19T23:04:26.115000", + "end_time": "2026-06-19T23:04:26.115000", + "status": "skipped" + }, + "postpro-ReadNonMatlabFigs": { + "start_time": "2026-06-19T23:04:26.432000", + "end_time": "2026-06-19T23:04:26.432000", + "status": "skipped" + }, + "postpro-SparHydro": { + "start_time": "2026-06-19T23:04:26.488000", + "end_time": "2026-06-19T23:04:26.488000", + "status": "skipped" + }, + "analysis-DescFcns": { + "start_time": "2026-06-19T23:04:26.544000", + "end_time": "2026-06-19T23:04:26.544000", + "status": "skipped" + }, + "postpro-DescFcns": { + "start_time": "2026-06-19T23:04:26.609000", + "end_time": "2026-06-19T23:04:26.609000", + "status": "skipped" + }, + "analysis-Validation": { + "start_time": "2026-06-19T23:04:26.663000", + "end_time": "2026-06-19T23:04:26.663000", + "status": "skipped" + }, + "postpro-Validation": { + "start_time": "2026-06-19T23:04:26.722000", + "end_time": "2026-06-19T23:04:26.722000", + "status": "skipped" + }, + "analysis-ForceSaturationFigFunc": { + "start_time": "2026-06-19T23:04:26.780000", + "end_time": "2026-06-19T23:04:26.780000", + "status": "skipped" + }, + "postpro-ForceSaturationFigFunc": { + "start_time": "2026-06-19T23:04:26.841000", + "end_time": "2026-06-19T23:04:26.841000", + "status": "skipped" + }, + "postpro-DesignSpaceExploration": { + "start_time": "2026-06-19T23:04:26.902000", + "end_time": "2026-06-19T23:04:26.902000", + "status": "skipped" + }, + "analysis-Meem": { + "start_time": "2026-06-19T23:04:26.968000", + "end_time": "2026-06-19T23:04:26.968000", + "status": "skipped" + }, + "postpro-Meem": { + "start_time": "2026-06-19T23:04:27.047000", + "end_time": "2026-06-19T23:04:27.047000", + "status": "skipped" + }, + "analysis-QPCircles": { + "start_time": "2026-06-19T23:04:27.099000", + "end_time": "2026-06-19T23:04:27.099000", + "status": "skipped" + }, + "postpro-QPCircles": { + "start_time": "2026-06-19T23:04:27.155000", + "end_time": "2026-06-19T23:04:27.155000", + "status": "skipped" + }, + "postpro-SweepGeoms": { + "start_time": "2026-06-19T23:04:27.264000", + "end_time": "2026-06-19T23:04:27.264000", + "status": "skipped" + }, + "analysis-Cost": { + "start_time": "2026-06-19T23:04:27.314000", + "end_time": "2026-06-19T23:04:27.314000", + "status": "skipped" + }, + "postpro-Cost": { + "start_time": "2026-06-19T23:04:27.368000", + "end_time": "2026-06-19T23:04:27.368000", + "status": "skipped" + }, + "move-aor-results": { + "start_time": "2026-06-19T23:04:27.426000", + "end_time": "2026-06-19T23:04:27.426000", + "status": "skipped" + }, + "build-AOR-paper": { + "start_time": "2026-06-19T23:04:27.491000", + "end_time": "2026-06-19T23:04:27.491000", + "status": "skipped" + } + }, + "git_rev": "5032807aa6db040f1a8fd0b2b5e19c7daf50fdeb", + "git_branch": "overleaf-sync", + "git_changed_files_before": [ + "dev/latex/calkit_instructions_interactive.sh" + ], + "git_staged_files_before": [], + "git_untracked_files_before": [ + ".calkit/systems/69d75abfd2750ded2a26c7cdaa45b52bde180a0e.json" + ], + "git_changed_files_after": [ + "dev/latex/calkit_instructions_interactive.sh", + "pubs/applied-ocean-research-model/numeric-results.tex", + "pubs/applied-ocean-research-model/shared-pkg.tex" + ], + "git_staged_files_after": [], + "git_untracked_files_after": [ + ".calkit/systems/69d75abfd2750ded2a26c7cdaa45b52bde180a0e.json" + ], + "dvc_status_before": { + "make-calkit-stages": [ + { + "changed deps": { + "mdocean/analysis": "modified", + "mdocean/optimization": "modified", + "mdocean/plots/fig_tab_pub_mapping.m": "modified" + } + } + ], + "postpro-WithTables": [ + { + "changed deps": { + "results/Comparison/overlaid_geometry.pdf": "modified", + "results/Comparison/overlaid_hydro_coeffs.pdf": "modified", + "results/Comparison/probability_CDF.pdf": "modified", + "results/Comparison/comparison_power_matrix.pdf": "modified", + "results/Comparison/overlaid_geometry.fig": "modified", + "results/Comparison/overlaid_hydro_coeffs.fig": "modified", + "results/Comparison/probability_CDF.fig": "modified", + "results/Comparison/comparison_power_matrix.fig": "modified", + "results/Comparison/optimal_design_vars.tex": "modified", + "results/Comparison/optimal_outputs.tex": "modified", + "results/Comparison/end.mat": "modified", + "results/Comparison/end.json": "modified", + "results/Constraints/constraints.tex": "modified", + "results/Constraints/end.mat": "modified", + "results/Constraints/end.json": "modified", + "results/Cost/cost_parameters.tex": "modified", + "results/Cost/end.mat": "modified", + "results/Cost/end.json": "modified", + "results/DesignSpaceExploration/experiments_ratios.pdf": "modified", + "results/DesignSpaceExploration/experiments_ratios.fig": "modified", + "results/DesignSpaceExploration/experiments_results.tex": "modified", + "results/DesignSpaceExploration/end.mat": "modified", + "results/DesignSpaceExploration/end.json": "modified", + "results/DesignVars/design_vars.tex": "modified", + "results/DesignVars/end.mat": "modified", + "results/DesignVars/end.json": "modified", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_opt_geometry.pdf": "modified", + "results/GradientOptimFigFunc/lagrange_multipliers.pdf": "modified", + "results/GradientOptimFigFunc/delta_x.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_convergence.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.fig": "modified", + "results/GradientOptimFigFunc/single_obj_opt_geometry.fig": "modified", + "results/GradientOptimFigFunc/lagrange_multipliers.fig": "modified", + "results/GradientOptimFigFunc/delta_x.fig": "modified", + "results/GradientOptimFigFunc/single_obj_convergence.fig": "modified", + "results/GradientOptimFigFunc/single_obj_optim_results.tex": "modified", + "results/GradientOptimFigFunc/end.mat": "modified", + "results/GradientOptimFigFunc/end.json": "modified", + "results/LocationSensitivity/location_1_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_2_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_3_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_4_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_probability_PDF.pdf": "modified", + "results/LocationSensitivity/location_1_power_matrix.fig": "modified", + "results/LocationSensitivity/location_2_power_matrix.fig": "modified", + "results/LocationSensitivity/location_3_power_matrix.fig": "modified", + "results/LocationSensitivity/location_4_power_matrix.fig": "modified", + "results/LocationSensitivity/location_probability_PDF.fig": "modified", + "results/LocationSensitivity/location_sensitivity.tex": "modified", + "results/LocationSensitivity/end.mat": "modified", + "results/LocationSensitivity/end.json": "modified", + "results/Multistart/multistart_convergence_tree.pdf": "modified", + "results/Multistart/multistart_parallel_coordinates.pdf": "modified", + "results/Multistart/multistart_bar_chart.pdf": "modified", + "results/Multistart/multistart_convergence_tree.fig": "modified", + "results/Multistart/multistart_parallel_coordinates.fig": "modified", + "results/Multistart/multistart_bar_chart.fig": "modified", + "results/Multistart/multistart_results.tex": "modified", + "results/Multistart/end.mat": "modified", + "results/Multistart/end.json": "modified", + "results/Parameters/parameters.tex": "modified", + "results/Parameters/end.mat": "modified", + "results/Parameters/end.json": "modified", + "results/Validation/cost_vs_N_WEC.pdf": "modified", + "results/Validation/cost_vs_N_WEC.fig": "modified", + "results/Validation/validation.tex": "modified", + "results/Validation/end.mat": "modified", + "results/Validation/end.json": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi__histogram.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single__histogram.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi__histogram.pdf": "modified", + "results/Wecsim/accel_fourier_harmonics.pdf": "modified", + "results/Wecsim/drag_force_desc_fcn.pdf": "modified", + "results/Wecsim/position_THD_contour.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi__histogram.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single__histogram.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi__histogram.fig": "modified", + "results/Wecsim/accel_fourier_harmonics.fig": "modified", + "results/Wecsim/drag_force_desc_fcn.fig": "modified", + "results/Wecsim/position_THD_contour.fig": "modified", + "results/Wecsim/WECSim_errors.tex": "modified", + "results/Wecsim/end.mat": "modified", + "results/Wecsim/end.json": "modified" + } + } + ], + "all-postpro": [ + { + "changed deps": { + "results/AllFigCompare/runtime_bar_chart.pdf": "modified", + "results/AllFigCompare/runtime_bar_chart.fig": "modified", + "results/AllFigCompare/end.mat": "modified", + "results/AllFigCompare/end.json": "modified", + "results/Comparison/overlaid_geometry.pdf": "modified", + "results/Comparison/overlaid_hydro_coeffs.pdf": "modified", + "results/Comparison/probability_CDF.pdf": "modified", + "results/Comparison/comparison_power_matrix.pdf": "modified", + "results/Comparison/overlaid_geometry.fig": "modified", + "results/Comparison/overlaid_hydro_coeffs.fig": "modified", + "results/Comparison/probability_CDF.fig": "modified", + "results/Comparison/comparison_power_matrix.fig": "modified", + "results/Comparison/optimal_design_vars.tex": "modified", + "results/Comparison/optimal_outputs.tex": "modified", + "results/Comparison/end.mat": "modified", + "results/Comparison/end.json": "modified", + "results/Constraints/constraints.tex": "modified", + "results/Constraints/end.mat": "modified", + "results/Constraints/end.json": "modified", + "results/Cost/cost_parameters.tex": "modified", + "results/Cost/end.mat": "modified", + "results/Cost/end.json": "modified", + "results/DampingPlateStructures/damping_plate_aspect_ratio.pdf": "modified", + "results/DampingPlateStructures/damping_plate_deflection.pdf": "modified", + "results/DampingPlateStructures/damping_plate_moment.pdf": "modified", + "results/DampingPlateStructures/damping_plate_aspect_ratio.fig": "modified", + "results/DampingPlateStructures/damping_plate_deflection.fig": "modified", + "results/DampingPlateStructures/damping_plate_moment.fig": "modified", + "results/DampingPlateStructures/end.mat": "modified", + "results/DampingPlateStructures/end.json": "modified", + "results/DescFcns/saturation_desc_fcn.pdf": "modified", + "results/DescFcns/saturation_desc_fcn_alpha.pdf": "modified", + "results/DescFcns/drag_desc_fcn.pdf": "modified", + "results/DescFcns/saturation_desc_fcn.fig": "modified", + "results/DescFcns/saturation_desc_fcn_alpha.fig": "modified", + "results/DescFcns/drag_desc_fcn.fig": "modified", + "results/DescFcns/end.mat": "modified", + "results/DescFcns/end.json": "modified", + "results/DesignSpaceExploration/experiments_ratios.pdf": "modified", + "results/DesignSpaceExploration/experiments_ratios.fig": "modified", + "results/DesignSpaceExploration/experiments_results.tex": "modified", + "results/DesignSpaceExploration/end.mat": "modified", + "results/DesignSpaceExploration/end.json": "modified", + "results/DesignVars/design_vars.tex": "modified", + "results/DesignVars/end.mat": "modified", + "results/DesignVars/end.json": "modified", + "results/DragIntegral/drag_integral_B.pdf": "modified", + "results/DragIntegral/drag_integral_G_r.pdf": "modified", + "results/DragIntegral/drag_integral_G_i.pdf": "modified", + "results/DragIntegral/drag_integral_G_m.pdf": "modified", + "results/DragIntegral/drag_integral_G_p.pdf": "modified", + "results/DragIntegral/drag_integral_B.fig": "modified", + "results/DragIntegral/drag_integral_G_r.fig": "modified", + "results/DragIntegral/drag_integral_G_i.fig": "modified", + "results/DragIntegral/drag_integral_G_m.fig": "modified", + "results/DragIntegral/drag_integral_G_p.fig": "modified", + "results/DragIntegral/end.mat": "modified", + "results/DragIntegral/end.json": "modified", + "results/FitOlaya/orig_3b_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_4b_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_12a_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_12b_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_12c_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_12d_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/case24_compare_line_kRb_fnorm.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_fnorm.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_a2.pdf": "modified", + "results/FitOlaya/case2_line_khRxRpa2_f_over_a2.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_a2H0.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.pdf": "modified", + "results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.pdf": "modified", + "results/FitOlaya/case4_sub_line_kRb_fnorm.pdf": "modified", + "results/FitOlaya/case4_sub_line_khRxRp_fnorm.pdf": "modified", + "results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.pdf": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.pdf": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sep_coeffs_vs_beta.pdf": "modified", + "results/FitOlaya/case4_sep_coeffs_vs_alpha.pdf": "modified", + "results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.pdf": "modified", + "results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.pdf": "modified", + "results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v1_coeffs_vs_beta.pdf": "modified", + "results/FitOlaya/case4_v1_coeffs_vs_alpha.pdf": "modified", + "results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.pdf": "modified", + "results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.pdf": "modified", + "results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v2_coeffs_vs_beta.pdf": "modified", + "results/FitOlaya/case4_v2_coeffs_vs_alpha.pdf": "modified", + "results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.pdf": "modified", + "results/FitOlaya/case4_v3_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.pdf": "modified", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.pdf": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_beta.pdf": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_alpha.pdf": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.pdf": "modified", + "results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.pdf": "modified", + "results/FitOlaya/orig_3b_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_4b_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_12a_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_12b_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_12c_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_12d_line_kRb_fbar.fig": "modified", + "results/FitOlaya/case24_compare_line_kRb_fnorm.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_fnorm.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_a2.fig": "modified", + "results/FitOlaya/case2_line_khRxRpa2_f_over_a2.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_a2H0.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.fig": "modified", + "results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.fig": "modified", + "results/FitOlaya/case4_sub_line_kRb_fnorm.fig": "modified", + "results/FitOlaya/case4_sub_line_khRxRp_fnorm.fig": "modified", + "results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.fig": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.fig": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.fig": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.fig": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.fig": "modified", + "results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.fig": "modified", + "results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.fig": "modified", + "results/FitOlaya/case4_sep_coeffs_vs_beta.fig": "modified", + "results/FitOlaya/case4_sep_coeffs_vs_alpha.fig": "modified", + "results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.fig": "modified", + "results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.fig": "modified", + "results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v1_coeffs_vs_beta.fig": "modified", + "results/FitOlaya/case4_v1_coeffs_vs_alpha.fig": "modified", + "results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.fig": "modified", + "results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.fig": "modified", + "results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v2_coeffs_vs_beta.fig": "modified", + "results/FitOlaya/case4_v2_coeffs_vs_alpha.fig": "modified", + "results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.fig": "modified", + "results/FitOlaya/case4_v3_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.fig": "modified", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.fig": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_beta.fig": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_alpha.fig": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.fig": "modified", + "results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.fig": "modified", + "results/FitOlaya/end.mat": "modified", + "results/FitOlaya/end.json": "modified", + "results/ForceSaturationFigFunc/power_force_sensitivity.pdf": "modified", + "results/ForceSaturationFigFunc/runtime_sensitivity.pdf": "modified", + "results/ForceSaturationFigFunc/power_force_sensitivity.fig": "modified", + "results/ForceSaturationFigFunc/runtime_sensitivity.fig": "modified", + "results/ForceSaturationFigFunc/end.mat": "modified", + "results/ForceSaturationFigFunc/end.json": "modified", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_opt_geometry.pdf": "modified", + "results/GradientOptimFigFunc/lagrange_multipliers.pdf": "modified", + "results/GradientOptimFigFunc/delta_x.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_convergence.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.fig": "modified", + "results/GradientOptimFigFunc/single_obj_opt_geometry.fig": "modified", + "results/GradientOptimFigFunc/lagrange_multipliers.fig": "modified", + "results/GradientOptimFigFunc/delta_x.fig": "modified", + "results/GradientOptimFigFunc/single_obj_convergence.fig": "modified", + "results/GradientOptimFigFunc/single_obj_optim_results.tex": "modified", + "results/GradientOptimFigFunc/end.mat": "modified", + "results/GradientOptimFigFunc/end.json": "modified", + "results/HydroCoeffFigFunc/hydro_coeff_err.pdf": "modified", + "results/HydroCoeffFigFunc/hydro_coeff_err.fig": "modified", + "results/HydroCoeffFigFunc/end.mat": "modified", + "results/HydroCoeffFigFunc/end.json": "modified", + "results/LocationSensitivity/location_1_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_2_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_3_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_4_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_probability_PDF.pdf": "modified", + "results/LocationSensitivity/location_1_power_matrix.fig": "modified", + "results/LocationSensitivity/location_2_power_matrix.fig": "modified", + "results/LocationSensitivity/location_3_power_matrix.fig": "modified", + "results/LocationSensitivity/location_4_power_matrix.fig": "modified", + "results/LocationSensitivity/location_probability_PDF.fig": "modified", + "results/LocationSensitivity/location_sensitivity.tex": "modified", + "results/LocationSensitivity/end.mat": "modified", + "results/LocationSensitivity/end.json": "modified", + "results/Meem/meem_sparsity.pdf": "modified", + "results/Meem/meem_validation.pdf": "modified", + "results/Meem/meem_matching.pdf": "modified", + "results/Meem/meem_convergence_vs_omega.pdf": "modified", + "results/Meem/meem_convergence_vs_NMK.pdf": "modified", + "results/Meem/asymptotic_b_vector.pdf": "modified", + "results/Meem/meem_sparsity.fig": "modified", + "results/Meem/meem_validation.fig": "modified", + "results/Meem/meem_matching.fig": "modified", + "results/Meem/meem_convergence_vs_omega.fig": "modified", + "results/Meem/meem_convergence_vs_NMK.fig": "modified", + "results/Meem/asymptotic_b_vector.fig": "modified", + "results/Meem/end.mat": "modified", + "results/Meem/end.json": "modified", + "results/Multistart/multistart_convergence_tree.pdf": "modified", + "results/Multistart/multistart_parallel_coordinates.pdf": "modified", + "results/Multistart/multistart_bar_chart.pdf": "modified", + "results/Multistart/multistart_convergence_tree.fig": "modified", + "results/Multistart/multistart_parallel_coordinates.fig": "modified", + "results/Multistart/multistart_bar_chart.fig": "modified", + "results/Multistart/multistart_results.tex": "modified", + "results/Multistart/end.mat": "modified", + "results/Multistart/end.json": "modified", + "results/ParamSensitivities/re_optim_constraint_grid.pdf": "modified", + "results/ParamSensitivities/post_optim_constraint_grid.pdf": "modified", + "results/ParamSensitivities/re_optim_design_grid.pdf": "modified", + "results/ParamSensitivities/post_optim_design_grid.pdf": "modified", + "results/ParamSensitivities/re_optim_objective_grid.pdf": "modified", + "results/ParamSensitivities/post_optim_re_optim_objective_grid.pdf": "modified", + "results/ParamSensitivities/nonlinear_objectives.pdf": "modified", + "results/ParamSensitivities/nonlinear_design_J1.pdf": "modified", + "results/ParamSensitivities/nonlinear_design_J2.pdf": "modified", + "results/ParamSensitivities/re_optim_objective_tornado.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x1.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x2.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x3.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x4.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x5.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x6.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x7.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x8.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x9.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x10.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x11.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x12.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_J1.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_J2.pdf": "modified", + "results/ParamSensitivities/re_optim_constraint_grid.fig": "modified", + "results/ParamSensitivities/post_optim_constraint_grid.fig": "modified", + "results/ParamSensitivities/re_optim_design_grid.fig": "modified", + "results/ParamSensitivities/post_optim_design_grid.fig": "modified", + "results/ParamSensitivities/re_optim_objective_grid.fig": "modified", + "results/ParamSensitivities/post_optim_re_optim_objective_grid.fig": "modified", + "results/ParamSensitivities/nonlinear_objectives.fig": "modified", + "results/ParamSensitivities/nonlinear_design_J1.fig": "modified", + "results/ParamSensitivities/nonlinear_design_J2.fig": "modified", + "results/ParamSensitivities/re_optim_objective_tornado.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x1.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x2.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x3.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x4.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x5.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x6.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x7.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x8.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x9.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x10.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x11.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x12.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_J1.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_J2.fig": "modified", + "results/ParamSensitivities/end.mat": "modified", + "results/ParamSensitivities/end.json": "modified", + "results/Parameters/parameters.tex": "modified", + "results/Parameters/end.mat": "modified", + "results/Parameters/end.json": "modified", + "results/ParetoFigFunc/pareto_front_with_design_images.pdf": "modified", + "results/ParetoFigFunc/pareto_front_LCOE_contours.pdf": "modified", + "results/ParetoFigFunc/pareto_heuristics.pdf": "modified", + "results/ParetoFigFunc/pareto_constraint_activity_damping.pdf": "modified", + "results/ParetoFigFunc/pareto_constraint_activity_reactive.pdf": "modified", + "results/ParetoFigFunc/pareto_front_with_design_images.fig": "modified", + "results/ParetoFigFunc/pareto_front_LCOE_contours.fig": "modified", + "results/ParetoFigFunc/pareto_heuristics.fig": "modified", + "results/ParetoFigFunc/pareto_constraint_activity_damping.fig": "modified", + "results/ParetoFigFunc/pareto_constraint_activity_reactive.fig": "modified", + "results/ParetoFigFunc/end.mat": "modified", + "results/ParetoFigFunc/end.json": "modified", + "results/ParetoSweep/sweep_num_seeds.pdf": "modified", + "results/ParetoSweep/sweep_num_seeds.fig": "modified", + "results/ParetoSweep/end.mat": "modified", + "results/ParetoSweep/end.json": "modified", + "results/PtoSweep/pto_sweep.pdf": "modified", + "results/PtoSweep/pto_sweep_constraint_activity.pdf": "modified", + "results/PtoSweep/pto_sweep.fig": "modified", + "results/PtoSweep/pto_sweep_constraint_activity.fig": "modified", + "results/PtoSweep/end.mat": "modified", + "results/PtoSweep/end.json": "modified", + "results/QPCircles/qp_circles.pdf": "modified", + "results/QPCircles/qp_circles.fig": "modified", + "results/QPCircles/end.mat": "modified", + "results/QPCircles/end.json": "modified", + "results/ReadNonMatlabFigs/control_analysis_flowcharts.pdf": "modified", + "results/ReadNonMatlabFigs/damping_plate_flowchart.pdf": "modified", + "results/ReadNonMatlabFigs/dimensions.pdf": "modified", + "results/ReadNonMatlabFigs/equivalent_stiffness.pdf": "modified", + "results/ReadNonMatlabFigs/FBD.pdf": "modified", + "results/ReadNonMatlabFigs/graphical_abstract_modeling.pdf": "modified", + "results/ReadNonMatlabFigs/MEEM_geometry.pdf": "modified", + "results/ReadNonMatlabFigs/methodology_flowchart.pdf": "modified", + "results/ReadNonMatlabFigs/mod_freq_domain_ctrl_synthesis.pdf": "modified", + "results/ReadNonMatlabFigs/mod_freq_domain_ctrl_evaluation.pdf": "modified", + "results/ReadNonMatlabFigs/graphical_abstract_optim.pdf": "modified", + "results/ReadNonMatlabFigs/optimization_flowchart.pdf": "modified", + "results/ReadNonMatlabFigs/RM3_image.pdf": "modified", + "results/ReadNonMatlabFigs/section_flow.pdf": "modified", + "results/ReadNonMatlabFigs/sim_runtime.pdf": "modified", + "results/ReadNonMatlabFigs/taxonomy.pdf": "modified", + "results/ReadNonMatlabFigs/trapezoid.pdf": "modified", + "results/ReadNonMatlabFigs/xdsm.pdf": "modified", + "results/ReadNonMatlabFigs/end.mat": "modified", + "results/ReadNonMatlabFigs/end.json": "modified", + "results/RunSingleFigFunc/nominal_geometry_viz.pdf": "modified", + "results/RunSingleFigFunc/nominal_power_pdf.pdf": "modified", + "results/RunSingleFigFunc/nominal_power_matrix.pdf": "modified", + "results/RunSingleFigFunc/drag_convergence.pdf": "modified", + "results/RunSingleFigFunc/ctrl_polar_plot_mult.pdf": "modified", + "results/RunSingleFigFunc/ctrl_polar_plot_gamma.pdf": "modified", + "results/RunSingleFigFunc/slamming_model_comparison_float.pdf": "modified", + "results/RunSingleFigFunc/slamming_model_comparison_spar.pdf": "modified", + "results/RunSingleFigFunc/qcqp_circles_nominal.pdf": "modified", + "results/RunSingleFigFunc/qcqp_circles_overlay.pdf": "modified", + "results/RunSingleFigFunc/nominal_geometry_viz.fig": "modified", + "results/RunSingleFigFunc/nominal_power_pdf.fig": "modified", + "results/RunSingleFigFunc/nominal_power_matrix.fig": "modified", + "results/RunSingleFigFunc/drag_convergence.fig": "modified", + "results/RunSingleFigFunc/ctrl_polar_plot_mult.fig": "modified", + "results/RunSingleFigFunc/ctrl_polar_plot_gamma.fig": "modified", + "results/RunSingleFigFunc/slamming_model_comparison_float.fig": "modified", + "results/RunSingleFigFunc/slamming_model_comparison_spar.fig": "modified", + "results/RunSingleFigFunc/qcqp_circles_nominal.fig": "modified", + "results/RunSingleFigFunc/qcqp_circles_overlay.fig": "modified", + "results/RunSingleFigFunc/end.mat": "modified", + "results/RunSingleFigFunc/end.json": "modified", + "results/Runtime/dynamics_runtime.pdf": "modified", + "results/Runtime/hydro_runtime_logscale.pdf": "modified", + "results/Runtime/hydro_runtime_breakdown.pdf": "modified", + "results/Runtime/sim_runtime.pdf": "modified", + "results/Runtime/dynamics_runtime.fig": "modified", + "results/Runtime/hydro_runtime_logscale.fig": "modified", + "results/Runtime/hydro_runtime_breakdown.fig": "modified", + "results/Runtime/sim_runtime.fig": "modified", + "results/Runtime/end.mat": "modified", + "results/Runtime/end.json": "modified", + "results/Slamming/slamming_amplitude.pdf": "modified", + "results/Slamming/slamming_amplitude.fig": "modified", + "results/Slamming/end.mat": "modified", + "results/Slamming/end.json": "modified", + "results/SparHydro/spar_added_mass.pdf": "modified", + "results/SparHydro/spar_added_mass.fig": "modified", + "results/SparHydro/end.mat": "modified", + "results/SparHydro/end.json": "modified", + "results/SweepGeoms/sweep_geoms_parallel.pdf": "modified", + "results/SweepGeoms/sweep_geoms_scatter.pdf": "modified", + "results/SweepGeoms/sweep_geoms_line.pdf": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_a2.pdf": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_vol.pdf": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_sa.pdf": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_a2.pdf": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_vol.pdf": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_sa.pdf": "modified", + "results/SweepGeoms/sweep_geoms_pareto.pdf": "modified", + "results/SweepGeoms/sweep_geoms_pareto_nondim.pdf": "modified", + "results/SweepGeoms/sweep_geoms_grid_scatter.pdf": "modified", + "results/SweepGeoms/factor_grid.pdf": "modified", + "results/SweepGeoms/sweep_geoms_parallel.fig": "modified", + "results/SweepGeoms/sweep_geoms_scatter.fig": "modified", + "results/SweepGeoms/sweep_geoms_line.fig": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_a2.fig": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_vol.fig": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_sa.fig": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_a2.fig": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_vol.fig": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_sa.fig": "modified", + "results/SweepGeoms/sweep_geoms_pareto.fig": "modified", + "results/SweepGeoms/sweep_geoms_pareto_nondim.fig": "modified", + "results/SweepGeoms/sweep_geoms_grid_scatter.fig": "modified", + "results/SweepGeoms/factor_grid.fig": "modified", + "results/SweepGeoms/end.mat": "modified", + "results/SweepGeoms/end.json": "modified", + "results/Validation/cost_vs_N_WEC.pdf": "modified", + "results/Validation/cost_vs_N_WEC.fig": "modified", + "results/Validation/validation.tex": "modified", + "results/Validation/end.mat": "modified", + "results/Validation/end.json": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi__histogram.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single__histogram.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi__histogram.pdf": "modified", + "results/Wecsim/accel_fourier_harmonics.pdf": "modified", + "results/Wecsim/drag_force_desc_fcn.pdf": "modified", + "results/Wecsim/position_THD_contour.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi__histogram.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single__histogram.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi__histogram.fig": "modified", + "results/Wecsim/accel_fourier_harmonics.fig": "modified", + "results/Wecsim/drag_force_desc_fcn.fig": "modified", + "results/Wecsim/position_THD_contour.fig": "modified", + "results/Wecsim/WECSim_errors.tex": "modified", + "results/Wecsim/end.mat": "modified", + "results/Wecsim/end.json": "modified" + } + } + ], + "test-aor": [ + { + "changed deps": { + "tests": "modified", + "mdocean": "modified", + "results/Comparison/intermed.mat": "modified", + "results/Cost/intermed.mat": "modified", + "results/DampingPlateStructures/intermed.mat": "modified", + "results/DampingPlateStructures/intermed_figs_1.fig": "modified", + "results/DampingPlateStructures/intermed_figs_2.fig": "modified", + "results/DampingPlateStructures/intermed_figs_3.fig": "modified", + "results/DescFcns/intermed.mat": "modified", + "results/DescFcns/intermed_created_figs_1.fig": "modified", + "results/DescFcns/intermed_created_figs_3.fig": "modified", + "results/DescFcns/intermed_created_figs_2.fig": "modified", + "results/DesignSpaceExploration/intermed.mat": "modified", + "results/DragIntegral/intermed.mat": "modified", + "results/ForceSaturationFigFunc/intermed.mat": "modified", + "results/ForceSaturationFigFunc/intermed_fig2_1.fig": "modified", + "results/ForceSaturationFigFunc/intermed_fig1_1.fig": "modified", + "results/HydroCoeffFigFunc/intermed.mat": "modified", + "results/HydroCoeffFigFunc/intermed_created_figs_1.fig": "modified", + "results/Meem/intermed.mat": "modified", + "results/Meem/intermed_b_vector_fig_1.fig": "modified", + "results/Meem/intermed_figHydroCoeff_1.fig": "modified", + "results/Meem/intermed_figSparsity_1.fig": "modified", + "results/Meem/intermed_figVelMatch_1.fig": "modified", + "results/Meem/intermed_figPotMatch_1.fig": "modified", + "results/Meem/intermed_fig_convergence_vs_omega_1.fig": "modified", + "results/Meem/intermed_fig_convergence_vs_NMK_1.fig": "modified", + "results/ReadNonMatlabFigs/intermed.mat": "modified", + "results/RunSingleFigFunc/intermed.mat": "modified", + "results/RunSingleFigFunc/intermed_created_figs_1.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_2.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_3.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_4.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_5.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_6.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_7.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_8.fig": "modified", + "results/Runtime/intermed.mat": "modified", + "results/Slamming/intermed.mat": "modified", + "results/Slamming/intermed_figure_handle_1.fig": "modified", + "results/SparHydro/intermed.mat": "modified", + "results/SparHydro/intermed_figure_handle_1.fig": "modified", + "results/Validation/intermed.mat": "modified", + "results/Validation/intermed_fig_cost_vs_N_WEC_1.fig": "modified", + "results/Wecsim/intermed.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_off_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_0_meem_off_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_10_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_0_meem_10_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_off_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_0_meem_off_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_10_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_0_meem_10_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_off_geom_report.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_10_geom_report.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_off_geom_report.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_10_geom_report.mat": "modified" + } + }, + { + "changed outs": { + "test-results/aor": "deleted", + "code-coverage/aor": "deleted" + } + } + ], + "test-re": [ + { + "changed deps": { + "tests": "modified", + "mdocean": "modified", + "results/AllFigCompare/intermed.mat": "modified", + "results/Comparison/intermed.mat": "modified", + "results/Constraints/intermed.mat": "modified", + "results/DesignSpaceExploration/intermed.mat": "modified", + "results/DesignVars/intermed.mat": "modified", + "results/GradientOptimFigFunc/intermed.mat": "modified", + "results/GradientOptimFigFunc/intermed_convergence_plot_1.fig": "modified", + "results/LocationSensitivity/intermed.mat": "modified", + "results/LocationSensitivity/intermed_h_power_matrix_1.fig": "modified", + "results/LocationSensitivity/intermed_h_power_matrix_2.fig": "modified", + "results/LocationSensitivity/intermed_h_power_matrix_3.fig": "modified", + "results/LocationSensitivity/intermed_h_power_matrix_4.fig": "modified", + "results/LocationSensitivity/intermed_h_probability_PDF_1.fig": "modified", + "results/Multistart/intermed.mat": "modified", + "results/ParamSensitivities/intermed.mat": "modified", + "results/Parameters/intermed.mat": "modified", + "results/ParetoFigFunc/intermed.mat": "modified", + "results/ParetoSweep/intermed.mat": "modified", + "results/ReadNonMatlabFigs/intermed.mat": "modified" + } + }, + { + "changed outs": { + "test-results/re": "deleted", + "code-coverage/re": "deleted" + } + } + ], + "viz-ReadNonMatlabFigs": [ + { + "changed deps": { + "results/ReadNonMatlabFigs/graphical_abstract_optim.pdf": "modified", + "results/ReadNonMatlabFigs/end.mat": "modified", + "results/ReadNonMatlabFigs/end.json": "modified" + } + } + ], + "move-re-results": [ + { + "changed deps": { + "results/ReadNonMatlabFigs": "modified", + "results/GradientOptimFigFunc": "modified", + "mdocean/plots/fig_tab_pub_mapping.m": "modified", + "mdocean/plots/non_matlab_figs/pdf": "modified" + } + } + ], + "aor-results-to-latex": [ + { + "changed outs": { + "pubs/applied-ocean-research-model/numeric-results.tex": "modified" + } + } + ], + "check-dup-json-keys": [ + { + "changed deps": { + "results": "modified" + } + } + ], + "copy-shared-latex": [ + { + "changed outs": { + "pubs/applied-ocean-research-model/shared-pkg.tex": "modified" + } + } + ], + "paperlint-aor": [ + { + "changed deps": { + "dev/latex/Paper-Linter/paperlint.py": "modified", + "pubs/applied-ocean-research-model": "modified" + } + } + ], + "paperlint-re": [ + { + "changed deps": { + "dev/latex/Paper-Linter/paperlint.py": "modified", + "pubs/renewable-energy-mdo": "modified" + } + } + ], + "build-RE-paper": [ + { + "changed deps": { + "pubs/renewable-energy-mdo/sections": "modified", + "pubs/renewable-energy-mdo/shared-pkg.tex": "modified" + } + }, + { + "changed outs": { + "pubs/renewable-energy-mdo/aux": "modified" + } + } + ], + "build-AOR-paper": [ + { + "changed deps": { + "pubs/applied-ocean-research-model/numeric-results.tex": "modified", + "pubs/applied-ocean-research-model/shared-pkg.tex": "modified" + } + } + ], + "build-dissertation": [ + { + "changed deps": { + "pubs/dissertation/intro-contrib.tex": "modified", + "pubs/applied-ocean-research-model/numeric-results.tex": "modified", + "pubs/applied-ocean-research-model/content.tex": "modified", + "pubs/applied-ocean-research-model/sections": "modified", + "pubs/applied-ocean-research-model/figs": "modified", + "pubs/applied-ocean-research-model/commands-aor.tex": "modified", + "pubs/renewable-energy-mdo/numeric-results.tex": "modified", + "pubs/renewable-energy-mdo/sections": "modified", + "pubs/renewable-energy-mdo/figs": "modified", + "pubs/renewable-energy-mdo/tables": "modified", + "pubs/renewable-energy-mdo/commands-re.tex": "modified", + "pubs/renewable-energy-mdo/content-re.tex": "modified", + "pubs/UMERC-2025-grid-value": "modified", + "pubs/dissertation/references.bib": "modified", + "pubs/shared/shared-pkg.tex": "modified", + "mdocean/simulation/modules/OpenFLASH/pubs/JFM/figs": "modified", + "mdocean/simulation/modules/OpenFLASH/pubs/JFM/FLMguide.tex": "modified", + "mdocean/simulation/modules/OpenFLASH/pubs/JFM/zotero-meem-refs.bib": "modified" + } + }, + { + "changed outs": { + "pubs/dissertation/sampleThesis.synctex.gz": "modified", + "pubs/dissertation/aux": "modified" + } + } + ], + "view-aor-figs": [ + { + "changed deps": { + "pubs/applied-ocean-research-model/figs": "modified" + } + } + ], + "view-re-figs": [ + { + "changed deps": { + "pubs/renewable-energy-mdo/figs": "modified" + } + } + ], + "make-quarto-yaml": [ + { + "changed deps": { + "results/DesignSpaceExploration/end.json": "modified", + "results/ForceSaturationFigFunc/end.json": "modified", + "results/GradientOptimFigFunc/end.json": "modified", + "results/Parameters/end.json": "modified", + "results/Runtime/end.json": "modified", + "results/Validation/end.json": "modified", + "results/Wecsim/end.json": "modified", + ".calkit/env-locks/pubs": "modified" + } + } + ], + "render-quarto-html": [ + { + "changed deps": { + "pubs/defense/figs": "modified", + "pubs/defense/quarto/slides.qmd": "modified" + } + } + ], + "render-quarto-pdf": [ + { + "changed deps": { + "pubs/defense/quarto/slides.html": "modified" + } + } + ] + }, + "dvc_data_status_before": { + "not_in_cache": [], + "not_in_remote": [], + "committed": { + "deleted": [ + "pubs/defense/ppt/McCabe_Dissertation_Defense.pdf", + "pubs/defense/ppt/McCabe_Dissertation_Defense.pptx" + ] + }, + "uncommitted": {}, + "untracked": [], + "unchanged": [ + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.pdf", + "results/SweepGeoms/sweep_geoms_pareto_nondim.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.pdf", + "results/DragIntegral/drag_integral_G_i.fig", + "results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.pdf", + "results/RunSingleFigFunc/qcqp_circles_overlay.pdf", + "results/Meem/meem_convergence_vs_NMK.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.fig", + "results/DragIntegral/drag_integral_B.fig", + "pubs/defense/figs/img0066.png", + "results/ParamSensitivities/post_optim_re_optim_objective_grid.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x3.pdf", + "pubs/defense/figs/img0067.png", + "results/FitOlaya/case4_v4_coeffs_vs_alpha.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.fig", + "pubs/defense/figs/img0011.png", + "results/Wecsim/position_THD_contour.pdf", + "results/Multistart/end.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.pdf", + "results/LocationSensitivity/location_probability_PDF.fig", + "results/ParetoSweep/intermed.mat", + "results/QPCircles/intermed.mat", + "results/FitOlaya/orig_4b_line_kRb_fbar.pdf", + "results/ParetoFigFunc/pareto_front_LCOE_contours.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.pdf", + "mdocean/plots/non_matlab_figs/pdf/MEEM_geometry.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.pdf", + "results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.fig", + "results/DescFcns/saturation_desc_fcn.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.fig", + "results/Meem/asymptotic_b_vector.pdf", + "results/ParamSensitivities/nonlinear_design_J2.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.pdf", + "results/LocationSensitivity/end.mat", + "results/Wecsim/accel_fourier_harmonics.pdf", + "results/FitOlaya/case4_sub_line_kRb_fnorm.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.pdf", + "results/SweepGeoms/sweep_geoms_scatter.pdf", + "results/Constraints/intermed.mat", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.pdf", + "pubs/defense/figs/img0038.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.fig", + "mdocean/plots/non_matlab_figs/img/mod_freq_domain_ctrl_evaluation.png", + "results/ParamSensitivities/re_optim_design_tornado_J2.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.fig", + "results/Wecsim/position_THD_contour.fig", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_10_geom_report.mat", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.fig", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.fig", + "results/GradientOptimFigFunc/single_obj_opt_geometry.fig", + "results/ParamSensitivities/re_optim_design_tornado_x4.pdf", + "results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.fig", + "results/Runtime/dynamics_runtime.pdf", + "results/Comparison/comparison_power_matrix.fig", + "results/Multistart/multistart_convergence_tree.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_a2.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.pdf", + "results/DragIntegral/drag_integral_G_p.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.fig", + "results/PtoSweep/pto_sweep_constraint_activity.fig", + "results/Multistart/multistart_parallel_coordinates.fig", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.fig", + "results/LocationSensitivity/intermed_h_power_matrix_3.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.pdf", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x7.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_10_geom_report.mat", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.fig", + "results/Slamming/slamming_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.pdf", + "results/RunSingleFigFunc/slamming_model_comparison_spar.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.fig", + "results/ParamSensitivities/re_optim_design_tornado_x8.pdf", + "results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.pdf", + "results/DampingPlateStructures/damping_plate_moment.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.pdf", + "results/SweepGeoms/sweep_geoms_scatter.fig", + "results/FitOlaya/case4_v4_coeffs_vs_alpha.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.pdf", + "results/RunSingleFigFunc/intermed_created_figs_3.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.fig", + "results/SweepGeoms/sweep_geoms_grid_scatter.fig", + "results/Wecsim/drag_force_desc_fcn.fig", + "results/ReadNonMatlabFigs/damping_plate_flowchart.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.pdf", + "mdocean/plots/non_matlab_figs/pdf/sim_runtime.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.pdf", + "results/FitOlaya/case4_v3_scatter_actual_vs_pred.pdf", + "results/GradientOptimFigFunc/end.mat", + "results/ParetoSweep/sweep_num_seeds.fig", + "results/ParetoFigFunc/pareto_front_LCOE_contours.pdf", + "results/GradientOptimFigFunc/intermed.mat", + "results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.pdf", + "results/RunSingleFigFunc/slamming_model_comparison_spar.fig", + "mdocean/plots/non_matlab_figs/pdf/trapezoid.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.pdf", + "results/FitOlaya/case4_sub_line_kRb_fnorm.pdf", + "results/ParamSensitivities/post_optim_constraint_grid.pdf", + "pubs/defense/figs/img0071.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.pdf", + "results/GradientOptimFigFunc/lagrange_multipliers.fig", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_10_geom_wecsim.mat", + "results/Comparison/end.mat", + "results/FitOlaya/orig_12d_line_kRb_fbar.pdf", + "results/Runtime/sim_runtime.pdf", + "results/SparHydro/spar_added_mass.fig", + "results/SparHydro/end.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.pdf", + "pubs/defense/figs/img0021.png", + "mdocean/plots/non_matlab_figs/pdf/dimensions.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.fig", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.pdf", + "results/Meem/end.mat", + "pubs/defense/figs/img0070.png", + "results/Meem/intermed_fig_convergence_vs_NMK_1.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.pdf", + "pubs/defense/figs/img0029.png", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.pdf", + "results/SweepGeoms/sweep_geoms_scatter_cwr_a2.fig", + "results/ParamSensitivities/re_optim_design_tornado_x9.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.pdf", + "results/RunSingleFigFunc/intermed_created_figs_4.fig", + "results/HydroCoeffFigFunc/intermed.mat", + "pubs/defense/figs/img0047.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.fig", + "results/ReadNonMatlabFigs/MEEM_geometry.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.fig", + "results/ParamSensitivities/re_optim_objective_tornado.fig", + "pubs/UMERC-2025-grid-value/UMERC_2025_grid_value.pdf", + "pubs/defense/figs/img0050.png", + "pubs/applied-ocean-research-model/main.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.fig", + "results/ForceSaturationFigFunc/power_force_sensitivity.pdf", + "results/SweepGeoms/intermed.mat", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_off_geom_wecsim.mat", + "results/ParamSensitivities/re_optim_design_tornado_x1.pdf", + "results/Runtime/sim_runtime.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.fig", + "results/HydroCoeffFigFunc/end.mat", + "results/Meem/meem_validation.pdf", + "results/Runtime/hydro_runtime_breakdown.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.fig", + "results/ParetoSweep/sweep_num_seeds.pdf", + "results/ReadNonMatlabFigs/intermed.mat", + "results/Wecsim/wecsim_rpt_multi__histogram.pdf", + "pubs/defense/figs/img0057.png", + "results/FitOlaya/orig_12d_line_kRb_fbar.fig", + "results/ReadNonMatlabFigs/taxonomy.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.fig", + "results/RunSingleFigFunc/intermed_created_figs_7.fig", + "results/Validation/intermed.mat", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.pdf", + "results/Parameters/end.mat", + "results/ParamSensitivities/re_optim_design_tornado_x5.fig", + "results/Comparison/overlaid_geometry.pdf", + "results/ParetoFigFunc/pareto_heuristics.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.pdf", + "results/DampingPlateStructures/intermed_figs_2.fig", + "results/RunSingleFigFunc/nominal_power_matrix.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.fig", + "results/Constraints/end.mat", + "results/DampingPlateStructures/damping_plate_deflection.fig", + "results/FitOlaya/orig_12c_line_kRb_fbar.fig", + "results/Comparison/overlaid_hydro_coeffs.fig", + "pubs/defense/figs/img0041.png", + "mdocean/plots/non_matlab_figs/img/sim_runtime.png", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.fig", + "results/Meem/intermed_figHydroCoeff_1.fig", + "results/FitOlaya/case4_sep_coeffs_vs_alpha.fig", + "mdocean/plots/non_matlab_figs/circuit_kinematics.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.pdf", + "results/Meem/meem_convergence_vs_NMK.fig", + "pubs/defense/figs/img0065.png", + "results/SweepGeoms/sweep_geoms_line_cwr_a2.pdf", + "mdocean/plots/non_matlab_figs/pdf/damping_plate_flowchart.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.pdf", + "results/ParamSensitivities/re_optim_design_tornado_J1.fig", + "mdocean/plots/non_matlab_figs/pdf/FBD.pdf", + "results/SweepGeoms/factor_grid.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.pdf", + "results/RunSingleFigFunc/ctrl_polar_plot_gamma.pdf", + "pubs/defense/figs/img0039.png", + "pubs/defense/figs/img0016.png", + "mdocean/plots/non_matlab_figs/img/taxonomy.png", + "mdocean/plots/non_matlab_figs/img/damping_plate_flowchart.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.fig", + "results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.fig", + "results/Wecsim/accel_fourier_harmonics.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.pdf", + "results/RunSingleFigFunc/intermed_created_figs_2.fig", + "mdocean/plots/non_matlab_figs/pdf/control_analysis_flowcharts.pdf", + "results/DragIntegral/drag_integral_G_r.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.pdf", + "results/ReadNonMatlabFigs/FBD.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.pdf", + "results/PtoSweep/pto_sweep.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.pdf", + "mdocean/plots/non_matlab_figs/pdf/methodology_flowchart.pdf", + "results/RunSingleFigFunc/intermed_created_figs_5.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_single__histogram.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.fig", + "results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.pdf", + "results/PtoSweep/pto_sweep.fig", + "results/ReadNonMatlabFigs/dimensions.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x5.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.pdf", + "mdocean/plots/non_matlab_figs/img/dimensions.jpg", + "results/Comparison/overlaid_geometry.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.pdf", + "results/RunSingleFigFunc/ctrl_polar_plot_gamma.fig", + "results/DesignSpaceExploration/experiments_ratios.pdf", + "results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.fig", + "results/GradientOptimFigFunc/single_obj_convergence.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.pdf", + "results/ParamSensitivities/end.mat", + "mdocean/plots/non_matlab_figs/img/xdsm.png", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.fig", + "results/ForceSaturationFigFunc/power_force_sensitivity.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.pdf", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.pdf", + "results/ReadNonMatlabFigs/graphical_abstract_optim.pdf", + "results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.pdf", + "results/Multistart/multistart_bar_chart.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.fig", + "pubs/defense/figs/icon-planet.png", + "results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.pdf", + "results/DragIntegral/drag_integral_G_m.pdf", + "mdocean/plots/non_matlab_figs/pdf/taxonomy.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.fig", + "results/ParamSensitivities/re_optim_design_tornado_x4.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.fig", + "results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.pdf", + "mdocean/plots/non_matlab_figs/pdf/mod_freq_domain_ctrl_evaluation.pdf", + "results/LocationSensitivity/location_2_power_matrix.pdf", + "results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.fig", + "results/Meem/intermed_figPotMatch_1.fig", + "results/Multistart/multistart_convergence_tree.pdf", + "results/RunSingleFigFunc/intermed.mat", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.pdf", + "results/Wecsim/drag_force_desc_fcn.pdf", + "results/SweepGeoms/sweep_geoms_scatter_cwr_a2.pdf", + "pubs/defense/figs/img0048.png", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_0_meem_10_geom_wecsim.mat", + "pubs/defense/figs/img0062.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.fig", + "results/ParamSensitivities/nonlinear_design_J2.fig", + "results/SweepGeoms/sweep_geoms_scatter_cwr_vol.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.pdf", + "mdocean/plots/non_matlab_figs/img/control_analysis_flowcharts.png", + "results/Wecsim/wecsim_wcsm_single__histogram.fig", + "results/Comparison/probability_CDF.fig", + "results/FitOlaya/end.mat", + "results/SweepGeoms/sweep_geoms_line.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.pdf", + "results/RunSingleFigFunc/intermed_created_figs_1.fig", + "results/Cost/intermed.mat", + "mdocean/plots/non_matlab_figs/img/methodology_flowchart.png", + "results/DescFcns/drag_desc_fcn.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.pdf", + "results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.pdf", + "results/ParetoFigFunc/pareto_heuristics.fig", + "results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.fig", + "results/Meem/intermed_fig_convergence_vs_omega_1.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.fig", + "pubs/defense/figs/img0054.png", + "results/FitOlaya/case4_v1_coeffs_vs_beta.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.pdf", + "results/SweepGeoms/factor_grid.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_a2H0.pdf", + "results/DesignSpaceExploration/end.mat", + "results/ParetoFigFunc/intermed.mat", + "pubs/defense/figs/img0000.png", + "results/SweepGeoms/sweep_geoms_scatter_cwr_sa.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.pdf", + "results/FitOlaya/case4_v1_coeffs_vs_alpha.fig", + "results/FitOlaya/case4_v3_scatter_actual_vs_pred.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.pdf", + "results/LocationSensitivity/location_4_power_matrix.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.fig", + "results/ParamSensitivities/post_optim_constraint_grid.fig", + "mdocean/plots/non_matlab_figs/img/graphical_abstract_modeling.png", + "results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.fig", + "pubs/defense/figs/img0069.png", + "pubs/defense/figs/img0056.png", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.fig", + "results/Multistart/multistart_bar_chart.fig", + "results/DampingPlateStructures/intermed_figs_1.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.pdf", + "results/FitOlaya/case4_v2_coeffs_vs_alpha.pdf", + "results/ParamSensitivities/re_optim_objective_tornado.pdf", + "results/Meem/intermed_figSparsity_1.fig", + "results/DescFcns/saturation_desc_fcn_alpha.pdf", + "results/Meem/meem_sparsity.fig", + "results/LocationSensitivity/location_probability_PDF.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.fig", + "mdocean/plots/non_matlab_figs/circuit_pto.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.pdf", + "mdocean/plots/non_matlab_figs/meem_dims.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.pdf", + "results/DesignSpaceExploration/experiments_ratios.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.fig", + "results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.pdf", + "results/ReadNonMatlabFigs/control_analysis_flowcharts.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.fig", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.fig", + "results/ParamSensitivities/re_optim_design_tornado_x12.pdf", + "results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.pdf", + "results/RunSingleFigFunc/nominal_power_matrix.pdf", + "results/RunSingleFigFunc/nominal_geometry_viz.fig", + "results/AllFigCompare/runtime_bar_chart.fig", + "pubs/defense/figs/img0064.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.fig", + "results/RunSingleFigFunc/ctrl_polar_plot_mult.fig", + "mdocean/plots/non_matlab_figs/pdf/RM3_image.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.pdf", + "results/RunSingleFigFunc/intermed_created_figs_8.fig", + "results/FitOlaya/orig_3b_line_kRb_fbar.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.fig", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_off_geom_wecsim.mat", + "results/Meem/asymptotic_b_vector.fig", + "results/Comparison/overlaid_hydro_coeffs.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.fig", + "results/DragIntegral/drag_integral_G_p.pdf", + "results/Slamming/intermed_figure_handle_1.fig", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.pdf", + "results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.fig", + "results/Slamming/intermed.mat", + "pubs/defense/figs/img0033.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.pdf", + "results/SparHydro/spar_added_mass.pdf", + "pubs/defense/figs/img0055.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.pdf", + "results/SweepGeoms/end.mat", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.fig", + "results/FitOlaya/orig_12a_line_kRb_fbar.fig", + "results/RunSingleFigFunc/qcqp_circles_nominal.pdf", + "results/ReadNonMatlabFigs/mod_freq_domain_ctrl_evaluation.pdf", + "mdocean/plots/non_matlab_figs/pdf/section_flow.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.pdf", + "results/DescFcns/intermed.mat", + "pubs/defense/figs/img0028.png", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.pdf", + "results/FitOlaya/case4_v4_coeffs_vs_beta.pdf", + "results/DescFcns/saturation_desc_fcn.fig", + "results/ParetoSweep/end.mat", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.pdf", + "results/DampingPlateStructures/damping_plate_aspect_ratio.pdf", + "results/GradientOptimFigFunc/lagrange_multipliers.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.fig", + "results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.fig", + "results/RunSingleFigFunc/intermed_created_figs_6.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.fig", + "results/ReadNonMatlabFigs/sim_runtime.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.fig", + "results/ParamSensitivities/re_optim_design_tornado_x1.fig", + "results/Meem/intermed_b_vector_fig_1.fig", + "pubs/defense/figs/img0058.png", + "mdocean/inputs/var_bounds.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.fig", + "results/ReadNonMatlabFigs/graphical_abstract_modeling.pdf", + "mdocean/plots/non_matlab_figs/img/drag_exc_phase_integral.svg", + "results/Multistart/intermed.mat", + "pubs/dissertation/sampleThesis.pdf", + "results/ReadNonMatlabFigs/methodology_flowchart.pdf", + "results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.fig", + "results/SweepGeoms/sweep_geoms_parallel.pdf", + "results/Parameters/intermed.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.fig", + "results/ParamSensitivities/re_optim_design_tornado_x10.fig", + "mdocean/plots/non_matlab_figs/img/MEEM_geometry.jpg", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.fig", + "pubs/defense/figs/pto.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.pdf", + "results/Runtime/hydro_runtime_breakdown.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.fig", + "results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.fig", + "pubs/defense/figs/img0063.png", + "results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.pdf", + "results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.pdf", + "results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.fig", + "results/DescFcns/intermed_created_figs_2.fig", + "results/Runtime/hydro_runtime_logscale.pdf", + "results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.fig", + "mdocean/plots/non_matlab_figs/pdf/graphical_abstract_modeling.pdf", + "results/GradientOptimFigFunc/intermed_convergence_plot_1.fig", + "results/Comparison/probability_CDF.pdf", + "results/DesignVars/intermed.mat", + "pubs/defense/figs/img0008.png", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.pdf", + "results/FitOlaya/case4_v2_coeffs_vs_beta.fig", + "results/Runtime/end.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.fig", + "results/ParamSensitivities/re_optim_design_tornado_x9.pdf", + "pubs/defense/figs/img0043.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.fig", + "results/RunSingleFigFunc/qcqp_circles_overlay.fig", + "results/Wecsim/wecsim_rpt_multi__histogram.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.pdf", + "pubs/defense/figs/img0013.png", + "mdocean/plots/non_matlab_figs/img/FBD.jpg", + "results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.fig", + "results/RunSingleFigFunc/nominal_power_pdf.pdf", + "pubs/defense/figs/img0010.png", + "results/ParamSensitivities/nonlinear_design_J1.fig", + "results/Meem/meem_validation.fig", + "results/Runtime/dynamics_runtime.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.pdf", + "pubs/defense/figs/img0015.png", + "results/Validation/cost_vs_N_WEC.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.pdf", + "results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.fig", + "results/ParamSensitivities/post_optim_design_grid.pdf", + "results/FitOlaya/case4_sep_coeffs_vs_beta.fig", + "results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.fig", + "pubs/defense/figs/img0059.png", + "results/QPCircles/intermed_figure_handle_1.fig", + "results/Wecsim/wecsim_wcsm_multi__histogram.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.fig", + "results/DragIntegral/drag_integral_G_r.pdf", + "results/FitOlaya/case4_sub_line_khRxRp_fnorm.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.pdf", + "results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.fig", + "mdocean/plots/non_matlab_figs/pdf/mod_freq_domain_ctrl_synthesis.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.pdf", + "pubs/defense/figs/img0068.png", + "results/ForceSaturationFigFunc/intermed_fig1_1.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.fig", + "results/ParamSensitivities/re_optim_design_tornado_x2.pdf", + "pubs/defense/figs/img0014.png", + "results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.pdf", + "results/PtoSweep/pto_sweep_constraint_activity.pdf", + "mdocean/plots/non_matlab_figs/img/section_flow.png", + "results/LocationSensitivity/location_2_power_matrix.fig", + "results/QPCircles/qp_circles.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.fig", + "results/Wecsim/intermed.mat", + "results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.pdf", + "results/FitOlaya/orig_12b_line_kRb_fbar.pdf", + "results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.fig", + "results/FitOlaya/case2_line_khRxRp_fnorm.pdf", + "results/DampingPlateStructures/damping_plate_aspect_ratio.fig", + "results/SweepGeoms/sweep_geoms_pareto.fig", + "results/FitOlaya/orig_12c_line_kRb_fbar.pdf", + "pubs/renewable-energy-mdo/mdocean.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.fig", + "results/Meem/meem_convergence_vs_omega.pdf", + "results/Wecsim/wecsim_wcsm_multi__histogram.pdf", + "pubs/defense/figs/img0060.png", + "results/ReadNonMatlabFigs/trapezoid.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.pdf", + "results/FitOlaya/orig_4b_line_kRb_fbar.fig", + "results/ParetoFigFunc/pareto_constraint_activity_damping.fig", + "pubs/defense/figs/img0040.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.pdf", + "results/Runtime/intermed.mat", + "results/DampingPlateStructures/end.mat", + "results/FitOlaya/orig_3b_line_kRb_fbar.fig", + "results/FitOlaya/orig_12b_line_kRb_fbar.fig", + "results/SweepGeoms/sweep_geoms_scatter_cwr_vol.fig", + "results/ForceSaturationFigFunc/intermed.mat", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_0_meem_10_geom_wecsim.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.fig", + "results/SweepGeoms/sweep_geoms_scatter_cwr_sa.pdf", + "results/ParamSensitivities/re_optim_objective_grid.pdf", + "mdocean/plots/non_matlab_figs/pdf/xdsm.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.pdf", + "results/SweepGeoms/sweep_geoms_pareto.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.pdf", + "results/LocationSensitivity/location_3_power_matrix.fig", + "results/PtoSweep/intermed.mat", + "results/ParetoFigFunc/pareto_constraint_activity_reactive.fig", + "pubs/applied-ocean-research-model/tables/from-matlab/", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.fig", + "pubs/defense/figs/img0007.png", + "results/ParamSensitivities/intermed.mat", + "mdocean/plots/non_matlab_figs/circuit_intrinsic.pdf", + "results/GradientOptimFigFunc/single_obj_opt_geometry.pdf", + "results/FitOlaya/case4_v1_coeffs_vs_alpha.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.fig", + "pubs/defense/figs/img0053.png", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.pdf", + "results/SweepGeoms/sweep_geoms_line_cwr_vol.fig", + "results/Multistart/multistart_parallel_coordinates.pdf", + "results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.fig", + "results/ReadNonMatlabFigs/RM3_image.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.pdf", + "results/FitOlaya/case2_line_khRxRpa2_f_over_a2.fig", + "pubs/defense/quarto/slides_files/", + "results/RunSingleFigFunc/drag_convergence.pdf", + "pubs/defense/figs/img0074.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.fig", + "mdocean/plots/non_matlab_figs/control_method_venn_diagram.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.fig", + "results/ForceSaturationFigFunc/runtime_sensitivity.pdf", + "results/DampingPlateStructures/damping_plate_moment.pdf", + "pubs/defense/figs/img0045.png", + "pubs/defense/figs/img0051.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.pdf", + "mdocean/plots/non_matlab_figs/img/optimization_flowchart.jpg", + "results/DescFcns/end.mat", + "pubs/defense/figs/img0042.png", + "results/FitOlaya/case2_line_khRxRp_f_over_a2H0.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.pdf", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.pdf", + "results/DescFcns/intermed_created_figs_3.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.pdf", + "results/RunSingleFigFunc/ctrl_polar_plot_mult.pdf", + "results/Comparison/comparison_power_matrix.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.fig", + "results/LocationSensitivity/location_1_power_matrix.pdf", + "pubs/defense/figs/img0049.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.pdf", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_off_geom_report.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.pdf", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.fig", + "results/RunSingleFigFunc/drag_convergence.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x6.pdf", + "results/HydroCoeffFigFunc/hydro_coeff_err.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.pdf", + "results/LocationSensitivity/intermed_h_power_matrix_1.fig", + "results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.pdf", + "results/LocationSensitivity/intermed.mat", + "results/ReadNonMatlabFigs/optimization_flowchart.pdf", + "results/Meem/meem_sparsity.pdf", + "results/LocationSensitivity/intermed_h_power_matrix_4.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.pdf", + "results/FitOlaya/intermed.mat", + "results/HydroCoeffFigFunc/hydro_coeff_err.pdf", + "pubs/defense/quarto/slides.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.fig", + "results/Cost/end.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.pdf", + "results/ReadNonMatlabFigs/end.mat", + "results/ParamSensitivities/re_optim_design_grid.fig", + "results/ParamSensitivities/re_optim_design_tornado_x3.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x11.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.pdf", + "mdocean/plots/non_matlab_figs/img/mod_freq_domain_ctrl_synthesis.png", + "results/RunSingleFigFunc/nominal_geometry_viz.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.fig", + "pubs/defense/figs/img0044.png", + "results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.pdf", + "results/ParamSensitivities/re_optim_design_grid.pdf", + "results/RunSingleFigFunc/nominal_power_pdf.fig", + "results/ParamSensitivities/re_optim_design_tornado_x2.fig", + "results/LocationSensitivity/intermed_h_probability_PDF_1.fig", + "results/ParamSensitivities/re_optim_design_tornado_x10.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.fig", + "pubs/defense/figs/icon-profit.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.pdf", + "results/LocationSensitivity/location_4_power_matrix.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.fig", + "results/DragIntegral/intermed.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.pdf", + "results/SparHydro/intermed.mat", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_0_meem_off_geom_wecsim.mat", + "results/Meem/intermed.mat", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.pdf", + "results/ParamSensitivities/re_optim_design_tornado_J2.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.pdf", + "results/ReadNonMatlabFigs/section_flow.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.pdf", + "results/LocationSensitivity/location_3_power_matrix.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.fig", + "results/GradientOptimFigFunc/delta_x.fig", + "pubs/defense/figs/img0052.png", + "mdocean/plots/non_matlab_figs/pdf/equivalent_stiffness.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_a2.pdf", + "pubs/applied-ocean-research-model/figs/from-matlab/", + "results/FitOlaya/case4_sep_coeffs_vs_alpha.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.pdf", + "mdocean/plots/non_matlab_figs/pdf/optimization_flowchart.pdf", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_10_geom_wecsim.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.fig", + "results/FitOlaya/case4_sub_line_khRxRp_fnorm.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.fig", + "results/ParetoFigFunc/pareto_constraint_activity_damping.pdf", + "results/ParamSensitivities/nonlinear_objectives.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.fig", + "results/Wecsim/end.mat", + "pubs/applied-ocean-research-model/figs/manual/", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.pdf", + "results/FitOlaya/case24_compare_line_kRb_fnorm.pdf", + "results/DescFcns/intermed_created_figs_1.fig", + "results/QPCircles/qp_circles.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.fig", + "results/LocationSensitivity/intermed_h_power_matrix_2.fig", + "results/ParamSensitivities/re_optim_design_tornado_J1.pdf", + "results/RunSingleFigFunc/qcqp_circles_nominal.fig", + "pubs/defense/figs/img0001.png", + "pubs/defense/figs/icon-people.png", + "results/ParamSensitivities/nonlinear_design_J1.pdf", + "results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.fig", + "results/DescFcns/drag_desc_fcn.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.fig", + "pubs/defense/figs/img0073.png", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.fig", + "results/ParetoFigFunc/pareto_constraint_activity_reactive.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.pdf", + "results/RunSingleFigFunc/end.mat", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.fig", + "results/ParamSensitivities/re_optim_design_tornado_x12.fig", + "results/ParetoFigFunc/end.mat", + "results/DescFcns/saturation_desc_fcn_alpha.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.fig", + "results/SweepGeoms/sweep_geoms_line_cwr_vol.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.fig", + "pubs/defense/figs/img0061.png", + "results/Validation/end.mat", + "pubs/defense/figs/sealab.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.fig", + "results/FitOlaya/case4_v2_coeffs_vs_beta.pdf", + "pubs/renewable-energy-mdo/figs/from-matlab/", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.pdf", + "results/SweepGeoms/sweep_geoms_parallel.fig", + "results/ParamSensitivities/post_optim_design_grid.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.fig", + "results/Slamming/slamming_amplitude.fig", + "results/ForceSaturationFigFunc/intermed_fig2_1.fig", + "results/LocationSensitivity/location_1_power_matrix.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.fig", + "mdocean/plots/non_matlab_figs/img/drag_damping_integral.svg", + "results/RunSingleFigFunc/slamming_model_comparison_float.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.fig", + "results/DampingPlateStructures/damping_plate_deflection.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.fig", + "results/ParamSensitivities/nonlinear_objectives.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.fig", + "results/FitOlaya/case4_sep_coeffs_vs_beta.pdf", + "results/Meem/intermed_figVelMatch_1.fig", + "results/ParetoFigFunc/pareto_front_with_design_images.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.fig", + "results/FitOlaya/case4_v1_coeffs_vs_beta.fig", + "results/Meem/meem_convergence_vs_omega.fig", + "results/DesignVars/end.mat", + "results/ParamSensitivities/re_optim_objective_grid.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.pdf", + "results/Slamming/end.mat", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.fig", + "results/SweepGeoms/sweep_geoms_line_cwr_sa.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.fig", + "results/Validation/cost_vs_N_WEC.fig", + "results/AllFigCompare/runtime_bar_chart.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.fig", + "results/ParamSensitivities/re_optim_design_tornado_x8.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.fig", + "mdocean/inputs/drag_integral.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.pdf", + "results/SweepGeoms/sweep_geoms_line.fig", + "results/ParetoFigFunc/pareto_front_with_design_images.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.pdf", + "results/DampingPlateStructures/intermed.mat", + "results/SweepGeoms/sweep_geoms_pareto_nondim.pdf", + "results/PtoSweep/end.mat", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.fig", + "results/ReadNonMatlabFigs/equivalent_stiffness.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.pdf", + "results/DampingPlateStructures/intermed_figs_3.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.pdf", + "results/SweepGeoms/sweep_geoms_grid_scatter.pdf", + "mdocean/plots/non_matlab_figs/img/RM3_image.png", + "results/SweepGeoms/sweep_geoms_line_cwr_a2.fig", + "results/Meem/meem_matching.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.pdf", + "results/HydroCoeffFigFunc/intermed_created_figs_1.fig", + "results/FitOlaya/orig_12a_line_kRb_fbar.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.fig", + "results/GradientOptimFigFunc/single_obj_convergence.pdf", + "results/AllFigCompare/end.mat", + "results/ReadNonMatlabFigs/xdsm.pdf", + "results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.fig", + "pubs/defense/figs/img0072.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x11.fig", + "pubs/defense/figs/img0030.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.fig", + "results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.pdf", + "results/DragIntegral/drag_integral_G_m.fig", + "results/ParamSensitivities/re_optim_constraint_grid.pdf", + "results/SweepGeoms/sweep_geoms_line_cwr_sa.fig", + "results/ParamSensitivities/re_optim_design_tornado_x7.pdf", + "results/FitOlaya/case2_line_khRxRpa2_f_over_a2.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.fig", + "results/ReadNonMatlabFigs/mod_freq_domain_ctrl_synthesis.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.fig", + "results/Meem/meem_matching.fig", + "results/AllFigCompare/intermed.mat", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.pdf", + "results/DragIntegral/drag_integral_B.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.fig", + "results/FitOlaya/case4_v2_coeffs_vs_alpha.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.fig", + "results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.pdf", + "results/Runtime/hydro_runtime_logscale.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.fig", + "results/RunSingleFigFunc/slamming_model_comparison_float.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.fig", + "results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.pdf", + "results/ParamSensitivities/post_optim_re_optim_objective_grid.pdf", + "pubs/defense/figs/img0034.png", + "results/ForceSaturationFigFunc/end.mat", + "results/GradientOptimFigFunc/delta_x.pdf", + "mdocean/plots/non_matlab_figs/img/equivalent_stiffness.png", + "results/Comparison/intermed.mat", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_0_meem_off_geom_wecsim.mat", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.pdf", + "pubs/defense/figs/img0036.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.fig", + "results/ParamSensitivities/re_optim_constraint_grid.fig", + "pubs/renewable-energy-mdo/tables/from-matlab/", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.fig", + "results/SparHydro/intermed_figure_handle_1.fig", + "results/FitOlaya/case2_line_khRxRp_fnorm.fig", + "mdocean/plots/non_matlab_figs/img/trapezoid.png", + "mdocean/plots/non_matlab_figs/img/drag_exc_mag_integral.svg", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.fig", + "results/DesignSpaceExploration/intermed.mat", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_off_geom_report.mat", + "pubs/defense/figs/lin-ps-flow.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.pdf", + "results/DragIntegral/end.mat", + "results/ParamSensitivities/re_optim_design_tornado_x6.fig", + "results/ForceSaturationFigFunc/runtime_sensitivity.fig", + "results/FitOlaya/case24_compare_line_kRb_fnorm.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.fig", + "results/QPCircles/end.mat", + "results/Validation/intermed_fig_cost_vs_N_WEC_1.fig", + "results/FitOlaya/case4_v4_coeffs_vs_beta.fig", + "results/DragIntegral/drag_integral_G_i.pdf" + ] + }, + "dvc_status_after": { + "make-calkit-stages": [ + { + "changed deps": { + "mdocean/analysis": "modified", + "mdocean/optimization": "modified", + "mdocean/plots/fig_tab_pub_mapping.m": "modified" + } + } + ], + "postpro-WithTables": [ + { + "changed deps": { + "results/Comparison/overlaid_geometry.pdf": "modified", + "results/Comparison/overlaid_hydro_coeffs.pdf": "modified", + "results/Comparison/probability_CDF.pdf": "modified", + "results/Comparison/comparison_power_matrix.pdf": "modified", + "results/Comparison/overlaid_geometry.fig": "modified", + "results/Comparison/overlaid_hydro_coeffs.fig": "modified", + "results/Comparison/probability_CDF.fig": "modified", + "results/Comparison/comparison_power_matrix.fig": "modified", + "results/Comparison/optimal_design_vars.tex": "modified", + "results/Comparison/optimal_outputs.tex": "modified", + "results/Comparison/end.mat": "modified", + "results/Comparison/end.json": "modified", + "results/Constraints/constraints.tex": "modified", + "results/Constraints/end.mat": "modified", + "results/Constraints/end.json": "modified", + "results/Cost/cost_parameters.tex": "modified", + "results/Cost/end.mat": "modified", + "results/Cost/end.json": "modified", + "results/DesignSpaceExploration/experiments_ratios.pdf": "modified", + "results/DesignSpaceExploration/experiments_ratios.fig": "modified", + "results/DesignSpaceExploration/experiments_results.tex": "modified", + "results/DesignSpaceExploration/end.mat": "modified", + "results/DesignSpaceExploration/end.json": "modified", + "results/DesignVars/design_vars.tex": "modified", + "results/DesignVars/end.mat": "modified", + "results/DesignVars/end.json": "modified", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_opt_geometry.pdf": "modified", + "results/GradientOptimFigFunc/lagrange_multipliers.pdf": "modified", + "results/GradientOptimFigFunc/delta_x.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_convergence.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.fig": "modified", + "results/GradientOptimFigFunc/single_obj_opt_geometry.fig": "modified", + "results/GradientOptimFigFunc/lagrange_multipliers.fig": "modified", + "results/GradientOptimFigFunc/delta_x.fig": "modified", + "results/GradientOptimFigFunc/single_obj_convergence.fig": "modified", + "results/GradientOptimFigFunc/single_obj_optim_results.tex": "modified", + "results/GradientOptimFigFunc/end.mat": "modified", + "results/GradientOptimFigFunc/end.json": "modified", + "results/LocationSensitivity/location_1_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_2_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_3_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_4_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_probability_PDF.pdf": "modified", + "results/LocationSensitivity/location_1_power_matrix.fig": "modified", + "results/LocationSensitivity/location_2_power_matrix.fig": "modified", + "results/LocationSensitivity/location_3_power_matrix.fig": "modified", + "results/LocationSensitivity/location_4_power_matrix.fig": "modified", + "results/LocationSensitivity/location_probability_PDF.fig": "modified", + "results/LocationSensitivity/location_sensitivity.tex": "modified", + "results/LocationSensitivity/end.mat": "modified", + "results/LocationSensitivity/end.json": "modified", + "results/Multistart/multistart_convergence_tree.pdf": "modified", + "results/Multistart/multistart_parallel_coordinates.pdf": "modified", + "results/Multistart/multistart_bar_chart.pdf": "modified", + "results/Multistart/multistart_convergence_tree.fig": "modified", + "results/Multistart/multistart_parallel_coordinates.fig": "modified", + "results/Multistart/multistart_bar_chart.fig": "modified", + "results/Multistart/multistart_results.tex": "modified", + "results/Multistart/end.mat": "modified", + "results/Multistart/end.json": "modified", + "results/Parameters/parameters.tex": "modified", + "results/Parameters/end.mat": "modified", + "results/Parameters/end.json": "modified", + "results/Validation/cost_vs_N_WEC.pdf": "modified", + "results/Validation/cost_vs_N_WEC.fig": "modified", + "results/Validation/validation.tex": "modified", + "results/Validation/end.mat": "modified", + "results/Validation/end.json": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi__histogram.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single__histogram.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi__histogram.pdf": "modified", + "results/Wecsim/accel_fourier_harmonics.pdf": "modified", + "results/Wecsim/drag_force_desc_fcn.pdf": "modified", + "results/Wecsim/position_THD_contour.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi__histogram.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single__histogram.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi__histogram.fig": "modified", + "results/Wecsim/accel_fourier_harmonics.fig": "modified", + "results/Wecsim/drag_force_desc_fcn.fig": "modified", + "results/Wecsim/position_THD_contour.fig": "modified", + "results/Wecsim/WECSim_errors.tex": "modified", + "results/Wecsim/end.mat": "modified", + "results/Wecsim/end.json": "modified" + } + } + ], + "all-postpro": [ + { + "changed deps": { + "results/AllFigCompare/runtime_bar_chart.pdf": "modified", + "results/AllFigCompare/runtime_bar_chart.fig": "modified", + "results/AllFigCompare/end.mat": "modified", + "results/AllFigCompare/end.json": "modified", + "results/Comparison/overlaid_geometry.pdf": "modified", + "results/Comparison/overlaid_hydro_coeffs.pdf": "modified", + "results/Comparison/probability_CDF.pdf": "modified", + "results/Comparison/comparison_power_matrix.pdf": "modified", + "results/Comparison/overlaid_geometry.fig": "modified", + "results/Comparison/overlaid_hydro_coeffs.fig": "modified", + "results/Comparison/probability_CDF.fig": "modified", + "results/Comparison/comparison_power_matrix.fig": "modified", + "results/Comparison/optimal_design_vars.tex": "modified", + "results/Comparison/optimal_outputs.tex": "modified", + "results/Comparison/end.mat": "modified", + "results/Comparison/end.json": "modified", + "results/Constraints/constraints.tex": "modified", + "results/Constraints/end.mat": "modified", + "results/Constraints/end.json": "modified", + "results/Cost/cost_parameters.tex": "modified", + "results/Cost/end.mat": "modified", + "results/Cost/end.json": "modified", + "results/DampingPlateStructures/damping_plate_aspect_ratio.pdf": "modified", + "results/DampingPlateStructures/damping_plate_deflection.pdf": "modified", + "results/DampingPlateStructures/damping_plate_moment.pdf": "modified", + "results/DampingPlateStructures/damping_plate_aspect_ratio.fig": "modified", + "results/DampingPlateStructures/damping_plate_deflection.fig": "modified", + "results/DampingPlateStructures/damping_plate_moment.fig": "modified", + "results/DampingPlateStructures/end.mat": "modified", + "results/DampingPlateStructures/end.json": "modified", + "results/DescFcns/saturation_desc_fcn.pdf": "modified", + "results/DescFcns/saturation_desc_fcn_alpha.pdf": "modified", + "results/DescFcns/drag_desc_fcn.pdf": "modified", + "results/DescFcns/saturation_desc_fcn.fig": "modified", + "results/DescFcns/saturation_desc_fcn_alpha.fig": "modified", + "results/DescFcns/drag_desc_fcn.fig": "modified", + "results/DescFcns/end.mat": "modified", + "results/DescFcns/end.json": "modified", + "results/DesignSpaceExploration/experiments_ratios.pdf": "modified", + "results/DesignSpaceExploration/experiments_ratios.fig": "modified", + "results/DesignSpaceExploration/experiments_results.tex": "modified", + "results/DesignSpaceExploration/end.mat": "modified", + "results/DesignSpaceExploration/end.json": "modified", + "results/DesignVars/design_vars.tex": "modified", + "results/DesignVars/end.mat": "modified", + "results/DesignVars/end.json": "modified", + "results/DragIntegral/drag_integral_B.pdf": "modified", + "results/DragIntegral/drag_integral_G_r.pdf": "modified", + "results/DragIntegral/drag_integral_G_i.pdf": "modified", + "results/DragIntegral/drag_integral_G_m.pdf": "modified", + "results/DragIntegral/drag_integral_G_p.pdf": "modified", + "results/DragIntegral/drag_integral_B.fig": "modified", + "results/DragIntegral/drag_integral_G_r.fig": "modified", + "results/DragIntegral/drag_integral_G_i.fig": "modified", + "results/DragIntegral/drag_integral_G_m.fig": "modified", + "results/DragIntegral/drag_integral_G_p.fig": "modified", + "results/DragIntegral/end.mat": "modified", + "results/DragIntegral/end.json": "modified", + "results/FitOlaya/orig_3b_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_4b_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_12a_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_12b_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_12c_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/orig_12d_line_kRb_fbar.pdf": "modified", + "results/FitOlaya/case24_compare_line_kRb_fnorm.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_fnorm.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_a2.pdf": "modified", + "results/FitOlaya/case2_line_khRxRpa2_f_over_a2.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_a2H0.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.pdf": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.pdf": "modified", + "results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.pdf": "modified", + "results/FitOlaya/case4_sub_line_kRb_fnorm.pdf": "modified", + "results/FitOlaya/case4_sub_line_khRxRp_fnorm.pdf": "modified", + "results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.pdf": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.pdf": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.pdf": "modified", + "results/FitOlaya/case4_sep_coeffs_vs_beta.pdf": "modified", + "results/FitOlaya/case4_sep_coeffs_vs_alpha.pdf": "modified", + "results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.pdf": "modified", + "results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.pdf": "modified", + "results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v1_coeffs_vs_beta.pdf": "modified", + "results/FitOlaya/case4_v1_coeffs_vs_alpha.pdf": "modified", + "results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.pdf": "modified", + "results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.pdf": "modified", + "results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v2_coeffs_vs_beta.pdf": "modified", + "results/FitOlaya/case4_v2_coeffs_vs_alpha.pdf": "modified", + "results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.pdf": "modified", + "results/FitOlaya/case4_v3_scatter_actual_vs_pred.pdf": "modified", + "results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.pdf": "modified", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.pdf": "modified", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.pdf": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_beta.pdf": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_alpha.pdf": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.pdf": "modified", + "results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.pdf": "modified", + "results/FitOlaya/orig_3b_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_4b_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_12a_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_12b_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_12c_line_kRb_fbar.fig": "modified", + "results/FitOlaya/orig_12d_line_kRb_fbar.fig": "modified", + "results/FitOlaya/case24_compare_line_kRb_fnorm.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_fnorm.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_a2.fig": "modified", + "results/FitOlaya/case2_line_khRxRpa2_f_over_a2.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_a2H0.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.fig": "modified", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.fig": "modified", + "results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.fig": "modified", + "results/FitOlaya/case4_sub_line_kRb_fnorm.fig": "modified", + "results/FitOlaya/case4_sub_line_khRxRp_fnorm.fig": "modified", + "results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.fig": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.fig": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.fig": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.fig": "modified", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.fig": "modified", + "results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.fig": "modified", + "results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.fig": "modified", + "results/FitOlaya/case4_sep_coeffs_vs_beta.fig": "modified", + "results/FitOlaya/case4_sep_coeffs_vs_alpha.fig": "modified", + "results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.fig": "modified", + "results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.fig": "modified", + "results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v1_coeffs_vs_beta.fig": "modified", + "results/FitOlaya/case4_v1_coeffs_vs_alpha.fig": "modified", + "results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.fig": "modified", + "results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.fig": "modified", + "results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v2_coeffs_vs_beta.fig": "modified", + "results/FitOlaya/case4_v2_coeffs_vs_alpha.fig": "modified", + "results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.fig": "modified", + "results/FitOlaya/case4_v3_scatter_actual_vs_pred.fig": "modified", + "results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.fig": "modified", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.fig": "modified", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.fig": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_beta.fig": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_alpha.fig": "modified", + "results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.fig": "modified", + "results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.fig": "modified", + "results/FitOlaya/end.mat": "modified", + "results/FitOlaya/end.json": "modified", + "results/ForceSaturationFigFunc/power_force_sensitivity.pdf": "modified", + "results/ForceSaturationFigFunc/runtime_sensitivity.pdf": "modified", + "results/ForceSaturationFigFunc/power_force_sensitivity.fig": "modified", + "results/ForceSaturationFigFunc/runtime_sensitivity.fig": "modified", + "results/ForceSaturationFigFunc/end.mat": "modified", + "results/ForceSaturationFigFunc/end.json": "modified", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_opt_geometry.pdf": "modified", + "results/GradientOptimFigFunc/lagrange_multipliers.pdf": "modified", + "results/GradientOptimFigFunc/delta_x.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_convergence.pdf": "modified", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.fig": "modified", + "results/GradientOptimFigFunc/single_obj_opt_geometry.fig": "modified", + "results/GradientOptimFigFunc/lagrange_multipliers.fig": "modified", + "results/GradientOptimFigFunc/delta_x.fig": "modified", + "results/GradientOptimFigFunc/single_obj_convergence.fig": "modified", + "results/GradientOptimFigFunc/single_obj_optim_results.tex": "modified", + "results/GradientOptimFigFunc/end.mat": "modified", + "results/GradientOptimFigFunc/end.json": "modified", + "results/HydroCoeffFigFunc/hydro_coeff_err.pdf": "modified", + "results/HydroCoeffFigFunc/hydro_coeff_err.fig": "modified", + "results/HydroCoeffFigFunc/end.mat": "modified", + "results/HydroCoeffFigFunc/end.json": "modified", + "results/LocationSensitivity/location_1_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_2_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_3_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_4_power_matrix.pdf": "modified", + "results/LocationSensitivity/location_probability_PDF.pdf": "modified", + "results/LocationSensitivity/location_1_power_matrix.fig": "modified", + "results/LocationSensitivity/location_2_power_matrix.fig": "modified", + "results/LocationSensitivity/location_3_power_matrix.fig": "modified", + "results/LocationSensitivity/location_4_power_matrix.fig": "modified", + "results/LocationSensitivity/location_probability_PDF.fig": "modified", + "results/LocationSensitivity/location_sensitivity.tex": "modified", + "results/LocationSensitivity/end.mat": "modified", + "results/LocationSensitivity/end.json": "modified", + "results/Meem/meem_sparsity.pdf": "modified", + "results/Meem/meem_validation.pdf": "modified", + "results/Meem/meem_matching.pdf": "modified", + "results/Meem/meem_convergence_vs_omega.pdf": "modified", + "results/Meem/meem_convergence_vs_NMK.pdf": "modified", + "results/Meem/asymptotic_b_vector.pdf": "modified", + "results/Meem/meem_sparsity.fig": "modified", + "results/Meem/meem_validation.fig": "modified", + "results/Meem/meem_matching.fig": "modified", + "results/Meem/meem_convergence_vs_omega.fig": "modified", + "results/Meem/meem_convergence_vs_NMK.fig": "modified", + "results/Meem/asymptotic_b_vector.fig": "modified", + "results/Meem/end.mat": "modified", + "results/Meem/end.json": "modified", + "results/Multistart/multistart_convergence_tree.pdf": "modified", + "results/Multistart/multistart_parallel_coordinates.pdf": "modified", + "results/Multistart/multistart_bar_chart.pdf": "modified", + "results/Multistart/multistart_convergence_tree.fig": "modified", + "results/Multistart/multistart_parallel_coordinates.fig": "modified", + "results/Multistart/multistart_bar_chart.fig": "modified", + "results/Multistart/multistart_results.tex": "modified", + "results/Multistart/end.mat": "modified", + "results/Multistart/end.json": "modified", + "results/ParamSensitivities/re_optim_constraint_grid.pdf": "modified", + "results/ParamSensitivities/post_optim_constraint_grid.pdf": "modified", + "results/ParamSensitivities/re_optim_design_grid.pdf": "modified", + "results/ParamSensitivities/post_optim_design_grid.pdf": "modified", + "results/ParamSensitivities/re_optim_objective_grid.pdf": "modified", + "results/ParamSensitivities/post_optim_re_optim_objective_grid.pdf": "modified", + "results/ParamSensitivities/nonlinear_objectives.pdf": "modified", + "results/ParamSensitivities/nonlinear_design_J1.pdf": "modified", + "results/ParamSensitivities/nonlinear_design_J2.pdf": "modified", + "results/ParamSensitivities/re_optim_objective_tornado.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x1.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x2.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x3.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x4.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x5.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x6.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x7.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x8.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x9.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x10.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x11.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x12.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_J1.pdf": "modified", + "results/ParamSensitivities/re_optim_design_tornado_J2.pdf": "modified", + "results/ParamSensitivities/re_optim_constraint_grid.fig": "modified", + "results/ParamSensitivities/post_optim_constraint_grid.fig": "modified", + "results/ParamSensitivities/re_optim_design_grid.fig": "modified", + "results/ParamSensitivities/post_optim_design_grid.fig": "modified", + "results/ParamSensitivities/re_optim_objective_grid.fig": "modified", + "results/ParamSensitivities/post_optim_re_optim_objective_grid.fig": "modified", + "results/ParamSensitivities/nonlinear_objectives.fig": "modified", + "results/ParamSensitivities/nonlinear_design_J1.fig": "modified", + "results/ParamSensitivities/nonlinear_design_J2.fig": "modified", + "results/ParamSensitivities/re_optim_objective_tornado.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x1.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x2.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x3.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x4.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x5.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x6.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x7.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x8.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x9.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x10.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x11.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_x12.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_J1.fig": "modified", + "results/ParamSensitivities/re_optim_design_tornado_J2.fig": "modified", + "results/ParamSensitivities/end.mat": "modified", + "results/ParamSensitivities/end.json": "modified", + "results/Parameters/parameters.tex": "modified", + "results/Parameters/end.mat": "modified", + "results/Parameters/end.json": "modified", + "results/ParetoFigFunc/pareto_front_with_design_images.pdf": "modified", + "results/ParetoFigFunc/pareto_front_LCOE_contours.pdf": "modified", + "results/ParetoFigFunc/pareto_heuristics.pdf": "modified", + "results/ParetoFigFunc/pareto_constraint_activity_damping.pdf": "modified", + "results/ParetoFigFunc/pareto_constraint_activity_reactive.pdf": "modified", + "results/ParetoFigFunc/pareto_front_with_design_images.fig": "modified", + "results/ParetoFigFunc/pareto_front_LCOE_contours.fig": "modified", + "results/ParetoFigFunc/pareto_heuristics.fig": "modified", + "results/ParetoFigFunc/pareto_constraint_activity_damping.fig": "modified", + "results/ParetoFigFunc/pareto_constraint_activity_reactive.fig": "modified", + "results/ParetoFigFunc/end.mat": "modified", + "results/ParetoFigFunc/end.json": "modified", + "results/ParetoSweep/sweep_num_seeds.pdf": "modified", + "results/ParetoSweep/sweep_num_seeds.fig": "modified", + "results/ParetoSweep/end.mat": "modified", + "results/ParetoSweep/end.json": "modified", + "results/PtoSweep/pto_sweep.pdf": "modified", + "results/PtoSweep/pto_sweep_constraint_activity.pdf": "modified", + "results/PtoSweep/pto_sweep.fig": "modified", + "results/PtoSweep/pto_sweep_constraint_activity.fig": "modified", + "results/PtoSweep/end.mat": "modified", + "results/PtoSweep/end.json": "modified", + "results/QPCircles/qp_circles.pdf": "modified", + "results/QPCircles/qp_circles.fig": "modified", + "results/QPCircles/end.mat": "modified", + "results/QPCircles/end.json": "modified", + "results/ReadNonMatlabFigs/control_analysis_flowcharts.pdf": "modified", + "results/ReadNonMatlabFigs/damping_plate_flowchart.pdf": "modified", + "results/ReadNonMatlabFigs/dimensions.pdf": "modified", + "results/ReadNonMatlabFigs/equivalent_stiffness.pdf": "modified", + "results/ReadNonMatlabFigs/FBD.pdf": "modified", + "results/ReadNonMatlabFigs/graphical_abstract_modeling.pdf": "modified", + "results/ReadNonMatlabFigs/MEEM_geometry.pdf": "modified", + "results/ReadNonMatlabFigs/methodology_flowchart.pdf": "modified", + "results/ReadNonMatlabFigs/mod_freq_domain_ctrl_synthesis.pdf": "modified", + "results/ReadNonMatlabFigs/mod_freq_domain_ctrl_evaluation.pdf": "modified", + "results/ReadNonMatlabFigs/graphical_abstract_optim.pdf": "modified", + "results/ReadNonMatlabFigs/optimization_flowchart.pdf": "modified", + "results/ReadNonMatlabFigs/RM3_image.pdf": "modified", + "results/ReadNonMatlabFigs/section_flow.pdf": "modified", + "results/ReadNonMatlabFigs/sim_runtime.pdf": "modified", + "results/ReadNonMatlabFigs/taxonomy.pdf": "modified", + "results/ReadNonMatlabFigs/trapezoid.pdf": "modified", + "results/ReadNonMatlabFigs/xdsm.pdf": "modified", + "results/ReadNonMatlabFigs/end.mat": "modified", + "results/ReadNonMatlabFigs/end.json": "modified", + "results/RunSingleFigFunc/nominal_geometry_viz.pdf": "modified", + "results/RunSingleFigFunc/nominal_power_pdf.pdf": "modified", + "results/RunSingleFigFunc/nominal_power_matrix.pdf": "modified", + "results/RunSingleFigFunc/drag_convergence.pdf": "modified", + "results/RunSingleFigFunc/ctrl_polar_plot_mult.pdf": "modified", + "results/RunSingleFigFunc/ctrl_polar_plot_gamma.pdf": "modified", + "results/RunSingleFigFunc/slamming_model_comparison_float.pdf": "modified", + "results/RunSingleFigFunc/slamming_model_comparison_spar.pdf": "modified", + "results/RunSingleFigFunc/qcqp_circles_nominal.pdf": "modified", + "results/RunSingleFigFunc/qcqp_circles_overlay.pdf": "modified", + "results/RunSingleFigFunc/nominal_geometry_viz.fig": "modified", + "results/RunSingleFigFunc/nominal_power_pdf.fig": "modified", + "results/RunSingleFigFunc/nominal_power_matrix.fig": "modified", + "results/RunSingleFigFunc/drag_convergence.fig": "modified", + "results/RunSingleFigFunc/ctrl_polar_plot_mult.fig": "modified", + "results/RunSingleFigFunc/ctrl_polar_plot_gamma.fig": "modified", + "results/RunSingleFigFunc/slamming_model_comparison_float.fig": "modified", + "results/RunSingleFigFunc/slamming_model_comparison_spar.fig": "modified", + "results/RunSingleFigFunc/qcqp_circles_nominal.fig": "modified", + "results/RunSingleFigFunc/qcqp_circles_overlay.fig": "modified", + "results/RunSingleFigFunc/end.mat": "modified", + "results/RunSingleFigFunc/end.json": "modified", + "results/Runtime/dynamics_runtime.pdf": "modified", + "results/Runtime/hydro_runtime_logscale.pdf": "modified", + "results/Runtime/hydro_runtime_breakdown.pdf": "modified", + "results/Runtime/sim_runtime.pdf": "modified", + "results/Runtime/dynamics_runtime.fig": "modified", + "results/Runtime/hydro_runtime_logscale.fig": "modified", + "results/Runtime/hydro_runtime_breakdown.fig": "modified", + "results/Runtime/sim_runtime.fig": "modified", + "results/Runtime/end.mat": "modified", + "results/Runtime/end.json": "modified", + "results/Slamming/slamming_amplitude.pdf": "modified", + "results/Slamming/slamming_amplitude.fig": "modified", + "results/Slamming/end.mat": "modified", + "results/Slamming/end.json": "modified", + "results/SparHydro/spar_added_mass.pdf": "modified", + "results/SparHydro/spar_added_mass.fig": "modified", + "results/SparHydro/end.mat": "modified", + "results/SparHydro/end.json": "modified", + "results/SweepGeoms/sweep_geoms_parallel.pdf": "modified", + "results/SweepGeoms/sweep_geoms_scatter.pdf": "modified", + "results/SweepGeoms/sweep_geoms_line.pdf": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_a2.pdf": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_vol.pdf": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_sa.pdf": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_a2.pdf": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_vol.pdf": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_sa.pdf": "modified", + "results/SweepGeoms/sweep_geoms_pareto.pdf": "modified", + "results/SweepGeoms/sweep_geoms_pareto_nondim.pdf": "modified", + "results/SweepGeoms/sweep_geoms_grid_scatter.pdf": "modified", + "results/SweepGeoms/factor_grid.pdf": "modified", + "results/SweepGeoms/sweep_geoms_parallel.fig": "modified", + "results/SweepGeoms/sweep_geoms_scatter.fig": "modified", + "results/SweepGeoms/sweep_geoms_line.fig": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_a2.fig": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_vol.fig": "modified", + "results/SweepGeoms/sweep_geoms_scatter_cwr_sa.fig": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_a2.fig": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_vol.fig": "modified", + "results/SweepGeoms/sweep_geoms_line_cwr_sa.fig": "modified", + "results/SweepGeoms/sweep_geoms_pareto.fig": "modified", + "results/SweepGeoms/sweep_geoms_pareto_nondim.fig": "modified", + "results/SweepGeoms/sweep_geoms_grid_scatter.fig": "modified", + "results/SweepGeoms/factor_grid.fig": "modified", + "results/SweepGeoms/end.mat": "modified", + "results/SweepGeoms/end.json": "modified", + "results/Validation/cost_vs_N_WEC.pdf": "modified", + "results/Validation/cost_vs_N_WEC.fig": "modified", + "results/Validation/validation.tex": "modified", + "results/Validation/end.mat": "modified", + "results/Validation/end.json": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi__histogram.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_wcsm_single__histogram.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.pdf": "modified", + "results/Wecsim/wecsim_rpt_multi__histogram.pdf": "modified", + "results/Wecsim/accel_fourier_harmonics.pdf": "modified", + "results/Wecsim/drag_force_desc_fcn.pdf": "modified", + "results/Wecsim/position_THD_contour.pdf": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_multi__histogram.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_wcsm_single__histogram.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.fig": "modified", + "results/Wecsim/wecsim_rpt_multi__histogram.fig": "modified", + "results/Wecsim/accel_fourier_harmonics.fig": "modified", + "results/Wecsim/drag_force_desc_fcn.fig": "modified", + "results/Wecsim/position_THD_contour.fig": "modified", + "results/Wecsim/WECSim_errors.tex": "modified", + "results/Wecsim/end.mat": "modified", + "results/Wecsim/end.json": "modified" + } + } + ], + "test-aor": [ + { + "changed deps": { + "tests": "modified", + "mdocean": "modified", + "results/Comparison/intermed.mat": "modified", + "results/Cost/intermed.mat": "modified", + "results/DampingPlateStructures/intermed.mat": "modified", + "results/DampingPlateStructures/intermed_figs_1.fig": "modified", + "results/DampingPlateStructures/intermed_figs_2.fig": "modified", + "results/DampingPlateStructures/intermed_figs_3.fig": "modified", + "results/DescFcns/intermed.mat": "modified", + "results/DescFcns/intermed_created_figs_1.fig": "modified", + "results/DescFcns/intermed_created_figs_3.fig": "modified", + "results/DescFcns/intermed_created_figs_2.fig": "modified", + "results/DesignSpaceExploration/intermed.mat": "modified", + "results/DragIntegral/intermed.mat": "modified", + "results/ForceSaturationFigFunc/intermed.mat": "modified", + "results/ForceSaturationFigFunc/intermed_fig2_1.fig": "modified", + "results/ForceSaturationFigFunc/intermed_fig1_1.fig": "modified", + "results/HydroCoeffFigFunc/intermed.mat": "modified", + "results/HydroCoeffFigFunc/intermed_created_figs_1.fig": "modified", + "results/Meem/intermed.mat": "modified", + "results/Meem/intermed_b_vector_fig_1.fig": "modified", + "results/Meem/intermed_figHydroCoeff_1.fig": "modified", + "results/Meem/intermed_figSparsity_1.fig": "modified", + "results/Meem/intermed_figVelMatch_1.fig": "modified", + "results/Meem/intermed_figPotMatch_1.fig": "modified", + "results/Meem/intermed_fig_convergence_vs_omega_1.fig": "modified", + "results/Meem/intermed_fig_convergence_vs_NMK_1.fig": "modified", + "results/ReadNonMatlabFigs/intermed.mat": "modified", + "results/RunSingleFigFunc/intermed.mat": "modified", + "results/RunSingleFigFunc/intermed_created_figs_1.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_2.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_3.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_4.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_5.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_6.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_7.fig": "modified", + "results/RunSingleFigFunc/intermed_created_figs_8.fig": "modified", + "results/Runtime/intermed.mat": "modified", + "results/Slamming/intermed.mat": "modified", + "results/Slamming/intermed_figure_handle_1.fig": "modified", + "results/SparHydro/intermed.mat": "modified", + "results/SparHydro/intermed_figure_handle_1.fig": "modified", + "results/Validation/intermed.mat": "modified", + "results/Validation/intermed_fig_cost_vs_N_WEC_1.fig": "modified", + "results/Wecsim/intermed.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_off_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_0_meem_off_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_10_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_0_meem_10_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_off_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_0_meem_off_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_10_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_0_meem_10_geom_wecsim.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_off_geom_report.mat": "modified", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_10_geom_report.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_off_geom_report.mat": "modified", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_10_geom_report.mat": "modified" + } + }, + { + "changed outs": { + "test-results/aor": "deleted", + "code-coverage/aor": "deleted" + } + } + ], + "test-re": [ + { + "changed deps": { + "tests": "modified", + "mdocean": "modified", + "results/AllFigCompare/intermed.mat": "modified", + "results/Comparison/intermed.mat": "modified", + "results/Constraints/intermed.mat": "modified", + "results/DesignSpaceExploration/intermed.mat": "modified", + "results/DesignVars/intermed.mat": "modified", + "results/GradientOptimFigFunc/intermed.mat": "modified", + "results/GradientOptimFigFunc/intermed_convergence_plot_1.fig": "modified", + "results/LocationSensitivity/intermed.mat": "modified", + "results/LocationSensitivity/intermed_h_power_matrix_1.fig": "modified", + "results/LocationSensitivity/intermed_h_power_matrix_2.fig": "modified", + "results/LocationSensitivity/intermed_h_power_matrix_3.fig": "modified", + "results/LocationSensitivity/intermed_h_power_matrix_4.fig": "modified", + "results/LocationSensitivity/intermed_h_probability_PDF_1.fig": "modified", + "results/Multistart/intermed.mat": "modified", + "results/ParamSensitivities/intermed.mat": "modified", + "results/Parameters/intermed.mat": "modified", + "results/ParetoFigFunc/intermed.mat": "modified", + "results/ParetoSweep/intermed.mat": "modified", + "results/ReadNonMatlabFigs/intermed.mat": "modified" + } + }, + { + "changed outs": { + "test-results/re": "deleted", + "code-coverage/re": "deleted" + } + } + ], + "viz-ReadNonMatlabFigs": [ + { + "changed deps": { + "results/ReadNonMatlabFigs/graphical_abstract_optim.pdf": "modified", + "results/ReadNonMatlabFigs/end.mat": "modified", + "results/ReadNonMatlabFigs/end.json": "modified" + } + } + ], + "move-re-results": [ + { + "changed deps": { + "results/ReadNonMatlabFigs": "modified", + "results/GradientOptimFigFunc": "modified", + "mdocean/plots/fig_tab_pub_mapping.m": "modified", + "mdocean/plots/non_matlab_figs/pdf": "modified" + } + } + ], + "check-dup-json-keys": [ + { + "changed deps": { + "results": "modified" + } + } + ], + "paperlint-aor": [ + { + "changed deps": { + "dev/latex/Paper-Linter/paperlint.py": "modified", + "pubs/applied-ocean-research-model": "modified" + } + } + ], + "paperlint-re": [ + { + "changed deps": { + "dev/latex/Paper-Linter/paperlint.py": "modified", + "pubs/renewable-energy-mdo": "modified" + } + } + ], + "build-RE-paper": [ + { + "changed deps": { + "pubs/renewable-energy-mdo/sections": "modified", + "pubs/renewable-energy-mdo/shared-pkg.tex": "modified" + } + }, + { + "changed outs": { + "pubs/renewable-energy-mdo/aux": "modified" + } + } + ], + "build-dissertation": [ + { + "changed deps": { + "pubs/dissertation/intro-contrib.tex": "modified", + "pubs/applied-ocean-research-model/numeric-results.tex": "modified", + "pubs/applied-ocean-research-model/content.tex": "modified", + "pubs/applied-ocean-research-model/sections": "modified", + "pubs/applied-ocean-research-model/figs": "modified", + "pubs/applied-ocean-research-model/commands-aor.tex": "modified", + "pubs/renewable-energy-mdo/numeric-results.tex": "modified", + "pubs/renewable-energy-mdo/sections": "modified", + "pubs/renewable-energy-mdo/figs": "modified", + "pubs/renewable-energy-mdo/tables": "modified", + "pubs/renewable-energy-mdo/commands-re.tex": "modified", + "pubs/renewable-energy-mdo/content-re.tex": "modified", + "pubs/UMERC-2025-grid-value": "modified", + "pubs/dissertation/references.bib": "modified", + "pubs/shared/shared-pkg.tex": "modified", + "mdocean/simulation/modules/OpenFLASH/pubs/JFM/figs": "modified", + "mdocean/simulation/modules/OpenFLASH/pubs/JFM/FLMguide.tex": "modified", + "mdocean/simulation/modules/OpenFLASH/pubs/JFM/zotero-meem-refs.bib": "modified" + } + }, + { + "changed outs": { + "pubs/dissertation/sampleThesis.synctex.gz": "modified", + "pubs/dissertation/aux": "modified" + } + } + ], + "view-aor-figs": [ + { + "changed deps": { + "pubs/applied-ocean-research-model/figs": "modified" + } + } + ], + "view-re-figs": [ + { + "changed deps": { + "pubs/renewable-energy-mdo/figs": "modified" + } + } + ], + "make-quarto-yaml": [ + { + "changed deps": { + "results/DesignSpaceExploration/end.json": "modified", + "results/ForceSaturationFigFunc/end.json": "modified", + "results/GradientOptimFigFunc/end.json": "modified", + "results/Parameters/end.json": "modified", + "results/Runtime/end.json": "modified", + "results/Validation/end.json": "modified", + "results/Wecsim/end.json": "modified", + ".calkit/env-locks/pubs": "modified" + } + } + ], + "render-quarto-html": [ + { + "changed deps": { + "pubs/defense/figs": "modified", + "pubs/defense/quarto/slides.qmd": "modified" + } + } + ], + "render-quarto-pdf": [ + { + "changed deps": { + "pubs/defense/quarto/slides.html": "modified" + } + } + ] + }, + "dvc_data_status_after": { + "not_in_cache": [], + "not_in_remote": [], + "committed": { + "deleted": [ + "pubs/defense/ppt/McCabe_Dissertation_Defense.pdf", + "pubs/defense/ppt/McCabe_Dissertation_Defense.pptx" + ] + }, + "uncommitted": {}, + "untracked": [], + "unchanged": [ + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.pdf", + "results/SweepGeoms/sweep_geoms_pareto_nondim.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.pdf", + "results/DragIntegral/drag_integral_G_i.fig", + "results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.pdf", + "results/RunSingleFigFunc/qcqp_circles_overlay.pdf", + "results/Meem/meem_convergence_vs_NMK.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.fig", + "results/DragIntegral/drag_integral_B.fig", + "pubs/defense/figs/img0066.png", + "results/ParamSensitivities/post_optim_re_optim_objective_grid.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x3.pdf", + "pubs/defense/figs/img0067.png", + "results/FitOlaya/case4_v4_coeffs_vs_alpha.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.fig", + "pubs/defense/figs/img0011.png", + "results/Wecsim/position_THD_contour.pdf", + "results/Multistart/end.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.pdf", + "results/LocationSensitivity/location_probability_PDF.fig", + "results/ParetoSweep/intermed.mat", + "results/QPCircles/intermed.mat", + "results/FitOlaya/orig_4b_line_kRb_fbar.pdf", + "results/ParetoFigFunc/pareto_front_LCOE_contours.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.pdf", + "mdocean/plots/non_matlab_figs/pdf/MEEM_geometry.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.pdf", + "results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.fig", + "results/DescFcns/saturation_desc_fcn.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.fig", + "results/Meem/asymptotic_b_vector.pdf", + "results/ParamSensitivities/nonlinear_design_J2.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.pdf", + "results/LocationSensitivity/end.mat", + "results/Wecsim/accel_fourier_harmonics.pdf", + "results/FitOlaya/case4_sub_line_kRb_fnorm.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.pdf", + "results/SweepGeoms/sweep_geoms_scatter.pdf", + "results/Constraints/intermed.mat", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.pdf", + "pubs/defense/figs/img0038.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.fig", + "mdocean/plots/non_matlab_figs/img/mod_freq_domain_ctrl_evaluation.png", + "results/ParamSensitivities/re_optim_design_tornado_J2.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_amplitude.fig", + "results/Wecsim/position_THD_contour.fig", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_10_geom_report.mat", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.fig", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.fig", + "results/GradientOptimFigFunc/single_obj_opt_geometry.fig", + "results/ParamSensitivities/re_optim_design_tornado_x4.pdf", + "results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.fig", + "results/Runtime/dynamics_runtime.pdf", + "results/Comparison/comparison_power_matrix.fig", + "results/Multistart/multistart_convergence_tree.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_a2.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.pdf", + "results/DragIntegral/drag_integral_G_p.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.fig", + "results/PtoSweep/pto_sweep_constraint_activity.fig", + "results/Multistart/multistart_parallel_coordinates.fig", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.fig", + "results/LocationSensitivity/intermed_h_power_matrix_3.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.pdf", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x7.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_10_geom_report.mat", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.fig", + "results/Slamming/slamming_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_elec_sat.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.pdf", + "results/RunSingleFigFunc/slamming_model_comparison_spar.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__CW_to_CW_max.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.fig", + "results/ParamSensitivities/re_optim_design_tornado_x8.pdf", + "results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.pdf", + "results/DampingPlateStructures/damping_plate_moment.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.pdf", + "results/SweepGeoms/sweep_geoms_scatter.fig", + "results/FitOlaya/case4_v4_coeffs_vs_alpha.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.pdf", + "results/RunSingleFigFunc/intermed_created_figs_3.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.fig", + "results/SweepGeoms/sweep_geoms_grid_scatter.fig", + "results/Wecsim/drag_force_desc_fcn.fig", + "results/ReadNonMatlabFigs/damping_plate_flowchart.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_phase.pdf", + "mdocean/plots/non_matlab_figs/pdf/sim_runtime.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.pdf", + "results/FitOlaya/case4_v3_scatter_actual_vs_pred.pdf", + "results/GradientOptimFigFunc/end.mat", + "results/ParetoSweep/sweep_num_seeds.fig", + "results/ParetoFigFunc/pareto_front_LCOE_contours.pdf", + "results/GradientOptimFigFunc/intermed.mat", + "results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.pdf", + "results/RunSingleFigFunc/slamming_model_comparison_spar.fig", + "mdocean/plots/non_matlab_figs/pdf/trapezoid.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.pdf", + "results/FitOlaya/case4_sub_line_kRb_fnorm.pdf", + "results/ParamSensitivities/post_optim_constraint_grid.pdf", + "pubs/defense/figs/img0071.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.pdf", + "results/GradientOptimFigFunc/lagrange_multipliers.fig", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_10_geom_wecsim.mat", + "results/Comparison/end.mat", + "results/FitOlaya/orig_12d_line_kRb_fbar.pdf", + "results/Runtime/sim_runtime.pdf", + "results/SparHydro/spar_added_mass.fig", + "results/SparHydro/end.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.pdf", + "pubs/defense/figs/img0021.png", + "mdocean/plots/non_matlab_figs/pdf/dimensions.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_phase.fig", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.pdf", + "results/Meem/end.mat", + "pubs/defense/figs/img0070.png", + "results/Meem/intermed_fig_convergence_vs_NMK_1.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.pdf", + "pubs/defense/figs/img0029.png", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.pdf", + "results/SweepGeoms/sweep_geoms_scatter_cwr_a2.fig", + "results/ParamSensitivities/re_optim_design_tornado_x9.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.pdf", + "results/RunSingleFigFunc/intermed_created_figs_4.fig", + "results/HydroCoeffFigFunc/intermed.mat", + "pubs/defense/figs/img0047.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.fig", + "results/ReadNonMatlabFigs/MEEM_geometry.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.fig", + "results/ParamSensitivities/re_optim_objective_tornado.fig", + "pubs/UMERC-2025-grid-value/UMERC_2025_grid_value.pdf", + "pubs/defense/figs/img0050.png", + "pubs/applied-ocean-research-model/main.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.fig", + "results/ForceSaturationFigFunc/power_force_sensitivity.pdf", + "results/SweepGeoms/intermed.mat", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_off_geom_wecsim.mat", + "results/ParamSensitivities/re_optim_design_tornado_x1.pdf", + "results/Runtime/sim_runtime.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.fig", + "results/HydroCoeffFigFunc/end.mat", + "results/Meem/meem_validation.pdf", + "results/Runtime/hydro_runtime_breakdown.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_amplitude.fig", + "results/ParetoSweep/sweep_num_seeds.pdf", + "results/ReadNonMatlabFigs/intermed.mat", + "results/Wecsim/wecsim_rpt_multi__histogram.pdf", + "pubs/defense/figs/img0057.png", + "results/FitOlaya/orig_12d_line_kRb_fbar.fig", + "results/ReadNonMatlabFigs/taxonomy.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_phase.fig", + "results/RunSingleFigFunc/intermed_created_figs_7.fig", + "results/Validation/intermed.mat", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.pdf", + "results/Parameters/end.mat", + "results/ParamSensitivities/re_optim_design_tornado_x5.fig", + "results/Comparison/overlaid_geometry.pdf", + "results/ParetoFigFunc/pareto_heuristics.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_amplitude.pdf", + "results/DampingPlateStructures/intermed_figs_2.fig", + "results/RunSingleFigFunc/nominal_power_matrix.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.fig", + "results/Constraints/end.mat", + "results/DampingPlateStructures/damping_plate_deflection.fig", + "results/FitOlaya/orig_12c_line_kRb_fbar.fig", + "results/Comparison/overlaid_hydro_coeffs.fig", + "pubs/defense/figs/img0041.png", + "mdocean/plots/non_matlab_figs/img/sim_runtime.png", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__PTO_damping.fig", + "results/Meem/intermed_figHydroCoeff_1.fig", + "results/FitOlaya/case4_sep_coeffs_vs_alpha.fig", + "mdocean/plots/non_matlab_figs/circuit_kinematics.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.pdf", + "results/Meem/meem_convergence_vs_NMK.fig", + "pubs/defense/figs/img0065.png", + "results/SweepGeoms/sweep_geoms_line_cwr_a2.pdf", + "mdocean/plots/non_matlab_figs/pdf/damping_plate_flowchart.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__force_pto.pdf", + "results/ParamSensitivities/re_optim_design_tornado_J1.fig", + "mdocean/plots/non_matlab_figs/pdf/FBD.pdf", + "results/SweepGeoms/factor_grid.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.pdf", + "results/RunSingleFigFunc/ctrl_polar_plot_gamma.pdf", + "pubs/defense/figs/img0039.png", + "pubs/defense/figs/img0016.png", + "mdocean/plots/non_matlab_figs/img/taxonomy.png", + "mdocean/plots/non_matlab_figs/img/damping_plate_flowchart.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.fig", + "results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.fig", + "results/Wecsim/accel_fourier_harmonics.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_elec_sat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_elec_sat.pdf", + "results/RunSingleFigFunc/intermed_created_figs_2.fig", + "mdocean/plots/non_matlab_figs/pdf/control_analysis_flowcharts.pdf", + "results/DragIntegral/drag_integral_G_r.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.pdf", + "results/ReadNonMatlabFigs/FBD.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.pdf", + "results/PtoSweep/pto_sweep.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.pdf", + "mdocean/plots/non_matlab_figs/pdf/methodology_flowchart.pdf", + "results/RunSingleFigFunc/intermed_created_figs_5.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__power_mech_unsat.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_single__histogram.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__CW_to_CW_max.fig", + "results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.pdf", + "results/PtoSweep/pto_sweep.fig", + "results/ReadNonMatlabFigs/dimensions.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__rel_phase.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x5.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.pdf", + "mdocean/plots/non_matlab_figs/img/dimensions.jpg", + "results/Comparison/overlaid_geometry.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.pdf", + "results/RunSingleFigFunc/ctrl_polar_plot_gamma.fig", + "results/DesignSpaceExploration/experiments_ratios.pdf", + "results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.fig", + "results/GradientOptimFigFunc/single_obj_convergence.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.pdf", + "results/ParamSensitivities/end.mat", + "mdocean/plots/non_matlab_figs/img/xdsm.png", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__PTO_damping.fig", + "results/ForceSaturationFigFunc/power_force_sensitivity.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.pdf", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.pdf", + "results/ReadNonMatlabFigs/graphical_abstract_optim.pdf", + "results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.pdf", + "results/Multistart/multistart_bar_chart.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.fig", + "pubs/defense/figs/icon-planet.png", + "results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__rel_phase.pdf", + "results/DragIntegral/drag_integral_G_m.pdf", + "mdocean/plots/non_matlab_figs/pdf/taxonomy.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__CW_to_CW_max.fig", + "results/ParamSensitivities/re_optim_design_tornado_x4.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.fig", + "results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.pdf", + "mdocean/plots/non_matlab_figs/pdf/mod_freq_domain_ctrl_evaluation.pdf", + "results/LocationSensitivity/location_2_power_matrix.pdf", + "results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.fig", + "results/Meem/intermed_figPotMatch_1.fig", + "results/Multistart/multistart_convergence_tree.pdf", + "results/RunSingleFigFunc/intermed.mat", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.pdf", + "results/Wecsim/drag_force_desc_fcn.pdf", + "results/SweepGeoms/sweep_geoms_scatter_cwr_a2.pdf", + "pubs/defense/figs/img0048.png", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_0_meem_10_geom_wecsim.mat", + "pubs/defense/figs/img0062.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.fig", + "results/ParamSensitivities/nonlinear_design_J2.fig", + "results/SweepGeoms/sweep_geoms_scatter_cwr_vol.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_fund.pdf", + "mdocean/plots/non_matlab_figs/img/control_analysis_flowcharts.png", + "results/Wecsim/wecsim_wcsm_single__histogram.fig", + "results/Comparison/probability_CDF.fig", + "results/FitOlaya/end.mat", + "results/SweepGeoms/sweep_geoms_line.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.pdf", + "results/RunSingleFigFunc/intermed_created_figs_1.fig", + "results/Cost/intermed.mat", + "mdocean/plots/non_matlab_figs/img/methodology_flowchart.png", + "results/DescFcns/drag_desc_fcn.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.pdf", + "results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.pdf", + "results/ParetoFigFunc/pareto_heuristics.fig", + "results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.fig", + "results/Meem/intermed_fig_convergence_vs_omega_1.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_phase.fig", + "pubs/defense/figs/img0054.png", + "results/FitOlaya/case4_v1_coeffs_vs_beta.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.pdf", + "results/SweepGeoms/factor_grid.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_a2H0.pdf", + "results/DesignSpaceExploration/end.mat", + "results/ParetoFigFunc/intermed.mat", + "pubs/defense/figs/img0000.png", + "results/SweepGeoms/sweep_geoms_scatter_cwr_sa.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_amplitude.pdf", + "results/FitOlaya/case4_v1_coeffs_vs_alpha.fig", + "results/FitOlaya/case4_v3_scatter_actual_vs_pred.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund.pdf", + "results/LocationSensitivity/location_4_power_matrix.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.fig", + "results/ParamSensitivities/post_optim_constraint_grid.fig", + "mdocean/plots/non_matlab_figs/img/graphical_abstract_modeling.png", + "results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.fig", + "pubs/defense/figs/img0069.png", + "pubs/defense/figs/img0056.png", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__rel_phase.fig", + "results/Multistart/multistart_bar_chart.fig", + "results/DampingPlateStructures/intermed_figs_1.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.pdf", + "results/FitOlaya/case4_v2_coeffs_vs_alpha.pdf", + "results/ParamSensitivities/re_optim_objective_tornado.pdf", + "results/Meem/intermed_figSparsity_1.fig", + "results/DescFcns/saturation_desc_fcn_alpha.pdf", + "results/Meem/meem_sparsity.fig", + "results/LocationSensitivity/location_probability_PDF.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__PTO_damping.fig", + "mdocean/plots/non_matlab_figs/circuit_pto.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_amplitude.pdf", + "mdocean/plots/non_matlab_figs/meem_dims.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.pdf", + "results/DesignSpaceExploration/experiments_ratios.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.fig", + "results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.pdf", + "results/ReadNonMatlabFigs/control_analysis_flowcharts.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__PTO_damping.fig", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.fig", + "results/ParamSensitivities/re_optim_design_tornado_x12.pdf", + "results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.pdf", + "results/RunSingleFigFunc/nominal_power_matrix.pdf", + "results/RunSingleFigFunc/nominal_geometry_viz.fig", + "results/AllFigCompare/runtime_bar_chart.fig", + "pubs/defense/figs/img0064.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.fig", + "results/RunSingleFigFunc/ctrl_polar_plot_mult.fig", + "mdocean/plots/non_matlab_figs/pdf/RM3_image.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.pdf", + "results/RunSingleFigFunc/intermed_created_figs_8.fig", + "results/FitOlaya/orig_3b_line_kRb_fbar.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__rel_phase.fig", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_off_geom_wecsim.mat", + "results/Meem/asymptotic_b_vector.fig", + "results/Comparison/overlaid_hydro_coeffs.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.fig", + "results/DragIntegral/drag_integral_G_p.pdf", + "results/Slamming/intermed_figure_handle_1.fig", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.pdf", + "results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.fig", + "results/Slamming/intermed.mat", + "pubs/defense/figs/img0033.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_amplitude.pdf", + "results/SparHydro/spar_added_mass.pdf", + "pubs/defense/figs/img0055.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.pdf", + "results/SweepGeoms/end.mat", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.fig", + "results/FitOlaya/orig_12a_line_kRb_fbar.fig", + "results/RunSingleFigFunc/qcqp_circles_nominal.pdf", + "results/ReadNonMatlabFigs/mod_freq_domain_ctrl_evaluation.pdf", + "mdocean/plots/non_matlab_figs/pdf/section_flow.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.pdf", + "results/DescFcns/intermed.mat", + "pubs/defense/figs/img0028.png", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.pdf", + "results/FitOlaya/case4_v4_coeffs_vs_beta.pdf", + "results/DescFcns/saturation_desc_fcn.fig", + "results/ParetoSweep/end.mat", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.pdf", + "results/DampingPlateStructures/damping_plate_aspect_ratio.pdf", + "results/GradientOptimFigFunc/lagrange_multipliers.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.fig", + "results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.fig", + "results/RunSingleFigFunc/intermed_created_figs_6.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.fig", + "results/ReadNonMatlabFigs/sim_runtime.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_mech_unsat.fig", + "results/ParamSensitivities/re_optim_design_tornado_x1.fig", + "results/Meem/intermed_b_vector_fig_1.fig", + "pubs/defense/figs/img0058.png", + "mdocean/inputs/var_bounds.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__rel_phase.fig", + "results/ReadNonMatlabFigs/graphical_abstract_modeling.pdf", + "mdocean/plots/non_matlab_figs/img/drag_exc_phase_integral.svg", + "results/Multistart/intermed.mat", + "pubs/dissertation/sampleThesis.pdf", + "results/ReadNonMatlabFigs/methodology_flowchart.pdf", + "results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__PTO_damping.fig", + "results/SweepGeoms/sweep_geoms_parallel.pdf", + "results/Parameters/intermed.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__CW_to_CW_max.fig", + "results/ParamSensitivities/re_optim_design_tornado_x10.fig", + "mdocean/plots/non_matlab_figs/img/MEEM_geometry.jpg", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__CW_to_CW_max.fig", + "pubs/defense/figs/pto.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.pdf", + "results/Runtime/hydro_runtime_breakdown.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__rel_phase.fig", + "results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.fig", + "pubs/defense/figs/img0063.png", + "results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.pdf", + "results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.pdf", + "results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.fig", + "results/DescFcns/intermed_created_figs_2.fig", + "results/Runtime/hydro_runtime_logscale.pdf", + "results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.fig", + "mdocean/plots/non_matlab_figs/pdf/graphical_abstract_modeling.pdf", + "results/GradientOptimFigFunc/intermed_convergence_plot_1.fig", + "results/Comparison/probability_CDF.pdf", + "results/DesignVars/intermed.mat", + "pubs/defense/figs/img0008.png", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_fund.pdf", + "results/FitOlaya/case4_v2_coeffs_vs_beta.fig", + "results/Runtime/end.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.fig", + "results/ParamSensitivities/re_optim_design_tornado_x9.pdf", + "pubs/defense/figs/img0043.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__force_pto.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_elec_sat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_mech_unsat.fig", + "results/RunSingleFigFunc/qcqp_circles_overlay.fig", + "results/Wecsim/wecsim_rpt_multi__histogram.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__relative_amplitude.pdf", + "pubs/defense/figs/img0013.png", + "mdocean/plots/non_matlab_figs/img/FBD.jpg", + "results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_phase.fig", + "results/RunSingleFigFunc/nominal_power_pdf.pdf", + "pubs/defense/figs/img0010.png", + "results/ParamSensitivities/nonlinear_design_J1.fig", + "results/Meem/meem_validation.fig", + "results/Runtime/dynamics_runtime.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.pdf", + "pubs/defense/figs/img0015.png", + "results/Validation/cost_vs_N_WEC.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_fund.pdf", + "results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.fig", + "results/ParamSensitivities/post_optim_design_grid.pdf", + "results/FitOlaya/case4_sep_coeffs_vs_beta.fig", + "results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_drag_force_phase.fig", + "pubs/defense/figs/img0059.png", + "results/QPCircles/intermed_figure_handle_1.fig", + "results/Wecsim/wecsim_wcsm_multi__histogram.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__PTO_damping.fig", + "results/DragIntegral/drag_integral_G_r.pdf", + "results/FitOlaya/case4_sub_line_khRxRp_fnorm.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__CW_to_CW_max.pdf", + "results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.fig", + "mdocean/plots/non_matlab_figs/pdf/mod_freq_domain_ctrl_synthesis.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_amplitude.pdf", + "pubs/defense/figs/img0068.png", + "results/ForceSaturationFigFunc/intermed_fig1_1.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.fig", + "results/ParamSensitivities/re_optim_design_tornado_x2.pdf", + "pubs/defense/figs/img0014.png", + "results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.pdf", + "results/PtoSweep/pto_sweep_constraint_activity.pdf", + "mdocean/plots/non_matlab_figs/img/section_flow.png", + "results/LocationSensitivity/location_2_power_matrix.fig", + "results/QPCircles/qp_circles.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase.fig", + "results/Wecsim/intermed.mat", + "results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.pdf", + "results/FitOlaya/orig_12b_line_kRb_fbar.pdf", + "results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_fund.fig", + "results/FitOlaya/case2_line_khRxRp_fnorm.pdf", + "results/DampingPlateStructures/damping_plate_aspect_ratio.fig", + "results/SweepGeoms/sweep_geoms_pareto.fig", + "results/FitOlaya/orig_12c_line_kRb_fbar.pdf", + "pubs/renewable-energy-mdo/mdocean.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_phase.fig", + "results/Meem/meem_convergence_vs_omega.pdf", + "results/Wecsim/wecsim_wcsm_multi__histogram.pdf", + "pubs/defense/figs/img0060.png", + "results/ReadNonMatlabFigs/trapezoid.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__rel_phase.pdf", + "results/FitOlaya/orig_4b_line_kRb_fbar.fig", + "results/ParetoFigFunc/pareto_constraint_activity_damping.fig", + "pubs/defense/figs/img0040.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.pdf", + "results/Runtime/intermed.mat", + "results/DampingPlateStructures/end.mat", + "results/FitOlaya/orig_3b_line_kRb_fbar.fig", + "results/FitOlaya/orig_12b_line_kRb_fbar.fig", + "results/SweepGeoms/sweep_geoms_scatter_cwr_vol.fig", + "results/ForceSaturationFigFunc/intermed.mat", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_0_meem_10_geom_wecsim.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_drag_force_phase.fig", + "results/SweepGeoms/sweep_geoms_scatter_cwr_sa.pdf", + "results/ParamSensitivities/re_optim_objective_grid.pdf", + "mdocean/plots/non_matlab_figs/pdf/xdsm.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__force_pto.pdf", + "results/SweepGeoms/sweep_geoms_pareto.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__PTO_damping.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat.pdf", + "results/LocationSensitivity/location_3_power_matrix.fig", + "results/PtoSweep/intermed.mat", + "results/ParetoFigFunc/pareto_constraint_activity_reactive.fig", + "pubs/applied-ocean-research-model/tables/from-matlab/", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_amplitude.fig", + "pubs/defense/figs/img0007.png", + "results/ParamSensitivities/intermed.mat", + "mdocean/plots/non_matlab_figs/circuit_intrinsic.pdf", + "results/GradientOptimFigFunc/single_obj_opt_geometry.pdf", + "results/FitOlaya/case4_v1_coeffs_vs_alpha.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__PTO_damping.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__rel_phase.fig", + "pubs/defense/figs/img0053.png", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_phase.pdf", + "results/SweepGeoms/sweep_geoms_line_cwr_vol.fig", + "results/Multistart/multistart_parallel_coordinates.pdf", + "results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.fig", + "results/ReadNonMatlabFigs/RM3_image.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_fund.pdf", + "results/FitOlaya/case2_line_khRxRpa2_f_over_a2.fig", + "pubs/defense/quarto/slides_files/", + "results/RunSingleFigFunc/drag_convergence.pdf", + "pubs/defense/figs/img0074.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.fig", + "mdocean/plots/non_matlab_figs/control_method_venn_diagram.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.fig", + "results/ForceSaturationFigFunc/runtime_sensitivity.pdf", + "results/DampingPlateStructures/damping_plate_moment.pdf", + "pubs/defense/figs/img0045.png", + "pubs/defense/figs/img0051.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.pdf", + "mdocean/plots/non_matlab_figs/img/optimization_flowchart.jpg", + "results/DescFcns/end.mat", + "pubs/defense/figs/img0042.png", + "results/FitOlaya/case2_line_khRxRp_f_over_a2H0.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__power_elec_sat.pdf", + "results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_elec_sat.pdf", + "results/DescFcns/intermed_created_figs_3.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_drag_force_fund.pdf", + "results/RunSingleFigFunc/ctrl_polar_plot_mult.pdf", + "results/Comparison/comparison_power_matrix.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_drag_force_phase.fig", + "results/LocationSensitivity/location_1_power_matrix.pdf", + "pubs/defense/figs/img0049.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.pdf", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_off_geom_report.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat.pdf", + "results/GradientOptimFigFunc/single_obj_opt_power_matrix.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_drag_force_phase.fig", + "results/RunSingleFigFunc/drag_convergence.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x6.pdf", + "results/HydroCoeffFigFunc/hydro_coeff_err.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__spar_phase.pdf", + "results/LocationSensitivity/intermed_h_power_matrix_1.fig", + "results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__power_mech_unsat.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_amplitude.pdf", + "results/LocationSensitivity/intermed.mat", + "results/ReadNonMatlabFigs/optimization_flowchart.pdf", + "results/Meem/meem_sparsity.pdf", + "results/LocationSensitivity/intermed_h_power_matrix_4.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_phase.fig", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.pdf", + "results/FitOlaya/intermed.mat", + "results/HydroCoeffFigFunc/hydro_coeff_err.pdf", + "pubs/defense/quarto/slides.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_phase.fig", + "results/Cost/end.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__relative_amplitude.pdf", + "results/ReadNonMatlabFigs/end.mat", + "results/ParamSensitivities/re_optim_design_grid.fig", + "results/ParamSensitivities/re_optim_design_tornado_x3.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x11.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.pdf", + "mdocean/plots/non_matlab_figs/img/mod_freq_domain_ctrl_synthesis.png", + "results/RunSingleFigFunc/nominal_geometry_viz.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.fig", + "pubs/defense/figs/img0044.png", + "results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__force_pto.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__force_pto.pdf", + "results/ParamSensitivities/re_optim_design_grid.pdf", + "results/RunSingleFigFunc/nominal_power_pdf.fig", + "results/ParamSensitivities/re_optim_design_tornado_x2.fig", + "results/LocationSensitivity/intermed_h_probability_PDF_1.fig", + "results/ParamSensitivities/re_optim_design_tornado_x10.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_elec_sat.fig", + "pubs/defense/figs/icon-profit.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__power_elec_sat.pdf", + "results/LocationSensitivity/location_4_power_matrix.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__rel_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.fig", + "results/DragIntegral/intermed.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__force_pto.pdf", + "results/SparHydro/intermed.mat", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_0_meem_off_geom_wecsim.mat", + "results/Meem/intermed.mat", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__force_pto.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_drag_force_fund.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__relative_amplitude.pdf", + "results/ParamSensitivities/re_optim_design_tornado_J2.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__PTO_damping.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__CW_to_CW_max.pdf", + "results/ReadNonMatlabFigs/section_flow.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.pdf", + "results/LocationSensitivity/location_3_power_matrix.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_amplitude.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.fig", + "results/GradientOptimFigFunc/delta_x.fig", + "pubs/defense/figs/img0052.png", + "mdocean/plots/non_matlab_figs/pdf/equivalent_stiffness.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_amplitude.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_a2.pdf", + "pubs/applied-ocean-research-model/figs/from-matlab/", + "results/FitOlaya/case4_sep_coeffs_vs_alpha.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__CW_to_CW_max.pdf", + "mdocean/plots/non_matlab_figs/pdf/optimization_flowchart.pdf", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_1_meem_10_geom_wecsim.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund.fig", + "results/FitOlaya/case4_sub_line_khRxRp_fnorm.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__relative_amplitude.fig", + "results/ParetoFigFunc/pareto_constraint_activity_damping.pdf", + "results/ParamSensitivities/nonlinear_objectives.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_drag_force_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__float_amplitude.fig", + "results/Wecsim/end.mat", + "pubs/applied-ocean-research-model/figs/manual/", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.pdf", + "results/FitOlaya/case24_compare_line_kRb_fnorm.pdf", + "results/DescFcns/intermed_created_figs_1.fig", + "results/QPCircles/qp_circles.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__spar_drag_force_phase.fig", + "results/LocationSensitivity/intermed_h_power_matrix_2.fig", + "results/ParamSensitivities/re_optim_design_tornado_J1.pdf", + "results/RunSingleFigFunc/qcqp_circles_nominal.fig", + "pubs/defense/figs/img0001.png", + "pubs/defense/figs/icon-people.png", + "results/ParamSensitivities/nonlinear_design_J1.pdf", + "results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.fig", + "results/DescFcns/drag_desc_fcn.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_drag_force_fund.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.fig", + "pubs/defense/figs/img0073.png", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__spar_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__relative_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__spar_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_phase.fig", + "results/ParetoFigFunc/pareto_constraint_activity_reactive.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__float_phase.pdf", + "results/RunSingleFigFunc/end.mat", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__CW_to_CW_max.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_drag_force_phase.fig", + "results/ParamSensitivities/re_optim_design_tornado_x12.fig", + "results/ParetoFigFunc/end.mat", + "results/DescFcns/saturation_desc_fcn_alpha.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__CW_to_CW_max.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_phase.fig", + "results/SweepGeoms/sweep_geoms_line_cwr_vol.pdf", + "results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__power_mech_unsat.fig", + "pubs/defense/figs/img0061.png", + "results/Validation/end.mat", + "pubs/defense/figs/sealab.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__spar_phase.fig", + "results/FitOlaya/case4_v2_coeffs_vs_beta.pdf", + "pubs/renewable-energy-mdo/figs/from-matlab/", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__CW_to_CW_max.pdf", + "results/SweepGeoms/sweep_geoms_parallel.fig", + "results/ParamSensitivities/post_optim_design_grid.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__force_pto.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__float_drag_force_fund.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_phase.fig", + "results/Slamming/slamming_amplitude.fig", + "results/ForceSaturationFigFunc/intermed_fig2_1.fig", + "results/LocationSensitivity/location_1_power_matrix.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_phase.fig", + "mdocean/plots/non_matlab_figs/img/drag_damping_integral.svg", + "results/RunSingleFigFunc/slamming_model_comparison_float.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.fig", + "results/DampingPlateStructures/damping_plate_deflection.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_fund.fig", + "results/ParamSensitivities/nonlinear_objectives.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_phase.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__power_elec_sat.fig", + "results/FitOlaya/case4_sep_coeffs_vs_beta.pdf", + "results/Meem/intermed_figVelMatch_1.fig", + "results/ParetoFigFunc/pareto_front_with_design_images.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.fig", + "results/FitOlaya/case4_v1_coeffs_vs_beta.fig", + "results/Meem/meem_convergence_vs_omega.fig", + "results/DesignVars/end.mat", + "results/ParamSensitivities/re_optim_objective_grid.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_fund.pdf", + "results/Slamming/end.mat", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.fig", + "results/SweepGeoms/sweep_geoms_line_cwr_sa.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.fig", + "results/Validation/cost_vs_N_WEC.fig", + "results/AllFigCompare/runtime_bar_chart.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__spar_amplitude.fig", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__spar_drag_force_phase.fig", + "results/ParamSensitivities/re_optim_design_tornado_x8.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__float_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__float_drag_force_phase.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_off__float_drag_force_fund.fig", + "mdocean/inputs/drag_integral.mat", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__spar_phase.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__force_pto.pdf", + "results/SweepGeoms/sweep_geoms_line.fig", + "results/ParetoFigFunc/pareto_front_with_design_images.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__float_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__float_drag_force_phase.pdf", + "results/DampingPlateStructures/intermed.mat", + "results/SweepGeoms/sweep_geoms_pareto_nondim.pdf", + "results/PtoSweep/end.mat", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__PTO_damping.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__spar_amplitude.fig", + "results/ReadNonMatlabFigs/equivalent_stiffness.pdf", + "results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.pdf", + "results/DampingPlateStructures/intermed_figs_3.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__power_elec_sat.pdf", + "results/SweepGeoms/sweep_geoms_grid_scatter.pdf", + "mdocean/plots/non_matlab_figs/img/RM3_image.png", + "results/SweepGeoms/sweep_geoms_line_cwr_a2.fig", + "results/Meem/meem_matching.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_mech_unsat.pdf", + "results/HydroCoeffFigFunc/intermed_created_figs_1.fig", + "results/FitOlaya/orig_12a_line_kRb_fbar.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__force_pto.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__force_pto.fig", + "results/GradientOptimFigFunc/single_obj_convergence.pdf", + "results/AllFigCompare/end.mat", + "results/ReadNonMatlabFigs/xdsm.pdf", + "results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.fig", + "pubs/defense/figs/img0072.png", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_phase.pdf", + "results/ParamSensitivities/re_optim_design_tornado_x11.fig", + "pubs/defense/figs/img0030.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_phase.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_on__force_pto.fig", + "results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.pdf", + "results/DragIntegral/drag_integral_G_m.fig", + "results/ParamSensitivities/re_optim_constraint_grid.pdf", + "results/SweepGeoms/sweep_geoms_line_cwr_sa.fig", + "results/ParamSensitivities/re_optim_design_tornado_x7.pdf", + "results/FitOlaya/case2_line_khRxRpa2_f_over_a2.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_fund.fig", + "results/ReadNonMatlabFigs/mod_freq_domain_ctrl_synthesis.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_amplitude.fig", + "results/Meem/meem_matching.fig", + "results/AllFigCompare/intermed.mat", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_on__power_mech_unsat.pdf", + "results/Wecsim/wecsim_rpt_multi_drag_off_meem_off__relative_amplitude.fig", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_off__float_phase.pdf", + "results/DragIntegral/drag_integral_B.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__relative_amplitude.fig", + "results/FitOlaya/case4_v2_coeffs_vs_alpha.fig", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__spar_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_drag_force_fund.fig", + "results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.pdf", + "results/Runtime/hydro_runtime_logscale.fig", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.fig", + "results/RunSingleFigFunc/slamming_model_comparison_float.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__float_amplitude.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_off__spar_amplitude.fig", + "results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.pdf", + "results/ParamSensitivities/post_optim_re_optim_objective_grid.pdf", + "pubs/defense/figs/img0034.png", + "results/ForceSaturationFigFunc/end.mat", + "results/GradientOptimFigFunc/delta_x.pdf", + "mdocean/plots/non_matlab_figs/img/equivalent_stiffness.png", + "results/Comparison/intermed.mat", + "results/Wecsim/wecsim_sparcd1_floatcd1_multibody_0_meem_off_geom_wecsim.mat", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_off__power_elec_sat.pdf", + "pubs/defense/figs/img0036.png", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__power_elec_sat.fig", + "results/ParamSensitivities/re_optim_constraint_grid.fig", + "pubs/renewable-energy-mdo/tables/from-matlab/", + "results/Wecsim/wecsim_rpt_multi_drag_on_meem_off__PTO_damping.pdf", + "results/Wecsim/wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat.fig", + "results/SparHydro/intermed_figure_handle_1.fig", + "results/FitOlaya/case2_line_khRxRp_fnorm.fig", + "mdocean/plots/non_matlab_figs/img/trapezoid.png", + "mdocean/plots/non_matlab_figs/img/drag_exc_mag_integral.svg", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__PTO_damping.fig", + "results/DesignSpaceExploration/intermed.mat", + "results/Wecsim/wecsim_sparcd0_floatcd0_multibody_1_meem_off_geom_report.mat", + "pubs/defense/figs/lin-ps-flow.png", + "results/Wecsim/wecsim_wcsm_multi_drag_on_meem_on__relative_amplitude.pdf", + "results/DragIntegral/end.mat", + "results/ParamSensitivities/re_optim_design_tornado_x6.fig", + "results/ForceSaturationFigFunc/runtime_sensitivity.fig", + "results/FitOlaya/case24_compare_line_kRb_fnorm.fig", + "results/Wecsim/wecsim_wcsm_single_drag_off_meem_on__float_drag_force_phase.pdf", + "results/Wecsim/wecsim_wcsm_single_drag_on_meem_on__CW_to_CW_max.fig", + "results/QPCircles/end.mat", + "results/Validation/intermed_fig_cost_vs_N_WEC_1.fig", + "results/FitOlaya/case4_v4_coeffs_vs_beta.fig", + "results/DragIntegral/drag_integral_G_i.pdf" + ] + } +} \ No newline at end of file diff --git a/.calkit/systems/69d75abfd2750ded2a26c7cdaa45b52bde180a0e.json b/.calkit/systems/69d75abfd2750ded2a26c7cdaa45b52bde180a0e.json new file mode 100644 index 000000000..0f7e29de1 --- /dev/null +++ b/.calkit/systems/69d75abfd2750ded2a26c7cdaa45b52bde180a0e.json @@ -0,0 +1,28 @@ +{ + "os": "Linux", + "os_version": "5.15.0-139-generic", + "python_version": "3.11.5", + "calkit_version": "0.41.18", + "calkit_git_rev": null, + "hostname": "cornell-MS-7B94", + "processor": "x86_64", + "platform": "Linux-5.15.0-139-generic-x86_64-with-glibc2.31", + "machine": "x86_64", + "python_implementation": "CPython", + "python_compiler": "GCC 11.2.0", + "memory_gb": 251.38132095336914, + "cpu_count": 28, + "node_id": 238300915394174, + "git_version": "git version 2.25.1", + "docker_version": "Docker version 27.1.1, build 6312585", + "conda_version": "conda 24.11.3", + "mamba_version": null, + "uv_version": "uv 0.9.3", + "pixi_version": null, + "Rscript_version": "", + "juliaup_version": "Juliaup 1.20.2", + "julia_version": null, + "apt_version": "apt 2.0.10 (amd64)", + "yum_version": null, + "id": "69d75abfd2750ded2a26c7cdaa45b52bde180a0e" +} \ No newline at end of file diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 000000000..b1c20a956 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,5 @@ +# To make this file take effect, run: +# git config --local include.path "../.gitconfig" +[alias] + stale = !calkit list stages --stale # list stale stages + comp = !calkit check pipeline -c # compile calkit.yaml to dvc.yaml \ No newline at end of file diff --git a/.gitignore b/.gitignore index b333b654a..c73dca715 100644 --- a/.gitignore +++ b/.gitignore @@ -1,181 +1,125 @@ *.orig - # Windows default autosave extension *.asv - # OSX / *nix default autosave extension *.m~ - # Compiled MEX binaries (all platforms) *.mex* - # Packaged app and toolbox files *.mlappinstall *.mltbx - # Generated helpsearch folders helpsearch*/ - # Simulink code generation folders slprj/ sccprj/ - # Simulink cache files *.slxc - # Matlab code generation folders codegen/ - # Simulink autosave extension *.autosave - # Octave session info octave-workspace - # auto-generated optimization functions mdocean/optimization/generated* - # html report files html/ - # unit test output folders code-coverage/ test-results/ - # publication figures and tables from matlab pubs/**/tables/from-matlab/ - # mat data files *.mat *.fig - # excel cache ~$*.xlsx - # WEC-Sim logs savedLog*.txt *.log DynamicValidation*.pdf - # token .github/github_token - # Mac cache *.DS_Store - # Overleaf git repos .calkit/overleaf - # Sphinx documentation build files docs/_build/ docs/generated/ - # python *.pyc __pycache__/ - # matlab package manager /mpm - # PDF *.pdf !*.pdf.dvc !*.pptx.dvc - pubs/renewable-energy-mdo/out/ - pubs/renewable-energy-mdo/aux/ - pubs/applied-ocean-research-model/aux/ - -pubs/applied-ocean-research-model/references.bib pubs/renewable-energy-mdo/aux - -pubs/applied-ocean-research-model/aux - mdocean/plots/non_matlab_figs/img/taxonomy_tmp.svg - !mdocean/plots/non_matlab_figs/xdsm.tikz !mdocean/plots/non_matlab_figs/xdsm.tex .calkit/notebooks/cleaned/pubs/applied-ocean-research-model/view_figs.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/AllFigCompare.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Comparison.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Constraints.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Cost.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/DampingPlateStructures.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/DescFcns.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/DesignSpaceExploration.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/DesignVars.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/DragIntegral.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/FitOlaya.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/ForceSaturationFigFunc.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/GradientOptimFigFunc.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/HydroCoeffFigFunc.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/LocationSensitivity.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Meem.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Multistart.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/ParamSensitivities.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Parameters.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/ParetoFigFunc.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/ParetoSweep.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/PtoSweep.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/ReadNonMatlabFigs.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/RunSingleFigFunc.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Runtime.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Slamming.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/SparHydro.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/SweepGeoms.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Validation.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/Wecsim.ipynb - .calkit/notebooks/cleaned/results/fig_notebooks/QPCircles.ipynb - pubs/dissertation/aux - - -pubs/applied-ocean-research-model/elsarticle-num-names.bst - pubs/renewable-energy-mdo/elsarticle-num-names.bst - +pubs/dissertation/references.bib +pubs/applied-ocean-research-model/out/main.auxlock +.calkit/notebooks/cleaned/pubs/renewable-energy-mdo/view_figs.ipynb +pubs/applied-ocean-research-model/aux +pubs/applied-ocean-research-model/references.bib +pubs/applied-ocean-research-model/elsarticle-num-names.bst pubs/applied-ocean-research-model/shared-pkg.tex +pubs/applied-ocean-research-model/zotero-meem-refs.bib +mdocean/plots/non_matlab_figs/aux/*.log +mdocean/plots/non_matlab_figs/aux/*.aux +mdocean/plots/non_matlab_figs/aux/*.fdb_latexmk +mdocean/plots/non_matlab_figs/aux/*.fls + +pubs/renewable-energy-mdo/references.bib pubs/renewable-energy-mdo/shared-pkg.tex -pubs/dissertation/references.bib -pubs/renewable-energy-mdo/references.bib +pubs/applied-ocean-research-model/cas-dc.cls -pubs/applied-ocean-research-model/out/main.auxlock +pubs/renewable-energy-mdo/cas-dc.cls -pubs/applied-ocean-research-model/zotero-meem-refs.bib +pubs/applied-ocean-research-model/cas-common.sty + +pubs/renewable-energy-mdo/cas-common.sty pubs/renewable-energy-mdo/zotero-meem-refs.bib -.calkit/notebooks/cleaned/pubs/renewable-energy-mdo/view_figs.ipynb diff --git a/LICENSE.md b/LICENSE.md index df9b2a0dd..c6d459186 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 Cornell University +Copyright (c) 2022-2026 Rebecca McCabe and Cornell University Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 17b8f6eb4..7141cb500 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,7 @@ As exceptions, the following files have been adapted from other code and have di - `mdocean/plots/util/hatchfill2.m` and `hatchfill2_demo.m`: BSD-2-Clause - `mdocean/plots/util/table2latex.m`: BSD-2-Clause - `dev/latex/Paper-Linter/`: MIT License, different copyright holder +- `pubs/shared/els-cas/`: LaTeX Project Public License v1.3c ## Dependencies diff --git a/calkit.yaml b/calkit.yaml index bb46b1ed7..d1413fe38 100644 --- a/calkit.yaml +++ b/calkit.yaml @@ -1,7 +1,7 @@ name: mdocean title: MDOcean -description: Multidisciplinary Design Optimization (MDO) to optimize an - ocean wave energy converter (WEC). +description: Multidisciplinary Design Optimization (MDO) to optimize + an ocean wave energy converter (WEC). environments: tex: kind: docker @@ -45,9 +45,13 @@ parameters: - taxonomy - mod_freq_domain_ctrl_synthesis - mod_freq_domain_ctrl_evaluation + - mod_freq_domain_ctrl_combined latex_standalone_name: - - eigenfunctions - - A_matrix + - circuit_intrinsic + - circuit_pto + - circuit_kinematics + - control_method_venn_diagram + - meem_dims # subprojects: # - path: mdocean/simulation/modules/OpenFLASH pipeline: @@ -410,7 +414,8 @@ pipeline: analysis-Constraints: kind: matlab-command environment: _system - command: add_mdocean_path(); obj=Constraints; obj.run_analysis(); + command: add_mdocean_path(); obj=Constraints; + obj.run_analysis(); inputs: - ./mdocean/inputs/validation/RM3-CBS.xlsx - ./mdocean/analysis/@Constraints/Constraints.m @@ -1040,7 +1045,7 @@ pipeline: - ./mdocean/plots/matlab_figs/dynamics_results/plot_drag_convergence.m - ./mdocean/plots/matlab_figs/dynamics_results/plot_drag_integral_debug.m - ./mdocean/plots/matlab_figs/module_demos/visualize_geometry.m - - ./mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m + - ./mdocean/plots/matlab_figs/optim/constraint_active_plot.m - ./mdocean/plots/matlab_figs/sim_results/experiments_plot.m - ./mdocean/plots/util/bluewhitered.m - ./mdocean/plots/util/check_fig_size.m @@ -1222,7 +1227,8 @@ pipeline: analysis-DragIntegral: kind: matlab-command environment: _system - command: add_mdocean_path(); obj=DragIntegral; obj.run_analysis(); + command: add_mdocean_path(); obj=DragIntegral; + obj.run_analysis(); inputs: - ./mdocean/inputs/validation/RM3-CBS.xlsx - ./mdocean/analysis/@DragIntegral/DragIntegral.m @@ -2937,7 +2943,7 @@ pipeline: - ./mdocean/plots/matlab_figs/module_demos/visualize_geometry.m - ./mdocean/plots/matlab_figs/optim/optim_geomviz.m - ./mdocean/plots/matlab_figs/optim/optimplotx_custom.m - - ./mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m + # - ./mdocean/plots/matlab_figs/optim/constraint_active_plot.m - ./mdocean/plots/util/bluewhitered.m - ./mdocean/plots/util/check_fig_size.m - ./mdocean/plots/util/contourx.m @@ -3010,7 +3016,7 @@ pipeline: - ./mdocean/plots/matlab_figs/dynamics_results/plot_drag_convergence.m - ./mdocean/plots/matlab_figs/dynamics_results/plot_drag_integral_debug.m - ./mdocean/plots/matlab_figs/module_demos/visualize_geometry.m - - ./mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m + - ./mdocean/plots/matlab_figs/optim/constraint_active_plot.m - ./mdocean/plots/util/bluewhitered.m - ./mdocean/plots/util/check_fig_size.m - ./mdocean/plots/util/contourx.m @@ -3066,7 +3072,8 @@ pipeline: analysis-ParetoSweep: kind: matlab-command environment: _system - command: add_mdocean_path(); obj=ParetoSweep; obj.run_analysis(); + command: add_mdocean_path(); obj=ParetoSweep; + obj.run_analysis(); inputs: - ./mdocean/inputs/validation/RM3-CBS.xlsx - ./mdocean/analysis/@ParetoSweep/ParetoSweep.m @@ -3855,7 +3862,8 @@ pipeline: postpro-Runtime: kind: matlab-command environment: _system - command: add_mdocean_path(); obj=Runtime; obj.run_all_from_load(); + command: add_mdocean_path(); obj=Runtime; + obj.run_all_from_load(); inputs: - from_stage_outputs: analysis-Runtime - ./mdocean/inputs/validation/RM3-CBS.xlsx @@ -4597,7 +4605,8 @@ pipeline: postpro-Wecsim: kind: matlab-command environment: _system - command: add_mdocean_path(); obj=Wecsim; obj.run_all_from_load(); + command: add_mdocean_path(); obj=Wecsim; + obj.run_all_from_load(); inputs: - from_stage_outputs: analysis-Wecsim - ./mdocean/inputs/validation/RM3-CBS.xlsx @@ -5040,7 +5049,8 @@ pipeline: postpro-WithTables: kind: shell-command environment: _system - command: echo "Running postprocessing for all stages with tables." + command: echo "Running postprocessing for all stages with + tables." inputs: - from_stage_outputs: postpro-Comparison - from_stage_outputs: postpro-Constraints @@ -5113,9 +5123,9 @@ pipeline: - mdocean/ outputs: - path: test-results/aor/ - storage: null + storage: - path: code-coverage/aor/ - storage: null + storage: test-re: kind: matlab-command environment: _system @@ -5138,16 +5148,16 @@ pipeline: - mdocean/ outputs: - path: test-results/re/ - storage: null + storage: - path: code-coverage/re/ - storage: null + storage: viz-AllFigCompare: kind: jupyter-notebook environment: pubs notebook_path: results/fig_notebooks/AllFigCompare.ipynb inputs: - from_stage_outputs: postpro-AllFigCompare - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Comparison: @@ -5156,7 +5166,7 @@ pipeline: notebook_path: results/fig_notebooks/Comparison.ipynb inputs: - from_stage_outputs: postpro-Comparison - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Constraints: @@ -5165,7 +5175,7 @@ pipeline: notebook_path: results/fig_notebooks/Constraints.ipynb inputs: - from_stage_outputs: postpro-Constraints - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Cost: @@ -5174,16 +5184,17 @@ pipeline: notebook_path: results/fig_notebooks/Cost.ipynb inputs: - from_stage_outputs: postpro-Cost - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-DampingPlateStructures: kind: jupyter-notebook environment: pubs - notebook_path: results/fig_notebooks/DampingPlateStructures.ipynb + notebook_path: + results/fig_notebooks/DampingPlateStructures.ipynb inputs: - from_stage_outputs: postpro-DampingPlateStructures - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-DescFcns: @@ -5192,16 +5203,17 @@ pipeline: notebook_path: results/fig_notebooks/DescFcns.ipynb inputs: - from_stage_outputs: postpro-DescFcns - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-DesignSpaceExploration: kind: jupyter-notebook environment: pubs - notebook_path: results/fig_notebooks/DesignSpaceExploration.ipynb + notebook_path: + results/fig_notebooks/DesignSpaceExploration.ipynb inputs: - from_stage_outputs: postpro-DesignSpaceExploration - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-DesignVars: @@ -5210,7 +5222,7 @@ pipeline: notebook_path: results/fig_notebooks/DesignVars.ipynb inputs: - from_stage_outputs: postpro-DesignVars - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-DragIntegral: @@ -5219,7 +5231,7 @@ pipeline: notebook_path: results/fig_notebooks/DragIntegral.ipynb inputs: - from_stage_outputs: postpro-DragIntegral - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-FitOlaya: @@ -5228,16 +5240,17 @@ pipeline: notebook_path: results/fig_notebooks/FitOlaya.ipynb inputs: - from_stage_outputs: postpro-FitOlaya - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-ForceSaturationFigFunc: kind: jupyter-notebook environment: pubs - notebook_path: results/fig_notebooks/ForceSaturationFigFunc.ipynb + notebook_path: + results/fig_notebooks/ForceSaturationFigFunc.ipynb inputs: - from_stage_outputs: postpro-ForceSaturationFigFunc - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-GradientOptimFigFunc: @@ -5246,7 +5259,7 @@ pipeline: notebook_path: results/fig_notebooks/GradientOptimFigFunc.ipynb inputs: - from_stage_outputs: postpro-GradientOptimFigFunc - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-HydroCoeffFigFunc: @@ -5255,7 +5268,7 @@ pipeline: notebook_path: results/fig_notebooks/HydroCoeffFigFunc.ipynb inputs: - from_stage_outputs: postpro-HydroCoeffFigFunc - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-LocationSensitivity: @@ -5264,7 +5277,7 @@ pipeline: notebook_path: results/fig_notebooks/LocationSensitivity.ipynb inputs: - from_stage_outputs: postpro-LocationSensitivity - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Meem: @@ -5273,7 +5286,7 @@ pipeline: notebook_path: results/fig_notebooks/Meem.ipynb inputs: - from_stage_outputs: postpro-Meem - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Multistart: @@ -5282,7 +5295,7 @@ pipeline: notebook_path: results/fig_notebooks/Multistart.ipynb inputs: - from_stage_outputs: postpro-Multistart - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-ParamSensitivities: @@ -5291,7 +5304,7 @@ pipeline: notebook_path: results/fig_notebooks/ParamSensitivities.ipynb inputs: - from_stage_outputs: postpro-ParamSensitivities - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Parameters: @@ -5300,7 +5313,7 @@ pipeline: notebook_path: results/fig_notebooks/Parameters.ipynb inputs: - from_stage_outputs: postpro-Parameters - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-ParetoFigFunc: @@ -5309,7 +5322,7 @@ pipeline: notebook_path: results/fig_notebooks/ParetoFigFunc.ipynb inputs: - from_stage_outputs: postpro-ParetoFigFunc - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-ParetoSweep: @@ -5318,7 +5331,7 @@ pipeline: notebook_path: results/fig_notebooks/ParetoSweep.ipynb inputs: - from_stage_outputs: postpro-ParetoSweep - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-PtoSweep: @@ -5327,7 +5340,7 @@ pipeline: notebook_path: results/fig_notebooks/PtoSweep.ipynb inputs: - from_stage_outputs: postpro-PtoSweep - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-QPCircles: @@ -5336,7 +5349,7 @@ pipeline: notebook_path: results/fig_notebooks/QPCircles.ipynb inputs: - from_stage_outputs: postpro-QPCircles - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-ReadNonMatlabFigs: @@ -5345,7 +5358,7 @@ pipeline: notebook_path: results/fig_notebooks/ReadNonMatlabFigs.ipynb inputs: - from_stage_outputs: postpro-ReadNonMatlabFigs - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-RunSingleFigFunc: @@ -5354,7 +5367,7 @@ pipeline: notebook_path: results/fig_notebooks/RunSingleFigFunc.ipynb inputs: - from_stage_outputs: postpro-RunSingleFigFunc - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Runtime: @@ -5363,7 +5376,7 @@ pipeline: notebook_path: results/fig_notebooks/Runtime.ipynb inputs: - from_stage_outputs: postpro-Runtime - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Slamming: @@ -5372,7 +5385,7 @@ pipeline: notebook_path: results/fig_notebooks/Slamming.ipynb inputs: - from_stage_outputs: postpro-Slamming - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-SparHydro: @@ -5381,7 +5394,7 @@ pipeline: notebook_path: results/fig_notebooks/SparHydro.ipynb inputs: - from_stage_outputs: postpro-SparHydro - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-SweepGeoms: @@ -5390,7 +5403,7 @@ pipeline: notebook_path: results/fig_notebooks/SweepGeoms.ipynb inputs: - from_stage_outputs: postpro-SweepGeoms - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Validation: @@ -5399,7 +5412,7 @@ pipeline: notebook_path: results/fig_notebooks/Validation.ipynb inputs: - from_stage_outputs: postpro-Validation - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] viz-Wecsim: @@ -5408,7 +5421,7 @@ pipeline: notebook_path: results/fig_notebooks/Wecsim.ipynb inputs: - from_stage_outputs: postpro-Wecsim - html_storage: null + html_storage: executed_ipynb_storage: git outputs: [] pyxdsm: @@ -5490,6 +5503,7 @@ pipeline: # - results/ReadNonMatlabFigs/end.json - results/RunSingleFigFunc/end.json - results/Runtime/end.json + - results/SweepGeoms/end.json - results/PtoSweep/end.json # - results/Slamming/end.json # - results/SparHydro/end.json @@ -5508,6 +5522,7 @@ pipeline: # runtimes simRuntime: "{simRuntime*1000:.0f} ms" MEEMRuntime: "{pctRuntimeMEEM/100*simRuntime*1000:.0f} ms" + meemSweepTime: "{geom_sweep_analysis_time/60:.0f} minutes" # percentages pctRuntimeMEEM: "{pctRuntimeMEEM:.0f}%" pctRuntimeDynamics: "{pctRuntimeDynamics:.0f}%" @@ -5524,6 +5539,8 @@ pipeline: ptoSweepMinLCOE_power: "{ptoSweepMinLCOE_power/1e3:.0f} kW" ptoSweepMinLCOE_cost: "{ptoSweepMinLCOE_cost/1e6:.2f} $M" ptoSweepMinLCOE_LCOE: "{ptoSweepMinLCOE_LCOE:.2f} $/kWh" + # numbers + meemSweepSize: "{n_combos}" check-dup-json-keys: kind: python-script environment: pubs @@ -5633,6 +5650,10 @@ pipeline: - src: pubs/shared/references.bib dest: pubs/renewable-energy-mdo/references.bib kind: file-to-file + - src: pubs/shared/references.bib + dest: pubs/dissertation/references.bib + kind: file-to-file + # - src: pubs/shared/elsarticle-num-names.bst dest: pubs/applied-ocean-research-model/elsarticle-num-names.bst @@ -5640,15 +5661,28 @@ pipeline: - src: pubs/shared/elsarticle-num-names.bst dest: pubs/renewable-energy-mdo/elsarticle-num-names.bst kind: file-to-file + # - src: pubs/shared/shared-pkg.tex dest: pubs/applied-ocean-research-model/shared-pkg.tex kind: file-to-file - src: pubs/shared/shared-pkg.tex dest: pubs/renewable-energy-mdo/shared-pkg.tex kind: file-to-file - - src: pubs/shared/references.bib - dest: pubs/dissertation/references.bib + # + - src: pubs/shared/els-cas/cas-dc.cls + dest: pubs/applied-ocean-research-model/cas-dc.cls + kind: file-to-file + - src: pubs/shared/els-cas/cas-dc.cls + dest: pubs/renewable-energy-mdo/cas-dc.cls + kind: file-to-file + # + - src: pubs/shared/els-cas/cas-common.sty + dest: pubs/applied-ocean-research-model/cas-common.sty kind: file-to-file + - src: pubs/shared/els-cas/cas-common.sty + dest: pubs/renewable-energy-mdo/cas-common.sty + kind: file-to-file + # - src: mdocean/simulation/modules/OpenFLASH/pubs/JFM/zotero-meem-refs.bib dest: pubs/applied-ocean-research-model/zotero-meem-refs.bib @@ -5663,7 +5697,8 @@ pipeline: script_path: dev/latex/Paper-Linter/paperlint.py args: - pubs/applied-ocean-research-model/main.tex - - --ignore pubs/applied-ocean-research-model/numeric-results.tex + - --ignore + pubs/applied-ocean-research-model/numeric-results.tex - --settings dev/latex/Paper-Linter/settings.txt - --output dev/latex/Paper-Linter/lint-aor.txt inputs: @@ -5704,9 +5739,9 @@ pipeline: outputs: - pubs/renewable-energy-mdo/mdocean.pdf - path: pubs/renewable-energy-mdo/mdocean.synctex.gz - storage: null + storage: - path: pubs/renewable-energy-mdo/aux/ - storage: null + storage: delete_before_run: false build-AOR-paper: kind: latex @@ -5720,7 +5755,6 @@ pipeline: - pubs/applied-ocean-research-model/figs/tikz/ - pubs/applied-ocean-research-model/tables/ - pubs/applied-ocean-research-model/main.tex - - pubs/applied-ocean-research-model/numbers.tex - pubs/applied-ocean-research-model/numeric-results.tex - pubs/applied-ocean-research-model/elsarticle-num-names.bst - pubs/applied-ocean-research-model/references.bib @@ -5730,13 +5764,14 @@ pipeline: outputs: - pubs/applied-ocean-research-model/main.pdf - path: pubs/applied-ocean-research-model/main.synctex.gz - storage: null + storage: - path: pubs/applied-ocean-research-model/aux/ - storage: null + storage: delete_before_run: false build-UMERC-paper: kind: latex - target_path: pubs/UMERC-2025-grid-value/UMERC_2025_grid_value.tex + target_path: + pubs/UMERC-2025-grid-value/UMERC_2025_grid_value.tex environment: tex inputs: - pubs/UMERC-2025-grid-value/figures/ @@ -5777,9 +5812,9 @@ pipeline: outputs: - pubs/dissertation/sampleThesis.pdf - path: pubs/dissertation/sampleThesis.synctex.gz - storage: null + storage: - path: pubs/dissertation/aux/ - storage: null + storage: delete_before_run: false # all-writing: # kind: shell-command @@ -5796,7 +5831,7 @@ pipeline: notebook_path: pubs/applied-ocean-research-model/view_figs.ipynb inputs: - pubs/applied-ocean-research-model/figs/ - html_storage: null + html_storage: executed_ipynb_storage: git view-re-figs: kind: jupyter-notebook @@ -5804,7 +5839,7 @@ pipeline: notebook_path: pubs/renewable-energy-mdo/view_figs.ipynb inputs: - pubs/renewable-energy-mdo/figs/ - html_storage: null + html_storage: executed_ipynb_storage: git all-viz: kind: shell-command @@ -5858,18 +5893,41 @@ pipeline: storage: git make-standalone-tex-pdf: kind: latex - target_path: pubs/defense/latex-standalone/standalone_{name}.tex + target_path: mdocean/plots/non_matlab_figs/{name}.tex environment: tex + latexmkrc_path: mdocean/plots/non_matlab_figs/.latexmkrc + synctex: false iterate_over: - arg_name: name values: - parameter: latex_standalone_name inputs: - - pubs/shared/equations/ + - pubs/applied-ocean-research-model/figs/tikz/{name}.tikz outputs: - - pubs/defense/latex-standalone/standalone_{name}.pdf - - path: pubs/defense/latex-standalone/standalone_{name}.log + - mdocean/plots/non_matlab_figs/{name}.pdf + - path: mdocean/plots/non_matlab_figs/aux/{name}.log + delete_before_run: false + storage: + - path: mdocean/plots/non_matlab_figs/aux/{name}.aux + delete_before_run: false + storage: + - path: mdocean/plots/non_matlab_figs/aux/{name}.fdb_latexmk + delete_before_run: false + storage: + - path: mdocean/plots/non_matlab_figs/aux/{name}.fls delete_before_run: false + storage: + move-standalone-pdfs: + kind: map-paths + environment: _system + paths: + - src: mdocean/plots/non_matlab_figs/{name}.pdf + dest: mdocean/plots/non_matlab_figs/pdf/{name}.pdf + kind: file-to-file + iterate_over: + - arg_name: name + values: + - parameter: latex_standalone_name # make-standalone-tex-svg: # kind: shell-command # environment: pdf2svg @@ -5914,7 +5972,8 @@ publications: - path: pubs/applied-ocean-research-model/main.pdf title: Modeling - Journal (Applied Ocean Research) description: Development, Validation, and Benchmarking of a - Multidisciplinary Semi-Analytical Model for Wave Energy Converters + Multidisciplinary Semi-Analytical Model for Wave Energy + Converters kind: journal-article stage: build-AOR-paper - path: pubs/renewable-energy-mdo/mdocean.pdf @@ -5944,15 +6003,18 @@ overleaf_sync: - main.tex - sections/ - references.bib - - numbers.tex + - zotero-meem-refs.bib - elsarticle-num-names.bst - appendices.tex - commands-aor.tex - content.tex + - shared-pkg.tex + - cas-dc.cls + - cas-common.sty push_paths: - figs/ - - tables/ - - numeric-results.tex + # - tables/ + # - numeric-results.tex pubs/renewable-energy-mdo: url: https://www.overleaf.com/project/6753a38b61276b931380c29c sync_paths: @@ -5960,12 +6022,17 @@ overleaf_sync: - sections/ - tables/ - references.bib - - numbers.tex + - zotero-meem-refs.bib + - elsarticle-num-names.bst - commands-re.tex + - shared-pkg.tex + - content-re.tex + - cas-dc.cls + - cas-common.sty push_paths: - figs - - numeric-results.tex - - tables/from-matlab/ + # - numeric-results.tex + # - tables/from-matlab/ pubs/UMERC-2025-grid-value: url: https://www.overleaf.com/project/68516ba5bc36663bb61711a6 sync_paths: @@ -5976,3 +6043,5 @@ overleaf_sync: - logo.jpg push_paths: - figures + pubs/defense: + url: https://www.overleaf.com/project/69ef01941916c106f7f5c565 diff --git a/dev/latex/calkit_instructions_interactive.sh b/dev/latex/calkit_instructions_interactive.sh index 44127c90f..7d450679a 100755 --- a/dev/latex/calkit_instructions_interactive.sh +++ b/dev/latex/calkit_instructions_interactive.sh @@ -188,11 +188,9 @@ run_up_to_date_check() { rm -f "$output_file" return 0 fi + else echo "Status command failed." - if prompt_yes_no "Retry status check?"; then - continue - fi if prompt_yes_no "Skip this status check?"; then rm -f "$output_file" return 0 @@ -201,6 +199,9 @@ run_up_to_date_check() { rm -f "$output_file" exit 1 fi + if prompt_yes_no "Run stage?"; then + calkit run --log "$stage" + fi read -r -p "Enter to retry, 's' to skip, or 'q' to quit: " answer case "$answer" in @@ -288,6 +289,7 @@ workflow_github_to_overleaf() { run_step "Pull latest main" git pull run_step "Create new branch" git checkout -b "$branch_name" run_step "Push branch and set upstream" git push --set-upstream origin "$branch_name" + run_step "Push dvc data to avoid overwriting upon pull" calkit push run_calkit_pull_with_retry calkit pull -f run_step "Check pipeline" calkit check pipeline -c run_up_to_date_check "$PAPER_STAGE" @@ -303,6 +305,7 @@ workflow_overleaf_to_github() { choose_stage_and_folder + run_step "Push dvc data to avoid overwriting upon pull" calkit push run_step "Checkout main" git checkout main run_calkit_pull_with_retry calkit pull -f run_step "Check pipeline" calkit check pipeline -c @@ -391,7 +394,7 @@ main() { echo echo "Choose workflow:" echo " 1) Getting GitHub changes into Overleaf" - echo " 2) Making changes on Overleaf and getting them onto GitHub" + echo " 2) Making changes on Overleaf and getting them onto GitHub - this will also push GitHub changes to Overleaf" echo " q) Quit" local workflow diff --git a/dvc.lock b/dvc.lock index 50284fc6d..85b620c63 100644 --- a/dvc.lock +++ b/dvc.lock @@ -565,8 +565,8 @@ stages: deps: - path: ./mdocean/analysis/@Comparison/Comparison.m hash: md5 - md5: 42e28352a356377d4e49f815e5b5b52a - size: 771 + md5: d34f8372340cc4520ba7368e80dc51ee + size: 877 - path: ./mdocean/analysis/@Comparison/analysis_fcn.m hash: md5 md5: bd6e81c8e1699d3ff38367f777f56992 @@ -1780,8 +1780,8 @@ stages: size: 685 - path: ./mdocean/analysis/@DesignSpaceExploration/analysis_fcn.m hash: md5 - md5: 60c26eaf62ec42ce39657985c1fcb23d - size: 949 + md5: ad64f740c2e0e94edb6c882c7475d60f + size: 1012 - path: ./mdocean/analysis/GenericAnalysis.m hash: md5 md5: 4926cc6082ca23736741c904afa0253a @@ -1994,8 +1994,8 @@ stages: size: 11067 - path: ./mdocean/simulation/run/experiments.m hash: md5 - md5: e3995c2ba2d6304cd0e1ce764a03bfc4 - size: 3468 + md5: 0bf16e30c926b1432562a730a037391a + size: 3565 - path: ./mdocean/simulation/run/is_feasible.m hash: md5 md5: 33232238b4bd36a44a0b9d8be510b878 @@ -2007,8 +2007,8 @@ stages: outs: - path: results/DesignSpaceExploration/intermed.mat hash: md5 - md5: 1065001b3b06914a97f30d98d04f09aa - size: 8308 + md5: 18a950a4e7c471fd33c5ac2c4d1da963 + size: 12471 analysis-DesignVars: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); obj=DesignVars; obj.run_analysis();" @@ -6072,12 +6072,12 @@ stages: deps: - path: ./mdocean/analysis/@ReadNonMatlabFigs/ReadNonMatlabFigs.m hash: md5 - md5: 13a2d890d5175a2a99a093a1196af86d - size: 1852 + md5: f7eafaafd3427886204ea2252df38ba3 + size: 2130 - path: ./mdocean/analysis/@ReadNonMatlabFigs/analysis_fcn.m hash: md5 - md5: cff0d36359240ef83cc1c18666fdf53a - size: 1176 + md5: bae43bf648f921cdd91261191dee9a17 + size: 1478 - path: ./mdocean/analysis/GenericAnalysis.m hash: md5 md5: 4926cc6082ca23736741c904afa0253a @@ -6291,8 +6291,8 @@ stages: outs: - path: results/ReadNonMatlabFigs/intermed.mat hash: md5 - md5: 918a7b0ce2206bdea5e45c1ceb80d6b2 - size: 613 + md5: 57d67fbbbd02eb3b7752c603ff504ea4 + size: 706 analysis-RunSingleFigFunc: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); obj=RunSingleFigFunc; obj.run_analysis();" @@ -7335,8 +7335,8 @@ stages: size: 1529 - path: ./mdocean/analysis/@SweepGeoms/analysis_fcn.m hash: md5 - md5: 9c87926a85da12b9939ab1dc8262d29d - size: 9888 + md5: 65ecf334342dfb6af850818c8cb2ad2b + size: 9945 - path: ./mdocean/analysis/GenericAnalysis.m hash: md5 md5: 4926cc6082ca23736741c904afa0253a @@ -7590,8 +7590,8 @@ stages: outs: - path: results/SweepGeoms/intermed.mat hash: md5 - md5: 890cf9334d2cc0ff5774aa140b73886c - size: 35018822 + md5: 0cc2d47de2b396009e108ba112d49276 + size: 96316749 analysis-Validation: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); obj=Validation; obj.run_analysis();" @@ -8157,21 +8157,22 @@ stages: size: 29710879 aor-results-to-latex: cmd: "calkit latex from-json 'results/Parameters/end.json' 'results/RunSingleFigFunc/end.json' - 'results/Runtime/end.json' 'results/PtoSweep/end.json' 'results/Wecsim/end.json' - --output 'pubs/applied-ocean-research-model/numeric-results.tex' --command resultsAOR - --format-json '{\"nominalLCOE\": \"{nominalLCOE:.2f} $/kWh\", \"surgeForceFloatNominal\"\ - : \"{surgeForceFloatNominal/1e6:.0f} MN\", \"surgeForceSparNominal\": \"{surgeForceSparNominal/1e6:.0f} - MN\", \"simRuntime\": \"{simRuntime*1000:.0f} ms\", \"MEEMRuntime\": \"{pctRuntimeMEEM/100*simRuntime*1000:.0f} - ms\", \"pctRuntimeMEEM\": \"{pctRuntimeMEEM:.0f}%\", \"pctRuntimeDynamics\"\ - : \"{pctRuntimeDynamics:.0f}%\", \"pctRuntimeOther\": \"{pctRuntimeOther:.0f}%\"\ - , \"wecsimAvgPowerErrorBestCase\": \"{wecsimAvgPowerErrorBestCase:.2f}%\", \"\ - wecsimAvgPowerErrorWorstCase\": \"{wecsimAvgPowerErrorWorstCase:.2f}%\", \"\ - powerScaleFactor\": \"{powerScaleFactor:.2f}\", \"forceScaleFactor\": \"{forceScaleFactor:.2f}\"\ - , \"massScaleFactor\": \"{massScaleFactor:.2f}\", \"ptoSweepMinLCOE_F_max\"\ - : \"{ptoSweepMinLCOE_F_max/1e6:.2f} MN\", \"ptoSweepMinLCOE_P_max\": \"{ptoSweepMinLCOE_P_max/1e3:.0f} - kW\", \"ptoSweepMinLCOE_power\": \"{ptoSweepMinLCOE_power/1e3:.0f} kW\", \"\ - ptoSweepMinLCOE_cost\": \"{ptoSweepMinLCOE_cost/1e6:.2f} $M\", \"ptoSweepMinLCOE_LCOE\"\ - : \"{ptoSweepMinLCOE_LCOE:.2f} $/kWh\"}'" + 'results/Runtime/end.json' 'results/SweepGeoms/end.json' 'results/PtoSweep/end.json' + 'results/Wecsim/end.json' --output 'pubs/applied-ocean-research-model/numeric-results.tex' + --command resultsAOR --format-json '{\"nominalLCOE\": \"{nominalLCOE:.2f} $/kWh\"\ + , \"surgeForceFloatNominal\": \"{surgeForceFloatNominal/1e6:.0f} MN\", \"surgeForceSparNominal\"\ + : \"{surgeForceSparNominal/1e6:.0f} MN\", \"simRuntime\": \"{simRuntime*1000:.0f} + ms\", \"MEEMRuntime\": \"{pctRuntimeMEEM/100*simRuntime*1000:.0f} ms\", \"meemSweepTime\"\ + : \"{geom_sweep_analysis_time/60:.0f} minutes\", \"pctRuntimeMEEM\": \"{pctRuntimeMEEM:.0f}%\"\ + , \"pctRuntimeDynamics\": \"{pctRuntimeDynamics:.0f}%\", \"pctRuntimeOther\"\ + : \"{pctRuntimeOther:.0f}%\", \"wecsimAvgPowerErrorBestCase\": \"{wecsimAvgPowerErrorBestCase:.2f}%\"\ + , \"wecsimAvgPowerErrorWorstCase\": \"{wecsimAvgPowerErrorWorstCase:.2f}%\"\ + , \"powerScaleFactor\": \"{powerScaleFactor:.2f}\", \"forceScaleFactor\": \"\ + {forceScaleFactor:.2f}\", \"massScaleFactor\": \"{massScaleFactor:.2f}\", \"\ + ptoSweepMinLCOE_F_max\": \"{ptoSweepMinLCOE_F_max/1e6:.2f} MN\", \"ptoSweepMinLCOE_P_max\"\ + : \"{ptoSweepMinLCOE_P_max/1e3:.0f} kW\", \"ptoSweepMinLCOE_power\": \"{ptoSweepMinLCOE_power/1e3:.0f} + kW\", \"ptoSweepMinLCOE_cost\": \"{ptoSweepMinLCOE_cost/1e6:.2f} $M\", \"ptoSweepMinLCOE_LCOE\"\ + : \"{ptoSweepMinLCOE_LCOE:.2f} $/kWh\", \"meemSweepSize\": \"{n_combos}\"}'" deps: - path: results/Parameters/end.json hash: md5 @@ -8179,7 +8180,7 @@ stages: size: 143 - path: results/PtoSweep/end.json hash: md5 - md5: b16b1ef1c57f34b584d05625a393acb1 + md5: 4f061bbff03db67d142759499e6c4d36 size: 274 - path: results/RunSingleFigFunc/end.json hash: md5 @@ -8189,6 +8190,10 @@ stages: hash: md5 md5: 59ac14e7f4b9960b5d58538c4ff47f0f size: 212 + - path: results/SweepGeoms/end.json + hash: md5 + md5: 770376cdf1adc3528af842dc13424b18 + size: 136 - path: results/Wecsim/end.json hash: md5 md5: d65c5a6d187641276b4324cbfeb73eb7 @@ -8196,8 +8201,8 @@ stages: outs: - path: pubs/applied-ocean-research-model/numeric-results.tex hash: md5 - md5: cf58a142a4ba03f51b465e4fa75e1591 - size: 16878 + md5: cd619e72007475015d9892a8b6ff5537 + size: 17600 build-AOR-paper: cmd: calkit latex build -e tex --no-check -r pubs/applied-ocean-research-model/.latexmkrc @@ -8210,21 +8215,21 @@ stages: nfiles: 1 - path: pubs/applied-ocean-research-model/.latexmkrc hash: md5 - md5: 24aec81b8fca42335d1bc08ebc1136a0 - size: 679 + md5: cfefb1620a6b21cca221f8b6d6c6f5ac + size: 654 - path: pubs/applied-ocean-research-model/commands-aor.tex hash: md5 - md5: 8ab55f405e355cdc301a16d38983e048 - size: 968 + md5: 8245acb415cc2a2c6201ce10dd33e8e7 + size: 1424 - path: pubs/applied-ocean-research-model/elsarticle-num-names.bst hash: md5 md5: b24eb82d1afd0a3fa7d82c6efbe1f559 size: 28896 - path: pubs/applied-ocean-research-model/figs/from-matlab/ hash: md5 - md5: ce17ff68a235cae03b91c5fb1127b880.dir - size: 3939952 - nfiles: 55 + md5: 22177f4366ab94fe54dc75bf7c26f378.dir + size: 7098558 + nfiles: 58 - path: pubs/applied-ocean-research-model/figs/manual/ hash: md5 md5: ba89a562d6a85414080fb4e274fe68ba.dir @@ -8237,37 +8242,33 @@ stages: nfiles: 8 - path: pubs/applied-ocean-research-model/main.tex hash: md5 - md5: 0ec1d493fa9a402b019247381ee77516 - size: 11541 + md5: 2a63f3ca88e02d98115f7cef819e2892 + size: 12692 - path: pubs/applied-ocean-research-model/main.tex hash: md5 - md5: 0ec1d493fa9a402b019247381ee77516 - size: 11541 - - path: pubs/applied-ocean-research-model/numbers.tex - hash: md5 - md5: b1dafa9c2df9d5977284010754a81f34 - size: 234 + md5: 2a63f3ca88e02d98115f7cef819e2892 + size: 12692 - path: pubs/applied-ocean-research-model/numeric-results.tex hash: md5 - md5: cf58a142a4ba03f51b465e4fa75e1591 - size: 16878 + md5: cd619e72007475015d9892a8b6ff5537 + size: 17600 - path: pubs/applied-ocean-research-model/references.bib hash: md5 - md5: bda0fd3d60930d7e04aed3a7250c0825 - size: 537913 + md5: 81a7c7e018e9e13f89c7784bdc23409e + size: 538397 - path: pubs/applied-ocean-research-model/sections/ hash: md5 - md5: af2de296041f5c6d615932b5d5d5ba3d.dir - size: 391845 + md5: b98339a18a96b8a3da0f64858319d39c.dir + size: 396914 nfiles: 8 - path: pubs/applied-ocean-research-model/shared-pkg.tex hash: md5 - md5: 77bf87285f567341d77d0eb8528d05f9 - size: 3778 + md5: 7d29451a4a0fcbf5568cd87deda401dd + size: 4544 - path: pubs/applied-ocean-research-model/tables/ hash: md5 - md5: 2a0ede44175aafcf72ffb20183bb574e.dir - size: 1597 + md5: 550b0e2c1648b231ffe690ed4005e66a.dir + size: 1635 nfiles: 3 - path: pubs/applied-ocean-research-model/zotero-meem-refs.bib hash: md5 @@ -8276,17 +8277,17 @@ stages: outs: - path: pubs/applied-ocean-research-model/aux/ hash: md5 - md5: 2e3e40e11790b146fa129dac3daac2fc.dir - size: 1917759 - nfiles: 42 + md5: 6e7b86dd4ee2ebc4ac9561f8fb53ba35.dir + size: 371507 + nfiles: 14 - path: pubs/applied-ocean-research-model/main.pdf hash: md5 - md5: 5c96ff1393dd4e84c325bd30b897c4ec - size: 4811515 + md5: 83c19d316c1e31079807009eb8e9c59f + size: 7625685 - path: pubs/applied-ocean-research-model/main.synctex.gz hash: md5 - md5: e790bf54354541c69966fb06ebb500cb - size: 957484 + md5: 6ecaa62797c8479138ae5da4feedac31 + size: 1248152 build-RE-paper: cmd: calkit latex build -e tex --no-check -r pubs/renewable-energy-mdo/.latexmkrc pubs/renewable-energy-mdo/mdocean.tex @@ -8302,46 +8303,46 @@ stages: size: 629 - path: pubs/renewable-energy-mdo/commands-re.tex hash: md5 - md5: fd78f27d9fbadbb5a6f262c1692345c7 - size: 169 + md5: 34fb12d2ef3e4a16e1d9b2e39df28f13 + size: 253 - path: pubs/renewable-energy-mdo/content-re.tex hash: md5 - md5: 80ca11fb2f6cd7f2bfa8a48724d6c776 - size: 10749 + md5: 02281355838f9db07a54f8db9e682ec6 + size: 10756 - path: pubs/renewable-energy-mdo/elsarticle-num-names.bst hash: md5 md5: b24eb82d1afd0a3fa7d82c6efbe1f559 size: 28896 - path: pubs/renewable-energy-mdo/figs/from-matlab/ hash: md5 - md5: b1f055487363cbeb3e6c8cf721238ab1.dir - size: 2725910 + md5: 643b965649888157e4684bb1c1f2a2dd.dir + size: 2711999 nfiles: 29 - path: pubs/renewable-energy-mdo/mdocean.tex hash: md5 - md5: bf7d042c8bc5bace23b150ed9e61fa11 - size: 9934 + md5: 8121c0fcb998334613db213bdba866bf + size: 9651 - path: pubs/renewable-energy-mdo/numeric-results.tex hash: md5 md5: c528bf57e6c4307da512a3c7f1b670a9 size: 26247 - path: pubs/renewable-energy-mdo/references.bib hash: md5 - md5: bda0fd3d60930d7e04aed3a7250c0825 - size: 537913 + md5: 81a7c7e018e9e13f89c7784bdc23409e + size: 538397 - path: pubs/renewable-energy-mdo/sections/ hash: md5 - md5: 06c61c99f82a4e4a468236a09d78ec7e.dir - size: 207475 - nfiles: 9 + md5: 979e3120d56fd115072e45313bdf5461.dir + size: 246531 + nfiles: 16 - path: pubs/renewable-energy-mdo/shared-pkg.tex hash: md5 - md5: 77bf87285f567341d77d0eb8528d05f9 - size: 3778 + md5: 7d29451a4a0fcbf5568cd87deda401dd + size: 4544 - path: pubs/renewable-energy-mdo/tables/ hash: md5 - md5: f72452df0061722932a3bf3e7bf34807.dir - size: 19962 + md5: 50e891eb00558dc16a1326648d178199.dir + size: 19887 nfiles: 12 - path: pubs/renewable-energy-mdo/zotero-meem-refs.bib hash: md5 @@ -8350,17 +8351,17 @@ stages: outs: - path: pubs/renewable-energy-mdo/aux/ hash: md5 - md5: 94c14aee4ba7b27c095457d3b119bb07.dir - size: 353056 - nfiles: 11 + md5: e77d5e852d2c3b9fed099a0a086e8299.dir + size: 266464 + nfiles: 10 - path: pubs/renewable-energy-mdo/mdocean.pdf hash: md5 - md5: 2c1e25e272f84ecc5e50b7b89a34d536 - size: 2759096 + md5: 9689f84db4298090b0eb71e368e3e358 + size: 2659243 - path: pubs/renewable-energy-mdo/mdocean.synctex.gz hash: md5 - md5: b23a8505411b65000efb82f77daf1071 - size: 429187 + md5: 0fe886b1a07b71def691ed6a5fa64a1e + size: 502264 build-UMERC-paper: cmd: calkit latex build -e tex --no-check pubs/UMERC-2025-grid-value/UMERC_2025_grid_value.tex @@ -8576,6 +8577,8 @@ stages: --file-to-file 'pubs/shared/references.bib->pubs/renewable-energy-mdo/references.bib' --file-to-file + 'pubs/shared/references.bib->pubs/dissertation/references.bib' + --file-to-file 'pubs/shared/elsarticle-num-names.bst->pubs/applied-ocean-research-model/elsarticle-num-names.bst' --file-to-file 'pubs/shared/elsarticle-num-names.bst->pubs/renewable-energy-mdo/elsarticle-num-names.bst' @@ -8584,7 +8587,13 @@ stages: --file-to-file 'pubs/shared/shared-pkg.tex->pubs/renewable-energy-mdo/shared-pkg.tex' --file-to-file - 'pubs/shared/references.bib->pubs/dissertation/references.bib' + 'pubs/shared/els-cas/cas-dc.cls->pubs/applied-ocean-research-model/cas-dc.cls' + --file-to-file + 'pubs/shared/els-cas/cas-dc.cls->pubs/renewable-energy-mdo/cas-dc.cls' + --file-to-file + 'pubs/shared/els-cas/cas-common.sty->pubs/applied-ocean-research-model/cas-common.sty' + --file-to-file + 'pubs/shared/els-cas/cas-common.sty->pubs/renewable-energy-mdo/cas-common.sty' --file-to-file 'mdocean/simulation/modules/OpenFLASH/pubs/JFM/zotero-meem-refs.bib->pubs/applied-ocean-research-model/zotero-meem-refs.bib' --file-to-file @@ -8598,6 +8607,22 @@ stages: hash: md5 md5: 2b239e27c2b3fe0e1ff79c16314db608 size: 47709 + - path: pubs/shared/els-cas/cas-common.sty + hash: md5 + md5: 33ec0c91fd7e02fb9b10c2abe8498293 + size: 76688 + - path: pubs/shared/els-cas/cas-common.sty + hash: md5 + md5: 33ec0c91fd7e02fb9b10c2abe8498293 + size: 76688 + - path: pubs/shared/els-cas/cas-dc.cls + hash: md5 + md5: 2f95646e7b80682c76fa46acab457365 + size: 4428 + - path: pubs/shared/els-cas/cas-dc.cls + hash: md5 + md5: 2f95646e7b80682c76fa46acab457365 + size: 4428 - path: pubs/shared/elsarticle-num-names.bst hash: md5 md5: b24eb82d1afd0a3fa7d82c6efbe1f559 @@ -8608,57 +8633,73 @@ stages: size: 28896 - path: pubs/shared/references.bib hash: md5 - md5: bda0fd3d60930d7e04aed3a7250c0825 - size: 537913 + md5: 81a7c7e018e9e13f89c7784bdc23409e + size: 538397 - path: pubs/shared/references.bib hash: md5 - md5: bda0fd3d60930d7e04aed3a7250c0825 - size: 537913 + md5: 81a7c7e018e9e13f89c7784bdc23409e + size: 538397 - path: pubs/shared/references.bib hash: md5 - md5: bda0fd3d60930d7e04aed3a7250c0825 - size: 537913 + md5: 81a7c7e018e9e13f89c7784bdc23409e + size: 538397 - path: pubs/shared/shared-pkg.tex hash: md5 - md5: 77bf87285f567341d77d0eb8528d05f9 - size: 3778 + md5: 7d29451a4a0fcbf5568cd87deda401dd + size: 4544 - path: pubs/shared/shared-pkg.tex hash: md5 - md5: 77bf87285f567341d77d0eb8528d05f9 - size: 3778 + md5: 7d29451a4a0fcbf5568cd87deda401dd + size: 4544 outs: + - path: pubs/applied-ocean-research-model/cas-common.sty + hash: md5 + md5: 33ec0c91fd7e02fb9b10c2abe8498293 + size: 76688 + - path: pubs/applied-ocean-research-model/cas-dc.cls + hash: md5 + md5: 2f95646e7b80682c76fa46acab457365 + size: 4428 - path: pubs/applied-ocean-research-model/elsarticle-num-names.bst hash: md5 md5: b24eb82d1afd0a3fa7d82c6efbe1f559 size: 28896 - path: pubs/applied-ocean-research-model/references.bib hash: md5 - md5: bda0fd3d60930d7e04aed3a7250c0825 - size: 537913 + md5: 81a7c7e018e9e13f89c7784bdc23409e + size: 538397 - path: pubs/applied-ocean-research-model/shared-pkg.tex hash: md5 - md5: 77bf87285f567341d77d0eb8528d05f9 - size: 3778 + md5: 7d29451a4a0fcbf5568cd87deda401dd + size: 4544 - path: pubs/applied-ocean-research-model/zotero-meem-refs.bib hash: md5 md5: 2b239e27c2b3fe0e1ff79c16314db608 size: 47709 - path: pubs/dissertation/references.bib hash: md5 - md5: bda0fd3d60930d7e04aed3a7250c0825 - size: 537913 + md5: 81a7c7e018e9e13f89c7784bdc23409e + size: 538397 + - path: pubs/renewable-energy-mdo/cas-common.sty + hash: md5 + md5: 33ec0c91fd7e02fb9b10c2abe8498293 + size: 76688 + - path: pubs/renewable-energy-mdo/cas-dc.cls + hash: md5 + md5: 2f95646e7b80682c76fa46acab457365 + size: 4428 - path: pubs/renewable-energy-mdo/elsarticle-num-names.bst hash: md5 md5: b24eb82d1afd0a3fa7d82c6efbe1f559 size: 28896 - path: pubs/renewable-energy-mdo/references.bib hash: md5 - md5: bda0fd3d60930d7e04aed3a7250c0825 - size: 537913 + md5: 81a7c7e018e9e13f89c7784bdc23409e + size: 538397 - path: pubs/renewable-energy-mdo/shared-pkg.tex hash: md5 - md5: 77bf87285f567341d77d0eb8528d05f9 - size: 3778 + md5: 7d29451a4a0fcbf5568cd87deda401dd + size: 4544 - path: pubs/renewable-energy-mdo/zotero-meem-refs.bib hash: md5 md5: 2b239e27c2b3fe0e1ff79c16314db608 @@ -8838,14 +8879,14 @@ stages: nfiles: 1 - path: mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_evaluation.mmd hash: md5 - md5: ca1d1abab05a83cff1e10ba44ce1c1b3 - size: 775 + md5: a4893d74e2b2973d2f6778397edc014a + size: 937 outs: - path: mdocean/plots/non_matlab_figs/pdf/mod_freq_domain_ctrl_evaluation.pdf hash: md5 - md5: 1c1bd34055d707ffe2d64af28487c183 - size: 20481 + md5: ef8fd17c9470379fcdf57f2cfbd2ee91 + size: 20499 mermaid-make-pdfs@mod_freq_domain_ctrl_synthesis: cmd: calkit xenv -n mermaid --no-check -- -i mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_synthesis.mmd -o @@ -8858,13 +8899,13 @@ stages: nfiles: 1 - path: mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_synthesis.mmd hash: md5 - md5: 5a53be3dd637278d9cae243aa0e95201 - size: 788 + md5: d4827c5caf20946e713a99710e8b7aa1 + size: 946 outs: - path: mdocean/plots/non_matlab_figs/pdf/mod_freq_domain_ctrl_synthesis.pdf hash: md5 - md5: f462f986a68f6f1b63d90f3b1c10e53a - size: 20534 + md5: 04d1d3015f2c42625cacb4aa91abe911 + size: 20549 mermaid-make-pdfs@taxonomy: cmd: calkit xenv -n mermaid --no-check -- -i mdocean/plots/non_matlab_figs/taxonomy.mmd -o @@ -8896,14 +8937,14 @@ stages: nfiles: 1 - path: mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_evaluation.mmd hash: md5 - md5: ca1d1abab05a83cff1e10ba44ce1c1b3 - size: 775 + md5: a4893d74e2b2973d2f6778397edc014a + size: 937 outs: - path: mdocean/plots/non_matlab_figs/img/mod_freq_domain_ctrl_evaluation.png hash: md5 - md5: 330030c686028c680de3a95eed3d37f3 - size: 48995 + md5: ed236a2c8eca288e2d14803fb2585ef8 + size: 49161 mermaid-make-pngs@mod_freq_domain_ctrl_synthesis: cmd: calkit xenv -n mermaid --no-check -- -i mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_synthesis.mmd -o @@ -8916,13 +8957,13 @@ stages: nfiles: 1 - path: mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_synthesis.mmd hash: md5 - md5: 5a53be3dd637278d9cae243aa0e95201 - size: 788 + md5: d4827c5caf20946e713a99710e8b7aa1 + size: 946 outs: - path: mdocean/plots/non_matlab_figs/img/mod_freq_domain_ctrl_synthesis.png hash: md5 - md5: 7c9f1e2b1b3159add0deea4519463100 - size: 49150 + md5: e8ca015ed0b1d4990faf2428a23ab1cc + size: 50312 mermaid-make-pngs@taxonomy: cmd: calkit xenv -n mermaid --no-check -- -i mdocean/plots/non_matlab_figs/taxonomy.mmd -o @@ -9005,17 +9046,17 @@ stages: deps: - path: mdocean/plots/fig_tab_pub_mapping.m hash: md5 - md5: 67f3ae197351f212b83550520d77d8f8 - size: 8599 + md5: 1b79c14cdb7137e7b09554e69414c711 + size: 8758 - path: mdocean/plots/move_results_to_pubs.m hash: md5 md5: 5d1567056152391d8fe496a6ceacd6fd size: 2084 - path: mdocean/plots/non_matlab_figs/pdf/ hash: md5 - md5: 66f106b60ef61310633d557f4f9512cf.dir - size: 3358191 - nfiles: 31 + md5: 6c7aa8a0336450f33200b56c8ce29202.dir + size: 3662055 + nfiles: 37 - path: results/Cost/ hash: md5 md5: df065baef02592f01342ddfc90d0ec44.dir @@ -9033,8 +9074,8 @@ stages: nfiles: 12 - path: results/DesignSpaceExploration/ hash: md5 - md5: 73176c6c160eb767c8792c9ddc5d0099.dir - size: 37759 + md5: b3265f0ffd35a43b8dbd5036292a866d.dir + size: 66725 nfiles: 6 - path: results/DragIntegral/ hash: md5 @@ -9043,8 +9084,8 @@ stages: nfiles: 13 - path: results/FitOlaya/ hash: md5 - md5: e5524c4476d5167bfbd66ad7082718a2.dir - size: 2535490 + md5: f93cb90e6b8e563b0c59e6feb58b4f69.dir + size: 2538413 nfiles: 107 - path: results/ForceSaturationFigFunc/ hash: md5 @@ -9063,8 +9104,8 @@ stages: nfiles: 22 - path: results/PtoSweep/ hash: md5 - md5: 1d37ad117325251816337225686cda07.dir - size: 161154 + md5: f4915e0aed426aec285e25020c6b4087.dir + size: 161158 nfiles: 7 - path: results/QPCircles/ hash: md5 @@ -9073,9 +9114,9 @@ stages: nfiles: 6 - path: results/ReadNonMatlabFigs/ hash: md5 - md5: e302587f7ff97a10e411dc64339d03d9.dir - size: 3359489 - nfiles: 21 + md5: 6426a7e7a01346fc2ffe6dab64b26700.dir + size: 3663446 + nfiles: 27 - path: results/RunSingleFigFunc/ hash: md5 md5: 650fef0cc5d7f9b563d23b35c49738b3.dir @@ -9098,29 +9139,29 @@ stages: nfiles: 6 - path: results/SweepGeoms/ hash: md5 - md5: 96c995db0055e32ea511d22d54f3b35a.dir - size: 41086556 + md5: 1caba9936690907758e9c4de52d6ddf7.dir + size: 165284004 nfiles: 29 - path: results/Validation/ hash: md5 - md5: 33a4e374feb1806ffeb9f31801a10c3f.dir - size: 96217 + md5: f8025c0cd75525112ccdb95e43955984.dir + size: 96221 nfiles: 7 - path: results/Wecsim/ hash: md5 - md5: 895aaf00a7200da40b192af91bea1b80.dir - size: 467674800 - nfiles: 389 + md5: 531be3d8d083bd88078730c8e216587c.dir + size: 481970456 + nfiles: 410 outs: - path: pubs/applied-ocean-research-model/figs/from-matlab/ hash: md5 - md5: ce17ff68a235cae03b91c5fb1127b880.dir - size: 3939952 - nfiles: 55 + md5: 22177f4366ab94fe54dc75bf7c26f378.dir + size: 7098558 + nfiles: 58 - path: pubs/applied-ocean-research-model/tables/from-matlab/ hash: md5 - md5: 3d14c48a0d67e46c5bdb3723f654eb04.dir - size: 1584 + md5: 852a25f018af4e1f16f074e982947d49.dir + size: 1622 nfiles: 2 move-re-results: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); @@ -9128,17 +9169,17 @@ stages: deps: - path: mdocean/plots/fig_tab_pub_mapping.m hash: md5 - md5: 67f3ae197351f212b83550520d77d8f8 - size: 8599 + md5: 1b79c14cdb7137e7b09554e69414c711 + size: 8758 - path: mdocean/plots/move_results_to_pubs.m hash: md5 md5: 5d1567056152391d8fe496a6ceacd6fd size: 2084 - path: mdocean/plots/non_matlab_figs/pdf/ hash: md5 - md5: 66f106b60ef61310633d557f4f9512cf.dir - size: 3358191 - nfiles: 31 + md5: 6c7aa8a0336450f33200b56c8ce29202.dir + size: 3662055 + nfiles: 37 - path: results/AllFigCompare/ hash: md5 md5: e4cbd41b9ff92b288217dcee1ad15921.dir @@ -9146,9 +9187,9 @@ stages: nfiles: 5 - path: results/Comparison/ hash: md5 - md5: f4652176b7c5565f621cb5113ccbb691.dir - size: 29892297 - nfiles: 13 + md5: db5c6e348ac7eb84af0dfd6c567276a1.dir + size: 30166440 + nfiles: 17 - path: results/Constraints/ hash: md5 md5: c9c514187adc356e8e349527f9e4f62d.dir @@ -9156,8 +9197,8 @@ stages: nfiles: 4 - path: results/DesignSpaceExploration/ hash: md5 - md5: 73176c6c160eb767c8792c9ddc5d0099.dir - size: 37759 + md5: b3265f0ffd35a43b8dbd5036292a866d.dir + size: 66725 nfiles: 6 - path: results/DesignVars/ hash: md5 @@ -9166,9 +9207,9 @@ stages: nfiles: 4 - path: results/GradientOptimFigFunc/ hash: md5 - md5: 1d43af85abc8fa85c582a1a572b22c50.dir - size: 95655928 - nfiles: 15 + md5: b25f8eb547e259e5abcc2d399901dada.dir + size: 95697892 + nfiles: 16 - path: results/LocationSensitivity/ hash: md5 md5: 9d603811388d7924d581aea50fe73e21.dir @@ -9191,8 +9232,8 @@ stages: nfiles: 4 - path: results/ParetoFigFunc/ hash: md5 - md5: 8b240576617f66442373f6935c3e82eb.dir - size: 30645606 + md5: 4e7182123a3fece29b2c5eb042be4d48.dir + size: 30645371 nfiles: 13 - path: results/ParetoSweep/ hash: md5 @@ -9201,19 +9242,19 @@ stages: nfiles: 5 - path: results/ReadNonMatlabFigs/ hash: md5 - md5: e302587f7ff97a10e411dc64339d03d9.dir - size: 3359489 - nfiles: 21 + md5: 6426a7e7a01346fc2ffe6dab64b26700.dir + size: 3663446 + nfiles: 27 outs: - path: pubs/renewable-energy-mdo/figs/from-matlab/ hash: md5 - md5: b1f055487363cbeb3e6c8cf721238ab1.dir - size: 2725910 + md5: 643b965649888157e4684bb1c1f2a2dd.dir + size: 2711999 nfiles: 29 - path: pubs/renewable-energy-mdo/tables/from-matlab/ hash: md5 - md5: 5e5ada5cd4c3d00114f3018604bca9a6.dir - size: 11646 + md5: e36d166fe38468eaaf5424b5039ef9c8.dir + size: 11605 nfiles: 6 move-results: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); @@ -9750,8 +9791,8 @@ stages: deps: - path: ./mdocean/analysis/@Comparison/Comparison.m hash: md5 - md5: 42e28352a356377d4e49f815e5b5b52a - size: 771 + md5: d34f8372340cc4520ba7368e80dc51ee + size: 877 - path: ./mdocean/analysis/@Comparison/post_process_fcn.m hash: md5 md5: 751a78c6963f79aeafca35cc9ad4fb35 @@ -9823,8 +9864,8 @@ stages: size: 2696 - path: ./mdocean/plots/matlab_figs/optim/compare.m hash: md5 - md5: 603ef857d574b2fcd3937cdbbaca1a87 - size: 6357 + md5: e6cdbcebba489a633db468efb5f051ac + size: 6990 - path: ./mdocean/plots/matlab_figs/sim_results/power_PDF.m hash: md5 md5: 9784fb0ab003ab66ec4ce7eae48f8cce @@ -9985,51 +10026,51 @@ stages: outs: - path: results/Comparison/comparison_power_matrix.fig hash: md5 - md5: a1edc052b5fb1287ae5447fea91fd25b - size: 41519 + md5: 665c1cfe3ae33e093ca83ae1c491174a + size: 41515 - path: results/Comparison/comparison_power_matrix.pdf hash: md5 - md5: 0d3d7ae1cd6399ec93024dfed6ae8941 + md5: 724eab65ec6d1702cd46b134a06a4408 size: 22791 - path: results/Comparison/end.json hash: md5 - md5: c11063243024b7e9f5a87057aa501d34 + md5: b10ec2d56c2239bccd68e309c9fd041d size: 328 - path: results/Comparison/end.mat hash: md5 - md5: 1eb78ead8a6db126e2dbd83076bbfd3d + md5: 3abe53ebb45915cbc562943ea92edd90 size: 653 - path: results/Comparison/optimal_design_vars.tex hash: md5 - md5: 59b2f14be320ed0e614b3c9466ff2f17 - size: 958 + md5: 274a9aa530a2d0ecaf611bae3e68d7ba + size: 917 - path: results/Comparison/optimal_outputs.tex hash: md5 md5: c3f15ba09b9101483a66a73feb427802 size: 2622 - path: results/Comparison/overlaid_geometry.fig hash: md5 - md5: 5b42454bc2470964436328201c691137 - size: 24518 + md5: fc2abcfbae47559d18d0a1a470a15d07 + size: 24517 - path: results/Comparison/overlaid_geometry.pdf hash: md5 - md5: 3c23d478d0e7a314bf2075803b259cfb + md5: 8bcae60af5bdd46eb8a988d5652974f1 size: 6430 - path: results/Comparison/overlaid_hydro_coeffs.fig hash: md5 - md5: e71d6ada81455d07cd48b4b9e0ee62d9 - size: 35401 + md5: 3d8cc48e2ff877aed00e90408ee40aef + size: 35398 - path: results/Comparison/overlaid_hydro_coeffs.pdf hash: md5 - md5: f87a567a475593406b9ab1f7c6869af5 + md5: bdc37854245f19610703dc04a05dc880 size: 16987 - path: results/Comparison/probability_CDF.fig hash: md5 - md5: 236749db78ccaceb2c58a874461ae2dd - size: 18262 + md5: 27a91fafd5240adf22939c6749201d97 + size: 18261 - path: results/Comparison/probability_CDF.pdf hash: md5 - md5: 529a363c62c5bfd85d5e7de69e8bd88d + md5: c7e74ae461c4639a013a2cdab18cc39f size: 12104 postpro-Constraints: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); obj=Constraints; @@ -11061,8 +11102,8 @@ stages: size: 685 - path: ./mdocean/analysis/@DesignSpaceExploration/post_process_fcn.m hash: md5 - md5: cdcfb5407798af86f82b6e9bef8519af - size: 1577 + md5: bb08d5380c8dfb51d8fc289904d414ff + size: 1673 - path: ./mdocean/analysis/GenericAnalysis.m hash: md5 md5: 4926cc6082ca23736741c904afa0253a @@ -11144,14 +11185,14 @@ stages: hash: md5 md5: 66b6168e511faed3640fd48d3d40c19a size: 2696 - - path: ./mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m + - path: ./mdocean/plots/matlab_figs/optim/constraint_active_plot.m hash: md5 - md5: 1a42e61e9d3b61bbc8464782003d1a27 - size: 2652 + md5: a995d441b3c4ea0a6543535da5400703 + size: 2855 - path: ./mdocean/plots/matlab_figs/sim_results/experiments_plot.m hash: md5 - md5: 14a1c98099af67e824bda3f8e6a4a527 - size: 3129 + md5: 3a66a1fe7f7d104dd03043f13a04cfc9 + size: 4271 - path: ./mdocean/plots/util/bluewhitered.m hash: md5 md5: 73cb36a4ef069b128037c10207532e8e @@ -11303,25 +11344,25 @@ stages: size: 11792 - path: results/DesignSpaceExploration/intermed.mat hash: md5 - md5: 1065001b3b06914a97f30d98d04f09aa - size: 8308 + md5: 18a950a4e7c471fd33c5ac2c4d1da963 + size: 12471 outs: - path: results/DesignSpaceExploration/end.json hash: md5 - md5: 70ad2d8c698ccee689d918446d5c8602 + md5: 211a00b56325e7bf8621203472d5d3f7 size: 106 - path: results/DesignSpaceExploration/end.mat hash: md5 - md5: 6199c978d44dda438fdb2d50841f612e + md5: b8ecaec8a2c9a09fc8fedf58f13c51ac size: 334 - path: results/DesignSpaceExploration/experiments_ratios.fig hash: md5 - md5: b356f3b07304ec49ba76dc3d649b237a - size: 22599 + md5: 936d28eb8385aadd2e596a1ccf30ede9 + size: 38110 - path: results/DesignSpaceExploration/experiments_ratios.pdf hash: md5 - md5: b123db8261ae0876c9ced6da8ae1aeb7 - size: 6259 + md5: 3c595816b3c98dbf14dfae1b112cc128 + size: 15551 - path: results/DesignSpaceExploration/experiments_results.tex hash: md5 md5: 1f8075af5be22467369970bddbb1b0cc @@ -11850,8 +11891,8 @@ stages: size: 5822 - path: ./mdocean/analysis/@FitOlaya/post_process_fcn.m hash: md5 - md5: 299dc6a14b094079c97973a38a364a4e - size: 39578 + md5: e7a6f019b2a2a7556e88ff0929438f8b + size: 39627 - path: ./mdocean/analysis/GenericAnalysis.m hash: md5 md5: 4926cc6082ca23736741c904afa0253a @@ -12069,429 +12110,429 @@ stages: outs: - path: results/FitOlaya/case24_compare_line_kRb_fnorm.fig hash: md5 - md5: 37bb985b153c080e1fd9d4beb1140282 - size: 11631 + md5: 28a793684b139d3c56d680334f13be38 + size: 11630 - path: results/FitOlaya/case24_compare_line_kRb_fnorm.pdf hash: md5 - md5: 6c59937959b1215d72a3a4129f2c92ae + md5: ac3bbb49ecb17e97d8687848dd6fbb1b size: 7508 - path: results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.fig hash: md5 - md5: 8662a71a0a21a23f91bd9c407b35dc43 - size: 12417 + md5: f5a1e9bcbf7cd4f0841a2e53fa9e3aa1 + size: 12416 - path: results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0.pdf hash: md5 - md5: 9d8921639ba82393f7bad2be3ea6b0f7 + md5: 52fd6620c22429701ad457b5c37696b7 size: 7297 - path: results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.fig hash: md5 - md5: b99a4b778742f2d2cec3e7db29fd9695 - size: 12612 + md5: ff27d02a32ab06915bbd3873a72dc063 + size: 12611 - path: results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1.pdf hash: md5 - md5: ccb60b8e3c812e2b74231e6bcdfee362 + md5: 4e113b58b68e6498c863d832b9276081 size: 7477 - path: results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.fig hash: md5 - md5: d755a250fe92f9a7d53e1694a45cafe5 - size: 12575 + md5: 3f26d91b9aa4480fa0931d08c3799d71 + size: 12572 - path: results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe1e2.pdf hash: md5 - md5: 2e2b24394b494df8a5d565268ebadee2 + md5: 4f96c968da504b0c28cb7da0231dc1f6 size: 7411 - path: results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.fig hash: md5 - md5: 3eeb8af86b06f1fd6e57c3e48f3162ed + md5: 93174e0614bcb1abc436425cf4cfbd1c size: 12590 - path: results/FitOlaya/case2_line_khRxRp_f_over_RxRb_aH0_expe2.pdf hash: md5 - md5: f909b35bf576ca7c9f80151735159c20 + md5: dcce457f480b577ce8bad63312b329ee size: 7446 - path: results/FitOlaya/case2_line_khRxRp_f_over_a2.fig hash: md5 - md5: 1576bc4f668c9394a38cb9435b3a2d38 - size: 12198 + md5: 9b895517be1769b335ebeee7991bbceb + size: 12195 - path: results/FitOlaya/case2_line_khRxRp_f_over_a2.pdf hash: md5 - md5: afe08bad99cb9ab9f7a37b230550fd28 + md5: 4d6a9ead7331b2878cbe70ea20f9fac4 size: 7250 - path: results/FitOlaya/case2_line_khRxRp_f_over_a2H0.fig hash: md5 - md5: 4cba2b86c3b26f3004af588b8cb7289d - size: 12408 + md5: 721e24c414f039e7126ff99b0c4c4e0a + size: 12407 - path: results/FitOlaya/case2_line_khRxRp_f_over_a2H0.pdf hash: md5 - md5: ed3b14dcdf66b856730dd05d8d319195 + md5: ef2af91663a3f956d9ddb1ad4e43de23 size: 7256 - path: results/FitOlaya/case2_line_khRxRp_fnorm.fig hash: md5 - md5: 83509dfd5651a45d536ffc8db89d734c - size: 12155 + md5: e839c4419a473649b0fab18c538363cd + size: 12153 - path: results/FitOlaya/case2_line_khRxRp_fnorm.pdf hash: md5 - md5: 7893d0f749d52b1590adf784b8eccf7c + md5: bb6a146b95de6519d9f9f63825c5ed57 size: 6498 - path: results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.fig hash: md5 - md5: d404f3a7acfb4f3272718b6669f3601e - size: 12677 + md5: 9a0070aad1b6a874a5126ee47dc62dfd + size: 12676 - path: results/FitOlaya/case2_line_khRxRpa2_f_over_RxRb_aH0_expe1.pdf hash: md5 - md5: 8f7b49c84db21843f1e24722c604d580 + md5: 831da8fe39764a757d70aa090417bd00 size: 7270 - path: results/FitOlaya/case2_line_khRxRpa2_f_over_a2.fig hash: md5 - md5: fc37ff540de4ebe26badb47bf8f800bf - size: 12169 + md5: 64e4006963c06371bf63aea2601916ff + size: 12172 - path: results/FitOlaya/case2_line_khRxRpa2_f_over_a2.pdf hash: md5 - md5: 8026ceb01bdc1744280f4fb2b77b0b30 + md5: 71ae0d5dc3492d4fd783b019ba82513d size: 6897 - path: results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.fig hash: md5 - md5: f1858ceb8592e2bcc7a8e0b6d2603175 - size: 245061 + md5: ce4c4527b8ec064e05eec7c539e8cc8b + size: 245062 - path: results/FitOlaya/case4_sep_auto_lnkhRxRpa2b_lnf_H0_expe1_sqrtkh.pdf hash: md5 - md5: 433fbc46c235010d0a8f3689905bf728 + md5: 76506df83daacd04a5f5c3cdbd796d24 size: 168821 - path: results/FitOlaya/case4_sep_coeffs_vs_alpha.fig hash: md5 - md5: fd5b6eaab106e20af9c475aa7001e6c2 - size: 33963 + md5: bb200e2ed43532e6b8bc80325443f8a9 + size: 33959 - path: results/FitOlaya/case4_sep_coeffs_vs_alpha.pdf hash: md5 - md5: 7e3e12b1fe97f2e5ea096e7d18d90565 + md5: b2e051412bf1dc7a352f838495ceb222 size: 9920 - path: results/FitOlaya/case4_sep_coeffs_vs_beta.fig hash: md5 - md5: 691050eca9c6183bb371c63ac2306f8e - size: 32991 + md5: f35bf8ecfc17081fecaa9bbd83417b0b + size: 32992 - path: results/FitOlaya/case4_sep_coeffs_vs_beta.pdf hash: md5 - md5: 5b93afc540b1af71b6dbda95c96525d5 + md5: bbd823c834811268af673efb7893dce1 size: 9969 - path: results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.fig hash: md5 - md5: d9e55265f0aae2fe8603a5b79f6382d6 - size: 42612 + md5: a3a4ed9284e424fe6ae621d0b73b732b + size: 42616 - path: results/FitOlaya/case4_sep_manual_khRxRpa2b_f_H0_expe1_sqrtkh.pdf hash: md5 - md5: 0477acc703b1d475d4f068a33c50a054 + md5: a67cd53cc61948e3ca8231e454af7390 size: 32651 - path: results/FitOlaya/case4_sub_line_kRb_fnorm.fig hash: md5 - md5: b6bc0d4d573c65a17224831c2f31a01b + md5: e0387426b5222eaabd33706ef468f514 size: 30652 - path: results/FitOlaya/case4_sub_line_kRb_fnorm.pdf hash: md5 - md5: f71ac2aa612f8570e3c4495d2b21b8d4 + md5: 01550f071ce3c2fccff261ef84c38050 size: 11416 - path: results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.fig hash: md5 - md5: cdcf7c9af9f09c5d75beb6f847ff7796 + md5: 67b6e4a14c63a9076e5a89e005641980 size: 30745 - path: results/FitOlaya/case4_sub_line_khRxRp_f_H0_cosh_N0.pdf hash: md5 - md5: 02511056edaf9c11e12bf1fc455bf878 + md5: 765da5e7cd5ec0f7f744a676c8c9b932 size: 11667 - path: results/FitOlaya/case4_sub_line_khRxRp_fnorm.fig hash: md5 - md5: 8c278f1b756f20a3e78e64b7f846a95b - size: 30643 + md5: 43ab22caa112c8a13ba24f75a6b1c301 + size: 30646 - path: results/FitOlaya/case4_sub_line_khRxRp_fnorm.pdf hash: md5 - md5: a8970a981ebb307b60eab993db7ab3da + md5: 39995eff142f06111ca8aae9f784e601 size: 11520 - path: results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.fig hash: md5 - md5: 0722ec3c0c5cc7189433e97001e608f2 - size: 31422 + md5: 5f56ddb552b3ad3e818f79472de487e9 + size: 31417 - path: results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1.pdf hash: md5 - md5: 45e43a869dbb6da801c925349ec18003 + md5: ab7b647796b7afc095d81ce016135493 size: 26844 - path: results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.fig hash: md5 - md5: 814be60caccf4aaa867427a51f65dbcb - size: 31747 + md5: 118a2d219557199bbb81526b63648f7f + size: 31749 - path: results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_b2sqrtkh.pdf hash: md5 - md5: 819b8fc07296c7b00d46464e3941a65d + md5: f9e15fc7dcbd2896be1c2ad1fed022d3 size: 29731 - path: results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.fig hash: md5 - md5: 2e7f219905613f7af6763c5da810a5fe - size: 31530 + md5: 7e195deaab763c68c25bd8edcee5353c + size: 31527 - path: results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe1_sqrtkh.pdf hash: md5 - md5: 1c9ade00c369e53dadc146ebbe8cae97 + md5: 812c336276a669bfff8c24d110b6e505 size: 29665 - path: results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.fig hash: md5 - md5: 57d4b37cdb5122a42a8eeb0671a03ced - size: 31454 + md5: 123ef467d0ca4138aba5e90f45e4d041 + size: 31453 - path: results/FitOlaya/case4_sub_loglog_khRxRpb_f_H0_expe2_sqrtkh.pdf hash: md5 - md5: 7608f181e4ed789ec0024eabf2df34b1 + md5: b2d2212843b9f0a37788579e12e0f237 size: 30279 - path: results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.fig hash: md5 - md5: 54663ebfe826a549cb3da805e166e2e1 - size: 28574 + md5: 5b2088970439e33de742617115fd1949 + size: 28606 - path: results/FitOlaya/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.pdf hash: md5 - md5: 39e953ecf64b5ce1bc1f560698fb9084 - size: 50653 + md5: 38da7613e453e2eba3b74714aae6d968 + size: 53554 - path: results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.fig hash: md5 - md5: cf45698628f33ae08fadc09dfd4a20ef - size: 18793 + md5: 6731b92270d9e3fe03a950e82a2f79e0 + size: 18796 - path: results/FitOlaya/case4_v1_auto_scatter_actual_vs_pred.pdf hash: md5 - md5: b7aebe4e026c73e1ba361d7fadddc605 + md5: a91ce753ac0a9867c0935d4e55f0e208 size: 17468 - path: results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.fig hash: md5 - md5: e3bc7bb0ba433a19a17f63b9ed1cb693 + md5: c866592e399531372e3d6e05a0c5d721 size: 18410 - path: results/FitOlaya/case4_v1_auto_scatter_khRxRpa2b_frac_err.pdf hash: md5 - md5: eb9ac541d6dcfcb18cd8a0eb97ed5f32 + md5: b9bc40edb8692c952d9523e002d04b5d size: 10645 - path: results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.fig hash: md5 - md5: 4e2204b091e86726af82a67795c3a8b5 - size: 26892 + md5: 908d00308ae6e41992c2c865546842c7 + size: 26895 - path: results/FitOlaya/case4_v1_auto_semilogx_khRxRpa4b_fv1.pdf hash: md5 - md5: 8d40c689d0aa4f1aaefd33eb4a5e96e4 + md5: 9e671e8c5d65706434c5f093ac65e1f4 size: 39889 - path: results/FitOlaya/case4_v1_coeffs_vs_alpha.fig hash: md5 - md5: cc647fd669f09d082cdd063b9c16a3be - size: 33373 + md5: a4e9376d953f600456cd3877c725ad9e + size: 33370 - path: results/FitOlaya/case4_v1_coeffs_vs_alpha.pdf hash: md5 - md5: ec123cc4ceb74923913a1a073b8e5c55 + md5: 983784931b42df52fb9f2070f7ec32f9 size: 7268 - path: results/FitOlaya/case4_v1_coeffs_vs_beta.fig hash: md5 - md5: 9ccbb39ce315eb88c994eeeb13c2b20b - size: 33867 + md5: ca22caa81ff2674348e31041b5ff0b51 + size: 33869 - path: results/FitOlaya/case4_v1_coeffs_vs_beta.pdf hash: md5 - md5: 8b89831bbceefc07fc184e1f079e42e4 + md5: a9241a9dac4a0f211a2aefd582d1e7bf size: 7248 - path: results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.fig hash: md5 - md5: aba9beaa8186cb17bcf9aaab13d49a1d - size: 18686 + md5: 61f4dcc8f3bd7fb3609edef289ca0508 + size: 18685 - path: results/FitOlaya/case4_v1_manual_scatter_actual_vs_pred.pdf hash: md5 - md5: cb2e312e34824c19ec2a62a0c2d30fbd + md5: 6c6b1823125a7d3898e6fba4dec66565 size: 17170 - path: results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.fig hash: md5 - md5: f646426445e1db109f8e2fafc8e2aa7b + md5: 2de90f2d6d3dd980e7a4d2690e129906 size: 18281 - path: results/FitOlaya/case4_v1_manual_scatter_khRxRpa2b_frac_err.pdf hash: md5 - md5: 52b0f1dc9920b6069d17b2b07365ea04 + md5: c27f69d91d887f14b870414d1428d20f size: 13364 - path: results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.fig hash: md5 - md5: 507ee1723cbf80c3628f790460a316e3 - size: 26894 + md5: 51b17206fdbd789efea5b94c16e04029 + size: 26891 - path: results/FitOlaya/case4_v1_manual_semilogx_khRxRpa4b_fv1.pdf hash: md5 - md5: 3b945fd557445aaa040a874b368a39c0 + md5: 608b71d95e77dddb0f2d6b23a60c70fa size: 39889 - path: results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.fig hash: md5 - md5: 5a5a36d9d78dfcd2ad96929d879953f9 + md5: 5dbeb96f32a6435c2999fe6167b7e89b size: 26883 - path: results/FitOlaya/case4_v2_auto_loglog_khRxRpa3b_fv2.pdf hash: md5 - md5: ac20d23acdadb432c2c2e7af856685ce + md5: c805c4d896ca319939ba37628df2c4d9 size: 39627 - path: results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.fig hash: md5 - md5: 8de4e5c1b74791ff6b81ed55215600c3 - size: 18720 + md5: c9c0a10bb44b17239a872941ca77b664 + size: 18718 - path: results/FitOlaya/case4_v2_auto_scatter_actual_vs_pred.pdf hash: md5 - md5: 9b4e48c982d34f720f2393fb76a58f70 + md5: dc99f9355fb3b714ba0764abe23ad015 size: 16721 - path: results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.fig hash: md5 - md5: f61495a249d39cd82c1e8dccf4b750fe - size: 18313 + md5: 4996332b18de8a0bcc9e23736cc37c6c + size: 18311 - path: results/FitOlaya/case4_v2_auto_scatter_khRxRpa2b_frac_err.pdf hash: md5 - md5: 7743c3914b6d6bf1dc0ccc4229bea69d + md5: 16f4cd1b3da3112a0046b326bfa94995 size: 11600 - path: results/FitOlaya/case4_v2_coeffs_vs_alpha.fig hash: md5 - md5: 45c6727ba64ca30b036c2bd2ee610070 - size: 33557 + md5: e943ee55b16d012b02e80665020fd9ff + size: 33554 - path: results/FitOlaya/case4_v2_coeffs_vs_alpha.pdf hash: md5 - md5: d40586126cfecf541a090054c4f8ccd6 + md5: dc6263e33861d20015c4c70198b51938 size: 7340 - path: results/FitOlaya/case4_v2_coeffs_vs_beta.fig hash: md5 - md5: a29c5afde6624ddd03e9df3e83e9b23b - size: 33741 + md5: 3c07ac2edc1c1fc2157a9f1650b2e177 + size: 33736 - path: results/FitOlaya/case4_v2_coeffs_vs_beta.pdf hash: md5 - md5: 468943e84bc577b2ec535ab1fb7fe87b + md5: 218719adf70f3b4c782e9f5cf913a208 size: 7321 - path: results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.fig hash: md5 - md5: 59f6359bb9be5c7158793d9911f8725e + md5: bed33555c890f6c272ee70770c83cfc3 size: 26882 - path: results/FitOlaya/case4_v2_manual_loglog_khRxRpa3b_fv2.pdf hash: md5 - md5: 7dd153f9868fc7442d7f2b3fbab34054 + md5: 01048f62775ebb76995c175ca884b87b size: 39627 - path: results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.fig hash: md5 - md5: 10a13a38d4b6605742c58dcdbc400331 - size: 18688 + md5: dbf9149af53b34fa97e95705c2096b24 + size: 18687 - path: results/FitOlaya/case4_v2_manual_scatter_actual_vs_pred.pdf hash: md5 - md5: fc6a03485c2e48c37d08baf05679a4ac + md5: c063a83bbfc7adc076657f7930f7f236 size: 17170 - path: results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.fig hash: md5 - md5: d8fdda25ca8d669f6622d2eb62ecc488 - size: 18278 + md5: 1b58a595f17eeab2edffcbc4a869ccac + size: 18281 - path: results/FitOlaya/case4_v2_manual_scatter_khRxRpa2b_frac_err.pdf hash: md5 - md5: bca211fc0ccb486590f45fb8a3e69a98 + md5: 4e8b88d5ca55ede44a77d38b40610778 size: 13364 - path: results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.fig hash: md5 - md5: 8f2b5dc66d8fc04efa42ce97cb344c40 - size: 26284 + md5: 4444b9983bb67a9a36d2492717d4f69a + size: 26281 - path: results/FitOlaya/case4_v3_loglog_khRxRpa3b_fv2_x15.pdf hash: md5 - md5: 0ba230bfa612fc4cb26eb34cb5a1422e + md5: 5360dd7fd3e5311b50e2c25e6fa832d1 size: 39218 - path: results/FitOlaya/case4_v3_scatter_actual_vs_pred.fig hash: md5 - md5: fa022586c6dcb7bdc284e0017555d9b5 - size: 18753 + md5: f49d62a216bf1180999c8470a14f31a2 + size: 18750 - path: results/FitOlaya/case4_v3_scatter_actual_vs_pred.pdf hash: md5 - md5: 8309c8011c2df38295be3f4730691b27 + md5: a91cd60cb26a5ce8a62eee83d9d83258 size: 15351 - path: results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.fig hash: md5 - md5: f91e0a1163ec1e03cc4f44f66639c630 - size: 18460 + md5: 820b19a06fe76be022a414820a986045 + size: 18463 - path: results/FitOlaya/case4_v3_scatter_khRxRpa2b_frac_err.pdf hash: md5 - md5: 22e6e68cabba488b70a257044a550490 + md5: a8a6958f2c38e938c664e2e2e23ffc52 size: 12752 - path: results/FitOlaya/case4_v4_coeffs_vs_alpha.fig hash: md5 - md5: a4b99faddbbb580fd47b6489cda5a732 - size: 43025 + md5: 4051c50a8ecbcff96d7ec7e4094a273a + size: 43028 - path: results/FitOlaya/case4_v4_coeffs_vs_alpha.pdf hash: md5 - md5: e1379783d0c6392c6e6ac4080c241508 + md5: f23a428b93f3ee0499d72d9bf904bbc3 size: 9737 - path: results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.fig hash: md5 - md5: 40129f6a09c5aa332a38a0681b224056 - size: 83111 + md5: 020cdee7242fc4a5bf38aad0c08eb15b + size: 83112 - path: results/FitOlaya/case4_v4_coeffs_vs_alpha_and_beta.pdf hash: md5 - md5: c18fd5f1fe51151f08f659c9c5f37537 + md5: 25323120a77e0963d5b9996b8c14b700 size: 13116 - path: results/FitOlaya/case4_v4_coeffs_vs_beta.fig hash: md5 - md5: 256d9da5e1f076831db7f25afae0f14f - size: 42166 + md5: 6102e31bcf3573303ac107667208ff82 + size: 42167 - path: results/FitOlaya/case4_v4_coeffs_vs_beta.pdf hash: md5 - md5: 4cdd0b047da845051cefe396aa7c1242 + md5: 1d2ca2a0d485c5fb53289b4e2a5e4fdc size: 9977 - path: results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.fig hash: md5 - md5: 305cb9b081ad19fe5c525a730ce88580 - size: 20575 + md5: 2fb1ce836a2425d97bd6c7b55c352a29 + size: 20579 - path: results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform.pdf hash: md5 - md5: 1ac14f6ca4c0fd3acf29d5586023b5d6 + md5: b956675973305ca71443fb3209beb2fc size: 42834 - path: results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.fig hash: md5 - md5: f08590efd39bf1fac05e2d2a2446ceda - size: 57107 + md5: 760a5dbd02f6ec77fa0348626616c8b8 + size: 57106 - path: results/FitOlaya/case4_v4_loglog_khRxRpa2b_newform_fit_curves.pdf hash: md5 - md5: ec55b2294e25da8ac224b2e18ae08303 + md5: 2c47c6d847e15cf7fa12cc37854c5a40 size: 62288 - path: results/FitOlaya/end.json hash: md5 - md5: 527ffadf8140b0bbcf08000dfd8bf8b4 - size: 100 + md5: c8971b9969c2ae23360563531d47ae0c + size: 99 - path: results/FitOlaya/end.mat hash: md5 - md5: 913d3dfc07f499d598a47c7b70ece76b + md5: 2605a707a67abbca6e7a5d69e37d418f size: 327 - path: results/FitOlaya/orig_12a_line_kRb_fbar.fig hash: md5 - md5: b7523c85252a171dbac944e63690e2d8 - size: 9097 + md5: d83e469692021940f18ded51357f0693 + size: 9096 - path: results/FitOlaya/orig_12a_line_kRb_fbar.pdf hash: md5 - md5: 91da6c98304789f125b058d42d76d436 + md5: 6af7ddc65e95bc3e31b09b8d37a88367 size: 3148 - path: results/FitOlaya/orig_12b_line_kRb_fbar.fig hash: md5 - md5: d25c92aaaf7f7e7b442e844b820d7ad0 - size: 9620 + md5: 462f5768d3a9314e4fc678b80cb3348c + size: 9622 - path: results/FitOlaya/orig_12b_line_kRb_fbar.pdf hash: md5 - md5: 7bb4f5838c98b85d8d7d36ad513f58e7 + md5: cc1b9e8d6ed6fbe106e674fb6ad09e7a size: 3453 - path: results/FitOlaya/orig_12c_line_kRb_fbar.fig hash: md5 - md5: 42a3a8f7f0eb22cf7c3d536f9c32706a - size: 9289 + md5: 0cbd5e09b580639b8b5632cd8a9262ec + size: 9291 - path: results/FitOlaya/orig_12c_line_kRb_fbar.pdf hash: md5 - md5: cc408a509a8e9131b3273721043b0051 + md5: 9e85a38623696a27f8a2d620a056e70b size: 3089 - path: results/FitOlaya/orig_12d_line_kRb_fbar.fig hash: md5 - md5: 55bb70bed56fe889974bc8ee950eef38 + md5: f0728bc0131fadb5ae15d53de4eb15ab size: 9071 - path: results/FitOlaya/orig_12d_line_kRb_fbar.pdf hash: md5 - md5: 699d17f90398a3e26961d1f3f998b8dd + md5: 94856fc2379c57715f29cf3018c5fc85 size: 3078 - path: results/FitOlaya/orig_3b_line_kRb_fbar.fig hash: md5 - md5: b6cc3e3cb473c6543d3ebf48f0c3a71c - size: 9049 + md5: a4bf0e5608dd535d9f10409be6da070c + size: 9052 - path: results/FitOlaya/orig_3b_line_kRb_fbar.pdf hash: md5 - md5: 3a1672d286894041e6652d24ab5751f8 + md5: 26341d8c63bb159f7b442179e63e3efd size: 3049 - path: results/FitOlaya/orig_4b_line_kRb_fbar.fig hash: md5 - md5: eceaafb3cddc78f9798b264ca533303e - size: 9518 + md5: 395d651d8503fccf32025973a1619e6e + size: 9519 - path: results/FitOlaya/orig_4b_line_kRb_fbar.pdf hash: md5 - md5: 20692e71201c55d285080fd3f4a12c78 + md5: de7945d2fc05b58edf9b7f24be938dd4 size: 3011 postpro-ForceSaturationFigFunc: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); @@ -15252,10 +15293,10 @@ stages: hash: md5 md5: 66b6168e511faed3640fd48d3d40c19a size: 2696 - - path: ./mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m + - path: ./mdocean/plots/matlab_figs/optim/constraint_active_plot.m hash: md5 - md5: 1a42e61e9d3b61bbc8464782003d1a27 - size: 2652 + md5: a995d441b3c4ea0a6543535da5400703 + size: 2855 - path: ./mdocean/plots/util/bluewhitered.m hash: md5 md5: 73cb36a4ef069b128037c10207532e8e @@ -15412,51 +15453,51 @@ stages: outs: - path: results/ParetoFigFunc/end.json hash: md5 - md5: e5f0b5a1a78fcd480c6b31037331a769 + md5: 675515003eb82a83a53d7e9cf319e153 size: 218 - path: results/ParetoFigFunc/end.mat hash: md5 - md5: d69cf76fe34603b250337136074748fb + md5: 5c0ef19bda4c32d8c76926618d6cbac8 size: 521 - path: results/ParetoFigFunc/pareto_constraint_activity_damping.fig hash: md5 - md5: 2d834ea43d5ce7452a928798e53ca79c - size: 23504 + md5: 8a5bf0b8209ca85e53eee06325f0ea6f + size: 23535 - path: results/ParetoFigFunc/pareto_constraint_activity_damping.pdf hash: md5 - md5: f321c5ae2977e94b1e1c05c9526cb5c3 - size: 14580 + md5: 71abdc901d3352ae15bd5699492010c1 + size: 14447 - path: results/ParetoFigFunc/pareto_constraint_activity_reactive.fig hash: md5 - md5: 226951e62ab573a908b730b0017f45f8 - size: 23193 + md5: d2b38705c8004dfad19324fd61e2a73e + size: 23228 - path: results/ParetoFigFunc/pareto_constraint_activity_reactive.pdf hash: md5 - md5: dc9ab2deba00d999701bf67ea25bdde0 - size: 14165 + md5: baf291cc8ab0984b6efac3ca75e6b85c + size: 14004 - path: results/ParetoFigFunc/pareto_front_LCOE_contours.fig hash: md5 - md5: dc6c342f450f7d6476486ac604b0a34c - size: 40643 + md5: 06a148a0e61e33f263303529c06c9117 + size: 40640 - path: results/ParetoFigFunc/pareto_front_LCOE_contours.pdf hash: md5 - md5: d9e1d04d96e49e159a91c412a5684fe0 + md5: ed44716af06b07ea75953b746b836f19 size: 10695 - path: results/ParetoFigFunc/pareto_front_with_design_images.fig hash: md5 - md5: e7b3a37e35a8e9aa60902382d3c86906 - size: 34555 + md5: 405ee1304cca01552464b930a26ab853 + size: 34551 - path: results/ParetoFigFunc/pareto_front_with_design_images.pdf hash: md5 - md5: ea49bcaf4083cbc2c044061188d054b7 + md5: ae2197f74205cda0a010b6903103040c size: 10812 - path: results/ParetoFigFunc/pareto_heuristics.fig hash: md5 - md5: 04a563dc804abd377780272ae58fbe03 + md5: 61bb40de68612cadef8a490e4a7e2aef size: 27327 - path: results/ParetoFigFunc/pareto_heuristics.pdf hash: md5 - md5: 895438c4dc360aee01d915949fd8c7b6 + md5: 335d1879419923ef8eecd3b28621e74f size: 15142 postpro-ParetoSweep: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); obj=ParetoSweep; @@ -15711,8 +15752,8 @@ stages: size: 1037 - path: ./mdocean/analysis/@PtoSweep/post_process_fcn.m hash: md5 - md5: 136c0ff7f02d67fc56882dfb0c26baa2 - size: 5782 + md5: 346d4ad256bee6552fcec38dd5c69611 + size: 5819 - path: ./mdocean/analysis/GenericAnalysis.m hash: md5 md5: 4926cc6082ca23736741c904afa0253a @@ -15930,27 +15971,27 @@ stages: outs: - path: results/PtoSweep/end.json hash: md5 - md5: b16b1ef1c57f34b584d05625a393acb1 + md5: 4f061bbff03db67d142759499e6c4d36 size: 274 - path: results/PtoSweep/end.mat hash: md5 - md5: ff588b557b8c3b4195192e87046802a0 + md5: 569db3a8e40523132ccf33479dc6fcb0 size: 594 - path: results/PtoSweep/pto_sweep.fig hash: md5 - md5: a6683e7500d1b53f78b29262069859f1 - size: 55516 + md5: 8b006f060df700a8285d688a2a36b992 + size: 55519 - path: results/PtoSweep/pto_sweep.pdf hash: md5 - md5: 2d2b9ca0939027a82fe02da20bbc450f + md5: b29cc6b70b10caf33d66a59dc4bf89c5 size: 21525 - path: results/PtoSweep/pto_sweep_constraint_activity.fig hash: md5 - md5: f264e421e46b52d6c0e8b4dbc8dc1b82 - size: 55915 + md5: 4294c356e325ee84c7a31b6e85b73a68 + size: 55916 - path: results/PtoSweep/pto_sweep_constraint_activity.pdf hash: md5 - md5: ebad3fa52186b167cbb54aedecb2f8a3 + md5: afc9b3305631da0583bea444870f1d64 size: 18062 postpro-QPCircles: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); obj=QPCircles; @@ -16205,8 +16246,8 @@ stages: deps: - path: ./mdocean/analysis/@ReadNonMatlabFigs/ReadNonMatlabFigs.m hash: md5 - md5: 13a2d890d5175a2a99a093a1196af86d - size: 1852 + md5: f7eafaafd3427886204ea2252df38ba3 + size: 2130 - path: ./mdocean/analysis/@ReadNonMatlabFigs/post_process_fcn.m hash: md5 md5: ea01fab4c545653761f5222b5293d4e6 @@ -16423,18 +16464,18 @@ stages: size: 11792 - path: mdocean/plots/non_matlab_figs/img/ hash: md5 - md5: 8604900a03a498a636a5b154ae7dc098.dir - size: 7897739 - nfiles: 39 + md5: 4d2d3bc9eefb666f6cf7f50d73f16c43.dir + size: 7968306 + nfiles: 40 - path: mdocean/plots/non_matlab_figs/pdf/ hash: md5 - md5: 66f106b60ef61310633d557f4f9512cf.dir - size: 3358191 - nfiles: 31 + md5: 6c7aa8a0336450f33200b56c8ce29202.dir + size: 3662055 + nfiles: 37 - path: results/ReadNonMatlabFigs/intermed.mat hash: md5 - md5: 918a7b0ce2206bdea5e45c1ceb80d6b2 - size: 613 + md5: 57d67fbbbd02eb3b7752c603ff504ea4 + size: 706 outs: - path: results/ReadNonMatlabFigs/FBD.pdf hash: md5 @@ -16450,8 +16491,8 @@ stages: size: 195794 - path: results/ReadNonMatlabFigs/control_analysis_flowcharts.pdf hash: md5 - md5: 3f54c3aea3fcdfbf036420e5a18b794a - size: 400999 + md5: ea9376dfe788df8063cff49d547ca8da + size: 377957 - path: results/ReadNonMatlabFigs/damping_plate_flowchart.pdf hash: md5 md5: aa1482952b02689aee227dda404c6f3d @@ -16462,11 +16503,11 @@ stages: size: 208187 - path: results/ReadNonMatlabFigs/end.json hash: md5 - md5: df1563b54df00b4eabc4278b2e6b4744 + md5: f3ed0f8c3c1f9ecfd6649b4b7a4a67dc size: 85 - path: results/ReadNonMatlabFigs/end.mat hash: md5 - md5: cbba52ad8f281cc162ecf0cd234d071e + md5: 2dc5dff5c5f44b39aea7c99571140166 size: 311 - path: results/ReadNonMatlabFigs/equivalent_stiffness.pdf hash: md5 @@ -16478,7 +16519,7 @@ stages: size: 248293 - path: results/ReadNonMatlabFigs/graphical_abstract_optim.pdf hash: md5 - md5: d27aac8e92b2138b2d5cb385aaf8f07b + md5: 552572f8bc6df945d078d9bd8f604ce1 size: 1920 - path: results/ReadNonMatlabFigs/methodology_flowchart.pdf hash: md5 @@ -16486,12 +16527,12 @@ stages: size: 401345 - path: results/ReadNonMatlabFigs/mod_freq_domain_ctrl_evaluation.pdf hash: md5 - md5: 1c1bd34055d707ffe2d64af28487c183 - size: 20481 + md5: ef8fd17c9470379fcdf57f2cfbd2ee91 + size: 20499 - path: results/ReadNonMatlabFigs/mod_freq_domain_ctrl_synthesis.pdf hash: md5 - md5: f462f986a68f6f1b63d90f3b1c10e53a - size: 20534 + md5: 04d1d3015f2c42625cacb4aa91abe911 + size: 20549 - path: results/ReadNonMatlabFigs/optimization_flowchart.pdf hash: md5 md5: 175454d474c0fd7978830bdd0450bfa5 @@ -17643,8 +17684,8 @@ stages: size: 1529 - path: ./mdocean/analysis/@SweepGeoms/post_process_fcn.m hash: md5 - md5: 6bea69a26338508d6faec76cc5e03227 - size: 25151 + md5: 207fc1742250e9b80dbadb86cc603b4d + size: 25222 - path: ./mdocean/analysis/GenericAnalysis.m hash: md5 md5: 4926cc6082ca23736741c904afa0253a @@ -17869,121 +17910,121 @@ stages: size: 11792 - path: results/SweepGeoms/intermed.mat hash: md5 - md5: 890cf9334d2cc0ff5774aa140b73886c - size: 35018822 + md5: 0cc2d47de2b396009e108ba112d49276 + size: 96316749 outs: - path: results/SweepGeoms/end.json hash: md5 - md5: 7586a6f17fd19d25fb1b3459e4002a73 - size: 101 + md5: 770376cdf1adc3528af842dc13424b18 + size: 136 - path: results/SweepGeoms/end.mat hash: md5 - md5: f750190c222032a60e07edc9f146530b - size: 315 + md5: 6861bad2f29c0e57c4fbd8eda0b224e9 + size: 367 - path: results/SweepGeoms/factor_grid.fig hash: md5 - md5: 6ac3449eb115bc670bf65f0f985961bf - size: 24723 + md5: 87c012a7c8e52718cb8f8af8295bd9cc + size: 24678 - path: results/SweepGeoms/factor_grid.pdf hash: md5 - md5: 9d098a7ae73cfac608c71fb1bcc35775 - size: 88665 + md5: 147a3c8c43074f9f4a0f4d003cd64616 + size: 86081 - path: results/SweepGeoms/sweep_geoms_grid_scatter.fig hash: md5 - md5: 77b3981e4ccfa56cacab80d35d607914 - size: 1765476 + md5: 4865d4c6488f907e19b9f88620b1ef2b + size: 20091653 - path: results/SweepGeoms/sweep_geoms_grid_scatter.pdf hash: md5 - md5: f54ffddedc345757bca38e8ec61728c2 - size: 2133512 + md5: 859e904b9c449c1d751cf8af1d8f87bc + size: 27661269 - path: results/SweepGeoms/sweep_geoms_line.fig hash: md5 - md5: 8bae67d4f198486bd4f72ece7162cbf3 - size: 163595 + md5: 444044f695bbcb2bf29e6510cb7fbf9a + size: 1641498 - path: results/SweepGeoms/sweep_geoms_line.pdf hash: md5 - md5: 1eb270761f80be9a685c80b49cbfb28c - size: 121912 + md5: 3bf0dcceaa872fcf12c82b8c90479f90 + size: 1370337 - path: results/SweepGeoms/sweep_geoms_line_cwr_a2.fig hash: md5 - md5: 2ed5b6a8b2b148d2e7140b3aa2a11031 - size: 164249 + md5: ce8727d17b75e1a58f311f64d3772d42 + size: 1646300 - path: results/SweepGeoms/sweep_geoms_line_cwr_a2.pdf hash: md5 - md5: e240d67940fd5958ca898c93e725e610 - size: 120993 + md5: e24b1e983dc63d2db762a0eeea72587d + size: 1283727 - path: results/SweepGeoms/sweep_geoms_line_cwr_sa.fig hash: md5 - md5: 03d4b9db6bac0d646bebd2d2fb7d192a - size: 164383 + md5: 139943a3325538f5e1c675d0b424720e + size: 1648867 - path: results/SweepGeoms/sweep_geoms_line_cwr_sa.pdf hash: md5 - md5: 3fdd960882eec7d16c840cf4ab8b85c5 - size: 119576 + md5: e67dd801198efc487a968e7bd97f18c1 + size: 1276999 - path: results/SweepGeoms/sweep_geoms_line_cwr_vol.fig hash: md5 - md5: 26b45da9c668d1b20da253a55455a2fd - size: 164410 + md5: 8c9727cb4ca0c05d95f68a5a5f9d6c6b + size: 1649016 - path: results/SweepGeoms/sweep_geoms_line_cwr_vol.pdf hash: md5 - md5: 72e282ebfb3349327bb35c9edfa52b29 - size: 120500 + md5: 43804a97d9c2bfc77cde5b8f14133d86 + size: 1288615 - path: results/SweepGeoms/sweep_geoms_parallel.fig hash: md5 - md5: 8da5a1811a1694f54ce89651975f10d2 - size: 12078 + md5: 84c78465f69984178508290c5598c581 + size: 46686 - path: results/SweepGeoms/sweep_geoms_parallel.pdf hash: md5 - md5: 3d186caf41f82aab162a99ff8e784a68 - size: 69030 + md5: a1f2584b5fbf7b0a17f6b5b9c1e9cc36 + size: 750426 - path: results/SweepGeoms/sweep_geoms_pareto.fig hash: md5 - md5: f78cc56f9d5b15403a9f7acf3bffd5cb - size: 43320 + md5: d994949e7f6d8a48c31ec487ed98e757 + size: 105378 - path: results/SweepGeoms/sweep_geoms_pareto.pdf hash: md5 - md5: 80ee6b6d311b957ea6de358df725b74e - size: 25392 + md5: b230ff054c1f385751bead02f955d388 + size: 73602 - path: results/SweepGeoms/sweep_geoms_pareto_nondim.fig hash: md5 - md5: d11125e477d32562fe110a6a53f27783 - size: 130775 + md5: 7ea4a3d4e66fa7e90c608a4ca7f8eacc + size: 1357241 - path: results/SweepGeoms/sweep_geoms_pareto_nondim.pdf hash: md5 - md5: 46de338aaed35c5941c1a8a9e413df07 - size: 61168 + md5: fbcc7da48106748a9e9c8129309fcc40 + size: 587041 - path: results/SweepGeoms/sweep_geoms_scatter.fig hash: md5 - md5: 3bcbd90ae678b7ce5f635305bd7874e3 - size: 58165 + md5: fc45b6dfc6dbd32d02b24bc39b99baa8 + size: 631949 - path: results/SweepGeoms/sweep_geoms_scatter.pdf hash: md5 - md5: 59612ae5a14ebc2f2cd93bac11c9ed70 - size: 84757 + md5: 991d89aa8dbf1a3b3c988af92a0c919d + size: 975219 - path: results/SweepGeoms/sweep_geoms_scatter_cwr_a2.fig hash: md5 - md5: 0dde3cdac5ac80253ebf4c7368fda0e5 - size: 59781 + md5: 40d56da19d6450d83fc4a0a8dee1e512 + size: 644587 - path: results/SweepGeoms/sweep_geoms_scatter_cwr_a2.pdf hash: md5 - md5: 02be45de67633c5ce062e459b34efde4 - size: 83455 + md5: b8df162680d9d80a57894b38312b2a4d + size: 938124 - path: results/SweepGeoms/sweep_geoms_scatter_cwr_sa.fig hash: md5 - md5: 6a11229863b3ad413e99c02936c8c89d - size: 60331 + md5: 96affaca54f984e091c6855cb5e78527 + size: 650345 - path: results/SweepGeoms/sweep_geoms_scatter_cwr_sa.pdf hash: md5 - md5: 1dfce472cf79411dae3b334f9e3464f6 - size: 82882 + md5: 63f192f436a8cb92d37895afaf922cd6 + size: 937013 - path: results/SweepGeoms/sweep_geoms_scatter_cwr_vol.fig hash: md5 - md5: e32ad305aa9db386167d1344c4969051 - size: 60351 + md5: 231bd2628009f4cec8af9471a862f1f5 + size: 651042 - path: results/SweepGeoms/sweep_geoms_scatter_cwr_vol.pdf hash: md5 - md5: 61d121202b3a6d681e4a2fadc266f1a8 - size: 83839 + md5: 2dd1d177b5a313490cb05b5fbebd3575 + size: 949059 postpro-Validation: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); obj=Validation; obj.run_all_from_load();" @@ -17994,8 +18035,8 @@ stages: size: 871 - path: ./mdocean/analysis/@Validation/post_process_fcn.m hash: md5 - md5: bfb1bcb05b117c45bf87fc3dcd8142bf - size: 4284 + md5: c65fd13ae5218628f12972131ffecb3e + size: 4322 - path: ./mdocean/analysis/GenericAnalysis.m hash: md5 md5: 4926cc6082ca23736741c904afa0253a @@ -18225,24 +18266,24 @@ stages: outs: - path: results/Validation/cost_vs_N_WEC.fig hash: md5 - md5: a2445bb9e88c667a4a0c54fb2d795f86 - size: 36038 + md5: d4e81c7bb050889bd3c06c334ee8307e + size: 36004 - path: results/Validation/cost_vs_N_WEC.pdf hash: md5 - md5: bba18d3691208c85cc9d69356c02b9bb + md5: f480e0b460e8821ac17ea9e2e7b9d9f8 size: 10720 - path: results/Validation/end.json hash: md5 - md5: d5c2580615893ee8606266d47a2021c4 + md5: 8a8f418d9efb57abf4d984f418c9491b size: 7061 - path: results/Validation/end.mat hash: md5 - md5: e5b13c02d4c9f4659d772a9999a2edee + md5: 865da8245caf0f8118ff790cb78377b1 size: 2434 - path: results/Validation/validation.tex hash: md5 - md5: 756f65f52ba524ebb3e4a3326d047208 - size: 1482 + md5: 53676c19f55db872bed9047ac4911dd2 + size: 1520 postpro-Wecsim: cmd: matlab -noFigureWindows -batch "add_mdocean_path(); obj=Wecsim; obj.run_all_from_load();" @@ -22446,7 +22487,7 @@ stages: size: 849 - path: results/Comparison/end.json hash: md5 - md5: c11063243024b7e9f5a87057aa501d34 + md5: b10ec2d56c2239bccd68e309c9fd041d size: 328 - path: results/Constraints/end.json hash: md5 @@ -22470,7 +22511,7 @@ stages: size: 143 - path: results/ParetoFigFunc/end.json hash: md5 - md5: e5f0b5a1a78fcd480c6b31037331a769 + md5: 675515003eb82a83a53d7e9cf319e153 size: 218 - path: results/RunSingleFigFunc/end.json hash: md5 @@ -26565,3 +26606,323 @@ stages: hash: md5 md5: 0558e5cbc77e4120a211c625aae7cf8d size: 16863616 + make-standalone-tex-pdf@circuit_intrinsic: + cmd: calkit latex build -e tex --no-check -r + mdocean/plots/non_matlab_figs/.latexmkrc --no-synctex + mdocean/plots/non_matlab_figs/circuit_intrinsic.tex + deps: + - path: .calkit/env-locks/tex + hash: md5 + md5: bce75e09f8a3deb731513d66d450bb87.dir + size: 1147 + nfiles: 1 + - path: mdocean/plots/non_matlab_figs/.latexmkrc + hash: md5 + md5: 9526fce397ef1bed506458f800b5fd0c + size: 36 + - path: mdocean/plots/non_matlab_figs/circuit_intrinsic.tex + hash: md5 + md5: 8271532402ede6a785a54bcaed65c6d1 + size: 272 + - path: pubs/applied-ocean-research-model/figs/tikz/circuit_intrinsic.tikz + hash: md5 + md5: 35d17fdda7eacf84b6762fdc54820a08 + size: 3032 + outs: + - path: mdocean/plots/non_matlab_figs/aux/circuit_intrinsic.aux + hash: md5 + md5: 3985256e7290058c681f74d7a3565a19 + size: 32 + - path: mdocean/plots/non_matlab_figs/aux/circuit_intrinsic.fdb_latexmk + hash: md5 + md5: f2d2bb54fc64ad56dc75169cb17edf00 + size: 18237 + - path: mdocean/plots/non_matlab_figs/aux/circuit_intrinsic.fls + hash: md5 + md5: 9e27b3d337bb6e5e446ad9dd79ae6c76 + size: 18246 + - path: mdocean/plots/non_matlab_figs/aux/circuit_intrinsic.log + hash: md5 + md5: e33c4f0d966c12398f76d18c09d22104 + size: 22084 + - path: mdocean/plots/non_matlab_figs/circuit_intrinsic.pdf + hash: md5 + md5: 73864b5eb7f32601039117058a4d8519 + size: 51823 + make-standalone-tex-pdf@circuit_pto: + cmd: calkit latex build -e tex --no-check -r + mdocean/plots/non_matlab_figs/.latexmkrc --no-synctex + mdocean/plots/non_matlab_figs/circuit_pto.tex + deps: + - path: .calkit/env-locks/tex + hash: md5 + md5: bce75e09f8a3deb731513d66d450bb87.dir + size: 1147 + nfiles: 1 + - path: mdocean/plots/non_matlab_figs/.latexmkrc + hash: md5 + md5: 9526fce397ef1bed506458f800b5fd0c + size: 36 + - path: mdocean/plots/non_matlab_figs/circuit_pto.tex + hash: md5 + md5: 75fb05913aa7ccdd2e8c5948702fff9a + size: 266 + - path: pubs/applied-ocean-research-model/figs/tikz/circuit_pto.tikz + hash: md5 + md5: 66a368b1906508c6ac6c0538ab424fa6 + size: 5845 + outs: + - path: mdocean/plots/non_matlab_figs/aux/circuit_pto.aux + hash: md5 + md5: 3985256e7290058c681f74d7a3565a19 + size: 32 + - path: mdocean/plots/non_matlab_figs/aux/circuit_pto.fdb_latexmk + hash: md5 + md5: b48ea628a27587f4cc232cf4a85e2236 + size: 18702 + - path: mdocean/plots/non_matlab_figs/aux/circuit_pto.fls + hash: md5 + md5: 27f420f5cb16a4f1c4a6e32272804165 + size: 18490 + - path: mdocean/plots/non_matlab_figs/aux/circuit_pto.log + hash: md5 + md5: 3052b2731a16a9a62e60c6fa4754c34f + size: 22622 + - path: mdocean/plots/non_matlab_figs/circuit_pto.pdf + hash: md5 + md5: 5a203cf542cf7877d2416ad6817dff88 + size: 84410 + make-standalone-tex-pdf@circuit_kinematics: + cmd: calkit latex build -e tex --no-check -r + mdocean/plots/non_matlab_figs/.latexmkrc --no-synctex + mdocean/plots/non_matlab_figs/circuit_kinematics.tex + deps: + - path: .calkit/env-locks/tex + hash: md5 + md5: bce75e09f8a3deb731513d66d450bb87.dir + size: 1147 + nfiles: 1 + - path: mdocean/plots/non_matlab_figs/.latexmkrc + hash: md5 + md5: 9526fce397ef1bed506458f800b5fd0c + size: 36 + - path: mdocean/plots/non_matlab_figs/circuit_kinematics.tex + hash: md5 + md5: 5aa5af813f0934c6e0be599e26f650f6 + size: 273 + - path: pubs/applied-ocean-research-model/figs/tikz/circuit_kinematics.tikz + hash: md5 + md5: b5ea627f9ae6a6352d03d8dcb438eaf1 + size: 5143 + outs: + - path: mdocean/plots/non_matlab_figs/aux/circuit_kinematics.aux + hash: md5 + md5: 3985256e7290058c681f74d7a3565a19 + size: 32 + - path: mdocean/plots/non_matlab_figs/aux/circuit_kinematics.fdb_latexmk + hash: md5 + md5: 28f0005b8554ec8a28888a9e60330c1c + size: 18866 + - path: mdocean/plots/non_matlab_figs/aux/circuit_kinematics.fls + hash: md5 + md5: dea80a4b50d6c05f5eec101bf20cd0d3 + size: 19201 + - path: mdocean/plots/non_matlab_figs/aux/circuit_kinematics.log + hash: md5 + md5: cdaf93a889cd7b255d275694b347561d + size: 22811 + - path: mdocean/plots/non_matlab_figs/circuit_kinematics.pdf + hash: md5 + md5: 632cfcb2ab3dcdba98a9d4a6eb0ecb7b + size: 64789 + make-standalone-tex-pdf@control_method_venn_diagram: + cmd: calkit latex build -e tex --no-check -r + mdocean/plots/non_matlab_figs/.latexmkrc --no-synctex + mdocean/plots/non_matlab_figs/control_method_venn_diagram.tex + deps: + - path: .calkit/env-locks/tex + hash: md5 + md5: bce75e09f8a3deb731513d66d450bb87.dir + size: 1147 + nfiles: 1 + - path: mdocean/plots/non_matlab_figs/.latexmkrc + hash: md5 + md5: 9526fce397ef1bed506458f800b5fd0c + size: 36 + - path: mdocean/plots/non_matlab_figs/control_method_venn_diagram.tex + hash: md5 + md5: 6adbb92ea55671f9c47e7f02e1c4061e + size: 240 + - path: + pubs/applied-ocean-research-model/figs/tikz/control_method_venn_diagram.tikz + hash: md5 + md5: d1e3dce7f1ba60853994c715d4ce487b + size: 1962 + outs: + - path: mdocean/plots/non_matlab_figs/aux/control_method_venn_diagram.aux + hash: md5 + md5: 3985256e7290058c681f74d7a3565a19 + size: 32 + - path: + mdocean/plots/non_matlab_figs/aux/control_method_venn_diagram.fdb_latexmk + hash: md5 + md5: 4e3b7291ffb18f556867b9c5f28751ed + size: 16124 + - path: mdocean/plots/non_matlab_figs/aux/control_method_venn_diagram.fls + hash: md5 + md5: 12fa7f3fd0c7313be461281fa269f52c + size: 16247 + - path: mdocean/plots/non_matlab_figs/aux/control_method_venn_diagram.log + hash: md5 + md5: 712b7476d52ade11f84667ded642c2ca + size: 19176 + - path: mdocean/plots/non_matlab_figs/control_method_venn_diagram.pdf + hash: md5 + md5: 41edcbcbf49465f7fefd7b52c53631cb + size: 71817 + make-standalone-tex-pdf@meem_dims: + cmd: calkit latex build -e tex --no-check -r + mdocean/plots/non_matlab_figs/.latexmkrc --no-synctex + mdocean/plots/non_matlab_figs/meem_dims.tex + deps: + - path: .calkit/env-locks/tex + hash: md5 + md5: bce75e09f8a3deb731513d66d450bb87.dir + size: 1147 + nfiles: 1 + - path: mdocean/plots/non_matlab_figs/.latexmkrc + hash: md5 + md5: 9526fce397ef1bed506458f800b5fd0c + size: 36 + - path: mdocean/plots/non_matlab_figs/meem_dims.tex + hash: md5 + md5: 0182cf6e038c7fb7badbda98b1944e72 + size: 222 + - path: pubs/applied-ocean-research-model/figs/tikz/meem_dims.tikz + hash: md5 + md5: 31b4577cfff85b9f870dd1b1a3c6cbe4 + size: 2548 + outs: + - path: mdocean/plots/non_matlab_figs/aux/meem_dims.aux + hash: md5 + md5: 3985256e7290058c681f74d7a3565a19 + size: 32 + - path: mdocean/plots/non_matlab_figs/aux/meem_dims.fdb_latexmk + hash: md5 + md5: 5ef879264410308e67482feb9037c50d + size: 14477 + - path: mdocean/plots/non_matlab_figs/aux/meem_dims.fls + hash: md5 + md5: f2cf7383aff09006f8ff78aba8fae55b + size: 15148 + - path: mdocean/plots/non_matlab_figs/aux/meem_dims.log + hash: md5 + md5: 84d4948c1f556f5f194cf83665a7dbb3 + size: 18716 + - path: mdocean/plots/non_matlab_figs/meem_dims.pdf + hash: md5 + md5: 484197511837c6ff91f0f19b19b14711 + size: 30447 + move-standalone-pdfs@control_method_venn_diagram: + cmd: calkit map-paths --file-to-file + 'mdocean/plots/non_matlab_figs/control_method_venn_diagram.pdf->mdocean/plots/non_matlab_figs/pdf/control_method_venn_diagram.pdf' + deps: + - path: mdocean/plots/non_matlab_figs/control_method_venn_diagram.pdf + hash: md5 + md5: 41edcbcbf49465f7fefd7b52c53631cb + size: 71817 + outs: + - path: mdocean/plots/non_matlab_figs/pdf/control_method_venn_diagram.pdf + hash: md5 + md5: 41edcbcbf49465f7fefd7b52c53631cb + size: 71817 + move-standalone-pdfs@circuit_pto: + cmd: calkit map-paths --file-to-file + 'mdocean/plots/non_matlab_figs/circuit_pto.pdf->mdocean/plots/non_matlab_figs/pdf/circuit_pto.pdf' + deps: + - path: mdocean/plots/non_matlab_figs/circuit_pto.pdf + hash: md5 + md5: 5a203cf542cf7877d2416ad6817dff88 + size: 84410 + outs: + - path: mdocean/plots/non_matlab_figs/pdf/circuit_pto.pdf + hash: md5 + md5: 5a203cf542cf7877d2416ad6817dff88 + size: 84410 + move-standalone-pdfs@circuit_intrinsic: + cmd: calkit map-paths --file-to-file + 'mdocean/plots/non_matlab_figs/circuit_intrinsic.pdf->mdocean/plots/non_matlab_figs/pdf/circuit_intrinsic.pdf' + deps: + - path: mdocean/plots/non_matlab_figs/circuit_intrinsic.pdf + hash: md5 + md5: 73864b5eb7f32601039117058a4d8519 + size: 51823 + outs: + - path: mdocean/plots/non_matlab_figs/pdf/circuit_intrinsic.pdf + hash: md5 + md5: 73864b5eb7f32601039117058a4d8519 + size: 51823 + move-standalone-pdfs@circuit_kinematics: + cmd: calkit map-paths --file-to-file + 'mdocean/plots/non_matlab_figs/circuit_kinematics.pdf->mdocean/plots/non_matlab_figs/pdf/circuit_kinematics.pdf' + deps: + - path: mdocean/plots/non_matlab_figs/circuit_kinematics.pdf + hash: md5 + md5: 632cfcb2ab3dcdba98a9d4a6eb0ecb7b + size: 64789 + outs: + - path: mdocean/plots/non_matlab_figs/pdf/circuit_kinematics.pdf + hash: md5 + md5: 632cfcb2ab3dcdba98a9d4a6eb0ecb7b + size: 64789 + move-standalone-pdfs@meem_dims: + cmd: calkit map-paths --file-to-file + 'mdocean/plots/non_matlab_figs/meem_dims.pdf->mdocean/plots/non_matlab_figs/pdf/meem_dims.pdf' + deps: + - path: mdocean/plots/non_matlab_figs/meem_dims.pdf + hash: md5 + md5: 484197511837c6ff91f0f19b19b14711 + size: 30447 + outs: + - path: mdocean/plots/non_matlab_figs/pdf/meem_dims.pdf + hash: md5 + md5: 484197511837c6ff91f0f19b19b14711 + size: 30447 + mermaid-make-pdfs@mod_freq_domain_ctrl_combined: + cmd: calkit xenv -n mermaid --no-check -- -i + mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_combined.mmd -o + mdocean/plots/non_matlab_figs/pdf/mod_freq_domain_ctrl_combined.pdf -f + deps: + - path: .calkit/env-locks/mermaid + hash: md5 + md5: 9ffc7e7d4207d5be279ad14c9cfe52a2.dir + size: 1607 + nfiles: 1 + - path: mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_combined.mmd + hash: md5 + md5: 261b6dff73cfffcd5592ae466f4f7850 + size: 1068 + outs: + - path: mdocean/plots/non_matlab_figs/pdf/mod_freq_domain_ctrl_combined.pdf + hash: md5 + md5: 73ee091905299072f41134a3dcc22145 + size: 23587 + mermaid-make-pngs@mod_freq_domain_ctrl_combined: + cmd: calkit xenv -n mermaid --no-check -- -i + mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_combined.mmd -o + mdocean/plots/non_matlab_figs/img/mod_freq_domain_ctrl_combined.png + deps: + - path: .calkit/env-locks/mermaid + hash: md5 + md5: 9ffc7e7d4207d5be279ad14c9cfe52a2.dir + size: 1607 + nfiles: 1 + - path: mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_combined.mmd + hash: md5 + md5: 261b6dff73cfffcd5592ae466f4f7850 + size: 1068 + outs: + - path: mdocean/plots/non_matlab_figs/img/mod_freq_domain_ctrl_combined.png + hash: md5 + md5: 9b7f68d7f7b1e8e1adf98cd38f35183c + size: 69204 diff --git a/dvc.yaml b/dvc.yaml index b635173cd..af69f848c 100644 --- a/dvc.yaml +++ b/dvc.yaml @@ -13,6 +13,7 @@ stages: - taxonomy - mod_freq_domain_ctrl_synthesis - mod_freq_domain_ctrl_evaluation + - mod_freq_domain_ctrl_combined desc: Automatically generated from the 'mermaid-make-pdfs' stage in calkit.yaml. Changes made here will be overwritten. mermaid-make-pngs: @@ -31,6 +32,7 @@ stages: - taxonomy - mod_freq_domain_ctrl_synthesis - mod_freq_domain_ctrl_evaluation + - mod_freq_domain_ctrl_combined desc: Automatically generated from the 'mermaid-make-pngs' stage in calkit.yaml. Changes made here will be overwritten. make-drag-integral: @@ -1002,7 +1004,7 @@ stages: - ./mdocean/plots/matlab_figs/dynamics_results/plot_drag_convergence.m - ./mdocean/plots/matlab_figs/dynamics_results/plot_drag_integral_debug.m - ./mdocean/plots/matlab_figs/module_demos/visualize_geometry.m - - ./mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m + - ./mdocean/plots/matlab_figs/optim/constraint_active_plot.m - ./mdocean/plots/matlab_figs/sim_results/experiments_plot.m - ./mdocean/plots/util/bluewhitered.m - ./mdocean/plots/util/check_fig_size.m @@ -2857,7 +2859,6 @@ stages: - ./mdocean/plots/matlab_figs/module_demos/visualize_geometry.m - ./mdocean/plots/matlab_figs/optim/optim_geomviz.m - ./mdocean/plots/matlab_figs/optim/optimplotx_custom.m - - ./mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m - ./mdocean/plots/util/bluewhitered.m - ./mdocean/plots/util/check_fig_size.m - ./mdocean/plots/util/contourx.m @@ -2929,7 +2930,7 @@ stages: - ./mdocean/plots/matlab_figs/dynamics_results/plot_drag_convergence.m - ./mdocean/plots/matlab_figs/dynamics_results/plot_drag_integral_debug.m - ./mdocean/plots/matlab_figs/module_demos/visualize_geometry.m - - ./mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m + - ./mdocean/plots/matlab_figs/optim/constraint_active_plot.m - ./mdocean/plots/util/bluewhitered.m - ./mdocean/plots/util/check_fig_size.m - ./mdocean/plots/util/contourx.m @@ -7472,13 +7473,14 @@ stages: calkit.yaml. Changes made here will be overwritten. aor-results-to-latex: cmd: "calkit latex from-json 'results/Parameters/end.json' 'results/RunSingleFigFunc/end.json' - 'results/Runtime/end.json' 'results/PtoSweep/end.json' 'results/Wecsim/end.json' - --output 'pubs/applied-ocean-research-model/numeric-results.tex' --command - resultsAOR --format-json '{\"nominalLCOE\": \"{nominalLCOE:.2f} $/kWh\"\ - , \"surgeForceFloatNominal\": \"{surgeForceFloatNominal/1e6:.0f} MN\"\ - , \"surgeForceSparNominal\": \"{surgeForceSparNominal/1e6:.0f} MN\"\ - , \"simRuntime\": \"{simRuntime*1000:.0f} ms\", \"MEEMRuntime\": \"\ - {pctRuntimeMEEM/100*simRuntime*1000:.0f} ms\", \"pctRuntimeMEEM\"\ + 'results/Runtime/end.json' 'results/SweepGeoms/end.json' 'results/PtoSweep/end.json' + 'results/Wecsim/end.json' --output 'pubs/applied-ocean-research-model/numeric-results.tex' + --command resultsAOR --format-json '{\"nominalLCOE\": \"{nominalLCOE:.2f} + $/kWh\", \"surgeForceFloatNominal\": \"{surgeForceFloatNominal/1e6:.0f} + MN\", \"surgeForceSparNominal\": \"{surgeForceSparNominal/1e6:.0f} + MN\", \"simRuntime\": \"{simRuntime*1000:.0f} ms\", \"MEEMRuntime\"\ + : \"{pctRuntimeMEEM/100*simRuntime*1000:.0f} ms\", \"meemSweepTime\"\ + : \"{geom_sweep_analysis_time/60:.0f} minutes\", \"pctRuntimeMEEM\"\ : \"{pctRuntimeMEEM:.0f}%\", \"pctRuntimeDynamics\": \"{pctRuntimeDynamics:.0f}%\"\ , \"pctRuntimeOther\": \"{pctRuntimeOther:.0f}%\", \"wecsimAvgPowerErrorBestCase\"\ : \"{wecsimAvgPowerErrorBestCase:.2f}%\", \"wecsimAvgPowerErrorWorstCase\"\ @@ -7489,11 +7491,13 @@ stages: : \"{ptoSweepMinLCOE_P_max/1e3:.0f} kW\", \"ptoSweepMinLCOE_power\"\ : \"{ptoSweepMinLCOE_power/1e3:.0f} kW\", \"ptoSweepMinLCOE_cost\"\ : \"{ptoSweepMinLCOE_cost/1e6:.2f} $M\", \"ptoSweepMinLCOE_LCOE\"\ - : \"{ptoSweepMinLCOE_LCOE:.2f} $/kWh\"}'" + : \"{ptoSweepMinLCOE_LCOE:.2f} $/kWh\", \"meemSweepSize\": \"{n_combos}\"\ + }'" deps: - results/Parameters/end.json - results/RunSingleFigFunc/end.json - results/Runtime/end.json + - results/SweepGeoms/end.json - results/PtoSweep/end.json - results/Wecsim/end.json outs: @@ -7590,6 +7594,8 @@ stages: --file-to-file 'pubs/shared/references.bib->pubs/renewable-energy-mdo/references.bib' --file-to-file + 'pubs/shared/references.bib->pubs/dissertation/references.bib' + --file-to-file 'pubs/shared/elsarticle-num-names.bst->pubs/applied-ocean-research-model/elsarticle-num-names.bst' --file-to-file 'pubs/shared/elsarticle-num-names.bst->pubs/renewable-energy-mdo/elsarticle-num-names.bst' @@ -7598,19 +7604,29 @@ stages: --file-to-file 'pubs/shared/shared-pkg.tex->pubs/renewable-energy-mdo/shared-pkg.tex' --file-to-file - 'pubs/shared/references.bib->pubs/dissertation/references.bib' + 'pubs/shared/els-cas/cas-dc.cls->pubs/applied-ocean-research-model/cas-dc.cls' + --file-to-file + 'pubs/shared/els-cas/cas-dc.cls->pubs/renewable-energy-mdo/cas-dc.cls' + --file-to-file + 'pubs/shared/els-cas/cas-common.sty->pubs/applied-ocean-research-model/cas-common.sty' + --file-to-file + 'pubs/shared/els-cas/cas-common.sty->pubs/renewable-energy-mdo/cas-common.sty' --file-to-file 'mdocean/simulation/modules/OpenFLASH/pubs/JFM/zotero-meem-refs.bib->pubs/applied-ocean-research-model/zotero-meem-refs.bib' --file-to-file 'mdocean/simulation/modules/OpenFLASH/pubs/JFM/zotero-meem-refs.bib->pubs/renewable-energy-mdo/zotero-meem-refs.bib' deps: + - pubs/shared/references.bib - pubs/shared/references.bib - pubs/shared/references.bib - pubs/shared/elsarticle-num-names.bst - pubs/shared/elsarticle-num-names.bst - pubs/shared/shared-pkg.tex - pubs/shared/shared-pkg.tex - - pubs/shared/references.bib + - pubs/shared/els-cas/cas-dc.cls + - pubs/shared/els-cas/cas-dc.cls + - pubs/shared/els-cas/cas-common.sty + - pubs/shared/els-cas/cas-common.sty - mdocean/simulation/modules/OpenFLASH/pubs/JFM/zotero-meem-refs.bib - mdocean/simulation/modules/OpenFLASH/pubs/JFM/zotero-meem-refs.bib outs: @@ -7620,6 +7636,9 @@ stages: - pubs/renewable-energy-mdo/references.bib: cache: false persist: true + - pubs/dissertation/references.bib: + cache: false + persist: true - pubs/applied-ocean-research-model/elsarticle-num-names.bst: cache: false persist: true @@ -7632,7 +7651,16 @@ stages: - pubs/renewable-energy-mdo/shared-pkg.tex: cache: false persist: true - - pubs/dissertation/references.bib: + - pubs/applied-ocean-research-model/cas-dc.cls: + cache: false + persist: true + - pubs/renewable-energy-mdo/cas-dc.cls: + cache: false + persist: true + - pubs/applied-ocean-research-model/cas-common.sty: + cache: false + persist: true + - pubs/renewable-energy-mdo/cas-common.sty: cache: false persist: true - pubs/applied-ocean-research-model/zotero-meem-refs.bib: @@ -7717,7 +7745,6 @@ stages: - pubs/applied-ocean-research-model/figs/tikz/ - pubs/applied-ocean-research-model/tables/ - pubs/applied-ocean-research-model/main.tex - - pubs/applied-ocean-research-model/numbers.tex - pubs/applied-ocean-research-model/numeric-results.tex - pubs/applied-ocean-research-model/elsarticle-num-names.bst - pubs/applied-ocean-research-model/references.bib @@ -7872,23 +7899,55 @@ stages: desc: Automatically generated from the 'make-quarto-yaml' stage in calkit.yaml. Changes made here will be overwritten. make-standalone-tex-pdf: - cmd: calkit latex build -e tex --no-check - pubs/defense/latex-standalone/standalone_${item.name}.tex + cmd: calkit latex build -e tex --no-check -r + mdocean/plots/non_matlab_figs/.latexmkrc --no-synctex + mdocean/plots/non_matlab_figs/${item.name}.tex deps: - - pubs/defense/latex-standalone/standalone_${item.name}.tex - - pubs/shared/equations/ + - mdocean/plots/non_matlab_figs/${item.name}.tex + - pubs/applied-ocean-research-model/figs/tikz/${item.name}.tikz - .calkit/env-locks/tex + - mdocean/plots/non_matlab_figs/.latexmkrc outs: - - pubs/defense/latex-standalone/standalone_${item.name}.pdf - - pubs/defense/latex-standalone/standalone_${item.name}.log: - cache: true + - mdocean/plots/non_matlab_figs/${item.name}.pdf + - mdocean/plots/non_matlab_figs/aux/${item.name}.log: + cache: false + persist: true + - mdocean/plots/non_matlab_figs/aux/${item.name}.aux: + cache: false + persist: true + - mdocean/plots/non_matlab_figs/aux/${item.name}.fdb_latexmk: + cache: false + persist: true + - mdocean/plots/non_matlab_figs/aux/${item.name}.fls: + cache: false persist: true matrix: name: - - eigenfunctions - - A_matrix + - circuit_intrinsic + - circuit_pto + - circuit_kinematics + - control_method_venn_diagram + - meem_dims desc: Automatically generated from the 'make-standalone-tex-pdf' stage in calkit.yaml. Changes made here will be overwritten. + move-standalone-pdfs: + cmd: calkit map-paths --file-to-file + 'mdocean/plots/non_matlab_figs/${item.name}.pdf->mdocean/plots/non_matlab_figs/pdf/${item.name}.pdf' + deps: + - mdocean/plots/non_matlab_figs/${item.name}.pdf + outs: + - mdocean/plots/non_matlab_figs/pdf/${item.name}.pdf: + cache: false + persist: true + matrix: + name: + - circuit_intrinsic + - circuit_pto + - circuit_kinematics + - control_method_venn_diagram + - meem_dims + desc: Automatically generated from the 'move-standalone-pdfs' + stage in calkit.yaml. Changes made here will be overwritten. render-quarto-html: cmd: quarto render pubs/defense/quarto/slides.qmd deps: diff --git a/mdocean/analysis/@Comparison/Comparison.m b/mdocean/analysis/@Comparison/Comparison.m index ec7533905..eeb75e651 100644 --- a/mdocean/analysis/@Comparison/Comparison.m +++ b/mdocean/analysis/@Comparison/Comparison.m @@ -6,7 +6,9 @@ fig_names = {'overlaid_geometry',... 'overlaid_hydro_coeffs',... 'probability_CDF',... - 'comparison_power_matrix'}; + 'comparison_power_matrix',... + 'stacked_optimal_design_vars',... + 'stacked_optimal_outputs'}; tab_names = {'optimal_design_vars', 'optimal_outputs'}; end diff --git a/mdocean/analysis/@DesignSpaceExploration/analysis_fcn.m b/mdocean/analysis/@DesignSpaceExploration/analysis_fcn.m index ee68706e0..60390eaa0 100644 --- a/mdocean/analysis/@DesignSpaceExploration/analysis_fcn.m +++ b/mdocean/analysis/@DesignSpaceExploration/analysis_fcn.m @@ -6,7 +6,7 @@ % :param b: Design variable bounds struct % :returns: Intermediate results struct (cached heavy analyses) % Run design space exploration experiments - [X_ins,ratios,LCOE,cost,power,failed] = experiments(p,b); + [X_ins,ratios,LCOE,cost,power,failed,failed_mat] = experiments(p,b); % cd('..') % pareto = ParetoFigFunc(p,b); @@ -22,5 +22,6 @@ intermed_result_struct.cost = cost; intermed_result_struct.power = power; intermed_result_struct.failed = failed; + intermed_result_struct.failed_mat = failed_mat; % intermed_result_struct.pareto_results_struct = pareto_results_struct; end diff --git a/mdocean/analysis/@DesignSpaceExploration/post_process_fcn.m b/mdocean/analysis/@DesignSpaceExploration/post_process_fcn.m index 295fe9713..47982465b 100644 --- a/mdocean/analysis/@DesignSpaceExploration/post_process_fcn.m +++ b/mdocean/analysis/@DesignSpaceExploration/post_process_fcn.m @@ -22,10 +22,11 @@ cost = intermed_result_struct.cost; power = intermed_result_struct.power; failed = intermed_result_struct.failed; + failed_mat = intermed_result_struct.failed_mat; %pareto_results_struct = intermed_result_struct.pareto_results_struct; [fig_array,results_tab] = experiments_plot(b,X_ins,ratios,LCOE,... - cost,power,failed); + cost,power,failed,failed_mat); %pareto_results_struct); %pareto_results_struct); fig_array = fig_array(2); diff --git a/mdocean/analysis/@FitOlaya/post_process_fcn.m b/mdocean/analysis/@FitOlaya/post_process_fcn.m index beac0b5a3..15800530a 100644 --- a/mdocean/analysis/@FitOlaya/post_process_fcn.m +++ b/mdocean/analysis/@FitOlaya/post_process_fcn.m @@ -735,9 +735,9 @@ 'MarkerFaceColor', 'none', 'MarkerSize', 6, ... 'DisplayName', sprintf('WAMIT RM3 ($T_s/R_b=%.1f$, $\\alpha=%.1f$, $\\beta=%g$)', e2_rm3/Rb_rm3, alpha_rm3, beta_rm3)); - xlabel(x_label_v1, 'FontSize', 14) - ylabel(y_label_v1, 'Interpreter', 'latex', 'FontSize', 14) - title('Case 4, Case 2, and WAMIT RM3 data in v1 space') + xlabel(x_label_v1, 'FontSize', 18) + ylabel(['$\Upsilon^2 = ' y_label_v1(2:end)], 'Interpreter', 'latex', 'FontSize', 18) + title('Spar Excitation Data from Olaya et al. (2015) and Ruehl et al. (2022)') axis tight ylim_default = ylim(); ylim([ylim_default(1), max_y_case24 * 1.1]) diff --git a/mdocean/analysis/@PtoSweep/post_process_fcn.m b/mdocean/analysis/@PtoSweep/post_process_fcn.m index 4cd4d252c..d79566672 100644 --- a/mdocean/analysis/@PtoSweep/post_process_fcn.m +++ b/mdocean/analysis/@PtoSweep/post_process_fcn.m @@ -115,7 +115,7 @@ 'Power Limit Only (# sea states)', ... 'Both Limits (# sea states)', ... 'Neither Limit (# sea states)'}; - fig1.Position(3:4) = [1200 500]; % widen to accommodate legend + fig1.Position(3:4) = [1000 500]; % widen to accommodate legend fig2 = figure; t2 = tiledlayout(2, 2, 'TileSpacing', 'compact'); @@ -135,6 +135,7 @@ end improvePlot; + fig1.Position(3:4) = [1000 500]; % --- Outputs --- fig_array = [fig, fig2]; diff --git a/mdocean/analysis/@ReadNonMatlabFigs/ReadNonMatlabFigs.m b/mdocean/analysis/@ReadNonMatlabFigs/ReadNonMatlabFigs.m index 3ba56439a..db5c5c581 100644 --- a/mdocean/analysis/@ReadNonMatlabFigs/ReadNonMatlabFigs.m +++ b/mdocean/analysis/@ReadNonMatlabFigs/ReadNonMatlabFigs.m @@ -3,16 +3,22 @@ % Reads external image files and creates MATLAB figures properties - fig_names = {'control_analysis_flowcharts',... + fig_names = {'circuit_intrinsic', ... + 'circuit_pto', ... + 'circuit_kinematics', ... + 'control_method_venn_diagram', ... + 'control_analysis_flowcharts',... 'damping_plate_flowchart',... 'dimensions',... 'equivalent_stiffness',... 'FBD',... 'graphical_abstract_modeling',... + 'meem_dims', ... 'MEEM_geometry',... 'methodology_flowchart',... 'mod_freq_domain_ctrl_synthesis',... 'mod_freq_domain_ctrl_evaluation',... + 'mod_freq_domain_ctrl_combined',... 'graphical_abstract_optim',... 'optimization_flowchart',... 'RM3_image',... diff --git a/mdocean/analysis/@ReadNonMatlabFigs/analysis_fcn.m b/mdocean/analysis/@ReadNonMatlabFigs/analysis_fcn.m index 51d7958d9..0f323b4b0 100644 --- a/mdocean/analysis/@ReadNonMatlabFigs/analysis_fcn.m +++ b/mdocean/analysis/@ReadNonMatlabFigs/analysis_fcn.m @@ -8,16 +8,22 @@ % Store file information for post-processing intermed_result_struct.file_names = {... + 'circuit_intrinsic.png', ... + 'circuit_pto.png', ... + 'circuit_kinematics.png', ... + 'control_method_venn_diagram.png', ... 'control_analysis_flowcharts.png',... 'damping_plate_flowchart.png',... 'dimensions.jpg',... 'equivalent_stiffness.png',... 'FBD.jpg',... 'graphical_abstract_modeling.png',... + 'meem_dims.png', ... 'MEEM_geometry.jpg',... 'methodology_flowchart.png',... 'mod_freq_domain_ctrl_synthesis.png',... 'mod_freq_domain_ctrl_evaluation.png',... + 'mod_freq_domain_ctrl_combined.png',... 'graphical_abstract_optim.JPG',... 'optimization_flowchart.jpg',... 'RM3_image.png',... diff --git a/mdocean/analysis/@SweepGeoms/analysis_fcn.m b/mdocean/analysis/@SweepGeoms/analysis_fcn.m index 365391d16..f87737dff 100644 --- a/mdocean/analysis/@SweepGeoms/analysis_fcn.m +++ b/mdocean/analysis/@SweepGeoms/analysis_fcn.m @@ -40,7 +40,7 @@ warning('off', verbosity_warning_ids{k}); end - n = 3; % number of points per dimension + n = 5; % number of points per dimension zero_to_one = linspace(0.01, 0.99, n); zero_to_three = linspace(0.01, 3, n); @@ -171,6 +171,7 @@ intermed_result_struct.hydro_ratio_result = hydro_ratio_result; intermed_result_struct.m0h_stored = m0h_stored; intermed_result_struct.val = val; + intermed_result_struct.n_geoms = n_geoms; % Dimensional grid arrays (needed for CWR computation) intermed_result_struct.H = H; diff --git a/mdocean/analysis/@SweepGeoms/post_process_fcn.m b/mdocean/analysis/@SweepGeoms/post_process_fcn.m index 4676fef37..e447b8758 100644 --- a/mdocean/analysis/@SweepGeoms/post_process_fcn.m +++ b/mdocean/analysis/@SweepGeoms/post_process_fcn.m @@ -151,7 +151,7 @@ % ------------------------------------------------------------------ % Figure 3: Line plot (m0h vs CW/CW_max) % ------------------------------------------------------------------ - fig3 = make_line_fig(m0h_mat, result_mat, '$CW/CW_{max}$', [0 1.5], ... + fig3 = make_line_fig(m0h_mat, result_mat, '$CW/CW_{max}$', [0 1.05], ... color2, size_var2, size_mult, size_var_name, ... marker_type_var, marker_var_name, marker_types, a2_h, m0h_minmax); @@ -252,6 +252,7 @@ tab_colspecs = {}; end_result_struct.percent_nans = 100 * sum(~isfinite(hydro_ratio_result(:))) / numel(hydro_ratio_result); + end_result_struct.n_combos = intermed_result_struct.n_geoms * nT; end % ====================================================================== diff --git a/mdocean/analysis/@Validation/post_process_fcn.m b/mdocean/analysis/@Validation/post_process_fcn.m index 900bbca8d..39c0f849f 100644 --- a/mdocean/analysis/@Validation/post_process_fcn.m +++ b/mdocean/analysis/@Validation/post_process_fcn.m @@ -66,8 +66,8 @@ tab_array_display = {tab_validation}; tab_array_latex = {tab_validation_latex}; - tab_firstrows = {'&\multicolumn{3}{c|}{DOE Report RM3 Design \cite{RM3}} & \multicolumn{3}{c}{WEC-Sim RM3 Design} \\'}; - tab_colspecs = {'>{\centering\arraybackslash}p{0.26\linewidth}|c|c|r|c|c|r'}; + tab_firstrows = {'& \multicolumn{3}{M{0.23\linewidth}|}{DOE Report RM3 Design \cite{RM3}} & \multicolumn{3}{M{0.2\linewidth}}{WEC-Sim RM3 Design \cite{ruehl_wec-simwec-sim_2025}} \\ '}; + tab_colspecs = {'P{0.15\linewidth}|c|c|r|c|c|r'}; end_result_struct.validation_complete = true; end_result_struct.validation_table = tab_validation; diff --git a/mdocean/plots/fig_tab_pub_mapping.m b/mdocean/plots/fig_tab_pub_mapping.m index 116936b38..b11798451 100644 --- a/mdocean/plots/fig_tab_pub_mapping.m +++ b/mdocean/plots/fig_tab_pub_mapping.m @@ -9,7 +9,7 @@ %% numbers num_figs_RE = 29; -num_figs_AOR = 60; +num_figs_AOR = 59; num_tabs_AOR = 2; num_tabs_RE = 6; @@ -63,10 +63,10 @@ % 3: module details figs_in_AOR{4} = 'ReadNonMatlabFigs.dimensions'; figs_in_AOR{5} = 'ReadNonMatlabFigs.MEEM_geometry'; -figs_in_AOR{6} = 'Tikz.circuit_intrinsic'; +figs_in_AOR{6} = 'ReadNonMatlabFigs.control_method_venn_diagram'; figs_in_AOR{7} = 'ReadNonMatlabFigs.mod_freq_domain_ctrl_synthesis'; -figs_in_AOR{8} = 'ReadNonMatlabFigs.mod_freq_domain_ctrl_evaluation'; -figs_in_AOR{9} = 'DescFcns.saturation_desc_fcn'; % subfig (a), combined with {51} +figs_in_AOR{8} = 'ReadNonMatlabFigs.circuit_intrinsic'; +figs_in_AOR{9} = 'DescFcns.saturation_desc_fcn'; % subfig (a), combined with {49} figs_in_AOR{10} = 'RunSingleFigFunc.nominal_power_matrix'; figs_in_AOR{11} = 'ReadNonMatlabFigs.FBD'; % 4: validation and benchmarking @@ -75,57 +75,56 @@ figs_in_AOR{14} = 'Runtime.hydro_runtime_logscale'; figs_in_AOR{15} = 'Runtime.dynamics_runtime'; % 5: insights and discussion -figs_in_AOR{16} = 'SweepGeoms.sweep_geoms_line'; -figs_in_AOR{17} = 'SweepGeoms.sweep_geoms_line_cwr_sa'; -figs_in_AOR{18} = 'SweepGeoms.sweep_geoms_pareto_nondim'; -figs_in_AOR{19} = 'DampingPlateStructures.damping_plate_aspect_ratio'; -figs_in_AOR{20} = 'ForceSaturationFigFunc.power_force_sensitivity'; -figs_in_AOR{21} = 'PtoSweep.pto_sweep'; -figs_in_AOR{22} = 'DesignSpaceExploration.experiments_ratios'; -figs_in_AOR{23} = 'RunSingleFigFunc.nominal_power_matrix'; +figs_in_AOR{16} = 'SweepGeoms.sweep_geoms_line'; % subfig (a), combined with {50} +figs_in_AOR{17} = 'SweepGeoms.sweep_geoms_pareto_nondim'; +figs_in_AOR{18} = 'DampingPlateStructures.damping_plate_aspect_ratio'; +figs_in_AOR{19} = 'ForceSaturationFigFunc.power_force_sensitivity'; +figs_in_AOR{20} = 'PtoSweep.pto_sweep'; +figs_in_AOR{21} = 'DesignSpaceExploration.experiments_ratios'; +figs_in_AOR{22} = 'RunSingleFigFunc.nominal_power_matrix'; % appendix A - hydro -figs_in_AOR{24} = 'Tikz.meem_regions'; -figs_in_AOR{25} = 'Meem.meem_sparsity'; -figs_in_AOR{26} = 'Meem.meem_validation'; -figs_in_AOR{27} = 'Meem.meem_matching'; -figs_in_AOR{28} = 'Meem.meem_convergence_vs_omega'; -figs_in_AOR{29} = 'Meem.asymptotic_b_vector'; -figs_in_AOR{30} = 'FitOlaya.case4_v1_auto_semilogx_khRxRpa4b_fv1'; +figs_in_AOR{23} = 'ReadNonMatlabFigs.meem_dims'; +figs_in_AOR{24} = 'Meem.meem_sparsity'; +figs_in_AOR{25} = 'Meem.meem_validation'; +figs_in_AOR{26} = 'Meem.meem_matching'; +figs_in_AOR{27} = 'Meem.meem_convergence_vs_omega'; +figs_in_AOR{28} = 'Meem.asymptotic_b_vector'; +figs_in_AOR{29} = 'FitOlaya.case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1'; % appendix B - dynamics (PTO kinematics, PTO circuit, QP, drag, slamming, WECSim) -figs_in_AOR{31} = 'Tikz.circuit_kinematics'; -figs_in_AOR{32} = 'Tikz.circuit_pto'; -figs_in_AOR{33} = 'QPCircles.qp_circles'; -figs_in_AOR{34} = 'RunSingleFigFunc.qcqp_circles_nominal'; -figs_in_AOR{35} = 'RunSingleFigFunc.ctrl_polar_plot_mult'; -figs_in_AOR{36} = 'DragIntegral.drag_integral_B'; % subfig (a), combined with {52},{53} -figs_in_AOR{37} = 'Slamming.slamming_amplitude'; -figs_in_AOR{38} = 'RunSingleFigFunc.slamming_model_comparison_float'; -figs_in_AOR{39} = 'Wecsim.wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat'; % subfig, combined with {54},{55},{56} -figs_in_AOR{40} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund'; % subfig, combined with {57},{58},{59} -figs_in_AOR{41} = 'Wecsim.accel_fourier_harmonics'; -figs_in_AOR{42} = 'Wecsim.drag_force_desc_fcn'; -figs_in_AOR{43} = 'Wecsim.position_THD_contour'; -figs_in_AOR{44} = 'Wecsim.wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat'; +figs_in_AOR{30} = 'ReadNonMatlabFigs.circuit_kinematics'; +figs_in_AOR{31} = 'ReadNonMatlabFigs.circuit_pto'; +figs_in_AOR{32} = 'QPCircles.qp_circles'; +figs_in_AOR{33} = 'DragIntegral.drag_integral_B'; % subfig (a), combined with {51},{52} +figs_in_AOR{34} = 'Slamming.slamming_amplitude'; +figs_in_AOR{35} = 'RunSingleFigFunc.slamming_model_comparison_float'; +figs_in_AOR{36} = 'Wecsim.wecsim_wcsm_multi_drag_off_meem_off__power_mech_unsat'; % subfig, combined with {53},{54},{55} +figs_in_AOR{37} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_fund'; % subfig, combined with {56},{57},{58} +figs_in_AOR{38} = 'Wecsim.position_THD_contour'; +figs_in_AOR{39} = 'Wecsim.drag_force_desc_fcn'; +figs_in_AOR{40} = 'Wecsim.wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat'; % appendix C - economic validation -figs_in_AOR{45} = 'Validation.cost_vs_N_WEC'; +figs_in_AOR{41} = 'Validation.cost_vs_N_WEC'; % appendix D - structures -figs_in_AOR{46} = 'ReadNonMatlabFigs.equivalent_stiffness'; -figs_in_AOR{47} = 'ReadNonMatlabFigs.trapezoid'; -figs_in_AOR{48} = 'ReadNonMatlabFigs.damping_plate_flowchart'; -figs_in_AOR{49} = 'DampingPlateStructures.damping_plate_moment'; % subfig (a), combined with {60} +figs_in_AOR{42} = 'ReadNonMatlabFigs.equivalent_stiffness'; +figs_in_AOR{43} = 'ReadNonMatlabFigs.trapezoid'; +figs_in_AOR{44} = 'ReadNonMatlabFigs.damping_plate_flowchart'; +figs_in_AOR{45} = 'DampingPlateStructures.damping_plate_moment'; % subfig (a), combined with {59} % graphical abstract (unnumbered so at the end) -figs_in_AOR{50} = 'ReadNonMatlabFigs.graphical_abstract_modeling'; +figs_in_AOR{46} = 'ReadNonMatlabFigs.graphical_abstract_modeling'; % extra subplot entries (additional MATLAB outputs for multi-panel figures) -figs_in_AOR{51} = 'DescFcns.drag_desc_fcn'; % fig 9 subfig (b) -figs_in_AOR{52} = 'DragIntegral.drag_integral_G_m'; % fig 36 subfig (b) -figs_in_AOR{53} = 'DragIntegral.drag_integral_G_p'; % fig 36 subfig (c) -figs_in_AOR{54} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat'; % fig 39 subfig -figs_in_AOR{55} = 'Wecsim.wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat'; % fig 39 subfig -figs_in_AOR{56} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat'; % fig 39 subfig -figs_in_AOR{57} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund'; % fig 40 subfig -figs_in_AOR{58} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase'; % fig 40 subfig -figs_in_AOR{59} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase'; % fig 40 subfig -figs_in_AOR{60} = 'DampingPlateStructures.damping_plate_deflection'; % fig 49 subfig (b) +figs_in_AOR{47} = 'ReadNonMatlabFigs.mod_freq_domain_ctrl_evaluation'; % fig 8 subfig (b) +figs_in_AOR{48} = 'ReadNonMatlabFigs.mod_freq_domain_ctrl_combined'; % fig 8 subfig (c) +figs_in_AOR{49} = 'DescFcns.drag_desc_fcn'; % fig 9 subfig (b) +figs_in_AOR{50} = 'SweepGeoms.sweep_geoms_line_cwr_sa'; % fig 16 subfig (b) +figs_in_AOR{51} = 'DragIntegral.drag_integral_G_m'; % fig 33 subfig (b) +figs_in_AOR{52} = 'DragIntegral.drag_integral_G_p'; % fig 33 subfig (c) +figs_in_AOR{53} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__power_mech_unsat'; % fig 36 subfig +figs_in_AOR{54} = 'Wecsim.wecsim_wcsm_multi_drag_off_meem_on__power_mech_unsat'; % fig 36 subfig +figs_in_AOR{55} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_on__power_mech_unsat'; % fig 36 subfig +figs_in_AOR{56} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_fund'; % fig 37 subfig +figs_in_AOR{57} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__spar_drag_force_phase'; % fig 37 subfig +figs_in_AOR{58} = 'Wecsim.wecsim_wcsm_multi_drag_on_meem_off__float_drag_force_phase'; % fig 37 subfig +figs_in_AOR{59} = 'DampingPlateStructures.damping_plate_deflection'; % fig 45 subfig (b) %% TABLES @@ -152,7 +151,7 @@ tabs_classes = tabs_split(:,1); for i=1:length(figs_classes) class_name = figs_classes{i}; - if ~strcmp(class_name, 'Tikz') + if ~strcmp(class_name, 'ReadNonMatlabFigs') all_fig_names_this_class = feval(class_name,struct(),struct()).fig_names; this_fig_name = figs_split(i,2); valid = ismember(this_fig_name,all_fig_names_this_class); @@ -166,7 +165,7 @@ end for i=1:length(tabs_classes) class_name = tabs_classes{i}; - if ~strcmp(class_name, 'Tikz') + if ~strcmp(class_name, 'ReadNonMatlabFigs') all_tab_names_this_class = feval(class_name,struct(),struct()).tab_names; this_tab_name = tabs_split(i,2); valid = ismember(this_tab_name,all_tab_names_this_class); diff --git a/mdocean/plots/matlab_figs/optim/compare.m b/mdocean/plots/matlab_figs/optim/compare.m index 7b61563e2..d23dfce9a 100644 --- a/mdocean/plots/matlab_figs/optim/compare.m +++ b/mdocean/plots/matlab_figs/optim/compare.m @@ -109,11 +109,9 @@ %% hydro coeff comparison plot h_hydro = hydro_compare(vals,color); -figs = [h_geom, h_hydro, h_prob, h_power_matrix]; - %% design variable table -DV_table = array2table(X.', ... - 'VariableNames',titles, 'RowNames', b.var_names_pretty); +DV_table = array2table(X(:,1:end-1).', ... + 'VariableNames',titles, 'RowNames', b.var_names_pretty(1:end-1)); %% output table temp_table = struct2table(vals,'RowNames',titles); @@ -124,6 +122,24 @@ out_table.Properties.RowNames = fix_underscores(out_table.OriginalVariableNames); out_table = removevars(out_table,'OriginalVariableNames'); +%% design variable stacked number line plot +h_stacked_dv = figure; +stacked_number_line(X(:,1:end-1).', b.X_mins, b.X_maxs, color, {'o','x','^','v','d'}, titles, b.var_names_pretty(1:end-1)) + +h_stacked_out = figure; +try + disp(out_table.Properties.RowNames) + disp(out_table.Properties.VariableNames) + disp(out_table.Properties.OriginalRowNames) +end +disp(class(out_table{:,:})) +disp(size(out_table{:,:})) + +stacked_number_line(out_table{:,:}, [], [], color, {'o','x','^','v','d'}, titles, out_table.Properties.RowNames); +h_stacked_out.Position(3:4) = [1000 400]; % make taller + +figs = [h_geom, h_hydro, h_prob, h_power_matrix, h_stacked_dv, h_stacked_out]; + end function cell = fix_underscores(cell) diff --git a/mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m b/mdocean/plots/matlab_figs/optim/constraint_active_plot.m similarity index 69% rename from mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m rename to mdocean/plots/matlab_figs/optim/constraint_active_plot.m index 2f646443b..4da88d7c2 100644 --- a/mdocean/plots/matlab_figs/sim_results/constraint_active_plot.m +++ b/mdocean/plots/matlab_figs/optim/constraint_active_plot.m @@ -1,5 +1,5 @@ %[DOCS AUTOGENERATED] -function [idx,f] = constraint_active_plot(residuals,fval,tol,b,reversed) +function [idx,fig] = constraint_active_plot(residuals,fval,tol,b,reversed) % Function constraint_active_plot % % :param residuals: residuals @@ -8,7 +8,7 @@ % :param b: Design variable bounds struct % :param reversed: reversed % :returns: idx -% :returns: f +% :returns: fig if nargin<5 reversed = false; @@ -26,7 +26,7 @@ nlcon_active(:,idx_slamming_first) = any(nlcon_active(:,idx_slamming),2); nlcon_active(:,idx_slamming_after) = []; constraint_names_mod = b.constraint_names_pretty(~idx_slamming_after); - constraint_names_mod(idx_slamming_first) = {'Prevent Slamming'}; + constraint_names_mod(find(idx_slamming_first)) = {'Prevent Slamming'}; if reversed dir = 'descend'; @@ -35,7 +35,12 @@ end [~,idx] = sort(fval(:,1),dir); % order by increasing LCOE (decreasing if reversed) - f = figure('Color','w'); + num_pareto = length(idx); + num_design_vars = length(b.var_names)-1; + num_lincon = size(lincon_active,2); + num_nlcon = size(nlcon_active,2); + + fig = figure('Color','w'); tiledlayout(2,3,'TileSpacing','tight','Padding','tight'); nexttile @@ -44,9 +49,9 @@ spy(ub_active(idx,:)','^r') title('Design Variable Bound Active','FontSize',14) grid on - x_string = strcat('x_{', num2str((1:length(b.var_names)-1).') , "} ", b.var_names_pretty(1:end-1).' ); - set(gca,'ytick',1:size(lb_active,2),'yticklabel',x_string) - set(gca, 'PlotBoxAspectRatio', [1.5 1 1]) + x_string = strcat('x_{', num2str((1:num_design_vars).') , "} ", b.var_names_pretty(1:end-1).' ); + set(gca,'ytick',1:num_design_vars,'yticklabel',x_string) + set(gca, 'PlotBoxAspectRatio', [.25*num_pareto num_design_vars 1]) xlabel('Number Along Pareto Front','FontSize',14) legend('Lower bound','Upper bound') @@ -54,8 +59,9 @@ spy(lincon_active(idx,:)') title('Linear Constraint Active','FontSize',14) lin_string = strcat('g_{L,', num2str((1:length(b.lin_constraint_names)).') , "} ", b.lin_constraint_names_pretty.' ); - set(gca,'ytick',1:size(lincon_active,2),'yticklabel',lin_string) - set(gca, 'PlotBoxAspectRatio', [1.5 1 1]) + + set(gca,'ytick',1:num_lincon,'yticklabel',lin_string) + set(gca, 'PlotBoxAspectRatio', [.25*num_pareto num_lincon 1]) grid on xlabel('Number Along Pareto Front','FontSize',14) @@ -64,10 +70,10 @@ title('Nonlinear Constraint Active','FontSize',14) grid on nl_string = strcat('g_{NL,', num2str((1:length(constraint_names_mod)).') , "} ", constraint_names_mod.' ); - set(gca,'ytick',1:size(nlcon_active,2),'yticklabel',nl_string) - set(gca, 'PlotBoxAspectRatio', [1.5 1 1]) + set(gca,'ytick',1:num_nlcon,'yticklabel',nl_string) + set(gca, 'PlotBoxAspectRatio', [.25*num_pareto num_nlcon 1]) xlabel('Number Along Pareto Front','FontSize',14) - f.Position = [2 128 1532 626]; + fig.Position = [2 128 1532 626]; %improvePlot end \ No newline at end of file diff --git a/mdocean/plots/matlab_figs/sim_results/experiments_plot.m b/mdocean/plots/matlab_figs/sim_results/experiments_plot.m index 868c856c9..b393bec50 100644 --- a/mdocean/plots/matlab_figs/sim_results/experiments_plot.m +++ b/mdocean/plots/matlab_figs/sim_results/experiments_plot.m @@ -1,5 +1,5 @@ %[DOCS AUTOGENERATED] -function [figs,results_tab] = experiments_plot(b,X_ins,ratios,LCOE,cost,power,failed,pareto_results_struct) +function [figs,results_tab] = experiments_plot(b,X_ins,ratios,LCOE,cost,power,failed,failed_mat,pareto_results_struct) % Function experiments_plot % % :param b: Design variable bounds struct @@ -9,14 +9,20 @@ % :param cost: cost % :param power: power % :param failed: Indices or names of violated constraints +% :param failed_mat: Matrix of failed constraints % :param pareto_results_struct: pareto_results_struct % :returns: Figure handles % :returns: results_tab %EXPERIMENTS_PLOT Post processing for design space exploration - if nargin < 8 + if nargin < 9 pareto_results_struct = []; end + idx_infeasible = ~cell2mat(cellfun(@isempty,failed_mat,'UniformOutput',false)); + disp(class(idx_infeasible)) + disp(size(idx_infeasible)) + disp(idx_infeasible) + disp(size(ratios)) % create table for display results_tab = array2table(X_ins, 'VariableNames', b.var_names(1:end-1)); @@ -42,9 +48,14 @@ fig1 = gobjects(1,1); end %% sensitivities plot - [ratios_sorted,idx] = sort(ratios); + LCOE(1,:) = LCOE(1,1); % fill in nominal LCOE results for each DV where it wasn't repeatedly tested cost(1,:) = cost(1,1); + + [ratios_sorted,idx] = sort(ratios); + sorted_LCOE = LCOE(idx,:).'; + sorted_cost = cost(idx,:).'; + sorted_idx_infeasible = idx_infeasible(:,idx); fig2 = figure; t = tiledlayout(2,1); @@ -58,14 +69,19 @@ yline(LCOE(1,1),'LineWidth',2,'Color','k','HandleVisibility','off') hold on for i = 1:size(cols,2) - temp_LCOE = LCOE(idx,:).'; - plot(ratios_sorted,temp_LCOE(i,:),cols{i}) + style = cols{i}; + color = style(1); + sorted_idx_infeasible_i = sorted_idx_infeasible(i,:); + + plot(ratios_sorted,sorted_LCOE(i,:),style) % both feasible and infeasible + plot(ratios_sorted(~sorted_idx_infeasible_i),sorted_LCOE(i,~sorted_idx_infeasible_i),'ok','HandleVisibility','off') % o over feasible hold on + plot(ratios_sorted(sorted_idx_infeasible_i), sorted_LCOE(i, sorted_idx_infeasible_i),'xk','HandleVisibility','off') % x over infeasible end ylab1 = ylabel('LCOE ($/kWh)'); x_range = [1/3 3]; - axis(ax1,[x_range .6 1.1]) + axis(ax1,[x_range 0.95*min(LCOE(:)) 1.1]) l = legend(b.var_names_pretty{1:end-1}); l.Location = 'northeastoutside'; grid on @@ -76,8 +92,10 @@ yline(cost(1,1),'LineWidth',2,'Color','k') hold on for i=1:size(cols,2) - temp_cost = cost(idx,:).'; - plot(ratios_sorted,temp_cost(i,:),cols{i}) + sorted_idx_infeasible_i = sorted_idx_infeasible(i,:); + plot(ratios_sorted,sorted_cost(i,:),cols{i}) % both feasible and infeasible + plot(ratios_sorted(~sorted_idx_infeasible_i),sorted_cost(i,~sorted_idx_infeasible_i),'ok','HandleVisibility','off') % o over feasible + plot(ratios_sorted(sorted_idx_infeasible_i),sorted_cost(i,sorted_idx_infeasible_i),'xk','HandleVisibility','off') % x over infeasible end ylab2=ylabel('Structural & PTO Cost ($M)'); diff --git a/mdocean/plots/non_matlab_figs/.latexmkrc b/mdocean/plots/non_matlab_figs/.latexmkrc new file mode 100644 index 000000000..ef7c5c827 --- /dev/null +++ b/mdocean/plots/non_matlab_figs/.latexmkrc @@ -0,0 +1,2 @@ +#$out_dir = 'pdf'; +$aux_dir = 'aux'; \ No newline at end of file diff --git a/mdocean/plots/non_matlab_figs/circuit_intrinsic.tex b/mdocean/plots/non_matlab_figs/circuit_intrinsic.tex new file mode 100644 index 000000000..3195c5720 --- /dev/null +++ b/mdocean/plots/non_matlab_figs/circuit_intrinsic.tex @@ -0,0 +1,9 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{circuitikz} % circuit figures +\usepackage{import} + +\usetikzlibrary{external,positioning,calc} +\begin{document} +\subimport{../../../pubs/applied-ocean-research-model/figs/tikz/}{circuit_intrinsic.tikz} +\end{document} \ No newline at end of file diff --git a/mdocean/plots/non_matlab_figs/circuit_kinematics.tex b/mdocean/plots/non_matlab_figs/circuit_kinematics.tex new file mode 100644 index 000000000..89f5d3665 --- /dev/null +++ b/mdocean/plots/non_matlab_figs/circuit_kinematics.tex @@ -0,0 +1,9 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{circuitikz} % circuit figures +\usepackage{import} + +\usetikzlibrary{external,positioning,calc} +\begin{document} +\subimport{../../../pubs/applied-ocean-research-model/figs/tikz/}{circuit_kinematics.tikz} +\end{document} \ No newline at end of file diff --git a/mdocean/plots/non_matlab_figs/circuit_pto.tex b/mdocean/plots/non_matlab_figs/circuit_pto.tex new file mode 100644 index 000000000..74f1a580f --- /dev/null +++ b/mdocean/plots/non_matlab_figs/circuit_pto.tex @@ -0,0 +1,9 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{circuitikz} % circuit figures +\usepackage{import} + +\usetikzlibrary{external,positioning,calc} +\begin{document} +\subimport{../../../pubs/applied-ocean-research-model/figs/tikz/}{circuit_pto.tikz} +\end{document} \ No newline at end of file diff --git a/mdocean/plots/non_matlab_figs/control_method_venn_diagram.tex b/mdocean/plots/non_matlab_figs/control_method_venn_diagram.tex new file mode 100644 index 000000000..4342dfcf4 --- /dev/null +++ b/mdocean/plots/non_matlab_figs/control_method_venn_diagram.tex @@ -0,0 +1,8 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{import} + +\usetikzlibrary{external,positioning,calc} +\begin{document} +\subimport{../../../pubs/applied-ocean-research-model/figs/tikz/}{control_method_venn_diagram.tikz} +\end{document} \ No newline at end of file diff --git a/mdocean/plots/non_matlab_figs/img/.gitignore b/mdocean/plots/non_matlab_figs/img/.gitignore index 742d9cd44..bcb8d1405 100644 --- a/mdocean/plots/non_matlab_figs/img/.gitignore +++ b/mdocean/plots/non_matlab_figs/img/.gitignore @@ -18,3 +18,4 @@ /mod_freq_domain_ctrl_evaluation.png /mod_freq_domain_ctrl_synthesis.png /taxonomy.png +/mod_freq_domain_ctrl_combined.png diff --git a/mdocean/plots/non_matlab_figs/meem_dims.tex b/mdocean/plots/non_matlab_figs/meem_dims.tex new file mode 100644 index 000000000..d694fd518 --- /dev/null +++ b/mdocean/plots/non_matlab_figs/meem_dims.tex @@ -0,0 +1,8 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{import} + +\usetikzlibrary{external,positioning,calc} +\begin{document} +\subimport{../../../pubs/applied-ocean-research-model/figs/tikz/}{meem_dims.tikz} +\end{document} \ No newline at end of file diff --git a/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_combined.mmd b/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_combined.mmd new file mode 100644 index 000000000..d18ddeaa2 --- /dev/null +++ b/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_combined.mmd @@ -0,0 +1,24 @@ +%%{init: {'flowchart': { 'padding': 5 , 'diagramPadding': 5 , 'useMaxWidth': false} }}%% +flowchart LR + + Ns[ ] --> |Time-
Domain
Constraints|Ms + Ms[Linearization via Constraint DFs] --> |Freq.-
Domain
Constraints|Cs + As[ ] --> |Time-
Domain
Nonlin.
Plant|Bs[Linearization
via Plant DFs] + Bs -->|Freq.-
Domain
Lin. Plant| Cs[Freq.-Domain
Lin. Constr.
Opt. Control] + Cs -->|Freq.-
Domain
Lin. Opt.
Controller| Ce[Freq.-Domain
Lin. Simulation] + + Bs -->|Freq.-
Domain
Lin. Plant| Ce + Ce -->|Freq.-
Domain
Lin.
Response| Ee[Nonlin. Signal Reconstruction via
Inv. Response DF] + Ee -->|Time-
Domain
Nonlin.
Response| Fe[" "] + + classDef hidden fill:transparent,stroke:transparent,color:transparent; + class As,Ns,Fs,Ne,Fe hidden; + classDef bigFont font-size:20px + class Ms,Cs,Bs,Ce,Ee bigFont + + classDef plant fill:#9ff + class Bs plant + classDef response fill:#ff9 + class Ms,Ee response + + \ No newline at end of file diff --git a/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_evaluation.mmd b/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_evaluation.mmd index 507ecfbe1..4f16a9803 100644 --- a/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_evaluation.mmd +++ b/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_evaluation.mmd @@ -10,4 +10,11 @@ flowchart LR classDef hidden fill:transparent,stroke:transparent,color:transparent; class A,N,F hidden; classDef bigFont font-size:20px - class M,C,B,E bigFont \ No newline at end of file + class M,C,B,E bigFont + + classDef controller fill:#f9f + class M controller + classDef plant fill:#9ff + class B plant + classDef response fill:#ff9 + class E response \ No newline at end of file diff --git a/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_synthesis.mmd b/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_synthesis.mmd index a188439f4..e0e7ca80e 100644 --- a/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_synthesis.mmd +++ b/mdocean/plots/non_matlab_figs/mod_freq_domain_ctrl_synthesis.mmd @@ -10,4 +10,11 @@ flowchart LR classDef hidden fill:transparent,stroke:transparent,color:transparent; class A,N,F hidden; classDef bigFont font-size:20px - class M,C,B,E bigFont \ No newline at end of file + class M,C,B,E bigFont + + classDef controller fill:#f9f + class E controller + classDef plant fill:#9ff + class B plant + classDef response fill:#ff9 + class M response \ No newline at end of file diff --git a/mdocean/plots/non_matlab_figs/pdf/control_analysis_flowcharts.pdf.dvc b/mdocean/plots/non_matlab_figs/pdf/control_analysis_flowcharts.pdf.dvc index 3af7e74ad..a30ae2e63 100644 --- a/mdocean/plots/non_matlab_figs/pdf/control_analysis_flowcharts.pdf.dvc +++ b/mdocean/plots/non_matlab_figs/pdf/control_analysis_flowcharts.pdf.dvc @@ -1,5 +1,5 @@ outs: -- md5: 3f54c3aea3fcdfbf036420e5a18b794a - size: 400999 +- md5: ea9376dfe788df8063cff49d547ca8da + size: 377957 hash: md5 path: control_analysis_flowcharts.pdf diff --git a/mdocean/plots/util/stacked_number_line.m b/mdocean/plots/util/stacked_number_line.m new file mode 100644 index 000000000..3cf5d684c --- /dev/null +++ b/mdocean/plots/util/stacked_number_line.m @@ -0,0 +1,125 @@ + +% uncomment to test +% rng('default') +% rand_data = rand(5,4); +% low = [1 2 3 4 5]; +% up = [6 7 8 9 10]; + +% data = zeros(5,4); +% for i=1:5 +% range = up(i) - low(i); +% data(i,:) = rand_data(i,:) * range + low(i); +% end +% figure +% stacked_number_line(data, low, up, {'r','b','g','k'},{'o','x','^','v'},{'a','b','c','d'},{'1','2','3','4','5'}) + +function stacked_number_line(data, lower_lim, upper_lim, colors, markers, legend_cell, ylabel_cell) +%STACKED_NUMBER_LINE Plot each row of a matrix as a number line. +% +% stacked_number_line(data) +% stacked_number_line(data, lower_lim, upper_lim) +% +% Inputs +% ------- +% data : NxM numeric matrix +% Each row is plotted as markers at (x,y) = (data(i,:), 0). +% +% lower_lim : Nx1 or 1xN numeric vector (optional) +% Lower x-axis limit for each row. +% +% upper_lim : Nx1 or 1xN numeric vector (optional) +% Upper x-axis limit for each row. +% +% Notes +% ----- +% - Only the x-axis is shown. +% - Markers are plotted without connecting lines. +% - If limits are omitted, MATLAB chooses limits automatically. + + arguments + data (:,:) double + lower_lim (:,1) double = [] + upper_lim (:,1) double = [] + colors = {} + markers = {} + legend_cell = {} + ylabel_cell = {} + end + + [N,M] = size(data); + + % Accept row or column vectors + if ~isempty(lower_lim) + lower_lim = lower_lim(:); + assert(numel(lower_lim)==N, ... + 'lower_lim must have length N.'); + end + + if ~isempty(upper_lim) + upper_lim = upper_lim(:); + assert(numel(upper_lim)==N, ... + 'upper_lim must have length N.'); + end + + t = tiledlayout(N,1, ... + 'TileSpacing','compact', ... + 'Padding','compact'); + + for i = 1:N + ax = nexttile(t); + + % Plot markers only + for j = 1:M + style = [colors{j} markers{j}]; + plot(ax, data(i,j), 0, style, 'LineStyle','none'); + hold(ax,'on'); + end + + % Hide y-axis entirely + ax.YTick = []; + ax.YColor = 'none'; + ax.Box = 'off'; + + % Keep only bottom x-axis + ax.XAxisLocation = 'origin'; + + % Small vertical extent so markers are visible + ylim(ax,[-0.1 0.1]); + + % Remove unnecessary y margins + ax.YLimMode = 'manual'; + + % Set x limits if provided + if ~isempty(lower_lim) && ~isempty(upper_lim) + lims = [lower_lim(i), upper_lim(i)]; + elseif ~isempty(lower_lim) + xl = xlim(ax); + lims = [lower_lim(i), xl(2)]; + elseif ~isempty(upper_lim) + xl = xlim(ax); + lims = [xl(1), upper_lim(i)]; + else + lims = xlim(ax); + end + + axis padded + if i==1 + leg = legend(legend_cell); + leg.Layout.Tile = 'east'; + end + xlim(ax,lims) + ax.XAxis.Color = 'w'; + + %ax.XAxis.TickLabelColor = 'g'; to debug and ensure axes overlap ok + oldpos = ax.Position; + newpos = oldpos; + newpos(4) = oldpos(4)/2; % half height + ax2 = axes('position', newpos,'Color','none','XAxisLocation','top'); + ylabel(ax,ylabel_cell{i}) + ax2.YAxis.Color = 'none'; + ax.YLabel.Color = 'k'; + xlim(ax2,lims) + end +end + + diff --git a/mdocean/simulation/run/experiments.m b/mdocean/simulation/run/experiments.m index a98129fef..fba0f92c9 100644 --- a/mdocean/simulation/run/experiments.m +++ b/mdocean/simulation/run/experiments.m @@ -2,7 +2,7 @@ % Runs one-at-a-time design of experiments %[DOCS AUTOGENERATED] -function [X_ins,ratios,LCOE,cost,power,failed] = experiments(p,b) +function [X_ins,ratios,LCOE,cost,power,failed,failed_mat] = experiments(p,b) % Function experiments % % :param p: Parameter struct @@ -13,7 +13,7 @@ % :returns: cost % :returns: power % :returns: Indices or names of violated constraints - + if nargin==0 p = parameters(); b = var_bounds(); @@ -56,6 +56,7 @@ LCOE = X*inf; cost = X*inf; power = X*inf; +failed_mat = cell(size(X)); opt_idx = zeros(num_DVs,1); recommended = zeros(num_DVs,2); number_runs = 1 + num_DVs * num_vals_swept; % nominal run plus all sweeps @@ -90,7 +91,7 @@ feasible = feasible_lin; which_failed = failed_lin; end - if feasible + if true %feasible LCOE(i,j) = LCOE_temp; cost(i,j) = cost_temp; power(i,j) = val.power_avg; @@ -99,6 +100,7 @@ cost(i,j) = NaN; end failed{design} = which_failed; + failed_mat{i,j} = which_failed; end end end diff --git a/pubs/applied-ocean-research-model/.latexmkrc b/pubs/applied-ocean-research-model/.latexmkrc index 7dd2ff123..a999b3ed8 100644 --- a/pubs/applied-ocean-research-model/.latexmkrc +++ b/pubs/applied-ocean-research-model/.latexmkrc @@ -17,7 +17,7 @@ print "TEXINPUTS after: @TEXINPUTS\n"; $out_dir = '.'; $aux_dir = 'aux'; -# Enable -shell-escape for pdflatex (required for TikZ externalization and bibcop override) +# Enable -shell-escape for pdflatex (required for bibcop override) set_tex_cmds( '--shell-escape %O %S' ); $max_repeat = 10; diff --git a/pubs/applied-ocean-research-model/cas-common.sty b/pubs/applied-ocean-research-model/cas-common.sty new file mode 100644 index 000000000..155ebc61b --- /dev/null +++ b/pubs/applied-ocean-research-model/cas-common.sty @@ -0,0 +1,2641 @@ +%% +%% This is file `cas-common.sty', +%% +%% This file is part of the 'CAS Bundle'. +%% ...................................... +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.3c of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'CAS Bundle' is +%% given in the file `manifest.txt'. +%% + +% $Id: cas-common.sty 94 2024-05-04 09:27:09Z rishi $ + + \def\RCSfile{cas-common}% + \def\RCSversion{2.4}% + \def\RCSdate{2024/05/04}% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\pretolerance=-1 +\tolerance=1000 +\hyphenpenalty=1000 +\exhyphenpenalty=100 +\brokenpenalty=10000 +\vfuzz=\z@ +\hfuzz=.2pt +\doublehyphendemerits=100 +\emergencystretch=2pt +\frenchspacing +\clubpenalty=10000 +\widowpenalty=10000 + +\ExplSyntaxOn +\makeatletter +% +% Front matter macros +% +% The front matter macros are derived/adopted from stm-prelims.sty +% written by CV Radhakrishnan and copyrighted by him. +% Usage of those macros and methods are gratefully acknowledged. +% + +\tl_set:Nn \l_stm_title_color_tl { black } + +\keys_define:nn { stm / title } + { + mode .choice: , + mode / title .meta:n = + { + type = title , + size = \LARGE , + shape = \upshape , + weight = \mdseries , + color = black , + before = 0pt , + after = 0pt , + align = \raggedright , + } , + mode / alt .meta:n = + { + type = alt , + size = \large , + shape = \upshape , + weight = \mdseries , + color = black , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / sub .meta:n = + { + type = sub , + size = \large , + shape = \upshape , + weight = \mdseries , + color = black!80 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / trans .meta:n = + { + type = trans , + size = \normalsize , + shape = \upshape , + weight = \mdseries , + color = black!60 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / transsub .meta:n = + { + type = transsub , + size = \small , + shape = \upshape , + weight = \mdseries , + color = black!50 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / ascii .meta:n = + { + type = ascii , + size = \small\ttfamily , + shape = \upshape , + weight = \mdseries , + color = black , + before = 12pt , + after = 0pt , + align = \raggedright , + } , + type .tl_set:N = \l_stm_title_type_tl , + size .tl_set:N = \l_stm_title_size_tl , + shape .tl_set:N = \l_stm_title_shape_tl , + weight .tl_set:N = \l_stm_title_weight_tl , + before .dim_set:N = \l_stm_title_before_dim , + after .dim_set:N = \l_stm_title_after_dim , + align .tl_set:N = \l_stm_title_align_tl , + color .tl_set:N = \l_stm_title_color_tl , + } + +\NewDocumentCommand \processTmarks { } + { + \cs_if_free:cTF { mark@title } + { \ignorespaces } + { \tl_set:Nx \l_tmpa_tl { \cs:w mark@title\cs_end: } + \clist_map_inline:cn { mark@title } + { + \str_case:nn { ##1 } + { + { 1 } { $^\star$ } + { 2 } { $^{,\star\star}$ } + { 3 } { $^{,\star\star\star}$ } + } + } + } + } + +\RenewDocumentCommand \title { O{} m } + { + \pdfstringdef \@pdftitle { #2 } + \csgdef { casprelimstitle } { #2 } + \keys_set:nn { stm / title } { #1 } + \seq_gput_right:Nn \g_stm_title_seq + { + \keys_set:nn { stm / title } { #1 } +% \msg_term:n { MODE:~\l_stm_title_mode_tl ~ ~ [#2]} + \par \vskip \l_stm_title_before_dim + \l_stm_title_align_tl + \l_stm_title_size_tl + \l_stm_title_shape_tl + \l_stm_title_weight_tl + \color { \l_stm_title_color_tl } + \noindent \unskip \ignorespaces #2 + \tl_set:Nn \l_tmpa_tl { title } + \tl_if_eq:NNTF \l_stm_title_type_tl \l_tmpa_tl + { \processTmarks } { } + \par \vskip \l_stm_title_after_dim + \normalcolor \normalsize \normalfont + } + } + +% \gappto\usestmtitle{#1}% + +\renewcommand \@title { \seq_use:Nn \g_stm_title_seq { } } + +\NewDocumentCommand \wrAun { m } % unexpanded write to aux + { \iow_now:Nn \@auxout { #1 } } +\NewDocumentCommand \wrAux { m } % expanded write to aux + { \iow_now:Nx \@auxout { #1 } } + +\NewDocumentCommand \wrShipAux { m } % expanded write at shipout + { \iow_shipout:Nx \@auxout { #1 } } +\NewDocumentCommand \wrShipAun { m } % unexpanded write at shipout + { \iow_shipout:Nn \@auxout { #1 } } + +\NewDocumentCommand \stmLabel { m } + { + \@bsphack \wrAux + { \token_to_str:N \NewLabel { #1 } + { \@currentlabel } + } \@esphack + } +\NewDocumentCommand \NewLabel { m m } + { + \cs_if_free:cTF { X@#1: } + { \cs_new:cx { X@#1: } { #2 } } + { \cs_set:cx { X@#1: } { #2 } } + } +\NewDocumentCommand \stmRef { m } + { + \cs_if_free:cTF { X@#1: } + { 0 } {\use:c {X@#1:} } + } + +\seq_clear_new:N \l_fnmk_seq +\NewDocumentCommand \processFnRef { m } + { + \seq_clear:N \l_fnmk_seq + \clist_map_inline:nn { #1 } + { \seq_put_right:Nx \l_fnmk_seq + {\cs_if_free:cTF { X@##1: } {0} { \use:c {X@##1:} }} + } + } + +\NewDocumentCommand \fnmark { O{} } + { \writemarks { fnau\theau@ } { #1 } } + + +\NewDocumentCommand \fnref { m } + { + \processFnRef { #1 } + \wrAux { \token_to_str:N \csxdef {mark@fnau\theau@} + { \seq_use:Nn \l_fnmk_seq { , } } } + } + +\NewDocumentCommand \corref { m } + { + \str_set:Nx \l_tmpa_str { \stmRef { #1 } } + \wrAux { \token_to_str:N \csxdef { mark@corau\theau@ } + { + \cs_if_free:cTF { X@#1: } {0} { \use:c {X@#1:} } + } + } + } + +\NewDocumentCommand \cormark { O{} } + { + \@cormarktrue + \writemarks {corau\theau@} { #1 } + } + +\seq_new:N \l_stm_au_seq +\seq_new:N \l_stm_au_sn_seq +\seq_new:N \l_stm_au_fn_seq +\seq_new:N \l_stm_au_ead_seq +\seq_new:N \l_stm_au_orcid_seq +\seq_new:N \l_stm_au_contrib_role_seq + +\NewDocumentCommand \parsename { m } + { \seq_set_split:Nnn \l_stm_au_seq { ~ } {#1} + \seq_pop_right:NN \l_stm_au_seq \l_stm_au_sn_seq + \seq_map_inline:Nn \l_stm_au_seq + { \seq_put_right:Nx \l_stm_au_ead_seq + { \tl_head:n { #1 }. } } + } + +\NewDocumentCommand \invparsename { m } + { \seq_set_split:Nnn \l_stm_au_seq { ~ } {#1} + \seq_pop_left:NN \l_stm_au_seq \l_stm_au_sn_seq + \seq_map_inline:Nn \l_stm_au_seq + { \seq_put_right:Nx \l_stm_au_ead_seq + { \tl_head:n { #1 }. } } + } + + +\NewDocumentCommand \surname {} { \l_stm_au_sn_seq } +\NewDocumentCommand \firstname {} + { \seq_use:Nn \l_stm_au_seq { ~ } } +\NewDocumentCommand \eadauthor {} + { \seq_map_inline:Nn \l_stm_au_seq + { \regex_match:nnTF { \. } { ##1 } + { ##1 } + { \tl_head:n {##1}. } + } + {~} \l_stm_au_sn_seq + } +\cs_set_eq:NN \shortauthor \eadauthor + +\seq_clear_new:N \l_affmk_seq +\NewDocumentCommand \processAffRef { m } + { + \seq_clear:N \l_affmk_seq + \clist_map_inline:nn { #1 } + { + \seq_put_right:Nx \l_affmk_seq + {\stmRef{##1}} + } + } + +\NewDocumentCommand \processAffNum { m } + { + \seq_clear:N \l_affmk_seq + \clist_map_inline:nn { #1 } + { + \seq_put_right:Nn \l_affmk_seq + { \int_to_alph:n {##1} } + } + } + +\NewDocumentCommand \listAff { } + { + \tl_if_blank:nTF { \l_affmk_seq } + { \tl_gset:Nn \g_stm_comma_tl { 0 } } + { + \seq_use:Nn \l_affmk_seq { , } + \tex_def:D \sep{\unskip,} + } + } + +\NewDocumentCommand \ead { O{} m } + { + \tl_if_empty:nTF { #1 } { \@ead {#2} } { \@uad[#1]{#2} } + } + +\NewDocumentCommand \eadsep { } { } + +\int_new:N \g_ead_int +\seq_new:N \g_stm_ead_seq +\int_new:N \g_uad_int +\seq_new:N \g_stm_uad_seq +\seq_new:N \g_stm_orcid_seq +\seq_new:N \g_stm_contrib_role_seq + +\newcommand\theead { \int_use:N \g_ead_int } + +\NewDocumentCommand \@uad { O{} m } + { + \group_begin: + \wrAux { \token_to_str:N \urlauthor + { \exp_not:n {#2}}{\the\@eadauthor}}% + \group_end: + } + +\NewDocumentCommand \urlauthor { m m } + { + \int_gincr:N \g_uad_int + \seq_gput_right:Nn \g_stm_uad_seq + { + { %\ttfamily \tl_to_str:n + \url{ #1 } } + \parsename { #2 } + \space(\eadauthor) + } + } +\NewDocumentCommand \@stmuads { } + { \seq_use:Nn \g_stm_uad_seq { ;~ } } + +\NewDocumentCommand \@ead { m } + { + \group_begin: + \wrAux { \token_to_str:N \emailauthor + { \exp_not:n { #1 }}{ \the\@eadauthor }} + \group_end: + } + +\newtoks \@eadauthor +\newbool{@cormark} + +\NewDocumentCommand \emailauthor { m m } + { + \int_gincr:N \g_ead_int + \seq_gput_right:Nn \g_stm_ead_seq + { + { \ttfamily \tl_to_str:n { #1 } } + \parsename { #2 } + \space(\eadauthor)% + } + } + +\NewDocumentCommand \@elseads { } + { \seq_use:Nn \g_stm_ead_seq { ;~ } } + + +\NewDocumentCommand \printemails { } +{ + \group_begin: + \int_compare:nNnTF { \int_use:N \g_ead_int } > { 0 } + { + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \bool_if:NTF \g_stm_nologo_bool + { + \int_compare:nTF { \g_ead_int = 1 } + { \textit{Email~address:\c_space_token} } + { \textit{Email~addresses:\c_space_token} } + } + { \includegraphics[height=8pt]{thumbnails/cas-email.jpeg}\c_space_token } + \seq_use:Nn \g_stm_ead_seq { ;~ } + } + } + { } + \group_end: +} + +\NewDocumentCommand \printurls { } +{ + \group_begin: + \int_compare:nTF { \g_uad_int > 0 } + { + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \bool_if:NTF \g_stm_nologo_bool + { \textit{URL:\c_space_token} } + { \includegraphics[height=8pt]{thumbnails/cas-url.jpeg}\c_space_token } + \seq_use:Nn \g_stm_uad_seq { ;~ } + } + } + { } + \group_end: +} + +% +% orcid +% +\NewDocumentCommand \orcidauthor { m m } + { + \seq_gput_right:Nn \g_stm_orcid_seq + { + { \ttfamily \tl_to_str:n { #1 } } + \parsename{#2} + \space(\eadauthor) + } + } + +\NewDocumentCommand \printorcid { } +{ + \group_begin: + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \textsc{orcid}(s):\c_space_token + \seq_use:Nn \g_stm_orcid_seq { ;~ } + } + \group_end: +} + +% +% Contrib Role +% + +\seq_gclear_new:N \g_stm_credits_seq + +\NewDocumentCommand \ContribRole { m } +{ + \wrAux { \token_to_str:N \creditauthor + { #1 } { \the\@eadauthor } } +} + +\NewDocumentCommand \creditauthor { m m } +{ + \seq_gput_right:Nx \g_stm_credits_seq + { { \exp_not:N\bfseries #2 :}\space #1 } +} + +\cs_set_eq:NN \credit \ContribRole + +\NewDocumentCommand \printcredits { } +{ + \seq_if_empty:NF \g_stm_credits_seq + { + \section*{CRediT ~authorship ~contribution ~statement} + \ifnum\theblind>0\relax + \vspace*{10mm} + \else + \seq_use:Nn \g_stm_credits_seq { .~ }. + \fi + } +} + +\NewDocumentCommand \writemarks { m m } + { \wrAux { \token_to_str:N \csgdef{mark@#1}{#2} } } + +\seq_new:N \g_stm_title_seq + +\NewDocumentCommand \tnotemark { O{} } + { \writemarks { title } { #1 } } + +\NewDocumentCommand \@tnoteref { m } + { \int_set:Nn \l_tmpa_int { 0 } + \clist_map_inline:nn { #1 } + { +% \iow_term:n { ##1 .. [\cs:w X@##1:\cs_end:] } + \cs_if_free:cTF { X@##1: } + { \csdef{X@##1:}{0} } + { + \tl_set:Nx \l_tmpa_tl { \cs:w X@##1:\cs_end: } + \int_case:nn { \l_tmpa_tl } + { + { 1 } { $^\star$ } + { 2 } { $^{,\star\star}$ } + { 3 } { $^{,\star\star\star}$ } + } + } + } + } + +\seq_new:N \g_stm_tnote_seq +\int_new:N \g_stm_tnote_int + +\NewDocumentCommand \tnotetext { O{} m } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { +% \iow_term:n { [TNOTE:~alpha] }% + \seq_gput_right:Nn \g_stm_tnote_seq + { \int_incr:N \g_stm_tnote_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_tnote_int } + \stmLabel { #1 } + \renewcommand\thefootnote + { \int_case:nn { \g_stm_tnote_int } + { + { 1 } { $^\star$ } + { 2 } { $^{\star\star}$ } + { 3 } { $^{\star\star\star}$ } + } + } + \footnotetext { #2 } + } + } + { +% \iow_term:n { [TNOTE:~Number] } + \seq_gput_right:Nn \g_stm_tnote_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \renewcommand\thefootnote + { \int_case:nn { \l_tmpa_int } + { + { 1 } { $^\star$ } + { 2 } { $^{\star\star}$ } + { 3 } { $^{\star\star\star}$ } + } + } + \footnotetext { #2 } + } + } + } + +\newcommand \printtnotes { \seq_use:Nn \g_stm_tnote_seq { \par } } + +\seq_new:N \g_stm_nonumnote_seq + +\NewDocumentCommand \nonumnote { m } +{ + \group_begin: + \seq_gput_right:Nn \g_stm_nonumnote_seq + { + \tex_def:D \thefootnote { } + \footnotetext{#1} + } + \group_end: +} + +\newcommand \printnonumnotes { \seq_use:Nn \g_stm_nonumnote_seq { \par } } + +\seq_new:N \g_stm_fnote_seq +\int_new:N \g_stm_fnote_int + +\NewDocumentCommand \fntext { O{} m } +{ + \tl_if_head_eq_catcode:nNTF { #1 } a + { +% \iow_term:n { [FN:~alpha] }% + \seq_gput_right:Nn \g_stm_fnote_seq + { \int_incr:N \g_stm_fnote_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_fnote_int } + \stmLabel { #1 } + \tex_def:D \thefootnote { \int_use:N \g_stm_fnote_int } + \footnotetext { #2 } + } + } + { +% \iow_term:n { [FN:~Number] } + \seq_gput_right:Nn \g_stm_fnote_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \tex_def:D \thefootnote { \int_use:N \l_tmpa_int } + \footnotetext { #2 } + } + } +} + +\newcommand \printfnotes { \seq_use:Nn \g_stm_fnote_seq { \par } } + +\seq_new:N \g_stm_cor_seq +\int_new:N \g_stm_cor_int + +\NewDocumentCommand \cortext { O{} m } +{ + \tl_if_head_eq_catcode:nNTF { #1 } a + { +% \iow_term:n { [COR:~alpha] }% + \seq_gput_right:Nn \g_stm_cor_seq + { \int_incr:N \g_stm_cor_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_cor_int } + \stmLabel { #1 } + \tex_def:D \thefootnote + { \int_case:nn { \g_stm_cor_int } + { + { 1 } { $\ast$ } + { 2 } { $\ast\!\ast$ } + { 3 } { $\ast\!\ast\!\ast$ } + } + } + \footnotetext { #2 } + } + } + { +% \iow_term:n { [COR:~Number] } + \seq_gput_right:Nn \g_stm_cor_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \tex_def:D \thefootnote + { \int_case:nn { \l_tmpa_int } + { + { 1 } { $\ast$ } + { 2 } { $\ast\!\ast$ } + { 3 } { $\ast\!\ast\!\ast$ } + } + } + \footnotetext { #2 } + } + } +} + +\newcommand \printcornotes { \seq_use:Nn \g_stm_cor_seq { \par } } + +\NewDocumentCommand \process@marks { } + { + \cs_if_free:cTF { mark@corau\theauthor } + { \ignorespaces } + { \str_set:Nx \l_tmpa_str { \use:c{ mark@corau\theauthor } } + \int_case:nn { \l_tmpa_str } + { + { 1 } { \sep$\ast$ } + { 2 } { \sep$\ast\ast$ } + { 3 } { \sep$\ast\!\ast\!\ast$ } + } + \tex_def:D \sep{\unskip,} + } + \cs_if_free:cTF { mark@fnau\theauthor } + { \ignorespaces } + { \sep\use:c { mark@fnau\theauthor } + \tex_def:D \sep{\unskip,} + } + } + + +% +% Author macros +% +\seq_new:c { g_stm_au0_seq } +\seq_new:c { g_stm_clau0_seq } +\int_new:N \g_stm_au_int +\int_new:N \g_stm_aau_int + +\NewDocumentCommand \ResetMarks { } + { + \keys_set:nn { stm / author } + { + auid = {} , + bioid = {} , + alt = {} , + style = { normal } , + prefix = {} , + suffix = {} , + degree = {} , + role = {} , + orcid = {} , + collab = { false } , + type = { author } , + anon = { false } , + deceased = { false } , + twitter = {} , + facebook = {} , + linkedin = {} , + plus = {} , + gplus = {} , + } + \tex_gdef:D \sep{} + \tex_gdef:D \stm@corref{} + \tex_gdef:D \@fnmark {} + } + + +\int_new:N \l_autype_int +\keys_define:nn { stm / author } + { + auid .tl_set:N = \l_stm_au_id_tl , + bioid .tl_set:N = \l_stm_au_bioid_tl , + alt .tl_set:N = \l_stm_au_alt_tl , + style .tl_set:N = \l_stm_au_style_tl , + prefix .tl_set:N = \l_stm_au_prefix_tl , + suffix .tl_set:N = \l_stm_au_suffix_tl , + degree .tl_set:N = \l_stm_au_degree_tl , + role .tl_set:N = \l_stm_au_role_tl , + orcid .tl_set:N = \l_stm_au_orcid_tl , + collab .bool_set:N = \l_stm_au_collab_bool , + type .multichoice:, + type/author .code:n = { \int_set:Nn \l_autype_int { 0 } }, + type/editor .code:n = { \int_set:Nn \l_autype_int { 1 } }, + type/collab .code:n = { \int_set:Nn \l_autype_int { 2 } }, + type/anon .code:n = { \int_set:Nn \l_autype_int { 3 } }, +% type/collab .bool_set:N = \l_stm_au_collab_bool , +% type/anon .bool_set:N = \l_stm_au_anon_bool , + anon .bool_set:N = \l_stm_au_anon_bool , + deceased .bool_set:N = \l_stm_au_deceased_bool , + twitter .tl_set:N = \l_stm_au_twitter_tl , + facebook .tl_set:N = \l_stm_au_facebook_tl , + linkedin .tl_set:N = \l_stm_au_linkedin_tl , + plus .tl_set:N = \l_stm_au_gplus_tl , + gplus .tl_set:N = \l_stm_au_gplus_tl , + } + +\keys_set:nn { stm / author } + { + auid = {} , + bioid = {} , + alt = {} , + style = { normal } , + prefix = {} , + suffix = {} , + degree = {} , + role = {} , + orcid = {} , + collab = { false } , + type = { author } , + anon = { false } , + deceased = { false } , + twitter = {} , + facebook = {} , + linkedin = {} , + plus = {} , + gplus = {} , + } + +\keys_define:nn { stm / ausetup } + { + type .choice: , + type / authors .meta:n = + { + size = \large , + shape = \upshape , + weight = \mdseries , + before = \bigskipamount , + after = 0pt , + align = \raggedright , + color = black , + lskip = 0pt , + rskip = 0pt , + } , + type / collaboration .meta:n = + { + size = \Large , + shape = \upshape , + weight = \mdseries , + before = \bigskipamount , + after = 0pt , + align = \raggedright , + color = black , + lskip = 0pt , + rskip = 0pt , + } , + size .tl_set:N = \l_stm_augroup_size_tl , + shape .tl_set:N = \l_stm_augroup_shape_tl , + weight .tl_set:N = \l_stm_augroup_weight_tl , + before .dim_set:N = \l_stm_augroup_before_dim , + after .dim_set:N = \l_stm_augroup_after_dim , + align .tl_set:N = \l_stm_augroup_align_tl , + color .tl_set:N = \l_stm_augroup_color_tl , + lskip .dim_set:N = \l_stm_augroup_lskip_tl , + rskip .dim_set:N = \l_stm_augroup_rskip_tl , + } + +\DeclareDocumentCommand \stmAuthorSetup { m } + { \keys_set:nn { stm / ausetup } { #1 } } +\DeclareDocumentCommand \stmausetup { m } + { \tl_set:Nn \l_stm_au_setup_tl + { \keys_set:nn { stm / ausetup } { #1 } } + } +\DeclareDocumentCommand \stmclbsetup { m } + { \tl_set:Nn \l_stm_clb_setup_tl + { \keys_set:nn { stm / ausetup } { #1 } } + } + +\stmausetup { } +\stmclbsetup { } + +\seq_new:N \g_stm_maltese_seq +\seq_new:N \g_stm_facebook_seq +\seq_new:N \g_stm_twitter_seq +\seq_new:N \g_stm_gplus_seq +\seq_new:N \g_stm_linkedin_seq +\bool_new:N \g_stm_nologo_bool +\bool_gset_false:N \g_stm_nologo_bool + +\NewDocumentCommand \twitterauthor { m m } + { + \seq_gput_right:Nn \g_stm_twitter_seq + { + \parsename { #2 } + \url{https://twitter.com/\tl_to_str:n{#1}}\space(\eadauthor) + } + } +\NewDocumentCommand \facebookauthor { m m } + { + \seq_gput_right:Nn \g_stm_facebook_seq + { + \parsename { #2 } + \url{https://www.facebook.com/\tl_to_str:n{#1}}\space(\eadauthor) % + } + } +\NewDocumentCommand \gplusauthor { m m } + { + \seq_gput_right:Nn \g_stm_gplus_seq + { + \parsename { #2 } + \url{https://plus.google.com/\tl_to_str:n{#1}}\space(\eadauthor)% + } + } +\NewDocumentCommand \linkedinauthor { m m } + { + \seq_gput_right:Nn \g_stm_linkedin_seq + { + \parsename { #2 } + \url{https://www.linkedin.com/profile/view?id=\tl_to_str:n{#1}}% + \space(\eadauthor) + } + } + +\NewDocumentCommand \printmaltese { } + { + \seq_use:Nn { \g_stm_maltese_seq } { } + } +\NewDocumentCommand \printfacebook { } + { + \seq_if_empty:NTF \g_stm_facebook_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Facebook:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-facebook.jpeg}\c_space_token } + \seq_use:Nn \g_stm_facebook_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printtwitter { } + { + \seq_if_empty:NTF \g_stm_twitter_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Twitter:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-twitter.jpeg}\c_space_token } + \seq_use:Nn \g_stm_twitter_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printgplus { } + { + \seq_if_empty:NTF \g_stm_gplus_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Google+:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-gplus.jpeg}\c_space_token } + \seq_use:Nn \g_stm_gplus_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printlinkedin { } + { + \seq_if_empty:NTF \g_stm_linkedin_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { LinkedIn:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-linkedin.jpeg}\c_space_token } + \seq_use:Nn \g_stm_linkedin_seq {,\c_space_token } + } + } + } + +\seq_new:N \g_stm_prelimsau_seq + +\csxdef{infoauthors}{} +\cs_new:Nn \no_break_space: { \nobreak{~} \penalty 10000 } +\RenewDocumentCommand \author { O{} m O{} } + { + \ResetMarks + \tl_if_blank:nTF { #3 } { } + { \keys_set:nn { stm / author } { #3 } } +% + \int_gincr:N \g_stm_au_int + \tex_gdef:D \theau@ { \int_use:N \g_stm_au_int } +% + \seq_gput_right:Nn \g_stm_prelimsau_seq { #2 } + \bool_if:NTF \l_stm_au_collab_bool + { \seq_gput_right:cn { g_stm_clau\int_use:N \g_stm_augr_int _seq } } + { \seq_gput_right:cn { g_stm_au\int_use:N \g_stm_augr_int _seq } } + { + \int_gincr:N \g_stm_aau_int + \tex_gdef:D \theauthor {\int_use:N \g_stm_aau_int } + \keys_set:nn { stm /author } { #3 } + \tl_if_head_eq_catcode:nNTF { #1 } a + { \processAffRef { #1 } } + { \processAffNum { #1 } } + \tl_if_empty:NF \l_stm_au_prefix + { \l_stm_au_prefix_tl \c_space_token } + \str_if_eq:VnTF \l_stm_au_style_tl { chinese } + { %\iow_term:n {STYLE~T=\l_stm_au_style_tl........} + \invparsename { #2 } + \textcolor{\l_stm_augroup_color_tl}{\surname} + \no_break_space: + \textcolor{\l_stm_augroup_color_tl !50}{\firstname} + } + { %\iow_term:n {STYLE~F=\l_stm_au_style_tl........} + \parsename { #2 } + \textcolor{\l_stm_augroup_color_tl !50}{\firstname} + \no_break_space: + \textcolor{\l_stm_augroup_color_tl}{\surname} + } + \tl_if_empty:NF \l_stm_au_suffix_tl + { \c_space_token \l_stm_au_suffix_tl } + \unskip + \textsuperscript + { + \tl_if_blank:nTF { #1 } + { \tex_def:D \sep{} } + { {\itshape\listAff} \tex_def:D \sep{\unskip,} } + \process@marks + \bool_if:NT \l_stm_au_deceased_bool + { \sep \maltese + \tex_def:D \sep { \unksip, } + } + } + \tl_if_empty:NF \l_stm_au_degree_tl + { ,\c_space_token \l_stm_au_degree_tl } + \tl_if_empty:NF \l_stm_au_role_tl + { \c_space_token (\l_stm_au_role_tl) } +% + \ResetMarks + } +% + \bool_if:NT \l_stm_au_deceased_bool + { + \seq_gput_right:Nn \g_stm_maltese_seq + { + \tex_def:D \thefootnote { \maltese } + \footnotetext{Deceased~author.} + } + } +% various social media + \tl_if_empty:NTF \l_stm_au_facebook_tl { } + { + \wrAux { \token_to_str:N \facebookauthor + { \l_stm_au_facebook_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_twitter_tl + { + \wrAux { \token_to_str:N \twitterauthor + { \l_stm_au_twitter_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_gplus_tl + { + \wrAux { \token_to_str:N \gplusauthor + { \l_stm_au_gplus_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_linkedin_tl + { + \wrAux { \token_to_str:N \linkedinauthor + { \l_stm_au_linkedin_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_orcid_tl + { + \wrAux { \token_to_str:N \orcidauthor + { \l_stm_au_orcid_tl } { \exp_not:n {#2} } } + } +% + \@eadauthor={#2} + \pdfstringdef\__info_au: { #2 } + \int_compare:nNnTF { \theau@ } < { 4 } + { \xappto \infoauthors { \__info_au: , ~ } } + { + \int_compare:nNnTF { \theau@ } = { 4 } + { \xappto \infoauthors { et~al. } } + { } + } + } + +\NewDocumentCommand \stmauthors { } + { + \group_begin: + \stmAuthorSetup { type = authors } + \l_stm_au_setup_tl + \par \vskip\l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \bool_if:NTF \g_stm_augr_bool + { \seq_use:Nn \g_stm_augr_seq { \par } } + { + \seq_use:cnnn { g_stm_au\int_use:N\g_stm_augr_int _seq } + { ,~ } { ,~ } { ~and~ } + } + \par\vskip\l_stm_augroup_after_dim + \group_end: + } + +\seq_new:c { g_stm_collab0_seq } +\bool_new:N \g_stm_in_clau_bool + +\NewDocumentCommand \stmcollab { } + { + \bool_if:NTF \g_stm_augr_bool + { } + { + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cn {g_stm_collab\int_use:N \g_stm_aaugr_int _seq} { } + \seq_use:cnnn {g_stm_clau\int_use:N \g_stm_aaugr_int _seq} + { ~and~ } { ,~ } { ~and~ } + \par \vskip \l_stm_augroup_after_dim + \group_end: + } + } + +\newenvironment{collaboration}[1][] + { + \seq_gput_right:cn {g_stm_collab\int_use:N \g_stm_augr_int _seq} + { \textit{Collaboration:~} #1 \par \smallskip } + } + { } + +\NewDocumentCommand \dept { m } { #1 } +\NewDocumentCommand \divn { m } { #1 } +\NewDocumentCommand \aline { m } { #1 } +\NewDocumentCommand \city { m } { #1 } +\NewDocumentCommand \cnty { m } { #1 } +\NewDocumentCommand \phone { m } { #1 } +\NewDocumentCommand \fax { m } { #1 } +\NewDocumentCommand \aurl { m } { #1 } + +\def\ca_affitem_postskip{\mbox{~}\unskip\ignorespaces} +%%Author Address +\DeclareDocumentCommand \ca_organization { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_postal_code { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_aff_city { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_address_line { O{,}m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_state { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_country { O{ } m } + { +% #2 #1 + \csgappto { ca_affiliation_values } { #2 #1 } + } + +\DeclareDocumentCommand \ca_stm_organization { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_postal_code { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_aff_city { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_aff_address_line { O{,}m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_state { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_country { O{ } m } + { + #2 #1 + } + +\keys_define:nn { stm / affiliation } + { + op .tl_set_x:N = \l_organization_punc_tl, + oraganizationsep .tl_set_x:N = \l_organization_punc_tl, + ap .tl_set_x:N = \l_address_line_punc_tl, + addresslinesep .tl_set_x:N = \l_address_line_punc_tl, + cp .tl_set_x:N = \l_city_punc_tl, + citysep .tl_set_x:N = \l_city_punc_tl, + pp .tl_set_x:N = \l_postal_code_punc_tl, + postcodesep .tl_set_x:N = \l_postal_code_punc_tl, + sp .tl_set_x:N = \l_state_punc_tl, + statesep .tl_set_x:N = \l_state_punc_tl, + o .code:n = { \ca_organization[\l_organization_punc_tl]{#1} }, + organization .code:n = { \ca_organization[\l_organization_punc_tl]{#1} }, + a .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} }, + addressline .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} }, + c .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} }, + city .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} }, + p .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} }, + postcode .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} }, + s .code:n = { \ca_state[\l_state_punc_tl]{#1} }, + state .code:n = { \ca_state[\l_state_punc_tl]{#1} }, + orp .tl_set_x:N = \l_organization_punc_tl, + adp .tl_set_x:N = \l_address_line_punc_tl, + cip .tl_set_x:N = \l_city_punc_tl, + pcp .tl_set_x:N = \l_postal_code_punc_tl, + stp .tl_set_x:N = \l_state_punc_tl, + cyp .tl_set_x:N = \l_country_punc_tl, + or .code:n = { \ca_organization[\l_organization_punc_tl]{#1} }, + ad .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} }, + ci .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} }, + pc .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} }, + st .code:n = { \ca_state[\l_state_punc_tl]{#1} }, + cy .code:n = { \ca_country[\l_country_punc_tl]{#1} }, + country .code:n = { \ca_country[\l_country_punc_tl]{#1} }, + unknown .code:n = { + \ifstrempty { #1 } { + \csxappto { ca_affiliation_values } + { {\l_keys_key_tl}~ } + } { + \csxappto { ca_affiliation_values } + { {#1}~ } + } + } + } + +\cs_set:Npn \__reset_affiliation: +{ + \tl_gset:Nn \l_organization_punc_tl { , } + \tl_gset:Nn \l_address_line_punc_tl { , } + \tl_gset:Nn \l_city_punc_tl { , } + \tl_gset:Nn \l_postal_code_punc_tl { , } + \tl_gset:Nn \l_state_punc_tl { , } + \tl_gset:Nn \l_country_punc_tl { } +} + +\seq_new:c { g_stm_aff0_seq } +\int_new:N \g_stm_aff_int +\tl_new:N \l_addrtype_tl + +\keys_define:nn { stm / address } + { + foot .bool_gset:N = \g_stm_addr_foot_bool , + name .tl_set:N = \l_stm_addr_name_tl , + type .multichoice: , + type/alt .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { Alternate~address } } , + type/addl .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { Additional~address } } , + type/regular .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { } } , + type/custom .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { \l_stm_addr_name_tl } } , + } +\DeclareDocumentCommand \stmAddrSetup { m } + { \keys_set:nn { stm / address } { #1 } } + +\keys_set:nn { stm / address } +{ + foot = { false } , + type = { regular } , + name = { Alternate~address } , +} + +\cs_new:Nn \__reset_addr: +{ + \bool_gset_false:N \g_stm_addr_foot_bool + \tl_set:Nn \l_stm_addr_type_tl { } + \tl_set:Nn \l_stm_addr_name_tl { Alternate~address } +} + +\seq_new:N \g_stm_aff_foot_seq + +\NewDocumentCommand \printaddrinfoot { } + { + { \seq_use:Nn \g_stm_aff_foot_seq { \par } } + } + +\NewDocumentCommand \address { O{} m O{} } + { + \__reset_addr: + \keys_set:nn { stm / address } { #3 } + \bool_if:NTF \g_stm_addr_foot_bool + { \__foot_address:nnn [#1]{#2}[#3] } + { + \seq_gput_right:cn { g_stm_aff\int_use:N \g_stm_augr_int _seq } + { \tl_if_blank:nTF { #1 } + { + \tex_xdef:D \thefootnote{} + { #2 } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \int_gincr:N \g_stm_aff_int + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \stmLabel {#1} + \textsuperscript{\itshape\@currentlabel} #2 + } + { + \int_gset:Nn \g_stm_aff_int { #1 } + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \textsuperscript{\itshape\@currentlabel} #2 + } + } + } + } + } + +\int_new:N \g_stm_aff_ext_int +\int_new:N \g_stm_aff_int_int + +\NewDocumentCommand \affiliation { O{} m O{} } + { + \__reset_affiliation: + \csgdef { ca_affiliation_values } { } + \IfNoValueTF { #2 } + { } + { + \keys_set:nn { stm / affiliation } { #2 } + } + \int_gincr:N \g_stm_aff_ext_int + \csxdef{ca_affiliation_\int_use:N \g_stm_aff_ext_int}{\csuse { ca_affiliation_values }} + \__reset_addr: + \keys_set:nn { stm / address } { #3 } + \bool_if:NTF \g_stm_addr_foot_bool + { \__foot_affiliation:nnn [#1]{#2}[#3] } + { + \seq_gput_right:cn { g_stm_aff\int_use:N \g_stm_augr_int _seq } + { \int_gincr:N \g_stm_aff_int_int + \tl_if_blank:nTF { #1 } + { + \tex_xdef:D \thefootnote{} + { \csuse { ca_affiliation_\int_use:N \g_stm_aff_int_int } } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \int_gincr:N \g_stm_aff_int + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \stmLabel {#1} + \textsuperscript{\itshape\@currentlabel} { \csuse { ca_affiliation_\int_use:N \g_stm_aff_int_int } } + } + { + \int_gset:Nn \g_stm_aff_int { #1 } + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \textsuperscript{\itshape\@currentlabel} { \csuse { ca_affiliation_\int_use:N \g_stm_aff_int_int } } + } + } + } + } +} + +\cs_new:Npn \__foot_address:nnn [#1]#2[#3] +{ + \keys_set:nn { stm / address } { #3 } + \seq_gput_right:cn { g_stm_aff_foot_seq } + { + \tl_if_empty:nTF { #1 } + { + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { + \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token #2 } + } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + % + { + \tex_def:D \thefootnote{\itshape\@currentlabel} + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: \c_space_token #2} } + } + { + \tex_def:D \thefootnote { \itshape\int_to_alph:n { #1 } } + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token #2 } } + } + } + } +} + +\int_new:N \g_stm_fn_aff_ext_int +\int_new:N \g_stm_fn_aff_int_int +\cs_new:Npn \__foot_affiliation:nnn [#1]#2[#3] +{ + \__reset_affiliation: + \csgdef { ca_affiliation_values } { } + \IfNoValueTF { #2 } + { } + { + \keys_set:nn { stm / affiliation } { #2 } + } + \int_gincr:N \g_stm_aff_ext_int + \csxdef{ca_affiliation_\int_use:N \g_stm_fn_aff_ext_int}{\csuse { ca_affiliation_values }} + \keys_set:nn { stm / address } { #3 } + \seq_gput_right:cn { g_stm_aff_foot_seq } + { + \int_gincr:N \g_stm_aff_int_int + \tl_if_empty:nTF { #1 } + { + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{\csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + { + \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token \csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int } } + } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + % + { + \tex_def:D \thefootnote{\itshape\@currentlabel} + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{\csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: \c_space_token + \csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + } + { + \tex_def:D \thefootnote { \itshape\int_to_alph:n { #1 } } + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{\csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token \csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int } } } + } + } + } +} + + +\keys_define:nn { stm / affsetup } + { + type .choice: , + type / normal .code:n = + { \tl_set:Nn \l_stm_aff_type_tl { 0 } } , + type / nonum .code:n = + { \tl_set:Nn \l_stm_aff_type_tl { 1 } } , + + size .tl_set:N = \l_stm_aff_size_tl , + shape .tl_set:N = \l_stm_aff_shape_tl , + weight .tl_set:N = \l_stm_aff_weight_tl , + before .dim_set:N = \l_stm_aff_before_dim , + after .dim_set:N = \l_stm_aff_after_dim , + align .tl_set:N = \l_stm_aff_align_tl , + color .tl_set:N = \l_stm_aff_color_tl , + lskip .dim_set:N = \l_stm_aff_lskip_dim , + rskip .dim_set:N = \l_stm_aff_rskip_dim , + } + +\DeclareDocumentCommand \stmAffSetup { m } + { \keys_set:nn { stm / affsetup } { #1 } } +\DeclareDocumentCommand \stmaffsetup { m } + { \tl_set:Nn \l_stm_aff_setup_tl + { \keys_set:nn { stm / affsetup } { #1 } } + } +\stmaffsetup { + size = \footnotesize, + shape = \itshape, + color = black, + before = 0pt, + weight = \mdseries, + align = \raggedright, + } + +\NewDocumentCommand \stmaddress { } + { + \bool_if:NTF \g_stm_augr_bool + { } + { + \group_begin: + \stmAffSetup { type = normal } + \l_stm_aff_setup_tl + \par \vskip\l_stm_aff_before_dim + \l_stm_aff_align_tl + \l_stm_aff_size_tl + \l_stm_aff_shape_tl + \l_stm_aff_weight_tl + \color{ \l_stm_aff_color_tl } + \seq_use:cn { g_stm_aff\int_use:N \g_stm_aaugr_int _seq } + { \par\vskip2pt } + \par\vskip\l_stm_aff_after_dim + \group_end: + } + } + +\int_new:N \g_stm_augr_int +\seq_new:N \g_stm_augr_seq +\int_new:N \g_stm_aaugr_int +\bool_new:N \g_stm_augr_bool + +\NewDocumentEnvironment { augroup } { } + { + \bool_gset_true:N \g_stm_augr_bool + \int_gincr:N \g_stm_augr_int + \seq_new:c {g_stm_au\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_aff\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_collab\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_clau\int_use:N \g_stm_augr_int _seq} +% \iow_term:n { AUGR:~\int_use:N \g_stm_augr_int ... } + } + { + \seq_gput_right:Nn \g_stm_augr_seq + { + \int_gincr:N \g_stm_aaugr_int + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cnnn { g_stm_au\int_use:N \g_stm_aaugr_int _seq } + { ~and~ } { ,~ } { ~and~ } + \par \vskip \l_stm_augroup_after_dim + \group_end: +% + \group_begin: + \stmAffSetup { type = normal } + \l_stm_aff_setup_tl + \par \vskip\l_stm_aff_before_dim + \l_stm_aff_align_tl + \l_stm_aff_size_tl + \l_stm_aff_shape_tl + \l_stm_aff_weight_tl + \color{ \l_stm_aff_color_tl } + \seq_use:cn { g_stm_aff\int_use:N \g_stm_aaugr_int _seq } + { \par \smallskip } + \par\vskip\l_stm_aff_after_dim +% \iow_term:n { AAUGR:~\int_use:N \g_stm_aaugr_int ... } + \group_end: +% + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cn {g_stm_collab\int_use:N \g_stm_aaugr_int _seq} { } + \seq_use:cnnn {g_stm_clau\int_use:N \g_stm_aaugr_int _seq} + { ~and~ } { ,~ } { ~and~ } + \par\vskip \l_stm_augroup_after_dim + \group_end: + } + } + +% +% Abstract +% +\RequirePackage{moreverb} + +\tex_gdef:D \abstractname { A\,B\,S\,T\,R\,A\,C\,T } +\tl_new:N \l_stm_abs_title_tl +\box_new:N \g_stm_abs_box + +\NewDocumentEnvironment { Abstract } { o } +{ +% \global\setbox \g_stm_abs_box = \vtop \bgroup +% \hsize = .65 \textwidth \parindent \z@ + \group_begin: + \IfNoValueTF { #1 } { } + { \tex_gdef:D \abstractname { #1 } } + \parindent \z@ + \box_if_empty:NTF \g_stm_key_box + { \leftskip = .35 \textwidth } + { + \dim_gset:Nn \l_tmpa_dim { \box_ht:N \g_stm_key_box } + \dim_gadd:Nn \l_tmpa_dim { \box_dp:N \g_stm_key_box } + \leftskip .35\textwidth + \hspace*{-.35 \textwidth } + \noindent\hbox_to_wd:nn { \z@ } { \box \g_stm_key_box } + \skip_vertical:n { - \l_tmpa_dim } + } + \noindent \abstractname \par + \skip_vertical:n { -4pt} + \noindent \rule{.65\textwidth}{.2pt}\par \footnotesize + \ignorespaces \everypar { \parindent=1.5em } +} +{ \par \group_end: } + +\NewDocumentEnvironment { PrelimsAbstract } { O{} } + {\parindent=0pt + { \fontsize{14pt}{16pt}\selectfont #1 }\par + \vskip12pt + { \fontsize{12pt}{14pt}\bfseries\selectfont\casprelimstitle } \par + \vskip6pt + \ifnum\theblind>0\relax + \vspace*{\the\baselineskip} + \else + \seq_use:Nn \g_stm_prelimsau_seq { ,~ } + \fi + \vskip12pt + \par + } + {} + +\RenewDocumentEnvironment { abstract } { o } +{ + \IfNoValueTF { #1 } { } + { \tex_gdef:D \abstracttitle { #1 } } + \verbatimwrite{\jobname.abs} +} +{ \endverbatimwrite } + +\newbox\casgrabsbox +\newbox\casauhlbox +\newbool { usecasgrabsbox } +\newbool { usecashlsbox } + +\DeclareDocumentEnvironment { graphicalabstract } { O{Graphical~Abstract} } +{ + \global \booltrue { usecasgrabsbox } + \global\setbox\casgrabsbox=\vbox\bgroup + \begin{PrelimsAbstract}[#1] + \noindent \ignorespaces +} +{ + \end{PrelimsAbstract} + \egroup +} + +\DeclareDocumentEnvironment { highlights } { O{Highlights} } +{ + \global \booltrue { usecashlsbox } + \global\setbox\casauhlbox=\vbox\bgroup + \begin{PrelimsAbstract}[#1] + \noindent \ignorespaces + \begin{itemize} +} +{ + \end{itemize} + \end{PrelimsAbstract} + \egroup +} + + +\NewDocumentCommand \dashrule { O{.4pt} m m } + { + \color{black!50} + \skip_vertical:n { #2 } + \noindent \rule { \linewidth } { #1} + \normalcolor \skip_vertical:n { #3 } + } + +\NewDocumentCommand \keywordtitle { } { Keywords } +\NewDocumentCommand \keywordtitlesep { } {:\c_space_token } +\box_new:N \g_stm_key_box + +\NewDocumentCommand \MSC { O{} m } + { + \par\noindent \textit { #1\c_space_token MSC:\c_space_token } #2 + } +\NewDocumentCommand \JEL { m } + { + \par\noindent \textit { JEL:\c_space_token } #1 + } +\NewDocumentCommand \PACS { m } + { + \par\noindent \textit { PACS:\c_space_token } #1 + } + +\NewDocumentEnvironment { keywords } { O{ Keywords } } + { + \tex_global:D \tex_setbox:D \g_stm_key_box = \vtop \bgroup + \hsize=.25 \textwidth + \cs_new:Nn \sep: { \par } + \cs_set_eq:NN \sep \sep: + \parindent \z@ + A\,R\,T\,I\,C\,L\,E\ \ I\,N\,F\,O \par \skip_vertical:n { -3pt } + \rule{.25 \textwidth}{.2pt}\par\footnotesize + \noindent \textit { #1 }: \par + } + { \egroup } + + +% +% Print all footnotes in the title page +% + +\bool_new:N \g_stm_longmktitle_bool +\int_new:N \g_stm_jtype_int +\int_new:N \g_stm_blind_int + +\NewDocumentCommand \printFirstPageNotes { } + { + \bool_if:NTF \g_stm_longmktitle_bool + { \tex_let:D \columnwidth = \textwidth } + { } + \int_compare:nTF { \g_stm_jtype_int > 5 } + { \stmaddress } + { } + \printtnotes + \printnonumnotes + \bool_if:NTF \g_stm_blind_bool + { } + { + \printcornotes + \printmaltese + \printaddrinfoot + \printemails + \printurls + \printorcid + \printfacebook + \printtwitter + \printgplus + \printlinkedin + \printfnotes + } + \bool_if:NTF \g_stm_longmktitle_bool + { + \if@twocolumn + \tex_let:D \columnwidth = \Columnwidth \fi + } + { } + \normalcolor + } + +% +% Date History +% +\tl_new:N \g_stm_recd_tl +\tl_new:N \g_stm_accd_tl +\tl_new:N \g_stm_revd_tl +\tl_new:N \g_stm_pub_online_tl +\tl_new:N \g_stm_pub_print_tl + +\cs_new:Npn \date_parse:n #1 { \date_parse_aux:w #1 \q_stop } +\cs_new:Npn \date_parse_aux:w #1 / #2 / #3 \q_stop +{ } + +\NewDocumentCommand \received { m } + { \tl_gput_right:Nn \g_stm_recd_tl { #1 } } +\NewDocumentCommand \accepted { m } + { \tl_gput_right:Nn \g_stm_accd_tl { #1 } } +\NewDocumentCommand \revised { m } + { \tl_gput_right:Nn \g_stm_revd_tl { #1 } } +\NewDocumentCommand \published { O{} m } +{ + \tl_if_eq:nnTF { #1 } { online } + { \tl_if_gput_right:Nn \g_stm_pub_online_tl { #2 } } + { \tl_if_gput_right:Nn \g_stm_pub_print_tl { #2 } } +} + +% +% Verse/Recto +% +\tl_new:N \l_stm_verso_tl +\tl_new:N \l_stm_recto_tl + +\NewDocumentCommand \verso { m } +{ \tl_set:Nn \l_stm_verso_tl { #1 } } +\NewDocumentCommand \recto { m } +{ \tl_set:Nn \l_stm_recto_tl { #1 } } + +% +% Maketitle +% + +\newcounter{au} +\newcounter{cnote} +\newcounter{tnote} +\newcounter{fnote} +\newcounter{aff} + +\cs_new:Nn \__reset_title_counters: +{ + \setcounter{cnote}{0} + \setcounter{fnote}{0} + \setcounter{tnote}{0} + \setcounter{footnote}{0} +} + +\keys_define:nn { stm / mktitle } +{ + blind .bool_gset:N = \g_stm_blind_bool , + footer .multichoice:, + footer/default .tl_gset:N = \g_stm_footer_default_tl , + footer/custom .tl_gset:N = \g_stm_footer_custom_tl , + longtitle .bool_gset:N = \g_stm_longtitle_bool , + longabstract .bool_gset:N = \g_stm_longtitle_bool , + breakafter .clist_gset:N = \g_stm_breakafter_clist , + nologo .bool_gset:N = \g_stm_nologo_bool , +} + +\bool_new:N \g_stm_breakafter_title_bool +\bool_new:N \g_stm_breakafter_auaff_bool +\bool_new:N \g_stm_breakafter_abstract_bool + +\NewDocumentCommand \processbreakafter { } +{ + \clist_if_empty:NTF \g_stm_breakafter_clist { } + { + \clist_map_inline:Nn \g_stm_breakafter_clist + { \bool_gset_true:c { g_stm_breakafter_##1_bool } } + } +} + +\NewDocumentCommand \pprintMaketitle { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \processbreakafter + \clearpage + \__reset_title_counters: + \tex_def:D \baselinestretch { 1 } + \printFirstPageNotes + \thispagestyle{pprintTitle}% + \group_begin: + \@title + \group_end: + \bool_if:NTF \g_stm_breakafter_title_bool + { \newpage } { } + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { + \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par \vskip36pt + \group_end: + \bool_if:NTF \g_stm_breakafter_auaff_bool + { \newpage } { } + } + % + \printabsbox + \printkeybox + \bool_if:NTF \g_stm_breakafter_abstract_bool + { \newpage } { } + % + \setcounter{footnote}{\c@fnote} + \tex_gdef:D \thefootnote { \arabic{footnote} } + \tex_def:D \baselinestretch { \@blstr } + \normalfont \normalsize +} + +\NewDocumentCommand \MaketitleBox { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \processbreakafter + \tex_def:D \baselinestretch{1} + \group_begin: + \@title + \group_end: + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { + \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par + \group_end: + \bool_if:NTF \g_stm_breakafter_auaff_bool + { \newpage } { } + } + % \printFirstPageNotes + % + \dashrule{0pt}{3pt} + \begin{Abstract} + \noindent \ignorespaces + \file_if_exist:nT { \jobname.abs } { \file_input:n { \jobname.abs } } + \end{Abstract} + \dashrule{6pt}{3pt} + \bool_if:NTF \g_stm_breakafter_abstract_bool + { \newpage } { } +} + +\box_new:N \g_stm_notes_box +\box_new:N \g_stm_front_box +\cs_set:Npn \__fn_text:n #1 +{ \group_begin:\vbox_top:n { \footnotesize #1 } \group_end:\par} + +\NewDocumentCommand \LongMaketitleBox { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \vbox_gset:Nn \g_stm_front_box + { + \tex_def:D \baselinestretch{1} + \group_begin: + \@title + \group_end: + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par + \group_end: + } + % + \dashrule{0pt}{3pt} + \begin{Abstract} + \noindent \ignorespaces + \file_if_exist:nT { \jobname.abs } { \file_input:n { \jobname.abs } } + \end{Abstract} + \dashrule{3pt}{3pt} + } + \vbox_gset:Nn \g_stm_notes_box + { \cs_set_eq:NN \footnotetext \__fn_text:n \printFirstPageNotes } + \dim_gset:Nn \g_tmpb_dim { \box_ht:N \g_stm_notes_box } + % \iow_term:x { ...~[ht: \dim_use:N \g_tmpb_dim ] } + \dim_gadd:Nn \g_tmpb_dim { \box_dp:N \g_stm_notes_box } + % \iow_term:x { ...~[ht+dp: \dim_use:N \g_tmpb_dim ] } + \ifbool{sc}{\dim_gadd:Nn \g_tmpb_dim { 12pt } } { } + +} + +\NewDocumentCommand \ProcessLongTitleBox { } +{ + % \vbox_gset:Nn \g_stm_notes_box + % { \cs_set_eq:NN \footnotetext \__fn_text:n \printFirstPageNotes } + % \dim_gset:Nn \g_tmpb_dim { \box_ht:N \g_stm_notes_box } + % % \iow_term:x { ...~[ht: \dim_use:N \g_tmpb_dim ] } + % \dim_gadd:Nn \g_tmpb_dim { \box_dp:N \g_stm_notes_box } + % % \iow_term:x { ...~[ht+dp: \dim_use:N \g_tmpb_dim ] } + % + \dim_gset:Nn \g_tmpa_dim { \textheight } +% \vbox_unpack:N \g_stm_notes_box + % \iow_term:x { ...~[tmpa:~ \dim_use:N \g_tmpa_dim ] } + % \dim_gsub:Nn \g_tmpa_dim { \box_ht:N \g_stm_notes_box } + % \iow_term:x { ...~[tmpa-noteht:~ \dim_use:N \g_tmpa_dim ] } + % \dim_gsub:Nn \g_tmpa_dim { \box_dp:N \g_stm_notes_box } + % \iow_term:x { ...~[tmpa-notedp:~ \dim_use:N \g_tmpa_dim ] } + \dim_gsub:Nn \g_tmpa_dim { \g_tmpb_dim } + \vbox_set_split_to_ht:NNn \g_tmpb_box \g_stm_front_box { \g_tmpa_dim } + \noindent \vbox_unpack_clear:N \g_tmpb_box + \printFirstPageNotes + \dim_gzero:N \g_tmpa_dim + \dim_gset:Nn \g_tmpa_dim { \box_ht:N \g_stm_front_box } + % \iow_term:x { ...~[tmpa-ht:~ \dim_use:N \g_tmpa_dim ] } + \dim_gadd:Nn \g_tmpa_dim { \box_dp:N \g_stm_front_box } + % \iow_term:x { ...~[tmpa-ht+dp:~ \dim_use:N \g_tmpa_dim ~+~\the\textheight] } + \dim_compare:nNnTF { \dim_use:N \g_tmpa_dim } > { \the\textheight } + { + \vbox_set_split_to_ht:NNn \g_tmpb_box \g_stm_front_box { \textheight } + \vbox_unpack_clear:N \g_tmpb_box + \ifbool{dc} + { \twocolumn[{\vbox_unpack_clear:N \g_stm_front_box}] } + { \vbox_unpack_clear:N \g_stm_front_box } + } + { + \ifbool{dc} + { \twocolumn[{\vbox_unpack_clear:N \g_stm_front_box}] } + { \vbox_unpack_clear:N \g_stm_front_box } + } + \normalcolor \normalfont +} +\ExplSyntaxOff + +% +% Headings +% +\def\@seccntDot{.} +\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em} + +\newdimen\paraindent \paraindent=\parindent +\newdimen\subparaindent \subparaindent=\parindent +\def\ssssparaindent{} +\def\sectionfont{\rmfamily\fontsize{12pt}{14pt}% + \bfseries} +\def\ssectionfont{\rmfamily\fontsize{11pt}{13pt}% + \bfseries\selectfont} +\def\sssectionfont{\rmfamily\fontsize{10.5pt}{12pt}% + \fontseries{b}\fontshape{it}\selectfont} +\def\ssssectionfont{\rmfamily\fontsize{11pt}{10pt}\itshape\selectfont} +\def\sssssectionfont{\rmfamily\fontsize{11pt}{10pt}\selectfont}% + +\AtBeginDocument{\global\@afterindentfalse} + +\renewcommand\section{\@startsection{section}{1}{\z@}% + {15pt \@plus 3\p@ \@minus 3\p@}% + {4\p@}% + {%\let\@hangfrom\relax + \sectionfont\raggedright\hst[13pt]}} + +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {10pt \@plus 3\p@ \@minus 2\p@}% + {.1\p@}% + {%\let\@hangfrom\relax + \ssectionfont\raggedright }} + +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {10pt \@plus 1\p@ \@minus .3\p@}% + {.1\p@}% + {%\let\@hangfrom\relax + \sssectionfont\raggedright}} + +\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}% + {10pt \@plus0.01pt \@minus0.01pt}% + {-6pt}% + {\ssssparaindent% + \ssssectionfont\itshape\raggedright}} + +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {0pt \@plus0.1pt \@minus0.1pt}% + {-6pt}% + {\hspace*{\subparaindent} + \sssssectionfont\raggedright}} + +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} + +% +% Sundry lengths +% +\def\xstrut#1#2{\vrule height#1 depth #2 width\z@} +\def\hstrut#1{\vrule height#1 depth \z@ width 0pt} +\def\dstrut#1{\vrule height0pt depth#1 width 0pt} +\def\hst[#1]{\vrule height#1 depth \z@ width \z@} +\def\dst[#1]{\vrule height0pt depth#1 width 0pt} +\def\xst[#1][#2]{\vrule height#1 depth #2 width\z@} + +\def\lastpage{100} + +\AtEndDocument{% +% \clearpage + \immediate\write\@auxout{\string\csxdef{lastpage}{\thepage}} +} + +\ExplSyntaxOn + +% +% pagestyle +% + +\cs_new:Npn \__first_footerline: +{ + \group_begin: + \small + \sffamily + \ifnum\theblind>0\relax + \else + \__short_authors: :~ + \fi + { \rmfamily \itshape Preprint~ submitted ~to ~\journal } + \group_end: +} + +\cs_new:Npn \__first_head: +{ + \parbox[t]{\textwidth} + { + \color{black!20} + \rule{\textwidth}{0pt} + } +} + + +\cs_new:Npn \__first_foot: +{ + \parbox[t]{\textwidth} + { + \rule{\textwidth}{.2pt}\\ + \__first_footerline: \hfill Page~ \thepage {} ~of~ \lastpage } +} + + +\cs_new:Npn \__cas_head: +{ + \parbox{\textwidth} + { + \sffamily\small\centering + \__short_title: + } + } + + +\cs_new:Npn \__cas_foot: +{ + \parbox[t]{\textwidth} + { + \rule{\textwidth}{.2pt}\\ + \sffamily\small + \__first_footerline: + \hfill Page~\thepage {}~of~ \lastpage + } +} + +\newcommand \ps@first + { + \cs_set_eq:NN \@oddhead \__first_head: + \cs_set_eq:NN \@evenhead \__first_head: + \cs_set_eq:NN \@evenfoot \__first_foot: + \cs_set_eq:NN \@oddfoot \__first_foot: + } + + +\newcommand \ps@cas +{ + \cs_set_eq:NN \@oddhead \__cas_head: + \cs_set_eq:NN \@evenhead \__cas_head: + \cs_set_eq:NN \@evenfoot \__cas_foot: + \cs_set_eq:NN \@oddfoot \__cas_foot: +} + +\ps@cas + + +% +% Floats +% + +\def\topfraction{.9} +\def\bottomfraction{.9} +\setcounter{topnumber}{4} +\setcounter{bottomnumber}{3} +\setcounter{totalnumber}{5} +\renewcommand\textfraction{.1} +\renewcommand\floatpagefraction{.9} +\setcounter{dbltopnumber}{2} +\renewcommand\dbltopfraction{.9} +\renewcommand\dblfloatpagefraction{.95} +\newdimen \FullWidth +\ABD{\FullWidth=\textwidth} + +\newcolumntype{L}{@{\extracolsep{\fill}}l} +\newcolumntype{R}{@{\extracolsep{\fill}}r} +\newcolumntype{C}{@{\extracolsep{\fill}}c} + +\cs_gset_eq:NN \thead \toprule +\cs_gset_eq:NN \endthead \midrule +\cs_gset_eq:NN \tabref \ref + +\dim_new:N \l_tbl_width_dim +\dim_set:Nn \l_tbl_width_dim { \linewidth } + +\cs_new:Npn \__make_tbl_caption:nn #1#2 +{ + \l_tbl_align_tl + \skip_vertical:N \l_tbl_abovecap_skip + % \bool_if:NTF \g_tbl_full_bool + % { + % \color{scolor!70}\rule{\FullWidth}{2pt}\normalcolor\\ + % } + % { \color{scolor!70}\rule{\tblwidth}{2pt}\normalcolor\\ } + % \fboxsep=4pt + % \colorbox{white} + {\parbox{ \dimexpr(\l_tbl_width_dim)} + {\rightskip=0pt\sffamily\small\textbf{\color{scolor}#1}\par#2\par\vskip4pt }} + \skip_vertical:N \l_tbl_belowcap_skip +} + +\keys_define:nn { cas / tbl } +{ + width .dim_set:N = \l_tbl_width_dim , + pos .tl_set:N = \l_tbl_pos_tl , + cols .tl_set:N = \l_tbl_cols_tl , + align .tl_set:N = \l_tbl_align_tl, + abovecap .skip_set:N = \l_tbl_abovecap_skip , + belowcap .skip_set:N = \l_tbl_belowcap_skip , + abovetbl .skip_set:N = \l_tbl_abovetbl_skip , + belowtbl .skip_set:N = \l_tbl_belowtbl_skip , + full .bool_gset:N = \g_tbl_full_bool , + unknown .code:n = { + \ifstrempty { #1 } + { + \tl_set:Nn \l_fig_pos_tl { \l_keys_key_tl } + } + { + \l_keys_key_tl=#1 + } + } +} + +\cs_set:Npn \__reset_tbl: +{ + \tl_set:Nx \l_tbl_pos_tl { t } + \tl_set:Nx \l_tbl_cols_tl { 1 } + \tl_set:Nn \l_tbl_align_tl { \centering } + \skip_set:Nn \l_tbl_abovecap_skip { 6pt } + \skip_set:Nn \l_tbl_belowcap_skip { 0pt } + \skip_set:Nn \l_tbl_abovetbl_skip { 6pt } + \skip_set:Nn \l_tbl_belowtbl_skip { 6pt } + +} + +\RenewDocumentEnvironment { table } { O{} } +{ + \__reset_tbl: + \bool_gset_false:N \g_tbl_full_bool + \dim_set:Nn \l_tbl_width_dim { \linewidth } + \keys_set:nn { cas / tbl } { #1 } + \csxdef{fps@table}{\l_tbl_pos_tl} + \csgdef{tblwidth}{\dim_use:N \l_tbl_width_dim} + \cs_set_eq:NN \@makecaption \__make_tbl_caption:nn + \@float{table} + \l_tbl_align_tl + \sffamily\small +} +{ +\end@float +} + + +\RenewDocumentEnvironment { table* } { O{width=\FullWidth} } + { + \__reset_tbl: + \bool_gset_true:N \g_tbl_full_bool + \dim_set:Nn \l_tbl_width_dim { \FullWidth } + \keys_set:nn { cas / tbl } { #1 } + \csxdef{fps@table}{\l_tbl_pos_tl} + \csgdef{tblwidth}{\dim_use:N \l_tbl_width_dim} + \cs_set_eq:NN \@makecaption \__make_tbl_caption:nn + \@dblfloat{table} + \l_tbl_align_tl + \sffamily\small + % \leftskip=-\FullWidth + } + { + \end@dblfloat + } + + +\dim_new:N \l_fig_width_dim +\dim_set:Nn \l_fig_width_dim { \linewidth } + +\newbox\cascaptionbox + +\cs_new:Npn \__make_fig_caption:nn #1#2 +{ + \l_fig_align_tl + \skip_vertical:N \l_fig_abovecap_skip +% \bool_if:NTF \g_fig_full_bool +% { \skip_horizontal:n { -\FullWidth } } { } + \setbox\cascaptionbox=\hbox{% + \sffamily\small\textbf{\color{scolor}#1:}~#2} + \ifdim\the\wd\cascaptionbox<\dim_use:N \l_fig_width_dim\relax + \parbox{ \l_fig_width_dim } + {\unskip\ignorespaces\hfil\sffamily\small + \textbf{\color{scolor}#1:}~#2\hfil\par } + \else + \parbox{ \l_fig_width_dim } + {\rightskip=0pt\unskip\ignorespaces\sffamily + \small\textbf{\color{scolor}#1:}~#2\par } + \fi + \skip_vertical:N \l_fig_belowcap_skip +} + +\keys_define:nn { cas / fig } +{ + width .dim_set:N = \l_fig_width_dim , + pos .tl_set:N = \l_fig_pos_tl , + cols .tl_set:N = \l_fig_cols_tl , + align .tl_set:N = \l_fig_align_tl, + abovecap .skip_set:N = \l_fig_abovecap_skip , + belowcap .skip_set:N = \l_fig_belowcap_skip , + abovefig .skip_set:N = \l_fig_abovefig_skip , + belowfig .skip_set:N = \l_fig_belowfig_skip , + full .bool_gset:N = \g_fig_full_bool , + unknown .code:n = { + \ifstrempty { #1 } + { + \tl_set:Nn \l_fig_pos_tl { \l_keys_key_tl } + } + { + \l_keys_key_tl=#1, + } + } +} + +\cs_set:Npn \__reset_fig: +{ + \tl_set:Nx \l_fig_pos_tl { t } + \tl_set:Nx \l_fig_cols_tl { 1 } + \tl_set:Nn \l_fig_align_tl { \raggedleft } + \skip_set:Nn \l_fig_abovecap_skip { 6pt } + \skip_set:Nn \l_fig_belowcap_skip { 6pt } + \skip_set:Nn \l_fig_abovefig_skip { 6pt } + \skip_set:Nn \l_fig_belowfig_skip { 6pt } + +} + +\RenewDocumentEnvironment { figure } { O{} } + { + \__reset_fig: + \bool_gset_false:N \g_fig_full_bool + \dim_set:Nn \l_fig_width_dim { \linewidth } + \keys_set:nn { cas / fig } { #1 } + \csxdef{fps@figure}{\l_fig_pos_tl} + \csgdef{figwidth}{\dim_use:N \l_fig_width_dim} + \cs_set_eq:NN \@makecaption \__make_fig_caption:nn + \@float{figure} + \l_fig_align_tl + \sffamily\small + } + { + \end@float + } + + +\RenewDocumentEnvironment { figure* } { O{width=\textwidth} } +{ + \__reset_fig: + \bool_gset_true:N \g_fig_full_bool + \dim_set:Nn \l_fig_width_dim { \FullWidth } + \keys_set:nn { cas / fig } { #1 } + \csxdef{fps@figure}{\l_fig_pos_tl} + \csgdef{figwidth}{\dim_use:N \l_fig_width_dim} + \cs_set_eq:NN \@makecaption \__make_fig_caption:nn + \@dblfloat{figure} + \l_fig_align_tl + \sffamily\small +% \leftskip=-\FullWidth +} +{ \end@dblfloat } + +% +% wrapped figure +% +\RequirePackage{wrapfig} + +\dim_new:N \l_wrap_figwidth_dim +\dim_new:N \l_wrap_fighspace_dim +\dim_new:N \l_wrap_figvspace_dim +\dim_new:N \l_wrap_fighcorr_dim +\dim_new:N \l_wrap_figvcorr_dim +\dim_new:N \l_above_bio_dim +\int_new:N \l_wrap_figlcorr_int +\int_new:N \l_wrap_figlines_int +\tl_new:N \l_wrap_figfile_tl + +\NewDocumentCommand \wfigwidth { m } + { \dim_set:Nn \l_wrap_figwidth_dim { #1 } } +\NewDocumentCommand \wfighspace { m } + { \dim_set:Nn \l_wrap_fighspace_dim { #1 } } +\NewDocumentCommand \wfigvspace { m } + { \dim_set:Nn \l_wrap_figvspace_dim { #1 } } +\NewDocumentCommand \wfighcorr { m } + { \dim_set:Nn \l_wrap_fighcorr_dim { #1 } } +\NewDocumentCommand \wfigvcorr { m } + { \dim_set:Nn \l_wrap_figvcorr_dim { #1 } } +\NewDocumentCommand \addfiglines { m } + { \int_set:Nn \l_wrap_figlcorr_int { #1 } } +\NewDocumentCommand \abovebioskip { m } + { \dim_set:Nn \l_above_bio_dim { #1 } } + +\cs_new:Nn \__fig_defaults: + { + \wfigwidth { 25.5mm } + \wfighspace { 0mm } + \wfigvspace { 0mm } + \wfighcorr { 0pt } + \wfigvcorr { -12pt } + \wfigvcorr { 0pt } + \abovebioskip { 12pt } + \tl_set:Nn \l_wrap_figpos_tl { l } + \int_set:Nn \l_wrap_figlines_int { 3 } + \int_set:Nn \l_wrap_figlcorr_int { 1 } + \tl_clear:N \l_wrap_figcap_tl + } + +\__fig_defaults: + +\keys_define:nn { wrap / fig } +{ + width .dim_set:N = \l_wrap_figwidth_dim , + hspace .dim_set:N = \l_wrap_fighspace_dim , + vspace .dim_set:N = \l_wrap_figvspace_dim , + hcorr .dim_set:N = \l_wrap_fighcorr_dim , + vcorr .dim_set:N = \l_wrap_figvcorr_dim , + lcorr .int_set:N = \l_wrap_figlcorr_int , + pos .tl_set:N = \l_wrap_figpos_tl , + lines .int_set:N = \l_wrap_figlines_int , + cap .tl_set:N = \l_wrap_figcap_tl , +} + +\cs_new:Npn \__find_fig_height:n #1 +{ + \box_clear:N \g_tmpa_box + \hbox_gset:Nn \g_tmpa_box + { \includegraphics [ width = \l_wrap_figwidth_dim ] { #1 } } + \dim_zero:N \l_tmpa_dim + \dim_set:Nn \l_tmpa_dim { \box_ht:N \g_tmpa_box } + \dim_add:Nn \l_tmpa_dim { \box_dp:N \g_tmpa_box } + \fp_set:Nn \l_tmpa_fp { \dim_to_fp:n { \l_tmpa_dim } } + \fp_set:Nn \l_tmpb_fp { \dim_to_fp:n { \baselineskip } } +% + \fp_set:Nn \l_wrap_figlines_fp + { \fp_eval:n { ( \l_tmpa_fp / \l_tmpb_fp ) + .5 } } + \int_set:Nn \l_wrap_figlines_int + { \fp_to_int:N \l_wrap_figlines_fp } +% + \iow_term:x { ...~wr-fig:~[BL:~\the\baselineskip] ~ ...} + \iow_term:x { ...~wr-fig:~[LINE-FP:~ \fp_use:N \l_wrap_figlines_fp]~ ...} + \iow_term:x { ...~wr-fig:~[LINE-INT:~ \int_use:N \l_wrap_figlines_int]~ ...} +} + +\newbox \l_bio_text_box + +\NewDocumentCommand \WrapFigure { o m } +{ + \__fig_defaults: + \IfNoValueTF { #1 } { } { \keys_set:nn { wrap / fig } { #1 } } + \stepcounter { ca_biography_ctr } + \__find_fig_height:n { #2 } + \dim_zero:N \l_tmpb_dim + \dim_set:Nn \l_tmpb_dim + { \l_wrap_figwidth_dim + \l_wrap_fighspace_dim } + \int_gadd:Nn \l_wrap_figlines_int { \int_use:N \l_wrap_figlcorr_int } + \setlength { \columnsep } { 5pt } + \setlength { \intextsep } { 0pt } +% \mbox{} + \ifbool { dc } + { \xdef\Columnwidth{238.25pt} } + { \xdef\Columnwidth{\the\textwidth} } + \ifcsundef { cabio\theca_biography_ctr lines } + { + \setbox \l_bio_text_box = \vbox \bgroup + \hsize = \dimexpr ( \Columnwidth - 72.28pt ) + } + { + \ifbool { dc } { + \int_gset:Nn \l_wrap_figlines_int + { \csuse { cabio\theca_biography_ctr lines } } + } { } + \skip_vertical:N \l_above_bio_dim + \begin{wrapfigure}[\int_use:N \l_wrap_figlines_int] + { \l_wrap_figpos_tl } + [ \dim_use:N \l_wrap_fighcorr_dim ] + { \dim_use:N \l_tmpb_dim } + %\skip_vertical:N \l_wrap_figvcorr_dim + \includegraphics[width=\l_wrap_figwidth_dim]{#2} + \end{wrapfigure} + \setbox \l_bio_text_box = \vbox \bgroup + \hsize = \dimexpr ( \Columnwidth ) + } +} + +\cs_set:Nn \__fwidth: { 1in } +\cs_set:Nn \__fpos: { l } + +% +% short authors/title +% + +\newcommand\shortauthors[1]{ \cs_gset:Nn \__short_authors: { #1 } } +\newcommand\shorttitle[1]{ \cs_gset:Nn \__short_title: { #1 } } + +\shortauthors{First~Author~et~al.} +\shorttitle{Short ~Title ~of~the~Article} + +\newcounter { ca_biography_ctr } +\newbool { cas_no_pic_bio } +\boolfalse { cas_no_pic_bio } + +\ifnum\theblind>0\relax +\newbox\hidebiobox +\NewDocumentCommand \bio { O{} m } + {\setbox\hidebiobox=\vbox\bgroup} +\NewDocumentCommand \endbio { } { + \egroup +} +\else +\NewDocumentCommand \bio { O{} m } +{ + \global \boolfalse { cas_no_pic_bio } + \casbiographyfont + \par \medskip \tl_set:Nn \l_tmpa_tl { #2 } + \tl_if_empty:NTF \l_tmpa_tl + { \global \booltrue { cas_no_pic_bio } } + { \WrapFigure [ #1 ]{ #2 } } + \noindent \ignorespaces +} + +\int_new:N \l_ca_temp_inta + +\NewDocumentCommand \endbio { } { + \ifbool{ cas_no_pic_bio } { } { + \egroup +% \fp_set:Nn \l_wrap_figlines_fp +% { \fp_eval:n { ( ( \l_tmpa_fp + +% \numexpr\dimexpr\the\ht\l_bio_text_box ) +% / \l_tmpb_fp ) + .5 } } + \int_gset:Nn \l_ca_temp_inta + { \numexpr\dimexpr(\the\ht\l_bio_text_box + 2\baselineskip )/ + \dimexpr\the\baselineskip } + \iow_now:Nx \@auxout { + \string\csgdef{cabio\theca_biography_ctr lines} + { \int_use:N \l_ca_temp_inta } } +\mbox{}\vspace*{-4.5pt}\noindent +\unvbox \l_bio_text_box } +} +\fi + +\let\casbiographyfont\relax + +\NewDocumentEnvironment { biography } { o m } +{ + \IfValueTF { #1 } + { \par\medskip \noindent \includegraphics[width=1in]{#1} } + { } + \par\smallskip + \noindent \textbf{#2:}\enspace +} +{ } + +\ExplSyntaxOff + +% +% Customized Enumeration +% +\def\blstr#1{\gdef\@bslstr{#1}} +\def\@blstr{1} +\newdimen\leftMargin +\leftMargin=2em +\newtoks\@enLab %\newtoks\@enfont +\def\@enQmark{?} +\def\@enLabel#1#2{% + \edef\@enThe{\noexpand#1{\@enumctr}}% + \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}% + \@enloop} +\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= } +\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop} +\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop} +\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop} +\def\@enloop{\futurelet\@entemp\@enloop@} +\def\@enloop@{% + \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else + \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else + \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else + \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else + \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else + \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else + \ifx \bgroup\@entemp \let\@tempa\@enGroup \else + \ifx \@enum@\@entemp \let\@tempa\@gobble \else + \let\@tempa\@enOther + \fi\fi\fi\fi\fi\fi\fi\fi + \@tempa} +\newlength{\@sep} \newlength{\@@sep} +\setlength{\@sep}{.5\baselineskip plus.2\baselineskip + minus.2\baselineskip} +\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip + minus.05\baselineskip} +\providecommand{\sfbc}{\rmfamily\upshape} +\providecommand{\sfn}{\rmfamily\upshape} +\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt} +\def\enumerate{% + \ifnum \@enumdepth >3 \@toodeep\else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi + \@ifnextchar[{\@@enum@}{\@enum@}} +\def\@@enum@[#1]{% + \@enLab{}\let\@enThe\@enQmark + \@enloop#1\@enum@ + \ifx\@enThe\@enQmark\@warning{The counter will not be printed.% + ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi + \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}% + \expandafter\let\csname the\@enumctr\endcsname\@enThe + \csname c@\@enumctr\endcsname7 + \expandafter\settowidth + \csname leftmargin\romannumeral\@enumdepth\endcsname + {\the\@enLab\hskip\labelsep}% + \@enum@} +\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}% + {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}% + \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else + \setlength{\topsep}{\@sep}\fi + \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}% + \else \setlength{\itemsep}{\@@sep}\fi + %\setlength\leftmargin{\leftMargin}%%%{1.8em} + \setlength{\parsep}{0pt plus1pt minus1pt}% + \setlength{\parskip}{0pt plus1pt minus1pt} + }} + +\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else + \addvspace{\@sep}\fi \endlist} + +\def\sitem{\@noitemargtrue\@item[\@itemlabel *]} + +\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}} + +\def\@Itemize[#1]{\def\next{#1}% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \ifx\next\@empty\else\expandafter\def\csname + labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi% + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter\list\csname\@itemitem\endcsname + {\def\makelabel##1{\hss\llap{##1}}}% + \fi} + +% +% Customized theorem +% (non-italic enunciations) +% + +\def\newdefinition#1{% + \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%] +\def\@ndfn#1#2{% + \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}} +\def\@xndfn#1#2[#3]{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@newctr{#1}[#3]% + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@dfncountersep + \@dfncounter{#1}}% + \global\@namedef{#1}{\@dfn{#1}{#2}}% + \global\@namedef{end#1}{\@enddefinition}}} +\def\@yndfn#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}% + \global\@namedef{#1}{\@dfn{#1}{#2}}% + \global\@namedef{end#1}{\@enddefinition}}} +\def\@odfn#1[#2]#3{% + \@ifundefined{c@#2}{\@nocounterr{#2}}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}} + \global\@namedef{#1}{\@dfn{#2}{#3}}% + \global\@namedef{end#1}{\@enddefinition}}}} +\def\@dfn#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}} +\def\@xdfn#1#2{% + \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@ydfn#1#2[#3]{% + \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces} +\def\@dfncounter#1{\noexpand\arabic{#1}} +\def\@dfncountersep{.} +\def\@begindefinition#1#2{\trivlist + \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape} +\def\@opargbegindefinition#1#2#3{\trivlist + \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape} +\def\@enddefinition{\endtrivlist} + +\def\@begintheorem#1#2{\trivlist + \let\baselinestretch\@blstr + \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape} +\def\@opargbegintheorem#1#2#3{\trivlist + \let\baselinestretch\@blstr + \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape} +% +% Unnumbered roman proofs +% +\def\newproof#1{% + \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}} +\def\@nprf#1#2{% + \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}} +\def\@xnprf#1#2[#3]{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@newctr{#1}[#3]% + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@prfcountersep + \@prfcounter{#1}}% + \global\@namedef{#1}{\@prf{#1}{#2}}% + \global\@namedef{end#1}{\@endproof}}} +\def\@ynprf#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}% + \global\@namedef{#1}{\@prf{#1}{#2}}% + \global\@namedef{end#1}{\@endproof}}} +\def\@oprf#1[#2]#3{% + \@ifundefined{c@#2}{\@nocounterr{#2}}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% + \global\@namedef{#1}{\@prf{#2}{#3}}% + \global\@namedef{end#1}{\@endproof}}}} +\def\@prf#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}} +\def\@xprf#1#2{% + \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yprf#1#2[#3]{% + \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces} +\def\@prfcounter#1{\noexpand\arabic{#1}} +\def\@prfcountersep{.} +\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr + \item[\hskip \labelsep{\scshape #1.}]\rmfamily} +\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr + \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily} +\def\@endproof{\endtrivlist} +\newcommand*{\qed}{\hbox{}\hfill$\Box$} + +\xspaceaddexceptions{]} + +\ABD{\@ifundefined{bibsep}{}{\bibsep=0pt}} +%\ifbool{casfinallayout} +% {% + \ABD{\gdef\bibfont{\fontsize{8pt}{10pt}\selectfont}% + \gdef\casbiographyfont{\fontsize{8pt}{10pt}\selectfont}% + }% +% } +% {} + +\endinput + diff --git a/pubs/applied-ocean-research-model/cas-dc.cls b/pubs/applied-ocean-research-model/cas-dc.cls new file mode 100644 index 000000000..b08b4f3f7 --- /dev/null +++ b/pubs/applied-ocean-research-model/cas-dc.cls @@ -0,0 +1,187 @@ +%% +%% This is file `cas-sc.cls'. +%% +%% This file is part of the 'CAS Bundle'. +%% ...................................... +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'CAS Bundle' is +%% given in the file `manifest.txt'. +%% + +%% $Id: cas-dc.cls 96 2024-05-04 09:29:44Z rishi $ + + \def\RCSfile{cas-dc}% + \def\RCSversion{2.4}% + \def\RCSdate{2024/05/04}% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{\RCSfile}[\RCSdate, \RCSversion: Formatting class + for CAS double column articles] +% +\def\ABD{\AtBeginDocument} +% +% switches +% +\newif\iflongmktitle \longmktitlefalse +\newif\ifdc \global\dctrue +\newif\ifsc \global\scfalse +\newif\ifcasreviewlayout \global\casreviewlayoutfalse +\newif\ifcasfinallayout \global\casfinallayoutfalse + +\newcounter{blind} +\setcounter{blind}{0} + +\def\blstr#1{\gdef\@blstr{#1}} +\def\@blstr{1} +\newdimen\@bls +\@bls=\baselineskip + +\DeclareOption{singleblind}{\setcounter{blind}{1}} +\DeclareOption{doubleblind}{\setcounter{blind}{2}} +\DeclareOption{longmktitle}{\global\longmktitletrue} +\DeclareOption{final}{\global\casfinallayouttrue} +\DeclareOption{review}{\global\casreviewlayouttrue} + +\ExecuteOptions{a4paper,10pt,oneside,fleqn} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass{article} + +\RequirePackage{graphicx} +\RequirePackage{amsmath,amsfonts,amssymb} +\allowdisplaybreaks + +\RequirePackage{expl3,xparse} +\@ifundefined{regex_match:nnTF}{\RequirePackage{l3regex}}{} +\RequirePackage{etoolbox,balance} +\RequirePackage{booktabs,makecell,multirow,array,colortbl,dcolumn,stfloats} +\RequirePackage{xspace,xstring,footmisc} +\RequirePackage[svgnames,dvipsnames]{xcolor} + +\ifbool{casreviewlayout}{\RequirePackage{setspace}}{} + +\RequirePackage[unicode,hypertexnames=false,colorlinks=true]{hyperref} +\colorlet{scolor}{black} +\colorlet{hscolor}{DarkSlateGrey} +\hypersetup{% + pdftitle={\csuse{__short_title:}}, + pdfauthor={\csuse{__short_authors:}}, + pdfcreator={LaTeX3; cas-sc.cls; hyperref.sty}, + pdfproducer={pdfTeX;}, + linkcolor={hscolor}, + urlcolor={hscolor}, + citecolor={hscolor}, + filecolor={hscolor}, + menucolor={hscolor}, + } + + \let\comma\@empty +\let\tnotesep\@empty +\let\@title\@empty +% +% Load Common items +% + +\RequirePackage{cas-common} + +% +% Specific to Single Column +% +\ExplSyntaxOn + +\RenewDocumentCommand \maketitle { } +{ + \ifbool { usecasgrabsbox } + { + \setcounter{page}{0} + \thispagestyle{empty} + \unvbox\casgrabsbox + } { } + \pagebreak + \ifbool { usecashlsbox } + { + \setcounter{page}{0} + \thispagestyle{empty} + \unvbox\casauhlbox + } { } + \pagebreak + \thispagestyle{first} + \ifbool{longmktitle} + { + \ifnum\theblind>0\relax + \LongMaketitleBox[Blind] + \else + \LongMaketitleBox + \fi + \ProcessLongTitleBox + } + { + \ifnum\theblind>0\relax + \twocolumn[{\MaketitleBox[blind]}] + \else + \twocolumn[\MaketitleBox] + \fi + \printFirstPageNotes + } + \setcounter{footnote}{\int_use:N \g_stm_fnote_int} + \renewcommand\thefootnote{\arabic{footnote}} + \gdef\@pdfauthor{\infoauthors} + \gdef\@pdfsubject{Complex ~STM ~Content} + \ifbool{casreviewlayout}{\doublespacing}{} +} + +% +% Fonts +% +\RequirePackage[T1]{fontenc} + +\file_if_exist:nTF { stix.sty } +{ + \file_if_exist:nTF { charis.sty } + { + \RequirePackage[notext]{stix} + \RequirePackage{charis} + } + { \RequirePackage{stix} } +} +{ + \iow_term:x { *********************************************************** } + \iow_term:x { ~Stix ~ and ~ Charis~ fonts ~ are ~ not ~ available ~ } + \iow_term:x { ~ in ~TeX~system.~Hence~CMR~ fonts~ are ~ used. } + \iow_term:x { *********************************************************** } +} + +\file_if_exist:nTF { inconsolata.sty } +{ \RequirePackage[scaled=.85]{inconsolata} } +{ \tex_gdef:D \ttdefault { cmtt } } + + +\ExplSyntaxOff + +% +% Page geometry +% +\usepackage[% + paperwidth=210mm, + paperheight=280mm, + vmargin={19.5mm,18.2mm}, + hmargin={18.1mm,18.1mm}, + headsep=12pt, + footskip=12pt, + columnsep=18pt +]{geometry} + + +\endinput + +% +% End of class 'cas-dc' +% + + diff --git a/pubs/applied-ocean-research-model/commands-aor.tex b/pubs/applied-ocean-research-model/commands-aor.tex index 999eacf7e..bf5b03dab 100644 --- a/pubs/applied-ocean-research-model/commands-aor.tex +++ b/pubs/applied-ocean-research-model/commands-aor.tex @@ -1,24 +1,30 @@ %% For including figures, graphicx.sty has been loaded in %% elsarticle.cls. If you prefer to use the old commands %% please give \usepackage{epsfig} - +\usepackage{xurl} \usepackage{microtype} -\usepackage{circuitikz} % circuit figures \usepackage{subcaption} % for subfigures +\usepackage{tikz} +%\usepackage[section]{placeins} % prevent figs from going in wrong section + -% set tikz to compile externally to work with latexmk -\usetikzlibrary{external,positioning,calc} -\tikzset{ - external/system call={ - pdflatex \tikzexternalcheckshellescape - -halt-on-error - -interaction=batchmode - -output-directory=aux/ - -jobname "\image" "\texsource" +\newcommand{\journal}{Applied Ocean Research} + +% Source - https://tex.stackexchange.com/a/515729 +% Posted by user194703, modified by community. See post 'Timeline' for change history +% Retrieved 2026-06-21, License - CC BY-SA 4.0 +\usetikzlibrary{shapes.geometric} +\newcommand{\Stars}[2][fill=black,draw=black]{ + \begin{tikzpicture}[baseline=-0.35em,#1] + \foreach \X in {1,...,3} + {\pgfmathsetmacro{\xfill}{min(1,max(1+#2-\X,0))} + \path (\X*1.1em,0) + node[star,draw,star point height=0.25em,minimum size=1em,inner sep=0pt, + path picture={\fill (path picture bounding box.south west) + rectangle ([xshift=\xfill*1em]path picture bounding box.north west);}]{}; } + \end{tikzpicture} } -\tikzexternalize - %\usepackage{graphicx} %\usepackage{float} %\usepackage{placeins} diff --git a/pubs/applied-ocean-research-model/content.tex b/pubs/applied-ocean-research-model/content.tex index d965dd65b..ff0ff6f64 100644 --- a/pubs/applied-ocean-research-model/content.tex +++ b/pubs/applied-ocean-research-model/content.tex @@ -28,7 +28,7 @@ \section{Conclusion} The dynamics module employs describing functions and a novel analytical QCQP for constrained linear control, achieving a three-order-of-magnitude speedup over time-domain solvers. The structures module uses semi-analytical stiffened-plate models with realistic failure criteria for fatigue and storm load cases---to the authors' knowledge, the only public WEC structural simulation. The economics module includes a calibrated cost model. - Full MEEM derivation appears in the forthcoming \cite{bimali_matrix_2026}. + Full MEEM derivation appears in the forthcoming paper by \citet{bimali_matrix_2026}. \fi @@ -36,7 +36,7 @@ \section{Conclusion} Three tuned scale factors, on storm force, average power, and structural mass, bring the simulated outputs within 1\% of the reference model report across all major modules. Total simulation runtime is \resultsAOR[simRuntime], which is 1-3 orders of magnitude faster than established baselines and enables multidisciplinary optimization workflows that would otherwise be prohibitive. -The methodological contribution most relevant to the broader WEC modeling community is the modified frequency-domain dynamics formulation, which unifies prior describing-function and constrained-control approaches and adds a closed-form QCQP solution with a geometric interpretation on the complex plane of the reflection coefficient. +The methodological contribution most relevant to the broader WEC modeling community is the quasi-linearized pseudo-spectral dynamics formulation, which unifies prior describing-function and constrained-control approaches and adds a closed-form QCQP solution with a geometric interpretation on the complex plane of the reflection coefficient. This solves analytically a problem that previously required numerical optimization, and we believe it is the first application of describing functions for both controller synthesis and evaluation in wave energy. More broadly, the results suggest that semi-analytical multidisciplinary modeling can provide a useful intermediate between simplified conceptual studies and computationally intensive high-fidelity simulation, enabling both rapid optimization and improved physical insight during early-stage WEC development. @@ -48,9 +48,9 @@ \section{Conclusion} Future modeling work should pursue these enhancements alongside extensions to additional WEC archetypes, generator magnetics, and probabilistic / spectral analyses for fatigue, grid integration, and storage sizing. \else Principal limitations include the regular-wave assumption in storm load cases, the approximation of irregular-wave operational dynamics through equivalent regular waves, the absence of surge force in the structures module and of a mooring cost model, and restriction to a single WEC archetype. -Detailed future-work directions are given in \cref{sec:unmodeled-effects}. +Detailed future-work directions are given in \Cref{sec:unmodeled-effects}. \fi % Impact of findings: -The companion paper \cite{mccabe_leveraging_2026} applies MDOcean to a multidisciplinary techno-economic optimization of the RM3 reference design. +The companion paper \citep{mccabe_leveraging_2026} applies MDOcean to a multidisciplinary techno-economic optimization of the RM3 reference design. MDOcean is open-source and is intended to support continued community development of fast multidisciplinary WEC modeling tools that integrate insights from hydrodynamics, controls, structures, and economics in a unified framework. \ No newline at end of file diff --git a/pubs/applied-ocean-research-model/elsarticle-harv.bst b/pubs/applied-ocean-research-model/elsarticle-harv.bst new file mode 100644 index 000000000..2228e3d42 --- /dev/null +++ b/pubs/applied-ocean-research-model/elsarticle-harv.bst @@ -0,0 +1,1598 @@ +%% +%% This is file `elsarticle-harv.bst' (Version 2.1), +%% +%% Copyright 2009-2024 Elsevier Ltd +%% +%% This file is part of the 'Elsarticle Bundle'. +%% --------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.3 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% $Id: elsarticle-harv.bst 255 2024-04-06 10:58:47Z rishi $ +%% +%% $URL: https://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle-harv.bst $ +%% + +ENTRY + { address + archive + author + booktitle + chapter + collaboration + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url + doi + eprint + pubmed + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +STRINGS { urlprefix doiprefix eprintprefix pubmedprefix } + +FUNCTION {init.web.variables} +{ + "\URLprefix " 'urlprefix := + "\DOIprefix" 'doiprefix := + "\ArXivprefix " 'eprintprefix := + "\Pubmedprefix " 'pubmedprefix := +} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.comma} +{ ", " * write$} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ". " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { ", " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output.commanull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { ", " * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {output.book.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "Eds." } + +FUNCTION {bbl.editor} +{ "Ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Software Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput. Aid. Des."} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphic."} + +MACRO {toms} {"ACM Trans. Math. Software"} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} + +MACRO {tcs} {"Theor. Comput. Sci."} + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} + +STRINGS { bibinfo} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f{.}.}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names + duplicate$ empty$ 'skip$ + { collaboration "collaboration" bibinfo.check + duplicate$ empty$ 'skip$ + { " (" swap$ * ")" * } + if$ + * + } + if$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in %capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + ", " swap$ * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +%FUNCTION {format.pages} +%{ pages duplicate$ empty$ 'skip$ +% { duplicate$ multi.page.check +% { +% n.dashify +% } +% { +% } +% if$ +% "pages" bibinfo.check +% } +% if$ +%} + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.check format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {print.url} + {url duplicate$ empty$ + { pop$ "" } + { new.sentence + urlprefix "\url{" * swap$ * "}" * + } + if$ + } + +FUNCTION {print.doi} + {doi duplicate$ empty$ + { pop$ "" } + { new.sentence + doiprefix "\doi{" * swap$ * "}" * + } + if$ + } + +FUNCTION {print.eprint} + {eprint duplicate$ empty$ + { pop$ "" } + { new.sentence + duplicate$ "\href{http://arxiv.org/abs/" swap$ * "}{{\tt arXiv:" * swap$ * "}}" * } + if$ + } + +FUNCTION {print.pubmed} + {pubmed duplicate$ empty$ + { pop$ "" } + { new.sentence + pubmedprefix "\Pubmed{" * swap$ * "}" * + } + if$ + } + +FUNCTION {webpage} +{ "%Type = Webpage" write$ + output.bibitem + format.authors "author" output.check + author format.key output + author empty$ + { + format.title "title" output.check + new.block + format.date "year" output.check + date.block + } + { + format.date "year" output.check + date.block + format.title "title" output.check + new.block +} + if$ + print.url output + fin.entry +} + + +FUNCTION {article} +{ "%Type = Article" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + format.journal.pages + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {book} +{ "%Type = Book" write$ + output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + format.edition output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {booklet} +{ "%Type = Booklet" write$ + output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ "%Type = Inbook" write$ + output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + format.edition output + crossref missing$ + { + format.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.pages "pages" output.check + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ "%Type = Incollection" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.book.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.book.check + format.edition output + format.publisher.address output + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ "%Type = Inproceedings" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.book.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ +% format.bvolume output +% format.number.series output +% format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.pages "pages" output.check + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ "%Type = Manual" write$ + output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.edition output + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ "%Type = Masterthesis" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {misc} +{ "%Type = Misc" write$ + output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {phdthesis} +{ "%Type = Phdthesis" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ "%Type = Proceedings" write$ + output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {techreport} +{ "%Type = Techreport" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ "%Type = Unpublished" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ +% { "{\natexlab{" swap$ * "}}" * } + { "" swap$ * "" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\href}[2]{#2}" + write$ newline$ + "\providecommand{\path}[1]{#1}" + write$ newline$ + "\providecommand{\DOIprefix}{doi:}" + write$ newline$ + "\providecommand{\ArXivprefix}{arXiv:}" + write$ newline$ + "\providecommand{\URLprefix}{URL: }" + write$ newline$ + "\providecommand{\Pubmedprefix}{pmid:}" + write$ newline$ + "\providecommand{\doi}[1]{\href{http://dx.doi.org/#1}{\path{#1}}}" + write$ newline$ + "\providecommand{\Pubmed}[1]{\href{pmid:#1}{\path{#1}}}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\ifx\xfnm\relax \def\xfnm[#1]{\unskip,\space#1}\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +EXECUTE {init.web.variables} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `elsarticle-harv.bst'. +%% +%% Change log: +%% ----------- +%% 22.04.2011 +%% +%% 10.08.2012 +%% a. doi, url, eprint, pmid added +%% b. Bibtype `webpage' defined +%% +%% 30.08.2012 +%% a. collaboration added. +%% + + diff --git a/pubs/applied-ocean-research-model/elsarticle-num-names.bst b/pubs/applied-ocean-research-model/elsarticle-num-names.bst new file mode 100644 index 000000000..de32b374c --- /dev/null +++ b/pubs/applied-ocean-research-model/elsarticle-num-names.bst @@ -0,0 +1,1535 @@ +%% +%% This is file `elsarticle-num-names.bst' (Version 2.1), +%% +%% Copyright 2009-2024 Elsevier Ltd +%% +%% This file is part of the 'Elsarticle Bundle'. +%% --------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.3 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% $Id: elsarticle-num-names.bst 253 2024-04-06 10:57:58Z rishi $ +%% +%% $URL: https://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle-num-names.bst $ +%% +%% + +ENTRY + { address + author + booktitle + chapter + collaboration + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url + doi + eprint + pubmed + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +STRINGS { urlprefix doiprefix eprintprefix pubmedprefix } + +FUNCTION {init.web.variables} +{ + "\URLprefix " 'urlprefix := + "\DOIprefix" 'doiprefix := + "\ArXivprefix " 'eprintprefix := + "\Pubmedprefix " 'pubmedprefix := +} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = +% { add.period$ write$ + { ", " * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Software Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput. Aid. Des."} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphic."} + +MACRO {toms} {"ACM Trans. Math. Software"} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} + +MACRO {tcs} {"Theor. Comput. Sci."} + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +%FUNCTION {format.authors} +%{ author "author" format.names +%} + +FUNCTION {format.authors} +{ author "author" format.names + duplicate$ empty$ 'skip$ + { collaboration "collaboration" bibinfo.check + duplicate$ empty$ 'skip$ + { " (" swap$ * ")" * } + if$ + * + } + if$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} + +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in + ":" * + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * +} +FUNCTION{format.year} +{ year "year" bibinfo.check duplicate$ empty$ + { "empty year in " cite$ * + "; set to ????" * + warning$ + pop$ "????" + } + { + } + if$ + extra.label * + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + " " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + format.year * +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.check format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {print.url} + {url duplicate$ empty$ + { pop$ "" } + { new.sentence + urlprefix "\url{" * swap$ * "}" * + } + if$ + } + +FUNCTION {print.doi} + {doi duplicate$ empty$ + { pop$ "" } + { new.sentence + doiprefix "\doi{" * swap$ * "}" * + } + if$ + } + +FUNCTION {print.eprint} + {eprint duplicate$ empty$ + { pop$ "" } + { new.sentence + duplicate$ "\href{http://arxiv.org/abs/" swap$ * "}{{\tt arXiv:" * swap$ * "}}" * + } + if$ + } + +FUNCTION {print.pubmed} + {pubmed duplicate$ empty$ + { pop$ "" } + { new.sentence + pubmedprefix "\Pubmed{" * swap$ * "}" * + } + if$ + } + +FUNCTION {webpage} +{ "%Type = Webpage" write$ + output.bibitem + format.authors "author" output.check + author format.key output + author empty$ + { + format.title "title" output.check + new.block + format.date "year" output.check + date.block + } + { + format.date "year" output.check + date.block + format.title "title" output.check + new.block +} + if$ + print.url output + fin.entry +} + + +FUNCTION {article} +{ "%Type = Article" write$ + output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + format.journal.pages + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} +FUNCTION {book} +{ "%Type = Book" write$ + output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} +FUNCTION {booklet} +{ "%Type = Booklet" write$ + output.bibitem + format.authors output + author format.key output + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.date "year" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ "%Type = Inbook" write$ + output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.number.series output + format.edition output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.pages "pages" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ "%Type = Incollection" write$ + output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.publisher.address output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.date "year" output.check + format.pages "pages" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ "%Type = Inproceedings" write$ + output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.date output + format.pages "pages" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ "%Type = Manual" write$ + output.bibitem + format.authors output + author format.key output + format.btitle "title" output.check + format.edition output + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.date "year" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ "%Type = Masterthesis" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.btitle + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {misc} +{ "%Type = Misc" write$ + output.bibitem + format.authors output + author format.key output + format.title output + howpublished "howpublished" bibinfo.check output + format.date "year" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ "%Type = Phdthesis" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.btitle + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ "%Type = Proceedings" write$ + output.bibitem + format.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.date "year" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {techreport} +{ "%Type = Techreport" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.btitle + "title" output.check + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ "%Type = Unpublished" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + format.date "year" output.check + new.sentence + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + { pop$ "????" } + { purify$ #-1 #4 substring$ } + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +%SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +%SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\href}[2]{#2}" + write$ newline$ + "\providecommand{\path}[1]{#1}" + write$ newline$ + "\providecommand{\DOIprefix}{doi:}" + write$ newline$ + "\providecommand{\ArXivprefix}{arXiv:}" + write$ newline$ + "\providecommand{\URLprefix}{URL: }" + write$ newline$ + "\providecommand{\Pubmedprefix}{pmid:}" + write$ newline$ + "\providecommand{\doi}[1]{\href{http://dx.doi.org/#1}{\path{#1}}}" + write$ newline$ + "\providecommand{\Pubmed}[1]{\href{pmid:#1}{\path{#1}}}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\ifx\xfnm\relax \def\xfnm[#1]{\unskip,\space#1}\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +EXECUTE {init.web.variables} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `elsarticle-num-names.bst'. +%% +%% +%% Change log: +%% ----------- +%% 22.04.2011 +%% +%% 10.08.2012 +%% a. doi, url, eprint, pmid added +%% b. Bibtype `webpage' defined +%% +%% 30.08.2012 +%% a. collaboration added. + + diff --git a/pubs/applied-ocean-research-model/main.tex b/pubs/applied-ocean-research-model/main.tex index 367975e10..0325f9fdd 100644 --- a/pubs/applied-ocean-research-model/main.tex +++ b/pubs/applied-ocean-research-model/main.tex @@ -1,191 +1,120 @@ -%% -%% Copyright 2007-2024 Elsevier Ltd -%% -%% This file is part of the 'Elsarticle Bundle'. -%% --------------------------------------------- -%% -%% It may be distributed under the conditions of the LaTeX Project Public -%% License, either version 1.3 of this license or (at your option) any -%% later version. The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 1999/12/01 or later. -%% -%% The list of all files belonging to the 'Elsarticle Bundle' is -%% given in the file `manifest.txt'. -%% -%% Template article for Elsevier's document class `elsarticle' -%% with numbered style bibliographic references -%% SP 2008/03/01 -%% $Id: elsarticle-template-num.tex 249 2024-04-06 10:51:24Z rishi $ -%% - -\documentclass[preprint,12pt]{elsarticle} - -%% Use the option review to obtain double line spacing -%% \documentclass[authoryear,preprint,review,12pt]{elsarticle} - -%% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn -%% for a journal layout: -%% \documentclass[final,1p,times]{elsarticle} -%% \documentclass[final,1p,times,twocolumn]{elsarticle} -%% \documentclass[final,3p,times]{elsarticle} -%% \documentclass[final,3p,times,twocolumn]{elsarticle} -%% \documentclass[final,5p,times]{elsarticle} -%% \documentclass[final,5p,times,twocolumn]{elsarticle} +\documentclass[a4paper,fleqn,colorlinks,unicode,hypertexnames=false]{cas-dc} \input{shared-pkg} \input{commands-aor} -\journal{Applied Ocean Research} +\usepackage[authoryear]{natbib} + +%%Author macros +\def\tsc#1{\csdef{#1}{\textsc{\lowercase{#1}}\xspace}} +\tsc{WGM} +\tsc{QE} +%%% \begin{document} -% Make PDF metadata explicit and disable fragile commands from frontmatter -\hypersetup{ - pdftitle={Development, Validation, and Benchmarking of a Multidisciplinary Semi-Analytical Model for Wave Energy Converters}, - pdfauthor={Rebecca McCabe, Madison Dietrich, Maha Haji} + +\let\WriteBookmarks\relax +\def\floatpagepagefraction{1} +\def\textpagefraction{.001} + +\shorttitle{Development, Validation, and Benchmarking of a Multidisciplinary Semi-Analytical Model for Wave Energy Converters} +\shortauthors{R. McCabe et~al.} + +\title[mode=title] +{Development, Validation, and Benchmarking of a Multidisciplinary Semi-Analytical Model for Wave Energy Converters} + +% First author +% +% Options: Use if required +% eg: \author[1,3]{Author Name}[type=editor, +% style=chinese, +% auid=000, +% bioid=1, +% prefix=Sir, +% orcid=0000-0000-0000-0000, +% facebook=, +% twitter=, +% linkedin=, +% gplus=] + + +\author[MAE]{Rebecca McCabe}[ +orcid=0000-0001-5108-998X, +auid=57980095200, +linkedin=rebecca-mccabe] +\cormark[1] +\fnmark[1] +\ead{rgm222@cornell.edu} +\ead[url]{http://sea.mae.cornell.edu} + +% Optional: +\credit{Conceptualization, Methodology, Software, Validation, Writing - Original draft} + +\author[MAE]{Madison Dietrich}[ + orcid=0009-0000-3590-5334 +] +\credit{Software, Visualization, Writing - Review \& Editing} + +\author[mich]{Maha Haji}[ + orcid=0000-0002-2953-7253 +] + +\credit{Supervision, Writing - Review \& Editing} + +\affiliation[MAE]{ + organization={Sibley School of Mechanical and Aerospace Engineering, Cornell University}, + addressline={124 Hoy Rd.}, + city={Ithaca}, + postcode={14853}, + state={NY}, + country={USA} } -\makeatletter -\pdfstringdefDisableCommands{% - \def\corref#1{}% - \def\cortext#1{}% - \def\cnotenum#1{}% - \def\tnoteref#1{}% - \def\tnotetext#1{}% - \def\@corref#1{}% + +\affiliation[mich]{ + organization={Department of Mechanical Engineering, University of Michigan}, + addressline={G.G. Brown Laboratory, 2350 Hayward}, + city={Ann Arbor}, + postcode={48109}, + state={MI}, + country={USA} } -\makeatother - -\begin{frontmatter} - -%% Title, authors and addresses - -%% use the tnoteref command within \title for footnotes; -%% use the tnotetext command for theassociated footnote; -%% use the fnref command within \author or \affiliation for footnotes; -%% use the fntext command for theassociated footnote; -%% use the corref command within \author for corresponding author footnotes; -%% use the cortext command for theassociated footnote; -%% use the ead command for the email address, -%% and the form \ead[url] for the home page: -%% \title{Title\tnoteref{label1}} -%% \tnotetext[label1]{} -%% \author{Name\corref{cor1}\fnref{label2}} -%% \ead{email address} -%% \ead[url]{home page} -%% \fntext[label2]{} -%% \cortext[cor1]{} -%% \affiliation{organization={}, -%% addressline={}, -%% city={}, -%% postcode={}, -%% state={}, -%% country={}} -%% \fntext[label3]{} - -\title{Development, Validation, and Benchmarking of a Multidisciplinary Semi-Analytical Model for Wave Energy Converters} - -%% use optional labels to link authors explicitly to addresses: -\author[MAE]{Rebecca McCabe\corref{cor1}} -\ead{rgm222@cornell.edu} -\author[MAE]{Madison Dietrich} -\author[mich]{Maha Haji} - -\cortext[cor1]{Corresponding Author} - -\affiliation[MAE]{organization={Sibley School of Mechanical and Aerospace Engineering, Cornell University}, - addressline={124 Hoy Rd.}, - city={Ithaca}, - postcode={14853}, - state={NY}, - country={USA}} - -\affiliation[mich]{organization={Department of Mechanical Engineering, University of Michigan}, - addressline={G.G. -Brown Laboratory, 2350 Hayward}, - city={Ann Arbor}, - postcode={48109}, - state={MI}, - country={USA}} - -%% Abstract -\begin{abstract} -%% Text of abstract +\cortext[1]{Corresponding author} + +\begin{abstract} Wave energy converters (WECs) require system-level techno-economic analysis to balance power production, cost, and survivability, yet existing simulation tools are often either too computationally intensive for large-scale optimization or too narrow in disciplinary scope to support integrated design studies. This work presents MDOcean, a novel modular WEC simulation framework developed for rapid early-stage design exploration, parametric analysis, and multidisciplinary optimization. MDOcean integrates hydrodynamics, dynamics, structures, and economics within a computationally efficient architecture based on analytical and semi-analytical methods that substantially reduce runtime while maintaining near-numerical accuracy. The framework includes a mesh-free eigenfunction-based linear hydrodynamic solver, a quasi-linearized frequency-domain dynamics engine capable of modeling drag and saturation nonlinearities, a structural sizing module incorporating realistic yield, ultimate, buckling, storm, and fatigue design criteria, and a simplified cost model for techno-economic assessment. -Particular emphasis is placed on the modified frequency-domain dynamics formulation, which extends prior frequency-domain constraint-handling approaches through a unified describing-function and analytical QCQP framework. -This formulation enables efficient treatment of nonlinear constraints while preserving compatibility with optimization workflows and frequency-domain analysis techniques commonly used in WEC design. +Particular emphasis is placed on the quasi-linearized pseudo-spectral dynamics formulation, which extends prior frequency-domain constraint-handling approaches through a unified describing-function and analytical quadratically-constrained quadratic program (QCQP) framework. +This formulation efficiently treats nonlinearities and constraints while preserving compatibility with optimization workflows and frequency-domain analysis techniques commonly used in WEC design. Validation and benchmarking demonstrate that MDOcean's \resultsAOR[simRuntime] runtime is orders of magnitude faster than leading WEC simulation tools while maintaining agreement with higher-fidelity baselines to within a few percent in most cases. Beyond computational performance, the framework also provides insight into limiting behaviors, scaling laws, subsystem interactions, and key tradeoffs governing WEC design and techno-economic performance. MDOcean is released as open-source software to support accelerated WEC research, design, and optimization. + \end{abstract} -%%Graphical abstract \begin{graphicalabstract} -\centering \includegraphics[width=\linewidth]{figs/from-matlab/graphical_abstract_modeling.pdf} \end{graphicalabstract} -%%Research highlights -% Elsevier guidelines: -% 3–5 bullets -% no more than 85 characters per bullet including spaces -% No jargon, acronyms, or abbreviations — aim for general audience -% Capture core findings/novel results; not a list of every module -% Present tense, concise, specific - -% OLD -% \begin{highlights} -% \item Develop and validate a rapid (\resultsAOR[simRuntime]) open-source wave energy techno-economic simulation called MDOcean -% \item Quasi-linear frequency domain dynamics model captures nonlinearities such as generator force saturation and drag while running 3 orders of magnitude faster than benchmark time-stepping model -% \item Derive analytical constrained optimal control solution for underactuated wave-to-wire multi-port model respecting effort, flow, and power limits -% \item Eigenfunction-based model computes hydrodynamic coefficients 10x faster than benchmark boundary element method (BEM) solver -% \item Analytical stiffened-plate structural model assesses stress and stability failure modes under fatigue and storm survival loadcases -% \item Simple economic model captures scaling of cost with structural material volume and powertrain rating -% \item Validation shows error of <0.2\% (linear) and <10\% (nonlinear) in average power and peak amplitude for Reference Model 3 (RM3) design -% \end{highlights} - -% NEW (Maha updated 5/18/26) \begin{highlights} - \input{sections/aor-contributions} +\input{sections/aor-contributions} \end{highlights} -%% Keywords -\begin{keyword} -wave energy conversion \sep -marine renewable energy \sep -semi-analytical hydrodynamics \sep -multi-port circuit \sep -constrained optimal control \sep -structural design \sep -survivability analysis \sep -techno-economic modeling \sep -two-body point absorber \sep -power take-off modeling \sep -validation \sep -benchmarking -%% keywords here, in the form: keyword \sep keyword +\begin{keywords} +marine renewable energy \sep +semi-analytical hydrodynamics \sep +linearized pseudo-spectral optimal control \sep +structural survivability \sep +techno-economic modeling \sep +model validation \sep +computational benchmarking +\end{keywords} -%% PACS codes here, in the form: \PACS code \sep code - -%% MSC codes here, in the form: \MSC code \sep code -%% or \MSC[2008] code \sep code (2000 is the default) - -\end{keyword} - -\end{frontmatter} - -%% Add \usepackage{lineno} before \begin{document} and uncomment -%% following line to enable line numbers -%% \linenumbers - -%% main text -%% +\maketitle % added for my convenience, should take out before submission %\tableofcontents @@ -197,78 +126,96 @@ %\detailtexcount{sections/other-appendices}{section} %\newpage -%% Use \section commands to start a section -%% Labels are used to cross-reference an item using \ref command. - \include{content} \section*{Acknowledgements} -The authors thank Kapil Khanal, En Lo, Yinghui Bimali, and John Fernandez for assistance with hydrodynamics; Fabien Royer for guidance on structures; and Ryan Coe, Jacob Mays, Patrick Reed, Nate DeGeode, and Alaa Ahmed for providing valuable manuscript feedback. -R.M. acknowledges funding from the National Science Foundation Graduate Research Fellowship. -M.D. acknowledges funding from the Fund for Undergraduate Research on Solutions to Climate Change and the Bill Nye ’77 Award in Undergraduate Research. -This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. -DGE–2139899. -Any opinion, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation. +The authors thank Kapil Khanal, Yinghui Bimali, En Lo, and John Fernandez for assistance with hydrodynamics; +Fabien Royer for guidance on structures; +Ryan Coe, Jacob Mays, Patrick Reed, Nate DeGeode, and Alaa Ahmed for technical feedback on a draft manuscript; +Nola McCabe for proofreading support; +Pete Bachant for support on the reproducible computation pipeline; +and Jeff Scruggs for suggestion of resources on quasi-linearization. + +Rebecca McCabe acknowledges funding from the National Science Foundation Graduate Research Fellowship Program, Cornell Provost's Diversity Fellowship, and Cornell Mechanical and Aerospace Engineering McMullen Fellowship. +Madison Dietrich acknowledges funding from the Fund for Undergraduate Research on Solutions to Climate Change and the Bill Nye '77 Award in Undergraduate Research. -The graphical abstract uses icons from \url{www.flaticon.com} in accordance with the Flaticon license. +This material is based on work supported by the National Science Foundation Graduate Research Fellowship under Grant No.~DGE--2139899. +Any opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation. + +%The graphical abstract uses icons from \url{www.flaticon.com} in accordance with the Flaticon license. \section*{Data availability statement} -The MATLAB code for all simulation, analysis, and visualization to fully reproduce this work is available open-source via the MDOcean project at \url{https://github.com/symbiotic-engineering/MDOcean} \cite{mccabe_mdocean_2024}. -Questions and contributions via GitHub issues and pull requests are welcomed. -A Python version using the OpenMDAO package is forthcoming. % todo: replace with updated Zotero citation -\begin{appendices} +The MATLAB code for all simulation, analysis, and visualization to fully reproduce this work is available open-source via the MDOcean project at +\url{https://github.com/symbiotic-engineering/MDOcean} \citep{mccabe_mdocean_2024}. +Questions and contributions via GitHub issues and pull requests are welcomed. +%A Python version using the \texttt{OpenMDAO} package is forthcoming. +All computational environments, results, and \LaTeX~artifacts can be reproduced via a data version control pipeline built with the \texttt{Calkit} package +and accessed at \url{https://calkit.io/symbiotic-engineering/mdocean}. + + +\section*{Declaration of interests} +Rebecca McCabe reports administrative support was provided by New York State Education Department Adult Career and Continuing Education Services Vocational Rehabilitation Services. +Rebecca McCabe reports travel was provided by University Marine Energy Research Community. +Maha Haji reports a relationship with University Marine Energy Research Community that includes board membership. +Madison Dietrich declares no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper. + +\section*{Declaration of generative AI and AI-assisted technologies in the manuscript preparation process} +During the preparation of this work, the authors used the following generative AI tools: +Anthropic Claude (accessed May 2026); +OpenAI ChatGPT (GPT-5.5, GPT-5.3, GPT-5.3-mini, and GPT-5-mini: accessed June 2025--June 2026); +GitHub Copilot Cloud Agent (GPT-5.3 Codex: accessed March 2026--June 2026); +GitHub Copilot Chat Extension for Visual Studio Code (Claude Sonnet 4, Claude Sonnet 4.5, GPT-4.1, GPT-5.4 mini, and GPT-5 mini: accessed February 2024--June 2026); and +Google Search AI Overview (Gemini 1.0, Gemini 1.5, Gemini 2.0, Gemini 2.5, Gemini 3, Gemini 3.5: accessed May 2024--June 2026). +AI tools were dominantly used for the generation and debugging of code and computational workflows not core to the technical contributions of the work. +This includes generation of changelogs, pull request reviews, and continuous integration pipeline features; +execution of merges, dependency version bumps, and compatibility updates; +refactoring of code for improved organization and readability; +syntax reference and usage examples for MATLAB, Python, Bash, Mermaid, \LaTeX, and their associated packages; +resolution of errors and warnings encountered in the above languages during human-led code development and manuscript preparation; +and the execution of specific formatting refinements to figures without altering their core content. + +The following exceptions describe instances where AI tools were used to assist with technical development, mathematical derivations, or figure generation related to the core technical contributions of the work: +\begin{itemize}[leftmargin=*] +\item Based on author-provided descriptions of the desired content and formatting, ChatGPT generated the initial source code for the taxonomy diagram (Mermaid), control synthesis flowchart (Mermaid), control Venn diagram (TikZ), and MEEM geometry diagram (TikZ). +\item GitHub Copilot Cloud Agent checked that the notation and equations were consistent between the manuscript and the codebase. The authors resolved all identified inconsistencies. +\item Based on author-provided descriptions of the desired content and formatting, GitHub Copilot Cloud Agent generated the initial source code for the geometry sweep Pareto front, WEC-Sim total harmonic distortion figure, the PTO sweep contour plot, and the overlay of WAMIT results on the existing spar excitation MEEM result plot. +\item After the authors developed and debugged the optimal control code for generic quadratic constraints and implemented the force constraint, GitHub Copilot Cloud Agent integrated the amplitude and power constraints following the same pattern, and implemented some changes to reduce runtime while preserving identical outputs. +\item ChatGPT was used to conduct targeted literature review to identify relevant optimization algorithms for systems with structured coupling, optimal control techniques to populate the Venn diagram, and references describing convex optimization sensitivity analysis. +\item With the intent of balancing technical accuracy and approachability of the terminology for broad audiences, the authors prompted Github Copilot Cloud Agent to generate the two sentences that conceptually introduce convexity in \Cref{sec:appendix-qp-convexity}. +% thesis version only: chatgpt was used for in the same way for the sentences describing types of nonlinear pressures in the drag section. +\item ChatGPT was used to assist with the algebraic manipulation, simplification, and/or initial typesetting of the following equations, which were then verified by hand and/or with symbolic math software: +the drag integral limit formulas in \Cref{sec:appendix-drag}; +the circle/ellipse intersection formulas in \Cref{sec:appendix-qp-solution}; +the sensitivity formulas for the PTO limit in \Cref{sec:appendix-constraint-sensitivity}; +the curvature of the function in \Cref{sec:appendix-qp-convexity}; +the trigonometric simplifications in the slamming angle formula in \Cref{sec:appendix-slam}. +\item ChatGPT was used to assist with the mathematical reasoning and interpretation of the following technical concepts, which were then verified via code implementation: the passivity, stability, and cardinality of underactuated multiport systems in \Cref{sec:appendix-pto-dynamics}, and curve fit structures that maintain desired limiting properties for the spar excitation nondimensionalization in \Cref{sec:appendix-additional-hydro}. +\item Claude and ChatGPT were used editorially to improve clarity, grammar, style, and readability of the text. +\end{itemize} +After using these tools, the authors reviewed and edited the content as needed and take full responsibility for the content of the published article. +Author-generated continuous-integration tests and validation cases were used to verify the correctness of simulation code, both AI- and human-generated. + +% GitHub copilot chat models: +% From ~/AppData/Roaming/Code/User/workspaceStorage/*/chatSessions/*.json: +% copilot/auto +% copilot/claude-sonnet-4 +% copilot/gpt-4.1 +% copilot/gpt-5-mini +% github.copilot-chat/claude-sonnet-4 +% From github useage history: +% claude-sonnet-4.5 +% gpt-5.4 mini +% gpt-5 mini + +\appendix +\singleColMacro{ \include{appendices} -\end{appendices} - -%% Displayed equations can be tagged using various environments. -%% Single line equations can be tagged using the equation environment. -%%\begin{equation} -%%f(x) = (x+a)(x+b) -%%\end{equation} - -%% Unnumbered equations are tagged using starred versions of the environment. -%% amsmath package needs to be loaded for the starred version of equation environment. -%%\begin{equation*} -%%f(x) = (x+a)(x+b) -%%\end{equation*} - -%% align or eqnarray environments can be used for multi line equations. -%% & is used to mark alignment points in equations. -%% \\ is used to end a row in a multiline equation. -%%\begin{align} -%% f(x) &= (x+a)(x+b) \\ -%% &= x^2 + (a+b)x + ab -%%\end{align} - -%%\begin{eqnarray} -%% f(x) &=& (x+a)(x+b) \nonumber\\ %% If equation numbering is not needed for a row use \nonumber. -%% &=& x^2 + (a+b)x + ab -%%\end{eqnarray} - -%% Unnumbered versions of align and eqnarray -%%\begin{align*} -%% f(x) &= (x+a)(x+b) \\ -%% &= x^2 + (a+b)x + ab -%%\end{align*} - -%%\begin{eqnarray*} -%% f(x)&=& (x+a)(x+b) \\ -%% &=& x^2 + (a+b)x + ab -%%\end{eqnarray*} - -%% Refer following link for more details. -%% https://en.wikibooks.org/wiki/LaTeX/Mathematics -%% https://en.wikibooks.org/wiki/LaTeX/Advanced_Mathematics - -\clearpage -% Bibliography: point to files one level up in pubs/ so BibTeX can find them -\bibliographystyle{elsarticle-num-names} -\bibliography{references,zotero-meem-refs} +} +\printcredits -\end{document} +\bibliographystyle{cas-model2-names} +\bibliography{references,zotero-meem-refs} -\endinput -%% -%% End of file `elsarticle-template-num.tex'. +\end{document} \ No newline at end of file diff --git a/pubs/applied-ocean-research-model/numbers.tex b/pubs/applied-ocean-research-model/numbers.tex deleted file mode 100644 index 85a8f537a..000000000 --- a/pubs/applied-ocean-research-model/numbers.tex +++ /dev/null @@ -1,5 +0,0 @@ -% sensitivity to model: not optimized -\newcommand{\powerLossForceSatMinLCOE}{2.6} % W -\newcommand{\pctPowerLossForceSatMinLCOE}{0.002\%} -\newcommand{\pctPTOSavingsForceSatMinLCOE}{19\%} -\newcommand{\pctImproveLCOEForceSatMinLCOE}{2\%} \ No newline at end of file diff --git a/pubs/applied-ocean-research-model/numeric-results.tex b/pubs/applied-ocean-research-model/numeric-results.tex index 40c73805c..385ce887e 100644 --- a/pubs/applied-ocean-research-model/numeric-results.tex +++ b/pubs/applied-ocean-research-model/numeric-results.tex @@ -17,6 +17,9 @@ "pctRuntimeDynamics": "23\%", % "pctRuntimeMEEM": "70\%", % "pctRuntimeOther": "8\%", % + "percent\_nans": 18.029866666666667, % + "n\_combos": 93750, % + "geom\_sweep\_analysis\_time": 1446.594815, % "ptoSweepMinLCOE\_F\_max": "6.00 MN", % "ptoSweepMinLCOE\_P\_max": "400 kW", % "ptoSweepMinLCOE\_power": "76 kW", % @@ -88,7 +91,9 @@ {]}, % "wecsimAvgPowerErrorBestCase": "0.16\%", % "wecsimAvgPowerErrorWorstCase": "12.72\%", % - "MEEMRuntime": "105 ms"% + "MEEMRuntime": "105 ms", % + "meemSweepTime": "24 minutes", % + "meemSweepSize": "93750"% \}}% \else% \ifnum\pdfstrcmp{#1}{forceScaleFactor}=0% @@ -146,6 +151,18 @@ \ifnum\pdfstrcmp{#1}{pctRuntimeOther}=0% \def\resultsAOR@out{% 8\%}% + \else% + \ifnum\pdfstrcmp{#1}{percent_nans}=0% + \def\resultsAOR@out{% + 18.029866666666667}% + \else% + \ifnum\pdfstrcmp{#1}{n_combos}=0% + \def\resultsAOR@out{% + 93750}% + \else% + \ifnum\pdfstrcmp{#1}{geom_sweep_analysis_time}=0% + \def\resultsAOR@out{% + 1446.594815}% \else% \ifnum\pdfstrcmp{#1}{ptoSweepMinLCOE_F_max}=0% \def\resultsAOR@out{% @@ -181,10 +198,18 @@ \ifnum\pdfstrcmp{#1}{MEEMRuntime}=0% \def\resultsAOR@out{% 105 ms}% + \else% + \ifnum\pdfstrcmp{#1}{meemSweepTime}=0% + \def\resultsAOR@out{% + 24 minutes}% + \else% + \ifnum\pdfstrcmp{#1}{meemSweepSize}=0% + \def\resultsAOR@out{% + 93750}% \else% \def\resultsAOR@out{% ??}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi \resultsAOR@out }\newcommand\resultsAOR@I[1][all]{% diff --git a/pubs/applied-ocean-research-model/references.bib b/pubs/applied-ocean-research-model/references.bib new file mode 100644 index 000000000..5a989154e --- /dev/null +++ b/pubs/applied-ocean-research-model/references.bib @@ -0,0 +1,5696 @@ + + +@phdthesis{mccabe_dissertation_2026, + address = {Ithaca, NY}, + type = {{PhD} dissertation}, + title = {Leveraging {Semi}-{Analytical} {Modeling}, {Multidisciplinary} {Design} {Optimization}, and {System} {Value} {Metrics} to {Advance} {Wave} {Energy} {Converter} {Viability}}, + url = {https://calkit.io/symbiotic-engineering/mdocean/publications?path=pubs%2Fdissertation%2FsampleThesis.pdf}, + school = {Cornell University}, + author = {McCabe, Rebecca}, + month = aug, + year = {2026}, +} + +@book{hamming_numerical_1962, + address = {New York}, + series = {International series in pure and applied mathematics}, + title = {Numerical methods for scientists and engineers}, + url = {http://archive.org/details/numericalmethods0000hamm}, + abstract = {411 p. 24 cm; Includes bibliography}, + language = {eng}, + urldate = {2026-06-09}, + publisher = {McGraw-Hill}, + author = {Hamming, Richard Wesley}, + year = {1962}, + keywords = {Electronic digital computers}, +} + +@misc{thunberg_speech_2019, + address = {London, England}, + type = {Speech}, + series = {Archives of {Women}'s {Political} {Communication}}, + title = {Speech to the {British} {Parliament}}, + url = {https://awpc.cattcenter.iastate.edu/communication/speech-british-parliament-april-23-2019}, + author = {Thunberg, Greta}, + month = apr, + year = {2019}, +} + +@misc{ackoff_video_2003, + address = {Huntington Beach}, + title = {Dr. {Ackoff} {Seminar}}, + volume = {1}, + url = {https://www.youtube.com/watch?v=a0ooqJ-pOH4&t=26s}, + collaborator = {{The Deming Cooperative}}, + month = mar, + year = {2003}, +} + +@misc{bimali_matrix_2026, + title = {Matrix structure and convergence behaviour of the matched eigenfunction method for computing heave wave forces on generalized concentric bodies}, + url = {http://arxiv.org/abs/2605.19730}, + doi = {10.48550/arXiv.2605.19730}, + abstract = {Structural survival of offshore structures is crucial for the growing marine economy. Calculating the added mass, radiation damping, and excitation coefficients to quantify wave loads with the traditional boundary element method (BEM) presents a computational bottleneck. The matched eigenfunction expansion method (MEEM), a long-known but rarely-used alternative, offers computational benefits due to its semi-analytical nature. However, previous work fails to directly compare its accuracy and computational performance with BEM, leaving the extent of its utility unknown. Furthermore, the geometry-dependent convergence for cylindrical and slanted geometries has not yet been documented, making the method's practicality for general geometries unclear. This paper presents a unifying MEEM framework for modeling an arbitrary number of fixed or heaving surface-piercing annular cylinders with continuous and radially-monotonic body profiles, and explores the method's block matrix structure, convergence behavior, ability to accurately approximate slanted geometries, and computational advantages over the BEM solver Capytaine. The numerical experiments show that MEEM can compute hydrodynamic coefficients of slanted geometries within 5\% of Capytaine, even for angles as steep as 15 degrees from vertical. Finally, MEEM can achieve 2\% convergence of its hydrodynamic coefficients an order of magnitude faster than Capytaine with a matrix size two orders of magnitude smaller, making it a computationally effective alternative to traditional BEM solvers. These contributions enable hydrodynamic analysis of a broad range of shapes with increased speed and confidence, paving the way for future optimization studies to yield improved designs.}, + urldate = {2026-06-09}, + publisher = {arXiv}, + author = {Bimali, Yinghui and McCabe, Rebecca and Treacy, Collin and Khanal, Kapil and Lo, En and Haji, Maha}, + month = may, + year = {2026}, + note = {arXiv:2605.19730 [physics.ao-ph]}, + keywords = {Physics - Atmospheric and Oceanic Physics, Physics - Fluid Dynamics}, +} + +@unpublished{mccabe_development_2026, + title = {Development, {Validation}, and {Benchmarking} of a {Multidisciplinary} {Semi}-{Analytical} {Model} for {Wave} {Energy} {Converters}}, + author = {McCabe, Rebecca and Dietrich, Madison and Haji, Maha}, + year = {2026}, + note = {Note: In prep.}, +} + +@unpublished{mccabe_leveraging_2026, + title = {Leveraging {Multidisciplinary} {Design} {Optimization} to {Advance} {Wave} {Energy} {Converter} {Viability}}, + author = {McCabe, Rebecca and Dietrich, Madison and Haji, Maha}, + year = {2026}, + note = {Note: In prep.}, +} + +@book{boyd_convex_2004, + title = {Convex {Optimization}}, + isbn = {978-0-521-83378-3}, + abstract = {Convex optimization problems arise frequently in many different fields. This book provides a comprehensive introduction to the subject, and shows in detail how such problems can be solved numerically with great efficiency. The book begins with the basic elements of convex sets and functions, and then describes various classes of convex optimization problems. Duality and approximation techniques are then covered, as are statistical estimation techniques. Various geometrical problems are then presented, and there is detailed discussion of unconstrained and constrained minimization problems, and interior-point methods. The focus of the book is on recognizing convex optimization problems and then finding the most appropriate technique for solving them. It contains many worked examples and homework exercises and will appeal to students, researchers and practitioners in fields such as engineering, computer science, mathematics, statistics, finance and economics.}, + language = {en}, + publisher = {Cambridge University Press}, + author = {Boyd, Stephen P. and Vandenberghe, Lieven}, + month = mar, + year = {2004}, + note = {Google-Books-ID: mYm0bLd3fcoC}, + keywords = {Business \& Economics / Econometrics, Business \& Economics / Investments \& Securities / General, Computers / Computer Science, Mathematics / General, Mathematics / Linear \& Nonlinear Programming, Mathematics / Optimization, Mathematics / Probability \& Statistics / General, Technology \& Engineering / Electronics / General}, +} + +@article{agrawal_disciplined_2020, + title = {Disciplined quasiconvex programming}, + volume = {14}, + issn = {1862-4480}, + url = {https://doi.org/10.1007/s11590-020-01561-8}, + doi = {10.1007/s11590-020-01561-8}, + abstract = {We present a composition rule involving quasiconvex functions that generalizes the classical composition rule for convex functions. This rule complements well-known rules for the curvature of quasiconvex functions under increasing functions and pointwise maximums. We refer to the class of optimization problems generated by these rules, along with a base set of quasiconvex and quasiconcave functions, as disciplined quasiconvex programs. Disciplined quasiconvex programming generalizes disciplined convex programming, the class of optimization problems targeted by most modern domain-specific languages for convex optimization. We describe an implementation of disciplined quasiconvex programming that makes it possible to specify and solve quasiconvex programs in CVXPY 1.0.}, + language = {en}, + number = {7}, + urldate = {2026-05-05}, + journal = {Optimization Letters}, + author = {Agrawal, Akshay and Boyd, Stephen}, + month = oct, + year = {2020}, + keywords = {Convex optimization, Domain-specific languages, Quasiconvex programming}, + pages = {1643--1657}, +} + +@article{megretski_system_1997, + title = {System analysis via integral quadratic constraints}, + volume = {42}, + issn = {1558-2523}, + url = {https://ieeexplore.ieee.org/document/587335/}, + doi = {10.1109/9.587335}, + abstract = {This paper introduces a unified approach to robustness analysis with respect to nonlinearities, time variations, and uncertain parameters. From an original idea by Yakubovich (1967), the approach has been developed under a combination of influences from the Western and Russian traditions of control theory. It is shown how a complex system can be described, using integral quadratic constraints (IQC) for its elementary components. A stability theorem for systems described by IQCs is presented that covers classical passivity/dissipativity arguments but simplifies the use of multipliers and the treatment of causality. A systematic computational approach is described, and relations to other methods of stability analysis are discussed. Last, but not least, the paper contains a summarizing list of IQCs for important types of system components.}, + number = {6}, + urldate = {2026-04-26}, + journal = {IEEE Transactions on Automatic Control}, + author = {Megretski, A. and Rantzer, A.}, + month = jun, + year = {1997}, + keywords = {Computational modeling, Control system synthesis, Control theory, Design engineering, Feedback, Parameter estimation, Power system modeling, Robust stability, Robustness, Stability analysis}, + pages = {819--830}, +} + +@article{elnagar_pseudospectral_1995, + title = {The pseudospectral {Legendre} method for discretizing optimal control problems}, + volume = {40}, + issn = {1558-2523}, + url = {https://ieeexplore.ieee.org/document/467672}, + doi = {10.1109/9.467672}, + abstract = {This paper presents a computational technique for optimal control problems including state and control inequality constraints. The technique is based on spectral collocation methods used in the solution of differential equations. The system dynamics are collocated at Legendre-Gauss-Lobatto points. The derivative x/spl dot/(t) of the state x(t) is approximated by the analytic derivative of the corresponding interpolating polynomial. State and control inequality constraints are collocated at Legendre-Gauss-Lobatto nodes. The integral involved in the definition of the performance index is discretized based on the Gauss-Lobatto quadrature rule. The optimal control problem is thereby converted into a mathematical programming program. Thus existing, well-developed optimization algorithms may be used to solve the transformed problem. The method is easy to implement, capable of handling various types of constraints, and yields very accurate results. Illustrative examples are included to demonstrate the capability of the proposed method, and a comparison is made with existing methods in the literature.{\textless}{\textgreater}}, + number = {10}, + urldate = {2026-04-08}, + journal = {IEEE Transactions on Automatic Control}, + author = {Elnagar, G. and Kazemi, M.A. and Razzaghi, M.}, + month = oct, + year = {1995}, + keywords = {Chebyshev approximation, Differential equations, Gaussian processes, Lagrangian functions, Mathematical programming, Mathematics, Numerical analysis, Optimal control, Performance analysis, Polynomials}, + pages = {1793--1796}, +} + +@article{hals_comparison_2011, + title = {A {Comparison} of {Selected} {Strategies} for {Adaptive} {Control} of {Wave} {Energy} {Converters}}, + volume = {133}, + issn = {0892-7219}, + url = {https://doi.org/10.1115/1.4002735}, + doi = {10.1115/1.4002735}, + abstract = {Wave-energy converters of the point-absorbing type (i.e., having small extension compared with the wavelength) are promising for achieving cost reductions and design improvements because of a high power-to-volume ratio and better possibilities for mass production of components and devices as compared with larger converter units. However, their frequency response tends to be narrow banded, which means that the performance in real seas (irregular waves) will be poor unless their motion is actively controlled. Only then the invested equipment can be fully exploited, bringing down the overall energy cost. In this work various control methods for point-absorbing devices are reviewed, and a representative selection of methods is investigated by numerical simulation in irregular waves, based on an idealized example of a heaving semisubmerged sphere. Methods include velocity-proportional control, approximate complex conjugated control, approximate optimal velocity tracking, phase control by latching and clutching, and model-predictive control, all assuming a wave pressure measurement as the only external input to the controller. The methods are applied for a single-degree-of-freedom heaving buoy. Suggestions are given on how to implement the controllers, including how to tune control parameters and handle amplitude constraints. Based on simulation results, comparisons are made on absorbed power, reactive power flow, peak-to-average power ratios, and implementation complexity. Identified strengths and weaknesses of each method are highlighted and explored. It is found that overall improvements in average absorbed power of about 100–330\% are achieved for the investigated controllers as compared with a control strategy with velocity-proportional machinery force. One interesting finding is the low peak-to-average ratios resulting from clutching control for wave periods about 1.5 times the resonance period and above.}, + number = {031101}, + urldate = {2026-04-08}, + journal = {Journal of Offshore Mechanics and Arctic Engineering}, + author = {Hals, Jørgen and Falnes, Johannes and Moan, Torgeir}, + month = mar, + year = {2011}, +} + +@article{tan_computationally_2026, + title = {Computationally efficient spectral-domain wave-to-wire modeling of wave energy converters with geared rotary generators}, + volume = {170}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118726001112}, + doi = {10.1016/j.apor.2026.105028}, + abstract = {Wave-to-Wire (W2W) modeling simulates the whole operation process of wave energy converters (WECs), which plays a pivotal role in the systematic design and optimization of WECs. Existing W2W models are predominantly constructed based on time-domain (TD) analysis to coherently incorporate relevant nonlinearities. However, TD models require a high computational cost, which hinders the design iterations of WECs. As a newly emerging alternative approach, spectral-domain (SD) modeling has demonstrated the applicability of describing the W2W process while efficiently covering nonlinear effects through statistical linearization. This study aims to develop an SD W2W modeling approach for WECs coupled with a gearbox and rotary generator. The application of the proposed model is exemplified in two case studies: (1) a point absorber with a rack-pinion system and a rotary generator; (2) a flap-type WEC with a revolving gearbox and a rotary generator. The simulation results obtained by the SD W2W model are compared against a higher-fidelity nonlinear TD W2W model to verify its accuracy across a variety of sea states. A good agreement between the two modeling approaches is observed, in which the maximum relative error is below 7 \% with regard to the estimation of important system outputs. Meanwhile, the computational efficiency of the SD W2W model is thousands of times higher than the TD modeling approach.}, + urldate = {2026-04-07}, + journal = {Applied Ocean Research}, + author = {Tan, Jian and Tao, Ji and Tao, Wei and Xi, Chen and Lavidas, George and Shi, Hongda}, + month = may, + year = {2026}, + keywords = {Geared rotary generator, Spectral-domain modeling, Wave energy converter, Wave-to-wire analysis}, + pages = {105028}, +} + +@book{atherton_nonlinear_1982, + edition = {Student edition}, + title = {Nonlinear {Control} {Engineering}: {Describing} {Function}, {Analysis} and...}, + isbn = {978-0-442-30486-7}, + shorttitle = {Nonlinear {Control} {Engineering}}, + url = {https://www.biblio.com/book/nonlinear-control-engineering-describing-function-analysis/d/1530706447?srsltid=AfmBOopUAO10sh1B9SwmwO78Kn8XmqZsEBUCuyRDsBzWQw9y1AH_QJWz}, + abstract = {Find the best prices on Nonlinear Control Engineering: Describing Function, Analysis and Design by Atherton, Derek P at Biblio {\textbar} Paperback {\textbar} 1982 {\textbar} Chapman \& Hall {\textbar} 9780442304867}, + language = {en}, + urldate = {2026-04-07}, + publisher = {Chapman \& Hall}, + author = {Atherton, Derek P}, + year = {1982}, +} + +@book{ching_quasilinear_2010, + address = {Cambridge}, + title = {Quasilinear {Control}: {Performance} {Analysis} and {Design} of {Feedback} {Systems} with {Nonlinear} {Sensors} and {Actuators}}, + isbn = {978-1-107-00056-8}, + shorttitle = {Quasilinear {Control}}, + url = {https://www.cambridge.org/core/books/quasilinear-control/7FCDA58513EA21BEEB4C3FA941C818BD}, + doi = {10.1017/CBO9780511976476}, + abstract = {This is a textbook and reference for readers interested in quasilinear control (QLC). QLC is a set of methods for performance analysis and design of linear plant or nonlinear instrumentation (LPNI) systems. The approach of QLC is based on the method of stochastic linearization, which reduces the nonlinearities of actuators and sensors to quasilinear gains. Unlike the usual - Jacobian linearization - stochastic linearization is global. Using this approximation, QLC extends most of the linear control theory techniques to LPNI systems. A bisection algorithm for solving these equations is provided. In addition, QLC includes new problems, specific for the LPNI scenario. Examples include Instrumented LQR/LQG, in which the controller is designed simultaneously with the actuator and sensor, and partial and complete performance recovery, in which the degradation of linear performance is either contained by selecting the right instrumentation or completely eliminated by the controller boosting.}, + urldate = {2026-04-07}, + publisher = {Cambridge University Press}, + author = {Ching, ShiNung and Eun, Yongsoon and Gokcek, Cevat and Kabamba, Pierre T. and Meerkov, Semyon M.}, + year = {2010}, +} + +@book{roberts_random_2003, + title = {Random {Vibration} and {Statistical} {Linearization}}, + isbn = {978-0-486-43240-3}, + abstract = {Coherent and self-contained, this volume explains the general method of statistical, or equivalent, linearization and its use in solving random vibration problems. Numerous examples, drawn from a wide variety of engineering problems, offer advanced undergraduate and graduate students a comprehensive view of the method\&\#39;s practical applications. Subjects include general equations of motion and the representation of non-linearities, probability theory and stochastic processes, elements of linear random vibration theory, statistical linearization for simple systems with stationary response, statistical linearization of multi-degree of freedom systems with stationary response, and non-stationary problems. Additional topics include systems with hysteretic non-linearity, relaxation of the Gaussian response assumption, and accuracy of statistical linearization. This updated edition features exclusive material newly prepared by Dr. Spanos, including an appendix, preface, and corrections to the original. 1990 edition.}, + language = {en}, + publisher = {Courier Corporation}, + author = {Roberts, John Brian and Spanos, Pol D.}, + month = dec, + year = {2003}, + note = {Google-Books-ID: xQ7TtGwEMVoC}, + keywords = {Technology \& Engineering / Civil / General, Technology \& Engineering / Engineering (General), Technology \& Engineering / Mechanical}, +} + +@article{vanantwerp_tutorial_2000, + title = {A tutorial on linear and bilinear matrix inequalities}, + volume = {10}, + issn = {0959-1524}, + url = {https://www.sciencedirect.com/science/article/pii/S0959152499000566}, + doi = {10.1016/S0959-1524(99)00056-6}, + abstract = {This is a tutorial on the mathematical theory and process control applications of linear matrix inequalities (LMIs) and bilinear matrix inequalities (BMIs). Many convex inequalities common in process control applications are shown to be LMIs. Proofs are included to familiarize the reader with the mathematics of LMIs and BMIs. LMIs and BMIs are applied to several important process control applications including control structure selection, robust controller analysis and design, and optimal design of experiments. Software for solving LMI and BMI problems is reviewed.}, + number = {4}, + urldate = {2026-04-07}, + journal = {Journal of Process Control}, + author = {VanAntwerp, Jeremy G. and Braatz, Richard D.}, + month = aug, + year = {2000}, + pages = {363--385}, +} + +@article{issoglio_second-order_2026, + title = {Second-order wave excitation forces in {WEC}-{Sim}/{MOST}: {Implementation}, experimental validation, and code-to-code comparison}, + volume = {353}, + issn = {0029-8018}, + shorttitle = {Second-order wave excitation forces in {WEC}-{Sim}/{MOST}}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801826004397}, + doi = {10.1016/j.oceaneng.2026.124605}, + abstract = {Accurate prediction of second-order hydrodynamic loads is essential for floating bodies, including floating offshore wind turbines, wave energy converters, and hybrid wind–wave platforms. These nonlinear effects, arising from both sum- and difference-frequency forcing, are critical for capturing key response characteristics but remain challenging to model efficiently. In this work, we extend the open-source Wave Energy Converter Simulator / MATLAB for Offshore Simulation Tool by implementing second-order wave excitation forces, supporting both the full Quadratic Transfer Function formulation and the Newman approximation. The full Quadratic Transfer Function method is used for all code-to-code comparisons and experimental validation, while the Newman approximation is provided as a computationally lighter alternative. To benchmark the new capability, we perform a code-to-code comparison with OpenFAST and OrcaFlex. We then validate the enhanced model using wave-tank measurements of a 1:96 scale DeepCwind semi-submersible, showing that second-order effects are required to reproduce platform motions. The implementation employs a computationally efficient pre-computation strategy for second-order wave excitation forces, reducing simulation cost while maintaining engineering accuracy. Overall, this work advances the tool as an open-source and versatile tool for modelling floating offshore renewable-energy systems requiring second-order hydrodynamic fidelity.}, + urldate = {2026-03-20}, + journal = {Ocean Engineering}, + author = {Issoglio, Davide and Shabara, Mohamed A. and Petracca, Ermando and Niosi, Francesco and Keester, Adam and Sirigu, Massimo and Bracco, Giovanni}, + month = apr, + year = {2026}, + keywords = {Code-to-code comparison, Experimental validation, Floating offshore wind turbines (FOWTs), Second-order wave excitation forces, WEC-Sim/MOST}, + pages = {124605}, +} + +@inproceedings{mccabe_wec_2025, + address = {Corvallis, OR}, + title = {{WEC} optimization to maximize grid economic value and avoided emissions}, + url = {https://calkit.io/symbiotic-engineering/mdocean/publications#pubs/UMERC-2025-grid-value/UMERC_2025_grid_value.pdf}, + booktitle = {{UMERC}+{OREC} 2025 {Conference}}, + publisher = {University Marine Energy Research Consortium}, + author = {McCabe, Rebecca}, + month = aug, + year = {2025}, + pages = {8}, +} + +@inproceedings{mccabe_open-source_2024, + address = {Duluth, MN}, + title = {Open-source toolbox for semi-analytical hydrodynamic coefficients via the matched eigenfunction expansion method}, + url = {https://zenodo.org/records/14504017}, + doi = {10.5281/zenodo.14504017}, + abstract = {Floating body hydrodynamics are typically solved numerically using the boundary element method. Theassociated code is computationally costly, scaling with the number of mesh panels, and can have accuracy issues atspecific frequencies and for thin bodies. In this work, we instead implement a previously-developed matchedeigenfunction expansion method to semi-analytically solve the linear potential flow radiation problem foraxisymmetric bodies. This method first establishes distinct fluid regions based on the body geometry and expressesthe velocity potential as a function of vertical and radial basis functions (eigenfunctions) with unknown coefficients.Eigenfunctions are chosen to automatically enforce several boundary conditions of the problem. The coefficients arefound by truncating and solving an infinite linear system representing the matching of potential and radial velocityacross fluid region boundaries. This yields a solution for the 3D potential and the hydrodynamic coefficients. Wecompare the results and computational complexity of the matched eigenfunction expansion method with that of thestandard boundary element method. Benefits of the former include 10x faster solve time and lack of meshing, whichare particularly appealing in optimization workflows. Our framework will be released as an open-source pythonpackage to enable future integration with design tools, implementation of gradients, and democratization of thisefficient method. This is a meaningful contribution because prior relevant implementations of the matchedeigenfunction expansion method are, to the authors’ knowledge, private and not available open-source or evencommercially. Future work will extend this formulation to different kinds of bodies and arrays.}, + urldate = {2025-01-03}, + booktitle = {{UMERC} ({University} {Marine} {Energy} {Research} {Consortium}) {Conference} 2024}, + publisher = {Zenodo}, + author = {McCabe, Rebecca and Khanal, Kapil and Haji, Maha}, + month = aug, + year = {2024}, + pages = {6}, +} + +@techreport{ruehl_next-generation_2023, + title = {Next-{Generation} {Marine} {Energy} {Software} {Needs} {Assessment}}, + url = {https://www.osti.gov/biblio/2431205}, + doi = {10.2172/2431205}, + abstract = {The U.S. Department of Energy (DOE) Water Power Technologies Office’s (WPTO) initial investment in marine energy software was driven by needs identified over a decade ago. WPTO-funded research was first launched because of a U.S. congressional mandate that called for the DOE to officially research marine energy technologies, which also established the DOE WPTO in 2008. A congressional mandate requested the WPTO to evaluate a variety of marine energy devices, establish baseline levelized cost of energy estimates, and provide an overall report to Congress. This congressional mandate led to the Reference Model Project (RMP), for which WPTO funded a national multi-laboratory team to develop these reference models, based on state-of-the-art designs of six marine energy converter archetypes that consisted of three current energy converters and three wave energy converters (WEC). Each device was designed to operate for a specific marine resource, thus allowing the devices to serve as reference models for future studies. The RMP congressional report cited the need for improved marine energy software to handle a variety of device designs, as well as a need to standardize performance outputs. Without validated software packages and established metrics, information presented to the WPTO by technology developers could be incorrect or inaccurate and result in misleading conclusions. The recommendation to coordinate WPTO investment in software for numerical modeling and analysis was given a high priority because it would directly fill needs at the time, and focused funding would amplify impact. By sponsoring software development, WPTO would provide industry developers, university researchers, and national laboratories software that could be used, customized, and advanced, thus supporting the overall advancement of marine energy.}, + language = {English}, + number = {SAND--2023-03906R; NREL/TP-5700-84936}, + urldate = {2026-03-14}, + institution = {Sandia National Laboratories (SNL-NM), Albuquerque, NM (United States); National Renewable Energy Laboratory (NREL), Golden, CO (United States)}, + author = {Ruehl, Kelley Michelle and Leon-Quiroga, Jorge Andres and Michelen Strofer, Carlos Alejandro and Topper, Mathew and Tom, Nathan and Baca, Elena and Ogden, David}, + month = may, + year = {2023}, +} + +@unpublished{best_openflash_2026, + type = {In review}, + title = {{OpenFLASH}: {An} open-source flexible library for analytical and semi-analytical hydrodynamics calculations}, + url = {https://joss.theoj.org/papers/842d9827ef856fd88af7128f707f265b}, + author = {Best, Hope and Khanal, Kapil and McCabe, Rebecca and Jiang, Ruiyang and Treacy, Collin and Haji, Maha}, + year = {2026}, + note = {In review}, +} + +@incollection{chicone_contraction_2006, + title = {Contraction}, + isbn = {978-0-387-30769-5}, + url = {https://www.google.com/books/edition/Ordinary_Differential_Equations_with_App/yfY2uGROVrUC}, + abstract = {Mathematics is playing an ever more important role in the physical and biological sciences, provoking a blurring of boundaries between scienti?c disciplines and a resurgence of interest in the modern as well as the cl- sical techniques of applied mathematics. This renewal of interest, both in research and teaching, has led to the establishment of the series Texts in Applied Mathematics (TAM). Thedevelopmentofnewcoursesisanaturalconsequenceofahighlevelof excitement on the research frontier as newer techniques, such as numerical and symbolic computer systems, dynamical systems, and chaos, mix with and reinforce the traditional methods of applied mathematics. Thus, the purpose of this textbook series is to meet the current and future needs of these advances and to encourage the teaching of new courses. TAM will publish textbooks suitable for use in advanced undergraduate and beginning graduate courses, and will complement the Applied Ma- ematical Sciences (AMS) series, which will focus on advanced textbooks and research-level monographs. Pasadena, California J.E. Marsden New York, New York L. Sirovich College Park, Maryland S.S. Antman Preface This book is based on a two-semester course in ordinary di?erential eq- tions that I have taught to graduate students for two decades at the U- versity of Missouri. The scope of the narrative evolved over time from an embryonic collection of supplementary notes, through many classroom tested revisions, to a treatment of the subject that is suitable for a year (or more) of graduate study.}, + language = {en}, + booktitle = {Ordinary {Differential} {Equations} with {Applications}}, + publisher = {Springer Science \& Business Media}, + author = {Chicone, Carmen}, + month = may, + year = {2006}, + note = {Google-Books-ID: yfY2uGROVrUC}, + keywords = {Mathematics / Calculus, Mathematics / Differential Equations / General, Mathematics / Linear \& Nonlinear Programming, Mathematics / Mathematical Analysis, Science / Physics / General}, + pages = {121--144}, +} + +@inproceedings{philip_damping_2012, + address = {Rio de Janeiro, Brazil}, + title = {Damping {Characteristics} of {Heave} {Plates} {Attached} to {Spar} {Hull}}, + url = {https://dx.doi.org/10.1115/OMAE2012-83290}, + doi = {10.1115/OMAE2012-83290}, + abstract = {Damping elements are used in ships and offshore structures as response reduction devices for maintaining the hydrodynamic response within acceptable limits. The use of such elements so far has been based on past experience or using empirical based design approach. An investigation of the wave excitation forces acting on these structures with and without damping elements may give an insight into the damping effects of such elements. Also understanding the flow pattern and the magnitude of flow variation around these elements may be useful to improve the design methods. In the present study, measurement of damping forces and response were carried out to establish the relationship between wave frequency amplitude and damping ratio. It was observed that the damping varies with wave period non-linearly and linearly with wave height. Also it was observed that increase in added mass combined with viscous damping is a key factor for the effectiveness of heave plates in reducing motion response of spar platforms. Of the various configurations tested, the spar with double heave plate at the bottom has higher damping compared to other configurations.}, + language = {en}, + urldate = {2025-04-28}, + booktitle = {{ASME} 2012 31st {International} {Conference} on {Ocean}, {Offshore} and {Arctic} {Engineering}}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Philip, Nimmy Thankom and Nallayarasu, S. and Bhattacharyya, S. K.}, + year = {2012}, + pages = {12}, +} + +@misc{anderson_re-imagining_2024, + address = {Duluth, MN}, + type = {Conference presentation}, + title = {Re-{Imagining} the {RM3} through control co-design}, + url = {https://umerc2024.exordo.com/programme/presentation/106}, + urldate = {2024-12-22}, + author = {Anderson, Megan and Gaebele, Daniel and Roach, Aeron and Forbrush, Dominic and Roberts, Jesse and Weber, Jochem}, + month = aug, + year = {2024}, +} + +@inproceedings{ogden_hydrochrono_2023, + title = {{HydroChrono}: {An} {Open}-{Source} {Hydrodynamics} {Package} for {Project} {Chrono}}, + shorttitle = {{HydroChrono}}, + url = {https://research-hub.nrel.gov/en/publications/hydrochrono-an-open-source-hydrodynamics-package-for-project-chro/}, + doi = {10.36688/ewtec-2023-473}, + language = {American English}, + urldate = {2026-02-27}, + booktitle = {15th {European} {Wave} and {Tidal} {Energy} {Conference}}, + author = {Ogden, David and Quinton, Zuriah and Lataillade, Tristan de and Pallud, Maxime}, + year = {2023}, + pages = {10}, +} + +@inproceedings{mccabe_multidisciplinary_2022, + title = {Multidisciplinary {Optimization} to {Reduce} {Cost} and {Power} {Variation} of a {Wave} {Energy} {Converter}}, + url = {https://asmedigitalcollection.asme.org/IDETC-CIE/proceedings-abstract/IDETC-CIE2022/86229/1150407}, + doi = {10.1115/DETC2022-90227}, + abstract = {Abstract. Wave energy converters (WECs) can advance the global energy transition by producing clean power for utility grids and offshore technologies. This paper provides a multidisciplinary, dual objective optimization of the Reference Model 3 (RM3), a two-body point absorber WEC design benchmark. The simulation model employs linear hydrodynamics with force saturation and probabilistic waves. The RM3 geometry and controller parameters are optimized using sequential quadratic programming to minimize the levelized cost of energy (LCOE) and the coefficient of variation of power. The minimum-LCOE design produces a power variation of 205\% and an LCOE of \$0.08/kWh, a seven-fold cost reduction and 23\% lower variation from the RM3 baseline of \$0.75/kWh and 255\% variation. Parameter sensitivities show that LCOE depends more strongly on site and economic parameters than geometric or material parameters, while power variation is largely insensitive to all parameters. A Pareto trade-offbetween cost and power variation reveals different optimal designs depending on which objective is prioritized, suggesting application-specific design heuristics. Three representative optimal designs are investigated: a minimum-LCOE design for cost-sensitive operations like utility power, a minimum-variation design for cost-insensitive installations like small offshore systems, and a balanced design for intermediate applications. Power probability distributions are shown for each.}, + language = {en}, + urldate = {2023-03-01}, + booktitle = {{ASME} 2022 {International} {Design} {Engineering} {Technical} {Conferences} and {Computers} and {Information} in {Engineering} {Conference}}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {McCabe, Rebecca and Murphy, Olivia and Haji, Maha}, + month = nov, + year = {2022}, + pages = {10}, +} + +@inproceedings{chau_inertia_2012, + title = {Inertia, {Damping}, and {Wave} {Excitation} of {Heaving} {Coaxial} {Cylinders}}, + url = {https://dx.doi.org/10.1115/OMAE2012-83987}, + doi = {10.1115/OMAE2012-83987}, + abstract = {The method of matched eigenfunction expansions is applied in this paper to obtain the hydrodynamic coefficients of a pair of coaxial cylinders, each of which can have independent movement. The geometry idealizes a device for extracting ocean wave energy in the heave mode. The effects of geometric variations and the interaction between cylinders on the hydrodynamic properties are discussed. Analytical expressions for the low-frequency behavior of the hydrodynamic coefficients are also derived. The wave-exciting force on the bottom surface of either one of the cylinders is derived using the radiation solutions, with a generalized form of the Haskind relation developed for this geometry. The presented results are immediately applicable to examine free motion of coaxial cylinders in a wave field.}, + language = {en}, + urldate = {2023-09-28}, + booktitle = {{ASME} 2012 31st {International} {Conference} on {Ocean}, {Offshore} and {Arctic} {Engineering}}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Chau, Fun Pang and Yeung, Ronald W.}, + year = {2012}, + pages = {803--813}, +} + +@mastersthesis{herber_dynamic_2014, + address = {Urbana, Illinois}, + title = {Dynamic system design optimization of wave energy converters utilizing direct transcription}, + copyright = {Copyright 2014 Daniel Ronald Herber}, + url = {https://hdl.handle.net/2142/49463}, + abstract = {Dynamics are playing an increasingly important role in many engineering +domains as these systems become more active and autonomous. Designing +a dynamic engineering system can be challenging. In this thesis, both the problem formulation and solution methods will be discussed for designing a dynamic engineering system. A case is made for the inclusion of both the physical and control system design into a single design formulation. A particular class of numerical methods known as direct transcription is identified as promising solution method. These principles are then demonstrated on the design of a wave energy converter, a device that captures energy present in ocean waves. This system is of particular interest since a successful design hinges on exploiting the natural dynamics of the interaction between the ocean waves and the physical wave energy converter. A number of numerical studies are presented that identify both novel and previously observed strategies for the maximizing energy production of a ocean wave energy converter.}, + urldate = {2023-03-03}, + school = {University of Illinois at Urbana-Champaign}, + author = {Herber, Daniel Ronald}, + month = may, + year = {2014}, +} + +@techreport{azarm_monotonicity-based_1988, + address = {College Park, MD}, + type = {Technical report}, + title = {Monotonicity-{Based} {Decomposition} {Methods} for {Design} {Optimization}.}, + url = {http://hdl.handle.net/1903/4743}, + abstract = {This paper describes applications of global and local monotonicity analysis within a decomposition framework. We present a general formulation and solution procedure, based on a bottom-level global monotoncity analysis, for a design optimization problem which is decomposed into three levels of subproblems. We then perform an optimality test to prove that the optimality conditions for the decomposed subproblems will form the optimality conditions of the overall problem. Furthermore, applications of a two-level decomposition method is presented in which an overall global monotonicity analysis or first-level local monotonicity analysis is performed. Well-known examples illustrate applications of the methods.}, + language = {en\_US}, + number = {SRC TR 88-10}, + urldate = {2026-02-27}, + institution = {University of Maryland College Park}, + author = {Azarm, Shapour and Li, Wei-Chu}, + year = {1988}, + pages = {39}, +} + +@misc{janzou_system_2020, + address = {Golden, CO}, + title = {System {Advisor} {Model} ({SAM})}, + copyright = {BSD-3-Clause}, + url = {https://github.com/NREL/SAM/}, + abstract = {System Advisor Model (SAM)}, + urldate = {2022-05-13}, + publisher = {National Renewable Energy Laboratory}, + author = {Janzou, Steve}, + month = nov, + year = {2020}, + note = {original-date: 2013-01-10T02:52:47Z}, +} + +@article{yoon_spectral_2016, + title = {Spectral {Analysis} of {Electrohydraulic} {System}}, + volume = {139}, + issn = {0022-0434}, + url = {https://doi.org/10.1115/1.4034780}, + doi = {10.1115/1.4034780}, + abstract = {This paper presents spectral analysis of an electrohydraulic system. For a linear system, spectral analysis using a frequency response function (FRF) offers great insight into system dynamics and controls. The objective of this paper is to extend such benefits to the nonlinear electrohydraulic system. To achieve the objective, generalized frequency response functions (GFRFs) and output spectra of the electrohydraulic system are analyzed in frequency domain. In this paper, two different approaches are proposed to derive the GFRFs. In the first approach, the analytic GFRFs are derived from physical dynamics of the electrohydraulic system. Thus, the dynamic features of the electrohydraulic system can be explored with respect to the physical parameters explicitly in frequency domain. In the second approach, the experimental GFRFs are identified from frequency response data. Although the explicit relationship with the physical parameters is not available, they can predict the output spectrum without a priori knowledge of the electrohydraulic system. The proposed approaches are applied to derive the GFRFs analytically and experimentally for spectral analysis of an electrohydraulic system. Spectral analysis reveals the critical dynamic features of the electrohydraulic system in frequency domain, and it turns out to be crucial for system design, identification, and controls of the electrohydraulic system.}, + number = {021005}, + urldate = {2026-03-16}, + journal = {Journal of Dynamic Systems, Measurement, and Control}, + author = {Yoon, Yongsoon and Sun, Zongxuan}, + month = nov, + year = {2016}, +} + +@article{wright_coordinate_2015, + title = {Coordinate descent algorithms}, + volume = {151}, + issn = {1436-4646}, + url = {https://doi.org/10.1007/s10107-015-0892-3}, + doi = {10.1007/s10107-015-0892-3}, + abstract = {Coordinate descent algorithms solve optimization problems by successively performing approximate minimization along coordinate directions or coordinate hyperplanes. They have been used in applications for many years, and their popularity continues to grow because of their usefulness in data analysis, machine learning, and other areas of current interest. This paper describes the fundamentals of the coordinate descent approach, together with variants and extensions and their convergence properties, mostly with reference to convex objectives. We pay particular attention to a certain problem structure that arises frequently in machine learning applications, showing that efficient implementations of accelerated coordinate descent algorithms are possible for problems of this type. We also present some parallel variants and discuss their convergence properties under several models of parallel execution.}, + language = {en}, + number = {1}, + urldate = {2026-02-27}, + journal = {Mathematical Programming}, + author = {Wright, Stephen J.}, + month = jun, + year = {2015}, + keywords = {49M20, 90C25, Coordinate descent, Parallel numerical computing, Randomized algorithms}, + pages = {3--34}, +} + +@article{martins_multidisciplinary_2013, + title = {Multidisciplinary {Design} {Optimization}: {A} {Survey} of {Architectures}}, + volume = {51}, + issn = {0001-1452}, + shorttitle = {Multidisciplinary {Design} {Optimization}}, + url = {https://arc.aiaa.org/doi/10.2514/1.J051895}, + doi = {10.2514/1.J051895}, + abstract = {Multidisciplinary design optimization is a field of research that studies the application of numerical optimization techniques to the design of engineering systems involving multiple disciplines or components. Since the inception of multidisciplinary design optimization, various methods (architectures) have been developed and applied to solve multidisciplinary design-optimization problems. This paper provides a survey of all the architectures that have been presented in the literature so far. All architectures are explained in detail using a unified description that includes optimization problem statements, diagrams, and detailed algorithms. The diagrams show both data and process flow through the multidisciplinary system and computational elements, which facilitate the understanding of the various architectures, and how they relate to each other. A classification of the multidisciplinary design-optimization architectures based on their problem formulations and decomposition strategies is also provided, and the benefits and drawbacks of the architectures are discussed from both theoretical and experimental perspectives. For each architecture, several applications to the solution of engineering-design problems are cited. The result is a comprehensive but straightforward introduction to multidisciplinary design optimization for nonspecialists and a reference detailing all current multidisciplinary design-optimization architectures for specialists.}, + number = {9}, + urldate = {2023-12-04}, + journal = {AIAA Journal}, + publisher = {American Institute of Aeronautics and Astronautics}, + author = {Martins, Joaquim R. R. A. and Lambe, Andrew B.}, + month = sep, + year = {2013}, + note = {\_eprint: https://doi.org/10.2514/1.J051895}, + pages = {2049--2075}, +} + +@article{reveyrand_multiport_2018, + address = {Brive La Gaillarde, France}, + title = {Multiport conversions between {S}, {Z}, {Y}, h, {ABCD}, and {T} parameters}, + copyright = {https://doi.org/10.15223/policy-029}, + url = {https://ieeexplore.ieee.org/document/8430023/}, + doi = {10.1109/INMMIC.2018.8430023}, + abstract = {This paper presents main formulas to convert S, Z, Y, h, ABCD and T parameters of multiport circuits. Formulas are presented in matrix form, and some restrictions on unbalanced systems for cascade parameters are discussed. Those expressions are prime of importance in order to analyze and optimize multiport systems without any simulation software.}, + urldate = {2026-02-05}, + journal = {2018 International Workshop on Integrated Nonlinear Microwave and Millimetre-wave Circuits (INMMIC)}, + publisher = {IEEE}, + author = {Reveyrand, T.}, + month = jul, + year = {2018}, + note = {Conference Name: 2018 International Workshop on Integrated Nonlinear Microwave and Millimetre-wave Circuits (INMMIC) +ISBN: 9781538655078}, + pages = {1--3}, +} + +@book{saadat_power_1999, + title = {Power system analysis}, + volume = {2}, + url = {https://www.uvic.ca/ecs/ece/assets/docs/current/undergraduate/201901/ece488.pdf}, + urldate = {2026-02-02}, + publisher = {McGraw-hill}, + author = {Saadat, Hadi}, + year = {1999}, +} + +@misc{weisstein_cassini_2026, + type = {Text}, + title = {Cassini {Ovals}}, + copyright = {Copyright 1999-2026 Wolfram Research, Inc. See https://mathworld.wolfram.com/about/terms.html for a full terms of use statement.}, + url = {https://mathworld.wolfram.com/CassiniOvals.html}, + abstract = {The Cassini ovals are a family of quartic curves, also called Cassini ellipses, described by a point such that the product of its distances from two fixed points a distance 2a apart is a constant b{\textasciicircum}2. The shape of the curve depends on b/a. If a{\textless}b, the curve is a single loop with an oval (left figure above) or dog bone (second figure) shape. The case a=b produces a lemniscate (third figure). If a{\textgreater}b, then the curve consists of two loops (right figure). Cassini ovals are anallagmatic...}, + language = {en}, + urldate = {2026-02-02}, + journal = {MathWorld - a Wolfram Resource}, + publisher = {Wolfram Research, Inc.}, + author = {Weisstein, Eric W.}, + month = jan, + year = {2026}, +} + +@book{tedrake_underactuated_2024, + title = {Underactuated {Robotics}: {Algorithms} for {Walking}, {Running}, {Swimming}, {Flying}, and {Manipulation}}, + url = {https://underactuated.csail.mit.edu}, + author = {Tedrake, Russ}, + year = {2024}, + note = {Published: Course Notes for MIT 6.832}, +} + +@article{coe_co-design_2025, + title = {Co-design of a wave energy converter through bi-conjugate impedance matching}, + volume = {111}, + issn = {0957-4158}, + url = {https://www.sciencedirect.com/science/article/pii/S0957415825001047}, + doi = {10.1016/j.mechatronics.2025.103395}, + abstract = {As with other oscillatory power conversion systems, the design of wave energy converters can be understood as an impedance matching problem. By representing the wave energy converter as a multi-port network, two separate but related impedance matching conditions can be established. Satisfying these conditions maximizes power transfer to the load. In practice, these impedance matching conditions may be used to influence the design of the system (including the hull, power take-off, controller, mooring, etc.). To this end, this paper considers some example applications of wave energy converter design with the help of the impedance matching framework.}, + urldate = {2025-12-16}, + journal = {Mechatronics}, + author = {Coe, Ryan G. and Bacelli, Giorgio and Gaebele, Daniel and Keow, Alicia and Forbush, Dominic}, + month = nov, + year = {2025}, + keywords = {Control co-design, Impedance matching, Wave energy converter (WEC)}, + pages = {103395}, +} + +@article{edwards_effect_2025, + title = {The effect of device geometry on the performance of a wave energy converter}, + volume = {4}, + copyright = {2025 The Author(s)}, + issn = {2731-3395}, + url = {https://www.nature.com/articles/s44172-025-00441-2}, + doi = {10.1038/s44172-025-00441-2}, + abstract = {Wave energy presents an excellent opportunity to add much-needed diversification to the global renewable energy portfolio. However, a competitive levelised cost of electricity for wave energy conversion devices is yet to be proven. Here, we optimise the geometry of a wave energy device to maximise power while also minimising the power take-off reaction moments. Using theory, numerical modelling and optimisation techniques, we show that by including minimisation of reaction moments in the optimisation, instead of only maximisation of power, it is possible to substantially lower the design loads while maintaining high efficiency. Using the underlying physics of how geometry affects the wave-structure interaction, we explain the resulting performance of these new designs for wave energy converters. We examine the resulting geometries for practicality, including performance over a wide range of sea states, motion requirements, and performance in a real sea-state off the coast of Scotland, United Kingdom. Comparing against the single shape which extracts the theoretical maximum power, the optimal shapes found in our study extract almost as much power (12\% less) with substantially less moment (reduced by up to 35\%), revealing a promising direction for wave energy development.}, + language = {en}, + number = {1}, + urldate = {2025-09-24}, + journal = {Communications Engineering}, + publisher = {Nature Publishing Group}, + author = {Edwards, Emma C. and Whitlam, Craig and Chapman, John and Hughes, Jack and Redfearn, Bryony and Brown, Scott and Draper, Scott and Borthwick, Alistair G. L. and Foster, Graham and Yue, Dick K.-P. and Hann, Martyn and Greaves, Deborah}, + month = jun, + year = {2025}, + keywords = {Civil engineering, Devices for energy harvesting, Mechanical engineering, Renewable energy}, + pages = {107}, +} + +@article{bacelli_system_2017, + title = {System {Identification} of a {Heaving} {Point} {Absorber}: {Design} of {Experiment} and {Device} {Modeling}}, + volume = {10}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {System {Identification} of a {Heaving} {Point} {Absorber}}, + url = {https://www.mdpi.com/1996-1073/10/4/472}, + doi = {10.3390/en10040472}, + abstract = {Empirically based modeling is an essential aspect of design for a wave energy converter. Empirically based models are used in structural, mechanical and control design processes, as well as for performance prediction. Both the design of experiments and methods used in system identification have a strong impact on the quality of the resulting model. This study considers the system identification and model validation process based on data collected from a wave tank test of a model-scale wave energy converter. Experimental design and data processing techniques based on general system identification procedures are discussed and compared with the practices often followed for wave tank testing. The general system identification processes are shown to have a number of advantages, including an increased signal-to-noise ratio, reduced experimental time and higher frequency resolution. The experimental wave tank data is used to produce multiple models using different formulations to represent the dynamics of the wave energy converter. These models are validated and their performance is compared against one another. While most models of wave energy converters use a formulation with surface elevation as an input, this study shows that a model using a hull pressure measurement to incorporate the wave excitation phenomenon has better accuracy.}, + language = {en}, + number = {4}, + urldate = {2025-07-14}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Bacelli, Giorgio and Coe, Ryan G. and Patterson, David and Wilson, David}, + month = apr, + year = {2017}, + note = {Number: 4}, + keywords = {model validation, system identification, wave energy, wave tank testing}, + pages = {472}, +} + +@article{kristiansen_state-space_2005, + title = {State-space representation of radiation forces in time-domain vessel models}, + volume = {32}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801805000946}, + doi = {10.1016/j.oceaneng.2005.02.009}, + abstract = {The paper presents a method for generating a new and efficient time-domain formulation of the equations of motion for a vessel with frequency-dependent hydrodynamic coefficients. Previous work on this topic has relied on the use of convolution terms, whereas in this work state-space models are used. This leads to a model formulation that is well suited for controller design and simulation.}, + number = {17}, + urldate = {2025-07-14}, + journal = {Ocean Engineering}, + author = {Kristiansen, Erlend and Hjulstad, Åsmund and Egeland, Olav}, + month = dec, + year = {2005}, + keywords = {Convolution integral, Discretization, Frequency-dependent characteristics, State-space realization, Time-domain}, + pages = {2195--2216}, +} + +@article{greenhow_added_1988, + title = {Added mass and damping of horizontal circular cylinder sections}, + volume = {15}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/0029801888900121}, + doi = {10.1016/0029-8018(88)90012-1}, + abstract = {This note brings together and extends previously known results for the added masses and dampings of surface-piercing or completely submerged horizontal circular cylinders. For vertical (heave) motions, but not horizontal (sway) motions, a striking qualitative change occurs in these hydrodynamic coefficients when the cylinder breaks the surface. This is simply explained in terms of low-frequency asymptotics and the equivalent wavemaker method.}, + number = {5}, + urldate = {2025-07-14}, + journal = {Ocean Engineering}, + author = {Greenhow, M. and Ahn, S. I.}, + month = jan, + year = {1988}, + pages = {495--504}, +} + +@incollection{mckinley_dimensional_2021, + address = {Cambridge, MA}, + edition = {Spring 2021}, + title = {Dimensional {Analysis}}, + booktitle = {2.006: {Thermal} {Fluids} {Engineering} {II}}, + publisher = {MIT CopyTech}, + author = {McKinley, Garreth and Cheng, W and Brisson, John}, + year = {2021}, + pages = {78}, +} + +@misc{van_den_herik_idemat_2024, + type = {Excel sheet}, + title = {Idemat scope 3 eco-costs}, + url = {https://www.ecocostsvalue.com/data-tools-books/}, + urldate = {2024-04-15}, + author = {van den Herik, Jasper and Vögtlander, Joost}, + year = {2024}, +} + +@article{wu_development_2020, + title = {Development and validation of a high-resolution regional wave hindcast model for {U}.{S}. {West} {Coast} wave resource characterization}, + volume = {152}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148120300963}, + doi = {10.1016/j.renene.2020.01.077}, + abstract = {Wave resource characterization is an essential step for wave energy converter development in the ocean. However, accurate and detailed resource characterization at a regional scale poses a great challenge because of the requirements for high model grid resolution, extensive model validation, and a high-performance-computing resource. This study presents a multi-scale, multi-resolution approach using the WaveWatchIII and Simulating WAve Nearshore (SWAN) wave models to provide accurate long-term wave hindcasts with a spatial resolution of approximate 300 m in the nearshore region on the U.S. West Coast. Extensive model validation for the six wave resource parameters recommended by the International Electrotechnical Commission, bivariate histograms, and frequency-directional spectra distributions were conducted using a set of model performance metrics and measurements from 28 wave buoys along the West Coast. Model skills in simulating large waves under extreme storm events were also evaluated. Model results showed that the high-resolution SWAN model is able to accurately simulate the wave climate on the West Coast, especially in the nearshore region. This study also demonstrates that the multi-scale and multi-resolution modeling framework is an efficient approach for generating accurate long-term, high-resolution wave hindcasts for wave resource characterization at the regional scale.}, + urldate = {2025-07-02}, + journal = {Renewable Energy}, + author = {Wu, Wei-Cheng and Wang, Taiping and Yang, Zhaoqing and García-Medina, Gabriel}, + month = jun, + year = {2020}, + keywords = {High-resolution wave hindcast, Model validation, SWAN, U.S. West Coast, Unstructured-grid model, WaveWatchIII}, + pages = {736--753}, +} + +@article{allahdadi_development_2019, + title = {Development and validation of a regional-scale high-resolution unstructured model for wave energy resource characterization along the {US} {East} {Coast}}, + volume = {136}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148119300175}, + doi = {10.1016/j.renene.2019.01.020}, + abstract = {Leveraging the high-performance computing capability at one of the US Department of Energy’s (USDOE) National Laboratories, an ultra-high-resolution Simulating WAves Nearshore (SWAN) model suitable for wave energy project feasibility studies is developed for the US East Coast Region. This model uses an unstructured mesh with a coastal resolution of 200 m. It is forced by Climate Forecast System Reanalysis wind fields with spatial and temporal resolutions of 0.312° and 1 h at the surface, and by wave parameters from the global WAVEWATCH III model along the model’s open boundaries. It is the first USDOE regional wave hindcast model for the US East Coast developed according to International Electrotechnical Commission standards for wave energy resource assessment and characterization. The present study focuses on the development and validation of this ultra-high resolution large-scale model, including source model selection, sensitivity studies, and model performance evaluation for a wave energy resource characterization application.}, + urldate = {2025-07-02}, + journal = {Renewable Energy}, + author = {Allahdadi, M. Nabi and Gunawan, Budi and Lai, Jonathan and He, Ruoying and Neary, Vincent S.}, + month = jun, + year = {2019}, + keywords = {US East Coast, Wave energy, Wave modeling}, + pages = {500--511}, +} + +@article{mehta_designing_2024, + title = {Designing wind turbines for profitability in the day-ahead market}, + volume = {9}, + issn = {2366-7443}, + url = {https://wes.copernicus.org/articles/9/2283/2024/}, + doi = {10.5194/wes-9-2283-2024}, + abstract = {Traditionally, wind turbine and wind farm designs have been optimized to minimize the cost of energy. Such a design would make sense when bidding in price-based auctions. However, in a future with a high share of renewables and zero subsidies, the wind farm developer is exposed to the volatility of market prices, where the price paid per kilowatt-hour of energy would not be constant anymore. The developer might then have to maximize the revenue earned by participating in different energy, capacity, or ancillary services markets. In such a scenario, a turbine designed for maximizing its market value could be more profitable for the developer compared to a turbine designed for minimizing the levelized cost of electricity (LCoE). This study is in line with this paradigm shift in the field of turbine and farm design. It is a continuation of a previous study conducted by the same authors (Mehta et al., 2024), which explicitly focused on the drivers of turbine sizing with respect to LCoE. The goal of this study is to optimize the design for a new set of objective functions and analyze how various day-ahead market conditions and objectives drive turbine design. A simplified market model that can generate hourly day-ahead market prices is developed and coupled with a wind-farm-level multidisciplinary design analysis and optimization (MDAO) framework to evaluate key economic indicators of the wind farm. The results show how the optimum turbine design is driven by both the choice of the economic metric and the market scenario. However, an LCoE-optimized design is found to perform well with respect to profitability-based economic metrics like modified internal rate of return (MIRR) or profitability index (PI), indicating a limited need to redesign turbines for a specific day-ahead market scenario.}, + language = {English}, + number = {12}, + urldate = {2025-07-01}, + journal = {Wind Energy Science}, + publisher = {Copernicus GmbH}, + author = {Mehta, Mihir Kishore and Zaaijer, Michiel and von Terzi, Dominic}, + month = dec, + year = {2024}, + pages = {2283--2300}, +} + +@techreport{moraski_beyond_2025, + title = {Beyond {LCOE}: {A} {Systems}-{Oriented} {Perspective} for {Evaluating} {Electricity} {Decarbonization} {Pathways}}, + shorttitle = {Beyond {LCOE}}, + url = {https://www.catf.us/resource/beyond-lcoe/}, + abstract = {This report explains why Levelized Cost of Electricity (LCOE) fails to reflect the full complexity of electricity systems.}, + language = {en}, + urldate = {2025-07-01}, + institution = {Clean Air Task Force}, + author = {Moraski, Jill and Qvist, Malwina and Spokas, Kasparas}, + month = may, + year = {2025}, +} + +@mastersthesis{makaremi_economic_2025, + title = {Economic {Evaluation} {Metrics} for {Energy} {Island} {Solutions}, including wind and wave energy generation systems}, + url = {https://openarchive.usn.no/usn-xmlui/handle/11250/3202262}, + abstract = {In response to the global push for decarbonization and sustainable energy development, energy islands have emerged as a strategic concept for large-scale renewable electricity generation. While their technical potential is significant, the economic viability of such systems remains uncertain and requires a comprehensive assessment. This thesis investigates the economic evaluation of offshore energy island solutions utilizing wind, wave, and hybrid wind–wave configurations. + +The main objective of this research is to use a comprehensive set of established and profitability metrics to evaluate and compare the techno-economic performance of different Energy Island configurations. Four distinct configurations were assessed: standalone wind, standalone wave, wind-dominant hybrid, and wave-dominant hybrid systems. The case study is based on an offshore site near Stavanger, Norway, and simulations were performed using HOMER software. + +The methodology included device selection, Capital Expenditure and Operational Expenditure estimation, annual energy production (AEP) calculation, revenue forecasting, and the application of a wide range of economic evaluation metrics. These metrics are categorized as follows: + + * Non-Comprehensive Metrics: Levelized Cost of Energy (LCOE), Levelized Value of Energy (LVOE), Value Factor (VF) + * Comprehensive Metrics: Net Value of Energy (NVOE), Net Value of Capacity (NVOC), System LCOE (SLCOE) + * Profitability Metrics: Benefit-Cost Ratio (BCR), Cost-Benefit Ratio (CBR), Return on Investment (ROI), Profit Margin (PM), and Profitability-adjusted LCOE (PLCOE) +In addition, sensitivity analyses were conducted to assess the impact of key financial variables, such as discount rate and wave energy CAPEX, on the economic feasibility of different energy island configurations, with the aim of identifying break-even conditions and informing investment decisions. + +The results reveal that while wave-only systems remain economically challenging, hybrid wind–wave configurations, particularly those with cost optimization, can offer improved economic outcomes. The study concludes that applying a multi-metric evaluation approach provides a clearer picture of competitiveness, supporting better-informed decisions for future investments in offshore renewable infrastructure.}, + language = {eng}, + urldate = {2025-07-01}, + school = {University of South-Eastern Norway}, + author = {Makaremi, Elaheh}, + year = {2025}, + note = {Accepted: 2025-06-27T16:41:58Z}, +} + +@article{kainz_how_2024, + title = {How do technological choices affect the economic and environmental performance of offshore wind farms?}, + volume = {2767}, + issn = {1742-6596}, + url = {https://dx.doi.org/10.1088/1742-6596/2767/8/082005}, + doi = {10.1088/1742-6596/2767/8/082005}, + abstract = {The ongoing energy transition towards fully sustainable energy systems requires designing wind farms looking beyond the sole levelized cost of energy, in order to concurrently ensure not only the economic profitability but also the environmental friendliness of future plants. Within this new approach to design, it becomes necessary to understand the effects that various possible technological choices have on both the economic and the environmental performance of wind farms. This study presents a framework designed to support these coupled economic-environmental assessments. The capabilities of the code are showcased by analysing the impact of different choices in terms of support structure type, specific power, tower height, powertrain type, and array and export voltage level for an exemplary offshore farm, chosen here as the IEA Wind 740-10-MW Reference Offshore Wind Plant with irregular layout. While the effects of many technological choices on the cost of energy are already well understood by industry, the present analysis shows that — at least in this specific case — climate change impacts are mainly driven by steel production, due to the massive amount of required material, but also, interestingly, by vessel activities. A low specific power, tall towers, and a high export cable voltage appear to offer the greatest potential for the concurrent improvement of the environmental and economic performance of the plant.}, + language = {en}, + number = {8}, + urldate = {2025-07-01}, + journal = {Journal of Physics: Conference Series}, + publisher = {IOP Publishing}, + author = {Kainz, S and Guilloré, A and Bottasso, C L}, + month = jun, + year = {2024}, + pages = {082005}, +} + +@article{canet_eco-conscious_2023, + title = {The eco-conscious wind turbine: design beyond purely economic metrics}, + volume = {8}, + issn = {2366-7443}, + shorttitle = {The eco-conscious wind turbine}, + url = {https://wes.copernicus.org/articles/8/1029/2023/}, + doi = {10.5194/wes-8-1029-2023}, + abstract = {Wind turbines are designed to minimize the economic cost of energy, a metric aimed at making wind competitive with other energy-producing technologies. However, now that wind energy is competitive, how can we increase its value for the environment and for society? And how much would environmental and societal gains cost other stakeholders, such as investors or consumers? This paper tries to answer these questions, limitedly to climate-related environmental impacts, from the perspective of wind turbine design. + + Although wind turbines produce green renewable energy, they also have various impacts on the environment, as do all human endeavors. Among all impacts, the present work adopts the environmental effects produced by a turbine over its entire life cycle, expressed in terms of CO2-equivalent emissions. A new approach to design is proposed, whereby Pareto fronts of solutions are computed to define optimal trade-offs between economic and environmental goals. + + The new proposed methodology is demonstrated on the redesign of a baseline 3 MW wind turbine at two locations in Germany, differing for typical wind speeds but within the same energy market. Among other results, it is found that, in these conditions, a 1 \% increase in the cost of energy can buy about a 5 \% decrease in the environmental impact of the turbine. Additionally, it is also observed that in the specific case of Germany, very low-specific-power designs are typically favored, because they produce more energy at low wind speeds, where both the economic and environmental values of wind are higher. Furthermore, it is found that the CO2-equivalent emissions displaced by a wind turbine are 1 order of magnitude larger than the produced emissions. + + Although limited to the sole optimization of wind-generating assets at two different locations, these results suggest the existence of new opportunities for the future development of wind energy where, by shifting the focus slightly away from a purely cost-driven short-term perspective, longer-term benefits for the environment (and, in turn, for society) may be obtained.}, + language = {English}, + number = {6}, + urldate = {2025-07-01}, + journal = {Wind Energy Science}, + publisher = {Copernicus GmbH}, + author = {Canet, Helena and Guilloré, Adrien and Bottasso, Carlo L.}, + month = jun, + year = {2023}, + pages = {1029--1047}, +} + +@misc{bonaldo_genxprojectgenxjl_2025, + title = {{GenXProject}/{GenX}.jl: v0.4.4}, + shorttitle = {{GenXProject}/{GenX}.jl}, + url = {https://zenodo.org/records/14807684}, + doi = {10.5281/zenodo.14807684}, + abstract = {GenX v0.4.4 + +Diff since v0.4.3 + +Merged pull requests: + + + +Fix path manipulation bug \#827 (\#828) (@cfe316) + + +Closed issues: + + + +[Bug]: model errors out when TimeDomainReduction and OutputFullTimeSeries are both activated (\#827)}, + urldate = {2025-06-30}, + publisher = {Zenodo}, + author = {Bonaldo, Luca and Chakrabarti, Sambuddha and Cheng, Fangwei and Ding, Yifu and Jenkins, Jesse D. and Luo, Qian and Macdonald, Ruaridh and Mallapragada, Dharik and Manocha, Aneesha and Mantegna, Gabe and Morris, Jack and Patankar, Neha and Pecci, Filippo and Schwartz, Aaron and Schwartz, Jacob and Schivley, Greg and Sepulveda, Nestor and Xu, Qingyu and Zhou, Justin}, + month = feb, + year = {2025}, +} + +@misc{schivley_powergenomepowergenome_2025, + title = {{PowerGenome}/{PowerGenome}: v0.7.0}, + shorttitle = {{PowerGenome}/{PowerGenome}}, + url = {https://zenodo.org/records/15066032}, + doi = {10.5281/zenodo.15066032}, + abstract = {The major feature bump in this version is formatting outputs to match inputs required for GenX 0.4.. It is still possible to create inputs for GenX 0.3. using a settings parameter old\_genx\_format: true. Output folder structure has also changed to always follow the format {\textless}case{\textgreater}/Inputs/Inputs\_p*. + +Other non-breaking changes and updates: + + + +Directly use hourly demand data when they are available for a planning year. This is not compatible with constructing demand profiles using end-use stock values and hourly demand factors. + +The case/scenario description file is no longer used. Case/scenario names are set entirely within the scenario definitions file. + +Resources without an assigned fuel will now have the fuel name No\_fuel instead of None. Starting in v2.0 Pandas treats the None string as NaN by default, which can cause data processing issues. + + +What's Changed + + + +Bug fix: RG dicts were somehow modified before use by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/345 + +[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/PowerGenome/PowerGenome/pull/347 + +Fix typo by @mfripp in https://github.com/PowerGenome/PowerGenome/pull/346 + +Improve message for generators without lat/lon data by @mfripp in https://github.com/PowerGenome/PowerGenome/pull/355 + +370 fix sqlite bug from double quoted f strings by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/371 + +Rebase sql fixes into feature branch by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/372 + +Rebase sql fixes into feature branch output-format-genx-0.4 by @lbonaldo in https://github.com/PowerGenome/PowerGenome/pull/376 + +Convert julia output formatting script to python function by @lbonaldo in https://github.com/PowerGenome/PowerGenome/pull/374 + +Refactor scenario settings handling, remove unused case ID mapping function by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/369 + +Only include proposed gens built on or before model\_year by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/342 + +Include UTC offset in unique hash for renewables clusters by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/362 + +Directly use demand data by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/378 + +Update fuel label from "None" to "No\_fuel" in generator functions and… by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/379 + +380 tech matching fails when string contains special regex characters by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/381 + +Output format genx 0.4 by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/377 + +Fixes and features up to 0.7.0 by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/384 + + +New Contributors + + + +@lbonaldo made their first contribution in https://github.com/PowerGenome/PowerGenome/pull/376 + + +Full Changelog: https://github.com/PowerGenome/PowerGenome/compare/v0.6.3...v0.7.0}, + urldate = {2025-06-30}, + publisher = {Zenodo}, + author = {Schivley, Greg and Welty, Ethan and Patankar, Neha and Jacobson, Anna and Xu, Qingyu and Manocha, Aneesha and Pecora, Braden and Bhandarkar, Riti and Jenkins, Jesse D. and Fripp, Matthias and Bonaldo, Luca}, + month = mar, + year = {2025}, +} + +@article{beatty_experimental_2015, + title = {Experimental and numerical comparisons of self-reacting point absorber wave energy converters in regular waves}, + volume = {104}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801815002115}, + doi = {10.1016/j.oceaneng.2015.05.027}, + abstract = {An experimental and numerical comparison of the performance of two self-reacting point absorber wave energy converter designs is undertaken for heave motions. The designs are either currently, or have recently been, under development for commercialization. The experiments consist of a series of 1:25 scale model tests. The physical model features a re-configurable reacting body shape, a feedback controlled power take-off, and a heave motion constraint apparatus. Detailed descriptions of the reconfigurable model design, the analysis/test methodologies, and power capture are given. An extension of Budal׳s theoretical upper bound on power capture for application to self-reacting point absorbers is proposed. A quantitative comparison is made of the two self-reacting point absorber designs in terms of displacement, power take-off force requirements, and power capture in typical (non-extreme) operating conditions with reference to theoretical upper bounds. The design implications of a reactive power take-off control scheme and relative motion constraints on the wave energy converters are investigated using an experimentally validated numerical dynamics model.}, + urldate = {2025-05-12}, + journal = {Ocean Engineering}, + author = {Beatty, Scott J. and Hall, Matthew and Buckham, Bradley J. and Wild, Peter and Bocking, Bryce}, + month = aug, + year = {2015}, + keywords = {Frequency domain, Model testing, Point absorbers, Power take-off, Self-reacting, Wave energy conversion}, + pages = {370--386}, +} + +@article{evans_maximum_1981, + title = {Maximum wave-power absorption under motion constraints}, + volume = {3}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/0141118781900638}, + doi = {10.1016/0141-1187(81)90063-8}, + abstract = {An expression is derived for the maximum mean power that can be absorbed by a system of oscillating bodies in waves under a global constraint on their motions. The particular case of a single half-immersed sphere is used to show how the ‘point absorber’ result predicting capture widths in excess of unity must be modified. The theory is also applied to the submerged cylinder wave-energy device and curves are presented which show how the maximum efficiency is affected by restricting the motion of the device.}, + number = {4}, + urldate = {2025-05-12}, + journal = {Applied Ocean Research}, + author = {Evans, D. V.}, + month = oct, + year = {1981}, + pages = {200--203}, +} + +@techreport{cotrell_analysis_2014, + title = {Analysis of {Transportation} and {Logistics} {Challenges} {Affecting} the {Deployment} of {Larger} {Wind} {Turbines}: {Summary} of {Results}}, + shorttitle = {Analysis of {Transportation} and {Logistics} {Challenges} {Affecting} the {Deployment} of {Larger} {Wind} {Turbines}}, + url = {https://www.osti.gov/biblio/1123207}, + doi = {10.2172/1123207}, + abstract = {There is relatively little literature that characterizes transportation and logistics challenges and the associated effects on U.S. wind markets. The objectives of this study were to identify the transportation and logistics challenges, assess the associated impacts, and provide recommendations for strategies and specific actions to address the challenges. The authors primarily relied on interviews with wind industry project developers, original equipment manufacturers, and transportation and logistics companies to obtain the information and industry perspectives needed for this study. They also reviewed published literature on trends and developments in increasing wind turbine size, logistics, and transportation issues.}, + language = {English}, + number = {NREL/TP-5000-61063}, + urldate = {2025-04-22}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Cotrell, J. and Stehly, T. and Johnson, J. and Roberts, J. O. and Parker, Z. and Scott, G. and Heimiller, D.}, + month = jan, + year = {2014}, +} + +@book{reed_addressing_2022, + title = {Addressing {Uncertainty} in {Multisector} {Dynamics} {Research}}, + url = {https://uc-ebook.org}, + doi = {10.5281/zenodo.6110623}, + publisher = {Zenodo}, + author = {Reed, Patrick M. and Hadjimichael, Antonia and Malek, Keyvan and Karimi, Tina and Vernon, Chris R. and Srikrishnan, Vivek and Gupta, Rohini S. and Gold, David F. and Lee, Ben and Keller, Klaus and Thurber, Travis B. and Rice, Jennie S.}, + year = {2022}, +} + +@misc{national_renewable_energy_laboratory_2024_2024, + title = {2024 {Annual} {Technology} {Baseline}}, + url = {https://atb.nrel.gov/electricity/2024/technologies}, + urldate = {2025-04-14}, + author = {{National Renewable Energy Laboratory}}, + year = {2024}, +} + +@book{box_statistics_1978, + title = {Statistics for experimenters: an introduction to design, data analysis, and model building}, + shorttitle = {Statistics for experimenters}, + publisher = {Wiley}, + author = {Box, George E. P. and Hunter, William Gordon and Hunter, J. Stuart}, + year = {1978}, +} + +@inproceedings{hendrikx_optimal_2017, + title = {Optimal control of a wave energy converter}, + url = {https://ieeexplore.ieee.org/document/8062556}, + doi = {10.1109/CCTA.2017.8062556}, + abstract = {The optimal control strategy for a wave energy converter (WEC) with constraints on the control torque is investigated. The goal is to optimize the total energy delivered to the electricity grid. Using Pontryagin's maximum principle, the solution is found to be singular-bang. Using higher order conditions, the optimal control on the singular arc is found as a function of the state and costate trajectories. Furthermore, it is shown that the transitions between bang and singular subarcs are discontinuous. Based on these findings the results of a numerical direct method are validated. Finally, the optimal control is used to benchmark an existing MPC strategy. It is found that for active control torque constraints the MPC strategy does not result in the discontinuous singular-bang transitions. However, the difference in harvested power is small.}, + urldate = {2025-03-11}, + booktitle = {2017 {IEEE} {Conference} on {Control} {Technology} and {Applications} ({CCTA})}, + author = {Hendrikx, R. W. M. and Leth, J. and Andersen, P. and Heemels, W. P. M. H.}, + month = aug, + year = {2017}, + keywords = {Force, Friction, Mathematical model, Open area test sites, Optimal control, Torque, Trajectory}, + pages = {779--786}, +} + +@article{coe_practical_2021, + title = {A practical approach to wave energy modeling and control}, + volume = {142}, + issn = {1364-0321}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032121000861}, + doi = {10.1016/j.rser.2021.110791}, + abstract = {The potential for control design to dramatically improve the economic viability of wave energy has generated a great deal of interest and excitement. However, for a number of reasons, the promised benefits from better control designs have yet to be widely realized by wave energy devices and wave energy remains a relatively nascent technology. This brief paper summarizes a simple, yet powerful approach to wave energy dynamics modeling, and subsequent control design based on impedance matching. Our approach leverages the same concepts that are exploited by a simple FM radio to achieve a feedback controller for wave energy devices that approaches optimal power absorption. If fully utilized, this approach can deliver immediate and consequential reductions to the cost of wave energy. Additionally, this approach provides the necessary framework for control co-design of a wave energy converter, in which an understanding of the control logic allows for synchronous design of the device control system and hardware.}, + urldate = {2025-02-23}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Coe, Ryan G. and Bacelli, Giorgio and Forbush, Dominic}, + month = may, + year = {2021}, + keywords = {Control, Impedance matching, Marine renewable energy, Power maximization, Wave energy converter (WEC)}, + pages = {110791}, +} + +@incollection{folley_spectral-domain_2016, + title = {Spectral-{Domain} {Models}}, + isbn = {978-0-12-803210-7}, + url = {https://www.sciencedirect.com/science/article/pii/B9780128032107000049}, + doi = {10.1016/B978-0-12-803210-7.00004-9}, + abstract = {Spectral-domain models are a relatively efficient method of producing an estimate of the expected response and power capture for wave energy converters (WECs) that are subject to nonlinear forces such as Coulomb (constant) or viscous (quadratic) damping. They are generally faster than time-domain models and more accurate than frequency-domain models. However, these models can only be used for spectral excitation and are not appropriate for use with monochromatic waves. The estimates of the expected responses and power captures are made using the assumption that the individual frequency components in the wave spectra are uncorrelated. Because the results of a spectral-domain model are fundamentally statistical they are not able to provide details of extreme values. The only spectral-domain models that have so far been implemented effectively linearize the nonlinear forces and iterate the linearized equations of motion to determine the expected response. This technique has been validated using time-domain models and wave-tank experiments. The linearization of the WEC dynamics effectively assumes that the response is Gaussian; however, spectral-domain modelling techniques used in other fields suggest that it should be possible to model non-Gaussian responses, which is expected to increase the range of nonlinearities for which there are solutions in the spectral domain.}, + number = {Chapter 4}, + urldate = {2025-02-16}, + booktitle = {Numerical {Modelling} of {Wave} {Energy} {Converters}}, + publisher = {Academic Press}, + author = {Folley, M.}, + editor = {Folley, Matt}, + month = jan, + year = {2016}, + keywords = {Gaussian, Nonlinear, Spectral}, + pages = {67--80}, +} + +@misc{ruehl_wec-simwec-sim_2025, + title = {{WEC}-{Sim}/{WEC}-{Sim}: v6.1.2}, + shorttitle = {{WEC}-{Sim}/{WEC}-{Sim}}, + url = {https://zenodo.org/records/14648966}, + doi = {10.5281/zenodo.14648966}, + abstract = {What's Changed + + + +Fixing documentation inconsistency for PTO-Sim blocks by @jleonqu in https://github.com/WEC-Sim/WEC-Sim/pull/1330 + +Update Google analytics implementation in docs by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/1342 + +Body block library update for bug fix \#1346 by @dforbush2 in https://github.com/WEC-Sim/WEC-Sim/pull/1347 + +Fixes the bug in the bodyClass for the QTFs and variable hydro by @MShabara in https://github.com/WEC-Sim/WEC-Sim/pull/1351 + +Update overview.rst - fixed a typo by @thepeteriley in https://github.com/WEC-Sim/WEC-Sim/pull/1362 + +Update forceInternalMechanics and powerInternalMechanics in PTO blocks by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/1369 + +Multi wave class bug fix v2 by @MShabara in https://github.com/WEC-Sim/WEC-Sim/pull/1373 + + +New Contributors + +@thepeteriley made their first contribution in \#1362 + +Statistics + + + +19 Issues closed since v6.1.1 + +34 PRs merged since v6.1.1 + +7 Discussions answered since v6.1.1 + + +New Contributors + + + +@thepeteriley made their first contribution in https://github.com/WEC-Sim/WEC-Sim/pull/1362 + + +Full Changelog: https://github.com/WEC-Sim/WEC-Sim/compare/v6.1.1...v6.1.2}, + urldate = {2025-02-16}, + publisher = {Zenodo}, + author = {Ruehl, Kelley and Keester, Adam and dforbush2 and Ströfer, Carlos A. Michelén and Topper, Mathew and jtgrasb and Lawson, Michael and Husain, Salman and Shabara, Mohamed and Leon, Jorge and Ling, Bradley A. and Ogden, David and j-vanrij and jhbates and Nguyen, Lily and Jeffalo1 and sedwardsand and Davies, Ryan and ratanakso and emiliofa and crobarcro and agmoore4 and Alves, Erick F. and zmorrell-sand and yuyihsiang and Hall, Matt and gparisella and ashleynchong and SiHeTh and Riley, Pete}, + month = jan, + year = {2025}, +} + +@article{spanos_efficient_2016, + title = {Efficient {Dynamic} {Analysis} of a {Nonlinear} {Wave} {Energy} {Harvester} {Model}}, + volume = {138}, + issn = {0892-7219}, + url = {https://doi.org/10.1115/1.4032898}, + doi = {10.1115/1.4032898}, + abstract = {In recent years, wave energy harvesting systems have received considerable attention as an alternative energy source. Within this class of systems, single-point harvesters are popular at least for preliminary studies and proof-of-concept analyses in particular locations. Unfortunately, the large displacements of a single-point wave energy harvester are described by a set of nonlinear equations. Further, the excitation is often characterized statistically and in terms of a relevant power spectral density (PSD) function. In the context of this complex problem, the development of efficient techniques for the calculation of reliable harvester response statistics is quite desirable, since traditional Monte Carlo techniques involve nontrivial computational cost. The paper proposes a statistical linearization technique for conducting expeditiously random vibration analyses of single-point harvesters. The technique is developed by relying on the determination of a surrogate linear system identified by minimizing the mean square error between the linear system and the nonlinear one. It is shown that the technique can be implemented via an iterative procedure, which allows calculating statistics, PSDs, and probability density functions (PDFs) of the response components. The reliability of the statistical linearization solution is assessed vis-à-vis data from relevant Monte Carlo simulations. This novel approach can be a basis for constructing computationally expeditious assessments of various design alternatives.}, + number = {041901}, + urldate = {2025-02-16}, + journal = {Journal of Offshore Mechanics and Arctic Engineering}, + author = {Spanos, Pol D. and Arena, Felice and Richichi, Alessandro and Malara, Giovanni}, + month = apr, + year = {2016}, +} + +@phdthesis{kluger_synergistic_2017, + type = {Thesis}, + title = {Synergistic design of a combined floating wind turbine - wave energy converter}, + copyright = {MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission.}, + url = {https://dspace.mit.edu/handle/1721.1/111692}, + abstract = {Offshore energy machines have great potential: higher capacity factors, more available space, and lower visual impacts than onshore machines. This thesis investigates how combining a wave energy converter (WEC) with a floating wind turbine (FWT) may produce offshore renewable energy cost savings. Attaching the WEC to the FWT greatly reduces the WEC's steel frame, mooring lines, electric transmission lines, and siting/permitting costs, which may comprise 56\% of a standalone WEC's cost. A 5 MW FWT currently requires up to 1700 tons of platform steel and 5700 tons of ballast concrete for stabilization in the ocean. This required material may be reduced if the WEC stabilizes the FWT. This thesis addresses several challenges to designing a combined FWT-WEC. First, parameter sweeps for optimizing ocean machine performance are limited by high dimensionalities and nonlinearities, including power takeoff control and wave viscous forcing, which normally require computationally expensive time-domain simulations. This thesis develops a statistical linearization approach to rapidly compute machine dynamics statistics while accounting for nonlinearities in the frequency domain. It is verified that the statistical linearization method may capture significant dynamics effects that are neglected by the traditional Taylor series linearization approach, while computing the results approximately 100 times faster than time domain simulations. Using Morison's equation for wave viscosity and quasi-steady blade-element/momentum theory for rotor aerodynamics, we find that viscous effects and nonlinear aerodynamics may increase the FWT motion and tower stress by up to 15\% in some wind-sea states compared the the Taylor series linearized system. Second, the WEC must stabilize rather than destabilize the FWT. This thesis investigates the dynamics statistics of dierent FWT-WEC configurations using a long wavelength, structurally coupled model. It is shown that simultaneous targeted energy transfer from both the FWT and waves to the WEC when the WEC and FWT are linked by a tuned spring is unlikely. That being said, this thesis considers heave-mode oscillating water column WEC's that are linked to the FWT platform by 4-bar linkages, so that the FWT and WEC's are uncoupled for small heave motions and rigidly coupled in all other degrees of freedom. It is shown that this configuration allows the WEC to move with a large amplitude in its energy harvesting degree of freedom, and therefore harvest a significant amount of power without significantly increasing the FWT motion in the same direction. In the rigidly-connected modes, the WEC inertial resistance to motion must be greater than the wave forcing, as these properties are transmitted to the FWT. Third, the WEC requires power robustness in dierent sea states. Typical WEC's require control schemes to maintain good power performance when the ocean wave dominant frequency differs from the WEC resonant frequency. This thesis introduces a nonlinearity into the WEC design that passively increases power adaptability in dierent sea states. While the optimized nonlinear WEC requires 57\% more steel than the optimized linear WEC, the nonlinear WEC produces 72\% more power on average, resulting in a 3\% lower levelized cost of energy. Further optimization of the nonlinear WEC may find improved performance. This thesis determines that attaching a single linear hinged floating spar oscillating water column to the FWT reduces the levelized cost of energy from \$0.31/kWh for the standalone system to \$0.27/kWh (13\%) without changing stress on the FWT tower. Attaching a single nonlinear hinged floating spar oscillating water column to the FWT reduces the levelized cost of energy to \$0.26/kWh (16\%) and reduces the lifetime equivalent fatigue stress on the FWT tower from 32.4 MPa to 31 MPa (5\%). A 6-unit array of the nonlinear WEC's encircling the FWT platform may generate an average of 400 kW while reducing the FWT tower stress by over 50\%. In wave tank experiments, the response statistics of four dierent combined FWT-WEC configurations are measured, verifying the FWT-WEC dynamics model.}, + language = {eng}, + urldate = {2025-02-16}, + school = {Massachusetts Institute of Technology}, + author = {Kluger, Jocelyn Maxine}, + year = {2017}, + note = {Accepted: 2017-10-04T14:47:10Z}, +} + +@article{nie_optimal_2016, + series = {Selected {Papers} from the {European} {Wave} and {Tidal} {Energy} {Conference} 2015, {Nante}, {France}}, + title = {Optimal causal control of wave energy converters in stochastic waves – {Accommodating} nonlinear dynamic and loss models}, + volume = {15}, + issn = {2214-1669}, + url = {https://www.sciencedirect.com/science/article/pii/S2214166916300169}, + doi = {10.1016/j.ijome.2016.04.004}, + abstract = {Recent research has shown that when constrained to causality, the optimal feedback controller for an ocean wave energy converter (WEC) subjected to stochastic waves can be solved as a non-standard Linear Quadratic-Gaussian (LQG) optimal control problem. In this paper, we present a relaxation to the modeling assumptions that must be made to apply this theory. Specifically, we propose a technique that uses the principle of Gaussian Closure to accommodate nonlinear WEC dynamics in the synthesis of the optimal feedback law. The technique is approximate, in the sense that it arrives at a computationally efficient control synthesis technique through a Gaussian approximation of the stationary stochastic response of the system. This approach allows for a wide range of nonlinear dynamical models to be considered, and also accommodates many complex loss mechanisms in the power transmission system. The technique is demonstrated through simulation examples pertaining to a flap-type WEC with a hydraulic power train.}, + urldate = {2025-02-16}, + journal = {International Journal of Marine Energy}, + author = {Nie, Rudy and Scruggs, Jeff and Chertok, Allan and Clabby, Darragh and Previsic, Mirko and Karthikeyan, Anantha}, + month = sep, + year = {2016}, + keywords = {Causality, Control, Loss models, Nonlinearities, Stochastic waves}, + pages = {41--55}, +} + +@article{neshat_enhancing_2024, + title = {Enhancing the performance of hybrid wave-wind energy systems through a fast and adaptive chaotic multi-objective swarm optimisation method}, + volume = {362}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261924003386}, + doi = {10.1016/j.apenergy.2024.122955}, + abstract = {Hybrid offshore renewable energy platforms have been proposed to optimise power production and reduce the levelised cost of energy by integrating or co-locating several renewable technologies. One example is a hybrid wave-wind energy system that combines offshore wind turbines with wave energy converters (WECs) on a single floating foundation. The design of such systems involves multiple parameters and performance measures, making it a complex, multi-modal, and expensive optimisation problem. This paper proposes a novel, robust and effective multi-objective swarm optimisation method (DMOGWA) to provide a design solution that best compromises between maximising WEC power output and minimising the effect on wind turbine nacelle acceleration. The proposed method uses a chaotic adaptive search strategy with a dynamic archive of non-dominated solutions based on diversity to speed up the convergence rate and enhance the Pareto front quality. Furthermore, a modified exploitation technique (Discretisation Strategy) is proposed to handle the large damping and spring coefficient of the Power Take-off (PTO) search space. To evaluate the efficiency of the proposed method, we compare the DMOGWA with four well-known multi-objective swarm intelligence methods (MOPSO, MALO, MODA, and MOGWA) and four popular evolutionary multi-objective algorithms (NSGA-II, MOEA/D, SPEA-II, and PESA-II) based on four potential deployment sites on the South Coast of Australia. The optimisation results demonstrate the dominance of the DMOGWA compared with the other eight methods in terms of convergence speed and quality of solutions proposed. Furthermore, adjusting the hybrid wave-wind model’s parameters (WEC design and PTO parameters) using the proposed method (DMOGWA) leads to a considerably improved power output (average proximate boost of 138.5\%) and a notable decline in wind turbine nacelle acceleration (41\%) throughout the entire operational spectrum compared with the other methods. This improvement could lead to millions of dollars in additional income per year over the lifespan of hybrid offshore renewable energy platforms.}, + urldate = {2025-02-16}, + journal = {Applied Energy}, + author = {Neshat, Mehdi and Sergiienko, Nataliia Y. and Nezhad, Meysam Majidi and da Silva, Leandro S. P. and Amini, Erfan and Marsooli, Reza and Astiaso Garcia, Davide and Mirjalili, Seyedali}, + month = may, + year = {2024}, + keywords = {Genetic algorithms, Hybrid wave-wind energy systems, Multi-objective optimisation algorithm, Offshore wind turbine, Sustainable energy, Swarm-intelligence algorithms, Wave energy converters}, + pages = {122955}, +} + +@article{da_silva_stochastic_2023, + title = {Stochastic analysis of the nonlinear dynamics of oscillating water columns: {A} frequency domain approach}, + volume = {139}, + issn = {0141-1187}, + shorttitle = {Stochastic analysis of the nonlinear dynamics of oscillating water columns}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118723002523}, + doi = {10.1016/j.apor.2023.103711}, + abstract = {This paper investigates the first and second-order stochastic responses of oscillating water columns (OWCs) under random waves. The OWCs’ nonlinear dynamics are computed in the frequency domain, where sources of nonlinearities are replaced by equivalent polynomial terms up to second order by minimising their difference in a mean-square sense. This procedure is known as the statistical quadratisation (SQ) technique. In such an approach, the linear and quadratic coefficients are obtained using an iterative procedure and non-Gaussian distributions based on Gram–Charlier expansions, and the dynamics are solved using the Volterra theory. The results are compared against a statistical linearisation model (SL), and nonlinear time-domain simulations (TD) to illustrate the capabilities of the method. The result demonstrated an excellent agreement for the first and second-order motions of the water column obtained using statistical quadratisation compared to nonlinear time-domain simulations in terms of spectral response and probability distribution. Along with the good accuracy, the statistical quadratisation has the advantage of being approximately two orders of magnitude faster than nonlinear time-domain simulations. For the proposed systems, the nonlinearity from the variable mass system (inertial type) is shown to be the most important source of second-order effects driving the oscillating water column dynamics based on the environmental conditions and drafts investigated in this work.}, + urldate = {2025-02-16}, + journal = {Applied Ocean Research}, + author = {da Silva, L. S. P. and Pesce, C. P. and de Oliveira, M. and Sergiienko, N. Y. and Cazzolato, B. and Ding, B.}, + month = oct, + year = {2023}, + keywords = {Moon pools, Nonlinear Dynamics, Oscillating Water Column, Statistical Quadratisation, Stochastic Analysis}, + pages = {103711}, +} + +@article{da_silva_statistical_2020, + title = {Statistical linearization of the {Morison}’s equation applied to wave energy converters}, + volume = {6}, + copyright = {2020 Springer Nature Switzerland AG}, + issn = {2198-6452}, + url = {https://link.springer.com/article/10.1007/s40722-020-00165-9}, + doi = {10.1007/s40722-020-00165-9}, + abstract = {The viscous drag acting on wave energy converters may have a significant effect on the dynamics during high-energetic sea states and large motions experienced due to resonance. The viscous drag is a nonlinear phenomenon of floating systems usually modelled based on the Morison’s equation using the relative velocity between the structure and the wave particle. To include such a nonlinearity into the system dynamics, nonlinear time domain simulations are generally employed, which are computationally expensive compared to frequency domain simulations. To overcome this problem, this work presents the derivation of the viscous drag force/torque under the statistical linearization technique using the frequency domain model. The technique offers a reliable tool for the estimation of the system dynamics while maintaining a low computational cost when compared to time domain simulations. For the proposed nonlinearity, the resulting equivalent linear term can be decomposed into two components: an excitation term and a damping term. To illustrate the applicability of the derivation, two conceptually different wave energy converters are investigated: a heaving point absorber, and an oscillating wave surge converter. The results obtained using statistical linearization are compared to their respective nonlinear time domain simulations to verify the reliability of the technique. Also, a comparison between the statistical linearization results using the relative motion and using only the structure motion is presented to illustrate the importance of including the relative velocity for wave energy applications. Excellent agreements have been obtained between statistical linearization model using the relative motion and its respective nonlinear time domain model for both devices in terms of spectral content, probability density of the velocity components, and energy absorbed by the device.}, + language = {en}, + number = {2}, + urldate = {2025-02-16}, + journal = {Journal of Ocean Engineering and Marine Energy}, + publisher = {Springer International Publishing}, + author = {da Silva, Leandro S. P. and Cazzolato, Benjamin S. and Sergiienko, Nataliia Y. and Ding, Boyin and Morishita, Helio M. and Pesce, Celso P.}, + month = may, + year = {2020}, + note = {Company: Springer +Distributor: Springer +Institution: Springer +Label: Springer +Number: 2}, + pages = {157--169}, +} + +@article{carmo_slender-body_2025, + title = {Slender-body approach for computing second-order wave loads in the frequency domain}, + volume = {322}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801825002732}, + doi = {10.1016/j.oceaneng.2025.120558}, + abstract = {This work presents a slender-body approach to evaluate the second-order wave loads acting on a floating structure in the frequency domain. The approach is in the same spirit as the common use of Morison’s equation to approximate the wave loads without solving the radiation/diffraction problem. To do so, we employ Rainey’s equation, which can be seen as an extension of the inertial part of Morison’s equation to include nonlinear effects. We introduce modifications to Rainey’s formulation in order to evaluate wave kinematics at the mean body position instead of the original approach of considering instantaneous displacements. We also propose a simple approximation to partially account for wave scattering effects on the second-order loads based on the analytical solution of a surface-piercing bottom-mounted vertical circular cylinder. Though limited to structures composed of cylinders, this slender-body approach is orders of magnitude faster than computing second-order wave coefficients with a radiation/diffraction code. We implemented this approach for difference-frequency (slow drift) loads in an open-source frequency-domain floating wind turbine model. We present comparisons against results obtained with radiation/diffraction theory for three reference floating wind turbine designs: the OC3-Hywind spar, the OC4-DeepCwind semisubmersible, and the VolturnUS-S semisubmersible. In general, the results show that the proposed slender-body approach with the correction to approximate wave scattering effects provides useful estimations of the difference-frequency wave loads and the resulting motions of the floater.}, + urldate = {2025-02-15}, + journal = {Ocean Engineering}, + author = {Carmo, Lucas and Hall, Matthew}, + month = apr, + year = {2025}, + keywords = {Floating wind turbines, QTFs, RAFT, Second-order wave loads, Slender-body approximation, Slow-drift}, + pages = {120558}, +} + +@article{desideri_multiple-gradient_2012, + title = {Multiple-gradient descent algorithm ({MGDA}) for multiobjective optimization}, + volume = {350}, + issn = {1631-073X}, + url = {https://www.sciencedirect.com/science/article/pii/S1631073X12000738}, + doi = {10.1016/j.crma.2012.03.014}, + abstract = {One considers the context of the concurrent optimization of several criteria Ji(Y) (i=1,…,n), supposed to be smooth functions of the design vector Y∈RN (n⩽N). An original constructive solution is given to the problem of identifying a descent direction common to all criteria when the current design-point Y0 is not Pareto-optimal. This leads us to generalize the classical steepest-descent method to the multiobjective context by utilizing this direction for the descent. The algorithm is then proved to converge to a Pareto-stationary design-point. +Résumé +On se place dans le contexte de lʼoptimisation concourante de plusieurs critères Ji(Y) (i=1,…,n), fonctions régulières du vecteur de conception Y∈RN (n⩽N). On donne une solution constructive originale au problème de lʼidentification dʼune direction de descente commune à tous les critères en un point Y0 non optimal au sens de Pareto. On est conduit à généraliser la méthode classique du gradient au contexte multiobjectif en utilisant cette direction pour la descente. On prouve que lʼalgorithme converge alors vers un point de conception Pareto-stationnaire.}, + number = {5}, + urldate = {2025-02-03}, + journal = {Comptes Rendus Mathematique}, + author = {Désidéri, Jean-Antoine}, + month = mar, + year = {2012}, + pages = {313--318}, +} + +@article{pennock_temporal_2022, + title = {Temporal complementarity of marine renewables with wind and solar generation: {Implications} for {GB} system benefits}, + volume = {319}, + issn = {0306-2619}, + shorttitle = {Temporal complementarity of marine renewables with wind and solar generation}, + url = {https://www.sciencedirect.com/science/article/pii/S030626192200633X}, + doi = {10.1016/j.apenergy.2022.119276}, + abstract = {Wave and tidal energy have the potential to provide benefits to power systems with high proportions of stochastic renewable generation. This is particularly applicable in combination with wind and solar photovoltaics, as the offsetting of these renewable resources results in more reliable renewable generation. This study utilises ten metrics to quantify the temporal complementarity and supply-demand balancing requirements of the energy mix in Great Britain, to investigate the potential magnitude of these system benefits. Wave and tidal generation profiles are created using historical resource data and hydrodynamic models. The results show that the inclusion of wave and tidal generation creates a renewable energy mix which is more available under multiple conditions: throughout a year of operation; at times of peak demand; for multiple consecutive hourly time periods; and at times when wind and solar generation are not available. Three regional case studies also show that the inclusion of marine energy allows for improved regional supply-demand matching, reducing instances of energy shortage and excess and potentially relieving transmission congestion at particularly constrained locations within GB. Finally, the implications of these findings are discussed in terms of GB wholesale market operation, system balancing and system security.}, + urldate = {2025-01-31}, + journal = {Applied Energy}, + author = {Pennock, Shona and Coles, Daniel and Angeloudis, Athanasios and Bhattacharya, Saptarshi and Jeffrey, Henry}, + month = aug, + year = {2022}, + keywords = {Marine energy, System integration, Temporal characterisation, Tidal stream energy, Wave energy}, + pages = {119276}, +} + +@article{bhattacharya_timing_2021, + title = {Timing value of marine renewable energy resources for potential grid applications}, + volume = {299}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S030626192100698X}, + doi = {10.1016/j.apenergy.2021.117281}, + abstract = {In this paper, the applicability of marine renewable energy (MRE) for potential grid applications is presented. We show that many of the unique value streams from marine-based electricity generation resources stem from their inherent temporal characteristics, especially when compared to wind and solar. Specifically, in this work, we evaluate the timing value for three types of MRE resources: (a) tidal, (b) wave, and (c) ocean currents. First, through a suite of novel metrics, such as resource availability, persistence, and versatility, we evaluate the temporal value characteristics of these resources. Second, through a more grid-oriented numerical study, we comment on the potential ramifications of those temporal characteristics in context of energy balancing and effective load carrying capability for one marine-based resource i.e., wave. Finally, we further our understanding of the relative advantages that may be leveraged by operating wave-based generation in tandem with more established renewable resources, such as wind and solar. Our results indicate that compared to wind and solar, MRE resources are consistently more available and persistent on an hourly level throughout an entire year of operation. In addition, wave resources are also seen to reduce the balancing requirements within the power system. Our work focuses on sites specific to the United States (US) and a parallel study for a location in Great Britain (GB). Results are found to be consistent for sites in both the US and GB, implying that the grid benefits discussed in this work could apply to a number of locations globally.}, + urldate = {2025-01-31}, + journal = {Applied Energy}, + author = {Bhattacharya, Saptarshi and Pennock, Shona and Robertson, Bryson and Hanif, Sarmad and Alam, Md Jan E. and Bhatnagar, Dhruv and Preziuso, Danielle and O’Neil, Rebecca}, + month = oct, + year = {2021}, + keywords = {Effective load carrying capacity, Energy balancing requirements, Marine renewable energy, Timing value, Wave energy}, + pages = {117281}, +} + +@article{gaebele_tpl_2025, + title = {From {TPL} assessment to design optimization: {Wave} energy converter control co-design applied to the {RM3}}, + volume = {241}, + issn = {0960-1481}, + shorttitle = {From {TPL} assessment to design optimization}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124024066}, + doi = {10.1016/j.renene.2024.122338}, + abstract = {The Reference Model (RM) project developed six marine energy converter concepts using a sequential design methodology, which, while widely adopted in the industry, often overlooks interactions between system components, resulting in suboptimal designs. One such example is the Reference Model 3 (RM3), a two-body point absorber wave energy converter (WEC). An assessment using the Technology Performance Level (TPL) revealed that RM3’s low power-to-cost ratio, partly due to expensive steel construction, limits its techno-economic performance. This study aims to redesign RM3 by reducing its scale and employing control co-design to integrate WEC and Power Take-Off (PTO) dynamics, constraints, and cost considerations within an optimization framework. We demonstrate the limitations of RM3’s current PTO design and explore the benefits of scaling down to enhance techno-economic viability by lowering material costs. Using WecOptTool, we conduct a parameter sweep over gear ratios and spring stiffnesses for various Commercial Off-The-Shelf generators in irregular wave conditions. Our findings emphasize the importance of aligning PTO components with WEC dynamics, showing that control co-design and strategic scaling can improve RM3’s power-to-cost ratio. This study presents a transferable example of applied control co-design for other WECs, supporting early-stage developers in their design decisions.}, + urldate = {2025-01-31}, + journal = {Renewable Energy}, + author = {Gaebele, Daniel T. and Anderson, Megan L. and Roach, Aeron L. and Forbush, Dominic D. and Roberts, Jesse D. and Weber, Jochem}, + month = mar, + year = {2025}, + keywords = {Off the shelf components, RM3, Reference model project, TPL to redsign, Wave energy converter control co-design}, + pages = {122338}, +} + +@article{lambe_extensions_2012, + title = {Extensions to the design structure matrix for the description of multidisciplinary design, analysis, and optimization processes}, + volume = {46}, + issn = {1615-1488}, + url = {https://doi.org/10.1007/s00158-012-0763-y}, + doi = {10.1007/s00158-012-0763-y}, + abstract = {While numerous architectures exist for solving multidisciplinary design optimization (MDO) problems, there is currently no standard way of describing these architectures. In particular, a standard visual representation of the solution process would be particularly useful as a communication medium among practitioners and those new to the field. This paper presents the extended design structure matrix (XDSM), a new diagram for visualizing MDO processes. The diagram is based on extending the standard design structure matrix (DSM) to simultaneously show data dependency and process flow on a single diagram. Modifications include adding special components to define iterative processes, defining different line styles to show data and process connections independently, and adding a numbering scheme to define the order in which the components are executed. This paper describes the rules for constructing XDSMs along with many examples, including diagrams of several MDO architectures. Finally, this paper discusses potential applications of the XDSM in other areas of MDO and the future development of the diagrams.}, + language = {en}, + number = {2}, + urldate = {2025-01-23}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Lambe, Andrew B. and Martins, Joaquim R. R. A.}, + month = aug, + year = {2012}, + keywords = {Design architectures, Design structure matrix, Distributed optimization, Multidisciplinary analysis, Multidisciplinary design optimization, Visualization}, + pages = {273--284}, +} + +@techreport{previsic_reference_2011, + type = {Unpublished draft report obtained via personal communication with {Vince} {Neary} of {Sandia} {National} {Lab}}, + title = {Reference {Model} 3 - {Structural} {Design} {Supplement}}, + institution = {ReVision Consulting and US Department of Energy}, + author = {Previsic, Mirko}, + month = sep, + year = {2011}, + pages = {20}, +} + +@misc{gambarini_gradient_2024, + title = {A gradient flow approach for combined layout-control design of wave energy parks}, + url = {http://arxiv.org/abs/2409.10200}, + doi = {10.48550/arXiv.2409.10200}, + abstract = {Wave energy converters (WECs) represent an innovative technology for power generation from renewable sources (marine energy). Although there has been a great deal of research into such devices in recent decades, the power output of a single device has remained low. Therefore, installation in parks is required for economic reasons. The optimal design problem for parks of WECs is challenging since it requires the simultaneous optimization of positions and control parameters. While the literature on this problem usually considers metaheuristic algorithms, we present a novel numerical framework based on a gradient-flow formulation. This framework is capable of solving the optimal design problem for WEC parks. In particular, we use a low-order adaptive Runge-Kutta scheme to integrate the gradient-flow equation and introduce an inexact solution procedure. Here, the tolerances of the linear solver used for projection on the constraint nullspace and of the time-advancing scheme are automatically adapted to avoid over-solving so that the method requires minimal tuning. We then provide the specific details of its application to the considered WEC problem: the goal is to maximize the average power produced by a park, subject to hydrodynamic and dynamic governing equations and to the constraints of available sea area, minimum distance between devices, and limited oscillation amplitude around the undisturbed free surface elevation. A suitable choice of the discrete models allows us to compute analytically the Jacobian of the state problem's residual. Numerical tests with realistic parameters show that the proposed algorithm is efficient, and results of physical interest are obtained.}, + urldate = {2025-01-17}, + publisher = {arXiv}, + author = {Gambarini, Marco and Ciaramella, Gabriele and Miglio, Edie}, + month = sep, + year = {2024}, + note = {arXiv:2409.10200 [math]}, + keywords = {Mathematics - Optimization and Control}, +} + +@book{timoshenko_theory_1959, + series = {Engineering mechanics series}, + title = {Theory of {Plates} and {Shells}}, + isbn = {978-0-07-085820-6}, + url = {https://books.google.com/books?id=rTQFAAAAMAAJ}, + publisher = {McGraw-Hill}, + author = {Timoshenko, S. and Woinowsky-Krieger, S.}, + year = {1959}, + lccn = {58059675}, +} + +@article{sobieszczanski-sobieski_sensitivity_1982, + title = {Sensitivity of {Optimum} {Solutions} of {Problem} {Parameters}}, + volume = {20}, + issn = {0001-1452}, + url = {https://arc.aiaa.org/doi/10.2514/3.51191}, + doi = {10.2514/3.51191}, + number = {9}, + urldate = {2025-01-14}, + journal = {AIAA Journal}, + publisher = {American Institute of Aeronautics and Astronautics}, + author = {Sobieszczanski-Sobieski, Jaroslaw and Barthelemy, Jean-Francois and Riley, Kathleen M.}, + month = sep, + year = {1982}, + keywords = {Allowable Stress, Aspect Ratio, Bending Moment, Finite Difference Approximation, Finite Element Analysis, Lagrange Multipliers, Linear Programming, Sensitivity Analysis, Structural Optimization, Trusses}, + pages = {1291--1299}, +} + +@article{custodio_direct_2011, + title = {Direct {Multisearch} for {Multiobjective} {Optimization}}, + volume = {21}, + issn = {1052-6234}, + url = {https://epubs.siam.org/doi/10.1137/10079731X}, + doi = {10.1137/10079731X}, + abstract = {This work deals with bound constrained multiobjective optimization (MOP) of nonsmooth functions for problems where the structure of the objective functions either cannot be exploited, or are absent. Typical situations arise when the functions are computed as the result of a computer simulation. We first present definitions and optimality conditions as well as two families of single-objective formulations of MOP. Next, we propose a new algorithm called for the biobjective optimization (BOP) problem (i.e., MOP with two objective functions). The property that Pareto points may be ordered in BOP and not in MOP is exploited by our algorithm. generates an approximation of the Pareto front by solving a series of single-objective formulations of BOP. These single-objective problems are solved using the recent (mesh adaptive direct search) algorithm for nonsmooth optimization. The Pareto front approximation is shown to satisfy some first order necessary optimality conditions based on the Clarke calculus. Finally, is tested on problems from the literature designed to illustrate specific difficulties encountered in biobjective optimization, such as a nonconvex or disjoint Pareto front, local Pareto fronts, or a nonuniform Pareto front.}, + number = {3}, + urldate = {2025-01-13}, + journal = {SIAM Journal on Optimization}, + publisher = {Society for Industrial and Applied Mathematics}, + author = {Custódio, A. L. and Madeira, J. F. A. and Vaz, A. I. F. and Vicente, L. N.}, + month = jul, + year = {2011}, + pages = {1109--1140}, +} + +@techreport{previsic_100_2011, + type = {Unpublished draft report obtained via personal communication with {Vince} {Neary} of {Sandia} {National} {Lab}}, + title = {100 {kW} {Wave} {Power} {Hydraulic} {System}}, + institution = {ReVision Consulting and US Department of Energy}, + author = {Previsic, Mirko}, + month = sep, + year = {2011}, + pages = {22}, +} + +@techreport{dallman_characterization_2015, + title = {Characterization of {U}.{S}. {Wave} {Energy} {Converter} ({WEC}) test sites: a catalogue of met-ocean data ({Second} edition)}, + shorttitle = {Characterization of {U}.{S}. {Wave} {Energy} {Converter} ({WEC}) test sites}, + url = {https://www.osti.gov/biblio/1963664}, + doi = {10.2172/1963664}, + abstract = {This report presents met-ocean data and wave energy characteristics at eight U.S. wave energy converter (WEC) test and potential deployment sites. Its purpose is to enable the comparison of wave resource characteristics among sites as well as the selection of test sites that are most suitable for a developer’s device and that best meet their testing needs and objectives. It also provides essential inputs for the design of WEC test devices and planning WEC tests, including the planning of deployment, and operations and maintenance. For each site, this report catalogues wave statistics recommended in the International Electrotechnical Commission Technical Specification (IEC 62600-101 TS) on Wave Energy Characterization, as well as the frequency of occurrence of weather windows and extreme sea states, and statistics on wind and ocean currents. It also provides useful information on test site infrastructure and services.}, + language = {English}, + number = {SAND2015-7963}, + urldate = {2025-01-13}, + institution = {Sandia National Lab. (SNL-CA), Livermore, CA (United States); Sandia National Lab. (SNL-NM), Albuquerque, NM (United States)}, + author = {Dallman, Ann and Neary, Vincent}, + month = sep, + year = {2015}, +} + +@misc{janzou_sam_2022, + address = {National Renewable Energy Lab GitHub}, + title = {{SAM} {Wave} {Resource} {Files}}, + url = {https://github.com/NREL/SAM/tree/patch/deploy/wave_resource}, + urldate = {2025-01-12}, + publisher = {SAM (System Advisor Model)}, + author = {Janzou, Steve and Gilman, Paul and Prilliman, Matt}, + month = oct, + year = {2022}, +} + +@techreport{berg_extreme_2011, + title = {Extreme {Ocean} {Wave} {Conditions} for {Northern} {California} {Wave} {Energy} {Conversion} {Device}.}, + url = {https://www.osti.gov/biblio/1113856}, + doi = {10.2172/1113856}, + abstract = {Abstract not provided.}, + language = {English}, + number = {SAND2011-9304}, + urldate = {2025-01-13}, + institution = {Sandia National Lab. (SNL-CA), Livermore, CA (United States); Sandia National Lab. (SNL-NM), Albuquerque, NM (United States)}, + author = {Berg, Jonathan Charles}, + month = dec, + year = {2011}, +} + +@article{babarit_stakeholder_2017, + title = {Stakeholder requirements for commercially successful wave energy converter farms}, + volume = {113}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148117305451}, + doi = {10.1016/j.renene.2017.06.040}, + abstract = {In this study, systems engineering techniques are applied to wave energy to identify and specify stakeholders’ requirements for a commercially successful wave energy farm. The focus is on the continental scale utility market. Lifecycle stages and stakeholders are identified. Stakeholders’ needs across the whole lifecycle of the wave energy farm are analyzed. A list of 33 stakeholder requirements are identified and specified. This list of requirements should serve as components of a technology performance level metric that could be used by investors and funding agencies to make informed decisions when allocating resources. It is hoped that the technology performance level metric will accelerate wave energy conversion technology convergence.}, + urldate = {2025-01-12}, + journal = {Renewable Energy}, + author = {Babarit, Aurélien and Bull, Diana and Dykes, Katherine and Malins, Robert and Nielsen, Kim and Costello, Ronan and Roberts, Jesse and Bittencourt Ferreira, Claudio and Kennedy, Ben and Weber, Jochem}, + month = dec, + year = {2017}, + keywords = {Requirements, Systems engineering, Technology convergence, Technology performance level, Wave energy converter, Wave energy farm}, + pages = {742--755}, +} + +@techreport{livecchi_powering_2019, + title = {Powering the {Blue} {Economy}: {Exploring} {Opportunities} for {Marine} {Renewable} {Energy} in {Maritime} {Markets}}, + url = {https://www.energy.gov/eere/water/downloads/powering-blue-economy-report}, + institution = {US Department of Energy (DOE)}, + author = {LiVecchi, A and Copping, A and Jenne, D and Gorton, A and Preus, R and Gill, G and Robichaud, R and Green, R and Geerlofs, S and Gore, S and Hume, D and McShane, W and Schmaus, C and Spence, H}, + month = apr, + year = {2019}, + keywords = {Human Dimensions, Marine Energy, Social \& Economic Data}, + pages = {207}, +} + +@misc{neary_reference_2014, + type = {Spreadsheet}, + title = {Reference {Model} 3 {Cost} {Breakdown} ({RM3}: {Wave} {Point} {Absorber})}, + url = {https://mhkdr.openei.org/submissions/370}, + doi = {10.15473/1819894}, + publisher = {Marine and Hydrokinetic Data Repository}, + author = {Neary, Vincent and Previsic, Mirko and Jenne, Scott and Hallett, Kathleen}, + month = sep, + year = {2014}, +} + +@misc{noauthor_marine_nodate, + title = {Marine and {Hydrokinetic} {Data} {Repository} ({MHKDR})}, + url = {https://mhkdr.openei.org/}, + abstract = {Contains the Reference Model 3 (RM3) spreadsheets with the cost breakdown structure (CBS) for the levelized cost of energy (LCOE) calculations for a single RM3 device and multiple unit arrays. These spreadsheets are contained within an XLSX file and a spreadsheet editor such as Microsoft Excel is needed to open the file. This data was generated upon completion of the project on September 30, 2014. + +The Reference Model Project (RMP), sponsored by the U.S. Department of Energy (DOE), was a partnered effort to develop open-source MHK point designs as reference models (RMs) to benchmark MHK technology performance and costs, and an open-source methodology for design and analysis of MHK technologies, including models for estimating their capital costs, operational costs, and levelized costs of energy. The point designs also served as open-source test articles for university researchers and commercial technology developers. The RMP project team, led by Sandia National Laboratories (SNL), included a partnership between DOE, three national laboratories, including the National Renewable Energy Laboratory (NREL), Pacific Northwest National Laboratory (PNNL), and Oak Ridge National Laboratory (ORNL), the Applied Research Laboratory of Penn State University, and Re Vision Consulting. + +Reference Model 3 (RM3) is a wave point absorber, also referred to as a wave power buoy, that was designed for a reference site located off the shore of Eureka in Humboldt County, California. The design of the device consists of a surface float that translates (oscillates) with wave motion relative to a vertical column spar buoy, which connects to a subsurface reaction plate. This two-body point absorber converts wave energy into electrical power predominately from the devices heave oscillation induced by incident waves; the float is designed to oscillate up and down the vertical shaft up to 4 m. The bottom of the reaction plate is about 35 m below the water surface. The device is targeted for deployment in water depths of 40 m to 100 m. The point absorber is also connected to a mooring system to keep the floating device in position.}, + language = {en}, + urldate = {2025-01-12}, + journal = {MHKDR}, +} + +@inproceedings{nakhai_techno-economic_2022, + title = {Techno-{Economic} {Implications} of {Electrical} {Machine} {Scaling} for {Wave} {Energy} {Converters}}, + issn = {0197-7385}, + url = {https://ieeexplore.ieee.org/abstract/document/9977184}, + doi = {10.1109/OCEANS47191.2022.9977184}, + abstract = {The sizing of an electrical machine for a Wave Energy Converter (WEC) can have a substantial impact on the overall sizing, cost, and rating of the device. An electrical generator is typically part of the power take-off system, which is the mechanism by which the energy absorbed by the prime mover is transformed into usable electrical energy. For practically all WECs, the rate of change of actuation is predominantly determined by the wave resource (i.e., the wave height and frequency), and devices will see a sinusoidal varying velocity according to the wave conditions. The same can then be said for both directly and indirectly coupled power take-offs with electrical generators. This techno-economic study investigates electrical machine scaling and associated cost implications through core machine design theory, manufacturer data, supporting literature, and the Reference Model Project sponsored by the U.S. Department of Energy. The Reference Model Project was a partnered effort to develop open-source marine energy point designs as reference models to benchmark marine energy technology performance and costs, methods for design and analysis of marine energy technologies, estimations for capital costs, operational costs, and levelized cost of energy. The results from this study show torque is directly related to (1) the physical size of the machine required to increase the air-gap sheer stresses, (2)the amount of active material, (3) the support structure, (4) bearing size and rating, and (5) offshore cable rating, all of which have a significant effect on overall system costs in terms of both capital and operational expenditures. This paper aims to be a critical benchmark in helping determine an “optimal” nameplate rating for wave energy devices and their associated power take-offs. With an optimized rating and sizing process, WEC costs can be reduced and overall performance can be improved.}, + urldate = {2025-01-11}, + booktitle = {{OCEANS} 2022, {Hampton} {Roads}}, + author = {Nakhai, Aryana Y. and McGilton, Ben}, + month = oct, + year = {2022}, + keywords = {Air gaps, Analytical models, Benchmark testing, Costs, Generators, PTO, Performance evaluation, Torque, WEC, cables, capacity factor, cost, electrical machine, force, induction, mass, permanent magnet, power, rating, scaling, torque, wave energy}, + pages = {1--6}, +} + +@misc{mcgilton_optimal_2024, + address = {Rochester, NY}, + type = {{SSRN} {Scholarly} {Paper}}, + title = {On the {Optimal} {Sizing} of {Power} {Take}-{Off} {Systems} for {Wave} {Energy} {Converters}}, + url = {https://papers.ssrn.com/abstract=4886361}, + doi = {10.2139/ssrn.4886361}, + abstract = {The power take-off (PTO) system in a wave energy converter (WEC) is the means by which the energy in an ocean wave is converted into useful energy. There has been a general lack of technology convergence in the wave energyindustry and PTO design has been largely device-specific with the design process determined by the WEC developer. An optimizedPTO design can significantly affect the efficiency, reliability, performance, and overall cost and viability of a device. There remains a need in the marine energy industry for best practices and efficient design processes to be identified as it could greatly benefit developers and researchers in designing an optimal WEC PTO.The results from the extensive modelling and analysis effort in this research indicate that there may be an optimal sizing for WEC PTOs for both power and PTO force rating and that substantial reductions can be made in the cost of a device without significant loss in the energy produced. Furthermore, this optimal sizing may be independent of WEC type and deployment location.With an optimal, or near optimal, approach to WEC PTO sizing demonstrated, a methodology is proposed to address the challenge of nameplate ratings in the wave energy industry.}, + language = {en}, + urldate = {2025-01-11}, + publisher = {Social Science Research Network}, + author = {McGilton, Ben and Nakhai, Aryana and McNally, Jim}, + month = jul, + year = {2024}, + keywords = {LCOx, PTO, cost, rating, sizing, wave energy}, +} + +@article{sundarrajan_open-loop_2023, + title = {Open-{Loop} {Control} {Co}-{Design} of {Semisubmersible} {Floating} {Offshore} {Wind} {Turbines} {Using} {Linear} {Parameter}-{Varying} {Models}}, + volume = {146}, + issn = {1050-0472}, + url = {https://doi.org/10.1115/1.4063969}, + doi = {10.1115/1.4063969}, + abstract = {This paper discusses a framework to design elements of the plant and control systems for floating offshore wind turbines in an integrated manner using linear parameter-varying models. Multiple linearized models derived from aero-elastic simulation software in different operating regions characterized by the incoming wind speed are combined to construct an approximate low-fidelity model of the system. The combined model is then used to generate open-loop, optimal control trajectories as part of a nested control co-design strategy that explores the system’s power production and stability using the platform pitch tilt as a proxy in the context of crucial plant and control design decisions. The radial distance between the central and outer columns and the diameter of the outer columns of the semisubmersible platform are the plant design variables. The platform stability and power production are studied for different plant design decisions. The effect of plant decisions on subsequent power production and stability response of the floating wind turbine is quantified in terms of the levelized cost of energy. The results show that the inner-loop constraints and the plant design decisions affect the turbine’s power and, subsequently, the cost of the system.}, + number = {041704}, + urldate = {2025-01-04}, + journal = {Journal of Mechanical Design}, + author = {Sundarrajan, Athul K. and Hoon Lee, Yong and Allison, James T. and Zalkind, Daniel S. and Herber, Daniel R.}, + month = nov, + year = {2023}, +} + +@article{rohrer_analytical_2024, + title = {Analytical gradients of first-order diffraction and radiation forces for design optimization of floating structures}, + volume = {152}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118724003195}, + doi = {10.1016/j.apor.2024.104198}, + abstract = {Gradient-based design optimization of floating structures with many design variables requires efficient and accurate computation of hydrodynamic coefficients including wave excitation forces and their derivatives with respect to design variables. For large-volume structures or structures with many component members, the only practical method to determine diffraction and radiation forces is to apply a boundary element method solver. This work presents the first known boundary element method solver with implicit analytic derivatives, allowing for total derivative computation alongside force evaluation. Two case studies are presented: a single floating circular column and a structure with multiple square columns attached to a horizontal pontoon. Force results from both case studies agree well with reference data, while derivative results agree with the best comparisons available. Computational requirements limit the applicability of this method and suggest further work is required to refine this approach.}, + urldate = {2025-01-02}, + journal = {Applied Ocean Research}, + author = {Rohrer, Peter J. and Bachynski-Polić, Erin E.}, + month = nov, + year = {2024}, + keywords = {Boundary element method, Gradient-based optimization, Implicit analytic derivatives, Surrogate model}, + pages = {104198}, +} + +@misc{bradbury_jax_2018, + title = {{JAX}: composable transformations of {Python}+{NumPy} programs}, + url = {http://github.com/jax-ml/jax}, + author = {Bradbury, James and Frostig, Roy and Hawkins, Peter and Johnson, Matthew James and Leary, Chris and Maclaurin, Dougal and Necula, George and Paszke, Adam and VanderPlas, Jake and Wanderman-Milne, Skye and Zhang, Qiao}, + year = {2018}, +} + +@misc{ruehl_wec-simwec-sim_2024, + title = {{WEC}-{Sim}/{WEC}-{Sim}: v6.1.2}, + shorttitle = {{WEC}-{Sim}/{WEC}-{Sim}}, + url = {https://zenodo.org/records/14549050}, + doi = {10.5281/zenodo.14549050}, + abstract = {What's Changed + + + +Fixing documentation inconsistency for PTO-Sim blocks by @jleonqu in https://github.com/WEC-Sim/WEC-Sim/pull/1330 + +Update Google analytics implementation in docs by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/1342 + +Body block library update for bug fix \#1346 by @dforbush2 in https://github.com/WEC-Sim/WEC-Sim/pull/1347 + +Fixes the bug in the bodyClass for the QTFs and variable hydro by @MShabara in https://github.com/WEC-Sim/WEC-Sim/pull/1351 + +Update overview.rst - fixed a typo by @thepeteriley in https://github.com/WEC-Sim/WEC-Sim/pull/1362 + +Update forceInternalMechanics and powerInternalMechanics in PTO blocks by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/1369 + +Multi wave class bug fix v2 by @MShabara in https://github.com/WEC-Sim/WEC-Sim/pull/1373 + + +New Contributors + + + +@thepeteriley made their first contribution in https://github.com/WEC-Sim/WEC-Sim/pull/1362 + + +Statistics: + + + +18 issues closed since v6.1.1 + +34 PRs merged since v6.1.1 + +7 Discussions answered since v6.1.1 + + +Full Changelog: https://github.com/WEC-Sim/WEC-Sim/compare/v6.1.1...v6.1.2}, + urldate = {2025-01-02}, + publisher = {Zenodo}, + author = {Ruehl, Kelley and Keester, Adam and dforbush2 and Ströfer, Carlos A. Michelén and Topper, Mathew and Lawson, Michael and jtgrasb and Husain, Salman and Leon, Jorge and Ling, Bradley A. and Shabara, Mohamed and Ogden, David and j-vanrij and jhbates and Nguyen, Lily and Jeffalo1 and sedwardsand and ratanakso and emiliofa and crobarcro and agmoore4 and Alves, Erick F. and zmorrell-sand and yuyihsiang and Hall, Matt and gparisella and ashleynchong and SiHeTh and Davies, Ryan and Riley, Pete}, + month = dec, + year = {2024}, +} + +@misc{mccabe_mdocean_2024, + title = {{MDOcean}}, + url = {https://zenodo.org/records/13997244}, + doi = {10.5281/zenodo.13997244}, + abstract = {Open source codebase that uses multidisciplinary design optimization to optimize an ocean wave energy converter}, + urldate = {2025-01-02}, + publisher = {Zenodo}, + author = {McCabe, Rebecca and Dietrich, Madison and Ren, Iris and Murphy, Olivia and Haji, Maha N.}, + month = oct, + year = {2024}, + keywords = {hydrodynamics, multidisciplinary-optimization, wave-energy}, +} + +@techreport{gaudin_single_2021, + type = {Final report}, + title = {From single to multiple wave energy converters: {Cost} reduction through location and configuration optimisation}, + shorttitle = {From single to multiple wave energy converters}, + number = {ARENA 2015 RND086}, + institution = {University of Western Australia}, + author = {Gaudin, C. and David, D. R. and Cai, Y. and Hansen, J. E. and Bransby, M. F. and Rijnsdorp, D. P. and Lowe, R. J. and O’Loughlin, C. D. and Lu, T. and Uzielli, M. and O'Neill, Michael}, + month = oct, + year = {2021}, +} + +@article{tao_low_2003, + title = {Low \textit{{KC}} flow regimes of oscillating sharp edges. {II}. {Hydrodynamic} forces}, + volume = {25}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118703000464}, + doi = {10.1016/S0141-1187(03)00046-4}, + abstract = {Three vortex shedding modes, i.e. independent vortex shedding, interactive vortex shedding and uni-directional vortex shedding, for flow induced by oscillatory vertical cylinder witha disk attached at its keel were presented in Part I. The occurrence of these modes were shown to depend on the Keulegan–Carpenter (KC) number and disk thickness–diameter ratio. Associated with these distinct changes of vortex shedding patterns are distinct increases in the hydrodynamic damping. A quantitative method of identifying the vortex shedding flow regimes is proposed, and the scaling laws for heave damping estimation of cylinder+disk configuration are presented. A sample calculation on a classic Spar platform show that addition of a heave plate increased the heave damping fourfold.}, + number = {2}, + urldate = {2024-12-27}, + journal = {Applied Ocean Research}, + author = {Tao, Longbin and Thiagarajan, Krish}, + month = apr, + year = {2003}, + keywords = {Keulegan–Carpenter number, Sharp edged body, Vortex shedding}, + pages = {53--62}, +} + +@techreport{newman_motions_1963, + address = {Bethesda, MD}, + type = {Research and development report}, + title = {The motions of a spar buoy in regular waves}, + url = {https://apps.dtic.mil/sti/tr/pdf/AD0406333.pdf}, + doi = {10.5962/bhl.title.48348}, + number = {1499}, + institution = {Department of the Navy: David Taylor Model Basin Hydromechanics Laboratory}, + author = {Newman, J. N.}, + month = may, + year = {1963}, + pages = {38}, +} + +@book{martins_engineering_2022, + address = {Cambridge, UK}, + title = {Engineering {Design} {Optimization}}, + isbn = {978-1-108-83341-7}, + url = {https://mdobook.github.io}, + doi = {10.1017/9781108980647}, + publisher = {Cambridge University Press}, + author = {Martins, Joaquim R. R. A. and Ning, Andrew}, + month = jan, + year = {2022}, +} + +@book{papalambros_principles_2017, + edition = {Third}, + title = {Principles of optimal design}, + isbn = {978-1-107-13267-2}, + publisher = {Cambridge University Press, Cambridge}, + author = {Papalambros, Panos Y. and Wilde, Douglass J.}, + year = {2017}, + mrnumber = {3585626}, +} + +@article{rosati_control_2023, + title = {Control co-design of power take-off and bypass valve for {OWC}-based wave energy conversion systems}, + volume = {219}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148123014386}, + doi = {10.1016/j.renene.2023.119523}, + abstract = {Wave energy is a significant source of renewable energy harnessed by wave energy converters (WECs). However, due to the relatively high levelised cost of energy (LCoE), wave energy has not attained a commercial stage yet. To minimise the LCoE, since the optimum (uncontrolled) WEC design typically differs from the optimum controlled WEC design, control co-design (CCD) techniques are essential. With CCD, the WEC control-related aspects are taken into account from the start of the WEC design phase and, ideally, the best control-informed WEC design is then achieved. This paper specifically focuses on CCD for an oscillating-water-column (OWC) WEC, equipped with a Wells turbine and a bypass valve. In essence, a parametric CCD approach is devised to find the optimum (control-informed) turbine rotor diameter, and bypass valve diameter, for the considered OWC WEC. In particular, the optimum design parameters minimise a ‘simplified’ LCoE, which is chosen as a suitable performance function. Despite the LCoE is primarily sensitive to the power take-off size, rather than to the bypass valve size, peak-shaving control with a bypass valve potentially increases the capacity factor and, consequently, can minimise the LCoE for small-to-medium sized turbines.}, + urldate = {2024-12-23}, + journal = {Renewable Energy}, + author = {Rosati, Marco and Ringwood, John V.}, + month = dec, + year = {2023}, + keywords = {Bypass valve, Control co-design, Levelised cost of energy, Oscillating-water-column, Wave energy, Wells turbine}, + pages = {119523}, +} + +@article{lin_fast_2025, + title = {Fast optimal control performance evaluation for wave energy control co-design}, + volume = {239}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124020421}, + doi = {10.1016/j.renene.2024.121974}, + abstract = {With the application of energy-maximizing control for wave energy converters (WECs), the WEC design problem becomes a control co-design problem. One of the fundamental requirements of co-design is to evaluate the optimal control performance, i.e., average power generation. Previous control techniques include model predictive control (MPC) and pseudo-spectral (PS) control, but both require iterative optimization, with computational requirements the main limiting factor in co-design. In this study, a fast optimal control performance evaluation method is proposed based on a ‘wave-by-wave’ (WbW) representation. The idea is to split the wave excitation force (WEF) signals into individual waves, process them separately, and then combine the results with the distribution of WEF amplitude and period, yielding a straightforward average power calculation. The method is fully developed and studied, considering the cases of position-only, and general, constraints, as well as different choices to obtain the WEF parameter distribution. It is shown that the WbW method can achieve a very high control evaluation fidelity (within a 5\% error) and give almost the same co-design result as MPC and PS (implemented using WecOptTool), but with a significantly reduced computation time (e.g., hundreds of times faster), therefore being a game changer for control co-design of WECs.}, + urldate = {2024-12-22}, + journal = {Renewable Energy}, + author = {Lin, Zechuan and Huang, Xuanrui and Xiao, Xi and Ringwood, John V.}, + month = feb, + year = {2025}, + keywords = {Control co-design, Model predictive control, Pseudo-spectral control, Wave energy converter}, + pages = {121974}, +} + +@article{devin_high-dimensional_2024, + title = {High-dimensional control co-design of a wave energy converter with a novel pitch resonator power takeoff system}, + volume = {312}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801824024624}, + doi = {10.1016/j.oceaneng.2024.119124}, + abstract = {Researchers are exploring adding wave energy converters to existing oceanographic buoys to provide a predictable source of renewable power. A ”pitch resonator” power take-off system has been developed that generates power using a geared flywheel system designed to match resonance with the pitching motion of the buoy. However, the novelty of the concept leaves researchers uncertain about various design aspects of the system. This work presents a novel design study of a pitch resonator to inform design decisions for an upcoming deployment of the system. The assessment uses control co-design via WecOptTool to optimize control trajectories for maximal electrical power production while varying five design parameters of the pitch resonator. Given the large search space of the problem, the control trajectories are optimized within a Monte Carlo analysis to identify optimal designs, followed by parameter sweeps around the optimum to identify trends between the design parameters. The gear ratio between the pitch resonator spring and flywheel are found to be the most sensitive design variables to power performance. The assessment also finds similar power generation for various sizes of resonator components, suggesting that correctly designing for optimal control trajectories at resonance is more critical to the design than component sizing.}, + urldate = {2024-12-22}, + journal = {Ocean Engineering}, + author = {Devin, Michael C. and Gaebele, Daniel T. and Ströfer, Carlos A. Michelén and Grasberger, Jeff T. and Lee, Jantzen and Coe, Ryan G. and Bacelli, Giorgio}, + month = nov, + year = {2024}, + keywords = {Central Pioneer Array, Control co-design, Optimization, Power take-off, Wave energy converter, WecOptTool}, + pages = {119124}, +} + +@article{cotten_multi-objective_2022, + title = {Multi-objective optimisation of a sloped-motion, multibody wave energy converter concept}, + volume = {194}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148122006681}, + doi = {10.1016/j.renene.2022.05.030}, + abstract = {The WaveTrain device is a wave energy converter concept designed to extend the high performance of buoys that undergo sloped motion into a deep water environment. It achieves this by mechanically interconnecting a series of sloped modules, amongst which restorative forces can be exchanged in order to prevent detrimental pitching motion, whilst sufficiently free motion along the inclined axis is retained. Importantly, this circumvents the requirement of a rigid seabed connection, but introduces a potential vulnerability of operational failure of the rotational joints that link each connecting strut to the adjacent module. In this paper, the impact of considering the fatigue damage accumulating at the joints, in addition to the power extraction, is investigated with regards to the optimal design of the WaveTrain device. A specially-tailored multi-objective genetic algorithm is used to explore the optimal design candidates with two variants of the pair of conflicting objectives (power extraction and fatigue damage). Some key design criteria are then presented, with reference and comparison to the design criteria that are considered optimal when only power extraction is considered.}, + urldate = {2024-12-22}, + journal = {Renewable Energy}, + author = {Cotten, A. and Forehand, D. I. M.}, + month = jul, + year = {2022}, + keywords = {Heuristic optimisation, Hydrodynamic modelling, Multi-objective optimisation, Multibody wave energy converter, Sloped motion wave energy converter, WaveTrain}, + pages = {307--320}, +} + +@article{an_optimal_2024, + title = {Optimal {Design} of the {Overtopping} {Wave} {Energy} {Converter} {Based} on {Fluid}–{Structure} {Interaction} {Simulation}}, + volume = {116}, + issn = {0749-0208}, + url = {https://doi.org/10.2112/JCR-SI116-117.1}, + doi = {10.2112/JCR-SI116-117.1}, + abstract = {An, S.-H.; Kim, G.-G., and Lee, J.-H., 2023. Optimal design of the overtopping wave energy converter based on fluid–structure interaction simulation. In: Lee, J.L.; Lee, H.; Min, B.I.; Chang, J.-I.; Cho, G.T.; Yoon, J.-S., and Lee, J. (eds.), Multidisciplinary Approaches to Coastal and Marine Management. Journal of Coastal Research, Special Issue No. 116, pp. 578-582. Charlotte (North Carolina), ISSN 0749-0208.The wave overtopping system in wave power generation systems is called the Overtopping Wave Energy Converter (OWEC). The performance of the OWEC is affected by wave height and period. Wave characteristics, such as wave height, period, and direction, vary with environmental conditions, which make it difficult for the OWEC to generate stable electric power. To mitigate this issue, appropriate OWEC designs based on environmental conditions and wave characteristics must be investigated. In this study, the hydraulic efficiency of the OWEC and the load acting on it were calculated using the Smoothed Particle Hydrodynamics (SPH) based on the environmental conditions along the Ulleungdo coast, and the structural safety of the optimized OWEC model was verified. Moreover, a particle-based simulation was performed to confirm the effect of design parameters on energy efficiency. Additionally, the load acting on the OWEC was calculated, and the optimization method was used to design six types of substructures. Finally, structural analysis was conducted, confirming that all six types avoided the design model's structural resonance period.}, + number = {SI}, + urldate = {2024-12-22}, + journal = {Journal of Coastal Research}, + author = {An, Sung-Hwan and Kim, Geun-Gon and Lee, Jong-Hyun}, + month = jan, + year = {2024}, + pages = {578--582}, +} + +@article{garcia-teruel_reliability-based_2021, + title = {Reliability-based hull geometry optimisation of a point-absorber wave energy converter with power take-off structural reliability objectives}, + volume = {15}, + copyright = {© 2021 The Authors. IET Renewable Power Generation published by John Wiley \& Sons Ltd on behalf of The Institution of Engineering and Technology}, + issn = {1752-1424}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1049/rpg2.12249}, + doi = {10.1049/rpg2.12249}, + abstract = {Recent studies have focused on optimising wave energy converter (WEC) designs, maximising their power performance and techno-economic feasibility. Reliability has yet to be fully considered in these formulations, despite its impact on cost and performance. In this study, this gap is addressed by developing a reliability-based design optimisation framework for WEC hull geometries to explore the trade-off between power performance and power take-off (PTO) system damage equivalent loading (DEL). Optimised hull geometries for two sites are considered (from the centre of the North Sea and off the west coast of Norway), and two directions of motions (heave and surge). Results indicate that site characteristics affect the potential power production and DEL for an optimal WEC design. These are also affected by the direction of motion for power extraction, which also significantly changes optimal hull shape characteristics. Optimal surging WEC designs have edges facing oncoming wave directions, while heaving WECs have pointed bottoms, both to streamline movement. Larger, more convex WECs result in greater power production and DEL, while smaller, more concave WECs result in lesser power production and DEL. These findings underline the importance of considering WEC hull geometry in early design processes to optimise cost, power production, and reliability.}, + language = {en}, + number = {14}, + urldate = {2024-12-22}, + journal = {IET Renewable Power Generation}, + author = {Garcia-Teruel, Anna and Clark, Caitlyn E.}, + year = {2021}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1049/rpg2.12249}, + keywords = {Design, Fluid mechanics and aerodynamics (mechanical engineering), Maintenance and reliability, Optimisation, Optimisation techniques, Other structures, Power and plant engineering (mechanical engineering), Project and design engineering, Reliability, Tidal and flow energy, Wave power}, + pages = {3255--3268}, +} + +@article{ferri_balancing_2014, + title = {Balancing {Power} {Output} and {Structural} {Fatigue} of {Wave} {Energy} {Converters} by {Means} of {Control} {Strategies}}, + volume = {7}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/7/4/2246}, + doi = {10.3390/en7042246}, + abstract = {In order to reduce the cost of electricity produced by wave energy converters (WECs), the benefit of selling electricity as well as the investment costs of the structure has to be considered. This paper presents a methodology for assessing the control strategy for a WEC with respect to both energy output and structural fatigue loads. Different active and passive control strategies are implemented (proportional (P) controller, proportional-integral (PI) controller, proportional-integral-derivative with memory compensation (PID) controller, model predictive control (MPC) and maximum energy controller (MEC)), and load time-series resulting from numerical simulations are used to design structural parts based on fatigue analysis using rain-flow counting, Stress-Number (SN) curves and Miner’s rule. The objective of the methodology is to obtain a cost-effective WEC with a more comprehensive analysis of a WEC based on a combination of well known control strategies and standardised fatigue methods. The presented method is then applied to a particular case study, the Wavestar WEC, for a specific location in the North Sea. Results, which are based on numerical simulations, show the importance of balancing the gained power against structural fatigue. Based on a simple cost model, the PI controller is shown as a viable solution.}, + language = {en}, + number = {4}, + urldate = {2024-12-22}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Ferri, Francesco and Ambühl, Simon and Fischer, Boris and Kofoed, Jens Peter}, + month = apr, + year = {2014}, + note = {Number: 4}, + keywords = {active control, fatigue analysis, model predictive control (MPC), passive control, wave energy converter (WEC), wavestar}, + pages = {2246--2273}, +} + +@article{ambuhl_reliability-based_2014, + title = {Reliability-{Based} {Structural} {Optimization} of {Wave} {Energy} {Converters}}, + volume = {7}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/7/12/8178}, + doi = {10.3390/en7128178}, + abstract = {More and more wave energy converter (WEC) concepts are reaching prototypelevel. Once the prototype level is reached, the next step in order to further decrease thelevelized cost of energy (LCOE) is optimizing the overall system with a focus on structuraland maintenance (inspection) costs, as well as on the harvested power from the waves.The target of a fully-developed WEC technology is not maximizing its power output,but minimizing the resulting LCOE. This paper presents a methodology to optimize thestructural design of WECs based on a reliability-based optimization problem and the intentto maximize the investor’s benefits by maximizing the difference between income (e.g., fromselling electricity) and the expected expenses (e.g., structural building costs or failure costs).Furthermore, different development levels, like prototype or commercial devices, may havedifferent main objectives and will be located at different locations, as well as receive varioussubsidies. These points should be accounted for when performing structural optimizationsof WECs. An illustrative example on the gravity-based foundation of the Wavestar deviceis performed showing how structural design can be optimized taking target reliability levelsand different structural failure modes due to extreme loads into account.}, + language = {en}, + number = {12}, + urldate = {2024-12-22}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Ambühl, Simon and Kramer, Morten and Sørensen, John Dalsgaard}, + month = dec, + year = {2014}, + note = {Number: 12}, + keywords = {LCOE, WEC, Wavestar, probabilistic reliability analysis, reliability level, reliability-basedoptimization, wave energy}, + pages = {8178--8200}, +} + +@article{garcia-teruel_review_2021, + title = {A review of geometry optimisation of wave energy converters}, + volume = {139}, + issn = {1364-0321}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032120308777}, + doi = {10.1016/j.rser.2020.110593}, + abstract = {Reducing the cost of energy of wave energy converters is key for the advancement of the technology. The costs associated with the device structure show the highest potential to achieve this reduction. For this reason, many hull geometry optimisation studies have been performed over the last 20 years, with the aim of finding improved hull shapes, that maximise the power generation and minimise the costs. These studies have been performed for different types of devices, applying a number of optimisation algorithms and representing power generation and costs with various strategies. The definition of the optimisation problem and the use of the most suitable strategies is key for a successful optimisation process, which will provide meaningful results and support device design at early development stages. This paper reviews all these different approaches, with a view to distilling the main findings and best practices; it then formulates recommendations based on these. The work is intended to serve as reference for any technology developer wishing to perform wave energy converter optimisation and for any funding body wanting to assess different device designs.}, + urldate = {2024-12-22}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Garcia-Teruel, A. and Forehand, D. I. M.}, + month = apr, + year = {2021}, + keywords = {Cost of energy, Device design, Hull geometry, Optimisation problem, Wave energy converter}, + pages = {110593}, +} + +@article{coe_survey_2018, + title = {A {Survey} of {WEC} {Reliability}, {Survival} and {Design} {Practices}}, + volume = {11}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/11/1/4}, + doi = {10.3390/en11010004}, + abstract = {A wave energy converter must be designed to survive and function efficiently, often in highly energetic ocean environments. This represents a challenging engineering problem, comprising systematic failure mode analysis, environmental characterization, modeling, experimental testing, fatigue and extreme response analysis. While, when compared with other ocean systems such as ships and offshore platforms, there is relatively little experience in wave energy converter design, a great deal of recent work has been done within these various areas. This paper summarizes the general stages and workflow for wave energy converter design, relying on supporting articles to provide insight. By surveying published work on wave energy converter survival and design response analyses, this paper seeks to provide the reader with an understanding of the different components of this process and the range of methodologies that can be brought to bear. In this way, the reader is provided with a large set of tools to perform design response analyses on wave energy converters.}, + language = {en}, + number = {1}, + urldate = {2024-12-22}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Coe, Ryan G. and Yu, Yi-Hsiang and Van Rij, Jennifer}, + month = jan, + year = {2018}, + note = {Number: 1}, + keywords = {design, extreme conditions, survival, wave energy converter (WEC)}, + pages = {4}, +} + +@article{zou_practical_2023, + title = {Practical power absorption assessment limits for generic wave energy converters}, + volume = {277}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S002980182300687X}, + doi = {10.1016/j.oceaneng.2023.114303}, + abstract = {There lacks a generic representation of the wave power absorption of devices across dimensions, shapes, and resource conditions. A conventional resource assessment approach only evaluates the wave power based on wave characteristics, which is insufficient to capture the practical power absorption variations between WEC archetypes. In this paper, a novel WEC net power assessment (WNPA) method is proposed and is generally applicable to any arbitrary WECs design. Two theoretical upper bounds of wave power absorption are adopted and derived for different types of WECs. Numerical simulations are conducted to apply this novel technique to assess the net power available to different WECs at the Wave Energy Test Site (WETS), Hawaii and the PacWave site, Oregon over 11 years. By comparing the power potential for WECs oscillating in different degrees of freedom, the results indicate the surging mode may be the most energetic; regardless of shapes and ocean sites. When applied to three generic WECs (point absorber, terminator, and attenuator), the pitching terminator is shown to have lower absorption potential. Finally, the mean annual energy production (MAEP) of the three generic WECs at WETS and PacWave are compared, and a surging attenuator shows a significant wave power potential at PacWave.}, + urldate = {2024-12-22}, + journal = {Ocean Engineering}, + author = {Zou, Shangyan and Robertson, Bryson and Yim, Solomon}, + month = jun, + year = {2023}, + keywords = {Budal’s limit, Maximum wave power absorption, Net power assessment, Wave energy conversion, Wave resources assessment}, + pages = {114303}, +} + +@article{garcia-teruel_design_2022, + title = {Design limits for wave energy converters based on the relationship of power and volume obtained through multi-objective optimisation}, + volume = {200}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148122014033}, + doi = {10.1016/j.renene.2022.09.053}, + abstract = {Wave energy conversion can have a significant role in the transition to a net-zero energy system. However, cost reductions are still required for this technology to be commercially competitive. To achieve commercialisation at a reasonable expense, disruptive innovations at early stages of development need to be enabled. Thus, to explore more of the design space, design limits need to be defined. Although physical limits, such as the maximum capture width and the Budal upper bound, have been defined, more realistic limits considering the variability of the resource, device dimensions and the actual hydrodynamic behaviour of different shapes can help provide further insights. This is relevant to both technology developers and funding bodies wanting to identify potential areas for innovation. In this study, the use of multi-objective optimisation is proposed to explore these limits, by investigating the optimal relationship between average annual power production and device size. This relationship depends on resource level, mode of motion used for power extraction and hull shape. The obtained fundamental relationships fall within the existing physical limits, but provide further insights into the impact of different factors on these limits. This allows for a more direct comparison with the performance of state-of-the-art wave energy converters.}, + urldate = {2024-12-22}, + journal = {Renewable Energy}, + author = {Garcia-Teruel, Anna and Roberts, Owain and Noble, Donald R. and Henderson, Jillian Catherine and Jeffrey, Henry}, + month = nov, + year = {2022}, + keywords = {Capture width, Design limits, Fundamental relationships, Scale, Size, Wave energy converter}, + pages = {492--504}, +} + +@article{tom_revisiting_2021, + title = {Revisiting {Theoretical} {Limits} for {One} {Degree}-of-{Freedom} {Wave} {Energy} {Converters}}, + volume = {143}, + issn = {0195-0738}, + url = {https://doi.org/10.1115/1.4049287}, + doi = {10.1115/1.4049287}, + abstract = {This work revisits the theoretical limits of one degree-of-freedom wave energy converters (WECs). This work considers the floating sphere used in the OES Task 10 WEC modeling and verification effort for analysis. Analytical equations are derived to determine bounds on displacement amplitude, time-averaged power (TAP), and power-take-off (PTO) force. A unique result found shows that the TAP absorbed by a WEC can be defined solely by the inertial properties and radiation hydrodynamic coefficients. In addition, a unique expression for the PTO force was derived that provides lower and upper bounds when resistive control is used to maximize power generation. For complex conjugate control, this same expression only provides a lower bound, as there is theoretically no upper bound. These bounds assist in comparing the performance of the floating sphere if it were to extract energy using surge or heave motion. The analysis shows because of differences in hydrodynamic coefficients for each oscillating mode, there are different frequency ranges that provide better power capture efficiency. The influence of a motion constraint on TAP while utilizing a nonideal power take-off is examined and found to reduce the losses associated with bidirectional energy flow. The expression to calculate TAP with a nonideal PTO is modified by the electrical conversion efficiency and the ratio of the PTO spring and damping coefficients. The PTO spring and damping coefficients were separated in the expression, allowing for limits to be set on the PTO coefficients to ensure net power generation.}, + number = {090909}, + urldate = {2024-12-22}, + journal = {Journal of Energy Resources Technology}, + author = {Tom, Nathan M.}, + month = jan, + year = {2021}, +} + +@techreport{housner_numerical_2024, + title = {Numerical {Modeling} and {Optimization} of the {iProTech} {Pitching} {Inertial} {Pump} ({PIP}) {Wave} {Energy} {Converter} ({WEC}) ({Cooperative} {Research} and {Development} {Final} {Report}, {CRADA} {Number}: {CRD}-22-22968)}, + shorttitle = {Numerical {Modeling} and {Optimization} of the {iProTech} {Pitching} {Inertial} {Pump} ({PIP}) {Wave} {Energy} {Converter} ({WEC}) ({Cooperative} {Research} and {Development} {Final} {Report}, {CRADA} {Number}}, + url = {https://www.osti.gov/biblio/2478103}, + doi = {10.2172/2478103}, + abstract = {This work generated a first-of-its-kind automated workflow to couple time-domain simulations of wave energy converters written in one software language with a set of design generation and evaluation scripts written in another software language. This automated workflow used an existing optimization package to analyze the sensitivity of different design parameters on the power output of a specific WEC, iProTech’s Pitching Inertial Pump (PIP). Geometric, inertial, and power take-off variables were all varied and optimized to find values that produced the highest amount of power generated over varying wave conditions. The findings on these parameter sensitivity studies are used to inform future design iterations of the PIP WEC. Including more design variables in the optimizations will only increase computational run time and further software development is needed to analyze a larger optimization.}, + language = {English}, + number = {NREL/TP-5000-92188; CRD-22-22968}, + urldate = {2024-12-21}, + institution = {National Renewable Energy Laboratory (NREL), Golden, CO (United States); iProTech, Redwood City, CA (United States)}, + author = {Housner, Stein and Wynn, Nick}, + month = nov, + year = {2024}, +} + +@article{abdulkadir_control_2024, + title = {Control co-design optimization of nonlinear wave energy converters}, + volume = {304}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S002980182401165X}, + doi = {10.1016/j.oceaneng.2024.117827}, + abstract = {This paper presents a study in which both the control and the shape of a Wave Energy Converter (WEC) are optimized simultaneously. A heaving point absorber WEC is assumed. To optimize the shape of the WEC’s buoy, nonlinear hydrodynamics need to be evaluated. One main contribution of this paper is the integration of nonlinear hydrodynamics and nonlinear control during the optimization of the WEC’s buoy shape. This approach is referred to as Control Co-Design (CCD). In this work, we present a control co-designed nonlinear heaving point absorber WEC that leverages the nonlinear dynamic, static Froude–Krylov (FK) forces to maximize power extraction. The nonlinear FK forces are approximated using a variation of the algebraic solution; the hydrodynamic forces of the body are computed using an analytic formulation leveraging the methods of eigenfunction expansion and separation of variables. The nonlinear geometry of the buoy is modeled as a series of inclined panels; the inclination angles are optimized to arrive at the optimal shape. The performance of the optimized shape is compared to that of a nonlinear spherical WEC. It is found that an average of 20\% improvement is achieved by the optimized geometry over the spherical device.}, + urldate = {2024-12-21}, + journal = {Ocean Engineering}, + author = {Abdulkadir, Habeebullah and Abdelkhalik, Ossama}, + month = jul, + year = {2024}, + keywords = {Control co-design, Froude–Krylov forces, Nonlinear WEC, Optimal control, Wave energy converter}, + pages = {117827}, +} + +@article{mi_multi-scale_2025, + title = {Multi-scale concurrent design of a 100 {kW} wave energy converter}, + volume = {238}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124019037}, + doi = {10.1016/j.renene.2024.121835}, + abstract = {Wave energy converters (WEC) are complex systems comprising multiple subsystems including wave capture structure and station keeping, power takeoff (PTO), and control. Designing the whole WEC system requires an effective design approach that considers mutual couplings among them throughout the entire design process. Moreover, the traditional serial design approach, transitioning from small-scale to full-scale designs incrementally, often overlooks issues related to scaling factors. This can lead to unexpected challenges and delays towards real ocean deployment. To address system-level considerations and scaling challenges in WEC design, this study introduces a novel multi-scale concurrent design approach. It facilitates full-scale WEC design from the early concept to ocean test planning. This approach ensures a holistic and effective design process that considers interactions among subsystems at each design stage and incorporates control co-design starting with early concept development. To demonstrate the presented approach, we introduce a case study focused on the design of a 100 kW floating oscillating surge wave energy converter (FOSWEC) for PacWave South ocean test site. This includes the design of wave capture structure and station keeping, PTO, control, ocean test planning, and techno-economic analysis. The case study showcases the effectiveness of the proposed approach, offering invaluable guidance and insights for future WEC development and support efficient, cost-effective collaboration in WEC design and testing.}, + urldate = {2024-12-20}, + journal = {Renewable Energy}, + author = {Mi, Jia and Huang, Jianuo and Yang, Lisheng and Ahmed, Alaa and Li, Xiaofan and Wu, Xian and Datla, Raju and Staby, Bill and Hajj, Muhammad and Zuo, Lei}, + month = jan, + year = {2025}, + keywords = {Case study, Concurrent design, Multi-scale design, PacWave-south, Wave energy converter}, + pages = {121835}, +} + +@misc{khanal_multi-objective_2024, + title = {Multi-{Objective} {Multidisciplinary} {Optimization} of {Wave} {Energy} {Converter} {Array} {Layout} and {Controls}}, + url = {http://arxiv.org/abs/2410.11089}, + doi = {10.48550/arXiv.2410.11089}, + abstract = {This study utilizes multidisciplinary design optimization (MDO) to design an array of heaving wave energy converters (WECs) for grid-scale energy production with decision variables and parameters chosen from the coupled disciplines of geometry, hydrodynamics, layout, motor-actuated reactive controls (with a force maximum constraint) and economics. We vary a WEC's dimensions, array layout, and control gain to minimize two objectives: the levelized cost of energy (LCOE) and the maximum separation distance. This multi-objective optimization approach results in a set of optimal design configurations that stakeholders can choose from for their specific application and needs. The framework yields a range of optimal (minimum) LCOE values from 0.21 to 0.23 {\textbackslash}\$/kWh and a separation distance ranging from 97 to 62 meters. The WEC radius of 4m is found to be optimal, and the q-factor for optimal designs are greater than 1 up to 1.06 for a rhombus-like layout. Additionally, a post-optimality global sensitivity analysis of a design shows that wave heading, wave frequency, WEC lifetime, amplitude and interest rate accounts for most of the variance. Different designs in the Pareto set may be appealing for different decision makers based on their trade-off analysis. To that end, regression model is developed for design heuristics.}, + urldate = {2024-12-17}, + publisher = {arXiv}, + author = {Khanal, Kapil and DeGoede, Nate and Vitale, Olivia and Haji, Maha N.}, + month = oct, + year = {2024}, + note = {arXiv:2410.11089 [eess]}, + keywords = {Computer Science - Systems and Control, Electrical Engineering and Systems Science - Systems and Control}, +} + +@techreport{wierzbicki_lecture_2013, + type = {Lecture notes}, + title = {Lecture 11: {Buckling} of {Plates} and {Sections}}, + shorttitle = {2.{080J} {Structural} {Mechanics} {Lecture} 11}, + url = {https://ocw.mit.edu/courses/2-080j-structural-mechanics-fall-2013/resources/mit2_080jf13_lecture11/}, + abstract = {This file contains information regarding lecture 7.}, + language = {en}, + number = {11}, + urldate = {2024-12-15}, + institution = {Massachusetts Institute of Technology}, + author = {Wierzbicki, Tomasz}, + year = {2013}, +} + +@techreport{american_bureau_of_shipping_requirements_2022, + address = {ABS Plaza 1701 City Plaza Drive Spring, TX 77389 USA}, + type = {Requirement}, + title = {Requirements for {Buckling} and {Ultimate} {Strength} {Assessment} for {Offshore} {Structures}}, + url = {https://ww2.eagle.org/content/dam/eagle/rules-and-guides/current/offshore/126-requirements-for-buckling-and-ultimate-strength-assessment-for-offshore-structures/126-buckling-reqts-july22.pdf}, + language = {en}, + number = {126}, + urldate = {2024-12-15}, + institution = {American Bureau of Shipping}, + author = {{American Bureau of Shipping}}, + month = jul, + year = {2022}, +} + +@book{american_iron_and_steel_institute_cold-formed_1991, + address = {1000 16th Street, NW, Washington, D.C. 20036}, + edition = {1986 Edition with 1989 Addendum}, + title = {Cold-{Formed} {Steel} {Design} {Manual}}, + url = {https://scholarsmine.mst.edu/ccfss-aisi-spec/60/}, + abstract = {Note: This is an electronic version only. A printed version is available here. ELECTRONIC DELIVERY METHOD:The electronic version of this document will be placed in a Dropbox folder and the purchaser notified via email when it is available for downloading. Please be sure to include an email address with your order. Docu}, + language = {en}, + urldate = {2024-12-15}, + publisher = {W. P. Reyman Associates}, + author = {{American Iron and Steel Institute}}, + year = {1991}, +} + +@article{paduano_towards_2024, + title = {Towards standardised design of wave energy converters: {A} high-fidelity modelling approach}, + volume = {224}, + issn = {0960-1481}, + shorttitle = {Towards standardised design of wave energy converters}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124002064}, + doi = {10.1016/j.renene.2024.120141}, + abstract = {Within this study, an analysis of the global standard panorama for wave energy converters (WECs) is presented, in order to develop design methodologies as close as possible to the state-of-the-art. In particular, an analysis of such international standards panorama exhibits a lack of information and detail regarding WEC system design, and the specific simulations procedures that shall be followed accordingly. In the light of this, this study proposes a standardised design process that can be followed to define the design loads which characterise a structural analysis, which are obtained by high-fidelity models. The device assessment in extreme states is analysed on intact and damaged conditions, where the use of a computational fluid dynamics (CFD) software is proposed to encompass any non-linear behaviour related to extreme events. Furthermore, this article also describes a fatigue assessment based on linear system theory, with the inclusion of linearised significant terms, such as, e.g. mooring influence on device dynamics.}, + urldate = {2024-12-15}, + journal = {Renewable Energy}, + author = {Paduano, Bruno and Parrinello, Luca and Niosi, Francesco and Dell’Edera, Oronzo and Sirigu, Sergej Antonello and Faedo, Nicolás and Mattiazzo, Giuliana}, + month = apr, + year = {2024}, + keywords = {Design, Extreme events, Fatigue, Standards, Wave energy converter}, + pages = {120141}, +} + +@techreport{ove_arup__partners_ltd_structural_2016, + address = {Scotland}, + title = {Structural {Forces} and {Stresses} for {Wave} {Energy} {Devices}}, + url = {https://tethys-engineering.pnnl.gov/publications/structural-forces-stresses-wave-energy-devices}, + number = {ARP LS2}, + urldate = {2024-12-15}, + institution = {Wave Energy Scotland}, + author = {{Ove Arup \& Partners Ltd} and {Cruz Atcheson Consulting Engineers, Lda.}}, + month = jun, + year = {2016}, +} + +@techreport{wierzbicki_lecture_2013-1, + type = {Lecture notes}, + title = {Lecture 7: {Bending} {Response} of {Plates} and {Optimum} {Design}}, + shorttitle = {2.{080J} {Structural} {Mechanics} {Lecture} 7}, + url = {https://ocw.mit.edu/courses/2-080j-structural-mechanics-fall-2013/resources/mit2_080jf13_lecture7/}, + abstract = {This file contains information regarding lecture 7.}, + language = {en}, + number = {7}, + urldate = {2024-12-15}, + institution = {Massachusetts Institute of Technology}, + author = {Wierzbicki, Tomasz}, + year = {2013}, +} + +@article{boedo_corrected_1998, + title = {Corrected {Solution} of {Clamped} {Ring} {Plate} with {Edge} {Point} {Load}}, + volume = {124}, + copyright = {Copyright © 1998 American Society of Civil Engineers}, + issn = {0733-9399}, + url = {https://ascelibrary.org/doi/10.1061/%28ASCE%290733-9399%281998%29124%3A6%28696%29}, + doi = {10.1061/(ASCE)0733-9399(1998)124:6(696)}, + abstract = {This technical note provides closed-form deflection and stress corrections to the +well-known and practical problem of a ring plate clamped along its inner radius and +subjected to a point load on its free outer edge. The corrected solution predicts +radial ...}, + language = {EN}, + number = {6}, + urldate = {2024-12-15}, + journal = {Journal of Engineering Mechanics}, + publisher = {American Society of Civil Engineers}, + author = {Boedo, S. and Prantil, V. C.}, + month = jun, + year = {1998}, + pages = {696--697}, +} + +@book{young_roarks_2001, + title = {Roark's {Formulas} for {Stress} and {Strain}}, + isbn = {978-0-07-150181-1}, + abstract = {Solutions-based approach to quick calculations in structural element design and analysisNow updated with 30\% new material, Roark Formulas for Stress and Strain, Seventh Edition, is the ultimate resource for designers, engineers, and analysts who need to calculate loads and stress. This landmark reference from Warren Young and Richard Budynas provides you with equations and diagrams of structural properties in an easy-to-use, thumb-through format. Updated, with a user-friendly page layout, this new edition includes expanded coverage of joints, bearing and shear stress, experimental stress analysis, and stress concentrations, as well as material behavior coverage and stress and strain measurement. You’ll also find expanded tables and cases; improved notations and figures in the tables; consistent table and equation numbering; and verification of correction factors.}, + language = {en}, + publisher = {McGraw Hill LLC}, + author = {Young, Warren C. and Budynas, Richard G.}, + month = oct, + year = {2001}, + note = {Google-Books-ID: pummClLoFXEC}, + keywords = {Technology \& Engineering / Civil / General}, +} + +@article{mccabe_force-limited_2024, + series = {15th {IFAC} {Conference} on {Control} {Applications} in {Marine} {Systems}, {Robotics} and {Vehicles} {CAMS} 2024}, + title = {Force-{Limited} {Control} of {Wave} {Energy} {Converters} using a {Describing} {Function} {Linearization}⁎}, + volume = {58}, + issn = {2405-8963}, + url = {https://www.sciencedirect.com/science/article/pii/S2405896324018482}, + doi = {10.1016/j.ifacol.2024.10.093}, + abstract = {Actuator saturation is a common nonlinearity. In wave energy conversion, force saturation conveniently limits drivetrain size and cost with minimal impact on energy generation. However, such nonlinear dynamics typically demand numerical simulation, which increases computational cost and diminishes intuition. This paper instead uses describing functions to approximate a force saturation nonlinearity as a linear impedance mismatch. In the frequency domain, the impact of controller impedance mismatch (such as force limit, finite bandwidth, or parameter error) on electrical power production is shown analytically and graphically for a generic nondimensionalized single degree of freedom wave energy converter in regular waves. Results are visualized with Smith charts. Notably, systems with a specific ratio of reactive to real mechanical impedance are least sensitive to force limits, a criteria which conflicts with resonance and bandwidth considerations. The describing function method shows promise to enable future studies such as large-scale design optimization and co-design.}, + number = {20}, + urldate = {2024-12-09}, + journal = {IFAC-PapersOnLine}, + author = {McCabe, Rebecca and Haji, Maha N.}, + month = jan, + year = {2024}, + keywords = {Wave energy converters, constrained control, describing functions, impedance mismatch, linearization, nonlinear and optimal marine system control, systems with saturation}, + pages = {440--445}, +} + +@article{hall_open-source_2022, + title = {An {Open}-{Source} {Frequency}-{Domain} {Model} for {Floating} {Wind} {Turbine} {Design} {Optimization}}, + volume = {2265}, + issn = {1742-6596}, + url = {https://dx.doi.org/10.1088/1742-6596/2265/4/042020}, + doi = {10.1088/1742-6596/2265/4/042020}, + abstract = {A new frequency-domain dynamics model has been developed that uses open-source components to efficiently represent a complete floating wind turbine system. The model, called RAFT (Response Amplitudes of Floating Turbines), incorporates quasi-static mooring reactions, strip-theory and potential-flow hydrodynamics, blade-element-momentum aerodynamics, and linear turbine control. The formulation is compatible with a wide variety of support structure configurations and no manual or time-domain preprocessing steps are required, making RAFT very practical in design and optimization workflows. The model is applied to three reference floating wind turbine designs and its predictions are compared with results from time-domain OpenFAST simulations. There is good agreement in mean offsets as well the statistics and spectra of the dynamic response, verifying RAFT’s general suitability for floating wind analysis. Follow-on work will include verification of potential-flow and turbine-control features and application to optimization problems.}, + language = {en}, + number = {4}, + urldate = {2024-12-08}, + journal = {Journal of Physics: Conference Series}, + publisher = {IOP Publishing}, + author = {Hall, Matthew and Housner, Stein and Zalkind, Daniel and Bortolotti, Pietro and Ogden, David and Barter, Garrett}, + month = may, + year = {2022}, + pages = {042020}, +} + +@book{pozar_microwave_2012, + edition = {4th edition}, + title = {Microwave {Engineering}}, + isbn = {978-1-118-21363-6}, + url = {https://alunoeletrica.eng.ufba.br/material/eletromagnetismoaplicado/livros/pozar.pdf}, + urldate = {2024-10-03}, + publisher = {Wiley}, + author = {Pozar, David}, + year = {2012}, +} + +@article{sun_stochastic_2019, + title = {Stochastic control of wave energy converters for optimal power absorption with constrained control force}, + volume = {87}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118718303122}, + doi = {10.1016/j.apor.2019.03.002}, + abstract = {This paper presents an analytical solution derived for optimal control of the power take-off of a single-degree of freedom heave point absorber with constraints on the control force. The optimal control law turns out to be noncausal with a functional dependence on future velocities. To handle this problem, an algorithm for predicting future velocities is derived. Based on the solution the mean (time-averaged) absorbed power in a given sea-state is calculated. The performance of the indicated controller in terms of the mean absorbed power is close to the optimal value obtained by nonlinear programming and better than a controller with feedback from the present displacement, velocity and acceleration, and with optimized gain factors.}, + urldate = {2024-10-06}, + journal = {Applied Ocean Research}, + author = {Sun, Tao and Nielsen, Søren R. K.}, + month = jun, + year = {2019}, + keywords = {Actuator force constraints, Heave point absorber, Optimal power take-off, Wave energy}, + pages = {130--141}, +} + +@misc{noauthor_77_2020, + title = {7.7: {Broadband} {Matching} to {Reactive} {Loads}}, + shorttitle = {7.7}, + url = {https://eng.libretexts.org/Bookshelves/Electrical_Engineering/Electronics/Microwave_and_RF_Design_III_-_Networks_(Steer)/07%3A_Chapter_7/7.7%3A_Broadband_Matching_to_Reactive_Loads}, + language = {en}, + urldate = {2024-10-03}, + journal = {Engineering LibreTexts}, + month = oct, + year = {2020}, +} + +@article{herber_problem_2019, + title = {A {Problem} {Class} {With} {Combined} {Architecture}, {Plant}, and {Control} {Design} {Applied} to {Vehicle} {Suspensions}}, + volume = {141}, + issn = {1050-0472}, + url = {https://doi.org/10.1115/1.4043312}, + doi = {10.1115/1.4043312}, + abstract = {Here we describe a problem class with combined architecture, plant, and control design for dynamic engineering systems. The design problem class is characterized by architectures comprised of linear physical elements and nested co-design optimization problems employing linear-quadratic dynamic optimization. The select problem class leverages a number of existing theory and tools and is particularly effective due to the symbiosis between labeled graph representations of architectures, dynamic models constructed from linear physical elements, linear-quadratic dynamic optimization, and the nested co-design solution strategy. A vehicle suspension case study is investigated and a specifically constructed architecture, plant, and control design problem is described. The result was the automated generation and co-design problem evaluation of 4374 unique suspension architectures. The results demonstrate that changes to the vehicle suspension architecture can result in improved performance, but at the cost of increased mechanical complexity. Furthermore, the case study highlights a number of challenges associated with finding solutions to the considered class of design problems. One such challenge is the requirement to use simplified design problem elements/models; thus, the goal of these early-stage studies are to identify new architectures that are worth investigating more deeply. The results of higher-fidelity studies on a subset of high-performance architectures can then be used to select a final system architecture. In many aspects, the described problem class is the simplest case applicable to graph-representable, dynamic engineering systems.}, + number = {101401}, + urldate = {2024-09-30}, + journal = {Journal of Mechanical Design}, + author = {Herber, Daniel R. and Allison, James T.}, + month = may, + year = {2019}, +} + +@inproceedings{chen_electrical_2008, + address = {London}, + title = {Electrical and {Mechanical} {Passive} {Network} {Synthesis}}, + isbn = {978-1-84800-155-8}, + doi = {10.1007/978-1-84800-155-8_3}, + abstract = {The context of this paper is the application of electrical circuit synthesis to problems of mechanical control. The use of the electrical-mechanical analogy and the inerter mechanical element is briefly reviewed. Classical results from passive network synthesis are surveyed including Brune’s synthesis, Bott-Duffin’s procedure, Darlington’s synthesis, minimum reactance extraction and the synthesis of biquadratic functions. New results are presented on the synthesis of biquadratic functions which are realisable using two reactive elements and no transformers.}, + language = {en}, + booktitle = {Recent {Advances} in {Learning} and {Control}}, + publisher = {Springer}, + author = {Chen, Michael Z. Q. and Smith, Malcolm C.}, + editor = {Blondel, Vincent D. and Boyd, Stephen P. and Kimura, Hidenori}, + year = {2008}, + pages = {35--50}, +} + +@techreport{bortolotti_system_2022, + title = {System {Modeling} {Frameworks} for {Wind} {Turbines} and {Plants}: {Review} and {Requirements} {Specifications}}, + shorttitle = {System {Modeling} {Frameworks} for {Wind} {Turbines} and {Plants}}, + url = {https://www.osti.gov/biblio/1868328}, + doi = {10.2172/1868328}, + abstract = {System modeling frameworks for wind turbines and plants are used by research groups and industry to design wind energy systems that take into account key trade-offs across performance, cost, and reliability at both the turbine and plant level. The frameworks are exercised using a variety of multi-disciplinary design, analysis and optimization (MDAO) methods. To improve inter-operability and foster collaboration, this report proposes a classification system for the frameworks along dimensions of model fidelity and scope. The classification system is first motivated with reviews the state-of-the-art in the development of software frameworks for integrated wind turbine and plant simulation. Within each major wind turbine and power plant subsystem, a matrix is developed for the disciplines used and the fidelity levels with which each discipline can be modeled. The existing frameworks are then classified according to the matrix. Next, an ontology is proposed that will allow for standardizing how data is transferred between the most common discipline-fidelity combinations used in the frameworks. A common representation of data creates the ability to 1) share system descriptions and analysis results, supporting more transparent benchmarks and comparison, and 2) integrate models together into workflows within and across organizations for improving the efficiency and performance of wind turbine and power plant design processes. Ultimately, this integration leads to better overall wind energy system designs with high performance and low costs.}, + language = {English}, + number = {NREL/TP-5000-82621}, + urldate = {2024-09-14}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Bortolotti, Pietro and Bay, Christopher and Barter, Garrett and Gaertner, Evan and Dykes, Katherine and McWilliam, Michael and Friis-Moller, Mikkel and Molgaard Pedersen, Mads and Zahle, Frederik}, + month = may, + year = {2022}, +} + +@article{rijlaarsdam_comparative_2017, + title = {A comparative overview of frequency domain methods for nonlinear systems}, + volume = {42}, + issn = {0957-4158}, + url = {https://www.sciencedirect.com/science/article/pii/S0957415816301568}, + doi = {10.1016/j.mechatronics.2016.12.008}, + abstract = {The widespread acceptance of frequency domain techniques for linear and time invariant systems has been an impetus for the extension of these methodologies toward nonlinear systems. However, differences and equivalences between alternative methods have been less addressed. This paper provides a comparative overview of four classes of frequency domain methods for nonlinear systems: Volterra based models, nonlinear frequency response functions / Bode plots, describing functions and linear approximations in the presence of nonlinearities. Each method is introduced using consistent nomenclature and terminology, which allows for comparison in terms of system and signal classes for which the methods are valid as well as the type of (nonlinear) effects captured by each model. Summarizing, the paper aims to connect, and make different frequency domain methods for nonlinear systems accessible, by providing a comparative overview of such methodologies, accompanied by illustrative (experimental) examples.}, + urldate = {2024-09-01}, + journal = {Mechatronics}, + author = {Rijlaarsdam, David and Nuij, Pieter and Schoukens, Johan and Steinbuch, Maarten}, + month = apr, + year = {2017}, + keywords = {Convergent systems, Describing functions, Fading memory, Frequency domain methods, Generalized FRF, Linear approximation, Modeling, Nonlinear FRF, Nonlinear systems, Volterra systems}, + pages = {11--24}, +} + +@article{rijlaarsdam_uniquely_2012, + title = {Uniquely connecting frequency domain representations of given order polynomial {Wiener}–{Hammerstein} systems}, + volume = {48}, + issn = {0005-1098}, + url = {https://www.sciencedirect.com/science/article/pii/S0005109812002579}, + doi = {10.1016/j.automatica.2012.06.006}, + abstract = {The notion of frequency response functions has been generalized to nonlinear systems in several ways. However, a relation between different approaches has not yet been established. In this paper, frequency domain representations for nonlinear systems are uniquely connected for a class of nonlinear systems. Specifically, by means of novel analytical results, the generalized frequency response function (GFRF) and the higher order sinusoidal input describing function (HOSIDF) for polynomial Wiener–Hammerstein systems are explicitly related, assuming the linear dynamics are known. Necessary and sufficient conditions for this relation to exist and results on the uniqueness and equivalence of the HOSIDF and GFRF are provided. Finally, this yields an efficient computational procedure for computing the GFRF from the HOSIDF and vice versa.}, + number = {9}, + urldate = {2024-09-01}, + journal = {Automatica}, + author = {Rijlaarsdam, David and Oomen, Tom and Nuij, Pieter and Schoukens, Johan and Steinbuch, Maarten}, + month = sep, + year = {2012}, + keywords = {Describing functions, Frequency response methods, Generalized frequency response function, Higher order sinusoidal input describing function, Nonlinear systems}, + pages = {2381--2384}, +} + +@techreport{schwarz_evaluating_2024, + title = {Evaluating the {Impact} of {Tidal} {Energy} in the {Cook} {Inlet} on {Alaska}'s {Railbelt} {Electrical} {Grid}}, + url = {https://www.osti.gov/biblio/2345173}, + doi = {10.2172/2345173}, + abstract = {This report presents the findings of a case study that evaluates the impact of integrating significant tidal energy generation in the Cook Inlet in Alaska. The case study is part of a series within the "Quantifying the Grid Value of MRE [Marine Renewable Energy] in Early U.S. Markets" project funded by the U.S. Department of Energy. This study takes a scenario-based approach to evaluate the tidal energy potential in the Cook Inlet, in which 100-500 megawatts (MW) of tidal energy are integrated into the grid under different infrastructure scenarios. These scenarios include increased energy storage and transmission line upgrades, a "Basecase" scenario with no additional upgrades, and a reference case with no tidal energy. We concluded that tidal energy at an installed capacity of 200-300 MW has the potential to reduce fuel costs in Alaska while also reducing carbon emissions and increasing the energy independence of the state. This analysis and the key findings should be viewed as a starting point for additional research and used to inform investment and policy options.}, + language = {English}, + number = {NREL/TP-5700-85943}, + urldate = {2024-08-29}, + institution = {National Renewable Energy Laboratory (NREL), Golden, CO (United States)}, + author = {Schwarz, Marty and McGilton, Ben and Kilcher, Levi and Gjestvang, Kelly and Stark, Greg}, + month = apr, + year = {2024}, +} + +@article{penalba_review_2016, + title = {A {Review} of {Wave}-to-{Wire} {Models} for {Wave} {Energy} {Converters}}, + volume = {9}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/9/7/506}, + doi = {10.3390/en9070506}, + abstract = {Control of wave energy converters (WECs) has been very often limited to hydrodynamic control to absorb the maximum energy possible from ocean waves. This generally ignores or significantly simplifies the performance of real power take-off (PTO) systems. However, including all the required dynamics and constraints in the control problem may considerably vary the control strategy and the power output. Therefore, this paper considers the incorporation into the model of all the conversion stages from ocean waves to the electricity network, referred to as wave-to-wire (W2W) models, and identifies the necessary components and their dynamics and constraints, including grid constraints. In addition, the paper identifies different control inputs for the different components of the PTO system and how these inputs are articulated to the dynamics of the system. Examples of pneumatic, hydraulic, mechanical or magnetic transmission systems driving a rotary electrical generator, and linear electric generators are provided.}, + language = {en}, + number = {7}, + urldate = {2024-08-23}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Penalba, Markel and Ringwood, John V.}, + month = jul, + year = {2016}, + note = {Number: 7}, + keywords = {electric generator, electricity network, hydraulic system, hydrodynamic model, power converters, wave energy, wave resource, wave-to-wire model}, + pages = {506}, +} + +@article{gonzalez_offshore_2024, + title = {Offshore wind and wave energy can reduce total installed capacity required in zero-emissions grids}, + volume = {15}, + copyright = {2024 The Author(s)}, + issn = {2041-1723}, + url = {https://www.nature.com/articles/s41467-024-50040-6}, + doi = {10.1038/s41467-024-50040-6}, + abstract = {As the world races to decarbonize power systems to mitigate climate change, the body of research analyzing paths to zero emissions electricity grids has substantially grown. Although studies typically include commercially available technologies, few of them consider offshore wind and wave energy as contenders in future zero-emissions grids. Here, we model with high geographic resolution both offshore wind and wave energy as independent technologies with the possibility of collocation in a power system capacity expansion model of the Western Interconnection with zero emissions by 2050. In this work, we identify cost targets for offshore wind and wave energy to become cost effective, calculate a 17\% reduction in total installed capacity by 2050 when offshore wind and wave energy are fully deployed, and show how curtailment, generation, and transmission change as offshore wind and wave energy deployment increase.}, + language = {en}, + number = {1}, + urldate = {2024-08-21}, + journal = {Nature Communications}, + publisher = {Nature Publishing Group}, + author = {Gonzalez, Natalia and Serna-Torre, Paul and Sánchez-Pérez, Pedro A. and Davidson, Ryan and Murray, Bryan and Staadecker, Martin and Szinai, Julia and Wei, Rachel and Kammen, Daniel M. and Sunter, Deborah A. and Hidalgo-Gonzalez, Patricia}, + month = aug, + year = {2024}, + keywords = {Energy modelling, Energy supply and demand, Hydroelectricity, Power distribution, Wind energy}, + pages = {6826}, +} + +@misc{noauthor_value_nodate, + title = {The {Value} of {Nuclear} {Microreactors} in {Providing} {Heat} and {Electricity} to {Alaskan} {Communities} -}, + url = {https://ceepr.mit.edu/workingpaper/the-value-of-nuclear-microreactors-in-providing-heat-and-electricity-to-alaskan-communities/}, + abstract = {We evaluated the system cost of providing electricity and heat to serve the load profiles of two types of Alaskan […]}, + language = {en-US}, + urldate = {2024-08-21}, + journal = {CEEPR}, +} + +@article{kagemoto_interactions_1986, + title = {Interactions among multiple three-dimensional bodies in water waves: an exact algebraic method}, + volume = {166}, + issn = {1469-7645, 0022-1120}, + shorttitle = {Interactions among multiple three-dimensional bodies in water waves}, + url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/interactions-among-multiple-threedimensional-bodies-in-water-waves-an-exact-algebraic-method/6A2EE66379F6149D11228E1A9D6F2BB3}, + doi = {10.1017/S0022112086000101}, + abstract = {We consider three-dimensional water-wave diffraction and radiation by a structure consisting of a number of separate (vertically) non-overlapping members in the context of linearized potential flow. An interaction theory is developed which solves the complete problem, predicting wave exciting forces, hydrodynamic coefficients and second-order drift forces, but is based algebraically on the diffraction characteristics of single members only. This method, which includes also the diffraction interaction of evanescent waves, is in principle exact (within the context of linearized theory) for otherwise arbitrary configurations and spacings. This is confirmed by a number of numerical examples and comparisons involving two or four axisymmetric legs, where full three-dimensional diffraction calculations for the entire structures are also performed using a hybrid element method. To demonstrate the efficacy of the interaction theory, we apply it finally to an array of 33 (3 by 11) composite cylindrical legs, where experimental data are available. The comparison with measurements shows reasonable agreement.The present method is valid for a large class of arrays of arbitrary individual geometries, number and configuration of bodies with non-intersecting vertical projections. Its application should make it unnecessary to perform full diffraction computations for many multiple-member structures and arrays.}, + language = {en}, + urldate = {2024-08-05}, + journal = {Journal of Fluid Mechanics}, + author = {Kagemoto, Hiroshi and Yue, Dick K. P.}, + month = may, + year = {1986}, + pages = {189--209}, +} + +@article{guo_geometric_2021, + title = {Geometric optimisation of wave energy conversion devices: {A} survey}, + volume = {297}, + issn = {0306-2619}, + shorttitle = {Geometric optimisation of wave energy conversion devices}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261921005456}, + doi = {10.1016/j.apenergy.2021.117100}, + abstract = {Unlike more established renewable energy conversion technologies, such as wind turbines, wave power systems have reached neither commercial maturity, nor technological convergence. The significant variation in device geometries and operating principles has resulted in a diversification of effort, with little coordination or true comparative analysis. The situation is compounded by the relative lack of systematic optimisation applied to the sector, partly explained by the complexity and uncertainty associated with wave energy system models, as well as difficulties in the evaluation of appropriate target function metrics. This review provides a critical overview of the state-of-the-art in wave energy device geometry optimisation, comparing and contrasting various optimisation approaches, and attempting to detail the current limitations preventing further progress, and convergence, in the development of optimal wave energy technology.}, + urldate = {2024-08-05}, + journal = {Applied Energy}, + author = {Guo, Bingyong and Ringwood, John V.}, + month = sep, + year = {2021}, + keywords = {Geometric optimisation, Hydrodynamic modelling, Optimal control, Optimisation algorithm, Optimisation criteria, Wave energy conversion}, + pages = {117100}, +} + +@article{hall_hydrodynamics-based_2014, + title = {Hydrodynamics-based floating wind turbine support platform optimization: {A} basis function approach}, + volume = {66}, + issn = {0960-1481}, + shorttitle = {Hydrodynamics-based floating wind turbine support platform optimization}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148114000068}, + doi = {10.1016/j.renene.2013.12.035}, + abstract = {The floating wind turbine support structure design problem is complicated by conflicting technical objectives and innumerable platform geometry options. Previous support structure optimization studies have been limited in their ability to evaluate the full design space due to their adherence to certain assumptions about the physical platform configuration. The present work is an effort toward developing an alternative form of the support platform optimization problem – one that abstracts details of the platform geometry and deals instead with hydrodynamic performance coefficients – in order to provide a more complete and intuitive exploration of the design space. A basis function approach, which represents the design space by linearly combining the hydrodynamic performance coefficients of a diverse set of basis platform geometries, was taken as the most straightforward way of physically constraining the platform hydrodynamic performance. Candidate designs are evaluated in the frequency domain using linearized coefficients for the wind turbine, platform, and mooring system dynamics. The platform hydrodynamic coefficients are calculated according to linear hydrodynamic theory. The optimization objective is to minimize the nacelle acceleration under several operating conditions. Optimization results for a slack catenary mooring system indicate the benefits of combining submerged volume with a widely dispersed water plane area. Results for a tension leg mooring system are consistent with conventional TLP designs. The intent is to use these results as starting points for more traditional platform parameter optimization. Examination of the possible physical interpretations of linearly combining basis platform coefficients reveals that certain aspects of this approach may have poor physicality. This points to the need to expand this first attempt with more sophisticated ways of representing the constrained hydrodynamic performance variables.}, + urldate = {2024-08-05}, + journal = {Renewable Energy}, + author = {Hall, Matthew and Buckham, Brad and Crawford, Curran}, + month = jun, + year = {2014}, + keywords = {Floating, Hydrodynamics, Offshore, Optimization, Support structure, Wind turbine}, + pages = {559--569}, +} + +@phdthesis{rijlaarsdam_frequency_2012, + title = {Frequency domain based performance optimization of systems with static nonlinearities}, + url = {https://research.tue.nl/en/publications/frequency-domain-based-performance-optimization-of-systems-with-s}, + urldate = {2024-08-05}, + school = {Eindhoven University of Technology}, + author = {Rijlaarsdam, D. J.}, + year = {2012}, +} + +@misc{noauthor_devices_nodate, + title = {Devices}, + url = {https://openei.org/wiki/PRIMRE/Databases/Projects_Database/Devices}, + urldate = {2024-07-26}, +} + +@misc{noauthor_methods_2016, + title = {Methods to determine pore pressure}, + url = {https://petrowiki.spe.org/Methods_to_determine_pore_pressure}, + language = {en}, + urldate = {2024-07-26}, + journal = {PetroWiki}, + month = jan, + year = {2016}, +} + +@misc{noauthor_using_2018, + title = {Using an offshore platform beyond its expected lifespan {\textbar} {Engineer} {Live}}, + url = {https://www.engineerlive.com/node/17311}, + abstract = {When it comes to asset life extension, oil producers have discovered that a risk-based inspection approach can cut costs if it’s implemented properly. Now, says Anne-Marie Walters, it’s a matter of increasing the adoption rate}, + urldate = {2024-07-26}, + month = aug, + year = {2018}, +} + +@misc{noauthor_technology_nodate, + title = {Technology}, + url = {https://capturacorp.com/technology/}, + language = {en-US}, + urldate = {2024-07-26}, + journal = {Captura}, +} + +@article{norton_storage_2024, + title = {Storage capacity estimates and site conditions of potential locations for offshore-wind powered carbon dioxide removal and carbon sequestration in ocean basalt}, + volume = {13}, + issn = {2772-6568}, + url = {https://www.sciencedirect.com/science/article/pii/S2772656824000435}, + doi = {10.1016/j.ccst.2024.100231}, + abstract = {Negative emission technologies (NETs) are considered essential to keep global warming below 2 °C. Situating wind-powered carbon dioxide removal (CDR) devices offshore and injecting carbon dioxide (CO2) into deep-water sub-seafloor basalt aquifers has the potential to offer large CO2 removal capacity. It also avoids land and water-use competition and provides additional low-risk protections against post-injection leakage compared to terrestrial CO2 storage. This paper seeks to identify locations where offshore wind and potential basalt storage locations exist within close proximity to one another around the globe. A global mean wind power density map at 150 m height was computed using 30 years (1986–2016) of ERA5 hourly wind speed reanalysis data. Offshore regions with mean wind speed greater than 8 m/s were identified. Offshore regions with basalt aquifers along seismic or aseismic ridges which provide potential CO2 storage sites were identified and selected based on sediment thickness, age, and distance from plate boundaries. Four scenarios were constructed to capture a range of constraints with implications for technical, economic and regulatory difficulties. For each scenario, eligible regions for CO2 injection were filled by regularly spaced grid points and the distance to the nearest eligible wind resource was calculated for each point to identify the most promising configurations. Total available storage capacity within reach of wind resources was estimated to be between 4,300Gt and 196,000Gt depending on both uncertainties in porosity and other imposed constraints; even the most conservative estimates represent enormous capacity compared to global targets for negative emissions technologies. Typically, the best areas were found close to the poles due to the greater prevalence of good wind resources in those areas. Site-specific properties such as water depth and distance from shore are computed for the identified locations in order to characterize the conditions in which such locations are typically found.}, + urldate = {2024-07-24}, + journal = {Carbon Capture Science \& Technology}, + author = {Norton, Heather and Todd, Devin and Crawford, Curran}, + month = dec, + year = {2024}, + keywords = {Basalt, Carbon capture and storage (CCS), Carbon dioxide removal (CDR), Negative emissions technology (NET), Offshore wind}, + pages = {100231}, +} + +@article{norton_techno-economic_2024, + title = {Techno-economic assessment of supercritical, cold liquid, and dissolved {CO2} injection into sub-seafloor basalt}, + volume = {13}, + issn = {2772-6568}, + url = {https://www.sciencedirect.com/science/article/pii/S2772656824000484}, + doi = {10.1016/j.ccst.2024.100236}, + abstract = {Injecting CO2 into subsea basalt can provide permanent storage via multiple trapping mechanisms, including mineralization reactions which convert the CO2 into solid carbonates over time. Injecting CO2 together with water can accelerate the process of mineralization, but presents additional challenges, such as high energy and water requirements. A techno-economic model of CO2 transport and injection into ocean basalt was developed to compare injection strategies using pure supercritical CO2, pure liquid CO2, and CO2 dissolved in seawater. The model was applied to a representative injection site off the coast of British Columbia, Canada. Injection of CO2 dissolved into seawater was found to be more energy and cost intensive than injection of supercritical or liquid CO2; this is primarily due to the reduced quantities of CO2 that can be injected into each well, and additional pumping energy required for the accompanying seawater. For the base assumptions, transport and storage costs for supercritical, liquid, and dissolved injection were estimated as \$43/t, \$38/t, and \$250/t respectively. Their energy requirements were estimated as 93 kWh/t, 90 kWh/t, and 213 kWh/t respectively. The current best estimates of geological parameters for ocean basalt suggest good injectivity and very large storage capacities per well. This may help to compensate for the additional project expenses incurred by deep water, allowing cost-effective liquid and supercritical injection. However, this result is sensitive to high uncertainties in both geological parameters and component cost data.}, + urldate = {2024-07-24}, + journal = {Carbon Capture Science \& Technology}, + author = {Norton, Heather and Gillessen, Philipp and Crawford, Curran}, + month = dec, + year = {2024}, + keywords = {Basalt, Carbon capture and storage (CCS), Carbon dioxide removal (CDR), Offshore, Techno-economic analysis (TEA)}, + pages = {100236}, +} + +@article{levine_gravitational_2007, + title = {Gravitational trapping of carbon dioxide in deep sea sediments: {Permeability}, buoyancy, and geomechanical analysis}, + volume = {34}, + issn = {1944-8007}, + shorttitle = {Gravitational trapping of carbon dioxide in deep sea sediments}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2007GL031560}, + doi = {10.1029/2007GL031560}, + abstract = {Liquid carbon dioxide injected in deep-sea sediments at km depths and near freezing temperatures is denser than surrounding pore water and will be trapped by gravitational forces. Storage capacity for CO2 in such formations below the ocean floor is shown to vary with seafloor depth, geothermal gradient, porosity, and pore water salinity. The formation permeability, or the successful engineering of such permeability through hydraulic fracturing, will determine the capacity for gravitational trapping in deep-sea geological formations. We conclude that most ocean sediments at appropriate depth will lack the required permeability and that conventional hydraulic fracturing would only be possible in carefully selected sites.}, + language = {en}, + number = {24}, + urldate = {2024-07-24}, + journal = {Geophysical Research Letters}, + author = {Levine, J. S. and Matter, J. M. and Goldberg, D. and Cook, A. and Lackner, K. S.}, + year = {2007}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2007GL031560}, + keywords = {CO2, separations}, +} + +@phdthesis{rijlaarsdam_frequency_2012-1, + address = {Eindhoven}, + type = {Phd {Thesis} 1 ({Research} {TU}/e / {Graduation} {TU}/e)}, + title = {Frequency domain based performance optimization of systems with static nonlinearities}, + isbn = {978-90-386-3149-3}, + doi = {10.6100/IR732581}, + school = {Technische Universiteit Eindhoven}, + author = {Rijlaarsdam, D.J.}, + year = {2012}, +} + +@article{roberts_conjugate-image_1946, + title = {Conjugate-{Image} {Impedances}}, + volume = {34}, + issn = {2162-6634}, + url = {https://ieeexplore.ieee.org/abstract/document/1697051}, + doi = {10.1109/JRPROC.1946.234242}, + abstract = {A load having the conjugate impedance of the signal generator to which it is connected receives the maximum amount of power and is said to be matched on the conjugate-image basis. This method of impedance matching, when applied to active and passive four-terminal networks, is shown to be especially suitable for determining the limits of power amplification or loss. In contrast, an analysis on the usual image basis gives these results only if the image impedances happen to be pure resistances. The maximum power gain of a given network and the impedance terminations for achieving it are derived and are expressed in-concise form. The effects of impedance mismatching are likewise treated.}, + number = {4}, + urldate = {2024-06-21}, + journal = {Proceedings of the IRE}, + author = {Roberts, S.}, + month = apr, + year = {1946}, + keywords = {Circuits, Communication cables, Image analysis, Impedance, Laboratories, Power generation, Research and development, Signal generators, Telephony, Transformers}, + pages = {198p--204p}, +} + +@article{quartier_influence_2021, + title = {Influence of the {Drag} {Force} on the {Average} {Absorbed} {Power} of {Heaving} {Wave} {Energy} {Converters} {Using} {Smoothed} {Particle} {Hydrodynamics}}, + volume = {13}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2073-4441}, + url = {https://www.mdpi.com/2073-4441/13/3/384}, + doi = {10.3390/w13030384}, + abstract = {In this paper, we investigated how the added mass, the hydrodynamic damping and the drag coefficient of a Wave Energy Converter (WEC) can be calculated using DualSPHysics. DualSPHysics is a software application that applies the Smoothed Particle Hydrodynamics (SPH) method, a Lagrangian meshless method used in a growing range of applications within the field of Computational Fluid Dynamics (CFD). Furthermore, the effect of the drag force on the WEC’s motion and average absorbed power is analyzed. Particularly under controlled conditions and in the resonance region, the drag force becomes significant and can greatly reduce the average absorbed power of a heaving point absorber. Once the drag coefficient has been determined, it is used in a modified equation of motion in the frequency domain, taking into account the effect of the drag force. Three different methods were compared for the calculation of the average absorbed power: linear potential flow theory, linear potential flow theory modified to take the drag force into account and DualSPHysics. This comparison showed the considerable effect of the drag force in the resonance region. Calculations of the drag coefficient were carried out for three point absorber WECs: one spherical WEC and two cylindrical WECs. Simulations in regular waves were performed for one cylindrical WEC with two different power take-off (PTO) systems: a linear damping and a Coulomb damping PTO system. The Coulomb damping PTO system was added in the numerical coupling between DualSPHysics and Project Chrono. Furthermore, we considered the optimal PTO system damping coefficient taking the effect of the drag force into account.}, + language = {en}, + number = {3}, + urldate = {2024-06-25}, + journal = {Water}, + author = {Quartier, Nicolas and Ropero-Giralda, Pablo and M. Domínguez, José and Stratigaki, Vasiliki and Troch, Peter}, + month = jan, + year = {2021}, + keywords = {DualSPHysics, SPH, WEC, drag force, multiphysics, numerical coupling, power take-off (PTO) system}, + pages = {384}, +} + +@article{coe_useful_2023, + title = {Useful {Power} {Maximization} for {Wave} {Energy} {Converters}}, + volume = {16}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/16/1/529}, + doi = {10.3390/en16010529}, + abstract = {Wave energy converters (WECs) have enormous potential in providing clean renewable energy with high levels of predictability [...]}, + language = {en}, + number = {1}, + urldate = {2024-02-11}, + journal = {Energies}, + author = {Coe, Ryan G. and Bacelli, Giorgio}, + month = jan, + year = {2023}, + keywords = {n/a}, + pages = {529}, +} + +@article{merigaud_geometrical_2023, + title = {Geometrical {Framework} for {Hydrodynamics} and {Control} of {Wave} {Energy} {Converters}}, + volume = {2}, + url = {https://link.aps.org/doi/10.1103/PRXEnergy.2.023003}, + doi = {10.1103/PRXEnergy.2.023003}, + abstract = {This article presents a simple geometrical approach to visualize the hydrodynamic properties of wave energy converters (WECs), in terms of wave reflection, transmission, and absorption, and how those properties are governed by the WEC control parameters. The problem is modeled as an array of periodic rows of WECs parallel to the wave front, which is representative of WEC farms located along the shoreline, and allows for a straightforward two-dimensional analysis of energy fluxes. The WECs are assumed to be symmetric with respect to the plane perpendicular to the wave propagation direction, and they operate in a single degree of freedom. Under those assumptions, fundamental hydrodynamic relationships allow the WEC operation at a given frequency to be mapped to a single complex number, {\textasciicircum}T, which represents the WEC (complex) transmission coefficient, located in a circle with center 1/2 and radius 1/2. The WEC hydrodynamic and control parameters (added mass, stiffness, damping) govern the precise location of {\textasciicircum}T within the circle. The distance of {\textasciicircum}T to the center of the circle determines the hydrodynamic efficiency, between 0 (when {\textasciicircum}T is on the circle border) and 1/2 (which is achieved when {\textasciicircum}T is at the center of the circle). Therefore, the representation of {\textasciicircum}T provides an immediate insight into the balance between reflection, transmission, and absorption. The proposed unified representation reflects, in a didactic way, some fundamental wave energy concepts, common to all WECs, such as the Haskind relationship, or the impedance matching condition for optimal wave power absorption. Two numerical examples illustrate how the locus of {\textasciicircum}T, across a prescribed frequency range, provides a distinctive “signature” specific to the WEC geometry, mode of operation, and control strategy. Finally, the proposed representation shows many similarities to the Smith chart and, as such, is but one additional analogy between wave energy conversion and electrical engineering.}, + number = {2}, + urldate = {2024-02-07}, + journal = {PRX Energy}, + author = {Mérigaud, Alexis and Thiria, Benjamin and Godoy-Diana, Ramiro}, + month = may, + year = {2023}, + pages = {023003}, +} + +@article{tedeschi_effect_2011, + title = {Effect of {Control} {Strategies} and {Power} {Take}-{Off} {Efficiency} on the {Power} {Capture} {From} {Sea} {Waves}}, + volume = {26}, + issn = {1558-0059}, + url = {https://ieeexplore.ieee.org/abstract/document/6026916}, + doi = {10.1109/TEC.2011.2164798}, + abstract = {The choice of the most suitable control strategy for wave energy converters (WECs) is often evaluated with reference to the sinusoidal assumption for incident waves. Under this hypothesis, linear techniques for the control of the extracted power, as passive loading and optimum control, are well known and widely analyzed. It can be shown, however, how their performances are fundamentally different when irregular waves are considered and the theoretical superiority of optimum control is questionable under real wave conditions. Moreover, the global optimization of WECs implies a rational design of the power electronics equipment. This requires the analysis of the instantaneous extracted power in addition to the average one. In this paper, the impact of irregular waves on the power extraction when using different control techniques is analyzed in the case of a point absorber in heave. It is also shown how a convenient tradeoff between high average power extraction and limited power electronics overrating can be obtained by applying simple power saturation techniques. Moreover, the impact of power conversion efficiency on the control strategy is analyzed.}, + number = {4}, + urldate = {2024-01-29}, + journal = {IEEE Transactions on Energy Conversion}, + author = {Tedeschi, Elisabetta and Carraro, Matteo and Molinas, Marta and Mattavelli, Paolo}, + month = dec, + year = {2011}, + keywords = {Analytical models, Control strategies, Hydrodynamics, Load modeling, Mathematical model, Power electronics, Time domain analysis, Wave energy, irregular waves, power take-off (PTO), wave energy}, + pages = {1088--1098}, +} + +@article{strofer_control_2023, + title = {Control {Co}-{Design} of {Power} {Take}-{Off} {Systems} for {Wave} {Energy} {Converters} {Using} {WecOptTool}}, + volume = {14}, + issn = {1949-3037}, + url = {https://ieeexplore.ieee.org/document/10114969}, + doi = {10.1109/TSTE.2023.3272868}, + abstract = {Improved power take-off (PTO) controller design for wave energy converters is considered a critical component for reducing the cost of energy production. However, the device and control design process often remains sequential, with the space of possible final designs largely reduced before the controller has been considered. Control co-design, whereby the device and control design are considered concurrently, has resulted in improved designs in many industries, but remains rare in the wave energy community. In this paper we demonstrate the use of a new open-source code, WecOptTool, for control co-design of wave energy converters, with the aim to make the co-design approach more accessible and accelerate its adoption. Additionally, we highlight the importance of designing a wave energy converter to maximize electrical power, rather than mechanical power, and demonstrate the co-design process while modeling the PTO's components (i.e., drive-train and generator, and their dynamics). We also consider the design and optimization of causal fixed-structure controllers. The demonstration presented here considers the PTO design problem and finds the optimal PTO drive-train that maximizes annual electrical power production. The results show a 22\% improvement in the optimal controller and drive-train co-design over the optimal controller for the nominal, as built, device design.}, + number = {4}, + urldate = {2024-01-29}, + journal = {IEEE Transactions on Sustainable Energy}, + author = {Ströfer, Carlos A. Michelén and Gaebele, Daniel T. and Coe, Ryan G. and Bacelli, Giorgio}, + month = oct, + year = {2023}, + keywords = {Control design, Mathematical models, Optimal control, Optimization, Software tools, Wave energy conversion, Wave energy converter (WEC), co-design, optimal control, optimization, power take-off (PTO)}, + pages = {2157--2167}, +} + +@article{otoshi_maximum_1994, + title = {Maximum and minimum return losses from a passive two-port network terminated with a mismatched load}, + volume = {42}, + issn = {1557-9670}, + url = {https://ieeexplore-ieee-org.proxy.library.cornell.edu/document/293526}, + doi = {10.1109/22.293526}, + abstract = {An analytical expression is derived for determining load-reflection coefficient phase-angle values that will lead to maximum and minimum return losses from a terminated two-port network. The expression is derived in terms of two-port network S-parameters and a load whose reflection-coefficient magnitude is a constant but can be any value greater than zero and less than or equal to unity. The equation is useful for cases where it is desirable to know how to position a load (1) to obtain maximum return loss for network-matching purposes or (2) to obtain minimum return loss for some types of reflector antenna applications. Two examples are given: One shows that for some types of reflector antennas with a mesh-type surface that is backed by another reflecting surface, a resonance phenomenon can occur and cause unexpectedly large dissipative losses ({\textgreater}30 dB) to occur. The other example shows that when a particular type of reflector antenna with a dielectric layer becomes wet from rain or condensation, large ({\textgreater}10 dB) signal losses can occur. For both examples, equations presented in this article were used to calculate the exact load-reflection coefficient phase values that led to worst-case return loss values. In practical situations, once the phenomenon is understood and predictable, steps can be taken to avoid these resonance regions.{\textless}{\textgreater}}, + number = {5}, + urldate = {2024-06-21}, + journal = {IEEE Transactions on Microwave Theory and Techniques}, + author = {Otoshi, T.Y.}, + month = may, + year = {1994}, + keywords = {Dielectric losses, Equations, Impedance, Loaded antennas, Measurement techniques, Rain, Reflection, Reflector antennas, Resonance, Scattering parameters}, + pages = {787--792}, +} + +@article{zou_practical_2023-1, + title = {Practical power absorption assessment limits for generic wave energy converters}, + volume = {277}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S002980182300687X}, + doi = {10.1016/j.oceaneng.2023.114303}, + abstract = {There lacks a generic representation of the wave power absorption of devices across dimensions, shapes, and resource conditions. A conventional resource assessment approach only evaluates the wave power based on wave characteristics, which is insufficient to capture the practical power absorption variations between WEC archetypes. In this paper, a novel WEC net power assessment (WNPA) method is proposed and is generally applicable to any arbitrary WECs design. Two theoretical upper bounds of wave power absorption are adopted and derived for different types of WECs. Numerical simulations are conducted to apply this novel technique to assess the net power available to different WECs at the Wave Energy Test Site (WETS), Hawaii and the PacWave site, Oregon over 11 years. By comparing the power potential for WECs oscillating in different degrees of freedom, the results indicate the surging mode may be the most energetic; regardless of shapes and ocean sites. When applied to three generic WECs (point absorber, terminator, and attenuator), the pitching terminator is shown to have lower absorption potential. Finally, the mean annual energy production (MAEP) of the three generic WECs at WETS and PacWave are compared, and a surging attenuator shows a significant wave power potential at PacWave.}, + urldate = {2024-07-06}, + journal = {Ocean Engineering}, + author = {Zou, Shangyan and Robertson, Bryson and Yim, Solomon}, + month = jun, + year = {2023}, + keywords = {Budal’s limit, Maximum wave power absorption, Net power assessment, Wave energy conversion, Wave resources assessment}, + pages = {114303}, +} + +@article{abdulkadir_optimal_2024, + title = {Optimal {Constrained} {Control} of {Arrays} of {Wave} {Energy} {Converters}}, + volume = {12}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2077-1312}, + url = {https://www.mdpi.com/2077-1312/12/1/104}, + doi = {10.3390/jmse12010104}, + abstract = {Wave Energy Converters (WECs) are designed to be deployed in arrays, usually in a limited space, to minimize the cost of installation, mooring, and maintenance. Control methods that attempt to maximize the harvested power often lead to power flow from the WEC to the ocean, at times, to maximize the overall harvested power from the ocean over a longer period. The Power Take-Off (PTO) units that can provide power to the ocean (reactive power) are usually more expensive and complex. In this work, an optimal control formulation is presented using Pontryagin’s minimum principle that aims to maximize the harvested energy subject to constraints on the maximum PTO force and power flow direction. An analytical formulation is presented for the optimal control of an array of WECs, assuming irregular wave input. Three variations of the developed control are tested: a formulation without power constraints, a formulation that only allows for positive power, and finally, a formulation that allows for finite reactive power. The control is compared with optimally tuned damping and bang–bang control.}, + language = {en}, + number = {1}, + urldate = {2024-06-27}, + journal = {Journal of Marine Science and Engineering}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Abdulkadir, Habeebullah and Abdelkhalik, Ossama}, + month = jan, + year = {2024}, + note = {Number: 1}, + keywords = {Pontryagin’s minimum principle, constrained control, optimal control, reactive power, wave energy converter}, + pages = {104}, +} + +@article{zhou_assessment_2022, + title = {Assessment of {Electrical} {Power} {Generation} of {Wave} {Energy} {Converters} {With} {Wave}-to-{Wire} {Modeling}}, + volume = {13}, + issn = {1949-3037}, + url = {https://ieeexplore.ieee.org/abstract/document/9760017}, + doi = {10.1109/TSTE.2022.3168040}, + abstract = {Direct-drive wave energy converter (WEC) and buoy control algorithms have shown great potential for renewable wave energy extraction in ideal conditions. However the actual power take-off (PTO) impacts are barely considered in the WEC design. This paper highlights the demands of designing the WEC wave-to-wire control from a global point of view by studying the actual PTO impacts. A permanent magnet linear electrical machine (LEM) PTO unit is simulated and controlled to fulfill the WEC buoy control requirements. Several state of the art control algorithms, which include singular-arc (SA) control, shape-based (SB) control, model predictive control (MPC), and proportional-derivative (PD) control, are applied to maximize the wave energy production (mechanical energy). Multiple types of electrical PTOs, including ideal PTO, unlimited PTO and limited PTO, are all implemented to evaluate WEC wave-to-wire performances. Further, the PTO copper loss model and the PTO actual efficiency maps are introduced and studied to improve the electrical PTO operation efficiency. To further assess the control schemes in various wave conditions, one-year PacWave ground-truth data is applied as well. Numerical simulations are conducted using MATLAB/Simulink and the Simscape toolbox. The electrical PTO unit is composed of a LEM, an ideal inverter, and an ideal energy storage system. The results show that the actual PTO will impact the constrained controls (MPC and SB) less comapring to unconstrained controls (SA and PD). Although SB can produce the maximum energy with the limited PTOs, it is not robust for all wave conditions. At the end of the paper, the possible solutions for improving the WEC wave-to-wire performances are also provided.}, + number = {3}, + urldate = {2024-06-27}, + journal = {IEEE Transactions on Sustainable Energy}, + author = {Zhou, Xiang and Zou, Shangyan and Weaver, Wayne W. and Abdelkhalik, Ossama}, + month = jul, + year = {2022}, + note = {Conference Name: IEEE Transactions on Sustainable Energy}, + keywords = {Computational modeling, Copper, Force, Integrated circuit modeling, Mathematical models, Model predictive control, PD, PD control, Performance evaluation, WEC, power take-off, shape-based control, singular arc, wave energy}, + pages = {1654--1665}, +} + +@article{abdulkadir_power_2022, + series = {14th {IFAC} {Conference} on {Control} {Applications} in {Marine} {Systems}, {Robotics}, and {Vehicles} {CAMS} 2022}, + title = {Power {Constrained} {Optimal} {Control} of {Wave} {Energy} {Converters}}, + volume = {55}, + issn = {2405-8963}, + url = {https://www.sciencedirect.com/science/article/pii/S2405896322025101}, + doi = {10.1016/j.ifacol.2022.10.464}, + abstract = {The general goal of control methods developed for Wave Energy Converter (WEC) technologies is to improve the amount of energy captured by the WEC from the wave. However, most WEC control methods require some power to be supplied from the grid (reactive power) to drive the floater towards resonance at intervals to improve the device's overall performance. Such controls’ reactive power and motion requirements sometimes become large and unrealistic. Additionally, a power take-off (PTO) unit capable of fulfilling a sizeable reactive power requirement will be expensive and complex, if not impossible. In this work, an optimal control formulation that aims to maximize the harvested energy while constraining the reactive power not to exceed a realistic threshold is derived using Pontryagin Minimum Principle. The optimal control formulation is derived for a single WEC device with irregular excitation. Low fidelity numerical simulations are presented comparing the proposed power-constrained Bang Singular Bang (PCBSB) control to an Optimal Resistive Loading (ORL) control.}, + number = {31}, + urldate = {2024-06-27}, + journal = {IFAC-PapersOnLine}, + author = {Abdulkadir, Habeebullah and Abdelkhalik, Ossama}, + month = jan, + year = {2022}, + keywords = {Optimal control, Pontryagin Minimum principle, Reactive power, Wave energy converter, power constraint}, + pages = {421--426}, +} + +@article{wilson_extending_2020, + title = {Extending {Complex} {Conjugate} {Control} to {Nonlinear} {Wave} {Energy} {Converters}}, + volume = {8}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2077-1312}, + url = {https://www.mdpi.com/2077-1312/8/2/84}, + doi = {10.3390/jmse8020084}, + abstract = {This paper extends the concept of Complex Conjugate Control (CCC) of linear wave energy converters (WECs) to nonlinear WECs by designing optimal limit cycles with Hamiltonian Surface Shaping and Power Flow Control (HSSPFC). It will be shown that CCC for a regular wave is equivalent to a power factor of one in electrical power networks, equivalent to mechanical resonance in a mass-spring-damper (MSD) system, and equivalent to a linear limit cycle constrained to a Hamiltonian surface defined in HSSPFC. Specifically, the optimal linear limit cycle is defined as a second-order center in the phase plane projection of the constant energy orbit across the Hamiltonian surface. This concept of CCC described by a linear limit cycle constrained to a Hamiltonian surface will be extended to nonlinear limit cycles constrained to a Hamiltonian surface for maximum energy harvesting by the nonlinear WEC. The case studies presented confirm increased energy harvesting which utilizes nonlinear geometry realization for reactive power generation.}, + language = {en}, + number = {2}, + urldate = {2024-06-27}, + journal = {Journal of Marine Science and Engineering}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Wilson, David G. and Robinett, Rush D. and Bacelli, Giorgio and Abdelkhalik, Ossama and Coe, Ryan G.}, + month = feb, + year = {2020}, + note = {Number: 2}, + keywords = {complex conjugate control, nonlinear control, wave energy converter}, + pages = {84}, +} + +@article{abdelkhalik_optimization_2018, + title = {Optimization of nonlinear wave energy converters}, + volume = {162}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801818307881}, + doi = {10.1016/j.oceaneng.2018.05.023}, + abstract = {This paper presents an optimization approach for the nonlinear control of wave energy converters (WECs). The proposed optimization method also presents the option of optimizing the system nonlinearities, such as those due to the buoy shape, such that the harvested energy is maximized. For the sake of control design, the control force and the system optimizable nonlinear force, each is expressed as a truncated power series function of the system states. The power series coefficients in both the control and system forces are optimized. A hidden genes genetic algorithm is used for optimization. The optimized system's nonlinear force is assumed to drive the design of the WEC. The numerical test cases presented in this paper show that it is possible to attain multiple fold higher harvested energy when using nonlinear control optimization. The advantage of being able to optimize the WEC design simultaneously with the control is the potential of harvesting this multiple fold higher energy without causing large WEC motion and with less dependence on reactive power. While this paper focuses on the optimization part of the problem, the implementation of the obtained control in realtime is discussed at the end of the paper.}, + urldate = {2024-06-27}, + journal = {Ocean Engineering}, + author = {Abdelkhalik, Ossama and Darani, Shadi}, + month = aug, + year = {2018}, + keywords = {Nonlinear control optimization, Nonlinear wave energy conversion, WEC, Wave energy conversion}, + pages = {187--195}, +} + +@incollection{alessio_survey_2009, + address = {Berlin, Heidelberg}, + title = {A {Survey} on {Explicit} {Model} {Predictive} {Control}}, + isbn = {978-3-642-01094-1}, + url = {https://doi.org/10.1007/978-3-642-01094-1_29}, + doi = {10.1007/978-3-642-01094-1_29}, + abstract = {Explicit model predictive control (MPC) addresses the problem of removing one of the main drawbacks of MPC, namely the need to solve a mathematical program on line to compute the control action. This computation prevents the application of MPC in several contexts, either because the computer technology needed to solve the optimization problem within the sampling time is too expensive or simply infeasible, or because the computer code implementing the numerical solver causes software certification concerns,especially in safety critical applications.}, + language = {en}, + urldate = {2024-06-26}, + booktitle = {Nonlinear {Model} {Predictive} {Control}: {Towards} {New} {Challenging} {Applications}}, + publisher = {Springer}, + author = {Alessio, Alessandro and Bemporad, Alberto}, + editor = {Magni, Lalo and Raimondo, Davide Martino and Allgöwer, Frank}, + year = {2009}, + keywords = {Model predictive control, explicit solutions, hybrid systems, min-max control, multiparametric programming, piecewise affine controllers}, + pages = {345--369}, +} + +@inproceedings{soroush_plants_2007, + title = {Plants for {Which} {Model} {Predictive} {Control} {Admits} an {Analytical} {Solution}}, + issn = {2378-5861}, + url = {https://ieeexplore.ieee.org/document/4282843}, + doi = {10.1109/ACC.2007.4282843}, + abstract = {Model predictive control (MPC) provides an optimal control sequence that is the solution to a moving horizon, constrained optimization problem. This problem is usually solved numerically on-line. A question that often process control engineers face is for what class of plants, MPC admits an analytical solution, in which case the optimal control sequence takes significantly less time to calculate. This paper presents an answer to this question. A class of nonlinear and linear plants for which MPC admits an analytical solution, is characterized. It is shown that for plants without directionality, constrained MPC can be identical to unconstrained MPC with saturation. Structural information on the characteristic (decoupling) matrix of a plant is often adequate for the characterization. Two input-constrained plant examples are considered. On the basis of structural information on the characteristic (decoupling) matrices of the two plants, the plan(s) for which constrained MPC admits an analytical solution is (are) specified. Simulated closed-loop responses are then presented to validate the characterization numerically.}, + urldate = {2024-06-26}, + booktitle = {2007 {American} {Control} {Conference}}, + author = {Soroush, Masoud}, + month = jul, + year = {2007}, + keywords = {Biological system modeling, Constraint optimization, Control systems, Linear feedback control systems, Optimal control, PD control, Predictive control, Predictive models, Proportional control, Windup}, + pages = {3745--3750}, +} + +@inproceedings{soroush_analytical_2000, + address = {Basel}, + title = {Analytical {Model} {Predictive} {Control}}, + isbn = {978-3-0348-8407-5}, + doi = {10.1007/978-3-0348-8407-5_9}, + abstract = {This presentation deals with the model predictive controllers that admit an analytical solution. In particular, short horizon and long(infinite) horizon controllers are considered. A general model predictive control(MPC) law is formulated, and it is then shown that in special cases the MPC law leads to the following:input-output linearizing control laws that inherently include optimal windup and directionality compensatorsmodel state feedback control and modified internal model control laws that inherently include an optimal directionality compensatorproportional—integral(PI)and proportional—integral—derivative(PID)controllers that inherently include optimal windup and directionality compensators}, + language = {en}, + booktitle = {Nonlinear {Model} {Predictive} {Control}}, + publisher = {Birkhäuser}, + author = {Soroush, Masoud and Muske, Kenneth R.}, + editor = {Allgöwer, Frank and Zheng, Alex}, + year = {2000}, + keywords = {Internal Model, Internal Model Control, Linear Quadratic Regulator, Model Predictive Control, Prediction Horizon}, + pages = {163--179}, +} + +@inproceedings{seron_global_2000, + title = {Global analytical model predictive control with input constraints}, + volume = {1}, + issn = {0191-2216}, + url = {https://ieeexplore.ieee.org/document/912749}, + doi = {10.1109/CDC.2000.912749}, + abstract = {We derive a closed-form global analytical solution for model predictive control (MPC) of linear, discrete-time systems, subject to a quadratic performance index and hard magnitude constraints at the system input. The solution is shown to be a partition of the state space in regions for which an analytic expression is given for the corresponding control law. Both the regions and the control law are characterised in terms of the parameters of the open-loop optimal control problem that underlies MPC. The result exploits the geometric properties of quadratic programming.}, + urldate = {2024-06-26}, + booktitle = {Proceedings of the 39th {IEEE} {Conference} on {Decision} and {Control} ({Cat}. {No}.{00CH37187})}, + author = {Seron, M.M. and De Dona, J.A. and Goodwin, G.C.}, + month = dec, + year = {2000}, + keywords = {Analytical models, Closed-form solution, Constraint optimization, Open loop systems, Optimal control, Performance analysis, Predictive control, Predictive models, Sampling methods, State-space methods}, + pages = {154--159 vol.1}, +} + +@inproceedings{seron_global_2000-1, + title = {Global {Analytical} {Model} {Predictive} {Control} with {Input} {Constraints}}, + volume = {1}, + isbn = {978-0-7803-6638-1}, + doi = {10.1109/CDC.2000.912749}, + abstract = {We derive a closed-form global analytical solution for model predictive control (MPC) of linear, discrete-time systems, subject to a quadratic performance index and hard magnitude constraints at the system input. The solution is shown to be a partition of the state space in regions for which an analytic expression is given for the corresponding control law. Both the regions and the control law are characterised in terms of the parameters of the open-loop optimal control problem that underlies MPC. The result exploits the geometric properties of quadratic programming}, + author = {Seron, M.M. and Dona, José and Goodwin, Graham}, + month = feb, + year = {2000}, + pages = {154--159 vol.1}, +} + +@article{ringwood_empowering_2023, + title = {Empowering wave energy with control technology: {Possibilities} and pitfalls}, + volume = {55}, + issn = {1367-5788}, + shorttitle = {Empowering wave energy with control technology}, + url = {https://www.sciencedirect.com/science/article/pii/S1367578823000226}, + doi = {10.1016/j.arcontrol.2023.04.004}, + abstract = {With an increasing focus on climate action and energy security, an appropriate mix of renewable energy technologies is imperative. Despite having considerable global potential, wave energy has still not reached a state of maturity or economic competitiveness to have made an impact. Challenges include the high capital and operational costs associated with deployment in the harsh ocean environment, so it is imperative that the full energy harnessing capacity of wave energy devices, and arrays of devices in farms, is realised. To this end, control technology has an important role to play in maximising power capture, while ensuring that physical system constraints are respected, and control actions do not adversely affect device lifetime. Within the gamut of control technology, a variety of tools can be brought to bear on the wave energy control problem, including various control strategies (optimal, robust, nonlinear, etc.), data-based model identification, estimation, and forecasting. However, the wave energy problem displays a number of unique features which challenge the traditional application of these techniques, while also presenting a number of control ‘paradoxes’. This review articulates the important control-related characteristics of the wave energy control problem, provides a survey of currently applied control and control-related techniques, and gives some perspectives on the outstanding challenges and future possibilities. The emerging area of control co-design, which is especially relevant to the relatively immature area of wave energy system design, is also covered.}, + urldate = {2024-06-23}, + journal = {Annual Reviews in Control}, + author = {Ringwood, John V. and Zhan, Siyuan and Faedo, Nicolás}, + month = jan, + year = {2023}, + keywords = {Control system design, Estimation, Forecasting, Wave energy control, Wave energy conversion}, + pages = {18--44}, +} + +@misc{noauthor_history_2019, + title = {History of {Broadband} {Impedance} {Matching}}, + url = {https://ethw.org/History_of_Broadband_Impedance_Matching}, + language = {en}, + urldate = {2024-06-21}, + journal = {ETHW}, + month = jan, + year = {2019}, +} + +@misc{noauthor_72_2020, + title = {7.2: {Fano}-{Bode} {Limits}}, + shorttitle = {7.2}, + url = {https://eng.libretexts.org/Bookshelves/Electrical_Engineering/Electronics/Microwave_and_RF_Design_III_-_Networks_(Steer)/07%3A_Chapter_7/7.2%3A_Fano-Bode_Limits}, + language = {en}, + urldate = {2024-06-21}, + journal = {Engineering LibreTexts}, + month = oct, + year = {2020}, +} + +@book{wing_classical_2009, + address = {Boston, MA}, + title = {Classical {Circuit} {Theory}}, + copyright = {https://www.springernature.com/gp/researchers/text-and-data-mining}, + isbn = {978-0-387-09739-8 978-0-387-09740-4}, + url = {https://link.springer.com/10.1007/978-0-387-09740-4}, + doi = {10.1007/978-0-387-09740-4}, + language = {en}, + urldate = {2024-06-21}, + publisher = {Springer US}, + author = {Wing, Omar}, + year = {2009}, + keywords = {Bounded-Real Functions, Broadband Matching, Circuit Analysis, Circuit Design by Optimization, Circuit Synthesis, Circuit Theory, Constant Phase-Difference Circuits, Delay, Delay Equalizers, Filter Design, Group Delay, Pass-Band Sensitivity, Phase and Gain}, +} + +@article{liang_dynamics_2017, + title = {On the dynamics and design of a two-body wave energy converter}, + volume = {101}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148116307698}, + doi = {10.1016/j.renene.2016.08.059}, + abstract = {A two-body wave energy converter oscillating in heave is studied in this paper. The energy is extracted through the relative motion between the floating and submerged bodies. A linearized model in the frequency domain is adopted to study the dynamics of such a two-body system with consideration of both the linear viscous damping and the hydrodynamic damping. The closed form solution of the maximum absorption power and corresponding power takeoff parameters are obtained. The suboptimal and optimal designs for a two-body system are proposed based on the closed form solution. The physical insight of the optimal design is to have one of the damped natural frequencies of the two body system the same as, or as close as possible to, the excitation frequency. A case study is conducted to investigate the influence of the submerged body on the absorption power of a two-body system subjected to suboptimal and optimal design under regular and irregular wave excitations. It is found that the absorption power of the two-body system can be significantly higher than that of the single body system with the same floating buoy in both regular and irregular waves. In regular waves, it is found that the mass of the submerged body should be designed with an optimal value in order to achieve the maximum absorption power for a given floating buoy in the presence of viscous damping. The viscous damping on the submerged body should be as small as possible for a given mass in both regular and irregular waves.}, + urldate = {2024-06-20}, + journal = {Renewable Energy}, + author = {Liang, Changwei and Zuo, Lei}, + month = feb, + year = {2017}, + keywords = {Dynamics, Optimal design, Suboptimal design, Two-body system, Wave energy converter}, + pages = {265--274}, +} + +@article{merigaud_nonlinear_2018, + title = {A {Nonlinear} {Frequency}-{Domain} {Approach} for {Numerical} {Simulation} of {Wave} {Energy} {Converters}}, + volume = {9}, + issn = {1949-3037}, + url = {https://ieeexplore.ieee.org/document/7950997}, + doi = {10.1109/TSTE.2017.2716826}, + abstract = {Nonlinear, analytical wave-energy converter (WEC) models are generally simulated through time-domain (TD) numerical integration. However, the relatively high computational requirements of TD integration are not compatible with applications where a large number of simulations are needed. Spectral domain (SD) linearization has also been proposed to take into account some nonlinear effects, while being much faster than TD integration. However, as explained in this paper, such SD models have limited accuracy, and cannot extend to the static nonlinear forces. In this paper, a nonlinear frequency-domain (NLFD) method is investigated for WEC simulation, using a projection of the dynamical equations onto a basis of trigonometric functions. A comparison with TD integration (second-order Runge-Kutta-RK2) and SD methods is provided, through theoretical considerations, and by means of numerical simulations based on two case studies. In the cases considered, the proposed NLFD method allows for significant computational savings compared to RK2 integration, without requiring any approximation for the radiation forces. NLFD thus shows promising potential for applications involving extensive WEC simulation, such as power production assessment, while preserving the WEC model accuracy. Although slower than SD, NLFD has significant benefits in terms of accuracy and range of applicability.}, + number = {1}, + urldate = {2024-06-17}, + journal = {IEEE Transactions on Sustainable Energy}, + author = {Mérigaud, Alexis and Ringwood, John V.}, + month = jan, + year = {2018}, + note = {Conference Name: IEEE Transactions on Sustainable Energy}, + keywords = {Computational modeling, Dynamics, Force, Frequency domain, Frequency-domain analysis, Mathematical model, Numerical models, Time-domain analysis, galerkin method, non-linearities, numerical simulation, spectral domain, time domain, wave energy converters}, + pages = {86--94}, +} + +@inproceedings{read_time-_2018, + title = {Time- and {Frequency}-domain {Comparisons} of the {Wavepiston} {Wave} {Energy} {Converter}: 33rd {International} {Workshop} on {Water} {Waves} and {Floating} {Bodies} ({IWWWFB} 2018)}, + shorttitle = {Time- and {Frequency}-domain {Comparisons} of the {Wavepiston} {Wave} {Energy} {Converter}}, + abstract = {Analysis of wave-energy converters is most frequently undertaken in the time-domain. This formulation allows the direct inclusion of nonlinear time-varying loads such as power take-off (PTO) reactions, mooring forces, and viscous drag. However, integrating the governing equations of motion in the time domain is relatively computationally expensive, and requires a simulation to be conducted for each incident-wave state. In contrast, calculating the linearised performance of a wave energy converter (WEC) in sinusoidal waves of a given frequency is relatively inexpensive, albeit with the lower accuracy associated with the assumption of linearity. Combining this frequency-domain information with aspectral characterisation of the sea state therefore offers an opportunity to predict the power-capture performance of a WEC with less computational expense than a direct time-domain approach. In this regard, methods such as spectral domain linearisation (Folley, 2016) and nonlinear frequency domain analysis using a basis of trigonometric functions (Mérigaud and Ringwood, 2018) have been proposed to provide a compromise between speed and accuracy in assessments of WEC performance.This paper will compare time- and frequency-domain analyses of the Wavepiston surging-plate WEC. This device consists of a surging plate close to the free surface that drives a staged telescopic hydraulic PTO. Modelling this system in the frequency domain presents challenges associated withthe signiffcant nonlinear forces arising from both the PTO reactions and the non-negligible viscous drag acting on the plate. Equivalent linear damping coeffcients are used to model these forces in the frequency domain, while they are included explicitly in the time domain. The main idea of this paper is to quantify, for this device, the errors associated with linearising these two nonlinear processes. Ouraim here is to assess the trade-offs between speed and accuracy when using a fully-linear frequency-domain approach compared to a partially-nonlinear time-domain method}, + author = {Read, Robert and Bingham, Harry}, + year = {2018}, +} + +@inproceedings{noauthor_time-_nodate, + title = {Time- and {Frequency}-domain {Comparisons} of the {Wavepiston} {Wave} {Energy} {Converter}}, +} + +@article{pastor_frequency_2014, + title = {Frequency and time domain modeling and power output for a heaving point absorber wave energy converter}, + volume = {5}, + issn = {2251-6832}, + url = {https://doi.org/10.1007/s40095-014-0101-9}, + doi = {10.1007/s40095-014-0101-9}, + abstract = {This paper presents, assesses, and optimizes a point absorber wave energy converter (WEC) through numerical modeling, simulation, and analysis in both frequency and time domain. Wave energy conversion is a technology especially suited for assisting in power generation in the offshore oil and gas platforms. A linear frequency domain model is created to predict the behavior of the heaving point absorber WEC system. The hydrodynamic parameters are obtained with AQWA, a software package based on boundary element methods. A linear external damping coefficient is applied to enable power absorption, and an external spring force is introduced to tune the point absorber to the incoming wave conditions. The external damping coefficient and external spring forces are the control parameters, which need to be optimized to maximize the power absorption. Two buoy shapes are tested and a variety of diameters and drafts are compared. Optimal shape, draft, and diameter of the model are then determined to maximize its power absorption capacity. Based on the results generated from the frequency domain analysis, a time domain analysis was also conducted to derive the responses of the WEC in the hydrodynamic time response domain. The time domain analysis results allowed us to estimate the power output of this WEC system.}, + language = {en}, + number = {2}, + urldate = {2024-06-17}, + journal = {International Journal of Energy and Environmental Engineering}, + author = {Pastor, Jeremiah and Liu, Yucheng}, + month = apr, + year = {2014}, + keywords = {Energy conversion, Frequency and time domain, Numerical modeling and simulation, Wave energy technology}, + pages = {101}, +} + +@article{yu_reynolds-averaged_2013, + title = {Reynolds-{Averaged} {Navier}–{Stokes} simulation of the heave performance of a two-body floating-point absorber wave energy system}, + volume = {73}, + issn = {0045-7930}, + url = {https://www.sciencedirect.com/science/article/pii/S0045793012003878}, + doi = {10.1016/j.compfluid.2012.10.007}, + abstract = {This paper presents a recent numerical study conducted by researchers at the National Renewable Energy Laboratory on a point absorber wave energy conversion (WEC) system using a Reynolds-averaged Navier–Stokes (RANS)-based Computational Fluid Dynamics (CFD) method. The device we studied was a two-body floating-point absorber (FPA) that operates predominantly in heave and generates energy from the relative motion between the two bodies. We performed a series of numerical simulation to analyze the hydrodynamic response and the power absorption performance of the system in regular waves. Overall, it was successful to use the RANS method to model the complex hydrodynamics interaction of the FPA system. We demonstrated the significance of the nonlinear effects, including viscous damping and wave overtopping. The study showed that the nonlinear effects could significantly decrease the power output and the motion of the FPA system, particularly in larger waves.}, + urldate = {2024-06-14}, + journal = {Computers \& Fluids}, + author = {Yu, Yi-Hsiang and Li, Ye}, + month = mar, + year = {2013}, + keywords = {Computational Fluid Dynamics, Heave, Point absorber, Power take-off, Reynolds-averaged Navier–Stokes equations, Wave energy conversion}, + pages = {104--114}, +} + +@inproceedings{faedo_optimisation-_2020, + title = {Optimisation- vs. non-optimisation-based energy-maximising control for wave energy converters: {A} case study}, + shorttitle = {Optimisation- vs. non-optimisation-based energy-maximising control for wave energy converters}, + url = {https://ieeexplore-ieee-org.proxy.library.cornell.edu/document/9143751}, + doi = {10.23919/ECC51009.2020.9143751}, + abstract = {Energy-maximising control of wave energy converters can be separated into two different classes: optimisation and non-optimisation based strategies. While optimisation-based controllers can outperform non-optimisation based strategies, the computational requirements associated with numerical optimisation routines, and the high control forces required under optimal conditions, can render these energy-maximising control laws unsuitable for realistic scenarios. Non-optimisation-based controllers present an alternative solution, where linear time-invariant systems are used to approximate the so-called impedance-matching condition. These strategies are often simple to implement but suffer from performance degradation when motion constraints are considered. This paper aims to present a critical comparison between both families of controllers, highlighting the strengths and weaknesses of each approach. We present simulation results for a state-of-the-art CorPower-like device under polychromatic (irregular) wave excitation, for both (motion) unconstrained and constrained scenarios.}, + urldate = {2024-06-14}, + booktitle = {2020 {European} {Control} {Conference} ({ECC})}, + author = {Faedo, Nicolás and García-Violini, Demián and Peña-Sanchez, Yerai and Ringwood, John V.}, + month = may, + year = {2020}, + keywords = {Dynamics, Force, Linear systems, Mathematical model, Optimal control, Optimized production technology}, + pages = {843--848}, +} + +@article{faedo_energy-maximising_2022, + series = {14th {IFAC} {Conference} on {Control} {Applications} in {Marine} {Systems}, {Robotics}, and {Vehicles} {CAMS} 2022}, + title = {Energy-maximising experimental control synthesis via impedance-matching for a multi degree-of-freedom wave energy converter}, + volume = {55}, + issn = {2405-8963}, + url = {https://www.sciencedirect.com/science/article/pii/S2405896322024995}, + doi = {10.1016/j.ifacol.2022.10.453}, + abstract = {We present, in this paper, an experimental framework for design and synthesis of impedance-matching-based (IM) controllers capable of maximising energy extraction in inherently multi degree-of-freedom wave energy converter (WEC) systems, and its subsequent application to the Intertial Sea Wave Energy Converter (ISWEC) device, by incorporating recent advances in IM-based theory. In particular, we consider a 1/20th scale prototype of the ISWEC system, tested as part of a larger experimental campaign conducted within the tank facilities available at Università degli Studi di Napoli Federico II, subject to a variety of wave conditions. We adopt two different control structures to realise an approximation of the IM principle, fully tuned based upon interpolation of a particular (experimentally obtained) non-parametric empirical transfer function estimate, which defines the optimal frequency-domain input-output response for energy-maximising behaviour. Furthermore, a performance comparison between controller tuning based upon traditional linear boundary element method models, and the presented experimental approach, is also offered, showing that the latter can consistently outperform the former in realistic scenarios, for the set of analysed sea-states.}, + number = {31}, + urldate = {2024-06-14}, + journal = {IFAC-PapersOnLine}, + author = {Faedo, Nicolás and Pasta, Edoardo and Carapellese, Fabio and Orlando, Vincenzo and Pizzirusso, Domenica and Basile, Dario and Sirigu, Sergej A.}, + month = jan, + year = {2022}, + keywords = {Impedance-matching, Optimal control, Wave energy converters}, + pages = {345--350}, +} + +@article{barter_beyond_2023, + title = {Beyond 15 {MW}: {A} cost of energy perspective on the next generation of drivetrain technologies for offshore wind turbines}, + volume = {344}, + issn = {0306-2619}, + shorttitle = {Beyond 15 {MW}}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261923006360}, + doi = {10.1016/j.apenergy.2023.121272}, + abstract = {Leading wind turbine manufacturers are racing to build larger and more powerful offshore machines. Drivetrain configurations often use a permanent-magnet synchronous generator (PMSG), in either a direct-drive configuration or coupled to a gearbox. With increasing demand for critical rare-earth magnets, new generator technologies are emerging to ensure a stable and secure supply chain. We evaluate three different topologies of radial flux synchronous generators employing high field magnets with reduced or no rare-earth content: a direct-drive interior PMSG (DD-IPMSG), a geared drivetrain combining a medium speed gearbox with a PMSG (MS-PMSG), and a direct-drive low-temperature superconducting generator (DD-LTSG). We develop a conceptual design module for each of these technologies within a larger framework for full turbine design. This provides the fairest comparison between technologies at nominal power ratings from 15–25MW, which represent the next generation of offshore wind turbines. The analyses show that if operational expenditures (OpEx) are constant across the technologies, MS-PMSG results in the lowest LCOE with reductions of up to 7\% relative to DD-IPMSG. DD-LTSG also yields lower LCOE values by 2\%–3\% for fixed-bottom turbines and 3\%–5\% with a floating platform. However, results are sensitive to OpEx assumptions, with a mere 10\% increase causing the conclusions to shift.}, + urldate = {2024-06-06}, + journal = {Applied Energy}, + author = {Barter, Garrett E. and Sethuraman, Latha and Bortolotti, Pietro and Keller, Jonathan and Torrey, David A.}, + month = aug, + year = {2023}, + keywords = {Direct drive, Levelized cost of energy, Medium speed, Offshore wind, Permanent magnet synchronous generator, Superconducting generator}, + pages = {121272}, +} + +@misc{schivley_powergenomepowergenome_2024, + title = {{PowerGenome}/{PowerGenome}: v0.6.3}, + url = {https://doi.org/10.5281/zenodo.11194213}, + doi = {10.5281/zenodo.11194213}, + publisher = {Zenodo}, + author = {Schivley, Greg and Welty, Ethan and Patankar, Neha and Jacobson, Anna and Xu, Qingyu and Manocha, Aneesha and Pecora, Braden and Bhandarkar, Riti and Jenkins, Jesse D. and Fripp, Matthias}, + month = may, + year = {2024}, +} + +@misc{pauly_mhkit_2020, + title = {{MHKiT} ({Marine} and {Hydrokinetic} {Toolkit}) - {MATLAB}}, + url = {https://doi.org/10.5281/zenodo.3928405}, + doi = {10.5281/zenodo.3928405}, + author = {Pauly, Rebecca and Klise, Katherine and Ruehl, Kelley M. and Olson, Sterling and Shippert, Timothy and Morrell, Zachary and Bredin, Sarah and Lansing, Carina and Macduff, Matt and Martin, Tonya and Sivaraman, Chitra and Gunawan, Budi and Driscoll, Frederick}, + month = jan, + year = {2020}, + note = {Published: [Computer Software] https://doi.org/10.5281/zenodo.3928405}, +} + +@article{noauthor_mhkit-softwaremhkit-matlab_nodate, + title = {{MHKiT}-{Software}/{MHKiT}-{MATLAB}: v0.4.1}, + shorttitle = {{MHKiT}-{Software}/{MHKiT}-{MATLAB}}, + url = {https://zenodo.org/records/10783438}, + doi = {10.5281/zenodo.10783438}, + abstract = {New Features DOLfYN IO \& Rotations(\#79) IO Implement DOLfYN IO functionality for classic Nortek data format Add support for RDI file read Initial development for NetCDF read and write functionality Rotations Speed optimizations, bug fixes, and rotations for DOLfYN Power Quality Flicker (\#105) Update power quality flicker assessment workflow and calculations CDIP Data IO and Graphics (\#83) Implement CDIP data collection and plotting functions Wave Updates (\#70) Add depth\_regime, wave\_length, and depth flags Implement updates to wave-related functions and tests Cache hindcast data calls (309f51226a88b25f985a6767e5696e0ec656d6ce) Add MATLAB/Python compatibility to README (576b406c7e102068526718e44a8878327c693764) Bug Fixes \#59 Magnitude and Phase Function for MATLAB (\#76) Implement magnitude and phase function for MATLAB \#65 Tidal Ebb and Flood Plots for MATLAB (\#73) Implement tidal ebb and flood plots for MATLAB WPTO for MATLAB (\#61) Address issues related to WPTO for MATLAB Fix python namespace conflict warnings (be70376) Developer Improvements Fix Github Actions Workflow to automate unit testing \#102 Linux, macOS, and Windows Units are performing nominally Fix/update failing unit tests where possible 100\% (151 / 151) of test cases are passing Add built in MATLAB code coverage (1f5f93a) Thank you to @kchong75, @H0R5E, @kbrode22, @parangat94, @Matthew-Boyd, @hivanov-nrel, @rpauly18, @Alex-McVey, @simmsa for your contributions!}, + language = {en}, + urldate = {2024-06-03}, +} + +@misc{klise_mhkit_2020, + title = {{MHKiT} ({Marine} and {Hydrokinetic} {Toolkit}) - {Python}}, + url = {https://doi.org/10.5281/zenodo.3924683}, + doi = {10.5281/zenodo.3924683}, + author = {Klise, Katherine and Pauly, Rebecca and Ruehl, Kelley M. and Olson, Sterling and Shippert, Timothy and Morrell, Zachary and Bredin, Sarah and Lansing, Carina and Macduff, Matt and Martin, Tonya and Sivaraman, Chitra and Gunawan, Budi and Driscoll, Frederick}, + month = jan, + year = {2020}, + note = {Published: [Computer Software] https://doi.org/10.5281/zenodo.3924683}, +} + +@misc{mit_energy_initiative_genx_nodate, + title = {{GenX}: a configurable power system capacity expansion model for studying low-carbon energy futures}, + url = {https://github.com/GenXProject/GenX.jl}, + author = {{MIT Energy Initiative} and {Princeton University ZERO lab}}, +} + +@article{faedo_principle_2022, + title = {On the principle of impedance-matching for underactuated wave energy harvesting systems}, + volume = {118}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118721004223}, + doi = {10.1016/j.apor.2021.102958}, + abstract = {In recent years, the fundamental principle of impedance-matching (IM) has inspired a number of sophisticated, yet simple, control solutions for wave energy converters (WEC). Such controllers have the capability of maximising energy absorption from incoming waves with mild computational requirements, being often intuitive in their design, hence especially appealing for real-time industrial applications. Nonetheless, these control solutions are, to date, almost exclusively developed for single degree-of-freedom (DoF) (and hence fully actuated) WEC systems, hindering their application to realistic underactuated multi-DoF devices, i.e. harvesting systems where energy is extracted from only a handful of its total set of modes of motion. Motivated by this, we present, in this paper, a comprehensive derivation and discussion of the IM conditions for maximum energy absorption in underactuated multi-DoF WEC systems. In particular, we show that the IM principle for single-DoF devices can be effectively extended to underactuated multi-DoF systems, and that a set of optimality conditions can be explicitly derived. In addition, we discuss both the impact and use of this set of optimal conditions for control design and synthesis, hence effectively taking a fundamental step towards the general extension of current IM-based techniques to the case of underactuated multi-DoF devices.}, + urldate = {2024-06-02}, + journal = {Applied Ocean Research}, + author = {Faedo, Nicolás and Carapellese, Fabio and Pasta, Edoardo and Mattiazzo, Giuliana}, + month = jan, + year = {2022}, + keywords = {Energy-maximising control, Impedance-matching, Optimal control, WEC, Wave energy}, + pages = {102958}, +} + +@article{akdemir_opportunities_2023, + title = {Opportunities for wave energy in bulk power system operations}, + volume = {352}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261923012096}, + doi = {10.1016/j.apenergy.2023.121845}, + abstract = {Wave energy resources have high, yet largely untapped potential as candidate generation technology. In this paper, we perform a data-driven analysis to characterize the impact of wave energy integration on bulk-scale power systems and market operations. Through data-driven sensitivity studies centered on an optimization-based production cost modeling formulation, our work characterizes the inflection point beyond which wave integration starts impacting power system operations, considering present day transmission infrastructure. Furthermore, our analysis also considers the joint effects of wave energy integration and system-wide transmission expansion. Finally, potential resilience scenarios such as wildfire-driven transmission contingencies and heat wave events are investigated, whereby the contributions of grid-integrated wave energy in alleviating the effects of the resilience events are analyzed. As our demonstration test bed, we consider a reduced-order network topology for the U.S. Western Interconnection with wave energy generation integrated at carefully selected sites across the coastal areas of Washington, Oregon, and northern California. Our results indicate that over a representative year of operations, wave energy integration systematically reduces locational marginal prices (LMPs) of energy and price volatility, especially during periods of high wave resource availability (winter months for the U.S. west coast). Average, maximum, and minimum of hourly LMPs over a typical year of operation was reduced by 2.95, 51.28, and 1.13 \$/MWh respectively (over a baseline scenario with no wave energy integration), when the selected network model had a total of 5000 MW wave power installed capacity during the representative year of study. The effects of wave energy integration can remain localized with existing transmission infrastructure (identified to be most pronounced in the Pacific Northwest region in the example we studied). However, with concurrent transmission expansion, the impacts of wave energy integration are likely to have a higher geographical spread. Our results also indicate that wave energy may be able to assist power system operations during resilience events such as major transmission contingencies and heat wave events, although such benefits might be dependent on factors such as proximity of affected area to wave resources, availability of adequate resource potential and adequate transmission capacity.}, + urldate = {2024-06-02}, + journal = {Applied Energy}, + author = {Akdemir, Kerem Ziya and Robertson, Bryson and Oikonomou, Konstantinos and Kern, Jordan and Voisin, Nathalie and Hanif, Sarmad and Bhattacharya, Saptarshi}, + month = dec, + year = {2023}, + keywords = {Contingency analysis, Electricity market, Marine renewable energy, Power system operations, Production cost modeling, Wave energy}, + pages = {121845}, +} + +@article{satymov_techno-economic_2024, + title = {Techno-economic assessment of global and regional wave energy resource potentials and profiles in hourly resolution}, + volume = {364}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261924005026}, + doi = {10.1016/j.apenergy.2024.123119}, + abstract = {Climate change is driving the adoption of sustainable energy, with low-cost solar photovoltaics and wind power at the forefront. However, land-constrained regions and islands have a limited onshore renewable energy potential. Wave power may prove useful for such regions, supported by growing literature in the field. This study delves into wave power's techno-economic potential, addressing a gap in previous assessments focused solely on theoretical or technical prospects. Utilising hourly wave data and a wave energy converter manufacturer's power matrix, global wave electricity yield is estimated. Considering projected costs, levelised cost of electricity is used to gauge economic viability. Although wave power is currently expensive, the results suggest that it could become cost-competitive with offshore wind power in the 2030s, with levelised cost of electricity below 70 €/MWh by 2035 in areas with good wave energy resources. Finally, the paper contributes openly accessible, hourly capacity factor data of global wave power generation, empowering further energy system modelling research. This study paves the way for informed decision-making on wave power's role in a diversified, sustainable energy future.}, + urldate = {2024-06-02}, + journal = {Applied Energy}, + author = {Satymov, Rasul and Bogdanov, Dmitrii and Dadashi, Mojtaba and Lavidas, George and Breyer, Christian}, + month = jun, + year = {2024}, + keywords = {CorPower, Energy supply diversification, Land-constrained regions, Ocean energy, Wave electricity yield, Wave energy}, + pages = {123119}, +} + +@article{grasberger_control_2024, + title = {Control co-design and optimization of oscillating-surge wave energy converter}, + volume = {225}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124002994}, + doi = {10.1016/j.renene.2024.120234}, + abstract = {Ocean wave energy has the potential to play a crucial role in the shift to renewable energy. In order to improve wave energy conversion performance, it is necessary to break through the traditional sequential design process due to the coupling of subsystems such as the wave capture structure geometry, power take-off (PTO), and control systems. A co-design optimization is introduced in this paper to include effects of all subsystems with one outer and one inner optimization loop in order to reach a fully optimal design of an oscillating surge wave energy converter (OSWEC). A width and height sweep serves as an outer loop geometry optimization while power take-off components and control parameters are optimized efficiently in an inner loop for each geometry. An investigation into electrical power and mechanical power maximization also outlines the contrasting nature of the two objectives to illustrate the importance of electrical power maximization for identifying optimality. The co-design optimization leads to an optimal design with a width of 12 m and a height of 10 m which achieves an improvement in the normalized power value of over 60\% when compared to sequential design. A sensitivity analysis of the PTO system enhances understanding of the impact of PTO component value changes to support detailed-design of relevant components including drivetrain and generator. Lastly, the effect of the wave height and period on the optimal design is explored. Through the optimization and sensitivity analysis, a greater understanding on the effects of applying control co-design principles on surface piercing OSWECs is achieved and the importance of control co-design methods is demonstrated.}, + urldate = {2024-06-01}, + journal = {Renewable Energy}, + author = {Grasberger, Jeff and Yang, Lisheng and Bacelli, Giorgio and Zuo, Lei}, + month = may, + year = {2024}, + keywords = {Control co-design, Ocean wave energy, Oscillating-surge wave energy converter, Power-takeoff design, Shape optimization}, + pages = {120234}, +} + +@article{gudmestad_hydrodynamic_1996, + title = {Hydrodynamic coefficients for calculation of hydrodynamic loads on offshore truss structures}, + volume = {9}, + issn = {0951-8339}, + url = {https://www.sciencedirect.com/science/article/pii/0951833995000232}, + doi = {10.1016/0951-8339(95)00023-2}, + abstract = {The current American Petroleum Institute's recipe [API RP 2A WSD, Recommended practice for planning, designing and constructing fixed offshore platforms, working stress design. API, USA, 1993.] for calculation of hydrodynamic loads on offshore truss structures is compared with the corresponding North Sea Design Practice, as given by the rules of Det Norske Veritas. Most emphasis is put on the hydrodynamic coefficients and the estimation of design current as these issues are identified to be particularly critical. Use of the updated API (1993) recommendations in which the drag coefficient for roughened cylinders is increased from a minimum of 0·6 (API 1991) to 1·05 (API 1993) and where current is included, could lead to a general increase in the estimated load level on slender offshore structures [Petrauskas, C., Heideman, J.C. \& Berek, E.P., Extreme wave force calculation procedure for the 20th edition of API RP 2A. OTC paper 7153, In Proc. OTC 1993, Houston, Texas, 1993, pp. 201–211]. The main emphasis with regard to the impact of the new API recommendations, however, is that a consistent approach is provided to the calculation of 100-yr directional loads. This includes taking into account the effect of marine growth on force coefficients, modifying the wave kinematics for directional spreading, and considering current blockage effects, conductor shielding effects, and joint occurrence of wave height and current (i.e., using the associated current as being representative of the current that would lead to the 100-yr load). It is concluded that a consistent approach, such as that underlying the new API RP 2A (1993) recipe, is preferable to the current North Sea Design Practice [Det Norske Veritas, Environmental conditions and environmental loads. DNV classification notes 30.5, 1001.] in this field, and thus that the North Sea Design Practice should be updated. This relates in particular to selection of hydrodynamic coefficients. Measurement programmes to obtain full scale global force data simultatneously with wave and current data are furthermore recommended.}, + number = {8}, + urldate = {2024-05-27}, + journal = {Marine Structures}, + author = {Gudmestad, Ove T. and Moe, Geir}, + month = sep, + year = {1996}, + keywords = {API Recommended practice, hydrodynamic coefficients, offshore truss structures, wave forces}, + pages = {745--758}, +} + +@article{wen_shape_2018, + title = {A {Shape} {Optimization} {Method} of a {Specified} {Point} {Absorber} {Wave} {Energy} {Converter} for the {South} {China} {Sea}}, + volume = {11}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/11/10/2645}, + doi = {10.3390/en11102645}, + abstract = {In this paper, a shape optimization method of a truncated conical point absorber wave energy converter is proposed. This method converts the wave energy absorption efficiency into the matching problem between the wave spectrum of the South China Sea and the buoy’s absorption power spectrum. An objective function which combines these two spectra is established to reflect the energy absorbing efficiency. By applying Taguchi design, the frequency domain hydrodynamic analysis and the response surface method (RSM), the radius, cone angle and draft of the buoy are optimized. Since the significant influence of power take-off system (PTO) on energy absorption, the optimal PTO damping under random wave conditions is also studied. The optimal shape is acquired by maximizing the energy absorbing efficiency. Four types of performance and the influence of each geometrical parameter are also obtained. In addition, the cause of the trend of performance as well as the effects of adjusting the input parameters are analyzed. This study can provide guidance for the shape optimization of multi-parameter buoys.}, + language = {en}, + number = {10}, + urldate = {2024-05-27}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Wen, Yadong and Wang, Weijun and Liu, Hua and Mao, Longbo and Mi, Hongju and Wang, Wenqiang and Zhang, Guoping}, + month = oct, + year = {2018}, + note = {Number: 10}, + keywords = {RSM, South China Sea, Taguchi design, absorption power spectrum, point absorber, shape optimization, wave energy converter}, + pages = {2645}, +} + +@article{son_performance_2016, + title = {Performance validation and optimization of a dual coaxial-cylinder ocean-wave energy extractor}, + volume = {92}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148116300325}, + doi = {10.1016/j.renene.2016.01.032}, + abstract = {A point-absorber wave-energy extractor is developed, consisting of a dual coaxial-cylinder system, with the inner cylinder tension-tethered and an outer cylinder (floater) oscillating vertically. A permanent magnet linear generator (PMLG) is used as a power take-off (PTO) capturing wave energy from the relative motion of the two cylinders. The mathematical modeling of the system includes the coupling effects of the cylinder hydrodynamics and the PMLG behavior. It gives a rational and effective way of providing performance predictions and directions for optimization. The flat bottom shape of the floater is modified into a needle-like curved shape to minimize viscous losses, which leads to three-times increase in floater response, compared with the flat-bottom geometry and thus improved wave-energy capture. The behavior of the PTO in the presence of an appropriate supporting structure for the coaxial cylinders are investigated, and optimal operating conditions for energy extraction and mechanical to electrical conversion efficiency are determined. Experimental results of this coupled system in regular waves confirm the validity of the theoretical predictions and soundness of the engineering design. Optimizing the floater bottom shape and the operating conditions for energy extraction lead to a two-times increase in overall efficiency, even without any active control.}, + urldate = {2024-05-24}, + journal = {Renewable Energy}, + author = {Son, Daewoong and Belissen, Valentin and Yeung, Ronald W.}, + month = jul, + year = {2016}, + keywords = {Coaxial cylinders, Motion amplification, Ocean-wave energy, Optimization, Permanent-magnet linear generator, Wave-energy extractor}, + pages = {192--201}, +} + +@unpublished{dekker_our_1999, + title = {On our own terms: emerging autistic culture}, + url = {https://www.autscape.org/2015/programme/handouts/Autistic-Culture-07-Oct-1999.pdf}, + author = {Dekker, Martijn}, + month = oct, + year = {1999}, +} + +@misc{noauthor_welcome_nodate, + title = {Welcome to {People} {First}.org!}, + url = {https://www.peoplefirst.org/}, + urldate = {2024-05-10}, +} + +@incollection{watson_deaf_2019, + address = {London}, + edition = {2}, + title = {Deaf identities in disability studies}, + isbn = {978-0-429-43081-7}, + doi = {10.4324/9780429430817}, + abstract = {This fully revised and expanded second edition of the Routledge Handbook of Disability Studies takes a multidisciplinary approach to disability and provides an authoritative and up-to-date overview of the main issues in the field around the world today. Adopting an international perspective and arranged thematically, it surveys the state of the discipline, examining emerging and cutting-edge areas as well as core areas of contention. +Divided in five parts, this comprehensive handbook covers: + +Different models and approaches to disability +How key impairment groups have engaged with disability studies and the writings within the discipline +Policy and legislation responses to disability studies and to disability activism +Disability studies and its interaction with other disciplines, such as history, philosophy, sport, and science and technology studies +Disability studies and different life experiences, examining how disability and disability studies intersects with ethnicity, sexuality, gender, childhood and ageing +Containing 15 revised chapters and 12 new chapters from an international selection of leading scholars, this authoritative handbook is an invaluable reference for all academics, researchers, and more advanced students in disability studies and associated disciplines such as sociology, health studies and social work. +Chapter 6 of this book is freely available as a downloadable Open Access PDF at https://www-taylorfrancis-com.proxy.library.cornell.edu under a Creative Commons Attribution-Non Commercial-No Derivatives (CC-BY-NC-ND) 4.0 license.}, + booktitle = {Routledge {Handbook} of {Disability} {Studies}}, + publisher = {Routledge}, + author = {Scully, Jackie Leach}, + editor = {Watson, Nick and Roulstone, Alan and Thomas, Carol}, + month = nov, + year = {2019}, +} + +@misc{murray_deaf_nodate, + type = {Encyclopedia}, + title = {Deaf {History}}, + url = {https://www.britannica.com/science/deaf-history/The-19th-century}, + abstract = {Deaf history - Sign Language, Education, Advocacy: Deaf education in the first part of the 1800s was largely inspired by an impulse to save deaf people’s souls, to ensure that they received sufficient religious training to understand the word of God. In the United States that period is generally known as the heyday of manualism. In 1817 a deaf teacher from the INJS, Laurent Clerc, together with American educational philanthropist Thomas Hopkins Gallaudet, established what later became the American School for the Deaf, located in West Hartford, Connecticut. Aside from a short stint as principal of the Pennsylvania Institution for the Deaf in Philadelphia, Clerc would go}, + language = {en}, + urldate = {2024-05-10}, + journal = {Britannica}, + author = {Murray, Joseph}, +} + +@article{jones_deafness_2002, + title = {Deafness as {Culture}: {A} {Psychosocial} {Perspective}}, + volume = {22}, + copyright = {Copyright (c) 2002 Megan Jones}, + issn = {2159-8371}, + shorttitle = {Deafness as {Culture}}, + url = {https://dsq-sds.org/index.php/dsq/article/view/344}, + doi = {10.18061/dsq.v22i2.344}, + abstract = {No abstract available}, + language = {en}, + number = {2}, + urldate = {2024-05-10}, + journal = {Disability Studies Quarterly}, + author = {Jones, Megan}, + month = apr, + year = {2002}, + note = {Number: 2}, +} + +@incollection{erickson-schroth_disability_2014, + title = {Disability and {Deaf} {Culture}}, + isbn = {978-0-19-932537-5}, + abstract = {There is no one way to be transgender. Transgender and gender non-conforming people have many different ways of understanding their gender identities. Only recently have sex and gender been thought of as separate concepts, and we have learned that sex (traditionally thought of as physical or biological) is as variable as gender (traditionally thought of as social). While trans people share many common experiences, there is immense diversity within trans communities. There are an estimated 700,000 transgendered individuals in the US and 15 million worldwide. Even still, there's been a notable lack of organized information for this sizable group. Trans Bodies, Trans Selves is a revolutionary resource-a comprehensive, reader-friendly guide for transgender people, with each chapter written by transgender or genderqueer authors. Inspired by Our Bodies, Ourselves, the classic and powerful compendium written for and by women, Trans Bodies, Trans Selves is widely accessible to the transgender population, providing authoritative information in an inclusive and respectful way and representing the collective knowledge base of dozens of influential experts. Each chapter takes the reader through an important transgender issue, such as race, religion, employment, medical and surgical transition, mental health topics, relationships, sexuality, parenthood, arts and culture, and many more. Anonymous quotes and testimonials from transgender people who have been surveyed about their experiences are woven throughout, adding compelling, personal voices to every page. In this unique way, hundreds of viewpoints from throughout the community have united to create this strong and pioneering book. It is a welcoming place for transgender and gender-questioning people, their partners and families, students, professors, guidance counselors, and others to look for up-to-date information on transgender life.}, + language = {en}, + booktitle = {Trans {Bodies}, {Trans} {Selves}: {A} {Resource} for the {Transgender} {Community}}, + publisher = {Oxford University Press}, + author = {Ware, Syrus Marcus and Marshall, Zack}, + editor = {Erickson-Schroth, Laura}, + month = may, + year = {2014}, + note = {Google-Books-ID: 7Ef1AwAAQBAJ}, + keywords = {Psychology / Human Sexuality, Social Science / Social Work}, +} + +@article{eckert_audism_2013, + title = {Audism: {A} {Theory} and {Practice} of {Audiocentric} {Privilege}}, + volume = {37}, + issn = {0160-5976}, + shorttitle = {Audism}, + url = {https://doi.org/10.1177/0160597613481731}, + doi = {10.1177/0160597613481731}, + abstract = {More than 30 years ago, Tom Humphries coined the term “audism” to describe audiocentric (based on hearing and speaking) assumptions and attitudes of supremacy. Only a handful of scholarly articles mention the concept of audism and not one of those is published outside of Deaf Cultural Studies. In this article, audism is broadly defined in the ideological contexts of individual, institutional, metaphysical, and laissez-faire prejudices. Audism is further explained in the context of overt, covert, and aversive practices of discrimination. Examples of the intersections of the theory and practice of audiocentric privilege are explored. Based on critical observations of audism as a stratifying system of oppression, four recommendations are made: increasing public awareness of Deaf American contributions to society (multiculturalism), infusing Deaf-centric curriculum content in education (equity), advocating intergroup dialogues as a transformative pedagogy that further exposes audism as a social injustice (intercultural responsibility), and promoting community service opportunities (ethical citizenship) for students to do volunteer work in the Deaf American Community.}, + language = {en}, + number = {2}, + urldate = {2024-05-10}, + journal = {Humanity \& Society}, + publisher = {SAGE Publications Inc}, + author = {Eckert, Richard Clark and Rowley, Amy June}, + month = may, + year = {2013}, + pages = {101--130}, +} + +@article{zisk_augmentative_2019, + title = {Augmentative and {Alternative} {Communication} for {Speaking} {Autistic} {Adults}: {Overview} and {Recommendations}}, + volume = {1}, + issn = {2573-9581}, + shorttitle = {Augmentative and {Alternative} {Communication} for {Speaking} {Autistic} {Adults}}, + url = {https://www.liebertpub.com/doi/10.1089/aut.2018.0007}, + doi = {10.1089/aut.2018.0007}, + abstract = {In recent years, technologies used for augmentative and alternative communication (AAC) have seen increasing development and availability. As a result, more and more autistic people are using AAC. With the increased use of AAC by autistic people, research on autism and AAC has also increased. However, the vast majority of this research focuses on nonspeaking autistic children. AAC use by autistic adults and by speaking autistic people has received limited academic attention. Speaking autistic adults often use AAC and many have publicly shared information about their strategies and experiences. In this article, we provide an overview of the speech differences autistic adults choose to support through AAC, including varying difficulties with speech depending on environment and content. We also discuss the technologies and strategies adopted by autistic adults, including free or low-cost tools that are not specific to AAC, mobile technologies, and signed languages or gestures. We explore barriers to AAC use, including a lack of awareness of relevant options, misconceptions about who AAC supports are for, and the cost of dedicated AAC applications or devices. We then provide suggestions for autistic adults, people supporting autistic adults, and researchers. Overall communication—rather than speech—should be prioritized. Mainstream communication technologies can support communication for autistic adults and a variety of tools can support communication across contexts. Further research into the use and effectiveness of AAC for autistic adults is needed, as is research on barriers to AAC use.}, + number = {2}, + urldate = {2024-05-10}, + journal = {Autism in Adulthood}, + publisher = {Mary Ann Liebert, Inc., publishers}, + author = {Zisk, Alyssa Hillary and Dalton, Elizabeth}, + month = jun, + year = {2019}, + pages = {93--100}, +} + +@techreport{lusin_enrollments_2023, + title = {Enrollments in {Languages} {Other} {Than} {English} in {US} {Institutions} of {Higher} {Education}, {Fall} 2021}, + url = {https://www.mla.org/content/download/191324/file/Enrollments-in-Languages-Other-Than-English-in-US-Institutions-of-Higher-Education-Fall-2021.pdf}, + institution = {Modern Language Association of America}, + author = {Lusin, Natalia and Peterson, Terri and Sulewski, Christine and Zafer, Rizwana}, + year = {2023}, +} + +@misc{rocky_mountain_ada_how_2019, + title = {How {Deaf} people influenced the passage of the {ADA}}, + url = {https://rockymountainada.org/news/blog/how-deaf-people-influenced-passage-ada}, + language = {en}, + urldate = {2024-05-09}, + journal = {Rocky Mountain ADA}, + author = {{Rocky Mountain ADA}}, + month = sep, + year = {2019}, +} + +@misc{noauthor_writing_2023, + title = {Writing {Respectfully}: {Person}-{First} and {Identity}-{First} {Language}}, + shorttitle = {Writing {Respectfully}}, + url = {https://www.nih.gov/about-nih/what-we-do/science-health-public-trust/perspectives/writing-respectfully-person-first-identity-first-language}, + abstract = {When communicating about disabilities, diseases, and health conditions, it’s important to consider the unique needs and interests of the people experiencing them as part of daily life.}, + language = {EN}, + urldate = {2024-05-09}, + journal = {National Institutes of Health (NIH)}, + month = apr, + year = {2023}, +} + +@article{lane_ethnicity_2005, + title = {Ethnicity, {Ethics}, and the {Deaf}-{World}}, + volume = {10}, + issn = {1081-4159}, + url = {https://doi.org/10.1093/deafed/eni030}, + doi = {10.1093/deafed/eni030}, + abstract = {This article is concerned with ethical aspects of the relations between language minorities using signed languages (called the Deaf-World) and the larger societies that engulf them. The article aims to show that such minorities have the properties of ethnic groups, and that an unsuitable construction of the Deaf-World as a disability group has led to programs of the majority that discourage Deaf children from acquiring the language and culture of the Deaf-World and that aim to reduce the number of Deaf births—programs that are unethical from an ethnic group perspective. Four reasons not to construe the Deaf-World as a disability group are advanced: Deaf people themselves do not believe they have a disability; the disability construction brings with it needless medical and surgical risks for the Deaf child; it also endangers the future of the Deaf-World; finally, the disability construction brings bad solutions to real problems because it is predicated on a misunderstanding.}, + number = {3}, + urldate = {2024-05-09}, + journal = {The Journal of Deaf Studies and Deaf Education}, + author = {Lane, Harlan}, + month = jul, + year = {2005}, + pages = {291--310}, +} + +@article{ahamed_advancements_2020, + title = {Advancements of wave energy converters based on power take off ({PTO}) systems: {A} review}, + volume = {204}, + issn = {0029-8018}, + shorttitle = {Advancements of wave energy converters based on power take off ({PTO}) systems}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801820302985}, + doi = {10.1016/j.oceaneng.2020.107248}, + abstract = {Ocean waves contain one of the world's largest untapped and predictable renewable energy sources that can be used to fulfil the energy demand in the present energy crises situation. There are many devices that have been proposed and prototyped in different countries all around the world to harness wave energy based on different power take-off (PTO) systems. The aim of this article is to review the power take-off (PTO) systems of the wave energy converters (WEC). The review starts with a brief introduction and background of wave energy. Following this, a novel classification of WEC systems is introduced. Then, the WECs based on the different working methods of their power take off systems are briefly reviewed. This includes an analysis and comparison of advantages and challenges of the power take off systems. Aspects of current international research and development activities and networks for wave energy is also discussed. The current market of wave energy technologies is also assessed, showing that the mechanical direct drive system is the most popular. Hybrid PTO systems are seen as an important development for the future.}, + urldate = {2024-05-06}, + journal = {Ocean Engineering}, + author = {Ahamed, Raju and McKee, Kristoffer and Howard, Ian}, + month = may, + year = {2020}, + keywords = {Ocean waves, Performance, Power take off system, Wave energy converter, Working methods}, + pages = {107248}, +} + +@article{osullivan_co-design_2017, + title = {Co-design of a wave energy converter using constrained predictive control}, + volume = {102}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148116308990}, + doi = {10.1016/j.renene.2016.10.034}, + abstract = {This paper highlights the need to optimise the performance of the complete wave to wire system, instead of designing the individual subsystems. In this work a point absorber wave energy converter operating in heave mode separately, coupled to a Linear Permanent Magnet Generator (LPMG); where the results are obtained in simulation. The PTO force is controlled by a machine side back-to-back voltage source converter (VSC), which is connected to a constant DC-link voltage. Model Predictive Control (MPC) is then used to maximise the absorbed electrical power with the resistive losses of the PTO included; this is compared with classical control methods. The optimal force produced from the MPC incorporates legitimate physical and electrical constraints of the WEC and LPMG -the importance of including such constraints within the optimisation is shown. Field weakening and a uni-directional power flow constraint are then incorporated to help prevent poor grid power quality when fluctuations in the DC-link occur. It is assumed that the constrained optimal control approach produces the highest possible electrical power available. This means that it is now possible to clearly see the effect of physical design choices on the performance on a level playing field.}, + urldate = {2024-05-06}, + journal = {Renewable Energy}, + author = {O'Sullivan, Adrian C. M. and Lightbody, Gordon}, + month = mar, + year = {2017}, + keywords = {Cyber-physical, Field weakening, MPC, Power maximisation, Uni-directional power flow, Wave energy}, + pages = {142--156}, +} + +@article{tan_downsizing_2022, + title = {Downsizing the {Linear} {PM} {Generator} in {Wave} {Energy} {Conversion} for {Improved} {Economic} {Feasibility}}, + volume = {10}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2077-1312}, + url = {https://www.mdpi.com/2077-1312/10/9/1316}, + doi = {10.3390/jmse10091316}, + abstract = {A crucial part of wave energy converters (WECs) is the power take-off (PTO) mechanism, and PTO sizing has been shown to have a considerable impact on the levelized cost of energy (LCOE). However, as a dominating type of PTO system in WECs, previous research pertinent to PTO sizing did not take modeling and optimization of the linear permanent magnet (PM) generator into consideration. To fill this gap, this paper provides an insight into how PTO sizing affects the performance of linear permanent magnet (PM) generators, and further the techno-economic performance of WECs. To thoroughly reveal the power production of the WEC, both hydrodynamic modeling and generator modeling are incorporated. In addition, three different methods for sizing the linear generator are applied and compared. The effect of the selection of the sizing method on the techno-economic performance of the WEC is identified. Furthermore, to realistically reflect the relevance of PTO sizing, wave resources from three European sea sites are considered in the techno-economic analysis. The dependence of PTO sizing on wave resources is demonstrated.}, + language = {en}, + number = {9}, + urldate = {2024-05-04}, + journal = {Journal of Marine Science and Engineering}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Tan, Jian and Wang, Xuezhou and Polinder, Henk and Laguna, Antonio Jarquin and Miedema, Sape A.}, + month = sep, + year = {2022}, + note = {Number: 9}, + keywords = {downsizing, linear PM generator, wave energy converter}, + pages = {1316}, +} + +@article{wu_gradient-based_2022, + title = {A {Gradient}-based {Sequential} {Multifidelity} {Approach} to {Multidisciplinary} {Design} {Optimization}}, + volume = {65}, + issn = {1615-1488}, + url = {https://doi.org/10.1007/s00158-022-03204-1}, + doi = {10.1007/s00158-022-03204-1}, + abstract = {Multifidelity design optimization is a strategy that can reduce the high computational cost in cases where the high-fidelity model is too expensive to use directly in optimization. However, current multifidelity approaches cannot handle the high-dimensional problems commonly encountered in industrial settings. Furthermore, they cannot accommodate arbitrary analysis fidelities, directly handle multidisciplinary problems, or provably converge to the high-fidelity optimum. In this paper, we present a practical multifidelity approach that leverages the advantages of conventional gradient-based approaches. Rather than constructing a multifidelity surrogate, we perform a sequence of single-fidelity gradient-based optimizations. The framework determines the appropriate fidelity and updates it during the optimization process. Finally, we demonstrate the proposed approach on a multipoint aerostructural wing optimization problem with over a hundred design variables. The multifidelity approach reduces the computational cost by 59\% compared to the high-fidelity approach while obtaining the same numerical optimum.}, + language = {en}, + number = {4}, + urldate = {2024-04-12}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Wu, Neil and Mader, Charles A. and Martins, Joaquim R. R. A.}, + month = apr, + year = {2022}, + keywords = {Gradient-based optimization, Multidisciplinary design optimization, Multifidelity optimization}, + pages = {131}, +} + +@misc{noauthor_overview_nodate, + title = {Overview of {NASA} {Electrified} {Aircraft} {Propulsion} ({EAP}) {Research} for {Large} {Subsonic} {Transports}}, + url = {https://arc.aiaa.org/doi/epdf/10.2514/6.2017-4701}, + doi = {10.2514/6.2017-4701}, + language = {en}, + urldate = {2024-04-12}, +} + +@book{noauthor_commercial_nodate, + title = {Commercial {Aircraft} {Propulsion} and {Energy} {Systems} {Research}: {Reducing} {Global} {Carbon} {Emissions}}, + shorttitle = {Read "{Commercial} {Aircraft} {Propulsion} and {Energy} {Systems} {Research}}, + url = {https://nap.nationalacademies.org/read/23490/chapter/7#58}, + doi = {10.17226/23490}, + abstract = {Read chapter 4 Electric Propulsion: The primary human activities that release carbon dioxide (CO2) into the atmosphere are the combustion of fossil fuels ...}, + language = {en}, + urldate = {2024-04-12}, +} + +@book{gelb_multiple-input_1968, + series = {{McGraw}-{Hill} {Electronic} {Sciences}}, + title = {Multiple-{Input} {Describing} {Functions} and {Nonlinear} {System} {Design}}, + url = {https://www.semanticscholar.org/paper/Multiple-Input-Describing-Functions-and-Nonlinear-Gelb-Velde/8a855f23d04e394328b2978c5843cf9f6d2d8fdc}, + abstract = {The theory of automatic control has been advanced in important ways during recent years, particularly with respect to stability and optimal control. These are significant contributions which appeal to many workers, including the writers, because they answer important questions and are both theoretically elegant and practically useful. These theories do not, however, lay to rest all questions of importance to the control engineer. The designer of the attitude control system for a space vehicle booster which, for simplicity, utilizes a rate-switched engine gimbal drive, must know the characteristics of the limit cycle oscillation that the system will sustain and must have some idea of how the system will respond to attitude commands while continuing to limit-cycle. The designer of a chemical process control system must be able to predict the transient oscillations the process may experience during start-up due to the limited magnitudes of important variables in the system. The designer of a radar antenna pointing system with limited torque capability must be able to predict the rms pointing error due to random wind disturbances on the antenna, and must understand how these random disturbances will influence the behavior of the system in its response to command inputs. But more important than just being able to evaluate how a given system will behave in a postulated situation is the fact that these control engineers must design their systems to meet specifications on important characteristics. Thus a complicated exact analytical tool, if one existed, would be of less value to the designer than an approximate tool which is simple enough in application to give insight into the trends in system behavior as a function of system parameter values or possible compensations, hence providing the basis for system design. As an analytical tool to answer questions such as these in a way …}, + urldate = {2024-04-08}, + publisher = {McGraw-Hill}, + author = {Gelb, Arthur and Vander Velde, Wallace E.}, + year = {1968}, +} + +@article{comino_augmentative_2024, + title = {Augmentative and alternative communication and deaf children with disabilities}, + volume = {0}, + issn = {1464-3154}, + url = {https://doi.org/10.1080/14643154.2024.2316959}, + doi = {10.1080/14643154.2024.2316959}, + abstract = {With recent data reporting approximately 40–50\% of Deaf or hard of hearing (DHH) individuals as having a diability, complex communication needs are not uncommon within this population and can present unique communicative challenges. Implementing augmentative and alternative communication (AAC) systems can provide this population with an effective means of communication, assist them in developing specific language skills, and support them in effectively accessing their social environment. The purpose of this scoping review was to (a) identify the facilitators and barriers to AAC provision for this group of individuals, (b) discuss observable trends throughout studies, and (c) highlight areas for further research in AAC for this group of learners. This review compiles the results from seven studies within the last 10 years and focuses on the facilitators and barriers when implementing AAC systems for DHH individuals with a disability (DWD) and complex communication needs. The facilitators and barriers are categorised as interpersonal, intervention and assessment related. The trends that were identified included (a) the overall success of AAC, (b) the prevalence of speech-generating devices (SGD) use, (c) the lack of communication within interdisciplinary teams, (d) the lack of DHH-specific research, and (e) the lack of standardised methods for AAC selection.}, + number = {0}, + urldate = {2024-04-03}, + journal = {Deafness \& Education International}, + publisher = {Routledge}, + author = {Comino, Dimity and Roche, Laura and Duncan, Jill}, + year = {2024}, + note = {\_eprint: https://doi.org/10.1080/14643154.2024.2316959}, + keywords = {Augmentative and alternative communication; deaf, hard of hearing; complex communication needs}, + pages = {1--25}, +} + +@article{graham_increasing_2020, + title = {Increasing {Social} {Awareness} for {Deaf} and {Hard} of {Hearing} {Children} on the {Autism} {Spectrum}: {Innovative} {Strategies}}, + volume = {21}, + issn = {1544-6751}, + shorttitle = {Increasing {Social} {Awareness} for {Deaf} and {Hard} of {Hearing} {Children} on the {Autism} {Spectrum}}, + url = {https://eric.ed.gov/?id=EJ1268538}, + abstract = {For families and educators, understanding and working with children who experience a combination of deafness and autism spectrum disorder (ASD) can be challenging. Yet both understanding and work are crucial. For children with ASD to succeed, parents and educators need to understand them and to be able to work together to implement successful educational strategies. These strategies fall into two categories: 1) strategies for improving social interaction, primarily focusing on communication; and 2) strategies for incorporating the students' interests, which may be intense but restricted (American Psychiatric Association, 2013). What this means is that some children can be very focused on a few specific interests so educators can modify strategies to use each child's interests to introduce new knowledge and teach various skills. Educators, must develop a "toolbox" of strategies and frameworks of practice to help students develop supportive relationships and ensure they have a sense of belonging and being a part of an inclusive community. The information in this toolbox will help teachers who have deaf or hard of hearing children with ASD in their classrooms. This article describes four strategies that are inclusive; they work for most children. They include: (1) routine explanation; (2) video modeling; (3) peer-to-peer social interaction; and (4) differentiated instruction.}, + language = {en}, + urldate = {2024-04-03}, + journal = {Odyssey: New Directions in Deaf Education}, + publisher = {Laurent Clerc National Deaf Education Center}, + author = {Graham, Patrick and Neild, Raschelle and Shield, Aaron}, + year = {2020}, + note = {ERIC Number: EJ1268538}, + keywords = {Autism, Comorbidity, Deafness, Generalization, Hearing Impairments, Individualized Instruction, Interaction, Interpersonal Communication, Modeling (Psychology), Peer Relationship, Pervasive Developmental Disorders, Social Development, Student Interests, Students with Disabilities, Teaching Methods, Video Technology}, + pages = {28--33}, +} + +@article{shield_preliminary_2014, + title = {Preliminary {Findings} of {Similarities} and {Differences} in the {Signed} and {Spoken} {Language} of {Children} with {Autism}}, + volume = {35}, + copyright = {Thieme Medical Publishers 333 Seventh Avenue, New York, NY 10001, USA.}, + issn = {0734-0478, 1098-9056}, + url = {http://www.thieme-connect.de/DOI/DOI?10.1055/s-0034-1389103}, + doi = {10.1055/s-0034-1389103}, + abstract = {Approximately 30\% of hearing children with autism spectrum disorder (ASD) do not acquire expressive language, and those who do often show impairments related to their social deficits, using language instrumentally rather than socially, with a poor understanding of pragmatics and a tendency toward repetitive content. Linguistic abnormalities can be clinically useful as diagnostic markers of ASD and as targets for intervention. Studies have begun to document how ASD manifests in children who are deaf for whom signed languages are the primary means of communication. Though the underlying disorder is presumed to be the same in children who are deaf and children who hear, the structures of signed and spoken languages differ in key ways. This article describes similarities and differences between the signed and spoken language acquisition of children on the spectrum. Similarities include echolalia, pronoun avoidance, neologisms, and the existence of minimally verbal children. Possible areas of divergence include pronoun reversal, palm reversal, and facial grammar.}, + language = {en}, + number = {4}, + urldate = {2024-04-03}, + journal = {Seminars in Speech and Language}, + publisher = {Thieme Medical Publishers}, + author = {Shield, Aaron}, + month = nov, + year = {2014}, + keywords = {Sign language, autism, echolalia, language acquisition, pronouns}, + pages = {309--320}, +} + +@inproceedings{polinder_linear_2007, + address = {Porto}, + title = {Linear generator systems for wave energy conversion}, + booktitle = {Proceedings of the 7th {European} {Wave} and {Tidal} {Energy} {Conference}, {Porto}}, + author = {Polinder, Henk and Mueller, Markus and Scuotto, Mattia and Prado, M.}, + month = sep, + year = {2007}, +} + +@article{skrovanek_electrostatic_2024, + title = {Electrostatic {Wave} {Energy} {Conversion}: {A} {Review} of {Devices}, {Theory}, and {Hurdles}}, + issn = {1558-0059}, + shorttitle = {Electrostatic {Wave} {Energy} {Conversion}}, + url = {https://ieeexplore.ieee.org/document/10399859}, + doi = {10.1109/TEC.2024.3354122}, + abstract = {Wave energy is a continuously available resource with tremendous potential. However, utility-scale wave energy harvesting has experienced limited commercial success to date. Many of these shortcomings can be attributed to the fundamental mismatch between the low-frequency nature of ocean waves and the physical principles of conventional electromagnetic generators used in today's WECs, leading to WECs that are large, expensive, and inefficient. As such, a growing number of researchers are investigating electric machinery based on electrostatics as a viable alternative for WEC generators. Not only are electrostatic WECs generally more efficient than their electromagnetic counterparts at low-speed operation, but they also tend to be constructed from abundant, lightweight, and inexpensive materials, which could make WECs economically competitive with other energy sources. This paper first characterizes electrostatic WECs from a theoretical perspective to gain insight into their physical nature and then reviews existing electrostatic WEC technologies, which include variable-capacitance and triboelectric generators. Performance metrics for existing electrostatic WECs are presented. Finally, the key challenges in electrostatic WEC technology are identified along with several strategies to overcome these hurdles in future research.}, + urldate = {2024-03-16}, + journal = {IEEE Transactions on Energy Conversion}, + author = {Skrovanek, David and Ludois, Daniel C.}, + year = {2024}, + note = {Conference Name: IEEE Transactions on Energy Conversion}, + keywords = {Capacitors, Electromagnetic scattering, Electromagnetics, Electrostatics, Generators, Magnetomechanical effects, Power conversion, Wave energy, dielectric elastomers, electrostatics, ocean energy, triboelectricity, variable capacitors}, + pages = {1--11}, +} + +@article{rahman_recent_2020, + title = {Recent {Progress} in {Electrical} {Generators} for {Oceanic} {Wave} {Energy} {Conversion}}, + volume = {8}, + issn = {2169-3536}, + url = {https://ieeexplore.ieee.org/document/9152036}, + doi = {10.1109/ACCESS.2020.3012662}, + abstract = {Oceanic wave energy extraction through electrical generator is one of the most interesting topics in the field of power engineering. Almost all the existing relevant review paper focus on electrical generator with the working principle of electromagnetic induction or piezoelectric or triboelectric effect. In this paper, all the existing types (based on principle of operation) of electrical generator used for wave power harvesting are discussed. This paper not only covers recent progress in electrical power generation by electro-magnetic induction, piezoelectric generator, and electrostatic induction, but also presents critical comparative review as well where suitable use and weakness of each type of generators are discussed. Moreover, the application of advanced magnetic core, winding, and permanent magnets are discussed with extensive explanation which are not focused in the existing reviews. Various new constructional features of the electrical generators such as split translator flux switching, two-point absorber, triangular coil, dual port linear generator, piezoelectric, triboelectric nanogenerator, etc. are highlighted with principles of operation. It also includes emerging human intervened optimization method for determining optimum shape of generator and cooling system which is necessary to prevent demagnetization of the permanent magnet. Finally, the way of supply the generated electrical power form the generator to load/grid is thoroughly described in a separate section that would be obvious for successful operation. The comparison among all types of generators in terms of output voltage, current, scale of power production, power-frequency characteristics, power density, cascading, and approaches are tabulated in this paper.}, + urldate = {2024-03-09}, + journal = {IEEE Access}, + author = {Rahman, Abidur and Farrok, Omar and Islam, Md. Rabiul and Xu, Wei}, + year = {2020}, + note = {Conference Name: IEEE Access}, + keywords = {Electromagnetics, Electrostatic induction generator, Energy conversion, Generators, Magnetic cores, Permanent magnets, Stator windings, linear electrical generator, magnetic material, optimization, permanent magnet, piezoelectric generator, superconductor, wave energy converter}, + pages = {138595--138615}, +} + +@inproceedings{akiror_coefficients_2012, + title = {On the coefficients of core loss formulas for electrical machines}, + issn = {1553-572X}, + url = {https://ieeexplore.ieee.org/document/6388907}, + doi = {10.1109/IECON.2012.6388907}, + abstract = {In this paper the behavior of core loss coefficients is studied using a new method of core loss separation. This method eliminates the assumption of uniform magnetic field distribution in a material especially at high frequencies. With this separation method, the hysteresis and eddy current coefficients are calculated using the original Steinmetz equation and its derivative. The calculated loss from the coefficients of the two formulas is then compared to the loss from the separation. Results and conclusions are also presented.}, + urldate = {2024-03-07}, + booktitle = {{IECON} 2012 - 38th {Annual} {Conference} on {IEEE} {Industrial} {Electronics} {Society}}, + author = {Akiror, Jemimah.C and Pillay, Pragasen}, + month = oct, + year = {2012}, + keywords = {Core loss, Eddy current loss, hysteresis loss}, + pages = {1927--1933}, +} + +@book{hanselman_brushless_2003, + edition = {Second}, + title = {Brushless {Permanent} {Magnet} {Motor} {Design}}, + isbn = {978-1-932133-63-9}, + abstract = {Explaining techniques for magnetic modelling and circuit analysis, this book shows how magnetic circuit analysis applies to motor design. It describes the major aspects of motor operation and design, and develops design equations for radial flux and axial flux motors. It is intended for electrical, electronics and mechanical engineers.}, + language = {en}, + publisher = {Writers' Collective}, + author = {Hanselman, Duane C.}, + year = {2003}, + note = {Google-Books-ID: vlWSQAAACAAJ}, + keywords = {Technology \& Engineering / Electrical, Technology \& Engineering / Electronics / General, Technology \& Engineering / Mechanical, Technology \& Engineering / Power Resources / Electrical}, +} + +@phdthesis{mccabe_electromagnetic_2021, + type = {Thesis}, + title = {Electromagnetic and {Systems} {Design} of a {Permanent} {Magnet} {Synchronous} {Motor} for an {Electric} {Vehicle}}, + copyright = {In Copyright - Educational Use Permitted}, + url = {https://dspace.mit.edu/handle/1721.1/139215}, + abstract = {This project explores the analysis and design of a Surface Permanent Magnet (SPM) motor for an electric racecar application. Magnetic fields and forces are analyzed using simplified magnetic circuits as well as the more accurate magnetic scalar potential and the Maxwell stress tensor. Thermal analysis is performed to determine peak and continuous current capability. Parameter sweeps are used to optimize machine design for a 20 kW hub motor in a student-built high-performance electric vehicle. The optimization maximizes simulated points scored in the Formula Society of Automotive Engineers (FSAE) competition. Performance is estimated with full-vehicle sensitivities linearized around the point of breaking traction.}, + language = {en}, + urldate = {2024-03-07}, + school = {Massachusetts Institute of Technology}, + author = {McCabe, Rebecca G.}, + month = jun, + year = {2021}, + note = {Accepted: 2022-01-14T14:57:12Z}, +} + +@misc{noauthor_tesla_2024, + title = {Tesla {Investor} {Relations}}, + url = {https://ir.tesla.com/}, + abstract = {Tesla's mission is to accelerate the world's transition to sustainable energy. Today, Tesla builds not only all-electric vehicles but also infinitely scalable clean energy generation and storage products.}, + language = {en}, + urldate = {2024-02-17}, + month = jan, + year = {2024}, +} + +@techreport{hull_economic_nodate, + address = {San Francisco, CA}, + title = {The {Economic} {Value} of {Offshore} {Wind} {Power} in {California}}, + url = {https://www.ethree.com/wp-content/uploads/2019/09/2019-08-08_E3-Castle-Wind-Offshore-Wind-Value-Report-FINAL.pdf}, + urldate = {2024-02-17}, + institution = {Energy and Environmental Economics, Inc. and Castle Wind}, + author = {Hull, Sanderson and Sawyerr, Femi and Mullen, Dan and Olson, Arne and Weinstein, Alla and Knop, Christoph and Kienzle, Sebastian and Black, Steve}, +} + +@misc{noauthor_what_nodate, + title = {What are the {UK} power system benefits from deployments of wave and tidal stream generation?}, + url = {https://www.policyandinnovationedinburgh.org/what-are-the-uk-power-system-benefits-from-deployments-of-wave-and-tidal-stream-generation.html}, + abstract = {This new study quantifies the potential power system benefits that the UK stands to gain through the deployment of marine energy technologies (wave and tidal stream) in domestic waters. These system...}, + language = {en}, + urldate = {2024-02-17}, + journal = {POLICY AND INNOVATION GROUP}, +} + +@misc{noauthor_value_nodate, + title = {Value of innovative offshore renewable energy deployment to the {UK}}, + url = {https://www.policyandinnovationedinburgh.org/value-of-innovative-offshore-renewable-energy-deployment-to-the-uk.html}, + abstract = {C. Cochrane, S. Pennock,  H. Jeffrey, Policy and Innovation Group.  Published on: 03/09/2021 This policy paper from the Supergen ORE Hub , and the Policy and Innovation Group  at the University...}, + language = {en}, + urldate = {2024-02-17}, + journal = {POLICY AND INNOVATION GROUP}, +} + +@article{bensalah_electrical_2022, + title = {Electrical {Generators} for {Large} {Wind} {Turbine}: {Trends} and {Challenges}}, + volume = {15}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {Electrical {Generators} for {Large} {Wind} {Turbine}}, + url = {https://www.mdpi.com/1996-1073/15/18/6700}, + doi = {10.3390/en15186700}, + abstract = {This paper presents an overview of the emerging trends in the development of electrical generators for large wind turbines. To describe the developments in the design of electrical generators, it is necessary to look at the conversion system as a whole, and then, the structural and mechanical performances of the drive train need to be considered. Many drive train configurations have been proposed for large wind turbines; they should ensure high reliability, long availability and reduced maintainability. Although most installed wind turbines are geared, directly driven wind turbines with permanent magnet generators have attracted growing interest in the last few years, which has been in parallel to the continuous increase of the per unit turbine power. The aim of this work is to present the recent commercial designs of electrical generators in large wind turbines. Both the strengths and weaknesses of the existing systems are discussed. The most emerging technologies in high-power, low-speed electrical generators are investigated. Furthermore, a comparative analysis of different electrical generator concepts is performed, and the generators are assessed upon a list of criteria such as the mass, cost, and mass-to-torque ratio. Within the framework of these criteria, it may help to determine whether the electrical generator is technically feasible and economically viable for high-power wind turbines. Finally, this review could help to determine suitable generators for use in large and ultra-large wind energy systems.}, + language = {en}, + number = {18}, + urldate = {2024-02-17}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Bensalah, Amina and Barakat, Georges and Amara, Yacine}, + month = jan, + year = {2022}, + note = {Number: 18}, + keywords = {direct drive, gearless, large wind turbine, multi-megawatt generator, permanent magnet, rare-earth materials, wind energy conversion system}, + pages = {6700}, +} + +@techreport{noauthor_co2_nodate, + title = {{CO2} {EOR} {Primer}}, +} + +@article{faedo_optimal_2017, + title = {Optimal control, {MPC} and {MPC}-like algorithms for wave energy systems: {An} overview}, + volume = {1}, + issn = {2468-6018}, + shorttitle = {Optimal control, {MPC} and {MPC}-like algorithms for wave energy systems}, + url = {https://www.sciencedirect.com/science/article/pii/S2468601817301104}, + doi = {10.1016/j.ifacsc.2017.07.001}, + abstract = {Model predictive control (MPC) has achieved considerable success in the process industries, with its ability to deal with linear and nonlinear models, while observing system constraints and considering future behaviour. Given these characteristics, against the backdrop of the energy maximising control problem for Wave Energy Converters (WECs), with physical constraints on system variables and a non-causal optimal control solution it is, perhaps, natural to consider the application of MPC to the WEC problem. However, the WEC energy maximisation problem requires a significant modification of the traditional MPC objective function, resulting in a potentially non-convex optimisation problem. A variety of MPC formulations for WECs have been proposed, with variations in the WEC model, discretisation method, objective function and optimisation algorithm employed. This paper attempts to provide a critical comparison of the various WEC MPC algorithms, while also presenting WEC MPC algorithms within the broader context of other WEC “optimal” control schemes.}, + urldate = {2024-02-10}, + journal = {IFAC Journal of Systems and Control}, + author = {Faedo, Nicolás and Olaya, Sébastien and Ringwood, John V.}, + month = sep, + year = {2017}, + keywords = {Constrained optimisation, Model predictive control, Optimal control, Receding horizon, Wave energy conversion, Wave energy device}, + pages = {37--56}, +} + +@article{nuij_higher-order_2006, + title = {Higher-order sinusoidal input describing functions for the analysis of non-linear systems with harmonic responses}, + volume = {20}, + issn = {0888-3270}, + url = {https://www.sciencedirect.com/science/article/pii/S088832700500083X}, + doi = {10.1016/j.ymssp.2005.04.006}, + abstract = {For high-precision motion systems, modelling and control design specifically oriented at friction effects is instrumental. The sinusoidal input describing function theory represents an approximative mathematical framework for analysing non-linear system behaviour. This theory, however, limits the description of the non-linear system behaviour to a quasi-linear amplitude-dependent relation between sinusoidal excitation and sinusoidal response. In this paper, an extension to higher-order describing functions is realised by introducing the concept of the harmonics generator. The resulting higher-order sinusoidal input describing functions (HOSIDFs) relate the magnitude and phase of the higher harmonics of the periodic response of the system to the magnitude and phase of a sinusoidal excitation. Based on this extension two techniques to measure HOSIDFs are presented. The first technique is FFT based. The second technique is based on IQ (in-phase/quadrature-phase) demodulation. In a simulation, the measurement techniques have been tested by comparing the simulation results to analytically derived results from a known (backlash) non-linearity. In a subsequent practical case study both techniques are used to measure the changes in dynamic behaviour as a function of drive level due to friction in an electric motor. Both methods prove successful for measuring HOSIDFs.}, + number = {8}, + urldate = {2024-02-10}, + journal = {Mechanical Systems and Signal Processing}, + author = {Nuij, P. W. J. M. and Bosgra, O. H. and Steinbuch, M.}, + month = nov, + year = {2006}, + keywords = {Describing function, Frequency domain analysis, Harmonic distortion, Non-linear systems, System identification}, + pages = {1883--1904}, +} + +@inproceedings{gaebele_incorporating_2023, + title = {Incorporating {Empirical} {Nonlinear} {Efficiency} {Into} {Control} {Co}-{Optimization} of a {Real} {World} {Heaving} {Point} {Absorber} {Using} {WecOptTool}}, + url = {https://dx.doi.org/10.1115/OMAE2023-103899}, + doi = {10.1115/OMAE2023-103899}, + abstract = {Abstract. The open-source WecOptTool was developed to make wave energy converter (WEC) control co-design accessible. WecOptTool is based on the pseudo-spectral method which is capable of efficiently dealing with any linear or nonlinear constraints and nonlinear dynamics by solving the WEC optimal control problem in the time domain using a gradient based optimization algorithm. This work1 presents a control co-optimization study of the AquaHarmonics Inc. heaving point absorber WEC sized for ocean deployment to solve practical industry design problems. Components such as the specific type of generator, the hull shape, and the displaced volume are pre-determined. We co-optimize the WEC’s mass versus mooring line pretension in conjunction with the controller. The optimization is subject to the power-take-off (PTO) dynamics and the rated constraints of the components. In particular, the continuous torque rating is implemented as an explicit constraint, a novel approach for WEC optimization. The PTO dynamics are incorporated into the optimization algorithm via a combination of first principle methods (linear drivetrain model) and empirical efficiency maps (electrical generator) represented as a power loss map. This is a practical method applicable to a variety of PTO architectures and transferable to other WECs. A discussion between using an efficiency coefficient versus a power loss map and their implication for the optimization method is presented. This application of WecOptTool represents a real world WEC by combining simplified models with empirical efficiency data. The WEC, as a dynamically coupled, oscillatory system, requires consideration of the time trajectory dependent power loss for optimizing the average electrical power. This objective function, the modelling approach, and the realistic loss terms makes the common practice of artificially penalizing the reactive power needless.}, + language = {en}, + urldate = {2024-02-06}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Gaebele, Daniel T. and Michelén Ströfer, Carlos A. and Devin, Michael C. and Grasberger, Jeff T. and Coe, Ryan G. and Bacelli, Giorgio}, + month = sep, + year = {2023}, +} + +@article{bacelli_geometric_2013, + title = {A geometric tool for the analysis of position and force constraints in wave energy converters}, + volume = {65}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801813001200}, + doi = {10.1016/j.oceaneng.2013.03.011}, + abstract = {Most wave energy devices are subject to finite constraints on both the power take-off (PTO) stroke length and the maximum force that the PTO can tolerate. It is also often the case that greater stroke lengths can reduce the maximum force in the PTO and vice versa. Ultimately, some informed choice of PTO constraints must be made in order to ensure that PTO constraints are not violated and that the trade-off between position and force constraints is made in such as way that maximum energy is captured by the converter. This paper presents a tool to allow device developers to check the satisfaction of constraints for a given hydrodynamic model and set of sea conditions and, where constraints are not satisfied, shows how to relax the constraints to maximize energy capture. The tool is algebraic, requiring no simulation and the results are presented through intuitive geometrical constructs. Sample application results are presented for single- and two-body wave energy systems.}, + urldate = {2024-01-29}, + journal = {Ocean Engineering}, + author = {Bacelli, Giorgio and Ringwood, John V.}, + month = jun, + year = {2013}, + keywords = {Constraints, Discretization, Power take-off, Wave energy}, + pages = {10--18}, +} + +@article{zou_optimal_2017, + title = {Optimal control of wave energy converters}, + volume = {103}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148116310059}, + doi = {10.1016/j.renene.2016.11.036}, + abstract = {Optimal control theory is applied to compute control for a single-degree-of-freedom heave wave energy converter. The goal is to maximize the energy extraction per cycle. Both constrained and unconstrained optimal control problems are presented. Both periodic and non-periodic excitation forces are considered. In contrast to prior work, it is shown that for this non-autonomous system, the optimal control, in general, includes both singular arc and bang-bang modes. Conditions that determine the switching times to/from the singular arc are derived. Simulation results show that the proposed optimal control solution matches the solution obtained using the complex conjugate control. A generic linear dynamic model is used in the simulations. The main advantage of the proposed control is that it finds the optimal control without the need for wave prediction; it only requires the knowledge of the excitation force and its derivatives at the current time.}, + urldate = {2024-01-29}, + journal = {Renewable Energy}, + author = {Zou, Shangyan and Abdelkhalik, Ossama and Robinett, Rush and Bacelli, Giorgio and Wilson, David}, + month = apr, + year = {2017}, + keywords = {Bang-bang control, Optimal control, Singular arc control, Wave energy conversion}, + pages = {217--225}, +} + +@article{sun_stochastic_2019, + title = {Stochastic control of wave energy converters for optimal power absorption with constrained control force}, + volume = {87}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118718303122}, + doi = {10.1016/j.apor.2019.03.002}, + abstract = {This paper presents an analytical solution derived for optimal control of the power take-off of a single-degree of freedom heave point absorber with constraints on the control force. The optimal control law turns out to be noncausal with a functional dependence on future velocities. To handle this problem, an algorithm for predicting future velocities is derived. Based on the solution the mean (time-averaged) absorbed power in a given sea-state is calculated. The performance of the indicated controller in terms of the mean absorbed power is close to the optimal value obtained by nonlinear programming and better than a controller with feedback from the present displacement, velocity and acceleration, and with optimized gain factors.}, + urldate = {2024-01-29}, + journal = {Applied Ocean Research}, + author = {Sun, Tao and Nielsen, Søren R. K.}, + month = jun, + year = {2019}, + keywords = {Actuator force constraints, Heave point absorber, Optimal power take-off, Wave energy}, + pages = {130--141}, +} + +@article{sichani_constrained_2014, + title = {Constrained optimal stochastic control of non-linear wave energy point absorbers}, + volume = {47}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118714000546}, + doi = {10.1016/j.apor.2014.06.005}, + abstract = {The paper deals with the stochastic optimal control of a wave energy point absorber with strong nonlinear buoyancy forces using the reactive force from the electric generator on the absorber as control force. The considered point absorber has only one degree of freedom, heave motion, which is used to extract energy. Constrains are enforced on the control force to prevent large structural stresses in the floater at specific hot spots with the risk of inducing fatigue damage, or because the demanded control force cannot be supplied by the actuator system due to saturation. Further, constraints are enforced on the motion of the floater to prevent it from hitting the bottom of the sea or to make unacceptable jumps out of the water. The applied control law, which is of the feedback type with feedback from the displacement, velocity, and acceleration of the floater, contains two unprovided gain parameters, which are chosen so the mean (expected value) of the power outtake in the stationary state is optimized. In order to ensure accuracy of the results for each configuration of the controller Monte Carlo simulations have been carried out for various sea-states and the final results have been presented in the paper. The effect of nonlinear buoyancy force – in comparison to linear buoyancy force – and constraints of the controller on the power outtake of the device have been studied in details and supported by numerical simulations.}, + urldate = {2024-01-29}, + journal = {Applied Ocean Research}, + author = {Sichani, M. T. and Chen, J. B. and Kramer, M. M. and Nielsen, S. R. K.}, + month = aug, + year = {2014}, + keywords = {Constrained optimal stochastic control, Irregular sea state, Nonlinear buoyancy force, Wave energy point converter}, + pages = {255--269}, +} + +@article{babarit_numerical_2012, + title = {Numerical benchmarking study of a selection of wave energy converters}, + volume = {41}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148111005672}, + doi = {10.1016/j.renene.2011.10.002}, + abstract = {The aim of this study is to estimate the mean annual power absorption of a selection of eight Wave Energy Converters (WECs) with different working principles. Based on these estimates a set of power performance measures that can be related to costs are derived. These are the absorbed energy per characteristic mass [kWh/kg], per characteristic surface area [MWh/m2], and per root mean square of Power Take Off (PTO) force [kWh/N]. The methodology relies on numerical modelling. For each device, a numerical Wave-to-Wire (W2W) model is built based on the equations of motion. Physical effects are modelled according to the state-of-the-art within hydrodynamic modelling practise. Then, the W2W models are used to calculate the power matrices of each device and the mean annual power absorption at five different representative wave sites along the European Coast, at which the mean level of wave power resource ranges between 15 and 88 kW per metre of wave front. Uncertainties are discussed and estimated for each device. Computed power matrices and results for the mean annual power absorption are assembled in a summary sheet per device. Comparisons of the selected devices show that, despite very different working principles and dimensions, power performance measures vary much less than the mean annual power absorption. With the chosen units, these measures are all shown to be of the order of 1.}, + urldate = {2024-01-29}, + journal = {Renewable Energy}, + author = {Babarit, A. and Hals, J. and Muliawan, M. J. and Kurniawan, A. and Moan, T. and Krokstad, J.}, + month = may, + year = {2012}, + keywords = {Comparison, Mean annual power, Power matrix, Wave energy converter}, + pages = {44--63}, +} + +@article{pena-sanchez_control_2022, + series = {9th {IFAC} {Symposium} on {Mechatronic} {Systems} {MECHATRONICS} 2022}, + title = {Control co-design of power take-off parameters for wave energy systems}, + volume = {55}, + issn = {2405-8963}, + url = {https://www.sciencedirect.com/science/article/pii/S2405896322025848}, + doi = {10.1016/j.ifacol.2022.10.531}, + abstract = {A key component of wave energy converters (WECs), which determines the technical and economic performance of WECs, is the power take-off (PTO) system. This WEC subsystem converts the hydrodynamic excitation of the WEC into useful mechanical and, typically, electrical energy. It is well known that WEC control systems have the capability to significantly enhance the performance of WECs, but are limited in scope by the physical PTO displacement and force constraints. A variety of WEC control algorithms have the capacity to include the PTO constraints within the (constrained) optimal control formulation, delivering performance which takes maximum advantage of the available operational space, but avoiding exceedance of device/PTO specifications. However, little consideration is given to the interplay between the constraint levels and the maximum achievable performance. This paper examines, from an economic perspective, the trade-off between energy receipts and the capital cost of force and displacement constraints in a typical heaving point absorber WEC.}, + number = {27}, + urldate = {2024-01-27}, + journal = {IFAC-PapersOnLine}, + author = {Peña-Sanchez, Yerai and García-Violini, Demián and Ringwood, John V.}, + month = jan, + year = {2022}, + keywords = {Power take-off, constraints, control co-design, energy maximisation, wave energy}, + pages = {311--316}, +} + +@article{de_la_torre-castro_combined_2023, + title = {Combined impact of power take-off capping and of wave resource description on wave energy converter performance}, + volume = {134}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S014111872300038X}, + doi = {10.1016/j.apor.2023.103494}, + abstract = {Wave energy converters (WECs) energy production estimates are key metrics for performance predictions. This study compares four methods for energy production assessment: power matrix, interpolated power matrix, capture length matrix, and a reference method based on the exact omnidirectional spectra for every sea state. Two deployment sites are considered and their wave resource is derived from hindcast databases. The WEC chosen for this study is a two-body self-referenced heaving device characterised using a boundary element method (BEM) numerical model run in time-domain and accounting for some non-linearities. The model also includes power take-off capping, in terms of power capacity and a force cap, independently. A novel metric is introduced to assess the shape similarity between two spectra and it is used to assess the impact of approximating raw spectra with standard ones on energy production estimates. The study shows that the power take-off capping approaches and values and the way the exact resource spectra are approximated have a significant impact WEC energy estimation methods accuracy. Indeed, relative differences in yearly production estimates with respect to the benchmark method vary from 2.4\% to 8.3\% across capping values and estimation methods. It also shows that there is little difference in yearly averaged energy production estimates between the different “matrix based” methods. These differences are of the order of tens of percent for a given power take-off capping configuration and a given site.}, + urldate = {2023-12-12}, + journal = {Applied Ocean Research}, + author = {de la Torre-Castro, L. M. and Pascal, R. C. R. and Perignon, Y. and Babarit, A. and Payne, G. S.}, + month = may, + year = {2023}, + keywords = {Energy production estimates, Power take-off capping, Wave energy, Wave resource characterisation}, + pages = {103494}, +} + +@article{chittick_asymmetric_2009, + title = {An asymmetric suboptimization approach to aerostructural optimization}, + volume = {10}, + issn = {1573-2924}, + url = {https://doi.org/10.1007/s11081-008-9046-2}, + doi = {10.1007/s11081-008-9046-2}, + abstract = {An asymmetric suboptimization method for performing multidisciplinary design optimization is introduced. The objective of the proposed method is to improve the overall efficiency of aerostructural optimization, by simplifying the system-level problem, and thereby reducing the number of calls to a potentially costly aerodynamics solver. To guide a gradient-based optimization algorithm, an extension of the coupled sensitivity equations is developed to include post-optimality information from the structural suboptimization. The optimization of an aircraft wing is performed using linear aerodynamic and structural analyses, and a thorough performance comparison is made between the new approach and the conventional multidisciplinary feasible method. The asymmetric suboptimization method is found to be the more efficient approach when it adequately simplifies the system-level problem, or when there is a large enough discrepancy between disciplinary solution times.}, + language = {en}, + number = {1}, + urldate = {2023-12-04}, + journal = {Optimization and Engineering}, + author = {Chittick, Ian R. and Martins, Joaquim R. R. A.}, + month = mar, + year = {2009}, + keywords = {Asymmetric suboptimization, Coupled post-optimality sensitivity analysis, Multidisciplinary design optimization}, + pages = {133--152}, +} + +@inproceedings{sundarrajan_towards_2021, + title = {Towards a {Fair} {Comparison} between the {Nested} and {Simultaneous} {Control} {Co}-{Design} {Methods} using an {Active} {Suspension} {Case} {Study}}, + issn = {2378-5861}, + url = {https://ieeexplore.ieee.org/abstract/document/9482687}, + doi = {10.23919/ACC50511.2021.9482687}, + abstract = {This paper tackles perhaps the two most common control co-design coordination strategies: simultaneous analysis and design and the nested control problem formulation. Many practical insights into the two strategies are presented using the literature and comprehensive numerical results from a detailed and challenging CCD problem of an active vehicle suspension. The study conducted attempts to provide a fair comparison and discussion between the control co-design coordination implementations. The results indicate a substantial reduction in computational costs over the existing implementations and conclusions on method selection contrary to common assumptions in the literature. However, additional work is needed to provide a robust set of CCD implementation guidelines.}, + urldate = {2023-12-04}, + booktitle = {2021 {American} {Control} {Conference} ({ACC})}, + author = {Sundarrajan, Athul K. and Herber, Daniel R.}, + month = may, + year = {2021}, + pages = {358--365}, +} + +@article{bacelli_numerical_2015, + title = {Numerical {Optimal} {Control} of {Wave} {Energy} {Converters}}, + volume = {6}, + issn = {1949-3037}, + url = {https://ieeexplore.ieee.org/abstract/document/6987295}, + doi = {10.1109/TSTE.2014.2371536}, + abstract = {Energy maximizing control for wave energy converters (WECs) is a nonstandard optimal control problem. While the constrained optimal control problem for WECs has been addressed by model-predictive control strategies, such strategies need to employ cost function modifications due to convexity problems and the algorithms are computationally complex, making real-time implementation difficult. The recently developed family of direct transcription methods offer a promising alternative, since they are computationally efficient and a convex problem results. Moreover, constraints on both the device displacement and velocity, and power take off force, are easily incorporated. Both single-body and multibody device models can be used, as well as arrays of single-body or multibody devices.}, + number = {2}, + urldate = {2023-11-27}, + journal = {IEEE Transactions on Sustainable Energy}, + author = {Bacelli, Giorgio and Ringwood, John V.}, + month = apr, + year = {2015}, + note = {Conference Name: IEEE Transactions on Sustainable Energy}, + pages = {294--302}, +} + +@article{coe_maybe_2021, + title = {Maybe less is more: {Considering} capacity factor, saturation, variability, and filtering effects of wave energy devices}, + volume = {291}, + issn = {0306-2619}, + shorttitle = {Maybe less is more}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261921002701}, + doi = {10.1016/j.apenergy.2021.116763}, + abstract = {While a great deal of research has been performed to quantify and characterize the wave energy resource, there are still open questions about how a wave energy developer should use this wave resource information to design a wave energy converter device to suit a specific environment or, alternatively, to assess potential deployment locations. It is natural to focus first on the impressive magnitudes of power available from ocean waves, and to be drawn to locations where mean power levels are highest. However, a number of additional factors such as intermittency and capacity factor may be influential in determining economic viability of a wave energy converter, and should therefore be considered at the resource level, so that these factors can influence device design decisions. This study examines a set of wave resource metrics aimed towards this end of bettering accounting for variability in wave energy converter design. The results show distinct regional trends that may factor into project siting and wave energy converter design. Although a definitive solution for the optimal size of a wave energy converter is beyond the reaches of this study, the evidence presented does support the idea that smaller devices with lower power ratings may merit closer consideration.}, + urldate = {2023-11-27}, + journal = {Applied Energy}, + author = {Coe, Ryan G. and Ahn, Seongho and Neary, Vincent S. and Kobos, Peter H. and Bacelli, Giorgio}, + month = jun, + year = {2021}, + keywords = {Practical resource, Wave energy converter (WEC), Wave power resource}, + pages = {116763}, +} + +@article{grossmann_systematic_2013, + title = {Systematic modeling of discrete-continuous optimization models through generalized disjunctive programming}, + volume = {59}, + copyright = {Copyright © 2013 American Institute of Chemical Engineers}, + issn = {1547-5905}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/aic.14088}, + doi = {10.1002/aic.14088}, + abstract = {Discrete-continuous optimization problems are commonly modeled in algebraic form as mixed-integer linear or nonlinear programming models. Since these models can be formulated in different ways, leading either to solvable or nonsolvable problems, there is a need for a systematic modeling framework that provides a fundamental understanding on the nature of these models. This work presents a modeling framework, generalized disjunctive programming (GDP), which represents problems in terms of Boolean and continuous variables, allowing the representation of constraints as algebraic equations, disjunctions and logic propositions. An overview is provided of major research results that have emerged in this area. Basic concepts are emphasized as well as the major classes of formulations that can be derived. These are illustrated with a number of examples in the area of process systems engineering. As will be shown, GDP provides a structured way for systematically deriving mixed-integer optimization models that exhibit strong continuous relaxations, which often translates into shorter computational times. © 2013 American Institute of Chemical Engineers AIChE J, 59: 3276–3295, 2013}, + language = {en}, + number = {9}, + urldate = {2023-11-27}, + journal = {AIChE Journal}, + author = {Grossmann, Ignacio E. and Trespalacios, Francisco}, + year = {2013}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/aic.14088}, + keywords = {logic-based optimization, mixed-integer programming, optimization}, + pages = {3276--3295}, +} + +@misc{sundarrajan_open-loop_2023, + title = {Open-{Loop} {Control} {Co}-{Design} of {Semisubmersible} {Floating} {Offshore} {Wind} {Turbines} using {Linear} {Parameter}-{Varying} {Models}}, + url = {http://arxiv.org/abs/2310.13647}, + doi = {10.48550/arXiv.2310.13647}, + abstract = {This paper discusses a framework to design elements of the plant and control systems for floating offshore wind turbines in an integrated manner using linear parameter-varying models. Multiple linearized models derived from aeroelastic simulation software in different operating regions characterized by the incoming wind speed are combined to construct an approximate low-fidelity model of the system. The combined model is then used to generate open-loop, optimal control trajectories as part of a nested control co-design strategy that explores the system's power production and stability using the platform pitch tilt as a proxy in the context of crucial plant and control design decisions. The radial distance between the central and outer columns and the diameter of the outer columns of the semisubmersible platform are the plant design variables. The platform stability and power production are studied for different plant design decisions. The effect of plant decisions on subsequent power production and stability response of the floating wind turbine is quantified in terms of the levelized cost of energy. The results show that the inner-loop constraints and the plant design decisions affect the turbine's power and, subsequently, the cost of the system.}, + urldate = {2023-11-01}, + publisher = {arXiv}, + author = {Sundarrajan, Athul Krishna and Lee, Yong Hoon and Allison, James T. and Zalkind, Daniel and Herber, Daniel}, + month = oct, + year = {2023}, + note = {arXiv:2310.13647 [cs, eess]}, + keywords = {Electrical Engineering and Systems Science - Systems and Control}, +} + +@article{herber_advances_2017, + title = {Advances in combined architecture, plant, and control design}, + url = {https://www.ideals.illinois.edu/items/105359}, + urldate = {2023-11-01}, + author = {Herber, Daniel Ronald}, + year = {2017}, +} + +@article{herber_nested_2018, + title = {Nested and {Simultaneous} {Solution} {Strategies} for {General} {Combined} {Plant} and {Control} {Design} {Problems}}, + volume = {141}, + issn = {1050-0472}, + url = {https://doi.org/10.1115/1.4040705}, + doi = {10.1115/1.4040705}, + abstract = {In this paper, general combined plant and control design or co-design problems are examined. The previous work in co-design theory imposed restrictions on the type of problems that could be posed. This paper lifts many of those restrictions. The problem formulations and optimality conditions for both the simultaneous and nested solution strategies are given. Due to a number of challenges associated with the optimality conditions, practical solution considerations are discussed with a focus on the motivating reasons for using direct transcription (DT) in co-design. This paper highlights some of the key concepts in general co-design including general coupling, the differences between the feasible regions for each strategy, general boundary conditions, inequality path constraints, system-level objectives, and the complexity of the closed-form solutions. Three co-design test problems are provided. A number of research directions are proposed to further co-design theory including tailored solution methods for reducing total computational expense, better comparisons between the two solution strategies, and more realistic test problems.}, + number = {011402}, + urldate = {2023-10-30}, + journal = {Journal of Mechanical Design}, + author = {Herber, Daniel R. and Allison, James T.}, + month = oct, + year = {2018}, +} + +@article{abbas_control_2024, + title = {Control co-design of a floating offshore wind turbine}, + volume = {353}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261923014009}, + doi = {10.1016/j.apenergy.2023.122036}, + abstract = {Several control co-design (CCD) optimizations of floating offshore wind turbines are presented in this work using the newly introduced Wind Energy with Integrated Servo-Control (WEIS) framework. Three methods for parameterizing the primary tuning inputs to the Reference Open-Source Controller are presented and optimized, including a sensitivity-margin constrained controller. WEIS, a detailed, open-source floating offshore wind turbine design optimization tool is then used to conduct CCD optimizations on the International Energy Agency (IEA) 15MW wind turbine on the University of Maine VolturnUS-S semisubmersible platform. The results from optimizations are shown to reduce the levelized cost of energy (LCOE) by approximately 1\% and 4\% when optimizing the tower and platform, respectively. It is also found that the coupling between the tower and control system parameters is weaker than the coupling between the floating system and control system parameters, showing that CCD may not be advantageous for certain problems. Finally, a subset of operational design load cases is run to verify the optimized controller and turbine models.}, + urldate = {2023-10-30}, + journal = {Applied Energy}, + author = {Abbas, Nikhar J. and Jasa, John and Zalkind, Daniel S. and Wright, Alan and Pao, Lucy}, + month = jan, + year = {2024}, + keywords = {Control systems, Floating wind turbines, Multidisciplinary design, Optimization}, + pages = {122036}, +} + +@article{mowers_evaluation_2021, + title = {An evaluation of electricity system technology competitiveness metrics: {The} case for profitability}, + volume = {34}, + issn = {1040-6190}, + shorttitle = {An evaluation of electricity system technology competitiveness metrics}, + url = {https://www.sciencedirect.com/science/article/pii/S1040619021000221}, + doi = {10.1016/j.tej.2021.106931}, + abstract = {In this work we develop standardized functional forms for electricity technology competitiveness metrics and show how the mathematical relationship between value and cost can affect the robustness of the metric. We make the case to replace established metrics with economic profitability metrics – including a new profitability-based adjustment to LCOE. These profitability metrics are shown to be more robust for evaluating technology competitiveness by keeping comparisons on an equivalent monetary basis.}, + number = {4}, + urldate = {2023-10-30}, + journal = {The Electricity Journal}, + author = {Mowers, Matthew and Mai, Trieu}, + month = may, + year = {2021}, + keywords = {Competitiveness metrics, Electricity technology competitiveness, Levelized cost of electricity, Profitability, Renewable energy, System value}, + pages = {106931}, +} + +@phdthesis{andre_sustainable_2022, + title = {Sustainable {Design} of {Electric} {Vertical} {Take}-{Off} and {Landing} {Aircraft} for {Urban} {Air} {Mobility}}, + url = {https://mediatum.ub.tum.de/1618545}, + abstract = {The thesis assesses the environmental impact of electric vertical take-off and landing (eVTOL) aircraft. It develops a methodology for the integrated conceptual design and life cycle assessment of eVTOL that facilitates evaluating different configurations, electrochemical energy carriers, and scenarios. It is shown that eVTOLs can provide a sustainable transportation mode under appropriate circumstances. Sensitivity analyses, case studies, and a novel regression-based conceptual design approach analyze those circumstances and discuss implications of uncertainties.}, + urldate = {2023-10-07}, + school = {Technische Universität München}, + author = {André, Nicolas}, + year = {2022}, +} + +@article{noauthor_reflection_2014, + title = {Reflection of oblique ocean water waves by a vertical porous structure placed on a multi-step impermeable bottom}, + volume = {47}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118714000595}, + doi = {10.1016/j.apor.2014.07.001}, + abstract = {Based on linear water wave theory, wave reflection by a vertical porous structure placed on an elevated impermeable seabed, assumed to consist of a nu…}, + language = {en-US}, + urldate = {2023-10-07}, + journal = {Applied Ocean Research}, + publisher = {Elsevier}, + month = aug, + year = {2014}, + pages = {373--385}, +} + +@article{bacelli_control_2011, + series = {18th {IFAC} {World} {Congress}}, + title = {A control system for a self-reacting point absorber wave energy converter subject to constraints}, + volume = {44}, + issn = {1474-6670}, + url = {https://www.sciencedirect.com/science/article/pii/S1474667016454443}, + doi = {10.3182/20110828-6-IT-1002.03694}, + abstract = {The problem of the maximization of the energy produced by a self reacting point absorber subject to motion restriction is addressed. The main objective is to design a control system suitable for real-time implementation. The method presented for the solution of the optimization problem is based on the approximation of the motion of the device and of the force exerted by the power take off unit by means of a linear combination of basis functions. The result is that the optimal control problem is reformulated as a non linear program where the properties of the cost function and of the constraint are affected by the choice of the basis functions. An example is described where the motion and the force are approximated using Fourier series; an optimization algorithm for the solution of the non linear program is also presented. The control system is implemented and simulated using a real sea profile measured by a waverider buoy.}, + number = {1}, + urldate = {2023-09-13}, + journal = {IFAC Proceedings Volumes}, + author = {Bacelli, Giorgio and Ringwood, John V. and Gilloteaux, Jean-Christophe}, + month = jan, + year = {2011}, + pages = {11387--11392}, +} + +@article{fukui_impedance_2021, + title = {Impedance {Control} {Considering} {Velocity} {Saturation} of a {Series} {Elasticity} {System} with a {Motor}}, + volume = {33}, + doi = {10.20965/jrm.2021.p0833}, + abstract = {Human-machine cooperative robots are required to drive their arms with low impedance and high torque. As a compact mechanism that generates a large torque and has low impedance characteristics, the series elastic drive system, in which an elastic element is inserted between the motor and driving unit, has been proposed. In this paper, we propose a method of applying impedance control to a series elasticity system with a torque-compensating motor that uses a torsion bar as an elastic body that enables its use under high loads. The stability of the system was verified via simulation and experiment by considering the allowable speed and maximum torque of the motor. The experimental results from the conventional system and the proposed system were compared. The proposed system was confirmed to be superior to the conventional system in terms of both stability and tracking performance. Consequently, the effectiveness of our proposed system was confirmed.}, + number = {4}, + journal = {Journal of Robotics and Mechatronics}, + author = {Fukui, Ren and Kusakabe, Yasuhito and Ikeura, Ryojun and Hayakawa, Soichiro}, + year = {2021}, + keywords = {human-robot cooperation, impedance control, robot arm, series elasticity system, velocity saturation}, + pages = {833--842}, +} + +@article{flower_describing-function_1980, + title = {Describing-function method for estimating the performance of a dynamic system having nonlinear-power take-off, with application to wave-power conversion}, + volume = {20}, + issn = {0196-8904}, + url = {https://www.sciencedirect.com/science/article/pii/0196890480900175}, + doi = {10.1016/0196-8904(80)90017-5}, + abstract = {This work reports part of a programme aimed at stimulating the use of control engineering methods and techniques in the wave-power arena. Here we use the Describing-Function method to estimate the performance of a dynamical energy-conversion system (a second-order system in this particular case) with nonlinear damping. The Describing-Function is used to model the nonlinearity, and the system is conceptually re-arranged to appear in closed-loop form; this arrangement is particularly convenient for the application of a graphical method of solution. By this means the motion and the mean-rate of energy conversion of the system can be rapidly evaluated. The method is primarily directed towards solving problems of wave-power conversion by nonlinear devices.}, + number = {2}, + urldate = {2023-08-27}, + journal = {Energy Conversion and Management}, + author = {Flower, J. O. and Knott, G. F.}, + month = jan, + year = {1980}, + keywords = {Describing-Function, Nonlinear, Power conversion, Wave-power}, + pages = {127--134}, +} + +@inproceedings{herber_wave_2014, + title = {Wave {Energy} {Extraction} {Maximization} in {Irregular} {Ocean} {Waves} {Using} {Pseudospectral} {Methods}}, + url = {https://dx.doi.org/10.1115/DETC2013-12600}, + doi = {10.1115/DETC2013-12600}, + abstract = {Energy extraction from ocean waves and conversion to electrical energy is a promising form of renewable energy, yet achieving economic viability of wave energy converters (WECs) has proven challenging. In this article, the design of a heaving cylinder WEC will be explored. The optimal plant (i.e. draft and radius) design space with respect to the design’s optimal control (i.e. power take-off trajectory) for maximum energy production is characterized. Irregular waves based on the Bretschneider wave spectrum are considered. The optimization problem was solved using a pseudospectral method, a direct optimal control approach that can incorporate practical design constraints, such as power flow, actuation force, and slamming. The results provide early-stage guidelines for WEC design. Results show the resonance frequency required for optimal energy production with a regular wave is quite different than the resonance frequency found for irregular waves; specifically, it is much higher.}, + language = {en}, + urldate = {2023-08-27}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Herber, Daniel R. and Allison, James T.}, + month = feb, + year = {2014}, +} + +@article{tom_pseudo-spectral_2017, + title = {Pseudo-spectral control of a novel oscillating surge wave energy converter in regular waves for power optimization including load reduction}, + volume = {137}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801817301403}, + doi = {10.1016/j.oceaneng.2017.03.027}, + abstract = {The aim of this paper is to describe a procedure to maximize the power-to-load ratio of a novel wave energy converter (WEC) that combines an oscillating surge wave energy converter with variable structural components. The control of the power-take-off torque will be on a wave-to-wave timescale, whereas the structure will be controlled statically such that the geometry remains the same throughout the wave period. Linear hydrodynamic theory is used to calculate the upper and lower bounds for the time-averaged absorbed power and surge foundation loads while assuming that the WEC motion remains sinusoidal. Previous work using pseudo-spectral techniques to solve the optimal control problem focused solely on maximizing absorbed energy. This work extends the optimal control problem to include a measure of the surge foundation force in the optimization. The objective function includes two competing terms that force the optimizer to maximize power capture while minimizing structural loads. A penalty weight was included with the surge foundation force that allows control of the optimizer performance based on whether emphasis should be placed on power absorption or load shedding. Results from pseudo-spectral optimal control indicate that a unit reduction in time-averaged power can be accompanied by a greater reduction in surge-foundation force.}, + urldate = {2023-08-27}, + journal = {Ocean Engineering}, + author = {Tom, N. M. and Yu, Y. H. and Wright, A. D. and Lawson, M. J.}, + month = jun, + year = {2017}, + keywords = {Convex optimization, Load shedding, Oscillating surge wave energy converter, Psuedo-spectral control, Variable structures}, + pages = {352--366}, +} + +@article{sepulveda_design_2021, + title = {The design space for long-duration energy storage in decarbonized power systems}, + volume = {6}, + copyright = {2021 The Author(s), under exclusive licence to Springer Nature Limited}, + issn = {2058-7546}, + url = {https://www.nature.com/articles/s41560-021-00796-8}, + doi = {10.1038/s41560-021-00796-8}, + abstract = {Long-duration energy storage (LDES) is a potential solution to intermittency in renewable energy generation. In this study we have evaluated the role of LDES in decarbonized electricity systems and identified the cost and efficiency performance necessary for LDES to substantially reduce electricity costs and displace firm low-carbon generation. Our findings show that energy storage capacity cost and discharge efficiency are the most important performance parameters. Charge/discharge capacity cost and charge efficiency play secondary roles. Energy capacity costs must be ≤US\$20 kWh–1 to reduce electricity costs by ≥10\%. With current electricity demand profiles, energy capacity costs must be ≤US\$1 kWh–1 to fully displace all modelled firm low-carbon generation technologies. Electrification of end uses in a northern latitude context makes full displacement of firm generation more challenging and requires performance combinations unlikely to be feasible with known LDES technologies. Finally, LDES systems with the greatest impact on electricity cost and firm generation have storage durations exceeding 100 h.}, + language = {en}, + number = {5}, + urldate = {2023-05-22}, + journal = {Nature Energy}, + publisher = {Nature Publishing Group}, + author = {Sepulveda, Nestor A. and Jenkins, Jesse D. and Edington, Aurora and Mallapragada, Dharik S. and Lester, Richard K.}, + month = may, + year = {2021}, + note = {Number: 5}, + keywords = {Climate-change mitigation, Energy and society, Energy economics, Energy policy, Energy science and technology}, + pages = {506--516}, +} + +@article{schwartz_value_2023, + title = {The value of fusion energy to a decarbonized {United} {States} electric grid}, + volume = {7}, + issn = {2542-4785, 2542-4351}, + url = {https://www.cell.com/joule/abstract/S2542-4351(23)00075-2}, + doi = {10.1016/j.joule.2023.02.006}, + language = {English}, + number = {4}, + urldate = {2023-05-22}, + journal = {Joule}, + publisher = {Elsevier}, + author = {Schwartz, Jacob A. and Ricks, Wilson and Kolemen, Egemen and Jenkins, Jesse D.}, + month = apr, + year = {2023}, + keywords = {capacity expansion, macro-energy systems, nuclear fusion, technology assessment, tokamaks}, + pages = {675--699}, +} + +@inproceedings{mccabe_system_2023, + address = {Boston, MA, USA}, + title = {System {Level} {Techno}-{Economic} and {Environmental} {Design} {Optimization} for {Ocean} {Wave} {Energy}}, + author = {McCabe, Rebecca and Dietrich, Madison and Liu, Alan and Haji, Maha}, + month = aug, + year = {2023}, +} + +@article{gray_openmdao_2019, + title = {{OpenMDAO}: an open-source framework for multidisciplinary design, analysis, and optimization}, + volume = {59}, + issn = {1615-1488}, + shorttitle = {{OpenMDAO}}, + url = {https://doi.org/10.1007/s00158-019-02211-z}, + doi = {10.1007/s00158-019-02211-z}, + abstract = {Multidisciplinary design optimization (MDO) is concerned with solving design problems involving coupled numerical models of complex engineering systems. While various MDO software frameworks exist, none of them take full advantage of state-of-the-art algorithms to solve coupled models efficiently. Furthermore, there is a need to facilitate the computation of the derivatives of these coupled models for use with gradient-based optimization algorithms to enable design with respect to large numbers of variables. In this paper, we present the theory and architecture of OpenMDAO, an open-source MDO framework that uses Newton-type algorithms to solve coupled systems and exploits problem structure through new hierarchical strategies to achieve high computational efficiency. OpenMDAO also provides a framework for computing coupled derivatives efficiently and in a way that exploits problem sparsity. We demonstrate the framework’s efficiency by benchmarking scalable test problems. We also summarize a number of OpenMDAO applications previously reported in the literature, which include trajectory optimization, wing design, and structural topology optimization, demonstrating that the framework is effective in both coupling existing models and developing new multidisciplinary models from the ground up. Given the potential of the OpenMDAO framework, we expect the number of users and developers to continue growing, enabling even more diverse applications in engineering analysis and design.}, + language = {en}, + number = {4}, + urldate = {2023-03-01}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Gray, Justin and Hwang, John and Martins, Joaquim and Moore, Kenneth and Naylor, Bret}, + year = {2019}, + pages = {1075--1104}, +} + +@techreport{bhatnagar_grid_2021, + address = {Richland, WA (United States)}, + title = {Grid {Value} {Proposition} of {Marine} {Energy}}, + url = {https://www.osti.gov/biblio/1833512}, + doi = {10.2172/1833512}, + abstract = {Marine energy technologies convert the energy of ocean waves, and tidal, river, and ocean currents into electricity and other forms of usable energy. The marine energy resource potential in the United States is significant and geographically diverse, with a study commissioned by the U.S. Department of Energy estimating that the nation’s annual marine energy potential is approximately 2,300 TWh/year across the 50 states, or greater than 57 percent of U.S. electricity generation in 2019. However, the marine energy industry still faces hurdles to commercialization. While high costs relative to wind and solar remain a key challenge, other hurdles relate to marine energy’s value streams not being well characterized and not captured by traditional energy comparison metrics like the levelized cost of energy. To address this challenge, this project undertakes several types of analyses to identify and illustrate value propositions for marine energy resources. It provides a fresh framework for considering electric system benefits based on unique marine energy attributes, and provides analyses illustrating and quantifying those benefits. The authors find many opportunities for the deployment of marine energy technologies both in the near term and within typical utility planning timeframes (i.e. up to 20 years). From a resource and technology perspective, marine energy resources can deliver distinct and valuable benefits to different configurations of the grid, whether the bulk system, isolated distribution systems, or remote communities, islands, and microgrids. Marine energy resources can be valuable in increasing technology diversity in a generation portfolio, providing energy where it is otherwise difficult to come by, supporting local resiliency, complementing and being complemented by other resources including solar, wind, and energy storage, and avoiding land constraints.}, + language = {English}, + number = {PNNL-31123}, + urldate = {2023-03-07}, + institution = {Pacific Northwest National Lab}, + author = {Bhatnagar, Dhruv and Bhattacharya, Saptarshi and Preziuso, Danielle and Hanif, Sarmad and O'Neil, Rebecca and Alam, Md and Chalishazar, Vishvas and Newman, Sarah and Lessick, Jennifer and Medina, Gabriel Garcia and Douville, Travis and Robertson, Bryson and Busch, Jason and Kilcher, Levi and Yu, Y}, + year = {2021}, +} + +@techreport{previsic_future_2012, + title = {The {Future} {Potential} of {Wave} {Power} in the {United} {States}}, + doi = {10.13140/RG.2.2.24238.05444}, + abstract = {The theoretical ocean wave energy resource potential exceeds 50\% of the annual domestic energy demand of the United States, is located close to coastal population centers, and, although variable in nature, may be more consistent and predictable than some other renewable generation technologies. As a renewable electricity generation technology, ocean wave energy offers a low air pollutant option for diversifying the +U.S. electricity generation portfolio. Furthermore, the output characteristics of these technologies may complement other renewable technologies. + +This study addresses the following: +(1) The theoretical, technical and practical potential for electricity generation from wave energy +(2) The present lifecycle cost profile (Capex, Opex, and Cost of Electricity) of wave energy conversion +technology at a reference site in Northern California at different plant scales +(3) Cost of electricity variations as a function of deployment site, considering technical, geo-spatial and +and electric grid constraints +(4) Technology cost reduction pathways +(5) Cost reduction targets at which the technology will see significant deployment within US markets, explored through a series of deployment scenarios}, + author = {Previsic, Mirko and Eppler, Jeff and Hand, Mohammed and Heimiller, Donna and Short, Walter and Eurek, Kelly}, + month = aug, + year = {2012}, +} + +@inproceedings{coe_minimizing_2022, + title = {Minimizing {Cost} in a 100\% {Renewable} {Electricity} {Grid}: {A} {Case} {Study} of {Wave} {Energy} in {California}}, + shorttitle = {Minimizing {Cost} in a 100\% {Renewable} {Electricity} {Grid}}, + url = {https://asmedigitalcollection.asme.org/OMAE/proceedings-abstract/OMAE2022/85932/1148047}, + doi = {10.1115/OMAE2022-80731}, + abstract = {Abstract. Wave energy converters have yet to reach broad market viability. Traditionally, levelized cost of energy has been considered the ultimate stage gate through which wave energy developers must pass in order to find success (i.e., the levelized cost of wave energy must be less than that of solar and wind). However, real world energy decisions are not based solely on levelized cost of energy. In this study, we consider the energy mix in California in the year 2045, upon which the state plans to achieve zero carbon energy production. By considering temporal electricity production and consumption, we are able to perform a more informed analysis of the decision process to address this challenge. The results show that, due to high level of ocean wave energy in the winter months, wave energy provides a valuable complement to solar and wind, which have higher production in the summer. Thus, based on this complementary temporal aspect, wave energy appears cost-effective, even when the cost of installation and maintenance is twice that of solar and wind.}, + language = {en}, + urldate = {2023-03-01}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Coe, Ryan and Lavidas, George and Bacelli, Giorgio and Kobos, Peter and Neary, Vincent}, + month = oct, + year = {2022}, +} + +@incollection{roy_mixed_nodate, + title = {A {Mixed} {Integer} {Efficient} {Global} {Optimization} {Algorithm} with {Multiple} {Infill} {Strategy} - {Applied} to a {Wing} {Topology} {Optimization} {Problem}}, + urldate = {2023-03-13}, + booktitle = {{AIAA} {Scitech} 2019 {Forum}}, + publisher = {American Institute of Aeronautics and Astronautics}, + author = {Roy, Satadru and Crossley, William and Stanford, Bret and Moore, Kenneth and Gray, Justin}, +} + +@article{sobieszczanski-sobieski_multidisciplinary_1997, + title = {Multidisciplinary aerospace design optimization: survey of recent developments}, + volume = {14}, + issn = {1615-1488}, + shorttitle = {Multidisciplinary aerospace design optimization}, + url = {https://doi.org/10.1007/BF01197554}, + doi = {10.1007/BF01197554}, + abstract = {The increasing complexity of engineering systems has sparked rising interest in multidisciplinary optimization (MDO). This paper surveys recent publications in the field of aerospace, in which the interest in MDO has been particularly intense. The primary c hallenges in MDO are computational expense and organizational complexity. Accordingly, this survey focuses on various methods used by different researchers to address these challenges. The survey is organized by a breakdown of MDO into its conceptual components, reflected in sections on mathematical modelling, approximation concepts, optimization procedures, system sensitivity, and human interface. Because the authors' primary area of expertise is in the structures discipline, the majority of the references focus on the interaction of this discipline with others. In particular, two sections at the end of this review focus on two interactions that have recently been pursued with vigour: the simultaneous optimization of structures and aerodynamics and the simultaneous optimization of structures with active control.}, + language = {en}, + number = {1}, + urldate = {2021-10-20}, + journal = {Structural optimization}, + author = {Sobieszczanski-Sobieski, J. and Haftka, R.}, + month = aug, + year = {1997}, + pages = {1--23}, +} + +@techreport{kilcher_marine_2021, + title = {Marine {Energy} in the {United} {States}: {An} {Overview} of {Opportunities}}, + shorttitle = {Marine {Energy} in the {United} {States}}, + url = {https://www.osti.gov/servlets/purl/1766861/}, + doi = {10.2172/1766861}, + language = {en}, + number = {NREL/TP-5700-78773}, + urldate = {2021-10-19}, + institution = {NREL}, + author = {Kilcher, Levi and Fogarty, Michelle and Lawson, Michael}, + month = feb, + year = {2021}, +} + +@book{sterman_business_2000, + title = {Business {Dynamics}: {Systems} {Thinking} and {Modeling} for a {Complex} {World}}, + isbn = {978-0-07-231135-8}, + shorttitle = {Business {Dynamics}}, + abstract = {Today's leading authority on the subject of this text is the author, MIT Standish Professor of Management and Director of the System Dynamics Group, John D. Sterman. Sterman's objective is to explain, in a true textbook format, what system dynamics is, and how it can be successfully applied to solve business and organizational problems. System dynamics is both a currently utilized approach to organizational problem solving at the professional level, and a field of study in business, engineering, and social and physical sciences.}, + language = {en}, + publisher = {Irwin/McGraw-Hill}, + author = {Sterman, John}, + year = {2000}, +} + +@article{ricks_value_2022, + title = {The value of in-reservoir energy storage for flexible dispatch of geothermal power}, + volume = {313}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261922002537}, + doi = {10.1016/j.apenergy.2022.118807}, + abstract = {Geothermal systems making use of advanced drilling and well stimulation techniques have the potential to provide tens to hundreds of gigawatts of clean electricity generation in the United States by 2050. With near-zero variable costs, geothermal plants have traditionally been envisioned as providing “baseload” power, generating at their maximum rated output at all times. However, as variable renewable energy sources (VREs) see greater deployment in energy markets, baseload power is becoming increasingly less competitive relative to flexible, dispatchable generation and energy storage. Herein we conduct an analysis of the potential for future geothermal plants to provide both of these services, taking advantage of the natural properties of confined, engineered geothermal reservoirs to store energy in the form of accumulated, pressurized geofluid and provide flexible load-following generation. We develop a linear optimization model based on multi-physics reservoir simulations that captures the transient pressure and flow behaviors within a confined, engineered geothermal reservoir. We then optimize the investment decisions and hourly operations of a power plant exploiting such a reservoir against a set of historical and modeled future electricity price series. We find that operational flexibility and in-reservoir energy storage can significantly enhance the value of geothermal plants in markets with high VRE penetration, with energy value improvements of up to 60\% relative to conventional baseload plants operating under identical conditions. Across a range of realistic subsurface and operational conditions, our modeling demonstrates that confined, engineered geothermal reservoirs can provide large and effectively free energy storage capacity, with round-trip storage efficiencies comparable to those of leading grid-scale energy storage technologies. Optimized operational strategies indicate that flexible geothermal plants can provide both short- and long-duration energy storage, prioritizing output during periods of high electricity prices. Sensitivity analysis assesses the variation in outcomes across a range of subsurface conditions and cost scenarios.}, + language = {en}, + urldate = {2023-05-15}, + journal = {Applied Energy}, + author = {Ricks, Wilson and Norbeck, Jack and Jenkins, Jesse}, + month = may, + year = {2022}, + keywords = {EGS, Flexibility, Geothermal, Solar, Storage, Wind}, + pages = {118807}, +} + +@article{lopez-garza_fuzzy_2022, + title = {Fuzzy {Logic} and {Linear} {Programming}-{Based} {Power} {Grid}-{Enhanced} {Economical} {Dispatch} for {Sustainable} and {Stable} {Grid} {Operation} in {Eastern} {Mexico}}, + volume = {15}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/15/11/4069}, + doi = {10.3390/en15114069}, + abstract = {Sustainable, stable, and cost-optimized operation of power grids must be the main objectives of power grid operators and electric utilities. The energy transition towards a preponderant green energy economy requires innovative solutions to enhance the power grid economic dispatches looking for a better allocation of the energy demand among the diverse renewable and fossil fuel energy plants. Green renewable energy systems must be preferred over fossil fuel generators when they are available. However, fossil plants are still required to be kept operational due to the variability and uncertainty of renewable energy plants. This study proposes a hybrid rational economic dispatch model that combines a cost minimization linear model enhanced with a fuzzy logic system for decision-making on wind and hydropower minimum and maximum generation levels. The model considers the intermittency of wind energy and recognizes the strategic value of hydropower as energy storage. The results of the model with real data taken from wind, hydroelectric, geothermal, nuclear, bioenergy, and fossil fuel power plants in the eastern region of Mexico show that a fairer, rational, and cost-optimized power grid economic dispatch can be achieved with the proposed approach.}, + language = {en}, + number = {11}, + urldate = {2023-03-27}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {López-Garza, Esmeralda and Domínguez-Cruz, René Fernando and Martell-Chávez, Fernando and Salgado-Tránsito, Iván}, + month = jan, + year = {2022}, + note = {Number: 11}, + keywords = {economic dispatch, optimization of generation grids, reliability power grid}, + pages = {4069}, +} + +@techreport{united_nations_transforming_2015, + title = {Transforming our {World}: {The} 2030 {Agenda} for {Sustainable} {Development}}, + url = {https://sdgs.un.org/publications/transforming-our-world-2030-agenda-sustainable-development-17981}, + number = {A/RES/70/1}, + urldate = {2023-03-25}, + institution = {United Nations Department of Economic and Social Affairs}, + author = {{United Nations}}, + year = {2015}, +} + +@article{wu_dynamic_2014, + title = {Dynamic economic dispatch of a microgrid: {Mathematical} models and solution algorithm}, + volume = {63}, + issn = {0142-0615}, + shorttitle = {Dynamic economic dispatch of a microgrid}, + url = {https://www.sciencedirect.com/science/article/pii/S0142061514003482}, + doi = {10.1016/j.ijepes.2014.06.002}, + abstract = {Dynamic economic dispatch of a microgrid is better suited to the requirements of a system in actual operation because it not only considers the lowest cost in a scheduling cycle but also coordinates between different distribution generations (DGs) over many periods. So it is very significant to research the dynamic economic dispatch of a microgrid. Since wind energy and solar energy are subject to random variations and intervals, there is great difficulty in solving the dynamic economic dispatch. In this paper, we establish a combined heat and power (CHP) microgrid system which includes wind turbines (WT), photovoltaic arrays (PV), diesel engines (DE), a micro-turbine (MT), a fuel cell (FC) and a battery (BS). Comprehensively considering the operation cost and the pollutant treatment cost of the microgrid system, we choose the maximum comprehensive benefits as the objective function for the dynamic economic dispatch. At the same time, we establish the spinning reserve probability constraints of the microgrid considering the influence of uncertainty factors such as the fluctuation of the renewable energy, load fluctuation error, and fault shutdown of the unit. Also researched are four different operation scheduling strategies under grid-connected mode and island mode of the microgrid. An improved particle swarm optimization (PSO) algorithm combined with Monte Carlo simulation is used to solve the objective function. With the example system, the proposed models and improved algorithm are verified. When the microgrid is running under the grid-connected mode, we discuss the influence of different scheduling strategies, optimization goals and reliability indexes on the dynamic economic dispatch. And when the microgrid is running under the island mode, we discuss the influence of the uncertainty factors and the capacityof the battery on the dynamic economic dispatch. The presented research can provide some reference for dynamic economic dispatch of microgrid on making full use of renewable energy and improving the microgrid system reliability.}, + language = {en}, + urldate = {2023-03-16}, + journal = {International Journal of Electrical Power \& Energy Systems}, + author = {Wu, Hongbin and Liu, Xingyue and Ding, Ming}, + month = dec, + year = {2014}, + keywords = {Dynamic economic dispatch, Improved particle swarm optimization, Microgrid, Monte Carlo simulation, Operation scheduling strategies, Uncertainty}, + pages = {336--346}, +} + +@techreport{yang_reliability_2020, + type = {Deliverable}, + title = {Reliability, {Availability}, {Maintainability} and {Survivability} {Assessment} {Tool} – {Alpha} version}, + url = {https://www.dtoceanplus.eu/content/download/5623/file/DTOceanPlus_D6.3_Systems%20RAMS%20Tools_alpha_AAU_20200430_v1.0.pdf}, + number = {D6.3}, + institution = {Aalborg University}, + author = {Yang, Yi and Nambiar, Amup and Luxcey, Neil and Fonseca, Francisco and Amaral, Luis}, + month = apr, + year = {2020}, +} + +@techreport{correia_da_fonseca_system_2019, + type = {Deliverable}, + title = {System {Lifetime} {Costs} {Tools} - alpha version}, + url = {https://www.dtoceanplus.eu/content/download/4457/file/DTOceanPlus_D6.4_System_Lifetime_Costs_WavEC_20191219_v1.0.pdf%20citation%20link%20for%20dtoceanslc}, + number = {D6.4}, + institution = {WavEC}, + author = {Correia da Fonseca, F. X. and Amaral, Luis and González Armayor, Amorina and Cândido, José and Arede, Filipe and Henderson, Jillian and Hudson, Ben and Nava, Vincenzo and Tunga, Ines and Petrov, Alexey}, + month = dec, + year = {2019}, +} + +@article{pan_technological_2007, + series = {Sustainability and {Cost}-{Benefit} {Analysis}}, + title = {Technological change in energy systems: {Learning} curves, logistic curves and input–output coefficients}, + volume = {63}, + issn = {0921-8009}, + shorttitle = {Technological change in energy systems}, + url = {https://www.sciencedirect.com/science/article/pii/S0921800907000912}, + doi = {10.1016/j.ecolecon.2007.01.013}, + abstract = {Learning curves have recently been widely adopted in climate-economy models to incorporate endogenous change of energy technologies, replacing the conventional assumption of an autonomous energy efficiency improvement. However, there has been little consideration of the credibility of the learning curve. The current trend that many important energy and climate change policy analyses rely on the learning curve means that it is of great importance to critically examine the basis for learning curves. Here, we analyse the use of learning curves in energy technology, usually implemented as a simple power function. We find that the learning curve cannot separate the effects of price and technological change, cannot reflect continuous and qualitative change of both conventional and emerging energy technologies, cannot help to determine the time paths of technological investment, and misses the central role of R\&D activity in driving technological change. We argue that a logistic curve of improving performance modified to include R\&D activity as a driving variable can better describe the cost reductions in energy technologies. Furthermore, we demonstrate that the top-down Leontief technology can incorporate the bottom-up technologies that improve along either the learning curve or the logistic curve, through changing input–output coefficients. An application to UK wind power illustrates that the logistic curve fits the observed data better and implies greater potential for cost reduction than the learning curve does.}, + language = {en}, + number = {4}, + urldate = {2023-03-14}, + journal = {Ecological Economics}, + author = {Pan, Haoran and Köhler, Jonathan}, + month = sep, + year = {2007}, + keywords = {Input–output coefficients, Learning curve, Logistic curve, Technological change, UK wind power}, + pages = {749--758}, +} + +@book{simpson_product_2006, + address = {New York, NY}, + title = {Product {Platform} and {Product} {Family} {Design}}, + isbn = {978-0-387-25721-1 978-0-387-29197-0}, + url = {http://link.springer.com/10.1007/0-387-29197-0}, + doi = {10.1007/0-387-29197-0}, + language = {en}, + urldate = {2023-03-13}, + publisher = {Springer US}, + editor = {Simpson, Timothy W. and Siddique, Zahed and Jiao, Jianxin Roger}, + year = {2006}, + keywords = {architecture, capacity, design, development, innovation, management, manufacturing, mass customization, platform design, product design, product development, product family design, production, pruduction efficiency, technology roadmap}, +} + +@techreport{noauthor_system_2023, + title = {The system benefits of ocean energy to {European} power systems}, + url = {https://evolveenergy.eu/wp-content/uploads/2023/01/EVOLVE-technical-note-The-system-benefits-of-ocean-energy-to-European-power-systems.pdf}, + institution = {EVOLVE Consortium}, + month = jan, + year = {2023}, +} + +@book{crawley_system_2016, + title = {System {Architecture}: {Strategy} and {Product} {Development} for {Complex} {Systems}}, + isbn = {978-0-13-397534-5}, + shorttitle = {System {Architecture}}, + abstract = {For courses in engineering and technical management Architecture and Function of Complex Systems System architecture is the study of early decision making in complex systems. This text teaches how to capture experience and analysis about early system decisions, and how to choose architectures that meet stakeholder needs, integrate easily, and evolve flexibly. With case studies written by leading practitioners, from hybrid cars to communications networks to aircraft, this text showcases the science and art of system architecture.}, + language = {en}, + publisher = {Pearson}, + author = {Crawley, Edward and Cameron, Bruce and Selva, Daniel}, + year = {2016}, + note = {Google-Books-ID: 67TuoQEACAAJ}, +} + +@techreport{costello_wavesparc_2019, + title = {{WaveSPARC}: {Evaluation} of {Innovation} {Techniques} for {Wave} {Energy}.}, + shorttitle = {{WaveSPARC}}, + url = {https://www.osti.gov/biblio/1641798}, + abstract = {Abstract not provided.}, + language = {English}, + number = {SAND2019-10104C}, + urldate = {2023-03-07}, + institution = {Sandia National Lab. (SNL-NM), Albuquerque, NM (United States)}, + author = {Costello, Ronan and Nielsen, Kim and Weber, Jochem and Tom, Nate and Roberts, Jesse D.}, + month = aug, + year = {2019}, +} + +@inproceedings{trueworthy_set-based_2019, + address = {Naples, Italy}, + title = {A {Set}-{Based} {Design} approach for the design of high-performance wave energy converters}, + abstract = {The objective of this paper is to introduce an approach for designing wave energy converters (WECs) that can be implemented early during the conceptual design phase, enabling downstream convergence on higher performance concepts. Currently, WEC concepts span a wide design space which includes a high number of functionally dissimilar devices. The concept-agnostic assessment of WEC techno-economic performance, the Technology Performance Level (TPL) metric [1], provides designers with a set of customer requirements upon which devices can be assessed. Those requirements were translated to functional requirements using a systems engineering approach [2]. Despite the framework that TPL and the functional requirements provide, WEC designers have limited guidance in approach to conceptual design. This often results in premature commitment to a single functional concept that can limit device performance, even if later-stage design optimization techniques are used [3]. TPL has made significant strides in helping designers understand the requirements of WEC design. This work aims to guide designers toward design processes which can help them meet those requirements. This paper proposes a Set-Based Design approach to WEC conceptual design which could enable the generation of high-performance concepts faster and with less expense. Set-Based Design is a design process in which engineers ideate a large set of potential solutions and work with critical stakeholders to ensure convergence on an optimal concept [4]. The process was chosen specifically due to its ability to directly facilitate design decision making. We tested the design method through a design workshop in which participants were given design requirements and asked to generate WEC concepts. Though the workshop was constrained by time, number of participants, and background of participants, it was a good proof of concept for the applicability of this design methodology and provided insight on how to continue developing WEC design methodologies. SBD is a methodology that can help designers understand and design to the conflicting requirements of WEC design. SBD also allows designers to avoid making decisions based on imprecise information, which may ultimately lead to more efficient generation of +high-performance concepts.}, + author = {Trueworthy, Ali and DuPont, Bryony and Maurer, Benjamin and Cavagnaro, Robert}, + year = {2019}, +} + +@misc{noauthor_ali_nodate, + title = {Ali {TRUEWORTHY} {\textbar} {PhD} {Student} {\textbar} {Oregon} {State} {University}, {Oregon} {\textbar} {OSU} {\textbar} {School} of {Mechanical}, {Industrial} and {Manufacturing} {Engineering} {\textbar} {Research} profile}, + url = {https://www.researchgate.net/profile/Ali-Trueworthy-2}, + abstract = {I work in wave energy from both the engineering and the humanities disciplines. Currently, I am doing work related to WEC design methodologies and the relationships between wave energy and climate change.}, + language = {en}, + urldate = {2023-03-07}, + journal = {ResearchGate}, +} + +@article{bubbar_method_2018, + title = {A method for comparing wave energy converter conceptual designs based on potential power capture}, + volume = {115}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148117308674}, + doi = {10.1016/j.renene.2017.09.005}, + abstract = {The design space for ocean wave energy converters is notable for its divergence. To facilitate convergence, and thereby support commercialization, we present a new simple method for analysis and comparison of alternative device architectures at an early stage of the design process. Using Thévenin's theorem, Falnes crafted an ingenious solution for the monochromatic optimal power capture of heaving point absorber devices by forming a mechanical impedance matching problem between the device and the power take-off. However, his solutions are limited by device architecture complexity. In this paper, we use the mechanical circuit framework to extend Falnes' method to form and solve the impedance matching problem and calculate the optimal power capture for converter architectures of arbitrary complexity. The new technique is first applied to reprove Falnes' findings and then to assess a complex converter architecture, proposed by Korde. This work also provides insight into a master-slave relationship between the geometry and power take-off force control problems that are inherent to converter design, and it reveals a hierarchy of distinct design objectives unbeknownst to Korde for his device. Finally, we show how application of the master-slave principle leads to the reduction in the dimensionality of the associated design space.}, + language = {en}, + urldate = {2023-03-07}, + journal = {Renewable Energy}, + author = {Bubbar, K. and Buckham, B. and Wild, P.}, + month = jan, + year = {2018}, + keywords = {Design convergence, Geometry control, Impedance matching, Mechanical circuits, Optimal PTO force control, Optimal power capture, Thévenin's theorem, WEC canonical form}, + pages = {797--807}, +} + +@book{vogtlander_lca-based_2010, + address = {Oegetgeest, The Netherlands}, + series = {Sustainable {Design} {Series} of {Delft} {University} of {Technology}}, + title = {{LCA}-based assessment of sustainability: the {Eco}-costs/{Value} {Ratio} ({EVR})}, + url = {https://www.ecocostsvalue.com/EVR/img/references%20ecocosts/Book_EVR.pdf}, + publisher = {Sustainability Impact Metrics}, + author = {Vogtlander, Joost G and Baetens, Bianca and Bijma, Arianne and Brandjes, Eduard and Lindeijer, Erwin and Segers, Merel and Witte, Flip and Brezet, J.C. and Hendriks, Ch.F.}, + year = {2010}, +} + +@techreport{araignous_environmental_2020, + type = {Deliverable}, + title = {Environmental and {Social} {Acceptance} {Tools} - alpha version}, + url = {https://www.dtoceanplus.eu/content/download/4813/file/DTOceanPlus_D6.5_ESA_alpha_FEM_20200227_v1.0.pdf}, + number = {D6.5}, + institution = {France Energies Marines}, + author = {Araignous, E and Safi, G}, + month = feb, + year = {2020}, +} + +@article{de_faria_optimizing_2022, + title = {Optimizing offshore renewable portfolios under resource variability}, + volume = {326}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261922012697}, + doi = {10.1016/j.apenergy.2022.120012}, + abstract = {The deployment of offshore wind, wave, and ocean current technologies can be coordinated to provide maximum economic benefit. We develop a model formulation based on Mean-Variance portfolio theory to identify the optimal site locations for a given number of wind, wave, and ocean current turbines subject to constraints on their energy collection system and the maximum number of turbines per site location. A model relaxation is also developed to improve the computational efficiency of the optimization process, allowing the inclusion of more than 5000 candidate generation sites. The model is tested using renewable resource estimates from the coast of North Carolina, along the eastern US coast. Different combinations of technology-specific offshore technologies are compared in terms of their levelized cost of electricity and energy variability. The optimal portfolio results are then included in a capacity expansion model to derive economic targets that make the offshore portfolios cost-competitive with other generating technologies. Results of this work indicate that the integration of different offshore technologies can help to decrease the energy variability associated with marine energy resources. Furthermore, this research shows that substantial cost reductions are still necessary to realize the deployment of these technologies in the region investigated.}, + language = {en}, + urldate = {2023-03-07}, + journal = {Applied Energy}, + author = {de Faria, Victor A. D. and de Queiroz, Anderson R. and DeCarolis, Joseph F.}, + month = nov, + year = {2022}, + keywords = {Energy economics, Energy system planning, Ocean current energy, Offshore renewable energy, Portfolio optimization, Wave energy, Wind energy}, + pages = {120012}, +} + +@techreport{mai_competitiveness_2021, + title = {Competitiveness {Metrics} for {Electricity} {System} {Technologies}}, + url = {https://www.osti.gov/biblio/1765599}, + doi = {10.2172/1765599}, + abstract = {The relative economic competitiveness of power generation technologies is a topic of much interest to diverse electric industry participants. However, assessing competitiveness can be challenging as it requires considering both total costs and total system value of each technology, which are complicated by the (1) numerous and diverse grid services needed to operate a reliable power system; (2) variations in the economic value of the grid services with system state and location, and over multiple timescales, due to the challenges of transporting and storing electricity; and (3) the unique characteristics of different electric system assets. Ideally, metrics designed or used to convey technology competitiveness must consider these complexities, but existing metrics often fall short. For example, the levelized cost of energy does not consider the system economic value of the various technologies nor does it consider services beyond electricity production. Various other metrics have been designed with the purpose of more-accurately communicating the economic viability of electric system technologies. In this report, we summarize the primary sources and components of costs and value and review the known competitiveness metrics by presenting their definitions, applications, advantages, and disadvantages. We also introduce a new set of competitiveness metrics, which we refer to as System Profitability metrics, that more-directly applies the economic principles of return-on-investment to electric system technologies. We use conceptual examples to show how the System Profitability metrics better reflect economic viability and relative technology competitiveness compared with existing metrics. We also describe how competitiveness metrics can be quantified using optimization-based models and demonstrate this capability using a U.S. electric sector capacity expansion model.}, + language = {English}, + number = {NREL/TP-6A20-72549}, + urldate = {2023-03-07}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Mai, Trieu and Mowers, Matthew and Eurek, Kelly}, + month = feb, + year = {2021}, +} + +@techreport{jenne_powering_2021, + title = {Powering the {Blue} {Economy}: {Economics} of {Marine} {Renewable} {Energy} {Systems}}, + shorttitle = {Powering the {Blue} {Economy}}, + url = {https://www.osti.gov/biblio/1811994}, + abstract = {This presentation, part of the Policy and Innovation Drivers Shaping the Market for Marine Renewable Energy panel of the 2020 Marine Renewable Energy Conference: On and Off the Grid, moderated by Leslie-Ann McGee, Assistant Director of the Consortium for Marine Robotics at the Woods Hole Oceanographic Institution and Program Manager, Cape Cod Blue Economy Foundation, delves into government policies incentivizing technological advances, collaborative models for technology development, market trends, and permitting hurdles. Panelists include: Jennifer Garson, Senior Advisor, U.S. Dept. of Energy Lead for the Powering the Blue Economy Initiative; Henry Jeffrey, Chairman of the Technology Collaboration Programme for Ocean Energy Systems, University of Edinburgh; Alf Carroll, SBIR Blackbelt and Ocean Energy SME, Raytheon Technologies; Walter Schurtenberger, Founder, Hydrokinetic Energy Corp.; and Dale "Scott" Jenne, Engineer, National Renewable Energy Laboratory.}, + language = {English}, + number = {NREL/PR-5700-78328}, + urldate = {2023-03-07}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Jenne, Scott}, + month = jul, + year = {2021}, +} + +@techreport{driscoll_methodology_2018, + title = {Methodology to {Calculate} the {ACE} and {HPQ} {Metrics} {Used} in the {Wave} {Energy} {Prize}}, + url = {https://www.osti.gov/biblio/1426063}, + doi = {10.2172/1426063}, + abstract = {The U.S. Department of Energy's Wave Energy Prize Competition encouraged the development of innovative deep-water wave energy conversion technologies that at least doubled device performance above the 2014 state of the art. Because levelized cost of energy (LCOE) metrics are challenging to apply equitably to new technologies where significant uncertainty exists in design and operation, the prize technical team developed a reduced metric as proxy for LCOE, which provides an equitable comparison of low technology readiness level wave energy converter (WEC) concepts. The metric is called 'ACE' which is short for the ratio of the average climate capture width to the characteristic capital expenditure. The methodology and application of the ACE metric used to evaluate the performance of the technologies that competed in the Wave Energy Prize are explained in this report.}, + language = {English}, + number = {NREL/TP-5000-70592}, + urldate = {2023-03-07}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Driscoll, Frederick R. and Weber, Jochem W. and Jenne, Dale S. and Thresher, Robert W. and Fingersh, Lee J. and Bull, Dianna and Dallman, Ann and Gunawan, Budi and Ruehl, Kelley and Newborn, David and Quintero, Miguel and LaBonte, Alison and Karwat, Darshan and Beatty, Scott}, + month = mar, + year = {2018}, +} + +@inproceedings{bilgen_openturbinecode_2022, + address = {University of Delaware, DE}, + title = {{OpenTurbineCoDe} ({OTCD}): {An} {Open}-{Source} {Floating} {Offshore} {Wind} {Turbine} {Multidisciplinary} {Control} {Co}-{Design} {Optimization} {Framework}}, + url = {https://dial.uclouvain.be/pr/boreal/en/object/boreal%3A269524/datastreams}, + urldate = {2023-03-01}, + author = {Bilgen, Onur and Martins, Joaquim R. R. A. and Ning, Andrew and Burlion, Laurent and Platt, Andy and Caprace, Denis–Gabriel and Du, Xianping and Mangano, Marco and Lopez Muro, Juan Francisco and Wright, Cody and Zhang, Kai}, + month = sep, + year = {2022}, +} + +@book{sartori_research_2020, + title = {A {Research} {Framework} for the {Multidisciplinary} {Design} and {Optimization} of {Wind} {Turbines}}, + isbn = {978-1-78984-408-5}, + url = {https://www.intechopen.com/chapters/70217}, + doi = {10.5772/intechopen.90172}, + abstract = {The design of very large wind turbines is a complex task which requires the development of dedicated tools and techniques. In this chapter, we present a system-level design procedure based on the combination of multi-body numerical models of the turbine and a multilevel optimization scheme. The overall design aims at the minimization of the cost of energy (COE) through the optimization of all the characteristics of the turbine, and the procedure automatically manages all the simulations required to compute relevant loads and displacements. This unique setup allows the designer to conduct trade-off studies in a highly realistic virtual environment and is an ideal test bench for advanced research studies in which it is important to assess the economic impact of specific design choices. Examples of such studies include the impact of stall-induced vibrations on fatigue, the development of active/passive control laws for large rotors, and the complete definition of 10–20 MW reference turbines.}, + language = {en}, + urldate = {2023-03-07}, + publisher = {IntechOpen}, + author = {Sartori, Luca and Cacciola, Stefano and Croce, Alessandro and Riboldi, Carlo Emanuele Dionigi and Sartori, Luca and Cacciola, Stefano and Croce, Alessandro and Riboldi, Carlo Emanuele Dionigi}, + month = apr, + year = {2020}, + note = {Publication Title: Design Optimization of Wind Energy Conversion Systems with Applications}, +} + +@article{jasa_effectively_2022, + title = {Effectively using multifidelity optimization for wind turbine design}, + volume = {7}, + issn = {2366-7443}, + url = {https://wes.copernicus.org/articles/7/991/2022/}, + doi = {10.5194/wes-7-991-2022}, + abstract = {Wind turbines are complex multidisciplinary systems that are challenging to design because of the tightly coupled interactions between different subsystems. Computational modeling attempts to resolve these couplings so we can efficiently explore new wind turbine systems early in the design process. Low-fidelity models are computationally efficient but make assumptions and simplifications that limit the accuracy of design studies, whereas high-fidelity models capture more of the actual physics but with increased computational cost. This paper details the use of multifidelity methods for optimizing wind turbine designs by using information from both low- and high-fidelity models to find an optimal solution at reduced cost. Specifically, a trust-region approach is used with a novel corrective function built from a nonlinear surrogate model. We find that for a diverse set of design problems – with examples given in rotor blade geometry design, wind turbine controller design, and wind power plant layout optimization – the multifidelity method finds the optimal design using 38 \%–58 \% of the computational cost of the high-fidelity-only optimization. The success of the multifidelity method in disparate applications suggests that it could be more broadly applied to other wind energy or otherwise generic applications.}, + language = {English}, + number = {3}, + urldate = {2023-03-07}, + journal = {Wind Energy Science}, + publisher = {Copernicus GmbH}, + author = {Jasa, John and Bortolotti, Pietro and Zalkind, Daniel and Barter, Garrett}, + month = may, + year = {2022}, + pages = {991--1006}, +} + +@article{oconnell_review_2023, + title = {A review of geographic information system ({GIS}) and techno economic ({TE}) software tools for renewable energy and methodology to develop a coupled {GIS}-{TE} software tool for marine renewable energy ({MRE})}, + issn = {1475-0902}, + url = {https://doi.org/10.1177/14750902221150050}, + doi = {10.1177/14750902221150050}, + abstract = {Accurate and up-to-date Geographic Information System (GIS) and Techno Economic (TE) tools are pertinent to helping to develop the renewable energy sector. This paper reviews the state of the art in existing GIS and TE tools for renewable energy and proposes a methodology to develop a coupled GIS-TE software tool that is geared specifically to Marine Renewable Energy (MRE) applications and bespoke to Irish and Western UK waters. Methods for approaching GIS and TE analysis within existing tools for renewable energy are presented and compared. Many existing tools of this nature have some interesting functionalities, but most are unsuitable for MRE; are limited by a lack of information on both the technology and the site; and focus solely either on GIS or TE aspects of analysis. Additionally, almost all of those with a TE focus are not open access. The proposed tool aims to incorporate increased resolution and site relevance of resource data; the most up-to-date geospatial data for site selection; and will provide site specific TE indicators and recommendations for contemporary MRE devices. The result will be the development an open-access GIS-TE software tool for MRE.}, + language = {en}, + urldate = {2023-03-07}, + journal = {Proceedings of the Institution of Mechanical Engineers, Part M: Journal of Engineering for the Maritime Environment}, + publisher = {SAGE Publications}, + author = {O’Connell, Ross and Murphy, Jimmy and Devoy McAuliffe, Fiona and Dalton, Gordon}, + month = jan, + year = {2023}, + pages = {14750902221150050}, +} + +@misc{noauthor_exfin_nodate, + title = {Exfin {Software} {\textbar} {Your} {Single} {Source} of {Digital} {Truth}}, + url = {https://exfinsoftware.com/product/}, + abstract = {Exfin financial modelling software for the renewable industry, creates a centralised, single source of digital truth in 4 simple steps.}, + language = {en-US}, + urldate = {2023-03-07}, + journal = {exfinsoftware.com}, +} + +@article{roberts_bringing_2021, + title = {Bringing {Structure} to the {Wave} {Energy} {Innovation} {Process} with the {Development} of a {Techno}-{Economic} {Tool}}, + volume = {14}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/14/24/8201}, + doi = {10.3390/en14248201}, + abstract = {Current wave energy development initiatives assume that available designs have the potential for success through continuous learning and innovation-based cost reduction. However, this may not be the case, and potential winning technologies may have been overlooked. The scenario creation tool presented in this paper provides a structured method for the earliest stages of design in technology development. The core function of the scenario creation tool is to generate and rank scenarios of potential Wave Energy Converter (WEC) attributes and inform the user on the areas of the parameter space that are most likely to yield commercial success. This techno-economic tool uses a structured innovation approach to identify commercially attractive and technically achievable scenarios, with a scoring system based on their power performance and costs. This is done by leveraging performance and cost data from state-of-the-art wave energy converters and identifying theoretical limits to define thresholds. As a result, a list of scored solutions is obtained depending on resource level, wave energy converter hull shape, size, material, degree of freedom for power extraction, and efficiency. This scenario creation tool can be used to support private and public investors to inform strategy for future funding calls, and technology developers and researchers in identifying new avenues of innovation.}, + language = {en}, + number = {24}, + urldate = {2023-03-07}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Roberts, Owain and Henderson, Jillian Catherine and Garcia-Teruel, Anna and Noble, Donald R. and Tunga, Inès and Hodges, Jonathan and Jeffrey, Henry and Hurst, Tim}, + month = jan, + year = {2021}, + note = {Number: 24}, + keywords = {commercial attractiveness, scenario creation, structured innovation, technical achievability, wave energy}, + pages = {8201}, +} + +@article{tunga_addressing_2021, + title = {Addressing {European} {Ocean} {Energy} {Challenge}: {The} {DTOceanPlus} {Structured} {Innovation} {Tool} for {Concept} {Creation} and {Selection}}, + volume = {14}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {Addressing {European} {Ocean} {Energy} {Challenge}}, + url = {https://www.mdpi.com/1996-1073/14/18/5988}, + doi = {10.3390/en14185988}, + abstract = {The whole energy system requires renewables that scale and produce reliable, valuable energy at an acceptable cost. The key to increasing the deployment of ocean energy is bringing down development and operating costs. This paper proposes a structured approach to innovation in ocean energy systems that would spur innovation and expand the market for ocean energy. This approach can be used by a wide range of stakeholders—including technology and project developers and investors—when considering creating or improving designs. The Structured Innovation design tool within the DTOceanPlus suite is one of a kind beyond the current state-of-the-art. It enables the adaptation and integration of systematic problem-solving tools based on quality function deployment (QFD), the theory of inventive thinking (TRIZ), and the failure modes and effects analysis (FMEA) methodologies for the ocean energy sector. In obtaining and assessing innovative concepts, the integration of TRIZ into QFD enables the designers to define the innovation problem, identifies trade-offs in the system, and, with TRIZ as a systematic inventive problem-solving methodology, generates potential design concepts for the contradicting requirements. Additionally, the FMEA is used to assess the technical risks associated with the proposed design concepts. The methodology is demonstrated using high-level functional requirements for a small array of ten tidal turbines to improve the devices layout and power cabling architecture. The Structured Innovation design tool output comprises critical functional requirements with the highest overall impact and the least organisational effort to implement, along with appropriate alternative solutions to conflicting requirements.}, + language = {en}, + number = {18}, + urldate = {2023-03-07}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Tunga, Inès and Garcia-Teruel, Anna and Noble, Donald R. and Henderson, Jillian}, + month = jan, + year = {2021}, + note = {Number: 18}, + keywords = {DTOceanPlus, FMEA, fundamental relationships, innovation, ocean energy, quality function deployment, structured innovation tool, theory of inventive problem solving}, + pages = {5988}, +} + +@inproceedings{weber_wec_2012, + title = {{WEC} {Technology} {Readiness} and {Performance} {Matrix} – finding the best research technology development trajectory}, + abstract = {The paper identifies and discusses the need for techno-economic performance improvements at early stages of the wave energy converter (WEC) technology development process. Technology Readiness Levels (TRLs) for wave energy projects provide a valuable metric of technology readiness and deliver useful guidance for the development process. This paper describes the complementary metric of Technology Performance Levels (TPLs) characterised by a set of quantified performance criteria aimed at identifying and classifying the techno-economic performance of wave energy technology. These TPLs are broadly inversely related to cost of energy (CoE) and provide a combined measure for capital expenditure (CapEx), lifecycle operational expenditure (OpEx), energy conversion efficiency and technology availability. Less quantifiable performance aspects such as acceptability and safety are also considered in the definition of the TPLs. +A 2-dimensional representation of technology readiness and performance levels is introduced. This TRL–TPL–Matrix visualisation provides a useful means for the evaluation, comparison and discussion of different research technology development trajectories over the technology readiness and performance levels plane. The paper identifies the need for technology performance trajectories with high technology performance levels at low readiness levels and gives valuable advice on the development strategy and tools required to achieve successful WEC technology development outcome at reduced development time, total development cost and encountered risk.}, + author = {Weber, Jochem}, + month = oct, + year = {2012}, +} + +@inproceedings{noauthor_notitle_nodate, +} + +@article{clark_reliability-based_2018, + title = {Reliability-based design optimization in offshore renewable energy systems}, + volume = {97}, + issn = {1364-0321}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032118306154}, + doi = {10.1016/j.rser.2018.08.030}, + abstract = {Offshore wind farm operations and maintenance costs currently total 6 m€/year, or 25–28\% of total costs. For wave and tidal energy converters, this cost is projected to be twice that of offshore wind, but has high levels of uncertainty. As the wave and tidal energy industries mature, decreasing O\&M costs through reliability-based design optimization is critical to increasing feasibility and competitiveness with other energy technologies. In this paper, we will synthesize existing information on reliability-based optimization in systems analogous to offshore renewable energy systems. We will conclude by highlighting opportunities for future work in this field.}, + language = {en}, + urldate = {2023-03-07}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Clark, Caitlyn E. and DuPont, Bryony}, + month = dec, + year = {2018}, + keywords = {Offshore renewable energy, Offshore wind energy, Reliability-based design optimization, Tidal energy, Wave energy}, + pages = {390--400}, +} + +@article{macgillivray_innovation_2014, + title = {Innovation and cost reduction for marine renewable energy: {A} learning investment sensitivity analysis}, + volume = {87}, + issn = {0040-1625}, + shorttitle = {Innovation and cost reduction for marine renewable energy}, + url = {https://www.sciencedirect.com/science/article/pii/S0040162513003041}, + doi = {10.1016/j.techfore.2013.11.005}, + abstract = {Using learning curves as an analytical tool for technology forecasting involves making assumptions over a range of key uncertainties, often implicitly. In this paper, we present an explicit treatment of the key uncertainties involved in learning rates' analyses of marine energy innovation (wave and tidal stream) — technology fields attracting considerable interest, but whose commercial prospects depends on substantial learning and cost reduction. Taking a simple single factor learning rate model, we describe a range of plausible learning investments required so that marine energy technologies become cost-competitive with their ‘benchmark’ technology: offshore wind. Our analysis highlights the sensitivity of marine energy to three key parameters: the capital cost of first devices, the level of deployment before sustained cost reduction emerges, and the average rate of cost reduction with deployment (learning rate). Figures often quoted within the marine energy sector for the parameters of starting cost, learning rate, and capacity at which sustained cost reduction occurs (metrics conventionally used for learning rate analysis) can be seen to represent very attractive scenarios. The intention of this paper is to display that even small changes to input assumptions can have a dramatic effect on the overall investment required for a sector to reach parity with benchmark technologies. In the short term, reaching cost competitiveness with offshore wind is a necessity if marine energy is to reach commercialisation. Additionally, an assessment of the plausible total investment (and inherent uncertainties) in a global wave and tidal deployment scenario will be presented. The paper also considers the implications of these uncertainties for marine energy innovation management. While the benchmark against offshore wind will generally be used as a performance indicator, in order to achieve similar and sustained cost reductions to other, more mature, renewable energy technologies (and thus achieve a competitive price for marine technologies, securing their place within the energy mix), the marine energy sector needs a targeted innovation focus to fulfil the desired objectives, and a development pathway very different to offshore wind must be used.}, + language = {en}, + urldate = {2023-03-05}, + journal = {Technological Forecasting and Social Change}, + author = {MacGillivray, Andrew and Jeffrey, Henry and Winskel, Mark and Bryden, Ian}, + month = sep, + year = {2014}, + keywords = {Experience curve, Learning curve, Learning investment, Marine energy, Technology innovation}, + pages = {108--124}, +} + +@article{tassey_standardization_2000, + title = {Standardization in technology-based markets}, + volume = {29}, + issn = {0048-7333}, + url = {https://www.sciencedirect.com/science/article/pii/S0048733399000918}, + doi = {10.1016/S0048-7333(99)00091-8}, + abstract = {The complexity of modern technology, especially its system character, has led to an increase in the number and variety of standards that affect a single industry or market. Standards affect the R\&D, production, and market penetration stages of economic activity and therefore have a significant collective effect on innovation, productivity, and market structure. Standards are classified into product-element and nonproduct categories because the two types arise from different technologies and require different formulation and implementation strategies. Because standards are a form of technical infrastructure, they have considerable public good content. Research policy must therefore include standardization in analyses of technology-based growth issues.}, + language = {en}, + number = {4}, + urldate = {2023-03-05}, + journal = {Research Policy}, + author = {Tassey, Gregory}, + month = apr, + year = {2000}, + keywords = {Economic growth, Industry structure, Innovation, R\&D, Standardization}, + pages = {587--602}, +} + +@article{moni_life_2020, + title = {Life cycle assessment of emerging technologies: {A} review}, + volume = {24}, + copyright = {© 2019 by Yale University}, + issn = {1530-9290}, + shorttitle = {Life cycle assessment of emerging technologies}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/jiec.12965}, + doi = {10.1111/jiec.12965}, + abstract = {In recent literature, prospective application of life cycle assessment (LCA) at low technology readiness levels (TRL) has gained immense interest for its potential to enable development of emerging technologies with improved environmental performances. However, limited data, uncertain functionality, scale up issues and uncertainties make it very challenging for the standard LCA guidelines to evaluate emerging technologies and requires methodological advances in the current LCA framework. In this paper, we review published literature to identify major methodological challenges and key research efforts to resolve these issues with a focus on recent developments in five major areas: cross-study comparability, data availability and quality, scale-up issues, uncertainty and uncertainty communication, and assessment time. We also provide a number of recommendations for future research to support the evaluation of emerging technologies at low technology readiness levels: (a) the development of a consistent framework and reporting methods for LCA of emerging technologies; (b) the integration of other tools with LCA, such as multicriteria decision analysis, risk analysis, technoeconomic analysis; and (c) the development of a data repository for emerging materials, processes, and technologies.}, + language = {en}, + number = {1}, + urldate = {2023-03-04}, + journal = {Journal of Industrial Ecology}, + author = {Moni, Sheikh Moniruzzaman and Mahmud, Roksana and High, Karen and Carbajales-Dale, Michael}, + year = {2020}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1111/jiec.12965}, + keywords = {emerging technology, ex ante LCA, industrial ecology, life cycle assessment (LCA), technoeconomic analysis (TEA), technology readiness level (TRL)}, + pages = {52--63}, +} + +@article{pennock_life_2022, + title = {Life cycle assessment of a point-absorber wave energy array}, + volume = {190}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148122004712}, + doi = {10.1016/j.renene.2022.04.010}, + abstract = {Wave energy has a large global resource and thus a great potential to contribute to low-carbon energy systems. This study quantifies the environmental impacts of a 10 MW array of 28 point-absorber wave energy converters, by means of a process-based life cycle assessment (LCA). Midpoint and Cumulative Energy Demand LCA results are presented over 19 impact categories, representing impacts encompassing human health, ecosystems and resource availability. Three scenarios are undertaken to represent the use phase of the array, identified as a particularly uncertain input, with very little long-term operation of wave energy arrays available to validate assumptions. The resultant global warming potential of the array ranges from 25.1 to 46.0 gCO2e/kWh over a 95\% confidence interval, 23–43 times lower than conventional fossil fuel electricity generation. The Energy Payback Time of the array ranges between 2.6 and 5.2 years. LCA results are found to be particularly sensitive to annual energy production across all impact categories, and to assumptions associated with the frequency of marine operations over a number of categories quantifying the production of greenhouse gases. This LCA has been undertaken at an early stage in the WEC product development and will inform innovative research focused on further reducing the environmental impacts of electricity generation.}, + language = {en}, + urldate = {2023-03-04}, + journal = {Renewable Energy}, + author = {Pennock, Shona and Vanegas-Cantarero, María M. and Bloise-Thomaz, Tianna and Jeffrey, Henry and Dickson, Matthew J.}, + month = may, + year = {2022}, + keywords = {Carbon footprint, Environmental impact, Life cycle assessment, Operations and maintenance, Wave energy}, + pages = {1078--1088}, +} + +@inproceedings{apolonia_developing_2019, + address = {Universitá degli Studi della Campania “Luigi Vanvitelli”, Italy}, + title = {Developing an {Environmental} {Impact} {Assessment} model for nearshore wave energy devices}, + booktitle = {Proceedings of the {Thirteenth} {European} {Wave} and {Tidal} {Energy} {Conference}}, + publisher = {EWTEC}, + author = {Apolonia, Maria and Silva, Ana and Simas, Teresa}, + editor = {Vicinanza, D.}, + month = sep, + year = {2019}, +} + +@article{zhang_optimization_2022, + title = {Optimization of energy-capture performance of point-absorber wave energy converter}, + volume = {46}, + issn = {1099-114X}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/er.7816}, + doi = {10.1002/er.7816}, + abstract = {An optimization process is proposed for improving the energy-harvesting efficiency of the point-absorber wave energy converter (WEC) and thus enhancing the utilization of wave energy resources. The multidisciplinary design optimization integration system ISIGHT is adopted to establish an optimization design flow for the shape parameters of the point-absorber WEC. The motion equations of the point-absorber WEC are established according to the potential flow theory, and the wave energy capture capacity per unit is calculated. Considering it as the objective, the point-absorber WEC is modified to improve the energy-capture efficiency by using an optimization function in an approximation model. A comparison indicates that a cylindrical-bottom point-absorber WEC with a diameter of 7 m, draft of 1.8 m, and damping factor of 31 150 Ns·m−1 has the optimal performance and the maximum energy capture capacity. The energy-capture performance of the WEC can be significantly enhanced through this optimization method.}, + language = {en}, + number = {7}, + urldate = {2023-03-03}, + journal = {International Journal of Energy Research}, + author = {Zhang, Baocheng and Deng, Ziwei and Miao, Yu and Zhao, Bo and Wang, Qiang and Zhang, Kaisheng}, + year = {2022}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/er.7816}, + keywords = {hydrodynamic, optimization design, parameterization, point absorber, wave energy}, + pages = {9444--9455}, +} + +@inproceedings{caio_tackling_2019, + title = {Tackling the {Wave} {Energy} {Paradox} - {Stepping} {Towards} {Commercial} {Deployment}}, + url = {https://onepetro.org/ISOPEIOPEC/proceedings-abstract/ISOPE19/All-ISOPE19/21575}, + abstract = {ABSTRACT. For the wave energy industry, the leap from R\&D to commercial deployment remains considerable and arises as part of the ‘wave energy paradox’, defined here as a negative reinforcement cycle involving a lack of investment, deployment, learning and returns. In this context, we review performance metrics set by funding bodies, industry standards and developers, examining how existing practices can result in sub-optimal design targets due to current specifications and misalignment of metrics between developers and external stakeholders. This paper offers initial insights - via a case study - to demonstrate how the integration of meaningful and aligned metrics throughout the design process represents a key lever in overcoming the paradox.INTRODUCTION. The vast potential of wave energy as a renewable source of power has been advocated for several decades (Isaacs \& Seymour, 1973), (Cruz, 2008). Although nearshore wave energy potential has been estimated to be in the TW range, e.g. (Gunn \& Stock-Williams, 2012), global deployed capacity as of 2017 was lagging at only 8MW (Ocean Energy Systems, 2017). Many observers argue that the shortfall is a result of the failure of wave energy converters (WECs) to converge to a single optimal design, though this can be viewed as both a cause and an effect (see following section). In 2016, O'Hagan et al. highlighted that}, + language = {en}, + urldate = {2023-03-03}, + publisher = {OnePetro}, + author = {Caio, Andrea and Davey, Thomas and McNatt, Cameron}, + month = jun, + year = {2019}, +} + +@misc{noauthor_triton_nodate, + title = {Triton {\textbar} {PNNL}}, + url = {https://www.pnnl.gov/projects/triton}, + urldate = {2023-03-01}, +} + +@article{li_quantitative_2022, + title = {Quantitative sustainable design ({QSD}) for the prioritization of research, development, and deployment of technologies: a tutorial and review}, + volume = {8}, + issn = {2053-1419}, + shorttitle = {Quantitative sustainable design ({QSD}) for the prioritization of research, development, and deployment of technologies}, + url = {https://pubs.rsc.org/en/content/articlelanding/2022/ew/d2ew00431c}, + doi = {10.1039/D2EW00431C}, + abstract = {The pursuit of sustainability has catalyzed broad investment in the research, development, and deployment (RD\&D) of innovative water, sanitation, and resource recovery technologies, yet the lack of transparent and agile methodologies to navigate the expansive landscape of technology development pathways remains a critical challenge. This challenge is further complicated by the higher levels of uncertainty that are intrinsic to early-stage technologies. In this work, we review and synthesize published literature on the sustainability analyses of water and related technologies to present quantitative sustainable design (QSD) – a methodology to expedite and support technology RD\&D. With a shared lexicon and a structured approach, QSD facilitates interdisciplinary communication and research consistency. In introducing QSD, we review existing studies to highlight best practices and discuss them in the context of the specific steps of QSD, which include defining the problem space, establishing simulation algorithms, and characterizing system sustainability across economic, environmental, human health, and social dimensions. Next, we summarize tools for QSD execution and provide recommendations to account for uncertainty in this process. We further discuss applications of QSD in the fields of water/wastewater and beyond (e.g., renewable fuels, circular economy) in combination with uncertainty, sensitivity, and scenario analyses to generate the desired types of insight. Finally, we identify future research needs for sustainability analyses to advance technology RD\&D. Ultimately, QSD can be used to elucidate the complex and intertwined connections among design decisions, technology characteristics, contextual factors, and sustainability indicators, thereby supporting transparent, consistent, and agile RD\&D.}, + language = {en}, + number = {11}, + urldate = {2023-03-01}, + journal = {Environmental Science: Water Research \& Technology}, + publisher = {The Royal Society of Chemistry}, + author = {Li, Yalin and Trimmer, John T. and Hand, Steven and Zhang, Xinyi and Chambers, Katherine G. and Lohman, Hannah A. C. and Shi, Rui and Byrne, Diana M. and Cook, Sherri M. and Guest, Jeremy S.}, + month = oct, + year = {2022}, + pages = {2439--2465}, +} + +@article{mahmud_integration_2021, + title = {Integration of techno-economic analysis and life cycle assessment for sustainable process design – {A} review}, + volume = {317}, + issn = {0959-6526}, + url = {https://www.sciencedirect.com/science/article/pii/S0959652621024641}, + doi = {10.1016/j.jclepro.2021.128247}, + abstract = {For sustainable design, technology developers need to consider not only technical and economic aspects but also potential environmental impacts while developing new technologies. Techno economic analysis (TEA) evaluates the technical performance and economic feasibility of a technology. Life cycle assessment (LCA) evaluates the potential environmental impacts associated with a product system throughout its life cycle from raw material extraction to disposal. Generally, TEA and LCA performed separately for technology assessment. Understanding of the trade-off between economic and environmental performance is crucial for sustainable process design, which is not fully available if TEA and LCA is performed separately. In contrast, integration of TEA and LCA enables systematic analysis of the relationships between technical, economic, and environmental performance and provides more information to technology developers for trade-off analysis. Integrated TEA-LCA tool can also reduce inconsistency between system boundaries, functional units, and assumptions that can arise from using standalone TEA and LCA findings in decision making. There is also growing interest of prospective application of integrated TEA-LCA tool to evaluate emerging technologies at early technology readiness level (TRL). Integration of TEA and LCA is still an evolving area and requires further exploration to develop a consistent methodological guideline. The goal of this study is to review the current state-of-the-art in TEA and LCA to identify the methodological challenges of TEA-LCA integration approaches. This study also identifies major challenges to perform integrated TEA-LCA analysis of emerging technologies at low TRLs. Lack of consistent methodological guidelines and compatible software tools, inconsistent system boundary and functional unit selection, limited data availability and uncertainty are key methodological challenges for integration of LCA and TEA. Future research should focus on developing integrated TEA-LCA tool, formulating approach to incorporate optimization method with integrated TEA-LCA tool, and developing strategy of proper communication of results from integrated LCA-TEA tool to broad range of stakeholders.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Journal of Cleaner Production}, + author = {Mahmud, Roksana and Moni, Sheikh Moniruzzaman and High, Karen and Carbajales-Dale, Michael}, + month = oct, + year = {2021}, + keywords = {Emerging technology, Integration, Life cycle assessment (LCA), Sustainable process design, Techno-economic analysis (TEA), Technology readiness level (TRL)}, + pages = {128247}, +} + +@article{li_quantitative_2022-1, + title = {Quantitative sustainable design ({QSD}) for the prioritization of research, development, and deployment of technologies: a tutorial and review}, + volume = {8}, + issn = {2053-1419}, + shorttitle = {Quantitative sustainable design ({QSD}) for the prioritization of research, development, and deployment of technologies}, + url = {https://pubs.rsc.org/en/content/articlelanding/2022/ew/d2ew00431c}, + doi = {10.1039/D2EW00431C}, + abstract = {The pursuit of sustainability has catalyzed broad investment in the research, development, and deployment (RD\&D) of innovative water, sanitation, and resource recovery technologies, yet the lack of transparent and agile methodologies to navigate the expansive landscape of technology development pathways remains a critical challenge. This challenge is further complicated by the higher levels of uncertainty that are intrinsic to early-stage technologies. In this work, we review and synthesize published literature on the sustainability analyses of water and related technologies to present quantitative sustainable design (QSD) – a methodology to expedite and support technology RD\&D. With a shared lexicon and a structured approach, QSD facilitates interdisciplinary communication and research consistency. In introducing QSD, we review existing studies to highlight best practices and discuss them in the context of the specific steps of QSD, which include defining the problem space, establishing simulation algorithms, and characterizing system sustainability across economic, environmental, human health, and social dimensions. Next, we summarize tools for QSD execution and provide recommendations to account for uncertainty in this process. We further discuss applications of QSD in the fields of water/wastewater and beyond (e.g., renewable fuels, circular economy) in combination with uncertainty, sensitivity, and scenario analyses to generate the desired types of insight. Finally, we identify future research needs for sustainability analyses to advance technology RD\&D. Ultimately, QSD can be used to elucidate the complex and intertwined connections among design decisions, technology characteristics, contextual factors, and sustainability indicators, thereby supporting transparent, consistent, and agile RD\&D.}, + language = {en}, + number = {11}, + urldate = {2023-03-01}, + journal = {Environmental Science: Water Research \& Technology}, + publisher = {The Royal Society of Chemistry}, + author = {Li, Yalin and Trimmer, John T. and Hand, Steven and Zhang, Xinyi and Chambers, Katherine G. and Lohman, Hannah A. C. and Shi, Rui and Byrne, Diana M. and Cook, Sherri M. and Guest, Jeremy S.}, + month = oct, + year = {2022}, + pages = {2439--2465}, +} + +@article{mccabe_constrained_2013, + title = {Constrained optimization of the shape of a wave energy collector by genetic algorithm}, + volume = {51}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148112006258}, + doi = {10.1016/j.renene.2012.09.054}, + abstract = {Wave energy extraction requires the conversion of the energy within the waves to drive the power take off system, often by means of a principal interface, or collector. This paper describes part of the development of a robust, systematic method of optimizing the collector shape to improve energy extraction using a genetic algorithm. The collector geometry uses a parametric description based upon bi-cubic B-spline surfaces, generated from a relatively small number of control points to reduce the dimensionality of the search space. The collector shapes that are optimized have one plane of symmetry and move in one degree of freedom (surge). Each candidate shape is assessed in a wave climate based upon data from a site in the North-East Atlantic Ocean. Three cost functions, distinguished by the severity of the penalty put on the size of the candidate collectors, and four constraint regimes, defined by two displacement and two power rating limits, are the governing influences on the twelve optimization procedures described. The selected collector shapes from each optimization run are appraised in terms of size, complexity and their performance compared to that of ‘benchmark’ box-shaped collectors.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Renewable Energy}, + author = {McCabe, A. P.}, + month = mar, + year = {2013}, + keywords = {Genetic algorithms, Marine energy conversion, Optimization methods, Wave energy converter design}, + pages = {274--284}, +} + +@article{patryniak_multidisciplinary_2022, + title = {Multidisciplinary design analysis and optimisation frameworks for floating offshore wind turbines: {State} of the art}, + volume = {251}, + issn = {0029-8018}, + shorttitle = {Multidisciplinary design analysis and optimisation frameworks for floating offshore wind turbines}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801822004267}, + doi = {10.1016/j.oceaneng.2022.111002}, + abstract = {Meeting climate and air quality targets, while preserving the focus on the reliability and cost-effectiveness of energy, became a central issue for offshore wind turbine engineers. Floating offshore wind turbines, which allow harnessing the large untapped wind resources in deep waters, are highly complex and coupled systems. Subsystem-level optimisations result in suboptimal designs, implying that an integrated design approach is important. Literature saw a few attempts on multidisciplinary design analysis and optimisation of floating wind turbines, with varying results, proving the need for an efficient, and sufficiently accurate, integrated approach. This paper reviews the state-of-the-art approaches to multidisciplinary design analysis and optimisation of floating support structures. The choice of the optimisation framework architecture, support platform design variables, constraints and objective functions are investigated. The techno-economic analysis models are closely examined, focusing on the approaches to achieving the optimum accuracy–efficiency balance. It is shown that the representation of the fully coupled system within the optimisation framework requires the introduction of a more complex multidisciplinary analysis workflow. Methods to increase the efficiency of such frameworks are indicated. Non-conventional support structure configurations can be conceived through the application of more advanced parametrisation schemes, which is feasible together with design space size reduction techniques. The set of design criteria should be extended by operation and maintenance cost, and power production metrics. The main technical limitations of the frameworks adopted so far include the inability to accurately analyse a diverse range of support structure topologies in multiple design load cases within a common framework. The cost approximation models should be extended by the chosen aspects of pre-operational phases, to better explore the benefits of the floating platforms.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Ocean Engineering}, + author = {Patryniak, Katarzyna and Collu, Maurizio and Coraddu, Andrea}, + month = may, + year = {2022}, + keywords = {Coupled dynamics, Floating offshore wind turbine, MDAO, Multidisciplinary optimisation, Offshore wind, Support structure}, + pages = {111002}, +} + +@article{giannini_wave_2022, + title = {Wave energy converters design combining hydrodynamic performance and structural assessment}, + volume = {249}, + issn = {0360-5442}, + url = {https://www.sciencedirect.com/science/article/pii/S0360544222005448}, + doi = {10.1016/j.energy.2022.123641}, + abstract = {The design of a wave energy converter (WEC) is a many-sided and important assignment that determines its future technical and economic viability. Presently, there is a lack of structured design methodologies that take into account both the hydrodynamic performance, structural reliability and economic data from early development stages. Therefore, a new methodology is proposed, aiming for a viable predesign solution for avoiding major setbacks at later stages. It includes a series of steps related to the initial design definition, hydrodynamic analysis, yield strength investigation and early-stage economic assessment. For demonstration, the methodology is applied to progress a sloped motion WEC for near-shore locations. The original WEC configuration is also assessed and the novel design, which allows reducing the mass of floating elements by 70\%, is developed. It is found that: for recurrent sea states, the capture width ratio of the new design (20–40\%) is similar to the one of the original design (20–50\%), the estimated cost of the device is reduced by 28.6\% and the payback period is reduced by 2.4 years. Overall, the results obtained for the case study demonstrated the interest in the proposed methodology that can assist in the development and analysis of early-stage WEC concepts.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Energy}, + author = {Giannini, Gianmaria and Rosa-Santos, Paulo and Ramos, Victor and Taveira-Pinto, Francisco}, + month = jun, + year = {2022}, + keywords = {Economic analysis, Hydrodynamic structural analysis, Multi-scope design development, Pivoting wave energy converter, Wave loads, marine Energy}, + pages = {123641}, +} + +@misc{noauthor_dtocean_nodate, + title = {{DTOcean}+}, + url = {https://www.dtoceanplus.eu/Tools/DTOcean}, + language = {en-GB}, + urldate = {2023-03-01}, + journal = {DTOceanPlus - Design tools for ocean energy systems}, +} + +@article{garcia-teruel_geometry_2020, + title = {Geometry optimisation of wave energy converters}, + url = {https://era.ed.ac.uk/handle/1842/36912}, + doi = {10.7488/era/213}, + abstract = {Given the large energy resource available in ocean waves, wave energy +converters have been developed over the last decades for power extraction. +Various concepts exist, and research efforts are now focussed on reducing their +levelised cost of energy. The device structure has been identified to have the +highest cost reduction potential. For this reason, a number of hull geometry +optimisation studies have been performed in recent years. In these studies, +costs have been mostly represented through the device size or weight, and +devices have been optimised for specific sea conditions, based generally on +simple shapes such as spheres or cylinders. However, there is no consensus in +the employed methodology and resulting shapes might be difficult to manu +facture or unable to survive in high energetic seas. The goal of this thesis is, +therefore, to develop a device-agnostic methodology for geometry optimisation +of wave energy converters, which enables the generation of improved hull shapes +that reduce the levelised cost of electricity. An existing approach for single +body floating point-absorbers, exhibiting some of the best practices found in +this field, is re-implemented and extended to improve its robustness for its +application to different case studies. Each of the elements composing this +approach (how the geometry is defined, the choice of objective function and +the choice of optimisation algorithm and set-up) are then evaluated and their +suitability is assessed through comparison to other strategies. The method is +then applied to a range of study cases, such as to study the effect of location +and of the choice of modes-of-motion for power extraction on the optimal hull +shape. Further extensions of the method to include manufacturability and +reliability considerations, as well as to include the effect of mass distribution +are investigated. As a result, recommendations are formulated for the set-up of +an early stage WEC design geometry optimisation process. Additionally, trends +for the hull shape design are identified for the considered cases - depending +on, location, the choice of the modes of motion for power extraction, and how +costs are accounted for.}, + language = {en}, + urldate = {2023-03-01}, + publisher = {The University of Edinburgh}, + author = {Garcia-Teruel, Anna}, + month = jul, + year = {2020}, + note = {Accepted: 2020-03-31T10:31:18Z}, +} + +@misc{noauthor_proteusds_nodate, + title = {{ProteusDS} {\textbar} {A} flexible {Dynamic} {Analysis} {Tool} for {Ocean} {Industries} {\textbar} {DSA}}, + url = {https://dsaocean.com/proteusds/overview/}, + abstract = {ProteusDS is a full-featured dynamic analysis software capable of simulating vessels, flexible structures, lines and technologies in harsh marine environments. It is modern, customizable and validated.}, + language = {en-CA}, + urldate = {2023-03-01}, + journal = {DSA Ocean}, +} + +@misc{ruehl_wec-simwec-sim_2022, + title = {{WEC}-{Sim}/{WEC}-{Sim}: {WEC}-{Sim} v5.0.1}, + shorttitle = {{WEC}-{Sim}/{WEC}-{Sim}}, + url = {https://zenodo.org/record/7121186}, + doi = {10.5281/zenodo.7121186}, + abstract = {New Features This is a bug fix release. New features since the previous release are not included. Bug Fixes Fix saveViz by @jtgrasb in https://github.com/WEC-Sim/WEC-Sim/pull/866 Fix typo in docs. by @mancellin in https://github.com/WEC-Sim/WEC-Sim/pull/898 Update documentation tutorials to fix OSWEC inertia by @jtgrasb in https://github.com/WEC-Sim/WEC-Sim/pull/894 CI: Split docs jobs {\textbar} Add color to docs logs {\textbar} Cancel runs on new push {\textbar} Add 2021b to MATLAB versions by @H0R5E in https://github.com/WEC-Sim/WEC-Sim/pull/862 Mac path fixes and make outputDir public by @ahmedmetin in https://github.com/WEC-Sim/WEC-Sim/pull/874 wecSimPCT Fix (Master) by @yuyihsiang in https://github.com/WEC-Sim/WEC-Sim/pull/870 Fix image bug in PTO-Sim in Library Browser by @jleonqu in https://github.com/WEC-Sim/WEC-Sim/pull/896 update to v5.0 citation by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/911 fix non-linear hydro by @dforbush2 in https://github.com/WEC-Sim/WEC-Sim/pull/910 Pull dev bugfixes into master by @akeeste @jtgrasb in https://github.com/WEC-Sim/WEC-Sim/pull/950 (includes https://github.com/WEC-Sim/WEC-Sim/pull/929 https://github.com/WEC-Sim/WEC-Sim/pull/917 https://github.com/WEC-Sim/WEC-Sim/pull/884 by @jtgrasb) New Contributors @mancellin made their first contribution in https://github.com/WEC-Sim/WEC-Sim/pull/898 @ahmedmetin made their first contribution in https://github.com/WEC-Sim/WEC-Sim/pull/874 Issues and Pull Requests {\textgreater}52 issues closed since v5.0 {\textgreater}23 PRs merged since v5.0 Full Changelog: https://github.com/WEC-Sim/WEC-Sim/compare/v5.0...v5.0.1}, + urldate = {2023-03-01}, + publisher = {Zenodo}, + author = {Ruehl, Kelley and Keester, Adam and Ströfer, Carlos A. Michelén and nathanmtom and Topper, Mathew and Lawson, Michael and dforbush2 and Ling, Bradley A. and jtgrasb and j-vanrij and Sal and jhbates and Ogden, David and Nguyen, Lily and Jeffalo1 and Leon, Jorge and sedwardsand and Alves, Erick F. and crobarcro and emiliofa and ratanakso and Rashid, Ahmed and Aquaharmonics and Sauer, Filip and Ancellin, Matthieu and NREL-Jim-McNally and SiHeTh and gparisella and Hall, Matt and yuyihsiang}, + month = sep, + year = {2022}, +} + +@article{balitsky_analyzing_2018, + title = {Analyzing the {Near}-{Field} {Effects} and the {Power} {Production} of an {Array} of {Heaving} {Cylindrical} {WECs} and {OSWECs} {Using} a {Coupled} {Hydrodynamic}-{PTO} {Model}}, + volume = {11}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/11/12/3489}, + doi = {10.3390/en11123489}, + abstract = {The Power Take-Off (PTO) system is the key component of a Wave Energy Converter (WEC) that distinguishes it from a simple floating body because the uptake of the energy by the PTO system modifies the wave field surrounding the WEC. Consequently, the choice of a proper PTO model of a WEC is a key factor in the accuracy of a numerical model that serves to validate the economic impact of a wave energy project. Simultaneously, the given numerical model needs to simulate many WEC units operating in close proximity in a WEC farm, as such conglomerations are seen by the wave energy industry as the path to economic viability. A balance must therefore be struck between an accurate PTO model and the numerical cost of running it for various WEC farm configurations to test the viability of any given WEC farm project. Because hydrodynamic interaction between the WECs in a farm modifies the incoming wave field, both the power output of a WEC farm and the surface elevations in the ‘near field’ area will be affected. For certain types of WECs, namely heaving cylindrical WECs, the PTO system strongly modifies the motion of the WECs. Consequently, the choice of a PTO system affects both the power production and the surface elevations in the ‘near field’ of a WEC farm. In this paper, we investigate the effect of a PTO system for a small wave farm that we term ‘WEC array’ of 5 WECs of two types: a heaving cylindrical WEC and an Oscillating Surge Wave Energy Converter (OSWEC). These WECs are positioned in a staggered array configuration designed to extract the maximum power from the incident waves. The PTO system is modelled in WEC-Sim, a purpose-built WEC dynamics simulator. The PTO system is coupled to the open-source wave structure interaction solver NEMOH to calculate the average wave field η in the ‘near-field’. Using a WEC-specific novel PTO system model, the effect of a hydraulic PTO system on the WEC array power production and the near-field is compared to that of a linear PTO system. Results are given for a series of regular wave conditions for a single WEC and subsequently extended to a 5-WEC array. We demonstrate the quantitative and qualitative differences in the power and the ‘near-field’ effects between a 5-heaving cylindrical WEC array and a 5-OSWEC array. Furthermore, we show that modeling a hydraulic PTO system as a linear PTO system in the case of a heaving cylindrical WEC leads to considerable inaccuracies in the calculation of average absorbed power, but not in the near-field surface elevations. Yet, in the case of an OSWEC, a hydraulic PTO system cannot be reduced to a linear PTO coefficient without introducing substantial inaccuracies into both the array power output and the near-field effects. We discuss the implications of our results compared to previous research on WEC arrays which used simplified linear coefficients as a proxy for PTO systems.}, + language = {en}, + number = {12}, + urldate = {2023-03-01}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Balitsky, Philip and Quartier, Nicolas and Verao Fernandez, Gael and Stratigaki, Vasiliki and Troch, Peter}, + month = dec, + year = {2018}, + note = {Number: 12}, + keywords = {BEM, NEMOH, PTO system, PTO system tuning, PTO-sim, WEC array, WEC farm, WEC-sim, hydraulic, linearization, model coupling}, + pages = {3489}, +} + +@article{de_andres_adaptability_2015, + title = {Adaptability of a generic wave energy converter to different climate conditions}, + volume = {78}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148115000270}, + doi = {10.1016/j.renene.2015.01.020}, + abstract = {This study evaluates the influence of wave climate tunability on the performance of a generic Wave Energy Converter (WEC) for different climate scenarios. The generic WEC is assumed to be composed of an array of heaving, floating cylinders. In this study, two natural periods for the cylinders of 4 s and 8 s (typical of enclosed seas and the mean Atlantic swell, respectively) and a location-tunable cylinder are considered to evaluate the influence of tuning on the power performance of the cylinder. The WEC power matrix is computed using a frequency domain model, and the performance of the WEC is evaluated along the global coasts; the met-ocean data originated from the global reanalysis database (GOW) from Reguero et al. (2012). The performance of the WEC is evaluated using two parameters: the capture width ratio (CWR), which evaluates the efficiency of the converter at each location, and the kW/Ton (KWT) parameter, which evaluates the efficiency of the converter using “economic” terms. Tuning a converter for each location displayed a positive CWR; however, the KWT was low after WEC tuning because of the weight of the structures required to tune the converter that experiences high peak periods.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Renewable Energy}, + author = {de Andres, A. and Guanche, R. and Vidal, C. and Losada, I. J.}, + month = jun, + year = {2015}, + keywords = {Adaptability, Capture width ratio, Resonance, Tuning, Wave energy converter}, + pages = {322--333}, +} + +@article{zhang_ocean_2021, + title = {Ocean wave energy converters: {Technical} principle, device realization, and performance evaluation}, + volume = {141}, + issn = {1364-0321}, + shorttitle = {Ocean wave energy converters}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032121000605}, + doi = {10.1016/j.rser.2021.110764}, + abstract = {As a renewable energy with immense development potential, ocean wave energy has abundant storage. The utilizations of wave energy technology to exploit wave energy resources have broad application prospects and an important realistic meaning. The researchers worldwide have designed many wave energy converters (WEC) with varied and structures based on different concepts. In this paper, the principle of wave energy power generation technology is reviewed and analyzed from basic structure and power take-off (PTO). Some typical WEC and multi-degree of freedom WEC (MDWEC) and their realization are introduced. The analytic hierarchy process (AHP) is employed to construct a comprehensive multi-index model and evaluate the present WEC from five perspectives: energy capture, technology cost economic, reliability, environmental friendliness and adaptability. Results show that in the field of wave energy utilization and development, the MDWEC has a good comprehensive performance and a wide application range. Qualitative and quantitative methods are adopted to find the optimal WEC technical scheme based on the review and analysis of technology principles of wave energy power generation and realization of devices, which can be used for the development of WEC.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Zhang, Yongxing and Zhao, Yongjie and Sun, Wei and Li, Jiaxuan}, + month = may, + year = {2021}, + keywords = {Device realization, Ocean wave energy, Performance evaluation, Technical principles, Wave energy converters}, + pages = {110764}, +} + +@misc{noauthor_small_nodate, + title = {Small {WEC}}, + url = {https://apps.openei.org/swec/}, + urldate = {2023-03-01}, +} + +@article{trueworthy_wave_2020, + title = {The {Wave} {Energy} {Converter} {Design} {Process}: {Methods} {Applied} in {Industry} and {Shortcomings} of {Current} {Practices}}, + volume = {8}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2077-1312}, + shorttitle = {The {Wave} {Energy} {Converter} {Design} {Process}}, + url = {https://www.mdpi.com/2077-1312/8/11/932}, + doi = {10.3390/jmse8110932}, + abstract = {Wave energy is among the many renewable energy technologies being researched and developed to address the increasing demand for low-emissions energy. The unique design challenges for wave energy converter design—integrating complex and uncertain technological, economic, and ecological systems, overcoming the structural challenges of ocean deployment, and dealing with complex system dynamics—have lead to a disjointed progression of research and development. There is no common design practice across the wave energy industry and there is no published synthesis of the practices that are used by developers. In this paper, we summarize the methods being employed in WEC design as well as promising methods that have yet to be applied. We contextualize these methods within an overarching design process. We present results from a survey of WEC developers to identify methods that are common in industry. From the review and survey results, we conclude that the most common methods of WEC design are iterative methods in which design parameters are defined, evaluated, and then changed based on evaluation results. This leaves a significant space for improvement of methods that help designers make better-informed decisions prior to sophisticated evaluation, and methods of using the evaluation results to make better design decisions during iteration. Despite the popularity of optimization methods in academic research, they are less common in industry development. We end this paper with a summary of the areas of WEC design in which the testing and development of new methods is necessary, and where more research is required to fully understand the influence of design decisions on WEC performance.}, + language = {en}, + number = {11}, + urldate = {2023-03-01}, + journal = {Journal of Marine Science and Engineering}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Trueworthy, Ali and DuPont, Bryony}, + month = nov, + year = {2020}, + note = {Number: 11}, + keywords = {conceptual design, design methods, industry survey, stakeholder requirements, wave energy converter}, + pages = {932}, +} + +@book{bazilian_analytical_2009, + title = {Analytical {Methods} for {Energy} {Diversity} and {Security}: {Portfolio} {Optimization} in the {Energy} {Sector}: {A} {Tribute} to the work of {Dr}. {Shimon} {Awerbuch}}, + isbn = {978-0-08-091531-9}, + shorttitle = {Analytical {Methods} for {Energy} {Diversity} and {Security}}, + abstract = {Analytical Methods for Energy Diversity and Security is an ideal volume for professionals in academia, industry and government interested in the rapidly evolving area at the nexus between energy and climate change policy. The cutting-edge international contributions allow for a wide coverage of the topic. Analytical Methods for Energy Diversity and Security focuses on the consideration of financial risk in the energy sector. It describes how tools borrowed from financial economic theory, in particular mean-variance portfolio theory, can provide insights on the costs and benefits of diversity, and thus inform investment decision making in conditions of uncertainty. It gives the reader an in-depth understanding of how to manage risk at a time when the world’s focus is on this area. The book provides insights from leading authorities in the area of energy security. It gives readers abundant, rigorous analysis and guidance at a critical time in facing the twin challenges of energy security and climate change. The book also highlights the role of clean energy technology in moving towards future diverse and intelligent electricity systems. It will be a trusted, first point of reference for decision-makers in the field of energy policy. The book includes a foreword by the 2007 Nobel Peace Prize winner. All royalties from sale of this book will be donated to charities working in the energy sector in the developing world. Theoretical underpinning and applied use of Portfolio theory in the energy sector In-depth consideration of risk Contributions from leading international energy economists Innovative methodologies for thinking about energy security and diversity}, + publisher = {Elsevier}, + author = {Bazilian, Morgan and Roques, Fabien}, + month = mar, + year = {2009}, + note = {Google-Books-ID: iV1qIPxGM4wC}, + keywords = {Business \& Economics / Industries / Energy, Technology \& Engineering / Power Resources / General}, +} + +@article{jurasz_review_2020, + title = {A review on the complementarity of renewable energy sources: {Concept}, metrics, application and future research directions}, + volume = {195}, + issn = {0038-092X}, + shorttitle = {A review on the complementarity of renewable energy sources}, + url = {https://www.sciencedirect.com/science/article/pii/S0038092X19311831}, + doi = {10.1016/j.solener.2019.11.087}, + abstract = {Global and regional trends indicate that energy demand will soon be covered by a widespread deployment of renewable energy sources. However, the weather and climate driven energy sources are characterized by a significant spatial and temporal variability. One of the commonly mentioned solutions to overcome the mismatch between demand and supply provided by renewable generation is a hybridization of two or more energy sources into a single power station (like wind-solar, solar-hydro or solar-wind-hydro). The operation of hybrid energy sources is based on the complementary nature of renewable sources. Considering the growing importance of such systems and increasing number of research activities in this area this paper presents a comprehensive review of studies which investigated, analyzed, quantified and utilized the effect of temporal, spatial and spatiotemporal complementarity between renewable energy sources. The review starts with a brief overview of available research papers, formulates detailed definition of major concepts, summarizes current research directions and ends with prospective future research activities. The review provides a chronological and spatial information with regard to the studies on the complementarity concept.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Solar Energy}, + author = {Jurasz, J. and Canales, F. A. and Kies, A. and Guezgouz, M. and Beluco, A.}, + month = jan, + year = {2020}, + keywords = {Complementarity index, Non-dispatchable energy sources, Reliability, Variability, Weather-driven}, + pages = {703--724}, +} + +@misc{noauthor_system_2022, + title = {System {Advisor} {Model} ({SAM})}, + copyright = {BSD-3-Clause}, + url = {https://github.com/NREL/SAM}, + abstract = {System Advisor Model (SAM)}, + urldate = {2022-05-13}, + publisher = {National Renewable Energy Laboratory}, + month = apr, + year = {2022}, + note = {original-date: 2013-01-10T02:52:47Z}, +} + +@book{franklin2014feedback, + series = {Always learning}, + title = {Feedback control of dynamic systems}, + isbn = {978-1-292-06890-9}, + url = {https://books.google.com/books?id=yO2hoAEACAAJ}, + publisher = {Pearson}, + author = {Franklin, G.F. and Powell, J.D. and Emami-Naeini, A.}, + year = {2014}, +} + +@incollection{FPE, + edition = {7}, + title = {Equivalent {Gain} {Analysis} {Using} {Frequency} {Response}: {Describing} {Functions}}, + isbn = {978-1-292-06890-9}, + url = {https://books.google.com/books?id=yO2hoAEACAAJ}, + booktitle = {Feedback control of dynamic systems}, + publisher = {Pearson}, + author = {Franklin, G.F. and Powell, J.D. and Emami-Naeini, A.}, + year = {2015}, + pages = {678--682}, +} + +@misc{noauthor_feedback_nodate, + title = {Feedback {Control} of {Dynamic} {Systems}, 7th {Edition}}, + url = {https://www.pearson.com/content/one-dot-com/one-dot-com/us/en/higher-education/program.html}, + abstract = {Feedback Control of Dynamic Systems, 7th Edition}, + language = {en}, + urldate = {2022-05-12}, +} + +@misc{noauthor_paretosearch_nodate, + title = {paretosearch {Algorithm} - {MATLAB} \& {Simulink}}, + url = {https://www.mathworks.com/help/gads/paretosearch-algorithm.html}, + urldate = {2022-02-21}, +} + +@article{goteman_methods_2014, + title = {Methods of reducing power fluctuations in wave energy parks}, + volume = {6}, + url = {https://aip.scitation.org/doi/10.1063/1.4889880}, + doi = {10.1063/1.4889880}, + number = {4}, + urldate = {2022-02-14}, + journal = {Journal of Renewable and Sustainable Energy}, + publisher = {American Institute of Physics}, + author = {Göteman, Malin and Engström, Jens and Eriksson, Mikael and Isberg, Jan and Leijon, Mats}, + month = jul, + year = {2014}, + pages = {043103}, +} + +@article{al_shami_parameter_2019, + title = {A parameter study and optimization of two body wave energy converters}, + volume = {131}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148118307833}, + doi = {10.1016/j.renene.2018.06.117}, + abstract = {This paper studies the multidisciplinary nature of two body wave energy converters by a parametric study based on the Taguchi method which helps to understand the effect of different dependent parameters on the wave energy conversion performance. Seven different parameters are analyzed and their effect on the maximum captured power, resonance frequency and bandwidth is studied. An interesting comparison between a cylindrical submerged body and a spherical one was made in terms of the system's viscous damping and hydrodynamics. The best system parameter combinations based on the maximum output power, best resonant frequency and frequency bandwidth were identified from the outcomes of the Taguchi method and optimized to capture the maximum power to operate in the specific (Australian) sea regions where the waves' frequencies are relatively low. This paper should provide a guideline for designers to tune their parameters based on the desired performance and sea state.}, + language = {en}, + urldate = {2022-02-14}, + journal = {Renewable Energy}, + author = {Al Shami, Elie and Wang, Xu and Zhang, Ran and Zuo, Lei}, + month = feb, + year = {2019}, + keywords = {Bandwidth, Optimization, Parameter, Power, Taguchi method, Two body wave energy converters}, + pages = {1--13}, +} + +@article{aderinto_ocean_2018, + title = {Ocean {Wave} {Energy} {Converters}: {Status} and {Challenges}}, + volume = {11}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {Ocean {Wave} {Energy} {Converters}}, + url = {https://www.mdpi.com/1996-1073/11/5/1250}, + doi = {10.3390/en11051250}, + abstract = {Wave energy is substantial as a resource, and its potential to significantly contribute to the existing energy mix has been identified. However, the commercial utilization of wave energy is still very low. This paper reviewed the background of wave energy harvesting technology, its evolution, and the present status of the industry. By covering the theoretical formulations, wave resource characterization methods, hydrodynamics of wave interaction with the wave energy converter, and the power take-off and electrical systems, different challenges were identified and discussed. Solutions were suggested while discussing the challenges in order to increase awareness and investment in wave energy industry as a whole.}, + language = {en}, + number = {5}, + urldate = {2022-02-14}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Aderinto, Tunde and Li, Hua}, + month = may, + year = {2018}, + note = {Number: 5}, + keywords = {challenges, design, wave energy, wave energy converters}, + pages = {1250}, +} + +@article{franzitta_desalination_2016, + title = {The {Desalination} {Process} {Driven} by {Wave} {Energy}: {A} {Challenge} for the {Future}}, + volume = {9}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {The {Desalination} {Process} {Driven} by {Wave} {Energy}}, + url = {https://www.mdpi.com/1996-1073/9/12/1032}, + doi = {10.3390/en9121032}, + abstract = {The correlation between water and energy is currently the focus of several investigations. In particular, desalination is a technological process characterized by high energy consumption; nevertheless, desalination represents the only practicable solution in several areas, where the availability of fresh water is limited but brackish water or seawater are present. These natural resources (energy and water) are essential for each other; energy system conversion needs water, and electrical energy is necessary for water treatment or transport. Several interesting aspects include the study of saline desalination as an answer to freshwater needs and the application of renewable energy (RE) devices to satisfy electrical energy requirement for the desalination process. A merge between renewable energy and desalination is beneficial in that it is a sustainable and challenging option for the future. This work investigates the possibility of using renewable energy sources to supply the desalination process. In particular, as a case study, we analyze the application of wave energy sources in the Sicilian context.}, + language = {en}, + number = {12}, + urldate = {2022-02-14}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Franzitta, Vincenzo and Curto, Domenico and Milone, Daniele and Viola, Alessia}, + month = dec, + year = {2016}, + note = {Number: 12}, + keywords = {desalination, renewable energy, water, wave}, + pages = {1032}, +} + +@inproceedings{driscol_wave-powered_2019, + title = {Wave-{Powered} {AUV} {Recharging}: {A} {Feasibility} {Study}}, + shorttitle = {Wave-{Powered} {AUV} {Recharging}}, + url = {https://asmedigitalcollection.asme.org/OMAE/proceedings/OMAE2019/58899/V010T09A023/1068258}, + doi = {10.1115/OMAE2019-95383}, + language = {en}, + urldate = {2022-02-14}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Driscol, Blake P. and Gish, Andrew and Coe, Ryan G.}, + month = nov, + year = {2019}, +} + +@inproceedings{ramudu_ocean_2011, + title = {Ocean {Wave} {Energy}-{Driven} {Desalination} {Systems} for {Off}-grid {Coastal} {Communities} in {Developing} {Countries}}, + doi = {10.1109/GHTC.2011.38}, + abstract = {Resolute Marine Energy, Inc. (RME) is based in Boston, MA and is developing ocean wave energy converters (WECs) to benefit remote off-grid communities in developing nations. Our two WEC technologies are based on the heaving and surging motion of a buoy on the ocean surface (the 3-D WEC) and on a bottom-mounted hinged paddle that oscillates in the full water column (the Surge WEC). Our computer models and wave tank tests have revealed conversion efficiencies as high as 31\% in random sea states for the 3-D WEC and 40\% for the Surge WEC. Our objective is to complete all the testing and prototyping of both WECs by the end of 2012. RME plans to use the Surge WEC in conjunction with a reverse osmosis seawater desalination system in order to provide fresh water to coastal communities in developing countries. The proposed system will operate completely off-grid and will represent a clean and low-cost solution to the water scarcity problem commonly faced by remote communities. The fresh water production process comprises three stages: energy extraction from waves, process water acquisition and pressure regulation, and reverse osmosis. We estimate that an array of about 25 Surge WECs can produce 0.9 million m3 of fresh water per year, which is enough to meet the water needs of about 30,000 people while eliminating about 104 thousand tons of carbon dioxide emissions per year. RME has identified a municipality in South Africa as its launch customer and has the support of the South African Department of Water Affairs to develop the project. In South Africa, 1.97 million people live on the coast where wave energy is abundant and each person needs an additional 700 m3 of water per person per year to comply with United Nations Millennium Development Goals. After the first deployment, RME will expand to other remote communities in South Africa.}, + booktitle = {2011 {IEEE} {Global} {Humanitarian} {Technology} {Conference}}, + author = {Ramudu, Eshwan}, + month = oct, + year = {2011}, + keywords = {Communities, Desalination, Ocean waves, Oceans, Sea measurements, Surges, coastal communities, desalination, ocean wave energy, renewable energy, water}, + pages = {287--289}, +} + +@inproceedings{polinder_wave_2005, + title = {Wave energy converters and their impact on power systems}, + doi = {10.1109/FPS.2005.204210}, + abstract = {The objective of this paper is to give an introduction into ocean wave energy converters and their impact on power systems. The potential of wave energy is very large. There are a lot of different methods and systems for converting this power into electrical power, such as oscillating water columns, hinged contour devices as the Pelamis, overtopping devices as the wave dragon and the Archimedes wave swing. The main characteristics of these wave energy converters are discussed. A lot of research, development and engineering work is necessary to develop the experimental systems into reliable and cost-effective power stations. The wide variety of systems makes it difficult to say general things about power quality. However, the large variations of output power are a common problem. Whether this can be solved by using wave farms has to be investigated further}, + booktitle = {2005 {International} {Conference} on {Future} {Power} {Systems}}, + author = {Polinder, H. and Scuotto, M.}, + month = nov, + year = {2005}, + keywords = {Archimedes Wave Swing, Energy conversion, Ocean wave energy, Ocean waves, Petroleum, Power engineering and energy, Power generation, Power quality, Power system reliability, Power systems, Reliability engineering, Renewable energy resources, oscillating water column, power quality, power systems, renewable energy, wave energy conversion}, + pages = {9 pp.--9}, +} + +@article{borettiSolar, + title = {High-frequency standard deviation of the capacity factor of renewable energy facilities: {Part} 1—{Solar} photovoltaic}, + volume = {2}, + issn = {2578-4862}, + shorttitle = {High-frequency standard deviation of the capacity factor of renewable energy facilities}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/est2.101}, + doi = {10.1002/est2.101}, + abstract = {It is important to secure for every solar photovoltaic energy installation the highest-possible average (mean) capacity factor, as well as the lowest-possible SD, this latter computed with high frequency. High-frequency data of solar photovoltaic energy facilities are, however, very hard to be found. There are no estimations in the literature of the SD of the capacity factor of solar photovoltaic energy installations sampled with high frequency. Here, we show the data sampled every 5 minutes for the solar photovoltaic energy facilities connected to the Australian National Electricity Market grid during the year 2018. The average capacity factors are about 27\%-28\% flat panel, and 31\%-32\% tracking flat panel. The SDs have larger values at about 37\%-38\%, for coefficients of variation 120\%-130\%. As solar photovoltaic energy facilities only produce electricity during the daylight time, that is predictable, the statistic analysis is also applied to the daylight times only. While average daylight-only capacity factors are about twice the previous values, SDs are slightly less, for coefficients of variations more than halved at 55\%-65\%. The analysis highlights the extreme variability of solar energy helping the design of the energy storage needed for making possible an efficient, resilient, renewable energy-only grid. The collected and interpreted information and the provided analysis are filing a gap in the area of renewable energy and energy harvesting technology based on wind and solar photovoltaics where variability has been so far underevaluated.}, + language = {en}, + number = {1}, + urldate = {2022-01-26}, + journal = {Energy Storage}, + author = {Boretti, Alberto}, + year = {2020}, + keywords = {Australia, energy storage, renewable energy, solar energy, variability analysis, variability measures}, + pages = {e101}, +} + +@article{falcaoHydro, + title = {Wave energy utilization: {A} review of the technologies}, + volume = {14}, + issn = {1364-0321}, + shorttitle = {Wave energy utilization}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032109002652}, + doi = {10.1016/j.rser.2009.11.003}, + abstract = {Sea wave energy is being increasingly regarded in many countries as a major and promising resource. The paper deals with the development of wave energy utilization since the 1970s. Several topics are addressed: the characterization of the wave energy resource; theoretical background, with especial relevance to hydrodynamics of wave energy absorption and control; how a large range of devices kept being proposed and studied, and how such devices can be organized into classes; the conception, design, model-testing, construction and deployment into real sea of prototypes; and the development of specific equipment (air and water turbines, high-pressure hydraulics, linear electrical generators) and mooring systems.}, + language = {en}, + number = {3}, + urldate = {2022-01-26}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Falcão, António F. de O.}, + month = apr, + year = {2010}, + keywords = {Equipment, Power take-off, Renewable energy, Review, Wave energy, Wave power}, + pages = {899--918}, +} + +@techreport{RM3, + address = {Albuquerque, New Mexico}, + title = {Methodology for {Design} and {Economic} {Analysis} of {Marine} {Energy} {Conversion} ({MEC}) {Technologies}}, + shorttitle = {{RM3}}, + url = {https://energy.sandia.gov/wp-content/gallery/uploads/SAND2014-9040-RMP-REPORT.pdf}, + language = {en}, + number = {SAND2014-9040}, + institution = {Sandia National Laboratories}, + author = {Neary, Vincent S and Previsic, Mirko and Jepsen, Richard A and Lawson, Michael J and Yu, Yi-Hsiang and Copping, Andrea E and Fontaine, Arnold A and Hallett, Kathleen C and Murray, Dianne K}, + month = mar, + year = {2014}, + pages = {262}, +} + +@book{newman, + title = {Marine {Hydrodynamics}}, + shorttitle = {newman}, + url = {https://direct.mit.edu/books/book/2693/Marine-Hydrodynamics}, + abstract = {Marine Hydrodynamics was specifically designed to meet the need for an ocean hydrodynamics text that is up-to-date in terms of both content and approach. The bo}, + language = {en}, + urldate = {2022-01-26}, + author = {Newman, J. N.}, + month = aug, + year = {1977}, +} + +@article{boretti_high-frequency_2020, + title = {High-frequency standard deviation of the capacity factor of renewable energy facilities: {Part} 1—{Solar} photovoltaic}, + volume = {2}, + issn = {2578-4862}, + shorttitle = {High-frequency standard deviation of the capacity factor of renewable energy facilities}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/est2.101}, + doi = {10.1002/est2.101}, + abstract = {It is important to secure for every solar photovoltaic energy installation the highest-possible average (mean) capacity factor, as well as the lowest-possible SD, this latter computed with high frequency. High-frequency data of solar photovoltaic energy facilities are, however, very hard to be found. There are no estimations in the literature of the SD of the capacity factor of solar photovoltaic energy installations sampled with high frequency. Here, we show the data sampled every 5 minutes for the solar photovoltaic energy facilities connected to the Australian National Electricity Market grid during the year 2018. The average capacity factors are about 27\%-28\% flat panel, and 31\%-32\% tracking flat panel. The SDs have larger values at about 37\%-38\%, for coefficients of variation 120\%-130\%. As solar photovoltaic energy facilities only produce electricity during the daylight time, that is predictable, the statistic analysis is also applied to the daylight times only. While average daylight-only capacity factors are about twice the previous values, SDs are slightly less, for coefficients of variations more than halved at 55\%-65\%. The analysis highlights the extreme variability of solar energy helping the design of the energy storage needed for making possible an efficient, resilient, renewable energy-only grid. The collected and interpreted information and the provided analysis are filing a gap in the area of renewable energy and energy harvesting technology based on wind and solar photovoltaics where variability has been so far underevaluated.}, + language = {en}, + number = {1}, + urldate = {2021-12-14}, + journal = {Energy Storage}, + author = {Boretti, Alberto}, + year = {2020}, + keywords = {Australia, energy storage, renewable energy, solar energy, variability analysis, variability measures}, + pages = {e101}, +} + +@article{noauthor_notitle_nodate, +} + +@inproceedings{du_control_2021, + title = {Control {Co}-{Design} for {Rotor} {Blades} of {Floating} {Offshore} {Wind} {Turbines}}, + url = {https://asmedigitalcollection.asme.org/IMECE/proceedings/IMECE2020/84546/V07AT07A052/1099255}, + doi = {10.1115/IMECE2020-24605}, + language = {en}, + urldate = {2021-10-20}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Du, Xianping and Burlion, Laurent and Bilgen, Onur}, + month = feb, + year = {2021}, +} + +@article{mwasilu_potential_2019, + title = {Potential for power generation from ocean wave renewable energy source: a comprehensive review on state-of-the-art technology and future prospects}, + volume = {13}, + issn = {1752-1424}, + shorttitle = {Potential for power generation from ocean wave renewable energy source}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1049/iet-rpg.2018.5456}, + doi = {10.1049/iet-rpg.2018.5456}, + abstract = {This study presents a comprehensive review of the ocean wave technology and prospects of the wave energy penetration to cater to clean global energy demand. An ocean wave is a remarkable energy resource, but it presents a very small share in the global energy mix because of various challenges and limitations encountered to unleash its potential. This study evaluates intensively the complex barriers to the ocean energy technology deployment. The existing and prospective major wave energy projects are extensively examined to identify the learned lessons and optimise possible technological solutions to close the gap in the energy market. Furthermore, limiting and motivating factors to foster the global wave energy potential growth are deeply discussed to ignite new research directions and promising solutions. In particular, the wave energy converters as the underpinning enabling technology are fully investigated regarding their technical readiness, reliability, competitiveness and critical challenges. To complete the power equation, possible energy conversion stages, grid connection and integration issues are dealt with in a broad view of the wave energy power system. Eventually, this study aims at providing an updated ocean wave technology review and progress while introducing new research gap to fast-track contributions in the global energy mix.}, + language = {en}, + number = {3}, + urldate = {2021-10-20}, + journal = {IET Renewable Power Generation}, + author = {Mwasilu, Francis and Jung, Jin-Woo}, + year = {2019}, + keywords = {clean global energy demand, energy market, global energy mix, global wave energy potential growth, hydroelectric power, ocean energy technology deployment, ocean wave renewable energy source, ocean waves, power generation, renewable energy sources, underpinning enabling technology, wave energy converters, wave energy penetration, wave energy power system, wave power generation}, + pages = {363--375}, +} + +@techreport{bull_technological_2013, + address = {Albuquerque, NM}, + title = {Technological {Cost}-{Reduction} {Pathways} for {Point} {Absorber} {Wave} {Energy} {Converters} in the {Marine} {Hydrokinetic} {Environment}.}, + url = {https://www.osti.gov/servlets/purl/1092993/}, + doi = {10.2172/1092993}, + abstract = {This report considers and prioritizes the potential technical cost‐reduction pathways for offshore point absorber wave energy converters designed for ocean resources. This report focuses on cost‐reduction pathways related to the device technology rather than environmental monitoring or permitting opportunities. Three sources of information were used to understand current cost drivers and develop a prioritized list of potential cost‐reduction pathways: a literature review of technical work related to offshore wave activated body point absorbers, a reference device that was developed through the DOE Reference Model project, and a webinar with each of four industry device developers. Data from these information sources were aggregated and prioritized with respect to the potential impact on the lifetime levelized cost of energy, the potential for progress, the potential for success, and the confidence in success. Results indicated the four most promising cost‐reduction pathways include advanced controls, optimized structural design, improved power conversion, and optimized device profile.}, + language = {en}, + number = {SAND2013-7204, 1092993, 470210}, + urldate = {2021-10-20}, + institution = {Sandia National Lab}, + author = {Bull, Diana and Ochs, Margaret and Laird, Daniel and Boren, Blake and Jepsen, Richard}, + month = sep, + year = {2013}, +} + +@techreport{ochs_technological_2013, + title = {Technological {Cost}-{Reduction} {Pathways} for {Point} {Absorber} {Wave} {Energy} {Converters} in the {Marine} {Hydrokinetic} {Environment}.}, + url = {https://www.osti.gov/servlets/purl/1092993/}, + doi = {10.2172/1092993}, + number = {SAND2013-7204, 1092993, 470210}, + urldate = {2021-10-20}, + author = {Ochs, Margaret and Bull, Diana and Laird, Daniel and Jepsen, Richard and Boren, Blake}, + month = sep, + year = {2013}, + pages = {SAND2013--7204, 1092993, 470210}, +} + +@article{coe_initial_2020, + title = {Initial conceptual demonstration of control co-design for {WEC} optimization}, + volume = {6}, + issn = {2198-6452}, + url = {https://doi.org/10.1007/s40722-020-00181-9}, + doi = {10.1007/s40722-020-00181-9}, + abstract = {While some engineering fields have benefited from systematic design optimization studies, wave energy converters have yet to successfully incorporate such analyses into practical engineering workflows. The current iterative approach to wave energy converter design leads to sub-optimal solutions. This short paper presents an open-source MATLAB toolbox for performing design optimization studies on wave energy converters where power take-off behavior and realistic constraints can be easily included. This tool incorporates an adaptable control co-design approach, in that a constrained optimal controller is used to simulate device dynamics and populate an arbitrary objective function of the user’s choosing. A brief explanation of the tool’s structure and underlying theory is presented. To demonstrate the capabilities of the tool, verify its functionality, and begin to explore some basic wave energy converter design relationships, three conceptual case studies are presented. In particular, the importance of considering (and constraining) the magnitudes of device motion and forces in design optimization is shown.}, + language = {en}, + number = {4}, + urldate = {2021-10-20}, + journal = {Journal of Ocean Engineering and Marine Energy}, + author = {Coe, Ryan G. and Bacelli, Giorgio and Olson, Sterling and Neary, Vincent S. and Topper, Mathew B. R.}, + month = nov, + year = {2020}, + pages = {441--449}, +} + +@misc{garcia-sanz_control_2018, + address = {Washington, DC}, + title = {Control {Co}-{Design} for {Wind}/{Tidal}/{Wave} {Energy} {Systems}}, + url = {https://arpa-e.energy.gov/sites/default/files/2.%20Garcia-Sanz_ARPA-E_Presentation.pdf}, + urldate = {2021-10-20}, + author = {Garcia-Sanz, Mario}, + month = jul, + year = {2018}, +} + +@article{garcia-sanz_control_2019, + title = {Control {Co}-{Design}: {An} engineering game changer}, + volume = {1}, + issn = {2578-0727}, + shorttitle = {Control {Co}-{Design}}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/adc2.18}, + doi = {10.1002/adc2.18}, + abstract = {Over the last few decades, control engineers have focused on developing innovative control theories and algorithms to regulate systems. These control efforts are usually at the last stage of a sequential strategy that allows engineering departments to work independently and consecutively toward the design of new products and systems. Control algorithms are usually developed at the end of that sequential process, once the mechanical, electrical, and other subsystems are completely defined. This paper discusses a different approach, named Control Co-Design (CCD). Following a concurrent engineering strategy that considers multidisciplinary subsystem interactions from the beginning of the design process, CCD applies control concepts to design the entire system and reach optimal solutions that are not achievable otherwise. This approach is a game changer for the control engineer, who will be not only the designer of advanced control algorithms but also the natural leader of the design of new products and systems. This paper describes some historic engineering breakthroughs achieved by applying CCD and explores some relevant application areas. It also presents three complementary CCD methodologies that include control-inspired paradigms, formal mathematical co-optimization techniques, and co-simulation campaigns to enhance engineering creativity and achieve radically new optimal designs.}, + language = {en}, + number = {1}, + urldate = {2021-10-20}, + journal = {Advanced Control for Applications}, + author = {Garcia-Sanz, Mario}, + year = {2019}, + keywords = {concurrent engineering, control, control co-design, design, systems engineering}, + pages = {e18}, +} + +@techreport{bull_systems_2017, + address = {Albuquerque, New Mexico}, + title = {Systems {Engineering} {Applied} to the {Development} of a {Wave} {Energy} {Farm}.}, + url = {https://www.osti.gov/biblio/1365534}, + number = {SAND2017-4507}, + institution = {Sandia National Lab}, + author = {Bull, Diana L. and Costello, Ronan Patrick and Babarit, Aurelien and Nielsen, Kim and Ferreira, Claudio Bittencourt and Kennedy, Ben and Malins, Robert Joseph and Dykes, Kathryn and Roberts, Jesse and Weber, Jochem}, + month = apr, + year = {2017}, +} + +@techreport{kilcher_marine_2021, + title = {Marine {Energy} in the {United} {States}: {An} {Overview} of {Opportunities}}, + shorttitle = {Marine {Energy} in the {United} {States}}, + url = {https://www.osti.gov/servlets/purl/1766861/}, + doi = {10.2172/1766861}, + number = {NREL/TP-5700-78773, 1766861, MainId:32690}, + urldate = {2021-10-19}, + author = {Kilcher, Levi and Fogarty, Michelle and Lawson, Michael}, + month = feb, + year = {2021}, + pages = {NREL/TP--5700--78773, 1766861, MainId:32690}, +} + +@techreport{noauthor_net_2021, + title = {Net {Zero} by 2050}, + url = {https://www.iea.org/reports/net-zero-by-2050}, + abstract = {Net Zero by 2050 - Analysis and key findings. A report by the International Energy Agency.}, + language = {en-GB}, + urldate = {2021-10-19}, + institution = {IEA}, + month = may, + year = {2021}, +} + +@misc{noauthor_climate_2019, + title = {Climate change impacts}, + url = {https://www.noaa.gov/education/resource-collections/climate/climate-change-impacts}, + urldate = {2021-10-19}, + journal = {NOAA}, + month = feb, + year = {2019}, +} + +@techreport{ipcc_summary_2021, + title = {Summary for {Policymakers}}, + url = {https://www.ipcc.ch/report/ar6/wg1/downloads/report/IPCC_AR6_WGI_SPM.pdf}, + urldate = {2021-10-19}, + institution = {Cambridge University Press}, + author = {{IPCC}}, + month = aug, + year = {2021}, +} + +@article{agte_mdo_2010, + title = {{MDO}: assessment and direction for advancement—an opinion of one international group}, + volume = {40}, + issn = {1615-147X, 1615-1488}, + shorttitle = {{MDO}}, + url = {http://link.springer.com/10.1007/s00158-009-0381-5}, + doi = {10.1007/s00158-009-0381-5}, + language = {en}, + number = {1-6}, + urldate = {2021-08-28}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Agte, Jeremy and de Weck, Olivier and Sobieszczanski-Sobieski, Jaroslaw and Arendsen, Paul and Morris, Alan and Spieck, Martin}, + month = jan, + year = {2010}, + pages = {17--33}, +} + +@incollection{cooley_municipal_2012, + address = {Oxford ; New York}, + edition = {1st edition}, + title = {Municipal {Water} {Use}}, + isbn = {978-0-19-985944-3}, + language = {English}, + booktitle = {A {Twenty}-{First} {Century} {U}.{S}. {Water} {Policy}}, + publisher = {Oxford University Press}, + author = {Cooley, Heather}, + month = jul, + year = {2012}, +} + +@misc{walton_water_2016, + title = {Water {Systems} {Need} {Investment} and {Affordability}}, + url = {https://www.circleofblue.org/2016/united-states/water-systems-need-investment-affordability/}, + abstract = {Utilities are pulled by opposing economic and infrastructure pressures.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {Circle of Blue}, + author = {Walton, Brett}, + month = mar, + year = {2016}, +} + +@incollection{fischer_citizens_2000, + address = {Durham, NC}, + title = {Citizens as {Local} {Experts}}, + isbn = {978-0-8223-2622-9}, + language = {English}, + booktitle = {Citizens, {Experts}, and the {Environment}: {The} {Politics} of {Local} {Knowledge}}, + publisher = {Duke University Press Books}, + author = {Fischer, Frank}, + month = dec, + year = {2000}, +} + +@article{hohn_flints_2016, + chapter = {Magazine}, + title = {Flint’s {Water} {Crisis} and the ‘{Troublemaker}’ {Scientist}}, + issn = {0362-4331}, + url = {https://www.nytimes.com/2016/08/21/magazine/flints-water-crisis-and-the-troublemaker-scientist.html}, + abstract = {Marc Edwards took up the cause of water activists in Michigan a year ago — and earned their trust. Now he’s fighting to keep it.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {The New York Times}, + author = {Hohn, Donovan}, + month = aug, + year = {2016}, + keywords = {Edwards, Marc (1964- ), Flint (Mich), Hazardous and Toxic Substances, Hohn, Donovan, Lead, Ruffalo, Mark, Virginia Polytechnic Institute and State University, Water, Water Pollution}, +} + +@article{bosman_ep_2016, + chapter = {U.S.}, + title = {E.{P}.{A}. {Waited} {Too} {Long} to {Warn} of {Flint} {Water} {Danger}, {Report} {Says}}, + issn = {0362-4331}, + url = {https://www.nytimes.com/2016/10/21/us/epa-waited-too-long-to-warn-of-flint-water-danger-report-says.html}, + abstract = {The findings of the agency’s internal inspector general suggests the federal government should shoulder some of the blame for the city water supply’s continued lead contamination.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {The New York Times}, + author = {Bosman, Julie}, + month = oct, + year = {2016}, + keywords = {Bosman, Julie, Environmental Protection Agency, Flint (Mich), Lead, Water, Water Pollution}, +} + +@article{edwards_flint_2016, + title = {The {Flint} {Water} {Crisis}: {Overturning} the {Research} {Paradigm} to {Advance} {Science} and {Defend} {Public} {Welfare}}, + doi = {http://dx.doi.org/10.1021/acs.est.6b03573}, + number = {50}, + journal = {Environmental Science and Technology}, + author = {Edwards, Marc A. and Pruden, Amy}, + month = aug, + year = {2016}, + pages = {8935--8936}, +} + +@techreport{davis_flint_2016, + address = {Michigan}, + title = {Flint {Water} {Advisory} {Task} {Force} {Final} {Report}}, + institution = {Office of Governor Rick Snyder}, + author = {Davis, Matthew M. and Kolb, Chris and Reynolds, Lawrence and Rothstein, Eric and Sikkema, Ken}, + month = mar, + year = {2016}, + pages = {116}, +} + +@article{sorkin_contempt_2016, + title = {The {Contempt} {That} {Poisoned} {Flint}’s {Water}}, + url = {https://www.newyorker.com/news/amy-davidson/the-contempt-that-poisoned-flints-water}, + abstract = {When Michigan officials systematically ignored tests and dismissed concerns, it was the city’s citizens who suffered.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {The New Yorker}, + author = {Sorkin, Amy Davidson}, + month = jan, + year = {2016}, +} + +@incollection{vanderwarker_water_2012, + address = {Oxford ; New York}, + edition = {1st edition}, + title = {Water and {Environmental} {Justice}}, + isbn = {978-0-19-985944-3}, + abstract = {It is zero hour for a new US water policy! At a time when many countries are adopting new national approaches to water management, the United States still has no cohesive federal policy, and water-related authorities are dispersed across more than 30 agencies. Here, at last, is a vision forwhat we as a nation need to do to manage our most vital resource. In this book, leading thinkers at world-class water research institution the Pacific Institute present clear and readable analysis and recommendations for a new federal water policy to confront our national and global challenges at acritical time.What exactly is at stake? In the 21st century, pressures on water resources in the United States are growing and conflicts among water users are worsening. Communities continue to struggle to meet water quality standards and to ensure that safe drinking water is available for all. And new challengesare arising as climate change and extreme events worsen, new water quality threats materialize, and financial constraints grow. Yet the United States has not stepped up with adequate leadership to address these problems. The inability of national policymakers to safeguard our water makes the United States increasingly vulnerable to serious disruptions of something most of us take for granted: affordable, reliable, and safe water. This book provides an independent assessment of water issues and water management inthe United States, addressing emerging and persistent water challenges from the perspectives of science, public policy, environmental justice, economics, and law. With fascinating case studies and first-person accounts of what helps and hinders good water management, this is a clear-eyed look atwhat we need for a 21st century U.S. water policy.}, + language = {English}, + booktitle = {A {Twenty}-{First} {Century} {U}.{S}. {Water} {Policy}}, + publisher = {Oxford University Press}, + author = {Vanderwarker, Amy}, + month = jul, + year = {2012}, +} + +@article{goodnough_when_2016, + chapter = {U.S.}, + title = {When the {Water} {Turned} {Brown}}, + issn = {0362-4331}, + url = {https://www.nytimes.com/2016/01/24/us/when-the-water-turned-brown.html}, + abstract = {As every major decision was made over more than a year, officials at all levels of government acted in ways that contributed to the public health emergency in Flint, Mich.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {The New York Times}, + author = {Goodnough, Abby and Davey, Monica and Smith, Mitch}, + month = jan, + year = {2016}, + keywords = {Davey, Monica, Flint (Mich), Goodnough, Abby, Lead, Michigan, Smith, Mitch, Water, Water Pollution}, +} + +@article{schmidt_bush_2008, + title = {The {Bush} {Doctrine} and the {Iraq} {War}: {Neoconservatives} {Versus} {Realists}}, + volume = {17}, + issn = {0963-6412}, + shorttitle = {The {Bush} {Doctrine} and the {Iraq} {War}}, + url = {https://doi.org/10.1080/09636410802098990}, + doi = {10.1080/09636410802098990}, + abstract = {The aim of this article is to contribute to our understanding of both the debate over the war in Iraq and its implications for the future of U.S. foreign policy by examining the relationship between neoconservatism and realism. The article begins by establishing the connection between the tenets of neoconservatism and the arguments for war against Iraq. The primary focus is on the neoconservative Bush Doctrine that served as the primary justification for the Iraq War. Next, we turn to the arguments that realists put forth in their attempt to steer America away from the road to war. The realists, however, proved to be unsuccessful in their attempt to prevent war and in the final section we address the central question of the article; why did realism fail in the debate over Iraq?}, + number = {2}, + urldate = {2021-05-27}, + journal = {Security Studies}, + author = {Schmidt, Brian C. and Williams, Michael C.}, + month = may, + year = {2008}, + pages = {191--220}, +} + +@article{kaufmann_threat_2004, + title = {Threat {Inflation} and the {Failure} of the {Marketplace} of {Ideas}: {The} {Selling} of the {Iraq} {War}}, + volume = {29}, + issn = {0162-2889}, + url = {https://doi.org/10.1162/0162288041762940}, + doi = {10.1162/0162288041762940}, + number = {1}, + urldate = {2021-05-27}, + journal = {International Security}, + author = {Kaufmann, Chaim}, + month = jul, + year = {2004}, + pages = {5--48}, +} + +@article{nelkin_political_1975, + title = {The {Political} {Impact} of {Technical} {Expertise}}, + volume = {5}, + issn = {0306-3127}, + url = {https://doi.org/10.1177/030631277500500103}, + doi = {10.1177/030631277500500103}, + language = {en}, + number = {1}, + urldate = {2021-05-27}, + journal = {Social Studies of Science}, + author = {Nelkin, Dorothy}, + month = feb, + year = {1975}, + pages = {35--54}, +} + +@book{ricks_fiasco_2006, + address = {New York}, + title = {Fiasco: {The} {American} {Military} {Adventure} in {Iraq}, 2003 to 2005}, + isbn = {978-0-14-303891-7}, + shorttitle = {Fiasco}, + abstract = {Coming from The Penguin Press in February 2009, Thomas E. Ricks's The GambleThomas E. Ricks 's \#1 New York Times bestseller, Fiasco, transformed the political dialogue on the war in Iraq. Now Ricks has picked up where Fiasco left off-Iraq, late 2005. With more newsbreaking information, including hundreds of hours of interviews with top U.S. officials who were on the ground during the surge and beyond, The Gamble is the natural companion piece to Fiasco, and the two are sure to become the definitive examinations of what ultimately went wrong in Iraq.}, + language = {English}, + publisher = {Penguin Books}, + author = {Ricks, Thomas E.}, + year = {2006}, +} + +@inproceedings{grandi_evaluation_2013, + address = {Ljubljana, Slovenia}, + title = {Evaluation of current ripple amplitude in three-phase {PWM} voltage source inverters}, + isbn = {978-1-4673-4913-0 978-1-4673-4911-6}, + url = {http://ieeexplore.ieee.org/document/6601146/}, + doi = {10.1109/CPE.2013.6601146}, + abstract = {Determination of current ripple in three-phase PWM voltage source inverters (VSI) is important for both design and control purposes, since this is the most popular conversion topology for energy conversion systems. In this paper the complete analysis of the peak-to-peak current ripple distribution over a fundamental period is given for three-phase VSIs. In particular, peak-to-peak current ripple amplitude is analytically determined as a function of the modulation index. Minimum, maximum, and average values are also emphasized. Although the reference is made to continuous symmetric PWM, being the most simple and effective solution to minimize the current ripple, the analysis could be easily extended to either discontinuous or unsymmetrical modulation, both carrier-based and space vector PWM. The analytical developments for all the different subcases are verified by numerical simulations.}, + language = {en}, + urldate = {2021-05-17}, + booktitle = {2013 {International} {Conference}-{Workshop} {Compatibility} {And} {Power} {Electronics}}, + publisher = {IEEE}, + author = {Grandi, G. and Loncarski, J.}, + month = jun, + year = {2013}, + pages = {156--161}, +} + +@misc{yngve_solbakken_space_2017, + title = {Space {Vector} {PWM} {Intro}}, + url = {https://www.switchcraft.org/learning/2017/3/15/space-vector-pwm-intro}, + abstract = {Get rich, smart and famous by understanding the dark arts of space vector pulse width modulation! A must for everyone aspiring to become a star in the drives community!}, + language = {en-US}, + urldate = {2021-05-16}, + journal = {Switchcraft}, + author = {{Yngve Solbakken}}, + month = may, + year = {2017}, +} + +@misc{mathworks_permanent_nodate, + title = {Permanent magnet synchronous machine}, + url = {https://www.mathworks.com/help/physmod/sps/powersys/ref/permanentmagnetsynchronousmachine.html}, + urldate = {2021-05-16}, + journal = {Mathworks Help Center Documentation}, + author = {{Mathworks}}, +} + +@book{hanselman_brushless_2006, + address = {Lebanon, Ohio}, + edition = {2}, + title = {Brushless {Permanent} {Magnet} {Motor} {Design}}, + isbn = {1-881855-15-5}, + url = {https://blog.avislab.com/uploads/2014/05/BrushlessPermanentMagnetMotorDesignVersion2.pdf}, + abstract = {Written for electrical, electronics, and mechanical engineers responsible for designing and specifying motors, the book provides details of brushless DC and synchronous motors, as well as both radial and axial motor...}, + language = {en}, + urldate = {2021-05-14}, + publisher = {Magna Physics Publishing}, + author = {Hanselman, Duane C.}, + year = {2006}, +} + +@article{decoret_fourrier_2004, + title = {Fourrier transform of an impulsion train}, + language = {en}, + author = {Decoret, Xavier}, + month = jul, + year = {2004}, + pages = {3}, +} + +@misc{ka-raceing_ev_ka-raceing_2021, + title = {{KA}-{RaceIng} {Rollout} 2021 powered by {BASF}}, + url = {https://www.youtube.com/watch?v=xPRnP5qF-JQ}, + language = {German}, + collaborator = {{KA-RaceIng e.V.}}, + month = may, + year = {2021}, +} + +@misc{noauthor_vehicles_nodate, + title = {Vehicles – {ELEFANT} {RACING}}, + url = {https://elefantracing.de/vehicles}, + urldate = {2021-05-14}, +} + +@article{haugland_new_2019, + title = {A {New} {Motor}}, + url = {https://issuu.com/revolventnu/docs/spring_magazine_2019}, + number = {1}, + journal = {Revolve}, + author = {Haugland, Kristoffer}, + month = may, + year = {2019}, + pages = {20--21}, +} + +@misc{noauthor_mythen_nodate, + title = {Mythen}, + url = {https://electric.amzracing.ch/en/team/2019}, + urldate = {2021-05-14}, + journal = {AMZ Racing}, +} + +@misc{noauthor_amz_nodate, + title = {{AMZ} {Racing}}, + url = {https://electric.amzracing.ch/en/team/2019}, + urldate = {2021-05-14}, +} + +@incollection{woodson_review_1968, + address = {New York, NY}, + title = {Review of {Electromagnetic} {Theory}}, + volume = {1}, + url = {https://ocw.mit.edu/resources/res-6-003-electromechanical-dynamics-spring-2009/front-end-matter/app_b_emd.pdf}, + booktitle = {Electromechanical {Dynamics}}, + publisher = {John Wiley and Sons, Inc.}, + author = {Woodson, Herbert H. and Melcher, James R.}, + year = {1968}, + pages = {B19--B24}, +} + +@incollection{kassakian_introduction_2010, + series = {Addison-{Wesley} series in electrical engineering}, + title = {Introduction to {Rectifier} {Circuits}}, + isbn = {978-81-317-3320-2}, + booktitle = {Principles of {Power} {Electronics}}, + publisher = {Pearson Education}, + author = {Kassakian, John G. and Schlecht, Martin F. and Verghese, George C.}, + year = {2010}, + pages = {52}, +} + +@article{formula_student_germany_team_2019, + title = {Team {Profiles} {Electric}}, + url = {https://www.formulastudent.de/fileadmin/user_upload/all/2019/PR_Media/FSG2019%20magazine%20v20190724_LQ.pdf}, + journal = {Formula Student Germany}, + author = {{Formula Student Germany}}, + month = jul, + year = {2019}, + pages = {112--126}, +} + +@phdthesis{owen_benefits_2018, + address = {Cambridge, MA}, + type = {Thesis}, + title = {The benefits of {4WD} drive for a high-performance {FSAE} electric racecar}, + copyright = {MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission.}, + url = {https://dspace.mit.edu/handle/1721.1/119907}, + abstract = {This thesis explores the performance of Rear-Wheel Drive (RWD) and Four-Wheel Drive (4WD) FSAE Electric racecars with regards to acceleration and regenerative braking. The benefits of a 4WD architecture are presented along with the tools for further optimization and understanding. The goal is to provide real, actionable information to teams deciding to pursue 4WD vehicles and quantify the results of difficult engineering trade-offs. Analytical bicycle models are used to discuss the effect of the Center of Gravity location on vehicle performance, and Acceleration-Velocity Phase Space (AVPS) is introduced as a useful tool for optimization. Lap-time Simulation is used to determine the regenerative braking energy available for recovery during a race for RWD and 4WD vehicles.}, + language = {eng}, + urldate = {2021-05-14}, + school = {Massachusetts Institute of Technology}, + author = {Owen, Elliot Douglas}, + year = {2018}, +} + +@article{wrobel_characterizing_2016, + title = {Characterizing the in situ {Thermal} {Behavior} of {Selected} {Electrical} {Machine} {Insulation} and {Impregnation} {Materials}}, + volume = {52}, + doi = {10.1109/TIA.2016.2589219}, + number = {6}, + journal = {IEEE Transactions on Industry Applications}, + author = {Wrobel, Rafal and Williamson, Samuel J. and Booker, Julian D. and Mellor, Phil H.}, + year = {2016}, + pages = {4678--4687}, +} + +@misc{sylvestre_120kw_nodate, + title = {{120kW} {Quad} {Inverter} for {All}-{Wheel} {Drive} {Electric} {Racecar}}, + url = {https://wisconsinracing.org/wp-content/uploads/2020/10/WR_Quad_Inverter.pdf}, + publisher = {Wisconsin Formula SAE Racing}, + author = {Sylvestre, Jason and Sixel, Will and Shozda, Alex}, +} + +@inproceedings{swaminathan_effect_2017, + title = {Effect of {Practical} {Losses} on {Optimal} {Design} of {Batch} {RO} {Systems}}, + booktitle = {Proceedings of {IDA} {World} {Congress} on {Desalination} and {Water} {Reuse}}, + publisher = {International Desalination Association}, + author = {Swaminathan, Jaichander and Stover, Richard L. and Tow, Emily W. and Warsinger, David M. and Lienhard, John H.}, + month = oct, + year = {2017}, +} diff --git a/pubs/applied-ocean-research-model/sections/benchmarking.tex b/pubs/applied-ocean-research-model/sections/benchmarking.tex index 46057dcf1..cfcc55381 100644 --- a/pubs/applied-ocean-research-model/sections/benchmarking.tex +++ b/pubs/applied-ocean-research-model/sections/benchmarking.tex @@ -5,7 +5,7 @@ \section{Validation and Benchmarking} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Dynamic Validation Using WEC-Sim}\label{sec:dynamic-validation} -The popular time-domain hydrodynamic simulation software WEC-Sim \cite{ruehl_wec-simwec-sim_2024} is used to validate the dynamics module. +The popular time-domain hydrodynamic simulation software WEC-Sim \citep{ruehl_wec-simwec-sim_2024} is used to validate the dynamics module. The WEC-Sim RM3 example is run with regular waves and with the device constrained to oscillate only in heave. \ifdefined\DISSERTATION Notably, the RM3 geometry provided in WEC-Sim differs slightly from the published dimensions in the RM3 report, so for validation the dimensions input to MDOcean are adjusted to match WEC-Sim. @@ -20,16 +20,14 @@ \subsection{Dynamic Validation Using WEC-Sim}\label{sec:dynamic-validation} to separate dynamics-model error from hydrodynamic-coefficient error. \fi -The absolute error in average power compared to the WEC-Sim power is less than \resultsAOR[wecsimAvgPowerErrorBestCase] in the best case and \resultsAOR[wecsimAvgPowerErrorWorstCase] in the worst case, with an error breakdown for all simulation scenarios and sea states shown in \cref{fig:error-histogram}. - -\begin{figure}[htbp] +The absolute error in average power compared to the WEC-Sim power is less than \resultsAOR[wecsimAvgPowerErrorBestCase] in the best case and \resultsAOR[wecsimAvgPowerErrorWorstCase] in the worst case, with an error breakdown for all simulation scenarios and sea states shown in \Cref{fig:error-histogram}. +\begin{figure*}[htbp] \centering \includegraphics[width=1\linewidth]{figs/from-matlab/wecsim_wcsm_multi__histogram.pdf} - \caption{Error breakdown based on WEC-Sim Validation Runs} + \caption{Error breakdown based on WEC-Sim Verification Runs} \label{fig:error-histogram} -\end{figure} - -The detailed error breakdown across drag-on/drag-off and MEEM/WAMIT coefficient configurations is provided in \cref{sec:appendix-dynamic-validation}, revealing that the dominant error sources are interactions between drag, hydrodynamic-coefficient mismatch, and the inter-body phase relationship in the 2-DOF model. +\end{figure*} +The detailed error breakdown across drag-on/drag-off and MEEM/WAMIT coefficient configurations is provided in \Cref{sec:appendix-dynamic-validation}, revealing that the dominant error sources are interactions between drag, hydrodynamic-coefficient mismatch, and the inter-body phase relationship in the 2-DOF model. \Cref{sec:appendix-dynamic-validation} also validates the describing-function approximation itself, showing total harmonic distortion below 1\% in the worst sea state and excellent agreement between the assumed and actual drag force waveforms at all four corners of the JPD. These errors are deemed acceptable for the purposes of this study, since the goal is to demonstrate the value of simultaneously analyzing multiple disciplines and the ability to quickly evaluate a large number of design options. @@ -38,40 +36,40 @@ \subsection{Dynamic Validation Using WEC-Sim}\label{sec:dynamic-validation} \subsection{Static Validation} \ifdefined\DISSERTATION - The MEEM hydrodynamic coefficients for the nominal RM3 geometry match WAMIT BEM results closely, as previously shown in Fig.~5 of \cite{mccabe_open-source_2024}, except at frequencies below 0.3~rad/s. - This is expected because the BEM solution assumes infinite depth, which requires a finite added mass at low frequency, whereas MEEM uses finite depth, where the added mass must grow logarithmically toward infinity at zero frequency \cite{mciver_added_1991}. + The MEEM hydrodynamic coefficients for the nominal RM3 geometry match WAMIT BEM results closely, as previously shown in Fig.~5 of \citep{mccabe_open-source_2024}, except at frequencies below 0.3~rad/s. + This is expected because the BEM solution assumes infinite depth, which requires a finite added mass at low frequency, whereas MEEM uses finite depth, where the added mass must grow logarithmically toward infinity at zero frequency \citep{mciver_added_1991}. For the site under consideration, the lowest-frequency sea state containing any energy is 0.4~rad/s, so the discrepancy is not a concern. - After the publication of reference~\cite{mccabe_open-source_2024}, excitation phase was added to the MEEM implementation. + After the publication of reference~\citet{mccabe_open-source_2024}, excitation phase was added to the MEEM implementation. It also matches WAMIT results well. \else - The MEEM hydrodynamic coefficients for the nominal RM3 geometry match WAMIT BEM results closely for $\omega \geq 0.3$~rad/s (Fig.~5 of \cite{mccabe_open-source_2024}); - the divergence at lower frequencies arises from differing finite-depth versus infinite-depth assumptions \cite{mciver_added_1991} and is not a concern for the site considered (minimum sea-state frequency 0.4~rad/s). + The MEEM hydrodynamic coefficients for the nominal RM3 geometry match WAMIT BEM results closely for $\omega \geq 0.3$~rad/s (Fig.~5 of \citet{mccabe_open-source_2024}); + the divergence at lower frequencies arises from differing finite-depth versus infinite-depth assumptions \citep{mciver_added_1991} and is not a concern for the site considered (minimum sea-state frequency 0.4~rad/s). \fi -The overall model is validated by comparing simulated structural forces, power, mass, and cost results to the nominal values in reference \cite{RM3}, as shown in \cref{tab:validation}. +The overall model is validated by comparing simulated structural forces, power, mass, and cost results to the nominal values in \citet{RM3}, as shown in \Cref{tab:validation}. \ifdefined\DISSERTATION Volume and center of buoyancy results are also compared to the WEC-Sim RM3 tutorial geometry, which differs slightly from the nominal RM3 geometry. - Structural calculations are additionally compared to reference \cite{previsic_reference_2011}, an unpublished report by an author of the reference model report providing more detail on the structural calculations. + Structural calculations are additionally compared to \citet{previsic_reference_2011}, an unpublished report by an author of the reference model report providing more detail on the structural calculations. \fi The mass, power, and cost track well, but the structural force in storm waves has a significant discrepancy. \ifdefined\DISSERTATION - This is because load cases in reference \cite{RM3} are derived experimentally from wave tank tests rather than a linear model. + This is because load cases in \citet{RM3} are derived experimentally from wave tank tests rather than a linear model. For this study, a tuned scale factor on force is used to account for the discrepancy. - Improving the force model to align with the wave tank data is an area of future work, with suggestions discussed in \cref{sec:unmodeled-effects}. + Improving the force model to align with the wave tank data is an area of future work, with suggestions discussed in \Cref{sec:unmodeled-effects}. \else - The reference storm loads in reference \cite{RM3} are derived from wave-tank tests rather than a linear model, so a tuned scale factor on force is used here; - improving this is identified in \cref{sec:unmodeled-effects} as future work. + The reference storm loads in \citet{RM3} are derived from wave-tank tests rather than a linear model, so a tuned scale factor on force is used here; + improving this is identified in \Cref{sec:unmodeled-effects} as future work. \fi \ifdefined\DISSERTATION As with force, a tuned scale factor is also applied to the power when the geometry is set to the nominal RM3 geometry to obtain an equal average power to the reference model report (86~kW). - Unlike the force, the power discrepancy is not attributed to a modeling error because the separate power validation against WEC-Sim tracks extremely well as described in \cref{sec:dynamic-validation}. + Unlike the force, the power discrepancy is not attributed to a modeling error because the separate power validation against WEC-Sim tracks extremely well as described in \Cref{sec:dynamic-validation}. Rather, the discrepancy is attributed to the fact that the reference model report uses a different dynamic model that is not described in detail, and does not document the hydrodynamic coefficients, water depth, drag coefficient, and other necessary input parameters that would be required to obtain a close match. A final tuned scale factor is applied to the structural mass to account for the fact that not all structural components are modeled, including spar stiffeners, damping plate circumferential stiffeners, and miscellaneous features like flanges, enclosures, and access mounts. \else A power scale factor is similarly applied to match the reference report's 86~kW average power; the discrepancy is attributed to the reference report's use of an undocumented dynamic model rather than to a modeling error in MDOcean - (the WEC-Sim validation of \cref{sec:dynamic-validation} tracks closely). + (the WEC-Sim validation of \Cref{sec:dynamic-validation} tracks closely). A structural-mass scale factor accounts for unmodeled subcomponents (spar stiffeners, damping plate circumferential stiffeners, flanges, enclosures, access mounts). \fi @@ -80,12 +78,12 @@ \subsection{Static Validation} and a mass scale factor of \resultsAOR[massScaleFactor], the scaled quantities match within 1\% of the reference model report. -%\hl{Describe the radiation and amplitude limit and show they aren't violated} \cite{zou_practical_2023}. +%\hl{Describe the radiation and amplitude limit and show they aren't violated} \citep{zou_practical_2023}. % \begin{table}[htbp] % \centering % \begin{tabular}{l|l|l|l|l} -% & \multicolumn{2}{l|}{WEC-Sim RM3 Design} & \multicolumn{2}{l}{DOE Report RM3 Design \cite{RM3}} \\ +% & \multicolumn{2}{l|}{WEC-Sim RM3 Design} & \multicolumn{2}{l}{DOE Report RM3 Design \citep{RM3}} \\ % Variable& MDOcean & Actual & MDOcean & Actual \\ \hline % Float mass & & & 202.4 Mg & 208 Mg \\ % Vertical column mass & & & \hl{fail} & \\ @@ -107,28 +105,28 @@ \subsection{Static Validation} % \label{tab:validation} % \end{table} -\begin{table}[htbp] -\centering -\input{tables/from-matlab/validation.tex} -\caption{Validation} -\label{tab:validation} -\end{table} + \begin{table*}[htbp] + \centering + \input{tables/from-matlab/validation.tex} + \caption{Verification} + \label{tab:validation} + \end{table*} %\hl{Explain sources of error and rough uncertainty and the implications of what we can trust} -The scaling behavior of economic outputs against the number of WECs is validated by sweeping $N_{WEC}$ from 1 to 100 and comparing the simulated CAPEX, OPEX, and LCOE against the values in the reference model report \cite{RM3}. -The average percent errors are included in \cref{tab:validation}, with additional detail in \cref{fig:econ-nwec-validate} of \cref{sec:appendix-econ-validation}. +The scaling behavior of economic outputs against the number of WECs is validated by sweeping $N_{WEC}$ from 1 to 100 and comparing the simulated CAPEX, OPEX, and LCOE against the values in the reference model report \citep{RM3}. +The average percent errors are included in \Cref{tab:validation}, with additional detail in \Cref{fig:econ-nwec-validate} of \Cref{sec:appendix-econ-validation}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Runtime Benchmarking} \label{sec:sim-runtime} Benchmarking the runtime of the MDOcean simulation is important to verify it achieves the desired speed to facilitate rapid design optimization. -An initial speed requirement order of magnitude of 100~ms for all modules was set to enable a 100-iteration finite difference optimization with 12 design variables to complete in around two minutes. +An initial speed requirement order of magnitude of 100~ms for all modules was set to enable a 100-iteration finite difference optimization with 12 design variables to complete in approximately two minutes. Ultimately, each simulation run takes around \resultsAOR[simRuntime], solidly meeting the goal. The timings in this section are performed on an Ubuntu 20.04 LTS server with a 14-core Intel Core i9-10940X CPU (3.3~GHz base clock) and 256~GB of DDR4 RAM at 3200~MHz, running MATLAB R2024b. \Cref{fig:runtime-modules} visualizes the breakdown of runtime between modules. -The MEEM hydrodynamics module takes the majority (\resultsAOR[pctRuntimeMEEM]) of the time and is broken down in \cref{fig:runtime-hydro}. +The MEEM hydrodynamics module takes the majority (\resultsAOR[pctRuntimeMEEM]) of the time and is broken down in \Cref{fig:runtime-hydro}. \ifdefined\DISSERTATION The biggest portion is dedicated to evaluating Bessel functions in the semi-analytical solution, another large portion to unpacking variables from the cell data structure, and a smaller portion to solving the imaginary modes of the dispersion relation and the linear matrix equation. \fi @@ -136,17 +134,17 @@ \subsection{Runtime Benchmarking} \begin{figure}[b!] \centering -\includegraphics[width=0.5\linewidth]{figs/from-matlab/sim_runtime.pdf} +\includegraphics[width=\linewidth]{figs/from-matlab/sim_runtime.pdf} \caption{Bar chart showing simulation runtime breakdown between modules}\label{fig:runtime-modules} \end{figure} \begin{figure}[t!] \centering -\includegraphics[width=0.5\linewidth]{figs/from-matlab/hydro_runtime_logscale.pdf} +\includegraphics[width=\linewidth]{figs/from-matlab/hydro_runtime_logscale.pdf} \caption{Bar chart demonstrating the speed improvement of MDOcean's hydro module over baseline solver Capytaine}\label{fig:runtime-hydro} \end{figure} -The dynamics and controls module takes the next longest (\resultsAOR[pctRuntimeDynamics], enlarged in \cref{fig:runtime-dynamics}), with contributions from force saturation, spar analysis, drag linearization, and evaluation of the motion transfer function. +The dynamics and controls module takes the next longest (\resultsAOR[pctRuntimeDynamics], enlarged in \Cref{fig:runtime-dynamics}), with contributions from force saturation, spar analysis, drag linearization, and evaluation of the motion transfer function. This represents a three-order-of-magnitude improvement over the equivalent regular-wave WEC-Sim simulation run in parallel. \ifdefined\DISSERTATION Simplifying the dynamics to a single degree of freedom (DOF) achieves another order of magnitude speedup, although the optimization and benchmarking results presented here utilize the 2-DOF model. @@ -154,7 +152,7 @@ \subsection{Runtime Benchmarking} \begin{figure}[t!] \centering -\includegraphics[width=0.5\linewidth]{figs/from-matlab/dynamics_runtime.pdf} +\includegraphics[width=\linewidth]{figs/from-matlab/dynamics_runtime.pdf} \caption{Bar chart demonstrating the speed improvement of MDOcean's dynamics module over baseline solver WEC-Sim}\label{fig:runtime-dynamics} \end{figure} diff --git a/pubs/applied-ocean-research-model/sections/discussion.tex b/pubs/applied-ocean-research-model/sections/discussion.tex index 5e2ca81ba..51dccde33 100644 --- a/pubs/applied-ocean-research-model/sections/discussion.tex +++ b/pubs/applied-ocean-research-model/sections/discussion.tex @@ -14,27 +14,27 @@ \subsubsection{Effect of Bulk Dimensions on Hydrodynamic Efficiency} MDOcean performs a six-dimensional sweep with \resultsAOR[meemSweepSize] combinations in only \resultsAOR[meemSweepTime] seconds, an average of \resultsAOR[meemSweepTimePerCombo] per combination. Using only the hydrodynamics and dynamics modules for the present, we examine nondimensional outputs including radiation efficiency, capture width ratio, and nondimensionalized surface area. These serve respectively as rough proxies for power, power per unit cost, and cost, allowing for the visualization of tradeoffs between power and cost across the design space. - Radiation efficiency was defined in \cref{eq:power-matrix-decomposition} as the ratio of the capture width to the maximum radiation-limited capture width, and represents how well the device's geometry allows it to absorb power at a given frequency. + Radiation efficiency was defined in \Cref{eq:power-matrix-decomposition} as the ratio of the capture width to the maximum radiation-limited capture width, and represents how well the device's geometry allows it to absorb power at a given frequency. Capture width ratio is the ratio of capture width to a characteristic length scale, often taken as the device diameter but taken here as the square root of the wetted surface area to better serve as a proxy for cost. (The cube root of submerged volume was also considered as a characteristic length scale; results were qualitatively similar to the square root of surface area and are not shown here. If wavelength were used as the characteristic length scale, the resulting capture width ratio would be a constant multiple of the radiation efficiency). For the final output, to nondimensionalize the wetted surface area, we divide it by the wavelength squared. \else A brute-force sweep of nondimensionalized bulk geometry variables and the nondimensional wavenumber $m_0h$ identifies design trends. - MDOcean performs the six-dimensional sweep with \resultsAOR[meemSweepSize] combinations in \resultsAOR[meemSweepTime] seconds. + MDOcean performs the six-dimensional sweep with \resultsAOR[meemSweepSize] combinations in \resultsAOR[meemSweepTime]. We examine three nondimensional outputs: radiation efficiency (proxy for power), capture width ratio (proxy for power per unit cost, normalized by $\sqrt{A_{wet}}$), and nondimensional wetted surface area (proxy for cost). \fi \ifdefined\DISSERTATION Visualizing this many-dimensional dataset (six inputs, three outputs) can pose a challenge. \Cref{fig:meem-sweep-m0h} will provide a view of all six input dimensions simultaneously, focusing centrally on the nondimensional wavenumber $m_0h$, and examine two outputs of radiation efficiency and capture width ratio. - Meanwhile, \cref{fig:meem-sweep-pareto} will show the tradeoff of radiation efficiency with nondimensionalized surface area and denote five of the six input dimensions, excluding only $m_0h$. + Meanwhile, \Cref{fig:meem-sweep-pareto} will show the tradeoff of radiation efficiency with nondimensionalized surface area and denote five of the six input dimensions, excluding only $m_0h$. In both figures, marker size and shape represent $a_2/h$ and $a_3/a_1$, which are swept over a range of 0-3 and 1-4 respectively. Ratios $a_1/a_2$, $d_1/h$, and $d_2/d_1$ must fall between zero and one and are represented as the red, blue, and green decimal values of the RGB color space, respectively. \fi \paragraph{Best Design as a function of Wave Environment} -\begin{figure}[htbp] +\begin{figure*}[htbp] \centering \begin{subfigure}[t]{0.48\linewidth} \includegraphics[width=\linewidth]{figs/from-matlab/sweep_geoms_line.pdf} @@ -49,10 +49,10 @@ \subsubsection{Effect of Bulk Dimensions on Hydrodynamic Efficiency} \end{subfigure} \caption{Effect of wave environment and hydrodynamic design variables on (a) radiation efficiency and (b) capture width ratio} \label{fig:meem-sweep-m0h} -\end{figure} +\end{figure*} \ifdefined\DISSERTATION - Starting with \cref{fig:meem-sweep-eff}, we observe that the most efficient design depends on the frequency-depth regime $m_0h$ of the wave environment, shown on the x-axis. + Starting with \Cref{fig:meem-sweep-eff}, we observe that the most efficient design depends on the frequency-depth regime $m_0h$ of the wave environment, shown on the x-axis. At low $m_0h$ (shallow water, slow waves), the designs with the highest radiation efficiency are those with $a_1/a_2 \approx 1$, $a_2/h \ll 1$, and $a_3/a_1\approx 1$ with any value of $d_1/h$ (the blue/green/purple curves on the left). This represents a pure cylinder (float, spar, and damping plate all equal in diameter) with a small radius and any draft. @@ -77,7 +77,7 @@ \subsubsection{Effect of Bulk Dimensions on Hydrodynamic Efficiency} \begin{figure}[htbp] \centering - \includegraphics[width=0.75\linewidth]{figs/from-matlab/sweep_geoms_pareto_nondim.pdf} + \includegraphics[width=.9\linewidth]{figs/from-matlab/sweep_geoms_pareto_nondim.pdf} \caption{Effect of hydrodynamic design variables on radiation efficiency and power per unit surface area} \label{fig:meem-sweep-pareto} \end{figure} @@ -88,7 +88,7 @@ \subsubsection{Damping Plate Size} This is because the same force has a lower lever arm to the column and therefore creates less bending moment. \begin{figure}[htbp] \centering - \includegraphics[width=0.75\linewidth]{figs/from-matlab/damping_plate_aspect_ratio.pdf} + \includegraphics[width=.85\linewidth]{figs/from-matlab/damping_plate_aspect_ratio.pdf} \caption{Normalized effect of damping plate aspect ratio on maximum stress and deflection. The dashed lines indicate the nominal design point at $b/a = 0.2$.} \label{fig:damping-plate-maxs} @@ -98,17 +98,17 @@ \subsubsection{Damping Plate Size} \subsubsection{Effect of PTO Force and Power Limits} \ifdefined\DISSERTATION Previous work has shown that capping the PTO force can substantially reduce PTO size and cost with minimal decrease in power. - Reference \cite{devin_high-dimensional_2024} finds that impedance matching at resonance has a large effect on power and PTO sizing has little effect. + \citet{devin_high-dimensional_2024} finds that impedance matching at resonance has a large effect on power and PTO sizing has little effect. This suggests that if cost were included, it may be preferable to have an undersized PTO that frequently saturates its control force. - This agrees with the conceptual argument of \cite{coe_maybe_2021} and the numerical findings of \cite{mcgilton_optimal_2024}. + This agrees with the conceptual argument of \citep{coe_maybe_2021} and the numerical findings of \citep{mcgilton_optimal_2024}. The latter shows that reducing the maximum PTO force by 70\% leads only to a 3\% decrease in annual energy production, a trend consistent across two device archetypes (RM3 and RM5), four locations, and several dimensional scales. - The recent RM3 optimization \cite{gaebele_tpl_2025} finds that the device should be scaled down by a factor of 0.55 to a new float diameter of 11~m in order to maximize the power per unit surface area, and that the continuous torque constraint is often active, illustrating the importance of including this constraint in the model. - Reference \cite{mccabe_force-limited_2024} shows analytically that for a given sea state, power decreases quadratically with decreasing force limit for the worst-case scenario of zero intrinsic reactance, and that highly reactive devices are even less sensitive to force limits. + The recent RM3 optimization \citep{gaebele_tpl_2025} finds that the device should be scaled down by a factor of 0.55 to a new float diameter of 11~m in order to maximize the power per unit surface area, and that the continuous torque constraint is often active, illustrating the importance of including this constraint in the model. + \citet{mccabe_force-limited_2024} shows analytically that for a given sea state, power decreases quadratically with decreasing force limit for the worst-case scenario of zero intrinsic reactance, and that highly reactive devices are even less sensitive to force limits. Intuitively, the sensitivity of annual average power to force limit should be even lower when considering a range of realistic sea states, because large sea states that require higher forces are comparatively rare. \else - Prior work has consistently shown that capping the PTO force can substantially reduce PTO size and cost with minimal decrease in power \cite{devin_high-dimensional_2024,coe_maybe_2021,mcgilton_optimal_2024,gaebele_tpl_2025,mccabe_force-limited_2024}. + Prior work consistently shows that capping the PTO force can substantially reduce PTO size and cost with minimal decrease in power \citep{devin_high-dimensional_2024,coe_maybe_2021,mcgilton_optimal_2024,gaebele_tpl_2025,mccabe_force-limited_2024}. \fi -Using MDOcean, we investigate the effect of PTO force limit on average power and structural load in \cref{fig:force-limit}. +Using MDOcean, we investigate the effect of PTO force limit on average power and structural load in \Cref{fig:force-limit}. \begin{figure}[htbp] \centering @@ -117,9 +117,9 @@ \subsubsection{Effect of PTO Force and Power Limits} \label{fig:force-limit} \end{figure} -Decreasing the force limit has nearly no effect on power until the force limit is around 50\% of the nominal value, after which power falls off steeply. +Decreasing the force limit has almost no effect on power until the force limit is around 50\% of the nominal value, after which power falls off steeply. \ifdefined\DISSERTATION - From theory (see \cref{sec:appendix-constraint-sensitivity}), we expect a smooth nonlinear relationship between power and force limit when considering a single sea state, and a piecewise continuous nonlinear relationship when considering multiple sea states as in \cref{fig:force-limit}. + From theory (see \Cref{sec:appendix-constraint-sensitivity}), we expect a smooth nonlinear relationship between power and force limit when considering a single sea state, and a piecewise continuous nonlinear relationship when considering multiple sea states as in \Cref{fig:force-limit}. \fi On the other hand, the structural load for the operational design load case scales nearly linearly with the force limit. \ifdefined\DISSERTATION @@ -137,12 +137,12 @@ \subsubsection{Effect of PTO Force and Power Limits} The unsaturated solution is in the top right corner, past which power is constant because the unconstrained reactive controller satisfies the limit in all sea states. \fi -\begin{figure}[htbp] +\begin{figure*}[htbp] \centering -\includegraphics[width=.8\linewidth]{figs/from-matlab/pto_sweep.pdf} +\includegraphics[width=\linewidth]{figs/manual/pto_sweep_3.pdf.pdf} \caption{Effect of Generator Force Limit and Power Limit on Annual Average Power and LCOE} \label{fig:force-power-limit-sweep} -\end{figure} +\end{figure*} Notably, the minimum LCOE point occurs at a force limit far below the unsaturated solution because the cost savings from a smaller PTO outweigh the loss in power. \ifdefined\DISSERTATION If a full design optimization were performed to adjust the structural thicknesses to take advantage of the reduced structural loads, we expect an even lower force limit to be optimal. @@ -150,29 +150,29 @@ \subsubsection{Effect of PTO Force and Power Limits} This illustrates the importance of including the force-cost tradeoff in an optimization model rather than assuming an unconstrained solution. \ifdefined\DISSERTATION We also observe that power and LCOE both appear to be convex with respect to the force and power limits, and that the feasible region is convex as well. - The theoretical analysis in \cref{sec:appendix-constraint-sensitivity} derives mathematical conditions for when this is the case. + The theoretical analysis in \Cref{sec:appendix-constraint-sensitivity} derives mathematical conditions for when this is the case. Convexity suggests that local optimization methods should be effective for finding the optimal PTO design. \else - Power and LCOE both appear to be convex with respect to the force and power limits across the feasible region, a structural property exploited by the optimization strategy in the companion paper \cite{mccabe_leveraging_2026}. + Power and LCOE both appear to be convex with respect to the force and power limits across the feasible region, a structural property that future optimizations can exploit. \fi %%%%%%%%%%%%%%%%%%% \subsubsection{Design Space Exploration} \ifdefined\DISSERTATION - The OAT design sweep, shown in \cref{fig:experiments}, immediately draws attention to the float diameter $D_f$, shown with a red dashed line, as the variable with the strongest effect on the objectives. + The OAT design sweep, shown in \Cref{fig:experiments}, immediately draws attention to the float diameter $D_f$, shown with a red dashed line, as the variable with the strongest effect on the objectives. A slight reduction in the diameter from its nominal value causes the cost to decrease close to linearly but the LCOE to skyrocket due to a substantial reduction in power generation. Meanwhile, slightly increasing the diameter causes the power production to grow significantly but increases loads, leading to fatigue failure of the damping plate. This is shown as blank on the diagram to indicate infeasibility. A larger $\sim30\%$ diameter increase restores feasibility of the damping plate and achieves a roughly 15\textcent/kWh reduction in LCOE, representing the best design of the OAT sweep. The results also point to the possibility of an even lower LCOE design with float diameter perhaps $\sim20\%$ larger than nominal, if the damping plate can be made feasible by increasing $t_d$ or $h_{1,\text{stiff},d}$ without a major cost penalty. \else - The one-at-a-time (OAT) design sweep (\cref{fig:experiments}) reveals that float diameter $D_f$ has the strongest effect on objectives. + The one-at-a-time (OAT) design sweep (\Cref{fig:experiments}) reveals that float diameter $D_f$ has the strongest effect on objectives. The feasible design space is highly fragmented: an ``island'' of low-LCOE designs at $1.3 < D_f/D_{f,nom} < 2.1$ is separated from the nominal design by the damping plate fatigue constraint. \fi \begin{figure}[htbp] \centering -\includegraphics[width=\linewidth]{figs/from-matlab/experiments_ratios.pdf} +\includegraphics[width=.9\linewidth]{figs/from-matlab/experiments_ratios.pdf} \caption{Design of experiments}\label{fig:experiments} \end{figure} @@ -185,7 +185,7 @@ \subsubsection{Design Space Exploration} Thus even without objective multimodality, multimodality exists in the Lagrangian (objective plus weighted active constraints), indicating the need for a multi-start optimization procedure as planned. \else Force limit $F_{\text{max}}$ also shows non-monotonic LCOE dependence, with an optimum near half the nominal limit. - Although no objective multimodality is observed within the swept region, the fragmented feasible space introduces multimodality in the Lagrangian, indicating the need for a multi-start optimization procedure \cite{mccabe_leveraging_2026}. + Although no objective multimodality is observed within the swept region, the fragmented feasible space introduces multimodality in the Lagrangian, indicating the need for a multi-start optimization procedure \citep{mccabe_leveraging_2026}. \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -193,14 +193,14 @@ \subsection{Multidisciplinary Insights} This section leverages the analytical multidisciplinary nature of the model to draw intuitive insights on limit cases and tradeoffs, and observe nondimensional relationships and scaling laws that would not be readily apparent in a purely numerical or single-discipline model. \paragraph{Power Matrix Drivers} -Similar to \cref{fig:JPD-multiply} showing the multiplication of the power matrix by the JPD to obtain average power, \cref{fig:power-matrix-decomposition} further decomposes the power matrix into component matrices showing the impact of shape, drag, maximum force, and PTO losses, with the following breakdown: +Similar to \Cref{fig:JPD-multiply} showing the multiplication of the power matrix by the JPD to obtain average power, \Cref{fig:power-matrix-decomposition} further decomposes the power matrix into component matrices showing the impact of shape, drag, maximum force, and PTO losses, with the following breakdown: \begin{equation}\label{eq:power-matrix-decomposition} \mathbf{P}^{H,T}_{elec} = \mathbf{J}^{H,T}_{wave} ~\mathbf{CW}^{H,T}_{max} ~\mathbf{\eta}^{H,T}_{rad} ~\mathbf{\eta}^{H,T}_{drag} ~\mathbf{\eta}^{H,T}_{limits} ~\mathbf{\eta}^{H,T}_{elec} \end{equation} Here $\mathbf{J}^{H,T}_{\text{wave}}$ is the wave power density (design-independent) and $\mathbf{CW}^{H,T}_{\text{max}}$ is the radiation-limit capture width (depends only on the mode of motion). The four efficiency matrices isolate the design dependencies: $\mathbf{\eta}^{H,T}_{rad}$ for hull-shape radiation efficiency, $\mathbf{\eta}^{H,T}_{\text{drag}}$ for drag, $\mathbf{\eta}^{H,T}_{\text{limits}}$ for dynamic constraints, and $\mathbf{\eta}^{H,T}_{\text{elec}}$ for PTO losses and dynamics. -Explicit definitions are given in \cref{sec:appendix-power-decomposition}. +Explicit definitions are given in \Cref{sec:appendix-power-decomposition}. \ifdefined\DISSERTATION Two features of this decomposition deserve emphasis. @@ -211,6 +211,8 @@ \subsection{Multidisciplinary Insights} This multiplicative decomposition allows isolation of the effect of each design variable and parameter on power, intuitively identifying which design variables are most important for improving power. \Cref{tab:power-matrix-dependence} maps the dependence explicitly. +{ +\renewcommand{\arraystretch}{1.35} \begin{table}[h] \centering \caption{Dependence of efficiencies on inputs}\label{tab:power-matrix-dependence} @@ -225,6 +227,7 @@ \subsection{Multidisciplinary Insights} \hline \end{tabular} \end{table} +} \ifdefined\DISSERTATION Importantly, the later matrices in the product depend on the design variables and parameters that affect the earlier matrices. @@ -236,19 +239,19 @@ \subsection{Multidisciplinary Insights} \Cref{fig:power-matrix-decomposition} shows the power matrix decomposition for the nominal RM3 design. \ifdefined\DISSERTATION - Aligning with reference \cite{zou_practical_2023}, low-period sea states achieve mechanical powers closer to the radiation limit (higher radiation efficiency). + Aligning with \citet{zou_practical_2023}, low-period sea states achieve mechanical powers closer to the radiation limit (higher radiation efficiency). High-period sea states have lower radiation efficiencies due to the amplitude limit yet still contribute significantly due to their higher energy content. Despite the most probable wave period being 6-8 seconds, 10 second waves contribute the most to energy production for this reason, though even longer waves contribute little due to their rarity. \else - Low-period sea states achieve higher radiation efficiency, while high-period sea states have lower radiation efficiency but contribute significantly to total production due to their higher energy content; despite the most probable period being 6--8~s, 10~s waves contribute the most to annual energy production \cite{zou_practical_2023}. + Low-period sea states achieve higher radiation efficiency, while high-period sea states have lower radiation efficiency but contribute significantly to total production due to their higher energy content; despite the most probable period being 6--8~s, 10~s waves contribute the most to annual energy production \citep{zou_practical_2023}. \fi -\begin{figure}[htbp] +\begin{figure*}[htbp] \centering -\includegraphics[width=\linewidth]{figs/manual/power_matrix_multiply.pdf} +\includegraphics[width=.95\linewidth]{figs/from-matlab/nominal_power_matrix.pdf} \caption{Power matrix decomposition} \label{fig:power-matrix-decomposition} -\end{figure} +\end{figure*} The effect of drag is most significant in the 11-12 second range, corresponding to the spar's natural frequency. \ifdefined\DISSERTATION Interestingly, this is also where the force limit has the strongest effect, indicating that the large amplitudes at the natural frequency drive up the force more than the larger stiffnesses required for reactive control at frequencies far from the natural frequency. @@ -256,7 +259,7 @@ \subsection{Multidisciplinary Insights} \paragraph{Constraint Sensitivities} The structure of the constrained optimal control problem allows for quantification of the sensitivity of optimal power to each constraint limit, formalizing the intuition behind $\eta^{H,T}_{\text{limits}}$. -From \cref{eq:constrained-qp-solution,eq:power-elec}, the average electrical power (the LCOE denominator) is a sea-state-weighted sum of the impedance-matched power in each sea state, each scaled down by the factor $(1-|\Gamma_{\beta,opt}|^2)$ that captures the effect of active dynamic constraints: +From \Cref{eq:constrained-qp-solution,eq:power-elec}, the average electrical power (the LCOE denominator) is a sea-state-weighted sum of the impedance-matched power in each sea state, each scaled down by the factor $(1-|\Gamma_{\beta,opt}|^2)$ that captures the effect of active dynamic constraints: \begin{equation}\label{eq:power-elec-sum} \begin{aligned} \overline{P}_{elec} &= \eta \sum_{\beta=1}^{N_{sea}} JPD_\beta \cdot @@ -273,33 +276,35 @@ \subsection{Multidisciplinary Insights} Power is maximized when $|\Gamma_{\beta,opt}|=0$ in every sea state, which corresponds to unconstrained impedance-matched control. When constraints are active, the optimal $|\Gamma_{\beta,opt}|>0$ represents the impedance mismatch required to satisfy them, and power decreases quadratically with $|\Gamma_{\beta,opt}|$. -\Cref{sec:appendix-constraint-sensitivity} uses this relationship to derive a closed-form scaling law for the optimal annual average power $\overline{P}_{\text{elec}}$ as a function of the constraint coefficients $b_\mu$ (which are affine or square functions of the constraint limits $\tau_{\text{max}}$, $P_{\tau\Omega,\text{max}}$, $\xi_{f,\text{max}}$, $\xi_{s,\text{max}}$, and $X_{PTO,\text{max}}$ defined in \cref{tab:qp-constraints}). +\Cref{sec:appendix-constraint-sensitivity} uses this relationship to derive a closed-form scaling law for the optimal annual average power $\overline{P}_{\text{elec}}$ as a function of the constraint coefficients $b_\mu$ (which are affine or square functions of the constraint limits $\tau_{\text{max}}$, $P_{\tau\Omega,\text{max}}$, $\xi_{f,\text{max}}$, $\xi_{s,\text{max}}$, and $X_{PTO,\text{max}}$ defined in \Cref{tab:qp-constraints}). The result is: \begin{equation}\label{eq:power-double-sum-main} \begin{aligned} - \overline{P}_{elec} = \overline{P}_{elec,0} + \overline{P}_{elec} =~&\overline{P}_{elec,0} - \eta \sum_{\mu\nu\beta} - &\left[ + \left[ \sqrt{\textrm{aff}_{\mu\nu\beta}(b_{\mu})} - + \textrm{quad}_{\mu\nu\beta}(b_{\mu}, b_{\nu}) + ~+ \right. \\ + & \left. \textrm{quad}_{\mu\nu\beta}(b_{\mu}, b_{\nu}) \right.+ \\ &\left. \left(\textrm{aff}_{\mu\nu\beta}(b_{\mu}) + \textrm{aff}_{\mu\nu\beta}(b_{\nu})\right) - \sqrt{\textrm{quad}_{\mu\nu\beta}(b_{\mu}, b_{\nu})} + \sqrt{\textrm{quad}_{\mu\nu\beta}(b_{\mu}, b_{\nu})}~ \right] \end{aligned}\end{equation} where $\overline{P}_{\text{elec},0}$ is the unconstrained power and $\textrm{aff}_{\mu\nu\beta}$, $\textrm{quad}_{\mu\nu\beta}$ are affine and quadratic functions of $b_\mu$ and $b_\nu$, respectively. +$\mu$ and $\nu$ are constraint indices, expanded in \Cref{sec:appendix-constraint-sensitivity}. -Under conditions derived in \cref{sec:appendix-constraint-sensitivity}, this scaling law is convex in the constraint coefficients $b_\mu$. -While satisfaction of these conditions is not guaranteed, convexity is observed to hold across the PTO sweep of \cref{fig:force-power-limit-sweep}. +Under conditions derived in \Cref{sec:appendix-constraint-sensitivity}, this scaling law is convex in the constraint coefficients $b_\mu$. +While satisfaction of these conditions is not guaranteed, convexity is observed to hold across the PTO sweep of \Cref{fig:force-power-limit-sweep}. The scaling law also displays coupling in the constraint variables: the effect of one constraint limit depends on the values of the other constraint limits. This illustrates the importance of a multidisciplinary optimization considering all interactions, rather than a sequential optimization that optimizes one subsystem at a time holding the others fixed. \paragraph{LCOE Drivers} -To better see the dependence of LCOE on design for a fixed $N_{WEC}$ and $FCR$, one can divide out the constant factors from \cref{eq:lcoe}, leaving normalized price constants $p^{'}_{(*)}$: +To better see the dependence of LCOE on design for a fixed $N_{WEC}$ and $FCR$, one can divide out the constant factors from \Cref{eq:lcoe}, leaving normalized price constants $p^{'}_{(*)}$: \begin{equation}\label{eq:LCOE-scale} LCOE = \frac{ p^{'}_{F} F_{max} + p^{'}_{P}P_{max,elec} + p^{'}_{s} V_{struct} + p^{'}_0 @@ -310,30 +315,30 @@ \subsection{Multidisciplinary Insights} \ifdefined\DISSERTATION The LCOE minimization with design variables of $F_{\text{max}}$, $P_{\text{max},\text{elec}}$, and thicknesses is a fractional quadratic program, a structure common in resource allocation problems. - When the denominator is convex with respect to the PTO limits, this means that LCOE is ``quasi-convex'' in the PTO limits for fixed geometry \cite{agrawal_disciplined_2020}. + When the denominator is convex with respect to the PTO limits, this means that LCOE is ``quasi-convex'' in the PTO limits for fixed geometry \citep{agrawal_disciplined_2020}. This quasi-convexity can be leveraged by using a subgradient method or by solving a small sequence of convex problems, which simplifies the optimization process significantly compared to a general nonlinear solver. This motivates a three-level nested optimization strategy: at the innermost level, the optimal control problem for fixed geometry and PTO limits is solved as an analytical QP; at the mid-level, the optimal PTO limits are found by exploiting the quasi-convex fractional structure when possible; and at the outer level, the bulk geometry is optimized with a general nonlinear program. \else - The fractional-quadratic structure of \cref{eq:LCOE-scale} admits an efficient nested optimization that exploits convexity properties; see the companion paper \cite{mccabe_leveraging_2026} for the optimization strategy. + The fractional-quadratic structure of \Cref{eq:LCOE-scale} admits an efficient nested optimization that exploits convexity properties; see the companion paper \citep{mccabe_leveraging_2026} for the optimization strategy. \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Limitations and Future Work}\label{sec:unmodeled-effects} \ifdefined\DISSERTATION Broadly, future work must both address limitations of the model and apply it to answer design questions. - As MDOcean is open source, the authors encourage the wave energy community to contribute to both areas, and are themselves actively pursuing the latter with a multi-objective optimization of the RM3 WEC \cite{mccabe_leveraging_2026}. - \cref{tab:future-work} summarizes potential future improvements to the model, distinguishing between model improvements that would enhance the accuracy or realism of studies that can be conducted with the present model and those that would unlock the ability to answer design questions that the current model cannot. + As MDOcean is open source, the authors encourage the wave energy community to contribute to both areas, and are themselves actively pursuing the latter with a multi-objective optimization of the RM3 WEC \citep{mccabe_leveraging_2026}. + \Cref{tab:future-work} summarizes potential future improvements to the model, distinguishing between model improvements that would enhance the accuracy or realism of studies that can be conducted with the present model and those that would unlock the ability to answer design questions that the current model cannot. This section describes the relevance and possible implementation paths for each development area. \else - \Cref{tab:future-work} summarizes principal limitations and future work, distinguishing model improvements that would enhance the accuracy of currently-achievable studies from extensions that would unlock new design questions. - MDOcean is open-source \cite{mccabe_mdocean_2024}; community contributions are welcome, and the authors are pursuing the multi-objective RM3 optimization in the companion paper \cite{mccabe_leveraging_2026}. + \Cref{tab:future-work} summarizes principal limitations and future work, distinguishing model improvements to enhance the accuracy of currently-achievable studies from extensions to unlock new design questions. + MDOcean is open-source \citep{mccabe_mdocean_2024}; community contributions are welcome, and the authors are pursuing the multi-objective RM3 optimization in the companion paper \citep{mccabe_leveraging_2026}. \fi \newcommand{\modelTrustBuilders}{ - \begin{enumerate} + \begin{enumerate}[leftmargin=*] \item Surge force and mooring cost \item Nonlinear storm wave forces \item Irregular waves @@ -343,7 +348,7 @@ \subsection{Limitations and Future Work}\label{sec:unmodeled-effects} } \newcommand{\modelStudyEnablers}{ - \begin{enumerate} + \begin{enumerate}[leftmargin=*] \item Spectral power, load, amplitude \item Different WEC archetypes \item Lifetime and sea state contours @@ -357,8 +362,8 @@ \subsection{Limitations and Future Work}\label{sec:unmodeled-effects} \caption{Future model improvements} \label{tab:future-work} \begin{tabular}{ - >{\centering\arraybackslash}p{0.5\linewidth} - >{\centering\arraybackslash}p{0.5\linewidth}} + >{\raggedright\arraybackslash}m{0.35\linewidth} + >{\raggedright\arraybackslash}m{0.5\linewidth}} Enhance Trust in Achievable Studies & Unlock New Studies \\ \hline \modelTrustBuilders & \modelStudyEnablers \\ \end{tabular} @@ -370,28 +375,28 @@ \subsection{Limitations and Future Work}\label{sec:unmodeled-effects} The neglect of surge force means that geometries with significant lateral areas that would experience high surge force appear to perform better than they should. This is not only because of the impact on the structures module, but also because the surge force drives mooring cost, an effect which is not modeled in this study. The model predicts that the nominal RM3 design experiences a storm surge force of \resultsAOR[surgeForceFloatNominal] on the float and \resultsAOR[surgeForceSparNominal] on the spar, compared to the \resultsAOR[heaveForceNominal] heave force. - With mooring and foundation comprising 12\% of the capital cost (see \cref{tab:CBS}), this effect may be substantial. + With mooring and foundation comprising 12\% of the capital cost (see \Cref{tab:CBS}), this effect may be substantial. Incorporating surge force into the structures module and adding a mooring cost module are recommended for future work. - If these effects are implemented and confirmed to be important, then it may also be desired to obtain a more accurate estimate of the surge force across frequencies by utilizing the surge hydrodynamic coefficients instead of the long-wavelength approximation in \cref{eq:surge-force}. + If these effects are implemented and confirmed to be important, then it may also be desired to obtain a more accurate estimate of the surge force across frequencies by utilizing the surge hydrodynamic coefficients instead of the long-wavelength approximation in \Cref{eq:surge-force}. \paragraph{Nonlinear Storm Loads} - As \cref{sec:irregular-waves} describes, MDOcean uses standard linear wave theory with equivalent regular waves, even for the storm condition. - However, storm waves are nonlinear, and it is generally recommended to utilize higher order potential flow, CFD simulations, or wave tank tests to obtain storm loads \cite{coe_survey_2018}. + As \Cref{sec:irregular-waves} describes, MDOcean uses standard linear wave theory with equivalent regular waves, even for the storm condition. + However, storm waves are nonlinear, and it is generally recommended to utilize higher order potential flow, CFD simulations, or wave tank tests to obtain storm loads \citep{coe_survey_2018}. Additionally, even when storm wave analysis uses linear or quasi-linear hydrodynamics, other design procedures typically utilize a time-domain ``design wave elevation'' signal to capture transient peaks. The regular wave analysis used in MDOcean cannot capture nonsinusoidal peaks. Therefore, determination of design loads from a given extreme sea state represents a major area of uncertainty in this model and a challenge for future development. Open-source tools for WEC extreme response, such as MHKiT\footnote{\url{https://mhkit-software.github.io/MHKiT/}} and the DLC Generator\footnote{\url{https://dlc.primre.org/DLCGenerator}}, apply extreme statistics to facilitate the creation of a design wave elevation but do not calculate loads from this elevation. Finding a modeling methodology that captures hydrodynamic nonlinearities and transient peaks without optimization-prohibitive computational expense remains an open problem. - Second-order MEEM can potentially address the former, but nonlinearities require solving the radiation and diffraction problems separately, and corner discontinuities present new analytical challenges \cite{cong_novel_2020,mavrakos_second-order_2009}. - Another option is a slender-body approximation for second order loads that was recently implemented in the frequency-domain quasi-linear hydrodynamics solver RAFT \cite{carmo_slender-body_2025}. + Second-order MEEM can potentially address the former, but nonlinearities require solving the radiation and diffraction problems separately, and corner discontinuities present new analytical challenges \citep{cong_novel_2020,mavrakos_second-order_2009}. + Another option is a slender-body approximation for second order loads that was recently implemented in the frequency-domain quasi-linear hydrodynamics solver RAFT \citep{carmo_slender-body_2025}. Meanwhile, to address the transient dynamics of an irregular design wave elevation, it requires more investigation to determine whether the semi-analytical dynamics model used here can be adequately extended. - Alternatives include integrating second-order hydrodynamics into pseudo-spectral methods \cite{coe_initial_2020}, or an effort to speed up time-domain models where second-order hydrodynamics have recently been integrated \cite{issoglio_second-order_2026}. + Alternatives include integrating second-order hydrodynamics into pseudo-spectral methods \citep{coe_initial_2020}, or an effort to speed up time-domain models where second-order hydrodynamics have recently been integrated \citep{issoglio_second-order_2026}. \paragraph{Irregular Waves} Besides storm loads, the regular wave assumption also affects the operational power and load calculations. In the future, the interaction of irregular waves with dynamic constraints could be roughly approximated in MDOcean with minimal implementation effort by computing the probability density function for each signal and saturating any amplitude above the constraint threshold. To more fully capture nonlinearities in irregular waves, the describing function mentioned earlier (which quantifies the fundamental amplitude of the response to a deterministic sinusoidal input) could be replaced with its probabilistic counterpart, stochastic linearization (which quantifies the expected value of the fundamental over the spectral input). - This technique has been explored in several WEC papers \cite{da_silva_statistical_2020,da_silva_stochastic_2023,kluger_synergistic_2017,folley_spectral-domain_2016,spanos_efficient_2016}, including one that performs multi-objective design optimization \cite{neshat_enhancing_2024}. + This technique has been explored in several WEC papers \citep{da_silva_statistical_2020,da_silva_stochastic_2023,kluger_synergistic_2017,folley_spectral-domain_2016,spanos_efficient_2016}, including one that performs multi-objective design optimization \citep{neshat_enhancing_2024}. \paragraph{Probabilistic Variation in Load, Amplitude, and Power} Once implemented, an irregular wave formulation would allow for the quantification of the short-term variability in power, load, and response amplitude within a sea state. @@ -402,14 +407,14 @@ \subsection{Limitations and Future Work}\label{sec:unmodeled-effects} Additionally, while MDOcean accounts for the effect of the power limit on PTO cost and models long-term power variation across sea states, its failure to model short-term power variation within a sea state means that it cannot reliably be used for sizing energy storage or grid connection. In particular, the temporal alignment of power production with grid demand can affect the value of the produced electricity, and therefore the economic viability. - The authors are actively pursuing this extension, with an initial modeling process described in the study \cite{mccabe_wec_2025} and ongoing refinements in future work. + The authors are actively pursuing this extension, with an initial modeling process described in the study \citep{mccabe_wec_2025} and ongoing refinements in future work. Going further, future studies could investigate whether the addition of local or grid-connected electrical energy storage or the modulation of hydrodynamic design to smooth the dynamic response is more cost-effective at reducing power variability. \paragraph{Multi-cylinder MEEM with damping plate} - Recall from \cref{sec:hydro-meem} that the present study utilizes a two-cylinder MEEM formulation that neglects the slanted float bottom and damping plate. - The multi-cylinder MEEM has recently been implemented \cite{best_openflash_2026,bimali_matrix_2026}, but has not yet been integrated into MDOcean. - Doing so would not only improve the accuracy of the hydrodynamic coefficients, allowing calculation of the spar coefficients without relying on the approximations of \cref{sec:hydro-other}, but also expand the reachable design space to include qualitatively different frequency-dependence of the hydrodynamic coefficients. - Implementing the damping plate in the MEEM model would further expand the reachable design space to include spar designs that deviate from the nominal aspect ratios imposed by the interpolation in \cref{sec:hydro-other}. + Recall from \Cref{sec:hydro-meem} that the present study utilizes a two-cylinder MEEM formulation that neglects the slanted float bottom and damping plate. + The multi-cylinder MEEM has recently been implemented \citep{best_openflash_2026,bimali_matrix_2026}, but has not yet been integrated into MDOcean. + Doing so would not only improve the accuracy of the hydrodynamic coefficients, allowing calculation of the spar coefficients without relying on the approximations of \Cref{sec:hydro-other}, but also expand the reachable design space to include qualitatively different frequency-dependence of the hydrodynamic coefficients. + Implementing the damping plate in the MEEM model would further expand the reachable design space to include spar designs that deviate from the nominal aspect ratios imposed by the interpolation in \Cref{sec:hydro-other}. %would let me actually optimize the spar dimensions, which is important since I'm up against that constraint of min damping plate diameter \paragraph{Additional PTO nonlinearities} @@ -421,7 +426,7 @@ \subsection{Limitations and Future Work}\label{sec:unmodeled-effects} \paragraph{Generator magnetics and cost model} Building off the PTO CCD study that is easily realizable with the current model, a generator model would unlock control co-design with the generator itself, for example determining the conditions under which an expensive high-torque generator outperforms a cheap low-torque generator. The torque limit would essentially impose a constraint on the $F_{\text{max}}$ design var, the core losses introduce nonlinear damping, and impose a relation between generator torque limit and max/min generator inertia. - This analysis could leverage a simplified generator model as explored in the RM3 CCD study \cite{anderson_re-imagining_2024}, or a full generator model as in the offshore wind MDO study \cite{barter_beyond_2023}. + This analysis could leverage a simplified generator model as explored in the RM3 CCD study \citep{anderson_re-imagining_2024}, or a full generator model as in the offshore wind MDO study \citep{barter_beyond_2023}. \paragraph{Structural model extensions} The structures module could be improved for geometries with more prominent stiffeners and thinner skins by adding local buckling failure criteria and effective breadth considerations. @@ -430,7 +435,7 @@ \subsection{Limitations and Future Work}\label{sec:unmodeled-effects} Extending the structures model to other types of materials would allow the comparison of novel WEC materials with traditional steel designs. The existing relations between force and stress should still hold, but the relation between stress and factor of safety require modification for materials with different limit states. This is of interest because steel accounts for a significant portion of device cost, and the assumption of steel construction may be holding the WEC industry back from economic viability. - For example, reference \cite{roberts_bringing_2021} finds inflatable polyurethane coated nylon fabric to be more optimal than steel, reinforced concrete, fiberglass, and rubber based on basic density and cost considerations. + For example, \citet{roberts_bringing_2021} finds inflatable polyurethane coated nylon fabric to be more optimal than steel, reinforced concrete, fiberglass, and rubber based on basic density and cost considerations. However, unlike ductile metals, composites require anisotropic analysis, concrete requires brittle fracture analysis such as Mohr's circle, and inflatables require tensioned membrane modeling. \paragraph{Lifetime and storm contour modeling} @@ -442,22 +447,22 @@ \subsection{Limitations and Future Work}\label{sec:unmodeled-effects} \paragraph{Different WEC archetypes} Extending the model beyond 2-body heaving point absorbers to other WEC archetypes such as oscillating water columns, overtopping devices, or surge/pitch devices would allow systematic quantification of the comparative benefits and drawbacks of each WEC archetype in a consistent way. - This capability is especially valuable in the early concept design phase to inform architectural decisions and could facilitate design convergence for the field as a whole, which is considered an industry bottleneck \cite{caio_tackling_2019}. + This capability is especially valuable in the early concept design phase to inform architectural decisions and could facilitate design convergence for the field as a whole, which is considered an industry bottleneck \citep{caio_tackling_2019}. Generalizing MDOcean's dynamics/controls and economics modules to other archetypes would require minor adaptations including alternate degrees of freedom and cost fits, but not structural modification of the core models. On the other hand, the hydrodynamics and structures models would require significant modification since separate semi-analytical continuum models would need to be implemented for each new geometry. Before initiating such an undertaking, it would be important to confirm that numerical alternatives remain too inefficient for optimization. Since development of MDOcean began in 2021, new numerical tools have emerged that could potentially reduce the computational cost of mesh-based geometry-agnostic computations. - For example, a differentiable BEM solver in Julia \texttt{MarineHydro.jl} was released in 2025 and is in its infancy \cite{khanal_fully_2025}, while a lightweight FEA tool with plate/shell elements \texttt{pynite} was released in 2021 and has seen widespread adoption. + For example, a differentiable BEM solver in Julia \texttt{MarineHydro.jl} was released in 2025 and is in its infancy \citep{khanal_fully_2025}, while a lightweight FEA tool with plate/shell elements \texttt{pynite} was released in 2021 and has seen widespread adoption. Whether semi-analytical or numerical, extension to other archetypes would require significant development effort but unlock new comparative insights. \else The most consequential current limitations are: -\begin{itemize} - \item \textbf{Neglect of surge force in the structures module and absence of a mooring cost model.} Surge forces on the nominal RM3 are \resultsAOR[surgeForceFloatNominal] (float) and \resultsAOR[surgeForceSparNominal] (spar), and mooring/foundation accounts for 12\% of CAPEX (\cref{tab:CBS}); incorporating these would likely affect optimal designs. - \item \textbf{Regular-wave assumption in storm load cases.} Storm waves are nonlinear, and the regular-wave equivalent cannot capture transient peaks; second-order MEEM \cite{cong_novel_2020,mavrakos_second-order_2009} or the slender-body approximation in RAFT \cite{carmo_slender-body_2025} are candidate extensions. - \item \textbf{Regular-wave assumption in operational loads.} Stochastic linearization \cite{da_silva_statistical_2020,da_silva_stochastic_2023,kluger_synergistic_2017,folley_spectral-domain_2016,spanos_efficient_2016,neshat_enhancing_2024} could replace the describing function to handle spectral inputs and enable spectral fatigue, grid-integration, and storage-sizing analyses \cite{mccabe_wec_2025}. - \item \textbf{Single WEC archetype.} Extending MEEM to handle the damping plate or 3+ concentric cylinders \cite{best_openflash_2026,bimali_matrix_2026} would broaden applicability, as would generalizing the framework to non-point-absorber archetypes. +\begin{itemize}[leftmargin=*] + \item \textbf{Neglect of surge force in the structures module and absence of a mooring cost model.} Surge forces on the nominal RM3 are \resultsAOR[surgeForceFloatNominal] (float) and \resultsAOR[surgeForceSparNominal] (spar), and mooring/foundation accounts for 12\% of CAPEX (\Cref{tab:CBS}); incorporating these would likely affect optimal designs. + \item \textbf{Regular-wave assumption in storm load cases.} Storm waves are nonlinear, and the regular-wave equivalent cannot capture transient peaks; second-order MEEM \citep{cong_novel_2020,mavrakos_second-order_2009} or the slender-body approximation in RAFT \citep{carmo_slender-body_2025} are candidate extensions. + \item \textbf{Regular-wave assumption in operational loads.} Stochastic linearization \citep{da_silva_statistical_2020,da_silva_stochastic_2023,kluger_synergistic_2017,folley_spectral-domain_2016,spanos_efficient_2016,neshat_enhancing_2024} could replace the describing function to handle spectral inputs and enable spectral fatigue, grid-integration, and storage-sizing analyses \citep{mccabe_wec_2025}. + \item \textbf{Single WEC archetype.} Extending MEEM to handle the damping plate or 3+ concentric cylinders \citep{best_openflash_2026,bimali_matrix_2026} would broaden applicability, as would generalizing the framework to non-point-absorber archetypes. \end{itemize} Additional model refinements that would build trust without unlocking new study types include local buckling and effective-breadth criteria in the structures module, FEA-based validation of the structural model, additional PTO nonlinearities (drivetrain friction, check-valve rectification, power saturation), and Miner's-law fatigue analysis coupled with storm-sea-state contour modeling for finite-lifetime designs. - Per-item rationale and implementation paths are in [dissertation chapter X]. + Per-item rationale and implementation paths are in \citet{mccabe_dissertation_2026}. \fi diff --git a/pubs/applied-ocean-research-model/sections/meem-appendix.tex b/pubs/applied-ocean-research-model/sections/meem-appendix.tex index c4577099c..a372c2574 100644 --- a/pubs/applied-ocean-research-model/sections/meem-appendix.tex +++ b/pubs/applied-ocean-research-model/sections/meem-appendix.tex @@ -2,15 +2,15 @@ \section{Matched Eigenfunction Expansion Method} \label{sec:appendix-meem-details} -As introduced in \cref{sec:hydro-meem}, the hydrodynamic coefficients are computed semi-analytically using MEEM. -This section explains the MEEM formulation and solution methodology for the radiation of a dual truncated concentric cylinder geometry, originally presented in the studies \cite{mavrakos_hydrodynamic_2004,chau_inertia_2010,chau_inertia_2012} as an extension of the single-cylinder MEEM radiation solution in the study \cite{yeung_added_1981}. -Further numeric and realization details of the authors' implementation may be found in references \cite{bimali_matrix_2026,best_openflash_2026,mccabe_open-source_2024}. +As introduced in \Cref{sec:hydro-meem}, the hydrodynamic coefficients are computed semi-analytically using MEEM. +This section explains the MEEM formulation and solution methodology for the radiation of a dual truncated concentric cylinder geometry, originally presented by \citet{mavrakos_hydrodynamic_2004,chau_inertia_2010,chau_inertia_2012} as an extension of the single-cylinder MEEM radiation solution in the study by \citet{yeung_added_1981}. +Further numeric and realization details of the authors' implementation may be found in references \citet{bimali_matrix_2026,best_openflash_2026,mccabe_open-source_2024}. The computation involves splitting the fluid domain into regions, approximating an infinite series by truncation, and solving a matrix equation to enforce the continuity of potential and velocity across regions. \subsection{Linear Hydrodynamics and Eigenfunctions} The dynamics of a floating body in water waves are well-described by linear potential flow theory, a simplification of the Navier-Stokes equation. -This theory states that the fluid velocity field is the gradient of some complex potential $\phi$, $\vec{v}=\nabla\phi$, and $\phi$ satisfies the Laplace equation, $\nabla^2\phi=0$. -Adding the free surface condition, far-field or incident waves, and body surface and sea-bed conditions detailed in reference \cite{chatjigeorgiou_analytical_2018} yields a boundary value problem. +This theory states that the fluid velocity field is the gradient of some complex potential $\phi$, $\vec{v}=\nabla\phi$, and $\phi$ satisfies the Laplace equation, $\nabla^2\phi=0$. +Adding the free surface condition, far-field or incident waves, and body surface and sea-bed conditions detailed in \citet{chatjigeorgiou_analytical_2018} yields a boundary value problem. When boundary conditions correspond to the heave radiation problem (body moving vertically, no incident waves), solving for the potential $\phi(r,\theta,z)$ determines the heave added mass and damping $A_h$ and $B_h$, hereafter ``hydro coefficients.” For appropriate geometries, the partial differential equation is separable and $\phi$ can be expressed as the product of radial, vertical, and circumferential basis functions called eigenfunctions. @@ -21,23 +21,27 @@ \subsection{Linear Hydrodynamics and Eigenfunctions} Extension to many regions is discussed in section 3.4. \Cref{fig:meem-regions} illustrates the regions and dimensions: two internal regions \textit{i1} and \textit{i2}, and an external region \textit{e} extending to infinity. -\begin{figure}[htbp] +\begin{figure}[htb] \centering -\input{figs/tikz/meem_dims.tikz} +\includegraphics{figs/from-matlab/meem_dims.pdf} \caption{Fluid regions and dimensions used in the dual concentric cylinder MEEM} \label{fig:meem-regions} \end{figure} The potential in each region is split into a homogeneous part for the unforced solution and a particular part due to body motion: $\phi=\phi_h+\phi_p$. -Boundary conditions dictate $\phi_p$ and the eigenfunctions for $\phi_h$ in each region, which the textbook \cite{chatjigeorgiou_analytical_2018} describes in detail. -\Cref{tab:MEEM-eigenfunctions} shows the equations originally presented in the studies \cite{chau_inertia_2010,chau_inertia_2012} for the potential and eigenfunctions in each region, which include infinitely many unknown eigencoefficients $C_{1n}^{i1}$, $C_{1m}^{i2}$, $C_{2m}^{i2}$ and $B_{k}^{e}$. +Boundary conditions dictate $\phi_p$ and the eigenfunctions for $\phi_h$ in each region, which the textbook \citet{chatjigeorgiou_analytical_2018} describes in detail. +\Cref{tab:MEEM-eigenfunctions} shows the equations originally presented in the studies by \citet{chau_inertia_2010,chau_inertia_2012} for the potential and eigenfunctions in each region, which include infinitely many unknown eigencoefficients $C_{1n}^{i1}$, $C_{1m}^{i2}$, $C_{2m}^{i2}$ and $B_{k}^{e}$. By construction, this potential obeys all boundary conditions except for zero radial velocity on radial body surfaces. -The unknown coefficients must be computed to enforce this final condition as well as continuity across regions, which will be the subject of \cref{sec:appendix-meem-matching}. +The unknown coefficients must be computed to enforce this final condition as well as continuity across regions, which will be the subject of \Cref{sec:appendix-meem-matching}. -\begin{landscape} \begin{table}[htbp] \centering - \begin{tabular}{|>{\centering\arraybackslash}p{0.085\linewidth}|>{\centering\arraybackslash}p{0.26\linewidth}|>{\centering\arraybackslash}p{0.34\linewidth}|>{\centering\arraybackslash}p{0.32\linewidth}|} \hline + \begin{tabular}{| + M{0.069\linewidth}| + M{0.29\linewidth}| + M{0.29\linewidth}| + M{0.25\linewidth}| + } \hline Region& $i1$& $i2$& $e$\\ \hline Homog. potential $\phi_h(r,z)$& $\displaystyle\sum_n C_{1n}^{i1} R_{1n}^{i1}(r) Z_n^{i1}(z)$& $\displaystyle\sum_m \left(C_{1m}^{i2} R_{1m}^{i2}(r) + C_{2m}^{i2} R_{2m}^{i2}(r) \right) Z_m^{i2}(z)$& $\displaystyle\sum_k B_k^e \Lambda_k(r) Z_k^e(z)$\\ \hline Partic. potential $\phi_p(r,z)$& $\displaystyle\frac{1}{2(h-d_1)}\left[ (z+h)^2 - \frac{r^2}{2}\right] $& $\displaystyle\frac{1}{2(h-d_2)}\left[ (z+h)^2 - \frac{r^2}{2}\right]$& $0$\\ \hline @@ -69,11 +73,9 @@ \subsection{Linear Hydrodynamics and Eigenfunctions} \end{tabular} \caption{Equations for potential (homogeneous and particular) and eigenfunctions (radial and vertical) for each region.} \label{tab:MEEM-eigenfunctions} - \fillandplacepagenumber \end{table} -\end{landscape} -In \cref{tab:MEEM-eigenfunctions}, $\textrm{I}_0$, $\textrm{K}_0$, and $\textrm{H}_0^1$ are different Bessel functions of order zero; 1M and 2M mean body 1 and 2 (spar and float) are moving respectively, while 1S and 2S mean each is stationary; and the $N_k$ expression is defined as: +In \Cref{tab:MEEM-eigenfunctions}, $\textrm{I}_0$, $\textrm{K}_0$, and $\textrm{H}_0^1$ are different Bessel functions of order zero; 1M and 2M mean body 1 and 2 (spar and float) are moving respectively, while 1S and 2S mean each is stationary; and the $N_k$ expression is defined as: \begin{equation} N_k = \frac{1}{2}\left(1+\frac{f_k}{2m_kh} \right)~ @@ -269,7 +271,6 @@ \subsection{Linear Hydrodynamics and Eigenfunctions} \Cref{tab:meem-integrals} lists several integrals of the radial and vertical eigenfunctions, $\boldsymbol{\mathcal{R}}$ and $\boldsymbol{\mathcal{Z}}$ respectively, that will be needed in the calculations to follow. -\begin{landscape} \begin{table}[htbp] \centering \caption{Eigenfunction integrals} @@ -283,15 +284,14 @@ \subsection{Linear Hydrodynamics and Eigenfunctions} \multirow{2}{*}{\ZmkDefn} & $k=0$ & \ZmZeroKZero & \ZmOneKZero \\ \cline{2-4} & $k\geq1$ & \ZkOneMZero & \ZkOneMOne \\ \hline \end{tabular} - \fillandplacepagenumber \end{table} -\end{landscape} + \subsection{Matching Across Fluid Boundaries} \label{sec:appendix-meem-matching} The eigencoefficients must be selected to enforce the radial velocity body boundary condition and the matching of the potentials and radial velocities at the edges of each region, earning this technique the name Matched Eigenfunction Expansion Method (MEEM). -The radiation problem was first solved this way for a floating cylinder in 1980 \cite{yeung_added_1981}. +The radiation problem was first solved this way for a floating cylinder in 1980 \citep{yeung_added_1981}. First, the infinite sums in $\phi_h$ must be truncated. Assuming truncation to $N$ terms in \textit{i1}, $M$ terms in \textit{i2}, and $K$ terms in \textit{e}, the total number of eigencoefficients to solve for is $N+2M+K$. @@ -314,7 +314,7 @@ \subsection{Matching Across Fluid Boundaries} In the current hydrodynamics problem, the basis functions are the vertical eigenfunctions $Z_n^{i1}$, $Z_m^{i2}$, and $Z_k^{e}$. Orthogonality of each eigenfunction can be verified with the inner product. In the first region, for example, $=\delta_{n_1n_2}$. -Note that eigenfunctions of different domains are not orthogonal, and their inner products will be expressed as coupling integrals in \cref{tab:meem-integrals}. +Note that eigenfunctions of different domains are not orthogonal, and their inner products will be expressed as coupling integrals in \Cref{tab:meem-integrals}. For each of the four matching equations, the property of orthogonality applies only after multiplying by the appropriate eigenfunction and integrating over appropriate bounds. For the potential matching equations, multiply both sides by the eigenfunction of the region with smaller fluid height (so $Z_n^{i1}$ at $a_1$ and $Z_m^{i2}$ at $a_2$). @@ -322,23 +322,22 @@ \subsection{Matching Across Fluid Boundaries} For velocity matching, multiply instead by the eigenfunction corresponding to the larger region, while still integrating over the smaller region. In velocity matching, an extra step is required to incorporate the boundary condition of zero radial velocity along the radial surface of the body. Since it is zero-valued, the integral of this velocity may be added to one side of the equation (the one corresponding to the velocity of the larger region) to change the integration bounds only on that side. -This manifests in the bounds of the coupling integrals to be presented in \cref{tab:meem-integrals}. +This manifests in the bounds of the coupling integrals to be presented in \Cref{tab:meem-integrals}. Other combinations of eigenfunction multiplication or integration besides those described above are not useful since they result in integrating a quantity on a region where it is undefined, or a form unsuitable for the application of the orthogonality property. \subsection{Block Matrix Structure} Once orthogonality is applied, the matching equations create a linear system $A\vec{x}=\vec{b}$ where $A$ is a complex sparse $(N+2M+K)$x$(N+2M+K)$ square matrix corresponding to the homogeneous case, $\vec{x}=[\vec{C_{1n}^{i1}}, \vec{C_{1m}^{i2}}, \vec{C_{2m}^{i2}}, \vec{B_{k}^{e}}]$ is the complex eigencoefficient vector, and $\vec{b}$ is the real boundary condition vector corresponding to the particular case. We elaborate on the block structure of the A-matrix and b-vector, an implementation detail that prior discussion of MEEM overlooks. -The A-matrix and b-vector block structures are shown in \cref{tab:MEEM-A-matrix,tab:MEEM-b-vector} respectively. +The A-matrix and b-vector block structures are shown in \Cref{tab:MEEM-A-matrix,tab:MEEM-b-vector} respectively. They are written in compact notation using row vectors of basis functions, so $\vec{R_{1n}^{i1}}=[R_{10}^{i1}, R_{11}^{i1}, ..., R_{1(N-1)}^{i1}]$ and so on. Each basis function is evaluated at the radius described to the left of its row in the table. $0_{ij}$ and $1_{ij}$ are the $i$ x $j$ matrices of zeros and ones respectively; diag($\cdot$) constructs a diagonal matrix from a vector; and $\odot$ is the Hadamard (element-wise) product. -\begin{landscape} \begin{table}[htbp] \centering \caption{MEEM A-matrix} \label{tab:MEEM-A-matrix} - \begin{tabular}{|>{\centering\arraybackslash}p{0.18\linewidth}|c||c|c|c|c|}\hline + \begin{tabular}{|M{0.12\linewidth}|c||c|c|c|c|}\hline & & $\vec{C}_{1n}^{i1}$& $\vec{C}_{1m}^{i2}$& $\vec{C}_{2m}^{i2}$&$\vec{B}_k^e$\\\hline &size& N& M& M& K\\ \hline \hline \shortstack{$\phi^{i1}=\phi^{i2}$ \\ at $r=a_1$}&N& $(h-d_1)~\mathrm{diag}(\vec{R}_{1n}^{i1})$& $-\boldsymbol{\mathcal{Z}}_{nm}\odot 1_{N1}\vec{R}_{1m}^{i2}$& $-\boldsymbol{\mathcal{Z}}_{nm}\odot 1_{N1}\vec{R}_{2m}^{i2}$& $0_{NK}$\\ \hline @@ -346,9 +345,8 @@ \subsection{Block Matrix Structure} \shortstack{$\frac{\partial}{\partial r}\phi^{i1}=\frac{\partial}{\partial r}\phi^{i2}$ \\ at $r=a_1$}&M& $- \boldsymbol{\mathcal{Z}}_{mn} \odot 1_{M1} \frac{\partial}{\partial r}\vec{R}_{1n}^{i1}$& $(h-d_2)~\mathrm{diag}(\frac{\partial}{\partial r}\vec{R}_{1m}^{i2})$& $(h-d_2)~\mathrm{diag}(\frac{\partial}{\partial r}\vec{R}_{2m}^{i2})$& $0_{MK}$\\ \hline \shortstack{$\frac{\partial}{\partial r}\phi^{i2}=\frac{\partial}{\partial r}\phi^{e}$ \\ at $r=a_2$}&K& $0_{KN}$& $-\boldsymbol{\mathcal{Z}}_{km} \odot 1_{K1}\frac{\partial}{\partial r}\vec{R}_{1m}^{i2}$& $-\boldsymbol{\mathcal{Z}}_{km}\odot 1_{K1}\frac{\partial}{\partial r}\vec{R}_{2m}^{i2}$& $h~\mathrm{diag}(\frac{\partial}{\partial r}\vec{\Lambda}_k)$\\ \hline \end{tabular} - \fillandplacepagenumber \end{table} -\end{landscape} + \begin{table}[htbp] \centering \caption{MEEM b-vector} @@ -372,10 +370,10 @@ \subsection{Block Matrix Structure} The dense blocks contain coupling integrals $\boldsymbol{\mathcal{Z}}$ of the vertical eigenfunctions. Of the sixteen blocks that make up the matrix, six are diagonal, four are zero, and six are dense, resulting in the sparsity pattern shown in \Cref{fig:sparsity}. -An even sparser matrix could be obtained with the alternate eigenfunction scaling for the second region described in reference \cite{chau_inertia_2012}. +An even sparser matrix could be obtained with the alternate eigenfunction scaling for the second region described in \citet{chau_inertia_2012}. \begin{figure}[htbp] \centering - \includegraphics[width=0.75\linewidth]{figs/from-matlab/meem_sparsity.pdf} + \includegraphics[width=0.45\linewidth]{figs/from-matlab/meem_sparsity.pdf} \caption{A-matrix sparsity pattern, shown for $N=M=K=4$} \label{fig:sparsity} \end{figure} @@ -432,19 +430,19 @@ \subsection{Calculation of Outputs} \end{alignat} where the generic indices $j_1$ and $j_2$ are used to represent $n$ or $m$ depending on the region. For regions with multiple radial eigenfunctions or surfaces covering multiple fluid regions, summation over each eigenfunction and region respectively is implied. -After substituting the eigenfunctions from \cref{tab:MEEM-eigenfunctions} into \cref{eq:meem-c-derivation}, all $z$-dependent quantities are evaluated at the body draft on the integration surface, $z=-d$. +After substituting the eigenfunctions from \Cref{tab:MEEM-eigenfunctions} into \Cref{eq:meem-c-derivation}, all $z$-dependent quantities are evaluated at the body draft on the integration surface, $z=-d$. This means $\frac{\partial \phi_p}{\partial z}=1$, and $Z_j(z)$ simplifies to \begin{equation} Z_j(z=-d) = \begin{cases}1,& j=0\\ \sqrt2(-1)^j,& j \geq 1\end{cases} \end{equation} -The third and fourth integrals of \cref{eq:meem-c-derivation} vanish, and the second integral is the radial eigenfunction integral $\boldsymbol{\mathcal{R}}$ expressed previously in \cref{tab:meem-integrals}. +The third and fourth integrals of \Cref{eq:meem-c-derivation} vanish, and the second integral is the radial eigenfunction integral $\boldsymbol{\mathcal{R}}$ expressed previously in \Cref{tab:meem-integrals}. The first and second term are independent of and scale linearly with the eigencoefficients $\vec{x}$, respectively. The radiation coefficients are thus computed as -\begin{equation} +\begin{equation}\label{eq:hydro} A_h + \frac{iB_h}{\omega}=2\pi \rho h^3(c_0 + \vec{c}\cdot\vec{x}) =2\pi \rho h^3(c_0 + \vec{c} \cdot A^{-1} \vec{b}) \end{equation} -with output constant $c_0$ and output row vector $\vec{c}$ defined in \cref{eq:c0,tab:MEEM-c-vector} respectively: +with output constant $c_0$ and output row vector $\vec{c}$ defined in \Cref{eq:c0,tab:MEEM-c-vector} respectively: \begin{equation}\label{eq:c0} c_0 = \frac{\left({a^2_{out}}-{a^2_{in}}\right)\,\left(-{a^2_{in}}-{a^2_{out}}+4(h-d)^2\right)}{16\,\left(h - d\right)} \end{equation} @@ -482,59 +480,60 @@ \subsection{Calculation of Outputs} \begin{equation}\label{eq:gamma-K} |\gamma| = \sqrt{\frac{ 4 \rho_w g V_g B_h} {m_0}}, \quad % excitation \angle \gamma = -\frac{\pi}{2} + \angle\frac{ B_{k=0}^e}{\textrm{H}_0^{1}(m_0 a_2)},\quad - K_h = \rho_w g A_w % hydrostatic stiffness + K_h = \rho_w g \underbrace{\frac{\pi}{4} (D_f^2 - D_s^2)}_{A_{w,f}},\quad % hydrostatic stiffness + K_s = \rho_w g \underbrace{\frac{\pi}{4} D_s^2}_{A_{w,s}} \end{equation} -where $g$ is the acceleration due to gravity, $\rho_w$ is the density of water, $m_0$ is the wavenumber, $V_g$ is the finite depth group velocity, $\textrm{H}_0^1$ is the zeroth-order Hankel function of the first kind, and $A_w= \frac{\pi}{4} (D_f^2 - D_s^2)$ is the waterplane area \cite{newman}. +where $g$ is the acceleration due to gravity, $\rho_w$ is the density of water, $m_0$ is the wavenumber, $V_g$ is the finite depth group velocity, $\textrm{H}_0^1$ is the zeroth-order Hankel function of the first kind, and $A_w$ is the waterplane area \citep{newman}. This method of calculating excitation from damping is the well-known Haskind relation. Note that while the excitation magnitude $|\gamma|$ depends on the radiation damping $B_h$ which in turn depends on all the inner region eigencoefficients ($\vec{C}_{m}^{i2}$ for float excitation and $\vec{C}_{1n}^{i1}$ for the spar excitation), the excitation phase $\angle\gamma$ depends only on the first exterior eigencoefficient, $B_{k=0}^e$. -\subsection{Validation} +\subsection{Verification and Validation} -Hydro coefficient results are validated by comparing to a benchmark shallow-water concentric-cylinder MEEM solution in reference \cite{chau_inertia_2012}. +Hydro coefficient results are verified by comparing to a benchmark shallow-water concentric-cylinder MEEM solution in \citet{chau_inertia_2012}. Excellent agreement is observed, shown in \Cref{fig:meem-yeung-validation}. -The results are also experimentally validated in the studies \cite{chau_inertia_2012,son_performance_2016}. -Previously in \cref{sec:dynamic-validation}, the N=M=K=11 case was compared to WAMIT results for RM3 in deep water. +The results are also experimentally validated in the studies \citet{chau_inertia_2012,son_performance_2016}. +Previously in \Cref{sec:dynamic-validation}, the N=M=K=11 case was compared to WAMIT results for RM3 in deep water. \begin{figure}[htbp] \centering - \includegraphics[width=0.75\linewidth]{figs/from-matlab/meem_validation.pdf} - \caption{Nondimensional added mass and damping coefficient validation against \cite{chau_inertia_2012}} + \includegraphics[width=0.5\linewidth]{figs/from-matlab/meem_validation.pdf} + \caption{Nondimensional added mass and damping coefficient validation against \citep{chau_inertia_2012}} \label{fig:meem-yeung-validation} \end{figure} \subsection{Convergence} As $N,M,K\rightarrow\infty$, matching quality improves, and hydro coefficients converge toward their true values. -Previous MEEM papers use $N=M=K=50$ to obtain 4-digit matching accuracy without elaborating on convergence properties \cite{chau_inertia_2012}. +Previous MEEM papers use $N=M=K=50$ to obtain 4-digit matching accuracy without elaborating on convergence properties \citep{chau_inertia_2012}. We observe that potential matching converges faster than velocity matching. \Cref{fig:meem-matching} shows the matching behavior for $N=M=K=11$, where potential matches well but velocity still has noticeable mismatch. \begin{figure}[htbp] \centering - \includegraphics[width=0.75\linewidth]{figs/from-matlab/meem_matching.pdf} + \includegraphics[width=0.5\linewidth]{figs/from-matlab/meem_matching.pdf} \caption{Matching for $N=M=K=11$ for benchmark geometry} \label{fig:meem-matching} \end{figure} -Hydro coefficient convergence depends on the geometry: the benchmark shallow-water geometry of \cite{chau_inertia_2012} converges to within 0.25\% with only $N=M=K=4$, but RM3 requires $N=M=K>10$, shown in \cref{fig:meem-convergence}. +Hydro coefficient convergence depends on the geometry: the benchmark shallow-water geometry of \citep{chau_inertia_2012} converges to within 0.25\% with only $N=M=K=4$, but RM3 requires $N=M=K>10$, shown in \Cref{fig:meem-convergence}. There, damping converges well at low frequencies but requires more harmonics at higher frequencies, while added mass has similar convergence across frequencies. \begin{figure}[htbp] \centering - \includegraphics[width=0.75\linewidth]{figs/from-matlab/meem_convergence_vs_omega.pdf} + \includegraphics[width=0.5\linewidth]{figs/from-matlab/meem_convergence_vs_omega.pdf} \caption{Convergence for $N=M=K=(5,10,20,30)$ for RM3} \label{fig:meem-convergence} \end{figure} \subsection{Numerical Notes}\label{sec:appendix-meem-numerics} -Note that radial eigenfunctions $R_{1n}^{i1}(r)$ and $R_{1m}^{i2}(r)$ contain the modified bessel function of the first kind $\mathrm{I}_0(\chi)$, which diverges for $\chi\rightarrow \infty$, resulting in numeric overflow -To prevent overflow, each fluid region must exceed a minimum height $ \Delta z_{\text{min}}$ that is proportional to the region diameter $D$ for both the spar ($\Delta z_s, D_s$) and the float ($\Delta z_f, D_f$), with variables shown in \cref{fig:meem-geom}. +Note that radial eigenfunctions $R_{1n}^{i1}(r)$ and $R_{1m}^{i2}(r)$ contain the modified Bessel function of the first kind $\mathrm{I}_0(\chi)$, which diverges for $\chi\rightarrow \infty$, resulting in numeric overflow. +To prevent overflow, each fluid region must exceed a minimum height $ \Delta z_{\text{min}}$ that is proportional to the region diameter $D$ for both the spar ($\Delta z_s, D_s$) and the float ($\Delta z_f, D_f$), with variables shown in \Cref{fig:meem-geom}. The constant of proportionality between $\Delta z_{\text{min}}$ and $D$ is a function of the number of harmonics $N_{\text{harmonics}}$ used in that region ($N$ for spar, $M$ for float), as well as the maximum argument to the \texttt{besseli} function in MATLAB before overflow, $\chi_{\text{max}}$: \begin{equation}\label{eq:delta-z-min} \frac{\Delta z_{min}}{D} = \frac{\pi N_{harmonics}}{2\chi_{max}} \approx \frac{N_{harmonics}}{446}. \end{equation} By trial, $\chi_{\text{max}}$ is found to be $\approx 700.5$, close to the theoretical value of \texttt{log(realmax)} $\approx 709.8$ for exponential scaling. Since $N_{\text{harmonics}}=10$ gives adequate convergence for most geometries, this condition is trivially satisfied for nearly all floating bodies of practical relevance, but must still be added as a constraint to prevent the optimizer from exploiting the numerical divergence. -In future work, if high-accuracy solutions are desired for large bodies close to the sea floor, exponentially scaled bessel functions could be used instead, with symbolic cancellation of the exponential scaler from the eigenfunction numerator and denominator. +In future work, if high-accuracy solutions are desired for large bodies close to the sea floor, exponentially scaled Bessel functions could be used instead, with symbolic cancellation of the exponential scaler from the eigenfunction numerator and denominator. Likewise, the vertical eigenfunction $Z_k^e$ for $k=0$ contains the $\cosh$ and $\sinh$ functions, which diverge for large values of $m_0h$ (high frequencies or deep water). Since the largest relevant value of $m_0h$ depends on the site rather than on the WEC design, it is not possible to add geometric constraints to prevent overflow as it was above. @@ -548,7 +547,7 @@ \subsection{Numerical Notes}\label{sec:appendix-meem-numerics} \end{equation} \begin{figure}[htbp] \centering - \includegraphics[width=.75\linewidth]{figs/from-matlab/asymptotic_b_vector.pdf} + \includegraphics[width=.5\linewidth]{figs/from-matlab/asymptotic_b_vector.pdf} \caption{Asymptotic b-vector for large $m_0h$} \label{fig:meem-b-limit} \end{figure} @@ -587,13 +586,13 @@ \subsection{Runtime and Computational Cost Scaling} Then $3N+8M+2K-11$ Bessel functions must be evaluated for the radial terms of the A-matrix. (Note that this would reduce to $2N+8M+2K-10$ evaluations if the definition of the $R^{i1}_{1n}(r)$ eigenfunction were modified to use a scale factor based on $a_1$ rather than $a_2$, although this enhancement is not pursued here to maintain consistency with previous work). % if I change scaling of i2 from a2 to (a1+a2)/2, it increases by 2*(M-1). So total would be 2N+10M+2K-12. see notebook p51. -The cost of evaluating vertical coupling integrals (\cref{tab:meem-integrals}) is negligible since they are trigonometric. +The cost of evaluating vertical coupling integrals (\Cref{tab:meem-integrals}) is negligible since they are trigonometric. Linear solves scale almost cubically with matrix size, so this step scales with $(N+2M+K)^3$. The radial integrals for the c-vector do not require evaluating Bessel functions with any arguments that were not already evaluated for the A-matrix. -For $N=M=K=10$, the simulation of a single frequency averages \resultsAOR[MEEMRuntime] on the hardware described in \cref{sec:sim-runtime}. +For $N=M=K=10$, the simulation of a single frequency averages \resultsAOR[MEEMRuntime] on the hardware described in \Cref{sec:sim-runtime}. \Cref{fig:runtime-hydro} shows the time breakdown. Most of the time is spent evaluating Bessel functions, so future code optimization should focus on speeding up Bessel evaluations, such as with lookup tables. -Reference \cite{chau_inertia_2012} proposes using the sparsity pattern to reduce matrix size from N+2M+K to 2M, but this seems low impact since the linear solve only takes a few percent of compute time and the reduced matrix would require an equal number of Bessel evaluations. +\citet{chau_inertia_2012} proposes using the sparsity pattern to reduce matrix size from N+2M+K to 2M, but this seems low impact since the linear solve only takes a few percent of compute time and the reduced matrix would require an equal number of Bessel evaluations. On the other hand, matrix size in a boundary element method solver is much larger (meshes may have 1000s of panels) and the linear solve can drive computation cost. -On the same machine, Capytaine boundary element method for the same geometry takes an average of 323 ms for a 710 panel mesh (1\% convergence). %\hl{the 323 ms capy number came from my laptop not from the lab computer} +On the same machine, Capytaine boundary element method for the same geometry takes an average of 323 ms for a 710 panel mesh (1\% convergence). %\hl{the 323 ms capy number came from my laptop not from the lab computer} Thus, MEEM achieves a 10x time reduction over Capytaine. diff --git a/pubs/applied-ocean-research-model/sections/model-intro.tex b/pubs/applied-ocean-research-model/sections/model-intro.tex index b5d5d5c29..5dfdb398c 100644 --- a/pubs/applied-ocean-research-model/sections/model-intro.tex +++ b/pubs/applied-ocean-research-model/sections/model-intro.tex @@ -5,8 +5,8 @@ \subsection{Wave Energy Overview} % stronger opening sentence The global climate crisis requires a transition to carbon-free energy sources such as ocean wave energy. -Ocean waves have higher consistency, predictability, and energy density than other renewable energy sources such as wind and solar, while the temporal complementarity of waves with other resources can improve grid resilience and capacity adequacy, decrease energy prices, and decrease requirements for energy storage and balancing power \cite{akdemir_opportunities_2023,bhattacharya_timing_2021,pennock_temporal_2022}. -Wave energy converters (WECs), the devices that harness and convert this energy, could provide both electricity for the grid at large scale and power for smaller offshore technologies like aquaculture, desalination, and marine sensing \cite{livecchi_powering_2019}. +Ocean waves have higher consistency, predictability, and energy density than other renewable energy sources such as wind and solar, while the temporal complementarity of waves with other resources can improve grid resilience and capacity adequacy, decrease energy prices, and decrease requirements for energy storage and balancing power \citep{akdemir_opportunities_2023,bhattacharya_timing_2021,pennock_temporal_2022}. +Wave energy converters (WECs), the devices that harness and convert this energy, could provide both electricity for the grid at large scale and power for smaller offshore technologies like aquaculture, desalination, and marine sensing \citep{livecchi_powering_2019}. \ifdefined\DISSERTATION Despite the potential advantages of WECs, a significant decrease in the cost per unit energy production is required before the technology can be deployed at large scales. %\hl{(Add a more specific number to show that the LCOE needs to come down an order of magnitude).} Meanwhile, a lack of design convergence (...) Thus, a design process that emphasizes techno-economic viability from an early stage is necessary. @@ -23,22 +23,22 @@ \subsection{Wave Energy Overview} Automating this process through optimization allows WEC designers to more quickly and systematically explore tradeoffs of major design decisions, and could eventually allow standardized comparisons between different WEC architectures. Thus, performing a system-level WEC optimization that simultaneously considers the coupled techno-economic goals, design decisions, and requirements is highly advantageous. \else - The strong interdisciplinary coupling of WEC design — between powertrain, controller, bulk dimensions, hydrodynamic shape, and structural thicknesses — complicates conventional design techniques. - Systematically exploring this coupled tradeoff requires a fast multidisciplinary simulation that can be embedded in an optimization loop. + The strong interdisciplinary coupling of between powertrain, controller, bulk dimensions, hydrodynamic shape, and structural thicknesses complicates conventional WEC design techniques. + Systematically exploring these coupled tradeoffs requires a fast multidisciplinary simulation that can be embedded in an optimization loop. \fi %\Cref{fig:disciplines} is a non-exhaustive outline of the most common disciplines in a wave energy converter, and the level and direction of coupling between them. % what is RM3 \ifdefined\DISSERTATION An initial attempt to consolidate a multidisciplinary WEC design process, though without optimization, was the Reference Model Project. - From 2010 to 2014, the U.S.\ Department of Energy funded the creation of six benchmark designs for marine energy devices, published a report \cite{RM3} describing the design considerations and performance calculations, and released design artifacts and other documentation on its website.\footnote{\url{https://openei.org/wiki/PRIMRE/Signature_Projects/Reference_Model}} Three designs are for tidal and current energy turbines, and three are WECs. + From 2010 to 2014, the U.S.\ Department of Energy funded the creation of six benchmark designs for marine energy devices, published a report \citep{RM3} describing the design considerations and performance calculations, and released design artifacts and other documentation on its website.\footnote{\url{https://openei.org/wiki/PRIMRE/Signature_Projects/Reference_Model}} Three designs are for tidal and current energy turbines, and three are WECs. The third reference model, known as RM3, is a two-body point absorber WEC designed for a reference site located in Humboldt Bay, California. - The major structural components of the device are a surface float and a spar consisting of a vertical column and a subsurface damping plate, with labeled dimensions shown in \cref{fig:dims}. + The major structural components of the device are a surface float and a spar consisting of a vertical column and a subsurface damping plate, with labeled dimensions shown in \Cref{fig:dims}. The float oscillates up and down with oncoming incident waves while the spar stays mostly stationary, and electrical power is produced from this relative heave motion. RM3 has received considerable research attention in the decade since the original report was published. The present study builds on that work and presents a multidisciplinary techno-economic simulation of the RM3. \else - This paper builds on the U.S.\ Department of Energy's Reference Model Project, specifically the third reference model (RM3) \cite{RM3}: a two-body point-absorber WEC designed for Humboldt Bay, California, comprising a surface float and a spar with a subsurface damping plate (\cref{fig:dims}). + This paper builds on the U.S.\ Department of Energy's Reference Model Project, specifically the third reference model (RM3) \citep{RM3}: a two-body point-absorber WEC designed for Humboldt Bay, California, comprising a surface float and a spar with a subsurface damping plate (\Cref{fig:dims}). Electrical power is produced from the relative heave motion of the float against the spar. \fi @@ -53,36 +53,26 @@ \subsection{WEC System Modeling: State of the Art and Gaps} \ifdefined\DISSERTATION Existing models of WECs in the literature vary widely in their disciplinary scope, fidelity, and suitability for optimization. In the wave energy industry, multidisciplinary modeling is common due to the imperative of considering all design elements, although different disciplines are often modeled separately and sequentially rather than concurrently. - Reference \cite{trueworthy_wave_2020} provides a critical summary of the WEC design process and shares survey results from 25 WEC designers and developers. + \citet{trueworthy_wave_2020} provides a critical summary of the WEC design process and shares survey results from 25 WEC designers and developers. 50\% of respondents design all subsystems concurrently. The others tend to start with the WEC shape and PTO, then move to the controller and moorings, and finish with the power transportation system. - Reference \cite{trueworthy_wave_2020} concludes that concurrent design has promise to take advantage of subsystem interactions and is an under-utilized technique worthy of further study, emphasizing the importance of incorporating all design requirements at an early stage. + \citet{trueworthy_wave_2020} concludes that concurrent design has promise to take advantage of subsystem interactions and is an under-utilized technique worthy of further study, emphasizing the importance of incorporating all design requirements at an early stage. \else Existing WEC models vary widely in disciplinary scope, fidelity, and suitability for optimization. -In industry, multidisciplinary modeling is common but typically sequential rather than concurrent; a survey of 25 WEC designers \cite{trueworthy_wave_2020} found that only 50\% design all subsystems concurrently, and identified concurrent design as an under-utilized technique worthy of further study. +In industry, multidisciplinary modeling is common but typically sequential rather than concurrent; a survey of 25 WEC designers \citep{trueworthy_wave_2020} found that only 50\% design all subsystems concurrently, and identified concurrent design as an under-utilized technique worthy of further study. \fi -The academic state of the art typically focuses on modeling and optimizing one or a few disciplines at a time, with the most common being hydrodynamics, dynamics, and controls. +The academic state-of-the-art typically focuses on modeling and optimizing one or a few disciplines at a time, with the most common being hydrodynamics, dynamics, and controls. Major modeling choices include the representation (or lack thereof) of the WEC's hydrodynamics, dynamics, controls, mooring, powertrain, structures, and economic viability, as well as the sea states considered. % figure of taxonomy \Cref{fig:model-taxonomy} provides a simplified taxonomy of the various WEC system modeling approaches used in the literature, and \Cref{tab:lit} compares the most relevant studies along this taxonomy. -\begin{landscape} -\begingroup -\begin{figure}[htbp] -\centering -\includegraphics[width=1.1\linewidth]{figs/from-matlab/taxonomy.pdf} -\caption{WEC system modeling approaches, with MDOcean's capabilities outlined in black.}\label{fig:model-taxonomy} -\fillandplacepagenumber -\end{figure} -\endgroup -\end{landscape} % table summary \ifdefined\DISSERTATION Major modeling choices include the representation (or lack thereof) of the WEC's hydrodynamics, dynamics, controls, mooring, powertrain, structures, and economic viability, as well as the sea states considered. - After examining the overall trends in \cref{tab:lit}, each table entry will be described in more detail. + After examining the overall trends in \Cref{tab:lit}, each table entry will be described in more detail. Point absorbers (PA) seem to be the most common device architecture, though most major device types are represented, and several studies optimize arrays of multiple devices. Nearly all model hydrodynamics and power production in some way. Hydrodynamic modeling is typically performed with the boundary element method (BEM), occasionally with semi-analytical models like matched eigenfunction expansion method (MEEM), and rarely with high fidelity computational fluid dynamics (CFD), fitting a model to numerical or experimental data (FIT), or algebraic approximations (ALG). @@ -104,23 +94,105 @@ \subsection{WEC System Modeling: State of the Art and Gaps} The dominant trends across these studies are: point absorbers as the most common architecture; boundary element method (BEM) hydrodynamics with occasional semi-analytical (MEEM) treatments; drag handled via linear damping or describing functions; dynamics in either frequency or time domain (with extensions of either to handle constraints); and limited inclusion of structures, mooring, and cost modeling. \fi +% Per-study paragraphs +\ifdefined\DISSERTATION + \paragraph{Notable large-scale optimization studies} + More specifically, a few studies \citep{gaudin_single_2021,khanal_multi-objective_2024,edwards_optimisation_2022,garcia-teruel_reliability-based_2021} perform WEC optimization with several disciplines. + These studies are notable for their large scales of 120 degrees of freedom and 14, 15, and 66 design variables respectively. + \citet{gaudin_single_2021} optimizes an array of 20 submerged cylinders, holding the WEC design constant but optimizing site selection, array layout, and mooring design while considering cable and pile cost as well as pile load capacity. + \citet{khanal_multi-objective_2024} optimizes an array of four cylindrical point absorbers, with 4 modeled disciplines of array layout, hydrodynamics, controls, and economics. + \citet{edwards_optimisation_2022} is a point absorber shape optimization study that minimizes surface area as a cost proxy, accounts for stability constraints, and considers only geometries with power extraction equal to theoretical radiation, amplitude, and steepness limits. + \citet{garcia-teruel_reliability-based_2021}, along with the smaller scale study \citep{garcia-teruel_design_2022} by the same authors, apply multi-objective optimization to trade off power with fatigue load and device volume, respectively. + \citet{cotten_multi-objective_2022} similarly optimizes fatigue load for an attenuator-style WEC with many more degrees of freedom but fewer (8) design variables. + A different shape optimization \citep{abdulkadir_control_2024} notably calculates hydrodynamic coefficients via the semi-analytical matched eigenfunction expansion method (MEEM), rather than from boundary element method as is typical, but does not include disciplines beyond hydrodynamics and dynamics/controls. + A team at NREL attempted local optimization for a terminator shape study but found they could only reasonably optimize 3 of the intended 13 design variables at a time due to the high computational cost of their time-domain simulation \citep{housner_numerical_2024}. + The previous studies \citet{garcia-teruel_reliability-based_2021,garcia-teruel_design_2022,cotten_multi-objective_2022} avoided this issue by simulating primarily in the frequency domain and using the time domain only to address PTO constraints. + + \paragraph{Structural modeling and optimization} + Structural optimization of WECs faces a similar challenge in the high compute time of finite element analysis (FEA). + References \citep{coe_survey_2018, ove_arup__partners_ltd_structural_2016,paduano_towards_2024,giannini_wave_2022} provide guidelines for WEC survivability modeling and design, including the prediction of both extreme loads and structural failure. + Fatigue modeling methods include spectral analysis, rainflow counting, damage equivalent loads, and Miner's law, augmented with standard stress concentration factors or FEA for local hotspots \citep{ove_arup__partners_ltd_structural_2016}. + Strength modeling methods consist primarily of various fidelities of FEA, although hand and spreadsheet calculations permit sizing to a specified stress early in the design process \citep{ove_arup__partners_ltd_structural_2016}. + FEA of WECs is most often performed with manual design iterations, as in the studies \citep{RM3,mi_multi-scale_2025}. + These two studies, while not optimization, are extremely multidisciplinary, encompassing mooring design and detailed economic evaluation in addition to the more common hydrodynamics, powertrain, controls, and structures. + Automating the design process reported there remains a long-term vision for WEC multidisciplinary design. + + Notably, one study \citep{an_optimal_2024} performs true optimization of WEC structural FEA using the commercial computer aided engineering software Altair Inspire. + The study examines four design variables, although it keeps the power calculations entirely separate from the structural optimization, neglecting the interdisciplinary coupling. + Another structural optimization does not consider power at all, but is able to perform a brute-force sweep of 3 design variables by using analytical equations for stress and other failure modes \citep{ambuhl_reliability-based_2014}. + The new Project SEA Stack modeling suite adds hydrodynamics to Project Chrono, a multiphysics software with the ability to perform finite element analysis using beam, shell, or solid elements, although it appears that so far the structural modeling capabilities have only been used for offshore wind turbines rather than WECs \citep{ogden_hydrochrono_2023}. + Finally, several studies consider structures indirectly by examining the load on the device rather than the stress, e.g.\ \citep{nguyen_theoretical_2024, ferri_balancing_2014}, or equivalently assuming that stress scales with load and does not depend on any other dimensional design variable, e.g.\ \citep{garcia-teruel_reliability-based_2021, cotten_multi-objective_2022}. + Like the earlier MEEM study, \citet{nguyen_theoretical_2024} uses the equivalent analytical hydrodynamics in elliptical coordinates for an oscillating surge WEC. + + \paragraph{Controls and powertrain co-design} + The study \citep{ferri_balancing_2014} is notable because in addition to structural loads, it compares various control schemes and simulates second-order drivetrain dynamics. + The control co-design (CCD) methodology \citep{garcia-sanz_control_2019} emphasizes the importance of considering drivetrain dynamics and generator efficiency due to their strong effect on electrical power generation \citep{coe_useful_2023}. + A number of recent studies \citep{rosati_control_2023,son_performance_2016,anderson_re-imagining_2024,devin_high-dimensional_2024,grasberger_control_2024} simultaneously optimize the PTO with the controller. + \citet{rosati_control_2023} optimizes an OWC and is notable for its comparatively detailed cost modeling and its optimization of both economic and power variability metrics. + \citet{mccabe_multidisciplinary_2022} also optimized power variation, although that study's use of regular waves makes the variation formulation less useful. + Meanwhile, one point absorber PTO optimization \citep{son_performance_2016} is additionally notable for its use of the MEEM method. + \citet{gaebele_tpl_2025} is relevant because it optimizes the dimensional scale and PTO of the RM3 WEC directly using a control co-design approach. + It also efficiently incorporates many time-domain constraints (maximum force, speed, average power, RMS torque, and stroke) while maintaining frequency-domain hydrodynamics via the pseudo-spectral (PS) modeling method, which \citep{devin_high-dimensional_2024,grasberger_control_2024} also use. + + Other CCD papers optimize WEC dimensions without modeling the PTO. + \citet{herber_dynamic_2014} performs a direct transcription co-optimization of cylinder draft and radius with control. + \citet{lin_fast_2025} introduces a new CCD formulation for constrained control that is even faster than PS. + The method leverages the analytical Pontryagin Maximum Principle (PMP) and performs a case study to optimize a single geometric variable. + A different PMP formulation \citep{abdulkadir_optimal_2024} incorporates PTO-constrained array dynamics, although it has not yet been used for design optimization. +\else + Across these studies, the most directly relevant work falls into three groups. + First, several large-scale optimization studies \citep{gaudin_single_2021,khanal_multi-objective_2024,edwards_optimisation_2022,garcia-teruel_reliability-based_2021,garcia-teruel_design_2022,cotten_multi-objective_2022} address one to four disciplines but invariably exclude either structures or powertrain. + Second, structural optimization of WECs is hampered by the cost of FEA \citep{coe_survey_2018,ove_arup__partners_ltd_structural_2016,paduano_towards_2024,giannini_wave_2022}; the few WEC studies that perform structural optimization \citep{an_optimal_2024,ambuhl_reliability-based_2014} decouple it from power calculations. + Third, recent control co-design studies \citep{rosati_control_2023,son_performance_2016,gaebele_tpl_2025,devin_high-dimensional_2024,grasberger_control_2024,herber_dynamic_2014,lin_fast_2025,abdulkadir_optimal_2024} efficiently handle constraints via pseudo-spectral methods or analytical Pontryagin Maximum Principle, but none integrate structures or full economic costs. + The directly comparable RM3 study \citep{gaebele_tpl_2025} optimizes dimensional scale and PTO with control co-design but excludes structures. +\fi + +\paragraph{Software tools and gaps} +\ifdefined\DISSERTATION + Beyond models used in individual studies, it is also helpful to analyze the capabilities and gaps of available simulation tools. + The popular time-domain hydrodynamics tool WEC-Sim \citep{ruehl_wec-simwec-sim_2024} can become multidisciplinary through the use of integrations like NEMOH/Capytaine (hydrodynamic coefficients), PTO-Sim (electric and hydraulic components), WEC-Sim Applications (optimal control and other useful tools), and MoorDyn (mooring). + However, as \citep{housner_numerical_2024} reveals, it is too slow to use for large-scale optimization. + Meanwhile, the newer pseudospectral tool WecOptTool \citep{coe_initial_2020} is faster and suitable for control co-design, but its disciplines are currently limited to hydrodynamics (via Capytaine) and control, with the ability to easily add custom dynamics like PTO and mooring as needed, and it still can take considerable time for large optimizations. + + A 2023 marine energy software assessment \citep{ruehl_next-generation_2023} identified that industry-wide needs broadly include using state-of-the-art computation; overcoming limitations of existing software; ensuring appropriate language, architecture, and license of new software; accessing data; and ensuring usability and accuracy of free open source software. + Specifically, relevant gaps include tools for powertrain and controls modeling, co-design, and optimization; high-fidelity models with faster runtime and low/mid-fidelity models with higher accuracy; inter-operabilty of models across disciplines and fidelities; and data for verification and validation \citep{ruehl_next-generation_2023}. + This lack of a multidisciplinary WEC simulation platform that is sufficiently fast for optimization helps explain why no optimization study in \Cref{tab:lit} simultaneously optimizes the device geometry, structures, and powertrain. +\else + The two leading open-source WEC simulation tools illustrate the gap. + WEC-Sim \citep{ruehl_wec-simwec-sim_2024} is a time-domain simulator extensible to multidisciplinary studies via integrations (NEMOH/Capytaine for hydrodynamics, PTO-Sim for powertrain, MoorDyn for mooring), but is too slow for large-scale optimization \citep{housner_numerical_2024}. + WecOptTool \citep{coe_initial_2020} is a faster pseudospectral tool suitable for control co-design but currently limited to hydrodynamics and control. + A 2023 marine energy software assessment \citep{ruehl_next-generation_2023} explicitly identifies the absence of a fast multidisciplinary optimization platform as an industry-wide gap, which explains why no study in \Cref{tab:lit} simultaneously optimizes geometry, structures, and powertrain. + + Existing studies therefore tend to sacrifice either disciplinary breadth or computational tractability: high-fidelity multidisciplinary models are generally too expensive for large-scale optimization, while optimization-oriented models often omit structures, powertrain dynamics, or economic assessment. + This tradeoff motivates the development of a computationally efficient framework capable of concurrently capturing the major techno-economic couplings governing WEC performance. +\fi +\begin{landscape} +\begingroup +\begin{figure}[htbp] +\centering +\includegraphics[width=1.05\linewidth]{figs/from-matlab/taxonomy.pdf} +\caption{WEC system modeling approaches, with MDOcean's capabilities outlined in black.}\label{fig:model-taxonomy} +\fillandplacepagenumber +\end{figure} +\endgroup +\end{landscape} %Need to copy sources over from slide 27 and 35 of F24 reseach slides with original charts (with color) -\clearpage +\singleColMacro{ \begin{longtable}{ - >{\centering\arraybackslash}p{0.045\linewidth}| - >{\centering\arraybackslash}p{0.081\linewidth}| - >{\centering\arraybackslash}p{0.08\linewidth}| % hydro - >{\centering\arraybackslash}p{0.05\linewidth}| % drag - >{\centering\arraybackslash}p{0.035\linewidth}| % dynam - >{\centering\arraybackslash}p{0.08\linewidth}| % controls - >{\centering\arraybackslash}p{0.04\linewidth}| % mooring - >{\centering\arraybackslash}p{0.035\linewidth}| - >{\centering\arraybackslash}p{0.059\linewidth}| - >{\centering\arraybackslash}p{0.065\linewidth}| % econ - >{\centering\arraybackslash}p{0.072\linewidth}} + P{0.13\linewidth}| % Ref + P{0.055\linewidth}| % Type + P{0.08\linewidth}| % hydro + P{0.04\linewidth}| % drag + P{0.025\linewidth}| % dynam + P{0.05\linewidth}| % controls + P{0.04\linewidth}| % mooring + P{0.035\linewidth}| % PTO + P{0.05\linewidth}| % struct + P{0.06\linewidth}| % econ + P{0.065\linewidth}} % waves \rot{\textbf{Ref}} & \rot{\textbf{Type}} & \rot{\textbf{Hydro}}& \rot{\textbf{Drag}} & \rot{\textbf{Dyn}} & \rot{\textbf{Ctrl}} & \rot{\textbf{Moor}} & \rot{\textbf{PTO}} & \rot{\textbf{Struct}} & \rot{\textbf{Econ}} & \rot{\textbf{Waves}} \\ \hline -This work & 2-PA & MEEM & DF & F+ & PI+ & - & DY & AN & STR, PTO & REG+, STO \\ +This work & 2-PA & MEEM, ALG, FIT & DF, M & F+ & PI+ & - & DY & AN & STR, PTO & REG+, STO \\ \cite{mccabe_multidisciplinary_2022} & 2-PA & ALG & - & F+ & PI+ & - & EF & AN & STR & REG+, STO \\ @@ -144,7 +216,7 @@ \subsection{WEC System Modeling: State of the Art and Gaps} \cite{RM3} & 2-PA & BEM & Q & T & P & DE & - & FEA & FULL & IRR+, STO \\ -\cite{mi_multi-scale_2025} & OSW & BEM & Various & T & PI & DE & DY & FEA & FULL & IRR+, STO \\ +\cite{mi_multi-scale_2025} & OSW & BEM & \small{Various} & T & PI & DE & DY & FEA & FULL & IRR+, STO \\ \cite{an_optimal_2024} & OTP & CFD & CFD & T & - & - & - & FEA & - & STO \\ @@ -178,83 +250,12 @@ \subsection{WEC System Modeling: State of the Art and Gaps} \hline \caption{Comparison of the disciplinary scope and fidelity of optimization-relevant WEC models. -See \cref{fig:model-taxonomy} for abbreviations. * in type column means array effects from multiple interacting devices are modeled.} +See \Cref{fig:model-taxonomy} for abbreviations. +An asterisk * in type column means array effects from multiple interacting devices are modeled.} \label{tab:lit} %\fillandplacepagenumber \end{longtable} - -% Per-study paragraphs -\ifdefined\DISSERTATION - \paragraph{Notable large-scale optimization studies} - More specifically, a few studies \cite{gaudin_single_2021,khanal_multi-objective_2024,edwards_optimisation_2022,garcia-teruel_reliability-based_2021} perform WEC optimization with several disciplines. - These studies are notable for their large scales of 120 degrees of freedom and 14, 15, and 66 design variables respectively. - Reference \cite{gaudin_single_2021} optimizes an array of 20 submerged cylinders, holding the WEC design constant but optimizing site selection, array layout, and mooring design while considering cable and pile cost as well as pile load capacity. - Reference \cite{khanal_multi-objective_2024} optimizes an array of four cylindrical point absorbers, with 4 modeled disciplines of array layout, hydrodynamics, controls, and economics. - Reference \cite{edwards_optimisation_2022} is a point absorber shape optimization study that minimizes surface area as a cost proxy, accounts for stability constraints, and considers only geometries with power extraction equal to theoretical radiation, amplitude, and steepness limits. - Reference \cite{garcia-teruel_reliability-based_2021}, along with the smaller scale study \cite{garcia-teruel_design_2022} by the same authors, apply multi-objective optimization to trade off power with fatigue load and device volume, respectively. - Reference \cite{cotten_multi-objective_2022} similarly optimizes fatigue load for an attenuator-style WEC with many more degrees of freedom but fewer (8) design variables. - A different shape optimization \cite{abdulkadir_control_2024} notably calculates hydrodynamic coefficients via the semi-analytical matched eigenfunction expansion method (MEEM), rather than from boundary element method as is typical, but does not include disciplines beyond hydrodynamics and dynamics/controls. - A team at NREL attempted local optimization for a terminator shape study but found they could only reasonably optimize 3 of the intended 13 design variables at a time due to the high computational cost of their time-domain simulation \cite{housner_numerical_2024}. - The previous studies \cite{garcia-teruel_reliability-based_2021,garcia-teruel_design_2022,cotten_multi-objective_2022} avoided this issue by simulating primarily in the frequency domain and using the time domain only to address PTO constraints. - - \paragraph{Structural modeling and optimization} - Structural optimization of WECs faces a similar challenge in the high compute time of finite element analysis (FEA). - References \cite{coe_survey_2018, ove_arup__partners_ltd_structural_2016,paduano_towards_2024,giannini_wave_2022} provide guidelines for WEC survivability modeling and design, including the prediction of both extreme loads and structural failure. - Fatigue modeling methods include spectral analysis, rainflow counting, damage equivalent loads, and Miner's law, augmented with standard stress concentration factors or FEA for local hotspots \cite{ove_arup__partners_ltd_structural_2016}. - Strength modeling methods consist primarily of various fidelities of FEA, although hand and spreadsheet calculations permit sizing to a specified stress early in the design process \cite{ove_arup__partners_ltd_structural_2016}. - FEA of WECs is most often performed with manual design iterations, as in the studies \cite{RM3,mi_multi-scale_2025}. - These two studies, while not optimization, are extremely multidisciplinary, encompassing mooring design and detailed economic evaluation in addition to the more common hydrodynamics, powertrain, controls, and structures. - Automating the design process reported there remains a long-term vision for WEC multidisciplinary design. - - Notably, one study \cite{an_optimal_2024} performs true optimization of WEC structural FEA using the commercial computer aided engineering software Altair Inspire. - The study examines four design variables, although it keeps the power calculations entirely separate from the structural optimization, neglecting the interdisciplinary coupling. - Another structural optimization does not consider power at all, but is able to perform a brute-force sweep of 3 design variables by using analytical equations for stress and other failure modes \cite{ambuhl_reliability-based_2014}. - The new Project SEA Stack modeling suite adds hydrodynamics to Project Chrono, a multiphysics software with the ability to perform finite element analysis using beam, shell, or solid elements, although it appears that so far the structural modeling capabilities have only been used for offshore wind turbines rather than WECs \cite{ogden_hydrochrono_2023}. - Finally, several studies consider structures indirectly by examining the load on the device rather than the stress, e.g.\ \cite{nguyen_theoretical_2024, ferri_balancing_2014}, or equivalently assuming that stress scales with load and does not depend on any other dimensional design variable, e.g.\ \cite{garcia-teruel_reliability-based_2021, cotten_multi-objective_2022}. - Like the earlier MEEM study, reference \cite{nguyen_theoretical_2024} uses the equivalent analytical hydrodynamics in elliptical coordinates for an oscillating surge WEC. - - \paragraph{Controls and powertrain co-design} - The study \cite{ferri_balancing_2014} is notable because in addition to structural loads, it compares various control schemes and simulates second-order drivetrain dynamics. - The control co-design (CCD) methodology \cite{garcia-sanz_control_2019} emphasizes the importance of considering drivetrain dynamics and generator efficiency due to their strong effect on electrical power generation \cite{coe_useful_2023}. - A number of recent studies \cite{rosati_control_2023,son_performance_2016,anderson_re-imagining_2024,devin_high-dimensional_2024,grasberger_control_2024} simultaneously optimize the PTO with the controller. - Reference \cite{rosati_control_2023} optimizes an OWC and is notable for its comparatively detailed cost modeling and its optimization of both economic and power variability metrics. - Reference \cite{mccabe_multidisciplinary_2022} also optimized power variation, although that study's use of regular waves makes the variation formulation less useful. - Meanwhile, one point absorber PTO optimization \cite{son_performance_2016} is additionally notable for its use of the MEEM method. - Reference \cite{gaebele_tpl_2025} is relevant because it optimizes the dimensional scale and PTO of the RM3 WEC directly using a control co-design approach. - It also efficiently incorporates many time-domain constraints (maximum force, speed, average power, RMS torque, and stroke) while maintaining frequency-domain hydrodynamics via the pseudo-spectral (PS) modeling method, which \cite{devin_high-dimensional_2024,grasberger_control_2024} also use. - - Other CCD papers optimize WEC dimensions without modeling the PTO. - Reference \cite{herber_dynamic_2014} performs a direct transcription co-optimization of cylinder draft and radius with control. - Reference \cite{lin_fast_2025} introduces a new CCD formulation for constrained control that is even faster than PS. - The method leverages the analytical Pontryagin Maximum Principle (PMP) and performs a case study to optimize a single geometric variable. - A different PMP formulation \cite{abdulkadir_optimal_2024} incorporates PTO-constrained array dynamics, although it has not yet been used for design optimization. -\else - Across these studies, the most directly relevant work falls into three groups. - First, several large-scale optimization studies \cite{gaudin_single_2021,khanal_multi-objective_2024,edwards_optimisation_2022,garcia-teruel_reliability-based_2021,garcia-teruel_design_2022,cotten_multi-objective_2022} address one to four disciplines but invariably exclude either structures or powertrain. - Second, structural optimization of WECs is hampered by the cost of FEA \cite{coe_survey_2018,ove_arup__partners_ltd_structural_2016,paduano_towards_2024,giannini_wave_2022}; the few WEC studies that perform structural optimization \cite{an_optimal_2024,ambuhl_reliability-based_2014} decouple it from power calculations. - Third, recent control co-design studies \cite{rosati_control_2023,son_performance_2016,gaebele_tpl_2025,devin_high-dimensional_2024,grasberger_control_2024,herber_dynamic_2014,lin_fast_2025,abdulkadir_optimal_2024} efficiently handle constraints via pseudo-spectral methods or analytical Pontryagin Maximum Principle, but none integrate structures or full economic costs. - The directly comparable RM3 study \cite{gaebele_tpl_2025} optimizes dimensional scale and PTO with control co-design but excludes structures. -\fi - -\paragraph{Software tools and gaps} -\ifdefined\DISSERTATION - Beyond models used in individual studies, it is also helpful to analyze the capabilities and gaps of available simulation tools. - The popular time-domain hydrodynamics tool WEC-Sim \cite{ruehl_wec-simwec-sim_2024} can become multidisciplinary through the use of integrations like NEMOH/Capytaine (hydrodynamic coefficients), PTO-Sim (electric and hydraulic components), WEC-Sim Applications (optimal control and other useful tools), and MoorDyn (mooring). - However, as \cite{housner_numerical_2024} reveals, it is too slow to use for large-scale optimization. - Meanwhile, the newer pseudospectral tool WecOptTool \cite{coe_initial_2020} is faster and suitable for control co-design, but its disciplines are currently limited to hydrodynamics (via Capytaine) and control, with the ability to easily add custom dynamics like PTO and mooring as needed, and it still can take considerable time for large optimizations. - - A 2023 marine energy software assessment \cite{ruehl_next-generation_2023} identified that industry-wide needs broadly include using state-of-the-art computation; overcoming limitations of existing software; ensuring appropriate language, architecture, and license of new software; accessing data; and ensuring usability and accuracy of free open source software. - Specifically, relevant gaps include tools for powertrain and controls modeling, co-design, and optimization; high-fidelity models with faster runtime and low/mid-fidelity models with higher accuracy; inter-operabilty of models across disciplines and fidelities; and data for verification and validation \cite{ruehl_next-generation_2023}. - This lack of a multidisciplinary WEC simulation platform that is sufficiently fast for optimization helps explain why no optimization study in \cref{tab:lit} simultaneously optimizes the device geometry, structures, and powertrain. -\else - The two leading open-source WEC simulation tools illustrate the gap. - WEC-Sim \cite{ruehl_wec-simwec-sim_2024} is a time-domain simulator extensible to multidisciplinary studies via integrations (NEMOH/Capytaine for hydrodynamics, PTO-Sim for powertrain, MoorDyn for mooring), but is too slow for large-scale optimization \cite{housner_numerical_2024}. - WecOptTool \cite{coe_initial_2020} is a faster pseudospectral tool suitable for control co-design but currently limited to hydrodynamics and control. - A 2023 marine energy software assessment \cite{ruehl_next-generation_2023} explicitly identifies the absence of a fast multidisciplinary optimization platform as an industry-wide gap, which explains why no study in \cref{tab:lit} simultaneously optimizes geometry, structures, and powertrain. - - Existing studies therefore tend to sacrifice either disciplinary breadth or computational tractability: high-fidelity multidisciplinary models are generally too expensive for large-scale optimization, while optimization-oriented models often omit structures, powertrain dynamics, or economic assessment. - This tradeoff motivates the development of a computationally efficient framework capable of concurrently capturing the major techno-economic couplings governing WEC performance. -\fi +} \subsection{Relevance of Semi-Analytical Modeling} An optimization study can use any kind of simulation model to assess the design's performance, including simple algebraic models, theory-intensive semi-analytical models, and standard numerical models. @@ -264,8 +265,8 @@ \subsection{Relevance of Semi-Analytical Modeling} \centering \caption{Comparison of model types} \label{tab:model-types} -\begin{tabular}{c>{\centering\arraybackslash}p{0.25\linewidth}c>{\centering\arraybackslash}p{0.2\linewidth}} - \textbf{Model type}& \textbf{Expertise required}& \textbf{Accuracy}& \textbf{Computational cost}\\ \hline +\begin{tabular}{cM{0.14\linewidth}cM{0.13\linewidth}} + \textbf{Model type}& \textbf{Expertise required}& \textbf{Accuracy}& \textbf{Computation cost}\\ \hline \textbf{Algebraic}& Low& Low& Low\\ \textbf{Semi-analytical}& High& Med& Low\\ \textbf{Numerical}& Med& Med/High& High\\ @@ -284,46 +285,46 @@ \subsection{Relevance of Semi-Analytical Modeling} This is especially true if the models are closed-source, preventing others besides the model authors from using them. In the context of WECs, low practical realism usually means studies are limited to mechanical power production, without considering cost and realistic constraints, or perhaps using volume or surface area as a cost proxy. The design studies with high practical realism tend to use numerical models instead. - As the literature review in \cref{tab:lit} revealed, the high computational cost of the numerical models means that often a study is either multidisciplinary without optimization \cite{RM3,mi_multi-scale_2025}, or performs optimization for a single discipline, such as controls, powertrain, or structures, not all at once. + As the literature review in \Cref{tab:lit} revealed, the high computational cost of the numerical models means that often a study is either multidisciplinary without optimization \citep{RM3,mi_multi-scale_2025}, or performs optimization for a single discipline, such as controls, powertrain, or structures, not all at once. Of the few studies that perform multidisciplinary optimization, those that use numerical models take many hours to run, especially when using heuristic optimizers, preventing designers from iterating quickly. - For example, the BEM-based 4-WEC array optimization in the study \cite{khanal_multi-objective_2024} took 36 hours to run on a high-end workstation for only a single frequency. + For example, the BEM-based 4-WEC array optimization in the study \citep{khanal_multi-objective_2024} took 36 hours to run on a high-end workstation for only a single frequency. This type of model is too slow for use in realistic large-scale optimizations. - On the other extreme, reference \cite{mccabe_multidisciplinary_2022} uses an algebraic hydrodynamic model that runs quickly but lacks sufficient accuracy to draw meaningful design conclusions. + On the other extreme, \citet{mccabe_multidisciplinary_2022} uses an algebraic hydrodynamic model that runs quickly but lacks sufficient accuracy to draw meaningful design conclusions. The present paper introduces a set of interoperable semi-analytical models that are designed to have the speed and robustness required for multidisciplinary optimization. \else - The directly comparable studies above either use slow numerical models that limit optimization scope (e.g.\ a BEM-based 4-WEC array optimization that took 36 hours per frequency on a high-end workstation \cite{khanal_multi-objective_2024}) or fast algebraic models that lack accuracy for meaningful design conclusions (e.g.\ \cite{mccabe_multidisciplinary_2022}). + The directly comparable studies above either use slow numerical models that limit optimization scope (e.g.\ a BEM-based 4-WEC array optimization that took 36 hours per frequency on a high-end workstation \citep{khanal_multi-objective_2024}) or fast algebraic models that lack accuracy for meaningful design conclusions (e.g.\ \citep{mccabe_multidisciplinary_2022}). Semi-analytical models offer a useful intermediate that has not yet been combined with multidisciplinary scope in an open-source WEC tool, which is the gap MDOcean addresses. \fi \subsection{Paper Contributions and Roadmap} \ifdefined\DISSERTATION To address the gaps just described, the authors of this paper create a fast, multidisciplinary, and open-source WEC simulation software. - The developed software, called MDOcean \cite{mccabe_mdocean_2024}, implements relevant semi-analytical models from various fields, integrates them in a scalable framework for WEC simulation and concurrent optimization, and validates them in a WEC system context. + The developed software, called MDOcean \citep{mccabe_mdocean_2024}, implements relevant semi-analytical models from various fields, integrates them in a scalable framework for WEC simulation and concurrent optimization, and validates them in a WEC system context. The modeling framework articulated here is scalable to more disciplines, and enables systematic WEC design optimization. \else - This paper presents MDOcean \cite{mccabe_mdocean_2024}, an open-source semi-analytical WEC simulation framework addressing the gap identified above. - The contributions are: - \begin{itemize} - \item integration of semi-analytical models from hydrodynamics, dynamics, control, structures, and economics in a single framework suitable for optimization; - \item a modified frequency-domain dynamics formulation that extends prior describing-function and constrained-control approaches with an analytical quadratically-constrained quadratic program (QCQP) for the constrained linear controller, with a geometric interpretation on the complex reflection-coefficient plane; - \item validation against WEC-Sim and the RM3 reference design across power, structural, and economic outputs; and - \item demonstration of computational performance (\resultsAOR[simRuntime] simulation runtime) enabling optimization studies that are otherwise infeasible. + This paper presents MDOcean \citep{mccabe_mdocean_2024}, an open-source semi-analytical WEC simulation framework addressing the gap identified above. + The work provides the following contributions: + \begin{itemize}[leftmargin=*] + \item \textbf{Integrates semi-analytical models} from hydrodynamics, dynamics, control, structures, and economics in a single framework suitable for optimization + \item Formulates an underactuated optimal control problem with coupled nonlinear multi-port dynamics, and introduces the \textbf{quasi-linearized pseudo-spectral (QLPS) method} to approximate time-domain constraints and nonlinearities + \item \textbf{Analytically solves} the QLPS optimal control problem as a univariate quadratically-constrained quadratic program (QCQP) with a geometric interpretation on the complex reflection coefficient plane + \item \textbf{Validates} against WEC-Sim and the RM3 reference design across power, structural, and economic outputs + \item Demonstrates \textbf{computational performance} (\resultsAOR[simRuntime] simulation runtime) enabling optimization studies that are otherwise infeasible + \item Illustrates the \textbf{mathematical structure and effect magnitude} of subsystem interactions and techno-economic scaling relationships, providing intuition to facilitate early-stage design tradeoffs \end{itemize} - Beyond enabling optimization, the framework is intended to support physical interpretation of subsystem interactions, limiting behaviors, and techno-economic scaling relationships relevant to early-stage WEC design. \fi - \ifdefined\DISSERTATION - In \cref{sec:model-structure}, the research objective and design scope are first used to define a broad problem formulation and module decomposition. - Next, \cref{sec:modules} describes the construction of the simulation model. + In \Cref{sec:model-structure}, the research objective and design scope are first used to define a broad problem formulation and module decomposition. + Next, \Cref{sec:modules} describes the construction of the simulation model. It develops the assumptions, analysis method, and implementation details of each module based on the appropriate balance of accuracy and speed. \Cref{sec:validation-benchmarking} discusses model validation and runtime benchmarking. - Finally, \cref{sec:discussion} showcases results from model sweeps and insights from the model structure. + Finally, \Cref{sec:discussion} showcases results from model sweeps and insights from the model structure. \else \Cref{sec:model-structure} introduces MDOcean's modular structure and the rationale behind its analysis architecture. - \Cref{sec:modules} develops each module --- geometry, hydrodynamics, dynamics and control, structures, and economics --- documenting the assumptions, analysis methods, and implementation choices. + \Cref{sec:modules} documents the assumptions, analysis methods, and implementation choices of each module -- geometry, hydrodynamics, dynamics and control, structures, and economics. \Cref{sec:validation-benchmarking} compares MDOcean against WEC-Sim and the RM3 reference design, demonstrates the runtime gain over established tools, and discusses where the model is reliable. \Cref{sec:discussion} presents results from variable sweeps and model-derived insights, along with limitations and future work. Extended derivations, validation studies, and implementation details are provided in the appendices to preserve readability of the primary narrative while maintaining reproducibility. - The companion paper \cite{mccabe_leveraging_2026} applies MDOcean to a multidisciplinary techno-economic optimization of the RM3. + The companion paper \citep{mccabe_leveraging_2026} applies MDOcean to a multidisciplinary techno-economic optimization of the RM3. \fi \ No newline at end of file diff --git a/pubs/applied-ocean-research-model/sections/model-overview.tex b/pubs/applied-ocean-research-model/sections/model-overview.tex index 261376269..0f6895667 100644 --- a/pubs/applied-ocean-research-model/sections/model-overview.tex +++ b/pubs/applied-ocean-research-model/sections/model-overview.tex @@ -11,13 +11,20 @@ \section{Model Structure} Although this work does not perform optimization, the model is developed to support system-level design optimization. The module coupling structure is illustrated in the XDSM diagram in \Cref{fig:n2}. -Inputs and outputs are organized according to standard MDO conventions \cite{lambe_extensions_2012}, and an optimizer would update design variables $x$ using objective $J$ and constraints $g$ until convergence to $x^*$. +Inputs and outputs are organized according to standard MDO conventions \citep{lambe_extensions_2012}, and an optimizer would update design variables $x$ using objective $J$ and constraints $g$ until convergence to $x^*$. -\begin{figure}[htbp] + +\begin{figure*}[htbp] \centering \includegraphics[width=\linewidth]{figs/from-matlab/xdsm.pdf} \caption{Simplified XDSM diagram}\label{fig:n2} -\end{figure} +\end{figure*} +\begin{figure*}[b!] +\centering +\includegraphics[width=1\linewidth]{figs/from-matlab/control_analysis_flowcharts.pdf} +\caption{Optimization architectures organized by analysis method (MDF and SAND) and control method (explicit, implicit, simultaneous, and nested).} +\label{fig:control-arch} +\end{figure*} \ifdefined\DISSERTATION \paragraph{Absence of Feedback Coupling} @@ -30,7 +37,7 @@ \section{Model Structure} Moreover, the presence of variables in the upper right of the diagram indicates feed-forward coupling in which the output of one module directly affects subsequent modules. Analysis of coupling is important because under certain conditions, the optimization can be decomposed into separate problems to be solved in sequence or in parallel without sacrificing performance. - For example, techniques like block coordinate descent or alternating direction method of multipliers apply if coupling is convex \cite{wright_coordinate_2015}, and monotonicity-based decomposition and constraint elimination apply if coupling is monotonic \cite{azarm_monotonicity-based_1988,papalambros_principles_2017}. + For example, techniques like block coordinate descent or alternating direction method of multipliers apply if coupling is convex \citep{wright_coordinate_2015}, and monotonicity-based decomposition and constraint elimination apply if coupling is monotonic \citep{azarm_monotonicity-based_1988,papalambros_principles_2017}. The present coupling of WEC disciplines is non-convex and non-monotonic, so concurrent optimization is required to obtain the system optimal design. Non-monotonicity means that perturbing a variable from one module in a certain direction does not necessarily determine the direction of the propagated change in coupling variables, objective, and constraints computed in other modules. Non-convexity arises from the presence of both positive and negative curvature in the coupled variable space, leading to multiple local optima. @@ -45,22 +52,22 @@ \section{Model Structure} The dynamics module requires iteration to incorporate nonlinearities into the quasi-linear frequency domain model, shown in the XDSM diagram as the orange box. The dynamics iteration occurs separately for each outer iteration of the optimizer. This structure is known as the multiple discipline feasible (MDF) architecture. - In principle, it is possible to remove the dynamics iteration and instead incorporate the nonlinear dynamics as a residual equality constraint within the optimization, which is known as the simultaneous analysis and design (SAND) architecture \cite{martins_multidisciplinary_2013}. + In principle, it is possible to remove the dynamics iteration and instead incorporate the nonlinear dynamics as a residual equality constraint within the optimization, which is known as the simultaneous analysis and design (SAND) architecture \citep{martins_multidisciplinary_2013}. SAND generally decreases the runtime of the simulation (analysis) but requires more optimization iterations, since it is the optimization rather than the simulation that must converge residuals. - The WecOptTool control co-optimization software pursues the SAND strategy by collocating the dynamics constraints with the pseudo-spectral method \cite{coe_initial_2020}. + The WecOptTool control co-optimization software pursues the SAND strategy by collocating the dynamics constraints with the pseudo-spectral method \citep{coe_initial_2020}. - Readers familiar with trajectory optimization should note that the choice of MDF versus SAND as an MDO architecture parallels that of shooting versus collocation as a transcription method, in the sense that one chooses to enforce governing equations with simulation (MDF and shooting) versus optimization (SAND and collocation) \cite{tedrake_underactuated_2024}. + Readers familiar with trajectory optimization should note that the choice of MDF versus SAND as an MDO architecture parallels that of shooting versus collocation as a transcription method, in the sense that one chooses to enforce governing equations with simulation (MDF and shooting) versus optimization (SAND and collocation) \citep{tedrake_underactuated_2024}. In MDO, the appropriate decision depends on characteristics of all modules, not merely the module whose governing equations are in question. - As \cref{sec:sim-runtime} will demonstrate, the hydrodynamics module, not dynamics and controls, is the dominant computational cost of the simulation. + As \Cref{sec:sim-runtime} will demonstrate, the hydrodynamics module, not dynamics and controls, is the dominant computational cost of the simulation. This means that even a substantial dynamics speedup represents only a small speedup of the full simulation and is unlikely to outweigh the slowdown of more (hydrodynamics-dominated) simulation evaluations. For this reason, SAND would likely increase the runtime of the full optimization, motivating MDOcean's selection of MDF as the more suitable architecture. - Another advantage of MDF over SAND is that the latter invites the possibility of inconsistent dynamics if the optimization terminates unsuccessfully \cite{martins_multidisciplinary_2013} and requires optimizing a dummy constant objective to perform simulation without optimization. + Another advantage of MDF over SAND is that the latter invites the possibility of inconsistent dynamics if the optimization terminates unsuccessfully \citep{martins_multidisciplinary_2013} and requires optimizing a dummy constant objective to perform simulation without optimization. \paragraph{Control Optimization Architecture} - In control co-design, the nested and simultaneous architectures are often contrasted \cite{sundarrajan_towards_2021,herber_nested_2018}. - The nested architecture, known as ``asymmetric subspace optimization'' in MDO literature \cite{chittick_asymmetric_2009}, optimizes control variables in an inner loop for each iteration of the outer design optimization. + In control co-design, the nested and simultaneous architectures are often contrasted \citep{sundarrajan_towards_2021,herber_nested_2018}. + The nested architecture, known as ``asymmetric subspace optimization'' in MDO literature \citep{chittick_asymmetric_2009}, optimizes control variables in an inner loop for each iteration of the outer design optimization. This takes advantage of the fact that the inner optimization is often convex and can be solved quickly. - On the other hand, the simultaneous architecture uses a single optimizer to optimize design and control variables concurrently, creating a larger (typically non-convex) optimization problem and avoiding the difficulty of inner loop infeasibility that may arise in the nested approach \cite{herber_nested_2018}. + On the other hand, the simultaneous architecture uses a single optimizer to optimize design and control variables concurrently, creating a larger (typically non-convex) optimization problem and avoiding the difficulty of inner loop infeasibility that may arise in the nested approach \citep{herber_nested_2018}. We presently distinguish two additional types of control co-design architectures in which the controller is not numerically optimized and instead obtained through an optimal control law. The optimal control law can be either explicitly derived and applied in the simulation (``explicit'' or analytical), or implicitly solved for by numerically zeroing the residual of an analytical optimal control condition (``implicit'' or semi-analytical). @@ -70,12 +77,13 @@ \section{Model Structure} While the implicit-SAND and simultaneous-SAND block diagrams look nearly identical, the former determines the control variables via residuals of pre-determined optimality conditions expressed as constraints to the optimizer, while the latter determines them to maximize the optimization objective without a-priori knowledge of the optimal control conditions. In WecOptTool, the pseudo-spectral optimizer determines the state and control variables for a fixed design without using previously-known optimality conditions. - Depending on whether a user adds additional design variables to the existing pseudo-spectral optimizer or in a separate loop outside, WecOptTool would be considered either simultaneous-SAND or nested-SAND respectively \cite{coe_initial_2020}. + Depending on whether a user adds additional design variables to the existing pseudo-spectral optimizer or in a separate loop outside, WecOptTool would be considered either simultaneous-SAND or nested-SAND respectively \citep{coe_initial_2020}. - For MDOcean, we choose the implicit-MDF architecture. - Like the explicit-MDF architecture, it minimizes computational cost by avoiding the need to include control variables in an optimization and lowering the number of dynamic constraints which the optimizer must consider. + For MDOcean, we choose the explicit-MDF architecture. + Like the implicit-MDF architecture, it minimizes computational cost by avoiding the need to include control variables in an optimization and lowering the number of dynamic constraints which the optimizer must consider. This is possible due to the semi-analytical dynamics and control module, where the optimal constrained control conditions are derived analytically. - Implicit-MDF is chosen over explicit-MDF because the available optimal control condition is implicit, as \cref{sec:mod-freq-domain} will detail. + Explicit-MDF is chosen over implicit-MDF because it avoids the latter's numerical root-finding and is thus faster, as \Cref{sec:mod-freq-domain} will detail. + An early version of MDOcean used the implicit-MDF architecture, which is described in \Cref{sec:appendix-qp-numerical} for completeness. \else The model exhibits strong design-variable coupling but no direct feedback coupling between modules, eliminating the need for a system-level consistency iteration. This improves computational efficiency and is advantageous for optimization. @@ -89,30 +97,25 @@ \section{Model Structure} The dynamics module requires an internal fixed-point iteration to resolve nonlinearities in the quasi-linear frequency-domain formulation. This leads to a multiple-discipline feasible (MDF) architecture, where dynamics convergence is handled within each simulation call. - An alternative simultaneous analysis and design (SAND) formulation \cite{martins_multidisciplinary_2013} would enforce dynamic residuals directly within the optimization, potentially reducing simulation cost but increasing optimization complexity. + An alternative simultaneous analysis and design (SAND) formulation \citep{martins_multidisciplinary_2013} would enforce dynamic residuals directly within the optimization, potentially reducing simulation cost but increasing optimization complexity. However, since hydrodynamics dominates computational cost in this framework (\Cref{sec:sim-runtime}), the benefit of removing dynamics iteration is limited. For this reason, MDF is adopted. \paragraph{Control Co-Design Architecture} - Control co-design problems are commonly classified into nested and simultaneous formulations \cite{sundarrajan_towards_2021,herber_nested_2018}. + Control co-design problems are commonly classified into nested and simultaneous formulations \citep{sundarrajan_towards_2021,herber_nested_2018}. In the nested approach, control is optimized in an inner loop, while in the simultaneous approach control and design variables are optimized together. In addition, optimal control-based formulations may determine control either explicitly or implicitly via optimality conditions. These control formulations can be combined with both MDF and SAND analysis architectures. MDOcean uses an implicit-MDF architecture: the dynamics module iterates internally to converge the quasi-linear drag and saturation describing functions, while all other modules are explicit. The implicit formulation is preferred over explicit alternatives due to the structure of the derived optimal control conditions (\Cref{sec:mod-freq-domain}). - It also avoids introducing control variables into the outer optimization while preserving optimal control behavior, minimizing total runtime given that hydrodynamics dominates computational cost (\cref{sec:sim-runtime}). - Detailed architecture rationale, coupling analysis, and the relation to MDO literature are provided in [dissertation chapter]. + It also avoids introducing control variables into the outer optimization while preserving optimal control behavior, minimizing total runtime given that hydrodynamics dominates computational cost (\Cref{sec:sim-runtime}). + Detailed architecture rationale, coupling analysis, and the relation to MDO literature are provided in \cite{mccabe_dissertation_2026}. - \Cref{fig:control-arch} summarizes the relationship between analysis and control architectures, with the implicit-MDF formulation used in this study highlighted. + \Cref{fig:control-arch} summarizes the relationship between analysis and control architectures, with the explicit-MDF formulation used in this study highlighted. \fi -\begin{figure}[b!] -\centering -\includegraphics[width=1\linewidth]{figs/from-matlab/control_analysis_flowcharts.pdf} -\caption{Optimization architectures organized by analysis method (MDF and SAND) and control method (explicit, implicit, simultaneous, and nested).} -\label{fig:control-arch} -\end{figure} + diff --git a/pubs/applied-ocean-research-model/sections/module-details.tex b/pubs/applied-ocean-research-model/sections/module-details.tex index 733c2c2ca..0fcdad827 100644 --- a/pubs/applied-ocean-research-model/sections/module-details.tex +++ b/pubs/applied-ocean-research-model/sections/module-details.tex @@ -22,32 +22,32 @@ \subsection{Geometry}\label{sec:geom} The geometry module computes submerged volume $V_{\text{sub}}$, structural volume $V_{\text{struct}}$, and associated hydrostatic properties from bulk dimensions. \Cref{fig:dims} defines the principal geometric variables, where $T$ denotes drafts, $h$ heights, and $D$ diameters. Subscripts $f$, $s$, and $d$ refer to the float, spar, and damping plate, respectively. -Key points include the center of buoyancy $B$, center of gravity $G$, and metacenter $M$ for the combined system. +Key points include the center of buoyancy $B$, center of gravity $G$, the keel $K$, and metacenter $M$ for the combined system. Additional structural dimensions and thickness definitions are provided in \Cref{sec:structures}. \begin{figure}[htbp] \centering - \includegraphics[width=0.5\linewidth]{figs/from-matlab/dimensions.pdf} + \includegraphics[width=\linewidth]{figs/from-matlab/dimensions.pdf} \caption{Dimension labeling of system}\label{fig:dims} \end{figure} -Static stability is enforced by requiring $GM>0$, where +Static pitch stability is enforced by requiring: \begin{equation}\label{eq:GM} - GM = KB + BM - KG, + \overline{GM} = \overline{KB} + \overline{BM} - \overline{KG} > 0, \end{equation} -\noindent where $BM = \pi D_f^4/(64V_{\text{sub}})$ \cite{newman}. +\noindent where $\overline{BM} = \pi D_f^4/(64V_{\text{sub}})$ \citep{newman}. -Hydrostatic equilibrium is enforced by matching displaced water mass to total system mass and any mismatch is compensated using ballast. +Hydrostatic equilibrium is enforced by matching displaced water mass to total system mass, with any mismatch compensated using ballast with mass $m_{bal}$: \begin{equation} m_{bal} = \rho_w V_{sub} - \rho_M V_{struct}, \end{equation} where $\rho_w$ and $\rho_M$ are water and structural material densities. To ensure feasible buoyancy, $m_{bal}$ must be non-negative and physically storable within the hull. -Assuming seawater ballast, this imposes a volume feasibility constraint: +Assuming seawater ballast, this imposes a volume constraint: \begin{equation}\label{eq:vol-constraint} V_{struct} \le V_{sub} + V_{surf} - V_{pto}, \end{equation} -where $V_{\text{surf}}$ is the above-water structural volume and $V_{pto}$ is the (fixed) PTO volume. +where $V_{\text{surf}}$ (design-dependent) and $V_{pto}$ (fixed) are volumes of the above-water structures and PTO respectively. %TC:break Hydrodynamic Coefficients %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -59,105 +59,117 @@ \subsection{Hydrodynamic Coefficients}\label{sec:hydro} where, under monochromatic forcing, \begin{equation}\label{eq:hydro-forces-expanded} \begin{aligned} - \vec{\hat{F}}_{e} &= \vec{\gamma}\,\hat{\zeta}, - & \vec{\hat{F}}_{rad} &= -\mathbf{A}_h\vec{\hat{\ddot{\xi}}} - \mathbf{B}_h\vec{\hat{\dot{\xi}}}, \\ + \vec{\hat{F}}_{e} &= \vec{\gamma}\,\hat{\zeta},&~~ + \vec{\hat{F}}_{rad} &= -\mathbf{A}_h\vec{\hat{\ddot{\xi}}} - \mathbf{B}_h\vec{\hat{\dot{\xi}}},&~~ \vec{\hat{F}}_{res} &= -\mathbf{K}_h\vec{\hat{\xi}}. \end{aligned} \end{equation} -Here $\vec{\hat{\xi}}$ is the body displacement phasor vector, and the hydrodynamic coefficients $\vec{\gamma}$, $\mathbf{A}_h$, $\mathbf{B}_h$, and $\mathbf{K}_h$ are the wave excitation vector, added mass matrix, radiation damping matrix, and restoring stiffness matrix, respectively. -The origin is taken as the center of the float at the still waterline. +Here $\vec{\hat{\xi}}$ is the body displacement phasor vector from the origin at the center of the float at the still waterline. +The hydrodynamic coefficients $\vec{\gamma}$, $\mathbf{A}_h$, $\mathbf{B}_h$, and $\mathbf{K}_h$ are the wave excitation vector, added mass matrix, radiation damping matrix, and hydrostatic stiffness matrix, respectively. -For a two-body heaving point absorber under operational conditions ($op$), the hydrodynamic matrices are $2\times 2$, representing the float ($f$), spar ($s$), and their coupling ($c$): -\begin{equation}\label{eq:op-hydro-coeffs} +The displacement vector $\vec{\hat{\xi}}$ contains a state for each degree of freedom. +We define separate displacement and excitation vectors for the operational ($op$) and storm ($st$) cases. +A two-body heaving point absorber that rigidly locks the bodies in a storm following \cite{RM3} has vectors: +\begin{equation}\label{eq:define-vectors} \vec{\hat{\xi}}_{op} = \begin{bmatrix} \hat{\xi}_f \\ \hat{\xi}_s - \end{bmatrix},~ - \vec{\gamma}_{op} = \begin{bmatrix} + \end{bmatrix}, ~~ + \vec{\hat{\xi}}_{st}=\begin{bmatrix}\hat{\xi}_m + \end{bmatrix}, ~~ + \vec{\gamma}_{op} = \begin{bmatrix} \gamma_f \\ \gamma_s - \end{bmatrix},~ - \mathbf{A_{h,op}} = \begin{bmatrix} + \end{bmatrix},~~ + \vec{\gamma}_{st} = \begin{bmatrix} + \gamma_m + \end{bmatrix}. +\end{equation} +with subscripts for the float ($f$), spar ($s$), their coupling ($c$), and the merged float-spar ($m$). +Operational hydrodynamic matrices are symmetric $2\times 2$: +\begin{equation}\label{eq:op-hydro-coeffs} +\begin{aligned} + \mathbf{A}_{h,op} = \begin{bmatrix} A_f & A_c \\ A_c & A_s \end{bmatrix},~ - \mathbf{B_{h,op}} = \begin{bmatrix} + \mathbf{B}_{h,op} &= \begin{bmatrix} B_f & B_c \\ B_c & B_s - \end{bmatrix},~ - \mathbf{K_{h,op}} = \begin{bmatrix} + \end{bmatrix},\\ + \mathbf{K}_{h,op} &= \begin{bmatrix} K_f & 0\\ 0 & K_s \end{bmatrix} +\end{aligned} \end{equation} - -In storm conditions ($st$), the float and spar are assumed rigidly connected following \cite{RM3}, yielding a single-body representation ($m$): +while storm (merged-body) coefficients are scalar: \begin{equation}\label{eq:st-hydro-coeffs} -\vec{\hat{\xi}}_{st}, \vec{\gamma}_{st}, \mathbf{A}_{h,st}, \mathbf{B}_{h,st}, \mathbf{K}_{h,st}. +\begin{aligned} +\vec{\gamma}_{st}&=\gamma_{m}=\Sigma~\vec{\gamma}_{op},& +~\mathbf{A}_{h,st}&=A_m=\Sigma~\mathbf{A}_{h,op}, \\ +~\mathbf{B}_{h,st}&=B_m=\Sigma~\mathbf{B}_{h,op},& +~\mathbf{K}_{h,st}&=K_m=\Sigma~\mathbf{K}_{h,op}. +\end{aligned} \end{equation} - -The merged-body coefficients are obtained by summing the individual and coupling contributions, e.g., $A_m = A_f + A_s + 2A_c$, with analogous expressions for $B_m$, while hydrostatic stiffness is additive. +with $\Sigma$ denoting the sum of all elements in the matrix or vector (``grand sum''). The remaining task is to compute the float, spar, and coupling coefficients, with operational and storm implications discussed in \Cref{sec:design-load-cases}. -The hydrostatic stiffness terms ($K_f$, $K_s$) are frequency-independent and are computed directly from geometry (see \cref{sec:appendix-meem-details}), while the remaining coefficients require solving the frequency-domain radiation boundary value problem for the velocity potential. +The hydrostatic stiffness terms ($K_f$, $K_s$) are frequency-independent and are computed directly from geometry (see \Cref{eq:gamma-K} in \Cref{sec:appendix-meem-details}), while the remaining coefficients require solving the frequency-domain radiation boundary value problem for the velocity potential. Traditionally, this is performed using a BEM solver, which discretizes the body surfaces and solves a large linear system. In MDOcean, float coefficients are instead computed using the semi-analytical Matched Eigenfunction Expansion Method (MEEM), exploiting cylindrical symmetry for improved efficiency. Spar and coupling terms are obtained via algebraic approximations and interpolation of pre-computed BEM data, and could be extended to MEEM in future work. +\Cref{tab:hydro-methods} summarizes the methods used for each coefficient. %%%%%%%%%%%%%%% \subsubsection{Float Coefficients: Matched Eigenfunction Expansion Method}\label{sec:hydro-meem} MEEM solves the radiation and excitation problems by expanding the velocity potential in eigenfunctions within each fluid region and enforcing matching across region boundaries. -The MEEM radiation solution for two concentric heaving cylinders was first presented in the studies \cite{mavrakos_hydrodynamic_2004} and detailed in reference \cite{chau_inertia_2012}. +The MEEM radiation solution for two concentric heaving cylinders was first presented by \citet{mavrakos_hydrodynamic_2004} and detailed by \citet{chau_inertia_2012}. In this approach, the fluid domain is partitioned into regions with separable analytical solutions, and continuity conditions are enforced at region interfaces to determine the unknown expansion coefficients. -The open-source implementation used here, summarized in \cref{sec:appendix-meem-details}, follows the formulation derived in the study \cite{mccabe_open-source_2024}, with numerical properties detailed in the forthcoming companion paper \cite{bimali_matrix_2026,best_openflash_2026}. +The open-source implementation used here, summarized in \Cref{sec:appendix-meem-details}, follows the formulation by \citet{mccabe_open-source_2024}. +Forthcoming companion papers \citet{bimali_matrix_2026,best_openflash_2026} detail the numerical properties and code implementation respectively of an expanded implementation. The primary advantage of MEEM is computational efficiency. Timing comparisons (\Cref{sec:sim-runtime}) show more than an order-of-magnitude speedup over Capytaine BEM at comparable convergence, significantly reducing the cost of multidisciplinary analysis. Additional benefits include lower memory usage, elimination of meshing, and avoidance of numerical Green’s function approximation. -Limitations include geometric restrictions and numerical overflow (discussed in \cref{sec:appendix-meem-details}). +Limitations include geometric restrictions and numerical overflow (discussed in \Cref{sec:appendix-meem-details}). As a semi-analytical method, MEEM is restricted to simplified geometries; the formulation used here assumes a dual concentric cylinder (\Cref{fig:meem-geom}). Consequently, float coefficients neglect the damping plate and approximate the float bottom as flat rather than slanted. The damping plate enters through the spar coefficients (next subsection). -These approximations have minor impact but could be relaxed in future extensions using more general MEEM formulations \cite{olaya_hydrodynamic_2015,kokkinowrachos_behaviour_1986}. +These approximations have minor impact and could be relaxed in future extensions using more general MEEM formulations \citep{olaya_hydrodynamic_2015,kokkinowrachos_behaviour_1986,bimali_matrix_2026}. \begin{figure}[b!] \centering - \includegraphics[width=0.75\linewidth]{figs/from-matlab/MEEM_geometry.pdf} + \includegraphics[width=\linewidth]{figs/from-matlab/MEEM_geometry.pdf} \caption{MEEM geometry. Dashed lines represent geometry that is neglected in the MEEM calculations} \label{fig:meem-geom} \end{figure} %%%%%%%%%%%%%%% -\subsubsection{Other Coefficients: Approximations}\label{sec:hydro-other} +\subsubsection{Other coefficients: approximations}\label{sec:hydro-other} Because the damping plate affects the spar coefficients more strongly than the float, the former are obtained by scaling existing solutions that include the damping plate rather than using MEEM. -\Cref{tab:hydro-methods} summarizes the methods used for each coefficient. \begin{table}[htbp] \centering - \caption{Method of computing different hydrodynamic coefficients in MDOcean} + \caption{Method of computing hydrodynamic coefficients in MDOcean} \label{tab:hydro-methods} -\begin{tabular}{cc} + \begin{tabular} + {M{0.25\linewidth}M{0.63\linewidth}} Coefficient& Method\\ \hline - $A_f$, $B_f$, $\gamma_f$ & MEEM\\ - $A_s$& Approximate $\omega\rightarrow\infty$ solution (\eqref{eq:As})\\ - $A_c$, $B_s$, $B_c$, $\gamma_s$& Nominal BEM solution, scaled with $D_d$ and $T_s$\\ + $A_f$, $B_f$, $\gamma_f$ & MEEM (\Cref{eq:hydro,eq:gamma-K} in \Cref{sec:appendix-meem-details})\\ + $A_s$& Approximate $\omega\rightarrow\infty$ solution (\Cref{eq:As} in \Cref{sec:appendix-additional-hydro})\\ + $A_c$, $B_s$, $B_c$, $\gamma_s$& Nominal BEM solution, scaled with $D_d$ and $T_s$ (\Cref{eq:scale-wamit} in \Cref{sec:appendix-additional-hydro})\\ \end{tabular} - \end{table} - +\end{table} %\hl{Describe how I did the WAMIT damping plate scaling for the spar excitation.} - %The MEEM implementation currently cannot take the damping plate into account, and the plate is expected to have a large impact on the spar added mass and damping. Therefore, algebraic approximations of the damping plate coefficients are used instead of the MEEM solution. -The spar added mass coefficient $A_s$ is approximated as a frequency-independent quantity based on the displaced water volume in the spherical projection of the damping plate \cite{philip_damping_2012}: -\begin{equation}\label{eq:As} - A_s =\frac{1}{3}\rho_w D_d^3\left(1 - \frac{3}{4}r^2\sqrt{1-r^2} - \frac{1}{4}(1-\sqrt{1-r^2})^2(2+\sqrt{1-r^2})\right), -\end{equation} -where $r = D_s/D_d$. -This expression smoothly transitions from a pure plate limit ($\frac{1}{3}\rho_w D_d^3$ at $r=0$) to a pure column limit ($\frac{1}{6}\rho_w D_d^3$ at $r=1$). +The spar added mass coefficient $A_s$ is approximated as a frequency-independent quantity based on the displaced water volume in the spherical projection of the damping plate, with the formula given in \Cref{sec:appendix-additional-hydro}. -The spar damping ($B_s$), excitation ($\gamma_s$), and coupling terms ($A_c$, $B_c$) are obtained by interpolating a pre-computed WAMIT BEM solution over the nondimensional parameter $kD_d$ (see \cref{sec:appendix-additional-hydro}). -The excitation term is additionally scaled as $e^{-k(T_s - T_{s,nom})}$ to account for depth-dependent attenuation. +The spar damping ($B_s$), excitation ($\gamma_s$), and coupling terms ($A_c$, $B_c$) are obtained by interpolating a pre-computed WAMIT BEM solution over the nondimensional parameter $kD_d$ (see \Cref{sec:appendix-additional-hydro}). +The excitation term is additionally scaled as $\exp(-k(T_s - T_{s,nom}))$ to account for depth-dependent attenuation. %\hl{I suspect this imposes a constraint on $D_d$ needing to be similar to the nominal design, see notebook 3/20/26 referencing analysis from 4/4/25.} -Because float and spar coefficients are computed using different approximations, positive definiteness of the hydrodynamic matrices is not guaranteed (see \cref{sec:appendix-additional-hydro}). -To ensure physical consistency, the added mass and damping matrices are required to remain positive definite, and any violations are corrected by reducing the coupling terms $A_c$ and $B_c$. +Because float and spar coefficients are computed using different approximations, positive definiteness of the hydrodynamic matrices is not guaranteed (see \Cref{sec:appendix-additional-hydro}). +To ensure physicality, the added mass and damping matrices are required to remain positive definite. +Any violations are corrected by adjusting the coupling terms $A_c$ and $B_c$. % \subsubsection{Spar Dynamics} % The RM3 is a two-body system where the relative motion of the float and spar produces power. However, capturing these underactuated multibody dynamics would require more complicated modeling and control \cite{faedo_principle_2022}, especially in the context of force saturation%, as well as implementation of the excitation force phase in MEEM. @@ -198,42 +210,45 @@ \subsection{Dynamics and Control}\label{sec:dynamics} This subsection introduces the dynamics and control modeling assumptions before detailing the frequency-domain methods and control formulations. %%%%%%%%%%%%%%% -\subsubsection{Modified Frequency Domain Techniques} +\subsubsection{Modified frequency-domain methods} \label{sec:mod-freq-domain} \ifdefined\DISSERTATION - Methods for WEC dynamics and control simulation in an optimization context were reviewed in \cref{sec:lit} and include time-stepping (nonlinear, numerical, high computation cost), frequency domain (linear, analytical, low computation cost), pseudo-spectral (nonlinear, numerical, medium computation cost), modified frequency domain techniques (approximate nonlinear, semi-analytical, low computational cost), and Pontryagin's maximum principle (nonlinear, analytical, low computational cost). + Methods for WEC dynamics and control simulation in an optimization context were reviewed in \Cref{sec:lit} and include time-stepping (nonlinear, numerical, high computation cost), frequency domain (linear, analytical, low computation cost), pseudo-spectral (nonlinear, numerical, medium computation cost), quasi-linearized pseudo-spectral techniques (approximate nonlinear, semi-analytical, low computational cost), and Pontryagin's maximum principle (nonlinear, analytical, low computational cost). In wave energy, both spectral-domain numerical methods and analytical methods have generated recent research interest, with studies \cite{bacelli_numerical_2015,coe_initial_2020,tan_computationally_2026,nie_optimal_2016,da_silva_stochastic_2023} and studies \cite{abdulkadir_optimal_2024,lin_fast_2025} serving as illustrative examples of each case. - This section describes both the technical concept and the practical rationale for the choice of a modified frequency domain method, and contextualizes it with respect to other constrained optimal control methods in more detail than was possible in the literature review. + This section describes both the technical concept and the practical rationale for the choice of a quasi-linearized pseudo-spectral method, and contextualizes it with respect to other constrained optimal control methods in more detail than was possible in the literature review. MDOcean requires the ability to incorporate nonlinearities, at least approximately. Inherent nonlinearities such as drag significantly affect the amplitude and power production at resonance. Even with linearized intrinsic dynamics, maintaining optimality subject to dynamic constraints also requires a nonlinear controller. Dynamic constraints on amplitude, force, and peak power significantly influence the trade-off of power and cost, and amplitude limits are required to obtain a physically meaningful result. Besides nonlinearities, MDOcean also requires a low computation cost, since the dynamics will be evaluated many thousands of times during optimization. - Of the methods mentioned, Pontryagin's maximum principle (PMP) and modified frequency domain techniques meet these requirements. + Of the methods mentioned, Pontryagin's maximum principle (PMP) and quasi-linearized pseudo-spectral techniques meet these requirements. PMP requires an analytically difficult derivation unique to the specific nonlinearities in question because wave energy dynamics have a particular form requiring so-called singular control \cite{zou_optimal_2017}. - On the other hand, modified frequency domain techniques are simple and intuitive. - Therefore, MDOcean pursues a quasi-linear semi-analytical modified frequency domain method. + On the other hand, quasi-linearized pseudo-spectral techniques are simple and intuitive. + Therefore, MDOcean pursues a semi-analytical quasi-linearized pseudo-spectral method. \else - Standard linear frequency-domain WEC analysis assumes monochromatic wave forcing and linear dynamics, enabling closed-form impedance-matched optimal control. + Standard linear frequency-domain WEC analysis assumes unconstrained linear dynamics, enabling closed-form impedance-matched optimal control. However, real WECs are subject to (i) dynamic constraints (e.g., generator force, power, and stroke limits) and (ii) nonlinear forces, particularly viscous drag. Time-domain simulation handles both naturally but is computationally expensive, especially in an optimization loop. - Pseudo-spectral methods handle constraints by collocating dynamic equations within an optimization, but require an outer numerical optimizer for control synthesis. + Pseudo-spectral methods are nonlinear and handle constraints by collocating the dynamics at specific time-steps, but require an outer numerical optimizer for both simulation and control synthesis. \fi -MDOcean adopts a modified frequency-domain approach that retains the speed of frequency-domain analysis while handling both constraints and drag nonlinearities. -This formulation seeks to preserve the computational advantages of classical frequency-domain analysis while extending its applicability to practical WEC operating regimes that include saturation, drag, and dynamic constraints. -Two techniques are combined: (a) describing functions, which quasi-linearize a nonlinear waveform by retaining only its fundamental harmonic, and (b) an analytical quadratically-constrained quadratic program (QCQP) for the constrained linear controller, exploiting the low dimensionality of the monochromatic problem. -The analytical structure of the monochromatic problem permits many constrained-control solutions to be obtained without iterative numerical optimization, substantially reducing computational cost in large parametric studies. -\Cref{fig:venn-diagram} positions these techniques relative to existing methods. +MDOcean adopts a quasi-linearized pseudo-spectral (QLPS) approach that retains the speed of frequency-domain analysis while handling both temporal constraints and drag nonlinearities. +This formulation seeks to preserve the computational advantages and simplicity of classical linear analysis while extending its applicability to practical WEC operating regimes that include saturation, drag, and dynamic constraints. +QLPS combines two techniques: (a) describing functions, which quasi-linearize a nonlinear waveform by retaining only its fundamental harmonic, +and (b) constrained spectral optimal control, which solves the optimal control problem as a quadratically-constrained quadratic program (QCQP) assuming linear dynamics and spectral-domain constraints. +\Cref{fig:venn-diagram} positions QLPS relative to existing methods. +Augmenting spectral optimal control with describing functions extends its scope to approximate time-domain constraints and nonlinear dynamics. +Furthermore, because QLPS assumptions under monochromatic forcing lead to a monochromatic problem, the QCQP becomes univariate for systems with a single control degree of freedom. +The optimal constrained linear controller can then be found analytically through a geometric interpretation that exploits the low dimensionality. +Its nonlinear counterpart can be reconstructed semi-analytically with inverse describing functions. +Avoiding iterative numerical optimization substantially reduces computational cost in large parametric studies and produces insight into the mathematical structure of dynamic tradeoffs to inform PTO sizing. \begin{figure}[htbp] \centering - \resizebox{0.5\linewidth}{!}{% - \input{figs/tikz/control_method_venn_diagram.tikz} - } - \caption{Venn diagram comparing different methods for control synthesis, with MDOcean's modified frequency domain approach at the intersection of frequency domain, nonlinear, and constrained optimal control. -See text for a description of each acronym.} + \includegraphics[width=.9\linewidth]{figs/from-matlab/control_method_venn_diagram.pdf} + \caption{Venn diagram comparing different methods for control synthesis, with MDOcean's quasi-linearized pseudo-spectral approach at the intersection of frequency domain, nonlinear, and constrained optimal control. + See text for acronym descriptions.} \label{fig:venn-diagram} \end{figure} @@ -248,101 +263,109 @@ \subsubsection{Modified Frequency Domain Techniques} These methods are not optimal control methods and do not incorporate constraints, although it is possible to sub-optimally enforce constraints by applying a saturation nonlinearity to the constrained quantity. Finally, methods which combine frequency domain synthesis with constrained optimal control include constrained loop shaping (often enforcing performance constraints while minimizing the distance to an optimal loop shape, in this case the complex-conjugate impedance); linear spectral optimal control (OC), which poses a trajectory optimization problem for a linear system represented with global basis functions in the spectral domain; constrained impedance matching (IM), the narrow-band, frequency-domain equivalent of spectral optimal control; and convex control formulated using linear matrix inequalities (LMIs), typically in the context of robust control \cite{vanantwerp_tutorial_2000}. - At the intersection of all three categories lies nonlinear spectral OC, pseudo-spectral OC, and the method used in MDOcean, which we call ``linearized pseudo-spectral OC.'' + At the intersection of all three categories lies nonlinear spectral OC, pseudo-spectral OC, and the method used in MDOcean, which we call ``quasi-linearized pseudo-spectral OC.'' The pseudospectral method uses the same global basis function representation as spectral OC, but instead of enforcing the dynamics at all points in the trajectory, it does so only at specific collocation points, which enables the representation of time-domain constraints and nonlinearities as opposed to harmonic constraints and nonlinearities \cite{elnagar_pseudospectral_1995}. Pseudo-spectral methods often employ Legendre or Chebyshev polynomial bases, although in wave energy Fourier bases are more typical. In this case, the method is equivalent to a nonlinear trajectory optimization problem that enforces both spectral-domain harmonic balance and time-domain constraints. - The linearized pseudo-spectral method used in MDOcean borrows the pseudo-spectral concept of incorporating time-domain constraints in the spectral domain, but retains only the fundamental harmonic to collapse to the frequency domain. + The quasi-linearized pseudo-spectral method used in MDOcean borrows the pseudo-spectral concept of incorporating time-domain constraints in the spectral domain, but retains only the fundamental harmonic to collapse to the frequency domain. This is exactly analogous to the way that describing functions linearize the harmonic balance method. It can also be thought of as the combination of describing functions with constrained impedance matching. \fi -\Cref{fig:mod-freq-domain-synthesis,fig:mod-freq-domain-evaluation} distinguish two use cases for the modified frequency domain method: control synthesis (the design of a potentially nonlinear controller to obey constraints and maximize performance of the linearized system) and evaluation (simulation of an arbitrary controller's power performance, where the controller, the plant, or both are nonlinear). +\Cref{fig:mod-freq-domain-synthesis,fig:mod-freq-domain-evaluation,fig:mod-freq-domain-combined} distinguish three application workflows for the QLPS method: control synthesis (the design of a potentially nonlinear controller to obey constraints and maximize performance of the quasi-linearized system), evaluation (simulation of an arbitrary controller's power performance, where the controller, plant, or both are nonlinear), and both. -MDOcean uses the linearized pseudo-spectral method for both control synthesis and evaluation. -In prior wave energy studies (see \Cref{tab:lit}), related linearized pseudo-spectral approaches have primarily been used for evaluation, often with simplified treatments of constraints. -In contrast, the present work applies the same framework to control synthesis, enabling nonlinear controller design within a frequency-domain formulation. +MDOcean uses QLPS for both control synthesis and evaluation. +In prior wave energy studies, related approaches have been used for evaluation, with simplified treatments of constraints (see F+ and PI+ entries in \Cref{tab:lit}). +We refer to these as the modified frequency-domain family of methods, of which QLPS is the most accurate and optimal. +In contrast, the present work applies QLPS and other modified frequency-domain methods to control synthesis, enabling nonlinear controller design within a frequency-domain formulation. This differs from linearization approaches such as stochastic linearization, which are generally limited to linear controller design. -\begin{figure}[htbp] +\begin{figure*}[htbp] \centering -\caption{Flowchart depicting the linearized pseudo-spectral method with describing function linearization (1)} -\begin{subfigure}[t]{1.1\linewidth} +\caption{Flowchart depicting the QLPS method (M1). The describing functions (DFs) for response/constraint, controller, and plant are shown in yellow, pink, and blue respectively.} +\begin{subfigure}[t]{.9\linewidth} \includegraphics[width=\linewidth]{figs/from-matlab/mod_freq_domain_ctrl_synthesis.pdf} - \caption{Control synthesis - applies to (1.1) only.} + \caption{Control synthesis - applies to (M1.2) only.} \label{fig:mod-freq-domain-synthesis} \end{subfigure} \vfill -\begin{subfigure}[t]{1.1\linewidth} +\begin{subfigure}[t]{.9\linewidth} \includegraphics[width=\linewidth]{figs/from-matlab/mod_freq_domain_ctrl_evaluation.pdf} - \caption{Control evaluation - applies to both (1.1) and (1.2).} + \caption{Control evaluation - applies to both (M1.1) and (M1.2).} \label{fig:mod-freq-domain-evaluation} \end{subfigure} -\end{figure} +\vfill +\begin{subfigure}[t]{.9\linewidth} + \includegraphics[width=\linewidth]{figs/from-matlab/mod_freq_domain_ctrl_combined.pdf} + \caption{Combined synthesis and evaluation.} + \label{fig:mod-freq-domain-combined} +\end{subfigure} +\end{figure*} -When handling dynamic constraints with a linearized pseudo-spectral method, first the system is linearized and the unconstrained optimal controller (and the response signals corresponding to that controller) are determined in the frequency domain. +When handling dynamic constraints with a modified frequency-domain method, first the system is (quasi-) linearized and the unconstrained optimal controller (and the response signals corresponding to that controller) are determined in the frequency domain. Then the unconstrained response is checked for constraint violations. This check can be performed in the frequency domain if the time-domain constraint can be adequately linearized (via describing functions) as a harmonic constraint, as shown in the top of \Cref{fig:mod-freq-domain-synthesis}, or the response can be reconstructed in the time domain via the inverse describing function if the constraint is not easily representable via harmonics. If the response for a given sea state does not violate any constraints, then the unconstrained controller and corresponding power is used for that sea state as the frequency-domain linear optimal controller. Otherwise, a variety of approaches are possible to address the violated constraint, summarized in \Cref{tab:constraint-approaches} and described below. -Methods M1 and M2 can be used for both control synthesis and evaluation, while methods M4--M5 can only be used for evaluation since they do not attempt to find a controller that satisfies the constraint. -Method M3 can in general only be used for evaluation, although in the special case where the only time-domain constraint is on the control force, the method can be used for control synthesis. +Methods M1--M2 can be used for both control synthesis and evaluation, while methods M4--M5 can only be used for evaluation since they do not attempt to find a controller that satisfies the constraint. +Method M3 can, in general, only be used for evaluation. +However, in the special case where the only time-domain constraint is on the control force, the method can be used for control synthesis. \begin{table}[htbp] \centering -\caption{Constraint Satisfaction Approaches for Modified Frequency Domain Methods} +\caption{Constraint satisfaction approaches for modified frequency domain methods. Filled stars indicate better performance.} \label{tab:constraint-approaches} -\begin{tabular}{>{\raggedright\arraybackslash}p{0.6\linewidth}l l} -\textbf{Method} & \textbf{Accuracy} & \textbf{Optimality} \\ \hline -(M1) Nonlinear optimal (or near-optimal) controller, linearized via describing functions& High & High \\ -(M2) Linear optimal controller& High & Medium \\ -(M3) Saturate or zero the times with constraint violations, neglecting the effect on other signals& Medium & Medium-low\\ -(M4) Saturate or zero entire sea state& Low & Low \\ -(M5) Mark design as infeasible& N/A& Lowest \\ +\begin{tabular}{M{.03\linewidth} >{\raggedright\arraybackslash}m{0.45\linewidth}l l} +&\textbf{Method} & \textbf{Accuracy} & \textbf{Optimality} \\ \toprule +M1 & Nonlinear optimal (M1.1) or near-optimal (M1.2) controller, quasi-linearized via describing functions& \Stars{3} &\Stars{3} \\ \hline +M2 & Linear optimal controller& \Stars{3} & \Stars{2} \\ \hline +M3 & Saturate or zero the times with constraint violations, neglecting the effect on other signals& \Stars{2} & \Stars{1}\\ \hline +M4 & Saturate or zero entire sea state& \Stars{1} & \Stars{0.5} \\ \hline +M5 &Mark design as infeasible& N/A& \Stars{0} \\ \end{tabular} \end{table} % --- M1 --- +\paragraph{M1: QLPS with nonlinear control} The modified frequency-domain approach with the highest accuracy and optimality (M1) is to synthesize a new nonlinear optimal (or near-optimal) time-domain controller that obeys the constraint, taking into account the linearized effect of that nonlinear controller on the frequency domain response. This synthesis can occur in a number of ways. +If a time-domain optimal control law (e.g. those that \citet{abdulkadir_optimal_2024,lin_fast_2025} develop via the Pontryagin Maximum Principle (PMP)) is available for the constraint under consideration (M1.1), it can be used as the nonlinear optimal controller directly, essentially bypassing the use of QLPS in the control synthesis step (\Cref{fig:mod-freq-domain-synthesis}) and using it only for evaluation (\Cref{fig:mod-freq-domain-evaluation}). \ifdefined\DISSERTATION - If a time-domain PMP control law is available for the constraint under consideration (M1.1), it can be used as the nonlinear optimal controller directly, essentially bypassing the use of the modified frequency-domain linearization in the control synthesis step (\cref{fig:mod-freq-domain-synthesis}) and using it only for evaluation (\cref{fig:mod-freq-domain-evaluation}). This differs from the standard PMP method in that the evaluation of the response and power corresponding to the time-domain PMP controller is determined in the frequency domain, rather than via numerical time-integration (as in the method of \cite{zou_optimal_2017}) or analytical time-integration (as in the method of \cite{lin_fast_2025}). This is advantageous if the computational cost or mathematical labor of the numerical or analytical PMP evaluation methods, respectively, are of concern. - For situations without an explicit PMP control law (M1.2), a nonlinear near-optimal controller can be constructed by first deriving the optimal linear controller via constrained optimization, and then adjusting it to be nonlinear using insights from signal saturation and filtering, which is the approach pursued here for the force limit. - This approach (M1.2) should be considered the primary formulation of the modified frequency domain method, and the other approaches (M2)--(M5) in \Cref{tab:constraint-approaches} act as approximations of this method with varying levels of accuracy and optimality. - In either case (M1.1 and M1.2), the nonlinear controller is linearized via the describing function method. -\else - For situations without an explicit PMP control law (M1.2), a nonlinear near-optimal controller can be constructed by first deriving the optimal linear controller via constrained optimization - and then adjusting it to be nonlinear using insights from signal saturation and filtering. - This is the approach pursued here for the force limit. - The nonlinear controller is linearized via the describing function method. \fi +For situations without an explicit PMP control law (M1.2), a nonlinear near-optimal controller can be constructed by first deriving the optimal linear controller via constrained optimization +(M2) and then adjusting it to be nonlinear using insights from signal saturation and filtering. +This is the approach pursued here for the force limit. +M1.2 should be considered the primary formulation of QLPS, and the other modified frequency-domain methods (M2)--(M5) in \Cref{tab:constraint-approaches} act as approximations of QLPS with varying levels of accuracy and optimality. +M1.1 and M1.2 both linearize the nonlinear controller via the describing function method. In addition to the control nonlinearity, a describing function is also utilized to linearize the plant drag nonlinearity. % --- M2 --- +\paragraph{M2: QLPS with linear control} If a nonlinear controller or the corresponding describing function to linearize it are not available, the most optimal linear controller that obeys the constraint can be used instead (M2). This approach accurately evaluates the maximum power that a linear controller could produce, although this power will be lower (less optimal) than that of the optimal nonlinear controller. MDOcean pursues this approach for amplitude limits in the operational design load case. \ifdefined\DISSERTATION - The constrained optimization to identify the controller in (M1.2) and (M2) can be performed numerically or analytically by analyzing an impedance-mismatched linear system in the frequency domain and will be discussed in detail in \cref{sec:optimal-control}. + The constrained optimization to identify the controller in (M1.2) and (M2) can be performed numerically or analytically by analyzing an impedance-mismatched linear system in the frequency domain and will be discussed in detail in \Cref{sec:optimal-control}. The current MDOcean software uses the numerical approach, which requires more computation time but is simpler to implement and equally accurate. - The analytical approach is nonetheless derived in \cref{sec:optimal-control} (with further details and graphical visualization of the constraints in \cref{sec:appendix-qp-solution} and reference \cite{mccabe_force-limited_2024}) and recommended for future implementation. + The analytical approach is nonetheless derived in \Cref{sec:optimal-control} (with further details and graphical visualization of the constraints in \Cref{sec:appendix-qp-solution} and reference \cite{mccabe_force-limited_2024}) and recommended for future implementation. \else The constrained optimization used to identify the controller in (M1.2) and (M2) can be performed numerically or analytically by analyzing an impedance-mismatched linear system in the frequency domain; - the analytical derivation is provided in \cref{sec:optimal-control}, with additional details in \cref{sec:appendix-qp-solution}. + the analytical derivation is provided in \Cref{sec:optimal-control}, with additional details in \Cref{sec:appendix-qp-solution}. \fi % --- M3, M4, M5 --- +\paragraph{M3--M5: Constrained frequency-domain estimates} If neither a numerical nor an analytical implementation is available to identify the optimal constrained linear controller, then the violating portion of the time-domain signals can be saturated or zeroed for the sake of power calculation (M3). This approach neglects the corresponding effect of the saturation/zeroing on other quantities in the system, which lowers the accuracy, and the controller does not have the opportunity to even approximately consider the constraint, resulting in a power production potentially much lower than the constrained optimal. \ifdefined\DISSERTATION This simple approach does not require any derivations to implement. - It has been used in several previous WEC optimization studies for various constraints \cite{garcia-teruel_design_2022,garcia-teruel_reliability-based_2021,cotten_multi-objective_2022,mccabe_constrained_2013} and is evidently the most common modified frequency domain method in the marine energy field. + It has been used in several previous WEC optimization studies for various constraints \cite{garcia-teruel_design_2022,garcia-teruel_reliability-based_2021,cotten_multi-objective_2022,mccabe_constrained_2013} and is evidently the most common quasi-linearized pseudo-spectral method in the marine energy field. \else - This simple approach has been used in several previous WEC optimization studies for various constraints in the studies \cite{garcia-teruel_design_2022,garcia-teruel_reliability-based_2021,cotten_multi-objective_2022,mccabe_constrained_2013} - and is the most common modified frequency-domain method in the marine energy field. + This simple approach has been used in several previous WEC optimization studies for various constraints in the studies \citep{garcia-teruel_design_2022,garcia-teruel_reliability-based_2021,cotten_multi-objective_2022,mccabe_constrained_2013} + and is the most common quasi-linearized pseudo-spectral method in the marine energy field. \fi It is utilized here for the power limit. @@ -359,7 +382,7 @@ \subsubsection{Modified Frequency Domain Techniques} %Approach (M5) is also pursued here for amplitude limits in the operational design load case, in the interest of consistency and implementation expedience. \Cref{tab:nonlinearities} summarizes the dynamic nonlinearities and limits and the method MDOcean currently uses to handle each. -The describing function for control force is prioritized due to its simpler implementation as well as the force constraint's frequent activity and strong impact on results observed in prior RM3 optimizations \cite{mccabe_multidisciplinary_2022,gaebele_tpl_2025,mcgilton_optimal_2024}. +The describing function for control force is prioritized due to its simpler implementation as well as the force constraint's frequent activity and strong impact on results observed in prior RM3 optimizations \citep{mccabe_multidisciplinary_2022,gaebele_tpl_2025,mcgilton_optimal_2024}. \ifdefined\DISSERTATION In future work, MDOcean could instead utilize describing functions (M1.2) or the optimal constrained linear controller (M2) for the power and operational amplitude limits respectively to improve accuracy and optimality. \fi @@ -385,10 +408,10 @@ \subsubsection{Modified Frequency Domain Techniques} \fi Because the fundamental amplitude depends on the response, the frequency domain simulation is only quasi-linear and must either be iterated numerically or solved analytically. MDOcean uses iteration to handle both the drag force and control force nonlinearities. % and an analytical solution for the force saturation nonlinearity. -The former encodes the describing function formula directly into the simulation (see derivation in \cref{sec:drag}), while the latter implements it indirectly using knowledge of the limit cases of describing functions for multiple nonlinear control laws (see discussion in \cref{sec:appendix-force-sat}). +The former encodes the describing function formula directly into the simulation (see derivation in \Cref{sec:drag}), while the latter implements it indirectly using knowledge of the limit cases of describing functions for multiple nonlinear control laws (see discussion in \Cref{sec:appendix-force-sat}). \ifdefined\DISSERTATION - This is possible because the describing function modified frequency domain method is used for both controller synthesis and evaluation, so the time-domain nonlinear optimal controller that is output from the right of \cref{fig:mod-freq-domain-synthesis} is fed into the top left of \cref{fig:mod-freq-domain-evaluation}, resulting in a chaining of the inverse control describing function with the forward control describing function, which cancel out. + This is possible because the describing function quasi-linearized pseudo-spectral method is used for both controller synthesis and evaluation, so the time-domain nonlinear optimal controller that is output from the right of \Cref{fig:mod-freq-domain-synthesis} is fed into the top left of \Cref{fig:mod-freq-domain-evaluation}, resulting in a chaining of the inverse control describing function with the forward control describing function, which cancel out. Unless intentionally made different to study robustness, the linearized plant model is identical for the synthesis and evaluation steps. In this case, two workflows essentially become one, with no further computation required after the optimal control step. Reconstruction of the nonlinear controller is not necessary for the evaluation of the power corresponding to that controller. @@ -404,7 +427,7 @@ \subsubsection{Modified Frequency Domain Techniques} %%%%%%%%%%%%%%% \subsubsection{Equation of Motion}\label{sec:eom} \ifdefined\DISSERTATION - Before applying the modified frequency domain method described above, we first present the equations of motion for a standard linear WEC model, starting in the time domain and quickly moving to the frequency domain. + Before applying the quasi-linearized pseudo-spectral method described above, we first present the equations of motion for a standard linear WEC model, starting in the time domain and quickly moving to the frequency domain. Specifically, we combine the bi-conjugate network model of \cite{coe_co-design_2025} with the underactuated multi-degree of freedom model of \cite{faedo_principle_2022} to arrive at a formulation suitable for the impedance matching of a multibody WEC subject to wave forcing, powertrain kinematics and dynamics, and drag. \else The MDOcean dynamic model combines the bi-conjugate network model of \cite{coe_co-design_2025} with the underactuated multi-degree of freedom model of \cite{faedo_principle_2022} to express the equations of motion for a multibody WEC subject to wave forcing, powertrain kinematics and dynamics, and drag. @@ -414,12 +437,12 @@ \subsubsection{Equation of Motion}\label{sec:eom} Forces include wave excitation $\vec{F}_e$, hydrodynamic radiation $\vec{F}_{rad}$, hydrostatic restoring $\vec{F}_{res}$, drag $\vec{F}_d$, and power takeoff $\vec{F}_p$. \ifdefined\DISSERTATION - The MDOcean dynamic model assumes regular waves for reasons to be detailed in \cref{sec:irregular-waves}, so the system experiences monochromatic wave forcing. + The MDOcean dynamic model assumes regular waves for reasons to be detailed in \Cref{sec:irregular-waves}, so the system experiences monochromatic wave forcing. Combined with the linearity of the model, this implies that all signals are sinusoids. Therefore, the time-domain radiation force is a simple product rather than a convolution integral. With these considerations, the equation of motion can be expressed in the time domain as: \else - Under the regular-wave assumption justified in \cref{sec:irregular-waves}, all signals are sinusoidal + Under the regular-wave assumption justified in \Cref{sec:irregular-waves}, all signals are sinusoidal and the radiation force reduces to a simple product rather than a convolution integral, yielding the time-domain equation of motion: \fi @@ -438,7 +461,7 @@ \subsubsection{Equation of Motion}\label{sec:eom} \vec{F}_{p}(t) &= -\mathbf{B}_p\dot{\vec{\xi}}(t) - \mathbf{K}_p\vec{\xi}(t). \end{aligned} \end{equation} -for both operational and storm conditions, where $\vec{\xi}(t)$ (body position) and $\zeta(t)$ (wave elevation) were defined in \cref{sec:hydro}. +for both operational and storm conditions, where $\vec{\xi}(t)$ (body position) and $\zeta(t)$ (wave elevation) were defined in \Cref{sec:hydro}. The mass matrix is: \begin{equation} \mathbf{M_{op}}=\begin{bmatrix}m_f & 0 \\ 0 & m_s\end{bmatrix}, \quad \mathbf{M_{storm}}=\begin{bmatrix}m_f + m_s \end{bmatrix} @@ -448,9 +471,9 @@ \subsubsection{Equation of Motion}\label{sec:eom} For each force component, a linear or quasi-linear model is adopted, with coefficients $\vec{\gamma}$, $\mathbf{A_h}$, $\mathbf{B_h}$, $\mathbf{K_h}$ from the hydrodynamics module and $\mathbf{B_d}$, $\vec{\gamma}_d$, $\mathbf{B_p}$, and $\mathbf{K_p}$ to be derived in the following sections. The excitation coefficients $\vec{\gamma}$ and $\vec{\gamma}_d$ are complex, and all other coefficients are real. \else - Hydrodynamic coefficients $\vec{\gamma}$, $\mathbf{A_h}$, $\mathbf{B_h}$, $\mathbf{K_h}$ come from \cref{sec:hydro}; - drag coefficients $\mathbf{B_d}$, $\vec{\gamma}_d$ are derived in \cref{sec:drag}; - PTO coefficients $\mathbf{B_p}$, $\mathbf{K_p}$ are derived in \cref{sec:appendix-pto-model,sec:optimal-control}. + Hydrodynamic coefficients $\vec{\gamma}$, $\mathbf{A_h}$, $\mathbf{B_h}$, $\mathbf{K_h}$ come from \Cref{sec:hydro}; + drag coefficients $\mathbf{B_d}$, $\vec{\gamma}_d$ are derived in \Cref{sec:drag}; + PTO coefficients $\mathbf{B_p}$, $\mathbf{K_p}$ are derived in \Cref{sec:appendix-pto-model,sec:optimal-control}. The excitation coefficients $\vec{\gamma}$ and $\vec{\gamma}_d$ are complex; all others are real. \fi @@ -465,16 +488,16 @@ \subsubsection{Equation of Motion}\label{sec:eom} \end{equation} The PTO kinematics and dynamics are yet to be specified, currently represented by generic impedance matrix $\mathbf{Z}_p = \mathbf{B}_p+\frac{\mathbf{K}_p}{i\omega}$. -Equations \eqref{eq:eom-freq-domain}-\eqref{eq:intrinsic-impedance} are represented as a multiport circuit (\cref{fig:multiport-circuit-intrinsic}), with effort variables $\vec{e}$ and flow variables $\vec{q}$ at each port. +Equations \eqref{eq:eom-freq-domain}-\eqref{eq:intrinsic-impedance} are represented as a multiport circuit (\Cref{fig:multiport-circuit-intrinsic}), with effort variables $\vec{e}$ and flow variables $\vec{q}$ at each port. Three matrix forms describe the port relationships: impedance ($\mathbf{Z}$) groups all ports together; -cascade ($\mathbf{a}$/ABCD) transmits efforts and flows sequentially between port groups and is used for the PTO dynamics (\cref{sec:appendix-pto-model}); +cascade ($\mathbf{a}$/ABCD) transmits efforts and flows sequentially between port groups and is used for the PTO dynamics (\Cref{sec:appendix-pto-model}); hybrid ($\mathbf{h}$) mixes the two and is used for the PTO kinematics. -Full conventions, conversion formulas, and the cascade inversion rule are given in \cref{sec:appendix-multiport}, following \cite{reveyrand_multiport_2018}. +Full conventions, conversion formulas, and the cascade inversion rule are given in \Cref{sec:appendix-multiport}, following \cite{reveyrand_multiport_2018}. \begin{figure}[htbp] \centering - \input{figs/tikz/circuit_intrinsic.tikz} + \includegraphics[width=\linewidth]{figs/from-matlab/circuit_intrinsic.pdf} \caption{Multiport circuit for two hydrodynamic degrees of freedom with intrinsic and powertrain impedances $\mathbf{Z}_i$ and $\mathbf{Z}_p$} \label{fig:multiport-circuit-intrinsic} \end{figure} @@ -485,11 +508,11 @@ \subsubsection{Equation of Motion}\label{sec:eom} %%%%%%%%%%%%%%% \subsubsection{PTO Model}\label{sec:pto-dynamics-overview} -The PTO model specifies the generic powertrain impedance matrix $\mathbf{Z}_p$ in \cref{eq:eom-freq-domain}. +The PTO model specifies the generic powertrain impedance matrix $\mathbf{Z}_p$ in \Cref{eq:eom-freq-domain}. It is a linear multiport effort-flow model that is valid for multiple degree of freedom devices across various energy domains. It consists of PTO kinematics (a hybrid matrix relating body degrees of freedom to the PTO port, accommodating underactuation) and PTO dynamics (cascade matrices for a mechanical drivetrain and permanent magnet generator, relating the PTO port to the generator electrical port, with generator voltage $\hat{V}$ and current $\hat{I}$ as the effort and flow variables). The Thévenin equivalent circuit method is used to find the effective intrinsic impedance $Z_{s,th}$ and open-circuit source voltage $\hat{V}_{s,th}$ viewed from the generator electrical port, as required for impedance matching. -Details and circuit diagrams are provided in \cref{sec:appendix-pto-dynamics}. +Details and circuit diagrams are provided in \Cref{sec:appendix-pto-dynamics}. %%%%%%%%%%%%%%% \subsubsection{Power Production}\label{sec:power} @@ -503,18 +526,18 @@ \subsubsection{Power Production}\label{sec:power} The same expression is evaluated at the floating body, PTO, generator mechanical, and generator electrical ports by substituting the corresponding effort/flow pair $\{e,q\}$. \fi -In the frequency domain assuming sinusoidal waveforms, the active power $P$, reactive power $Q$, complex power $S$, and apparent power $|S|$ from electrical engineering \cite{saadat_power_1999} are +In the frequency domain assuming sinusoidal waveforms, the active power $P$, reactive power $Q$, complex power $S$, and apparent power $|S|$ from electrical engineering \citep{saadat_power_1999} are \begin{equation}\label{eq:power-PQS} \begin{aligned} - P &= \tfrac{1}{2}\Re(\hat{e}\hat{q}^*) = \tfrac{1}{2}\Re(Z)|\hat{q}|^2, - & Q &= \tfrac{1}{2}\Im(\hat{e}\hat{q}^*) = \tfrac{1}{2}\Im(Z)|\hat{q}|^2, \\ - S &= P + iQ = \tfrac{1}{2}\hat{e}\hat{q}^* = \tfrac{1}{2}Z|\hat{q}|^2, - & |S| &= \tfrac{1}{2}|Z||\hat{q}|^2, + P &= \tfrac{1}{2}\Re(\hat{e}\hat{q}^*) = \tfrac{1}{2}\Re(Z)|\hat{q}|^2,\\ + Q &= \tfrac{1}{2}\Im(\hat{e}\hat{q}^*) = \tfrac{1}{2}\Im(Z)|\hat{q}|^2, \\ + S &= P + iQ = \tfrac{1}{2}\hat{e}\hat{q}^* = \tfrac{1}{2}Z|\hat{q}|^2, \\ + |S| &= \tfrac{1}{2}|Z||\hat{q}|^2, \end{aligned} \end{equation} where the port is terminated with complex impedance $Z$ and $(\,)^*$ denotes the conjugate transpose. -The average and peak powers over a wave period, derived in \cref{sec:appendix-power-time}, are +The average and peak powers over a wave period, derived in \Cref{sec:appendix-power-time}, are \begin{equation}\label{eq:power-avg-peak} p_{avg} = P, \qquad p_{pk} = P + |S|. \end{equation} @@ -526,9 +549,9 @@ \subsubsection{Power Production}\label{sec:power} Note that this is not strictly equivalent to assuming the generator has constant efficiency, since controllers with reactive terms ($K_l\neq 0$) spend some time expending energy, which reverses the direction of the generator efficiency. The average efficiency is assumed to also apply to the peak powers, though this is not guaranteed in general for the same reason. \fi -Validation in \cref{sec:validation-benchmarking} sets $\eta=80\%$ to match the RM3 design assumption of \cite{RM3}. +Validation in \Cref{sec:validation-benchmarking} sets $\eta=80\%$ to match the RM3 design assumption of \cite{RM3}. -The full expansion of $p_{\text{avg},\text{elec}}$ and $p_{pk,\text{elec}}$ in terms of the optimal-control variables $B_l$, $K_l$, and the electrical-port current phasor $\hat{I}$ is given in \cref{sec:appendix-power-elec}. +The full expansion of $p_{\text{avg},\text{elec}}$ and $p_{pk,\text{elec}}$ in terms of the optimal-control variables $B_l$, $K_l$, and the electrical-port current phasor $\hat{I}$ is given in \Cref{sec:appendix-power-elec}. % Additionally, the drivetrain mechanical cascade matrix $[a]_m$ is set to the identity matrix, which represents a static effective gear radius $R=1$: % \begin{equation} @@ -590,12 +613,12 @@ \subsubsection{Optimal Control}\label{sec:optimal-control} \hat{e} \\ \hat{q} \end{bmatrix} \end{equation} -The matrices for various metrics are given in \cref{tab:power-metrics}. -\begin{table}[htbp] +The matrices for various metrics are given in \Cref{tab:power-metrics}. +\begin{table}[bhp] \centering -\caption{Matrices for calculating various metrics at a port via \cref{eq:metrics}} +\caption{Matrices for calculating various metrics at a port via \Cref{eq:metrics}} \label{tab:power-metrics} -\begin{tabular}{l|ccccc} +\begin{tabular}{>{\raggedright\arraybackslash}p{0.1\linewidth}|ccccc} Metric $M$ & $p_{\text{avg}}=P$ & $Q$ & $S$ & $|\hat{e}|^2$ & $|\hat{q}|^2$ \\ \hline Matrix $\mathbf{A}_M$ & $\begin{bmatrix} @@ -626,7 +649,7 @@ \subsubsection{Optimal Control}\label{sec:optimal-control} \end{tabular} \end{table} -Note that the apparent power $|S|$, and therefore the peak power from \cref{eq:power-avg-peak}, cannot be written in the quadratic form of \cref{eq:metrics} and is instead fourth-order: +Note that the apparent power $|S|$, and therefore the peak power from \Cref{eq:power-avg-peak}, cannot be written in the quadratic form of \Cref{eq:metrics} and is instead fourth-order: \begin{equation} |S|^2 = S S^* = \frac{1}{16} \begin{bmatrix} \hat{e} \\ \hat{q} \end{bmatrix}^* \mathbf{A}_S @@ -635,13 +658,13 @@ \subsubsection{Optimal Control}\label{sec:optimal-control} \mathbf{A}_S^T \begin{bmatrix} \hat{e} \\ \hat{q} \end{bmatrix} \end{equation} -Peak power constraints use a more complicated approach discussed in \cref{sec:appendix-mag-S-constraints} and are left out of the formulation below for simplicity. +Peak power constraints use a more complicated approach discussed in \Cref{sec:appendix-mag-S-constraints} and are left out of the formulation below for simplicity. -To implement the constraints, we create an intentional linear impedance mismatch, sacrificing power to satisfy the limits (method M2 in \cref{tab:constraint-approaches}). -For select constraints where a describing function is available (currently the torque limit), we additionally use nonlinear control to satisfy the limit with less of a power sacrifice (method M1.2 in \cref{tab:constraint-approaches}). +To implement the constraints, we create an intentional linear impedance mismatch, sacrificing power to satisfy the limits (method M2 in \Cref{tab:constraint-approaches}). +For select constraints where a describing function is available (currently the torque limit), we additionally use nonlinear control to satisfy the limit with less of a power sacrifice (method M1.2 in \Cref{tab:constraint-approaches}). -For the linear impedance mismatch, the average electrical power from \cref{eq:power-avg-peak} can be maximized subject to quadratic constraints on the effort and flow variables. -This is a quadratically constrained quadratic program (QCQP): +For the linear impedance mismatch, the average electrical power from \Cref{eq:power-avg-peak} can be maximized subject to quadratic constraints on the effort and flow variables. +This is a quadratically-constrained quadratic program (QCQP): \begin{equation}\label{eq:opt-problem} \begin{aligned} & \max_{\vec{x} \in \mathbb{C}^2} & p_{avg,VI} &= \frac{1}{4}\vec{x}^{\,*} \mathbf{A}_P \vec{x} \\[3pt] @@ -663,12 +686,12 @@ \subsubsection{Optimal Control}\label{sec:optimal-control} The linear equality constraint $\vec{c}^{\,*}\vec{x} = d$ enforces the WEC and PTO dynamics through a voltage-current relationship at the generator electrical port, while the quadratic inequality constraints encode limits on linear or quadratic combinations of effort and flow at any port. \ifdefined\DISSERTATION - The specific quantities constrained in this case are shown in \cref{tab:qp-constraints}. + The specific quantities constrained in this case are shown in \Cref{tab:qp-constraints}. More precisely, this simulation implements constraints on the maximum allowed generator torque and mechanical power, float and spar body amplitudes, and PTO amplitude, as well as a positivity constraint on the electrical power. - In addition to the amplitude limits shown in the first three rows of \cref{tab:qp-constraints}, a differently-structured quadratic amplitude constraint will be presented in \cref{sec:design-load-cases} (see \cref{eq:slam-constraint-quadratic}) representing a coupled amplitude-phase criterion for the bodies to not exit the water or be fully submerged. + In addition to the amplitude limits shown in the first three rows of \Cref{tab:qp-constraints}, a differently-structured quadratic amplitude constraint will be presented in \Cref{sec:design-load-cases} (see \Cref{eq:slam-constraint-quadratic}) representing a coupled amplitude-phase criterion for the bodies to not exit the water or be fully submerged. \else - Constraints implemented in MDOcean include generator torque, mechanical power, float and spar amplitudes, PTO amplitude, and electrical power positivity; quadratic coefficients $\{\mathbf{Q}_i, \vec{a}_i, b_i\}$ for each are given in \cref{tab:qp-constraints} (\cref{sec:appendix-qp-constraints-table}). - A differently-structured quadratic amplitude constraint for float and spar slamming/submersion is presented in \cref{sec:design-load-cases}. + Constraints implemented in MDOcean include generator torque, mechanical power, float and spar amplitudes, PTO amplitude, and electrical power positivity; quadratic coefficients $\{\mathbf{Q}_i, \vec{a}_i, b_i\}$ for each are given in \Cref{tab:qp-constraints} (\Cref{sec:appendix-qp-constraints-table}). + A differently-structured quadratic amplitude constraint for float and spar slamming/submersion is presented in \Cref{sec:design-load-cases}. \fi \Cref{eq:opt-problem} has the following solution: @@ -676,25 +699,27 @@ \subsubsection{Optimal Control}\label{sec:optimal-control} \begin{aligned} \vec{x}_{opt} &= \frac{\hat{V}_{s,th}}{2\Re(Z_{s,th})} - \begin{bmatrix} Z_{s,th}^* (1+\Gamma) \\ 1-\Gamma \end{bmatrix} \\ - p_{avg,VI,opt} &= \frac{|\hat{V}_{s,th}|^2}{8\Re(Z_{s,th})}~ (1 - |\Gamma|^2) + \begin{bmatrix} Z_{s,th}^* (1+\Gamma_{\text{opt}}) \\ 1-\Gamma_{\text{opt}} \end{bmatrix} \\ + p_{avg,VI,opt} &= \frac{|\hat{V}_{s,th}|^2}{8\Re(Z_{s,th})}~ (1 - |\Gamma_{\text{opt}}|^2) \end{aligned} \end{equation} -where $\Gamma$ is a complex scalar with magnitude between 0 and 1 called the reflection coefficient. +where $\Gamma_{\text{opt}}$ is a complex scalar with magnitude between 0 and 1 called the optimal reflection coefficient, with formula given in \Cref{eq:gamma-opt-quadratic,eq:candidate-points,eq:circle-intersection} of \Cref{sec:appendix-qp-solution}. The reflection coefficient represents the degree to which the constraints introduce an impedance mismatch. -$\Gamma=0$ corresponds to the impedance-matched solution (no active inequality constraints). +$\Gamma_{\text{opt}}=0$ corresponds to the impedance-matched solution (no active inequality constraints). \ifdefined\DISSERTATION - As \cref{sec:mod-freq-domain} describes, the solution for $\Gamma$ can be found numerically or analytically, and we further distinguish that the numerical approach can be accomplished with either direct or indirect optimal control. + As \Cref{sec:mod-freq-domain} describes, the solution for $\Gamma_{\text{opt}}$ can be found numerically or analytically, and we further distinguish that the numerical approach can be accomplished with either direct or indirect optimal control. Direct methods solve the optimization problem itself, while indirect methods first derive the optimality conditions and then solve those conditions. - MDOcean currently implements both the analytical approach, which corresponds to the explicit architecture in \cref{fig:control-arch}, and the numerical indirect approach, which corresponds to the implicit architecture in \cref{fig:control-arch}. - The analytical approach is described in \cref{sec:appendix-qp-solution}, and the numerical indirect approach in \cref{sec:appendix-qp-numerical}. + MDOcean currently implements both the analytical approach, which corresponds to the explicit architecture in \Cref{fig:control-arch}, and the numerical indirect approach, which corresponds to the implicit architecture in \Cref{fig:control-arch}. + The analytical approach is described in \Cref{sec:appendix-qp-solution}, and the numerical indirect approach in \Cref{sec:appendix-qp-numerical}. - The numerical direct approach can correspond to either the nested architecture or the simultaneous architecture of \cref{fig:control-arch}. - While the nested architecture solves the quadratic program \cref{eq:opt-problem}, the simultaneous architecture integrates the QCQP into the nonlinear design optimization, which does not take advantage of the efficiency available with the QCQP formulation. + The numerical direct approach can correspond to either the nested architecture or the simultaneous architecture of \Cref{fig:control-arch}. + While the nested architecture solves the quadratic program \Cref{eq:opt-problem}, the simultaneous architecture integrates the QCQP into the nonlinear design optimization, which does not take advantage of the efficiency available with the QCQP formulation. It is unknown whether the numerical direct approach to solving the QCQP would be more efficient than the numerical indirect approach, but both are expected to be significantly less efficient than the analytical approach, so the analytical approach is used for all results and benchmarks presented here. \else - Both analytical and numerical-indirect solutions for $\Gamma$ are implemented in MDOcean and described in \cref{sec:appendix-qp-solution,sec:appendix-qp-numerical}; the analytical approach has a geometric interpretation as a minimum-distance problem on the complex plane of $\Gamma$ (see \cref{sec:appendix-qp-solution}) and is used for all results presented here. + Both analytical and numerical-indirect solutions for $\Gamma_{\text{opt}}$ are implemented in MDOcean. + This study focuses on the superior analytical approach described in \Cref{sec:appendix-qp-solution}, which has a geometric interpretation as a minimum-distance problem on the complex plane of $\Gamma_{\text{opt}}$ and is used for all results presented here. + \citet[Appendix A.3.3]{mccabe_dissertation_2026} describes the numerical-indirect approach. \fi \paragraph{Nonlinear controller} @@ -708,37 +733,36 @@ \subsubsection{Optimal Control}\label{sec:optimal-control} \else The maximum generator torque constraint is handled separately. Saturation makes the optimal torque non-sinusoidal (approaching a square wave for low torque limits), which would normally require time-domain simulation. - The describing function method instead represents the saturated signal by its fundamental Fourier component (\cref{fig:desc-fcns}a), with higher harmonics filtered out by the second-order plant. + The describing function method instead represents the saturated signal by its fundamental Fourier component (\Cref{fig:desc-fcns}a), with higher harmonics filtered out by the second-order plant. \fi \begin{figure}[htbp] \centering \begin{subfigure}[t]{0.48\linewidth} \includegraphics[width=\linewidth]{figs/from-matlab/saturation_desc_fcn.pdf} - \caption{Saturated sin vs. time (red) and its fundamental amplitude (blue).}\label{fig:sat} + \caption{Generator torque saturation}\label{fig:sat} \end{subfigure} \hfill \begin{subfigure}[t]{0.48\linewidth} \includegraphics[width=\linewidth]{figs/from-matlab/drag_desc_fcn.pdf} - \caption{Conceptual demonstration of the drag describing function in the time domain. -The nonlinear signal (red) is approximated by its fundamental amplitude (blue).}\label{fig:drag-df} + \caption{Quadratic drag}\label{fig:drag-df} \end{subfigure} -\caption{Describing function approximations for force saturation (a) and drag (b).}\label{fig:desc-fcns} +\caption{Conceptual demonstration of describing function approximations. Plots show force versus time. Nonlinear signals in red; fundamental amplitudes in blue.}\label{fig:desc-fcns} \end{figure} -Details of the calculation are provided in \cref{sec:appendix-force-sat}. -The result is updated effective values for control gains $B_l$ and $K_l$ that represent the nonlinear saturated controller with a torque that obeys the constraint and is used in place of \cref{eq:constrained-qp-solution}. +Details of the calculation are provided in \Cref{sec:appendix-force-sat}. +The result is updated effective values for control gains $B_l$ and $K_l$ that represent the nonlinear saturated controller with a torque that obeys the constraint and is used in place of \Cref{eq:constrained-qp-solution}. %%%%%%%%%%%%%%% \subsubsection{Drag}\label{sec:drag} \ifdefined\DISSERTATION - The hydrodynamics model of \cref{sec:hydro} does not capture all fluid forces on the body due to its linear, irrotational, and inviscid assumptions. + The hydrodynamics model of \Cref{sec:hydro} does not capture all fluid forces on the body due to its linear, irrotational, and inviscid assumptions. More specifically, viscous shear stresses (skin friction), higher-order nonlinear potential flow effects, and steady and unsteady viscous separation phenomena are all neglected. In this section, we model the form drag due to viscous flow separation, including steady wake losses, turbulence, and cycle-averaged vortex shedding. These effects have been found to be the dominant drag force for heaving WECs \cite{quartier_influence_2021} and are important to avoid unrealistically high resonant peaks in the response amplitude which would lead to overestimates of power production. \else - The linear, inviscid hydrodynamics model of \cref{sec:hydro} omits viscous flow separation, which is the dominant drag mechanism for heaving WECs \cite{quartier_influence_2021}. + The linear, inviscid hydrodynamics model of \Cref{sec:hydro} omits viscous flow separation, which is the dominant drag mechanism for heaving WECs \citep{quartier_influence_2021}. Without modeling drag, the predicted resonant amplitude is unrealistically high and power is overestimated. \fi @@ -748,42 +772,47 @@ \subsubsection{Drag}\label{sec:drag} To improve computational efficiency and allow solution in the frequency domain, the nonlinearity is quasi-linearized with a describing function, following \cite{quartier_influence_2021}. The pressure along the bottom surface of each body due to drag $\vec{p}_d(y,t)$ is modeled with empirical drag coefficient vector $\vec{C}_d$: \begin{equation}\label{eq:drag-pressure} + \vec{p}_{d}(y,t) = \frac{1}{2}\rho_w \vec{C}_d ~\vec{v}_{rel}(y,t) |\vec{v}_{rel}(y,t)| +\end{equation} +\Cref{eq:drag-pressure-approx} expands the velocity term then applies the describing function approximation: +\begin{equation}\label{eq:drag-pressure-approx} \begin{aligned} - \vec{p}_{d}(y,t) &= \frac{1}{2}\rho_w \vec{C}_d ~\vec{v}_{rel}(y,t) |\vec{v}_{rel}(y,t)| \\ - &= \frac{1}{2}\rho_w \vec{C}_d ~|\vec{\hat{V}}_{rel}(y)|^2 \cos(\omega t+\angle \vec{\hat{V}}_{rel}(y)) \left| \cos(\omega t+\angle \vec{\hat{V}}_{rel}(y))\right|\\ - &\approx \frac{1}{2}\rho_w \vec{C}_d ~|\vec{\hat{V}}_{rel}(y)|^2\frac{8}{3\pi} \cos(\omega t+\angle \vec{\hat{V}}_{rel}(y)) + \left(\vec{v}_{rel}(y,t)~\cdot\right.\\ + \left.\left|\vec{v}_{rel}(y,t)\right|\right) + &= |\vec{\hat{V}}_{rel}(y)|^2 \cos(\omega t+\angle \vec{\hat{V}}_{rel}(y)) + \left| \cos(\omega t+\angle \vec{\hat{V}}_{rel}(y))\right|\\ + &\approx~|\vec{\hat{V}}_{rel}(y)|^2\frac{8}{3\pi} \cos(\omega t+\angle \vec{\hat{V}}_{rel}(y)) \end{aligned} \end{equation} -where the last line of \cref{eq:drag-pressure} applies the describing function approximation. \ifdefined\DISSERTATION Computation of the relative velocity uses the following expression for the incident wave velocity phasor in finite depth water evaluated at the body draft, with $\vec{T}=[T_{f,2},T_s]$ collecting the bottom draft of the float and spar: \begin{equation}\label{eq:wave-velocity-phasor} \vec{\hat{V}}_{wave}(y) = \frac{H}{2} \frac{g k}{\omega} e^{-k\vec{T}} e^{-iky} \end{equation} \else - The relative velocity uses the standard linear-wave velocity phasor evaluated at body draft; the explicit expression is in \cref{sec:appendix-drag} (\cref{eq:wave-velocity-phasor}). + The relative velocity uses the standard linear-wave velocity phasor evaluated at body draft; the explicit expression is in \Cref{sec:appendix-drag} (\Cref{eq:wave-velocity-phasor}). \fi The time-domain nonlinear waveform and describing function approximation for the drag pressure/force are compared in \Cref{fig:desc-fcns}(b). The amplitude of the sinusoidal approximation equals $\frac{8}{3\pi}\approx0.85$ times the peak of the nonlinear waveform. -Integrating the drag pressure over the wetted surface via strip theory (\cref{sec:appendix-drag}) yields a quasi-linearized drag force consisting of a damping term in phase with the body motion and an excitation term potentially out of phase: +Integrating the drag pressure over the wetted surface via strip theory (\Cref{sec:appendix-drag}) yields a quasi-linearized drag force consisting of a damping term in phase with the body motion and an excitation term potentially out of phase: \begin{equation}\label{eq:drag-damping-excitation} \vec{\hat{F}}_d = -\mathbf{B}_{d} \vec{\hat{\dot{\xi}}} + \vec{\gamma}_{d} \hat{\zeta} \end{equation} The excitation term arises from the use of the relative velocity rather than direct WEC velocity, which is often overlooked in WEC models and has important implications for the phase of the drag force. -The damping-excitation grouping of the drag terms, as well as the dependence of the relative velocity on the direction of wave propagation $y$, improves on the approach of \cite{quartier_influence_2021} and is discussed more in \cref{sec:appendix-drag}. -Explicit expressions for $\mathbf{B}_d$ and $\vec{\gamma}_d$ in terms of nondimensional integrals over body geometry are given in \cref{sec:appendix-drag} (\cref{eq:drag-coeffs}). +The damping-excitation grouping of the drag terms, as well as the dependence of the relative velocity on the direction of wave propagation $y$, improves on the approach of \cite{quartier_influence_2021} and is discussed more in \Cref{sec:appendix-drag}. +Explicit expressions for $\mathbf{B}_d$ and $\vec{\gamma}_d$ in terms of nondimensional integrals over body geometry are given in \Cref{sec:appendix-drag} (\Cref{eq:drag-coeffs}). \ifdefined\DISSERTATION The nondimensional integrals are computed numerically, and for applications like optimization where the simulation must be run many times, they are pre-computed for a range of nondimensional input values and accessed via a lookup table to reduce runtime. The resulting magnitude and phase of WEC motion are obtained by numerically iterating the state-dependent coefficients $\mathbf{B}_{d}$ and $\vec{\gamma}_{d}$. - Further derivation, convergence details, and control implications are discussed in \cref{sec:appendix-drag}. + Further derivation, convergence details, and control implications are discussed in \Cref{sec:appendix-drag}. \else These integrals are precomputed and stored as a lookup table to support fast optimization. - The state-dependent coefficients $\mathbf{B}_{d}$ and $\vec{\gamma}_{d}$ are converged by fixed-point iteration, typically in 5-8 iterations; details are in \cref{sec:appendix-drag}. + The state-dependent coefficients $\mathbf{B}_{d}$ and $\vec{\gamma}_{d}$ are converged by fixed-point iteration, typically in 5-8 iterations; details are in \Cref{sec:appendix-drag}. \fi %\subsubsection{Power Saturation} @@ -792,31 +821,31 @@ \subsubsection{Drag}\label{sec:drag} %%%%%%%%%%%%%%% \subsubsection{Energy Production} -The analysis thus far has either been sea-state agnostic (\cref{sec:geom}) or applied separately to each individual sea state (\cref{sec:hydro,sec:dynamics}). +The analysis thus far has either been sea-state agnostic (\Cref{sec:geom}) or applied separately to each individual sea state (\Cref{sec:hydro,sec:dynamics}). We now combine the results across sea states to find the long-term energy statistics in a given wave environment. \ifdefined\DISSERTATION - While matrices in \cref{sec:hydro,sec:dynamics} represent coupled relationships between vector output variables (i.e.\ $\vec{\hat{\xi}}$) for systems with multiple bodies or degrees of freedom, in the current section each output element is treated as a scalar, either representing a single element of an output vector (i.e.\ $\hat{\xi}_f$) or the sum across all degrees of freedom (i.e.\ power in systems with multiple actuated degrees of freedom). + While matrices in \Cref{sec:hydro,sec:dynamics} represent coupled relationships between vector output variables (i.e.\ $\vec{\hat{\xi}}$) for systems with multiple bodies or degrees of freedom, in the current section each output element is treated as a scalar, either representing a single element of an output vector (i.e.\ $\hat{\xi}_f$) or the sum across all degrees of freedom (i.e.\ power in systems with multiple actuated degrees of freedom). These scalars are assembled into ``matrices'' (i.e.\ $\mathbf{\hat{\xi}}^{H,T}_f$) indexed by sea state rather than by degree of freedom, indicated by the $H,T$ superscript. Such ``matrices'' are incompatible with matrix multiplication and any matrix operations in this section should be interpreted as elementwise operations across sea states. - To distinguish from the average and maximum signal values over a wave period denoted with $avg$ and $pk$ subscripts in \cref{sec:power}, the long-term average across sea states is denoted with an overbar $\overline{(\cdot)}$ and long-term maximum with subscript $max$. - This intentionally matches the $max$ subscript used in \cref{tab:qp-constraints} for upper limits within each sea state because MDOcean currently applies the same limit value for a given constraint across all sea states, though this need not be the case in general. - An exception is the slamming and submergence constraints, which will be discussed separately in \cref{sec:design-load-cases}. + To distinguish from the average and maximum signal values over a wave period denoted with $avg$ and $pk$ subscripts in \Cref{sec:power}, the long-term average across sea states is denoted with an overbar $\overline{(\cdot)}$ and long-term maximum with subscript $max$. + This intentionally matches the $max$ subscript used in \Cref{tab:qp-constraints} for upper limits within each sea state because MDOcean currently applies the same limit value for a given constraint across all sea states, though this need not be the case in general. + An exception is the slamming and submergence constraints, which will be discussed separately in \Cref{sec:design-load-cases}. \else Quantities indexed by sea state are written as ``power matrices'' $(\cdot)^{H,T}$ (e.g.\ $\mathbf{P}_{\text{elec}}^{H,T}$), with operations interpreted elementwise across sea states rather than as matrix multiplication. Long-term averages across sea states are denoted with an overbar $\overline{(\cdot)}$ and long-term maxima with subscript $max$, - distinguishing them from the within-period averages and peaks ($avg$, $pk$) introduced in \cref{sec:power}. - A separate quadratic amplitude limit for slamming and submergence, which varies across sea states, is treated in \cref{sec:design-load-cases}. + distinguishing them from the within-period averages and peaks ($avg$, $pk$) introduced in \Cref{sec:power}. + A separate quadratic amplitude limit for slamming and submergence, which varies across sea states, is treated in \Cref{sec:design-load-cases}. \fi To find the long-term average power production $\overline{P}_{\text{elec}}$ in a location with a given distribution of sea states, the power matrix $\mathbf{P}^{H,T}_{\text{elec}}$ for each sea state is weighted by that sea state's probability using a Joint Probability Density (JPD) matrix and then summed. -This method is illustrated in \cref{fig:JPD-multiply}. -The JPD used in this analysis represents wave conditions in Humboldt Bay, CA and is taken from the study \cite{janzou_system_2020}. +This method is illustrated in \Cref{fig:JPD-multiply}. +The JPD used in this analysis represents wave conditions in Humboldt Bay, CA and is taken from the study by \cite{janzou_system_2020}. \begin{figure}[b!] \centering -\includegraphics[width=0.75\linewidth]{figs/manual/jpd_mult.pdf} +\includegraphics[width=\linewidth]{figs/manual/jpd_mult.pdf} \caption{Power matrix multiplication} \label{fig:JPD-multiply} \end{figure} @@ -876,7 +905,7 @@ \subsubsection{Dynamic Limits and Design Load Cases} \begin{equation}\label{eq:peak-fluid-force} \max_t \left|m\ddot{\xi}(t)-F_p(t)\right| \approx \left|-m\omega^2 \hat{\xi} - \hat{F}_p\right|. \end{equation} -This approximation can either under- or overestimate the true peak depending on whether harmonics interfere constructively or destructively with the fundamental; further discussion is in \cref{sec:appendix-peak-fluid-force}. +This approximation can either under- or overestimate the true peak depending on whether harmonics interfere constructively or destructively with the fundamental; further discussion is in \Cref{sec:appendix-peak-fluid-force}. \ifdefined\DISSERTATION The fundamental amplitudes are also used to calculate the peak float and spar displacements $\max_t |\xi_f(t)|$ and $\max_t |\xi_s(t)|$ in both cases. Using the fundamental for the response displacements is more accurate than for the forces because the system dynamics filter out high frequency inputs. @@ -896,25 +925,25 @@ \subsubsection{Dynamic Limits and Design Load Cases} \parbox[m]{\linewidth}{\centering \vspace{8pt} Peak powertrain force, $\max_t |F_p(t)|$ \vspace{8pt} } & \parbox[m]{\linewidth}{\centering - Given by \cref{eq:peak-pto-force}} + Given by \Cref{eq:peak-pto-force}} & \parbox[m]{\linewidth}{\centering - Solve \cref{eq:eom-freq-domain} with \cref{eq:op-hydro-coeffs} coefficients for $F_p$}\\ \hline + Solve \Cref{eq:eom-freq-domain} with \Cref{eq:op-hydro-coeffs} coefficients for $F_p$}\\ \hline \parbox[m]{\linewidth}{\centering Peak fluid force, $\max_t |m\ddot{\xi}(t)-F_p(t)|$ } & \parbox[m]{\linewidth}{\centering - Given by \cref{eq:peak-fluid-force} with \cref{eq:op-hydro-coeffs} coefficients and $F_p$ from \cref{eq:peak-pto-force}} + Given by \Cref{eq:peak-fluid-force} with \Cref{eq:op-hydro-coeffs} coefficients and $F_p$ from \Cref{eq:peak-pto-force}} & \parbox[m]{\linewidth}{\centering - Given by \cref{eq:peak-fluid-force} with \cref{eq:st-hydro-coeffs} coefficients and $F_p$ from storm case}\\ \hline + Given by \Cref{eq:peak-fluid-force} with \Cref{eq:st-hydro-coeffs} coefficients and $F_p$ from storm case}\\ \hline \parbox[m]{\linewidth}{\centering Peak float travel, $\max_t |\xi_f(t)|$ } & \parbox[m]{\linewidth}{\centering - Given by \cref{eq:eom-freq-domain} with \cref{eq:op-hydro-coeffs} coefficients} + Given by \Cref{eq:eom-freq-domain} with \Cref{eq:op-hydro-coeffs} coefficients} & \parbox[m]{\linewidth}{\centering - Given by \cref{eq:eom-freq-domain} with \cref{eq:st-hydro-coeffs} coefficients and $F_p=0$}\\ \hline + Given by \Cref{eq:eom-freq-domain} with \Cref{eq:st-hydro-coeffs} coefficients and $F_p=0$}\\ \hline \parbox[m]{\linewidth}{\centering Peak spar travel, $\max_t |\xi_s(t)|$ } & \parbox[m]{\linewidth}{\centering - Given by \cref{eq:eom-freq-domain} with \cref{eq:op-hydro-coeffs} coefficients} + Given by \Cref{eq:eom-freq-domain} with \Cref{eq:op-hydro-coeffs} coefficients} &Equals $\xi_f$ due to brake\\ \hline \parbox[m]{\linewidth}{\centering \vspace{8pt} Maximum allowable relative amplitude between float and spar, $|\xi_f-\xi_s|_{\text{max}}$ \vspace{8pt}} @@ -931,7 +960,7 @@ \subsubsection{Dynamic Limits and Design Load Cases} \end{tabular} \end{table} -The surge force for each component is calculated as \cite{newman_motions_1963} +The surge force for each component is calculated as \citep{newman_motions_1963} \begin{equation}\label{eq:surge-force} F_{surge} = \frac{H\rho_w \omega^2 A_w}{k} (e^{-kz_{\text{top}}}-e^{-kT}) \end{equation} @@ -941,21 +970,24 @@ \subsubsection{Dynamic Limits and Design Load Cases} Equation~\eqref{eq:surge-force} assumes a slender cylinder with diameter much smaller than the wavelength and may be less accurate for the float due to diffraction effects. Incorporating semi-analytical hydrodynamic coefficients for surge is a possible area of future work. Maximum acceptable heave %and surge -forces will be evaluated with structural factors of safety in \cref{sec:structures}. -The structures model currently lacks the ability to account for surge forces, so the surge force calculation is not used in the optimization. +forces will be evaluated with structural factors of safety in \Cref{sec:structures}. +The structures model currently lacks the ability to account for surge forces, so the surge force calculation is not used in the simulation. The table also indicates the maximum permissible amplitudes. In operational sea states, the geometric clearance between the float and spar is enforced to prevent overtravel. The permissible heights for upward and downward motion of the float relative to the spar are: \begin{equation}\label{eq:h-fs-up-down} - h_{fs,\text{up}} = h_s - T_s - (h_f- T_{f,2}), \qquad h_{fs,\text{down}} = T_s - T_{f,2} - h_d +\begin{aligned} + h_{fs,\text{up}} &= h_s - T_s - (h_f- T_{f,2}) \\ + h_{fs,\text{down}} &= T_s - T_{f,2} - h_d +\end{aligned} \end{equation} -Additionally, a limit of $h_{fs,\text{clear}}$ (see definition in \cref{fig:dims}) is required to ensure clearance of the tubular structure connecting the float and spar. +Additionally, a limit of $h_{fs,\text{clear}}$ (see definition in \Cref{fig:dims}) is required to ensure clearance of the tubular structure connecting the float and spar. -The conditions for linear wave-body interaction are enforced to maintain compatibility with the linear potential flow theory approach of \cref{sec:hydro}. +The conditions for linear wave-body interaction are enforced to maintain compatibility with the linear potential flow theory approach of \Cref{sec:hydro}. This maximum amplitude $\xi_{\text{linear}}$ for the float and spar respectively is \begin{equation} - \xi_{f,\text{linear}} = (h-T_{f,2})/10, \qquad \xi_{s,\text{linear}} = (h-T_s)/10 + \xi_{f,\text{linear}} = \frac{1}{10}(h-T_{f,2}), \quad \xi_{s,\text{linear}} = \frac{1}{10}(h-T_s) \end{equation} \ifdefined\DISSERTATION which is derived by requiring that the height of the water column below the body (the relevant dimension determining the hydrodynamic coefficients in MEEM) does not change by more than 10\% from its equilibrium value when the body is at its peak displacement. @@ -965,23 +997,23 @@ \subsubsection{Dynamic Limits and Design Load Cases} In both operational and storm states, the WEC surface should not transiently pierce the wave free surface, since this causes extremely high loads. This includes slamming (the bottom surface rises out of the water and impacts on reentry) and submersion (the top of the WEC becomes fully submerged). -The condition to prevent slamming and submersion in regular waves of height $H$ is derived in \cref{sec:appendix-slam}. -These limits depend on the phase of the response, not just the magnitude, so they do not use the quadratic coefficients of \cref{tab:qp-constraints} but can nonetheless be expressed in a quadratic form compatible with \cref{eq:opt-problem}: +The condition to prevent slamming and submersion in regular waves of height $H$ is derived in \Cref{sec:appendix-slam}. +These limits depend on the phase of the response, not just the magnitude, so they do not use the quadratic coefficients of \Cref{tab:qp-constraints} but can nonetheless be expressed in a quadratic form compatible with \Cref{eq:opt-problem}: \begin{equation}\label{eq:slam-constraint-quadratic} \hat{\xi}^*\hat{\xi} - H\Re(e^{iky}\hat{\xi}) < \Delta z^2-\left(\frac{H}{2}\right)^2 \end{equation} for relevant vertical body dimension $\Delta z$ and horizontal coordinate $y$. -The values of $\Delta z$ used for float and spar in operational and storm cases and the rationale (avoiding slanted-surface slamming, damping plate surfacing, and related effects) are given in \cref{sec:appendix-slam}. +The values of $\Delta z$ used for float and spar in operational and storm cases and the rationale (avoiding slanted-surface slamming, damping plate surfacing, and related effects) are given in \Cref{sec:appendix-slam}. \ifdefined\DISSERTATION - The values $h_{fs,\text{clear}}$, $h_{fs,\text{up}}$, $h_{fs,\text{down}}$, $\xi_{f,\text{linear}}$, and $\xi_{s,\text{linear}}$ are all upper limits and are independent of sea state, while $\xi_{\text{slam}}$ depends on the sea state and can separately act as both an upper and lower limit on the oscillation magnitude, as shown in \cref{sec:appendix-slam}. + The values $h_{fs,\text{clear}}$, $h_{fs,\text{up}}$, $h_{fs,\text{down}}$, $\xi_{f,\text{linear}}$, and $\xi_{s,\text{linear}}$ are all upper limits and are independent of sea state, while $\xi_{\text{slam}}$ depends on the sea state and can separately act as both an upper and lower limit on the oscillation magnitude, as shown in \Cref{sec:appendix-slam}. In early design studies that do not directly compute the hydrodynamic coefficients and associated power production, the amplitude limits proposed here could be plugged into Budal's upper bound, a common analytical expression that combines an upper bound on the excitation force with the maximum permissible body velocity to yield an upper bound on power production \cite{zou_practical_2023}. Note that the analysis of this section continues to use standard linear wave theory with equivalent regular waves, even for the storm condition. This is a questionable assumption, but it is necessary because optimization-suitable models for nonlinear wave forces do not currently exist. \Cref{sec:discussion} will discuss possible future alternatives to this modeling choice. \else - Both load cases use standard linear wave theory with equivalent regular waves, an approximation whose limitations and possible future alternatives are discussed in \cref{sec:unmodeled-effects}. + Both load cases use standard linear wave theory with equivalent regular waves, an approximation whose limitations and possible future alternatives are discussed in \Cref{sec:unmodeled-effects}. \fi % Todo: This \creftab:sea-state} is \hl{possibly out of date now:} @@ -1024,7 +1056,7 @@ \subsubsection{Irregular Waves}\label{sec:irregular-waves} % Approximation accuracy discussion. Trim closing clause for AOR. In the absence of dynamic constraints, the regular wave assumption does not significantly affect power production if the ultimate design utilizes a high-order linear controller capable of impedance matching over the bandwidth of each sea state. If the ultimate design instead utilizes a simple PI controller, the assumption slightly overestimates the power produced in a broadband wave environment. -A previous study using a Bretschneider spectrum found the irregular wave power generation for a point absorber with PI control to be around 92\% of the perfectly matched power \cite{coe_practical_2021}, which is sufficiently close to justify the approximation for early design phases without worrying about the complexity tradeoff of controller order. +\cite{coe_practical_2021} used a Bretschneider spectrum and found the irregular wave power generation for a point absorber with PI control to be around 92\% of the perfectly matched power, which is sufficiently close to justify the approximation for early design phases without worrying about the complexity tradeoff of controller order. \ifdefined\DISSERTATION Nonetheless, irregular time-domain transient peaks and the variation of hydrodynamic coefficients over the spectral width of each individual sea state are not considered. @@ -1032,7 +1064,7 @@ \subsubsection{Irregular Waves}\label{sec:irregular-waves} \Cref{sec:discussion} will discuss possible future extensions to incorporate irregular wave effects into the analysis. \else Transient peaks and spectral coefficient variation within sea states are not captured, so MDOcean likely underestimates sensitivity to peak force, power, and amplitude constraints. - Stochastic linearization is a candidate future extension; see \cref{sec:unmodeled-effects}. + Stochastic linearization is a candidate for future extension; see \Cref{sec:unmodeled-effects}. \fi %TC:break Structures @@ -1052,8 +1084,8 @@ \subsection{Structures}\label{sec:structures} the endurance limit assesses high-cycle fatigue. \fi -The factor of safety is directly calculated for the most heavily loaded subcomponent in each of the three components: the bottom plate in the float, the cylindrical shell of the spar, and the annular plate of the damping plate. -Thicknesses of other subcomponents are either held constant or scaled with the dimensions of subcomponents that are directly assessed, as outlined in \cref{tab:struct-calc-vs-scale}. +The factor of safety is directly calculated for the most heavily loaded subcomponent in each of the three components: the bottom plate in the float, the cylindrical shell of the spar, and the annular disc of the damping plate. +Thicknesses of other subcomponents are either held constant or scaled with the dimensions of subcomponents that are directly assessed, as outlined in \Cref{tab:struct-calc-vs-scale}. \ifdefined\DISSERTATION In the future, extending the structures module to directly calculate the factor of safety for each subcomponent would allow for more realistic structural design. \fi @@ -1062,16 +1094,16 @@ \subsection{Structures}\label{sec:structures} \centering \caption{Structural analysis methodology by subcomponent} \label{tab:struct-calc-vs-scale} -\begin{tabular}{ccc} +\begin{tabular}{M{0.15\linewidth} M{0.4\linewidth} M{0.3\linewidth}} \textbf{Component}& \textbf{Structural Subcomponent}& \textbf{Method of Analysis}\\ \hline - \multirow{5}{*}{\centering Float}& Bottom trapezoidal plate& Directly calculated\\ - & Top trapezoidal plate& Scaled from bottom plate\\ - & Radial rectangular plates& Scaled from bottom plate\\ - & Circumferential rectangular plates& Scaled from bottom plate\\ - & PTO connection tubes& Held constant\\ \hline + \multirow[c]{5}{*}{\centering Float}& \begin{itemize}\item Bottom trapezoidal plate\end{itemize}& Directly calculated\\ + & \begin{itemize}\item Top trapezoidal plate\end{itemize}& Scaled from bottom plate\\ + & \begin{itemize}\item Radial rectangular plate\end{itemize}& Scaled from bottom plate\\ + & \begin{itemize}\item Circumferential rectangular plates\end{itemize}& Scaled from bottom plate\\ + & \begin{itemize}\item PTO connection tubes\end{itemize}& Held constant\\ \hline Spar& Cylindrical shell& Directly calculated\\ \hline - \multirow{2}{*}{\centering Damping plate}& Annular plate& Directly calculated\\ - & Spar connection tubes& Held constant\\ + \multirow[c]{2}{*}{\centering Damping plate}& \begin{itemize}\item Annular plate\end{itemize}& Directly calculated\\ + & \begin{itemize}\item Spar connection tubes\end{itemize}& Held constant\\ \end{tabular} \end{table} @@ -1079,7 +1111,7 @@ \subsection{Structures}\label{sec:structures} \begin{figure}[t!] \centering -\includegraphics[width=0.5\linewidth]{figs/from-matlab/FBD.pdf} +\includegraphics[width=.9\linewidth]{figs/from-matlab/FBD.pdf} \caption{Applied loads and fixed points of each structure}\label{fig:FBDs} \end{figure} @@ -1094,7 +1126,7 @@ \subsection{Structures}\label{sec:structures} \fi The cylindrical shell of the spar is modeled as a short column under compression and hydrostatic hoop stress. -The column's short length requires an intermediate solution between pure compression and Euler buckling, a consideration that the original reference model design did not account for \cite{previsic_reference_2011}. +The column's short length requires an intermediate solution between pure compression and Euler buckling, a consideration that the original reference model design did not account for \citep{previsic_reference_2011}. The damping plate is a thin stiffened annular plate subject to a vertical distributed force on its bottom surface, reacted by the welded connection to the column along the column's circumference and by four welded tubular supports. \ifdefined\DISSERTATION @@ -1103,7 +1135,7 @@ \subsection{Structures}\label{sec:structures} Two analytical solutions for a fixed-inner-radius annular plate (distributed pressure and four point loads at the edge) are superimposed, with modifications for the stiffeners. \fi -Further details of all structural calculations performed in the simulation are provided in \cref{sec:appendix-structures}. +Further details of all structural calculations performed in the simulation are provided in \Cref{sec:appendix-structures}. For illustrative purposes only, assuming a fixed maximum stress and considering only dominant terms for geometries similar to the nominal design, the scaling of the required structural thicknesses with bulk dimensions simplifies to the following: \begin{equation}\label{eq:struct-scaling} \begin{aligned} @@ -1114,13 +1146,13 @@ \subsection{Structures}\label{sec:structures} \end{equation} \ifdefined\DISSERTATION - Since structural material scales linearly with both the thickness $t$ and the stiffener height $h_{\text{stiff}}$, the squaring of stiffener heights in \cref{eq:struct-scaling} means that increasing the stiffener height is generally more structurally efficient than increasing the thickness. + Since structural material scales linearly with both the thickness $t$ and the stiffener height $h_{\text{stiff}}$, the squaring of stiffener heights in \Cref{eq:struct-scaling} means that increasing the stiffener height is generally more structurally efficient than increasing the thickness. We therefore expect that an optimization would potentially drive the thicknesses to their minimum values, and thus it is also required to model the minimum value of $t/h_{\text{stiff}}$ for which the stiffened plate assumptions hold. - These limits are also derived in \cref{sec:appendix-structures}. + These limits are also derived in \Cref{sec:appendix-structures}. \else - Because structural material volume scales linearly in both $t$ and $h_{\text{stiff}}$, the squared dependence on stiffener height in \cref{eq:struct-scaling} implies that taller stiffeners are more material-efficient than thicker plates. + Because structural material volume scales linearly in both $t$ and $h_{\text{stiff}}$, the squared dependence on stiffener height in \Cref{eq:struct-scaling} implies that taller stiffeners are more material-efficient than thicker plates. Optimization therefore tends to drive thicknesses toward the minimum value of $t/h_{\text{stiff}}$ for which the stiffened-plate assumptions hold; - these limits are derived in \cref{sec:appendix-structures}. + these limits are derived in \Cref{sec:appendix-structures}. \fi %TC:break Economics @@ -1138,24 +1170,24 @@ \subsection{Economics}\label{sec:econ} \ifdefined\DISSERTATION The MDOcean economics model aims not to predict the precise cost breakdown of a given design but to accurately reflect the scaling of cost with design variables to facilitate design optimization and tradeoff analysis. With this in mind, the model lumps costs into categories that are either constant or scale with design, and the constant costs and scale factors are tuned to match more detailed cost breakdowns. - The cost data chosen for tuning is the RM3 Cost Breakdown Structure (CBS) \cite{neary_reference_2014} (\cref{tab:CBS} in \cref{sec:appendix-econ}). + The cost data chosen for tuning is the RM3 Cost Breakdown Structure (CBS) \cite{neary_reference_2014} (\Cref{tab:CBS} in \Cref{sec:appendix-econ}). \else The MDOcean economics model captures the scaling of cost with design variables rather than predicting absolute cost. - Constant and design-dependent cost categories are calibrated against the RM3 Cost Breakdown Structure (CBS) \cite{neary_reference_2014} (\cref{tab:CBS} in \cref{sec:appendix-econ}). + Constant and design-dependent cost categories are calibrated against the RM3 Cost Breakdown Structure (CBS) \citep{neary_reference_2014} (\Cref{tab:CBS} in \Cref{sec:appendix-econ}). \fi Two CBS categories scale with design: structural cost (category 1.4) scales linearly with the volume of structural material $V_{\text{struct}}$, and PTO cost (category 1.5) scales with the peak electrical power $P_{pk,\text{elec}}$ and the force limit $F_{\text{max}}$. -All other categories are held constant per device but decrease with the number of devices $N_{WEC}$ via a power law calibrated against the CBS estimates for $N_{WEC} = (1, 10, 50, 100)$ \cite{neary_reference_2014}. +All other categories are held constant per device but decrease with the number of devices $N_{WEC}$ via a power law calibrated against the CBS estimates for $N_{WEC} = (1, 10, 50, 100)$ \citep{neary_reference_2014}. \ifdefined\DISSERTATION Some cost components assumed constant in the model would scale with design in reality, and modifying the model to reflect this is an area for future work. For example, installation and decommissioning costs (categories 1.7 and 1.8) could scale with the device maximum dimension since a larger device requires a larger ship, but this is not included due to the difficulty of determining dimension thresholds. Likewise, the mooring and foundation costs (category 1.3) could scale with storm surge force, and the replacement parts and consumables costs (categories 2.5 and 2.6) could scale with the PTO power and force as the PTO capital costs do. \else - Several categories that would scale with design in reality (installation by device size, mooring by storm surge force, replacement parts and consumables by PTO ratings) are held constant here and flagged in \cref{sec:unmodeled-effects} as future work. + Several categories that would scale with design in reality (installation by device size, mooring by storm surge force, replacement parts and consumables by PTO ratings) are held constant here and flagged in \Cref{sec:unmodeled-effects} as future work. \fi -The chosen scalings are a power law for the number of devices to reflect economies of scale, direct proportionality between structural cost and material volume, and constant plus linear for the PTO cost since the main components of the PTO (generator, drivetrain, and structural support) are generally sized linearly with power and torque (\cref{sec:appendix-econ}). +The chosen scalings are a power law for the number of devices to reflect economies of scale, direct proportionality between structural cost and material volume, and constant plus linear for the PTO cost since the main components of the PTO (generator, drivetrain, and structural support) are generally sized linearly with power and torque (\Cref{sec:appendix-econ}). %the cheaper of the induction and permanent magnet machines is chosen with a torque threshold: % \begin{equation} % C_{gen} = \begin{cases} @@ -1173,7 +1205,7 @@ \subsection{Economics}\label{sec:econ} \end{equation} where $p_{P}$, $p_{F}$, and $p_{s}$ are the prices of power, force, and structural material in units of \$/kW, \$/N, and \$/m$^3$ respectively. -The per-WEC unit costs and prices $C_{\text{fixed}}$, $C_{pto,\text{constant}}$, $p_{P}$, $p_{F}$, and $p_{s}$ all decrease with the number of devices $N_{WEC}$ via a power law (\cref{eq:cost-power-law} in \cref{sec:appendix-econ}), with curve-fit parameters given in \cref{tab:econ-model-values}. +The per-WEC unit costs and prices $C_{\text{fixed}}$, $C_{pto,\text{constant}}$, $p_{P}$, $p_{F}$, and $p_{s}$ all decrease with the number of devices $N_{WEC}$ via a power law (\Cref{eq:cost-power-law} in \Cref{sec:appendix-econ}), with curve-fit parameters given in \Cref{tab:econ-model-values}. The total $CAPEX$ and $OPEX$ are found by multiplying the unit costs by the number of devices $N_{WEC}$. -For consistency with prior references \cite{neary_reference_2014,RM3}, all costs are intentionally kept in units of 2012 USD without adjusting for inflation. +For consistency with prior references \citep{neary_reference_2014,RM3}, all costs are intentionally kept in units of 2012 USD without adjusting for inflation. \ No newline at end of file diff --git a/pubs/applied-ocean-research-model/sections/other-appendices.tex b/pubs/applied-ocean-research-model/sections/other-appendices.tex index 910576a5e..ada7c9603 100644 --- a/pubs/applied-ocean-research-model/sections/other-appendices.tex +++ b/pubs/applied-ocean-research-model/sections/other-appendices.tex @@ -2,23 +2,44 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Additional Hydrodynamics Details} \label{sec:appendix-additional-hydro} -The hydrodynamic coefficients for the spar are calculated by fitting and interpolating data from WAMIT and reference \cite{olaya_hydrodynamic_2015}. -The data show the excitation and damping coefficients experiencing ``rebound'' effects where rather than slowly asymptoting to zero like those of a single cylinder, they go quickly to zero, increase to a peak, then slowly asymptote down to zero again. -The coefficients have the following form: -\begin{equation} +\subsection{Spar Coefficients} +As \Cref{sec:hydro-other} introduces, because of the importance of the damping plate, the spar hydrodynamic coefficients do utilize other methods besides MEEM. +We approximate the spar added mass coefficient $A_s$ as a frequency-independent quantity using a formula proposed by \cite{philip_damping_2012} based on the displaced water volume in the spherical projection of the damping plate: +\begin{equation}\label{eq:As} + A_s =\frac{1}{3}\rho_w D_d^3\left(1 - \frac{3}{4}r^2\sqrt{1-r^2} - \frac{1}{4}(1-\sqrt{1-r^2})^2(2+\sqrt{1-r^2})\right), +\end{equation} +where $r = D_s/D_d$. +This expression smoothly transitions from a pure plate limit ($\frac{1}{3}\rho_w D_d^3$ at $r=0$) to a pure column limit ($\frac{1}{6}\rho_w D_d^3$ at $r=1$). + +The other spar coefficients are calculated by fitting and interpolating data from WAMIT for the nominal design, then adjusting for known dimensional scalings based on differences from the nominal design. +To derive the dimensional scalings, we use the numerical results that \cite{olaya_hydrodynamic_2015} present for a variant of MEEM that incorporates the damping plate. +By plotting the data for a variety of geometries on a single plot and scaling the axes by dimensionless geometric ratios until the points begin to overlap as a single trend, +we empirically arrive at the following form for the excitation coefficient magnitude: +\begin{equation}\label{eq:scale-wamit} |\gamma_s| = \rho g \pi D_s^2/4 |H_0(kR_x)| \exp(-k e_1) kh \alpha \max(1,\alpha) -\sqrt{\frac{f(\frac{kh R_x \alpha^3}{\beta R_p})} - {\beta(1+\frac{\beta}{\alpha})}} +\sqrt{\frac{\Upsilon\left(\frac{kh R_x \alpha^3}{\beta R_p}\right)} + {\beta\left(1+\frac{\beta}{\alpha}\right)}} \end{equation} +where $\Upsilon(\cdot)$ indicates a nonlinear relationship to be interpolated from data, and $\alpha$, $\beta$, $e_1$, $R_p$, and $R_x$ are dimensions and nondimensional ratios defined in \citet{olaya_hydrodynamic_2015}. +\Cref{fig:olaya-hydro-data} shows this nonlinear relationship, which has collapsed remarkably well for the variety of $\alpha$ and $\beta$ values. +Case numbers in the legend refer to the numerical parameters used by \citet[Section~V.]{olaya_hydrodynamic_2015} +\begin{figure}[htbp] +\centering + \includegraphics[width=.8\linewidth]{figs/from-matlab/case4_v1_auto_case2_overlay_loglog_khRxRpa2b_fv1.pdf} +\caption{Nondimensionalized hydrodynamic data used to interpolate spar coefficients, showing the rebound effect.} +\label{fig:olaya-hydro-data} +\end{figure} +The dip at mid frequencies shows the excitation and damping coefficients experiencing ``rebound'' effects where rather than slowly asymptoting to zero like those of a single cylinder, they go quickly to zero, increase to a peak, then slowly asymptote down to zero again. +\subsection{Positive-definiteness} Computing the float coefficients in a different way than the spar and coupling coefficients introduces the possibility of violating physical requirements of the solution. In particular, the damping matrix must be positive definite because it represents a dissipative force where outgoing waves remove energy from the system, and the added mass matrix must be positive definite because it represents the kinetic energy of the fluid which must be non-negative. \begin{equation}\label{eq:open-loop-stabilty} - \det(\mathbf{A_{h,op}})=A_f A_s - A_c^2>0 \,, \quad - \det(\mathbf{B_{h,op}})=B_f B_s - B_c^2>0 + \det(\mathbf{A}_{h,op})=A_f A_s - A_c^2>0 \,, \quad + \det(\mathbf{B}_{h,op})=B_f B_s - B_c^2>0 \end{equation} This positive-definiteness may be violated for certain combinations of coefficients and can cause the system dynamics to become unstable. -Even when other forces such as body inertia, drag, friction, and control stabilize the system, violation of the conditions of \cref{eq:open-loop-stabilty} can artificially inflate power production. +Even when other forces such as body inertia, drag, friction, and control stabilize the system, violation of the conditions of \Cref{eq:open-loop-stabilty} can artificially inflate power production. These conditions must be checked for each sea state and the coefficients adjusted if needed. MDOcean chooses to decrease the magnitude of the coupling coefficients $|A_c|$ and $|B_c|$ if a violation occurs because the coupling coefficients are hypothesized to correlate less strongly than the float and spar coefficients with the float and spar dimensions respectively. This intends to lower the likelihood of creating saturation behavior (where a dimension can be perturbed without influencing power production) that could interfere with a gradient-based optimization routine. @@ -31,7 +52,7 @@ \section{Dynamics and Control Module Details} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{PTO Model Details} \label{sec:appendix-pto-model} -We next turn our attention to the PTO kinematics and dynamics, to specify the generic impedance matrix $\mathbf{Z}_p$ in \cref{eq:eom-freq-domain}. +We next turn our attention to the PTO kinematics and dynamics, to specify the generic impedance matrix $\mathbf{Z}_p$ in \Cref{eq:eom-freq-domain}. A PTO model must capture the dynamics of any elements that transmit, transduce, or condition power between the rigid-body mechanical energy and the end energy product, in this case electricity. Relevant dynamics include the inertia, stiffness, static friction, mechanical advantage, losses, and electromagnetic coupling of flywheels, shafts, springs, gears, hydraulic circuits, generators, and power electronics. Reference \cite{penalba_review_2016} reviews WEC PTO models and reference~\cite{coe_co-design_2025} synthesizes these into a multiport impedance matching network framework to facilitate control co-design. @@ -43,7 +64,7 @@ \subsection{PTO Model Details} \subsubsection{Multiport Circuit Conventions} \label{sec:appendix-multiport} -The intrinsic, powertrain, and Th\'evenin-equivalent representations used throughout \cref{sec:dynamics} are all instances of multiport circuit models, with effort variables $\vec{e}$ and flow variables $\vec{q}$ at each port. +The intrinsic, powertrain, and Th\'evenin-equivalent representations used throughout \Cref{sec:dynamics} are all instances of multiport circuit models, with effort variables $\vec{e}$ and flow variables $\vec{q}$ at each port. Following \cite{reveyrand_multiport_2018}, three matrix forms describe the relationships between port variables: impedance ($\mathbf{Z}$), cascade ($\mathbf{a}$, also called ABCD), and hybrid ($\mathbf{h}$): \begin{equation}\label{eq:multiport-matrix-definitions} \vec{e} = \mathbf{Z}\,\vec{q}, @@ -60,7 +81,7 @@ \subsubsection{Multiport Circuit Conventions} The three forms differ in how the ports are grouped: \begin{itemize} \item \textbf{Impedance} ($\mathbf{Z}$) groups all ports together, describing the effort required to produce a unit of flow. -The intrinsic dynamics matrix $\mathbf{Z}_i$ and the PTO impedance $\mathbf{Z}_p$ in \cref{eq:eom-freq-domain,eq:intrinsic-impedance} both use this form. +The intrinsic dynamics matrix $\mathbf{Z}_i$ and the PTO impedance $\mathbf{Z}_p$ in \Cref{eq:eom-freq-domain,eq:intrinsic-impedance} both use this form. \item \textbf{Cascade} ($\mathbf{a}$) divides the ports into two groups and describes how effort and flow transmit from one group to the other. The arrow subscript indicates direction: $[\mathbf{a}]_{2\leftarrow 1}$ maps port group 1 to port group 2. Reversing direction inverts the matrix, @@ -84,19 +105,19 @@ \subsubsection{Multiport Circuit Conventions} \subsubsection{Time-Domain Expansion of Instantaneous Power} \label{sec:appendix-power-time} -Equation~\eqref{eq:power-PQS} can be used to rewrite the instantaneous power $p(t)$ at any port as \cite{saadat_power_1999} +Equation~\eqref{eq:power-PQS} can be used to rewrite the instantaneous power $p(t)$ at any port as \citep{saadat_power_1999} \begin{equation}\label{eq:power-time-PQS} p(t) = P + |S|\cos\!\left(2(\omega t + \angle\hat{e}) - \tan^{-1}\!\left(\frac{Q}{P}\right)\right), \end{equation} a DC offset of $P$ plus an oscillation at $2\omega$ with amplitude $|S|$. -The average and peak powers in \cref{eq:power-avg-peak} follow directly: $p_{\text{avg}} = P$ since the oscillation averages to zero, and $p_{pk} = P + |S|$ at the cosine maximum. +The average and peak powers in \Cref{eq:power-avg-peak} follow directly: $p_{\text{avg}} = P$ since the oscillation averages to zero, and $p_{pk} = P + |S|$ at the cosine maximum. The minimum $p_{\text{min}} = P - |S|$ is negative when $|S|>P$, corresponding to instants when energy flows from the load back into the source under reactive control. %%%%%%%%%%%%%%% \subsubsection{Electrical-Port Power in Optimal-Control Variables} \label{sec:appendix-power-elec} -Expressing the average and peak powers at the electrical port in terms of the constrained-control parameters introduced in \cref{sec:optimal-control} (control damping $B_l$, control stiffness $K_l$, and current phasor $\hat{I}$), and applying the constant electrical efficiency $\eta$, +Expressing the average and peak powers at the electrical port in terms of the constrained-control parameters introduced in \Cref{sec:optimal-control} (control damping $B_l$, control stiffness $K_l$, and current phasor $\hat{I}$), and applying the constant electrical efficiency $\eta$, \begin{equation}\label{eq:power-elec} \begin{bmatrix} p_{avg,elec} \\ @@ -115,7 +136,7 @@ \subsubsection{Electrical-Port Power in Optimal-Control Variables} 1 + \sqrt{1 + \left(\tfrac{K_l}{B_l\omega}\right)^2} \end{bmatrix}. \end{equation} -The peak-power form is used as the apparent-power constraint in the QCQP of \cref{sec:optimal-control}. +The peak-power form is used as the apparent-power constraint in the QCQP of \Cref{sec:optimal-control}. %%%%%%%%%%%%%%% \subsubsection{PTO Kinematics and Underactuation} @@ -125,7 +146,7 @@ \subsubsection{PTO Kinematics and Underactuation} \vec{\hat{X}}_{PTO} = \mathbf{T}_{kin}~ \vec{\hat{\xi}} \end{equation} with kinematic transformation matrix $\mathbf{T}_{kin}$ that may depend on the body displacements $\vec{\hat{\xi}}$ if the linkages are nonlinear, but hereafter is assumed constant for simplicity. -This assumption means that \cref{eq:pto-kinematics-motion} can be differentiated trivially to yield the same matrix relationship for velocities. +This assumption means that \Cref{eq:pto-kinematics-motion} can be differentiated trivially to yield the same matrix relationship for velocities. Assuming power conservation across the linkages, the kinematics describe the relationship between not only motions but also forces: \begin{equation}\label{eq:pto-kinematics-force} \vec{\hat{F}}_p = [\mathbf{T}_{kin}]^T \vec{\hat{F}}_{PTO} @@ -134,9 +155,9 @@ \subsubsection{PTO Kinematics and Underactuation} \Cref{eq:pto-kinematics-motion,eq:pto-kinematics-force} imply rigid lossless massless linkages, and any linkage deflection, dissipation, and inertia would be included in the PTO dynamics rather than kinematics. Multibody WECs are frequently underactuated, meaning that the PTO has fewer controlled degrees of freedom than the hydrodynamic bodies, and $\mathbf{T}_{kin}$ has more columns than rows. -Underactuated systems receive considerable attention in robotics \cite{tedrake_underactuated_2024} but have only recently been explored in the context of wave energy conversion \cite{faedo_principle_2022}. -Cascade matrices require an identical number of input and output ports and thus cannot be used to describe the unbalanced ports that underactuated kinematics create \cite{reveyrand_multiport_2018}. -Non-square impedance matrices may be used to capture unbalanced port relations in general, but the impedance is undefined for the specific relations of \cref{eq:pto-kinematics-motion,eq:pto-kinematics-force}. +Underactuated systems receive considerable attention in robotics \citep{tedrake_underactuated_2024} but have only recently been explored in the context of wave energy conversion \citep{faedo_principle_2022}. +Cascade matrices require an identical number of input and output ports and thus cannot be used to describe the unbalanced ports that underactuated kinematics create \citep{reveyrand_multiport_2018}. +Non-square impedance matrices may be used to capture unbalanced port relations in general, but the impedance is undefined for the specific relations of \Cref{eq:pto-kinematics-motion,eq:pto-kinematics-force}. Instead, the kinematics can be packaged into a square hybrid matrix $[\mathbf{h}]_{kin}$ which accurately represents the underactuated system: \begin{equation}\label{eq:h-matrix-kinematics} \begin{bmatrix} @@ -161,17 +182,17 @@ \subsubsection{PTO Kinematics and Underactuation} \end{equation} Thus, even absent any mechanism with ``kinematics'' in the traditional sense, the kinematics matrix is filled with zeroes, ones, and negative ones to represent which degrees of freedom are controlled. -In the circuit representation with two hydrodynamic and one PTO degree of freedom, the hybrid matrix \cref{eq:h-matrix-kinematics} can be represented as a three-port element, as shown in \cref{fig:multiport-circuit-kinematics}. +In the circuit representation with two hydrodynamic and one PTO degree of freedom, the hybrid matrix \Cref{eq:h-matrix-kinematics} can be represented as a three-port element, as shown in \Cref{fig:multiport-circuit-kinematics}. \begin{figure}[htbp] \centering - \input{figs/tikz/circuit_kinematics.tikz} + \includegraphics[width=.7\linewidth]{figs/from-matlab/circuit_kinematics.pdf} \caption{Multiport circuit with powertrain kinematics represented as a hybrid matrix, followed by the Th\'{e}venin equivalent of the intrinsic dynamics and kinematics} \label{fig:multiport-circuit-kinematics} \end{figure} %%%%%%%%%%%%%%% \subsubsection{Combining Intrinsic Dynamics with PTO Kinematics} -Taking the Th\'{e}venin equivalent of the intrinsic dynamics and kinematics at the PTO port yields a scalar equivalent circuit for each PTO degree of freedom, with force sources $\vec{\hat{F}}_{th}$ and mechanical impedances $\vec{Z}_{i,th}$, shown in the bottom portion of \cref{fig:multiport-circuit-kinematics} and computed with the following expressions: +Taking the Th\'{e}venin equivalent of the intrinsic dynamics and kinematics at the PTO port yields a scalar equivalent circuit for each PTO degree of freedom, with force sources $\vec{\hat{F}}_{th}$ and mechanical impedances $\vec{Z}_{i,th}$, shown in the bottom portion of \Cref{fig:multiport-circuit-kinematics} and computed with the following expressions: \begin{equation} \begin{aligned} @@ -180,11 +201,15 @@ \subsubsection{Combining Intrinsic Dynamics with PTO Kinematics} \vec{Z}_{i,th} &= (-\mathbf{T}_{kin}\mathbf{Z}_{i}^{-1}\mathbf{T}_{kin}^T)^{-1} = -\frac{\det(\mathbf{Z}_{i})}{\Sigma \mathbf{Z}_{i}} = -\frac{Z_{i,f}Z_{i,s}-Z_{i,c}^2}{Z_{i,f}+Z_{i,s}+2Z_{i,c}} \end{aligned} \end{equation} -where the vector expressions for the general case are shown first, followed by the scalar result for the $\mathbf{T}_{kin}$ in \cref{eq:T-kin-specific} with 1 controlled degree of freedom. +where the vector expressions for the general case are shown first, followed by the scalar result for the $\mathbf{T}_{kin}$ in \Cref{eq:T-kin-specific} with 1 controlled degree of freedom. + +Although, as previously mentioned, a true cascade matrix must have the same number of input and output ports, it is possible to formulate a cascade-like matrix that can transform from the PTO port to the body ports. +However, it cannot transform in the other direction due to underactuation. -Although as previously mentioned a true cascade matrix must have the same number of input and output ports, it is possible to formulate a cascade-like matrix that can transform from the PTO port to the body ports, although it cannot transform in the other direction due to underactuation. -Even so, this matrix cannot transform to the body ports directly because due to the wave excitation, body velocities can be nonzero even when the PTO force and velocity are both zero, so there is no way to express $\hat{\dot{\xi}}$ as a weighted sum of $\hat{F}_{PTO}$ and $\dot{\hat{X}}_{PTO}$. -$\hat{\dot{\xi}}$ could be expressed as a function of the PTO variables by substituting $\mathbf{Z}_p=\mathbf{T}_{kin}^T (\vec{\hat{F}}_{PTO}/\vec{\hat{\dot{X}}}_{PTO}) \mathbf{T}_{kin}$ into \cref{eq:eom-freq-domain}, but this yields a nonlinear expression of limited utility. +Even in the favorable direction, this matrix cannot transform to the body ports directly. +Due to the wave excitation, body velocities can be nonzero even when the PTO force and velocity are both zero. +Hence, there is no way to express $\hat{\dot{\xi}}$ as a weighted sum of $\hat{F}_{PTO}$ and $\dot{\hat{X}}_{PTO}$. +$\hat{\dot{\xi}}$ could be expressed as a function of the PTO variables by substituting $\mathbf{Z}_p=\mathbf{T}_{kin}^T (\vec{\hat{F}}_{PTO}/\vec{\hat{\dot{X}}}_{PTO}) \mathbf{T}_{kin}$ into \Cref{eq:eom-freq-domain}, but this yields a nonlinear expression of limited utility. Instead, we can use cascade-like matrices to solve for a modified variable $\vec{\dot{\xi}}_\Delta$ defined as the change in the body velocities caused by the PTO, in other words the difference between the actual body velocities $\vec{\dot{\xi}}$ and their values if the PTO were disconnected with $F_{PTO}=0$, $\vec{\dot{\xi}}_{0}$: \begin{equation}\label{eq:modified-body-velocity} \vec{\dot{\xi}}_\Delta = \vec{\dot{\xi}} - \vec{\dot{\xi}}_{0} @@ -253,7 +278,7 @@ \subsubsection{PTO Dynamics} , \qquad Z_u = \frac{\tau}{\Omega}% = B_u + \frac{K_u}{s} \end{equation} -Combining \cref{eq:controller-impedances,eq:elec-transmission-matrix} gives the following expression for $Z_u$ as a function of $Z_l$: +Combining \Cref{eq:controller-impedances,eq:elec-transmission-matrix} gives the following expression for $Z_u$ as a function of $Z_l$: \begin{equation}\label{eq:control-impedance} Z_u = \frac{ @@ -275,7 +300,7 @@ \subsubsection{PTO Dynamics} } \end{equation} This equation allows the $Z_l$ identified with optimal control to be implemented as a corresponding $Z_u$ in hardware. -%Incorporating \cref{eq:mech-transmission-matrix} yields the Th\'{e}venin equivalent scalar PTO impedance at the hydrodynamic body port: +%Incorporating \Cref{eq:mech-transmission-matrix} yields the Th\'{e}venin equivalent scalar PTO impedance at the hydrodynamic body port: % \begin{equation}\label{eq:pto-impedance} % Z_{PTO,th} = % \frac{ @@ -299,10 +324,10 @@ \subsubsection{PTO Dynamics} % \end{equation} % which is useful for calculating the mechanical response of each body. -The PTO dynamics can be represented as a multiport circuit, as shown in \cref{fig:multiport-circuit-pto}. +The PTO dynamics can be represented as a multiport circuit, as shown in \Cref{fig:multiport-circuit-pto}. \begin{figure}[htbp] \centering - \input{figs/tikz/circuit_pto.tikz} + \includegraphics{figs/from-matlab/circuit_pto.pdf} \caption{PTO dynamics represented as a multiport circuit and electrical Th\'{e}venin equivalent} \label{fig:multiport-circuit-pto} \end{figure} @@ -320,7 +345,7 @@ \subsubsection{PTO Dynamics} \qquad \hat{V}_{s,th} = \hat{F}_{th}(A-CZ_{s,th}) \end{equation} where $A,B,C,D$ are the elements of $\mathbf{a}_{VI \leftarrow F\dot{X}}$. -This is shown in the bottom portion of \cref{fig:multiport-circuit-pto}. +This is shown in the bottom portion of \Cref{fig:multiport-circuit-pto}. The load voltage and current can then be found as: \begin{equation}\label{eq:voltage-current} \hat{V} = \hat{V}_{s,th}\frac{Z_l}{Z_{s,th}+Z_l}, \qquad \hat{I} = \frac{\hat{V}_{s,th}}{Z_{s,th}+Z_l} @@ -329,51 +354,52 @@ \subsubsection{PTO Dynamics} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Linear Solution Procedure} \label{sec:appendix-dynamics-solution} -\Cref{sec:eom,sec:pto-dynamics-overview} introduced linear models for the rigid body dynamics, PTO kinematics, and PTO dynamics using impedance, hybrid, and cascade matrices respectively. +\Cref{sec:eom,sec:pto-dynamics-overview} introduce linear models for the rigid body dynamics, PTO kinematics, and PTO dynamics using impedance, hybrid, and cascade matrices respectively. Here we unify the formulation and present a clear system-level solution procedure for all port variables: \begin{enumerate} -\item Use \cref{eq:thevenin-electrical} to assemble the Th\'{e}venin source voltage and impedance $\hat{V}_{s,th}$ and $Z_{s,th}$ as seen from the port on which power should be maximized (in this case, the electrical generator port $\{V,I\}$). +\item Use \Cref{eq:thevenin-electrical} to assemble the Th\'{e}venin source voltage and impedance $\hat{V}_{s,th}$ and $Z_{s,th}$ as seen from the port on which power should be maximized (in this case, the electrical generator port $\{V,I\}$). \item Set the load impedance $Z_l$. Any load impedance can be simulated, but typically it is selected as a function of $Z_s$ to maximize the power at this port, possibly subject to constraints on various ports. \Cref{sec:optimal-control} frames the load impedance selection as a constrained optimization problem. -\item From $\hat{V}_{s,th}$, $Z_{s,th}$, and $Z_l$, calculate the $\{V,I\}$ port variables from \cref{eq:voltage-current}. -\item Use cascade matrices \cref{eq:mech-transmission-matrix,eq:elec-transmission-matrix,eq:body-transmission-matrix} to propagate the variables back toward the rigid body, yielding the $\{\tau,\Omega\}$, $\{F_{PTO},\dot{X}_{PTO}\}$, and $\{F_p, \dot{\xi}_\Delta\}$ port variables. -\item Transform from $\dot{\xi}_\Delta$ to $\dot{\xi}$ via \cref{eq:modified-body-velocity}. +\item From $\hat{V}_{s,th}$, $Z_{s,th}$, and $Z_l$, calculate the $\{V,I\}$ port variables from \Cref{eq:voltage-current}. +\item Use cascade matrices \Cref{eq:mech-transmission-matrix,eq:elec-transmission-matrix,eq:body-transmission-matrix} to propagate the variables back toward the rigid body, yielding the $\{\tau,\Omega\}$, $\{F_{PTO},\dot{X}_{PTO}\}$, and $\{F_p, \dot{\xi}_\Delta\}$ port variables. +\item Transform from $\dot{\xi}_\Delta$ to $\dot{\xi}$ via \Cref{eq:modified-body-velocity}. \end{enumerate} -Once all the port variables have been calculated, power at each port can be calculated according to \cref{sec:power}. +Once all the port variables have been calculated, power at each port can be calculated according to \Cref{sec:power}. This serves as the solution to a linear subproblem, which is then re-solved using updated quasi-linear coefficients until drag and force saturation nonlinearities have converged. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{Indirect Optimal Control Solution Procedure} -\label{sec:appendix-qp-numerical} -The indirect optimal control approach applies optimality conditions and then numerically solves the resulting equations. -The optimality conditions depend on the active set of constraints. -In the most straightforward case where just one constraint exists, the constraint is active if and only if the unconstrained solution violates that constraint. -For example, if only a maximum force constraint exists, the constrained solution has a force $\hat{F}_{p,\text{constr}}$ that is the minimum of the unconstrained force $\hat{F}_{p,\text{unconstrained}}$ and the maximum allowed force fundamental $F_{\text{max}}$: -\begin{equation} -\hat{F}_{p,constr} = \min\left(\hat{F}_{p,unconstrained}, F_{max}\right) -\end{equation} -The solver guesses a value of $\Gamma$, calculates the resulting force $\hat{F}_{p,\text{guess}}$, and then uses $\hat{F}_{p,\text{guess}}-\hat{F}_{p,\text{constr}}$ as an error signal to adjust its next guess of $\Gamma$, iterating until the error converges to zero. -This solver-based optimal control performs numerical root-finding, not numerical optimization, and can happen in an inner loop of the drag-linearization solver iteration (where $\hat{F}_{p,\text{unconstrained}}$ stays constant each control iteration) or simultaneously with the drag-linearization iteration (where $\hat{F}_{p,\text{unconstrained}}$ and the system linearization are updated each control iteration). -MDOcean implements the latter, which simplifies the setup by requiring only one solver. -Comparing the efficiency of the two approaches is left for future work. - -When multiple constraints exist, the situation is more complex, since it is possible for a given constraint to be violated by the unconstrained solution but not active in the constrained solution, or for multiple constraints to be active simultaneously. -In the special case where the unconstrained solution violates no more than one constraint, that constraint is active and the solver can proceed as described above. -When the unconstrained solution violates multiple constraints, the solver must try all subsets of 1-2 of those constraint(s) as the active set, find which of these active sets produces the largest power while satisfying all constraints, and then set the error as the deviation of the guessed solution from the constrained solution for that active set. -Since the active set cannot be calculated a-priori as in the simpler case, this approach ends up looking more like a numerical optimization than a numerical root-finding, although the optimization is over a finite set of possibilities instead of a continuous domain. -The main advantage of the indirect approach is its ability to handle nonlinear constraints, although for the quadratic constraints considered here, the analytical approach described in \cref{sec:appendix-qp-solution} is more efficient. - +\ifdefined\DISSERTATION + \subsection{Indirect Optimal Control Solution Procedure} + \label{sec:appendix-qp-numerical} + The indirect optimal control approach applies optimality conditions and then numerically solves the resulting equations. + The optimality conditions depend on the active set of constraints. + In the most straightforward case where simply one constraint exists, the constraint is active if and only if the unconstrained solution violates that constraint. + For example, if only a maximum force constraint exists, the constrained solution has a force $\hat{F}_{p,\text{constr}}$ that is the minimum of the unconstrained force $\hat{F}_{p,\text{unconstrained}}$ and the maximum allowed force fundamental $F_{\text{max}}$: + \begin{equation} + \hat{F}_{p,constr} = \min\left(\hat{F}_{p,unconstrained}, F_{max}\right) + \end{equation} + The solver guesses a value of $\Gamma$, calculates the resulting force $\hat{F}_{p,\text{guess}}$, and then uses $\hat{F}_{p,\text{guess}}-\hat{F}_{p,\text{constr}}$ as an error signal to adjust its next guess of $\Gamma$, iterating until the error converges to zero. + This solver-based optimal control performs numerical root-finding, not numerical optimization, and can happen in an inner loop of the drag-linearization solver iteration (where $\hat{F}_{p,\text{unconstrained}}$ stays constant each control iteration) or simultaneously with the drag-linearization iteration (where $\hat{F}_{p,\text{unconstrained}}$ and the system linearization are updated each control iteration). + MDOcean implements the latter, which simplifies the setup by requiring only one solver. + Comparing the efficiency of the two approaches is left for future work. + + When multiple constraints exist, the situation is more complex, since it is possible for a given constraint to be violated by the unconstrained solution but not active in the constrained solution, or for multiple constraints to be active simultaneously. + In the special case where the unconstrained solution violates no more than one constraint, that constraint is active and the solver can proceed as described above. + When the unconstrained solution violates multiple constraints, the solver must try all subsets of 1-2 of those constraint(s) as the active set, find which of these active sets produces the largest power while satisfying all constraints, and then set the error as the deviation of the guessed solution from the constrained solution for that active set. + Since the active set cannot be calculated a-priori as in the simpler case, this approach ends up looking more like a numerical optimization than a numerical root-finding, although the optimization is over a finite set of active set possibilities instead of a continuous control domain as it would be in a direct optimal control method. + The main advantage of the indirect approach is its ability to handle arbitrary nonlinear\footnote{Nonlinear meaning greater than second order in an optimization sense, not in a dynamic sense, because the dynamics are already quasi-linearized here} constraints, although for the quadratic constraints considered here, the analytical approach described in \Cref{sec:appendix-qp-solution} is more efficient. +\fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Analytical Quadratic Program for Constrained Power Maximization} \label{sec:appendix-qp-solution} -This section describes the solution process for the constrained optimal control problem \cref{eq:opt-problem} introduced in \cref{sec:optimal-control}. +This section describes the analytical solution process for the constrained optimal control problem \Cref{eq:opt-problem} introduced in \Cref{sec:optimal-control}. %%%%%%%%%%%%%%% \subsubsection{Quadratic Constraint Coefficients} \label{sec:appendix-qp-constraints-table} -The quadratic coefficients $\{\mathbf{Q}_i, \vec{a}_i, b_i\}$ in \cref{eq:opt-problem} for each constraint implemented in MDOcean are given in \cref{tab:qp-constraints}. +The quadratic coefficients $\{\mathbf{Q}_i, \vec{a}_i, b_i\}$ in \Cref{eq:opt-problem} for each constraint implemented in MDOcean are given in \Cref{tab:qp-constraints}. \begin{table}[b!] \centering @@ -432,12 +458,12 @@ \subsubsection{Reduced Dimension Formulation} \textrm{null space } \vec{n}} \end{equation} where $\Gamma$ is a nondimensional complex scalar representing the remaining degree of freedom in the optimization after enforcing the equality constraint. -For the particular solution, we have chosen to use the optimal solution in the absence of inequality constraints, which is identical to the solution implied by the impedance-matching condition \cref{eq:matched-load} and can be derived from the quadratic program as follows: +For the particular solution, we have chosen to use the optimal solution in the absence of inequality constraints, which is identical to the solution implied by the impedance-matching condition \Cref{eq:matched-load} and can be derived from the quadratic program as follows: \begin{equation}\label{eq:x-p} \vec{x}_{p} = \frac{d \mathbf{A}_P\vec{c}}{\vec{c}^{\,*}\mathbf{A}_P\vec{c}} \end{equation} This selection for $\vec{x}_p$ means that the degree of freedom $\Gamma$ represents the deviation of the solution from the impedance-matched solution. -Using $\hat{I}_p$ for brevity to denote the current in the particular solution, \cref{eq:x-p-plus-nullspace} can be rewritten as: +Using $\hat{I}_p$ for brevity to denote the current in the particular solution, \Cref{eq:x-p-plus-nullspace} can be rewritten as: \begin{equation}\label{eq:x-p-plus-nullspace-simplified} \vec{x} = \vec{x}_p - \Gamma \hat{I}_p \vec{n} %&= \begin{bmatrix} @@ -449,9 +475,9 @@ \subsubsection{Reduced Dimension Formulation} Inequality constraints $\vec{x}^{\,*}\mathbf{Q}_\mu\vec{x} + 2\Re\!\left\{\vec{a}_\mu^{\,*}\vec{x}\right\} \le b_\mu$ -further reduce the feasible design space, and the presence of multiple inequality constraints introduces the possibility of \cref{eq:opt-problem} having no solutions due to infeasibility. -While constrained quadratic programs like \cref{eq:opt-problem} generally require numerical solutions, the low dimensionality allows an analytical solution with geometric intuition, even if the problem is non-convex (see \cref{sec:appendix-qp-convexity} for a discussion on convexity). -First, we rewrite the objective and inequality constraints in terms of $\Gamma$ by plugging \cref{eq:x-p-plus-nullspace-simplified} into \cref{eq:opt-problem}: +further reduce the feasible design space, and the presence of multiple inequality constraints introduces the possibility of \Cref{eq:opt-problem} having no solutions due to infeasibility. +While constrained quadratic programs like \Cref{eq:opt-problem} generally require numerical solutions, the low dimensionality allows an analytical solution with geometric intuition, even if the problem is non-convex (see \Cref{sec:appendix-qp-convexity} for a discussion on convexity). +First, we rewrite the objective and inequality constraints in terms of $\Gamma$ by plugging \Cref{eq:x-p-plus-nullspace-simplified} into \Cref{eq:opt-problem}: \begin{subequations}\label{eq:obj-inequality-gamma} \begin{align} P_{avg,VI} @@ -468,7 +494,7 @@ \subsubsection{Reduced Dimension Formulation} \label{eq:ineq-gamma} \end{align} \end{subequations} -where quadratic coefficients $A_{q,\mu}$, $B_{q,\mu}$, and $C_{q,\mu}$ from \cref{eq:ineq-gamma} are defined as: +where quadratic coefficients $A_{q,\mu}$, $B_{q,\mu}$, and $C_{q,\mu}$ from \Cref{eq:ineq-gamma} are defined as: \begin{equation} \begin{aligned} A_{q,\mu} &= |\hat{I}_p|^{2}, @@ -483,10 +509,10 @@ \subsubsection{Reduced Dimension Formulation} &\in \mathbb{R} \end{aligned} \end{equation} -Since \cref{eq:obj-gamma} shows that power decreases with increasing $|\Gamma|$, the power maximization problem \cref{eq:opt-problem} can be recast as minimizing the norm of $\Gamma$: +Since \Cref{eq:obj-gamma} shows that power decreases with increasing $|\Gamma|$, the power maximization problem \Cref{eq:opt-problem} can be recast as minimizing the norm of $\Gamma$: \begin{subequations}\label{eq:opt-problem-gamma} \begin{alignat}{2} -& \min_{\Gamma \in \mathbb{C}} & |\Gamma|& \\[3pt] +& \min_{\Gamma \in \mathbb{C}} & |\Gamma|^2& \\[3pt] & \text{s.t.} & S_{\mu}|\Gamma - \Gamma_{c,\mu}|^2 &\le S_{\mu} r_{\mu}^2, \quad \forall \mu \label{eq:disc-constraint}\\ @@ -496,7 +522,7 @@ \subsubsection{Reduced Dimension Formulation} & & S_{\mu} &\in \left\{-1,1\right\} \nonumber \end{alignat} \end{subequations} -where the constraint \cref{eq:disc-constraint} is derived from \cref{eq:ineq-gamma} by completing the square. +where the constraint \Cref{eq:disc-constraint} is derived from \Cref{eq:ineq-gamma} by completing the square. More precisely, when $A_{q,\mu} \neq 0$, the $\mu$th inequality constraint defines a circle in the complex plane of $\Gamma$ centered at $\Gamma_{c,\mu}$ with radius $r_{\mu}$. The constraint requires that $\Gamma$ lie within this circle when $A_{q,\mu} > 0$ ($S_{\mu}=1$) or outside this circle when $A_{q,\mu} < 0$ ($S_{\mu}=-1$). Parameters $\Gamma_{c,\mu}$, $r_{\mu}$, and $S_{\mu}$ are defined as: @@ -539,7 +565,7 @@ \subsubsection{Reduced Dimension Formulation} %%%%%%%%%%%%%%% \subsubsection{Solution} \Cref{eq:opt-problem-gamma} can be interpreted graphically as finding the point closest to the origin that is interior to all constraint circles for which $S_{\mu}=1$ and exterior to all circles for which $S_{\mu}=-1$. -The unconstrained optimal solution of \cref{eq:opt-problem-gamma} is the origin ($\Gamma=0$), and the constrained optimal solution will also be zero in the case where the origin is feasible (no active constraints), which occurs when $ S_{\mu} C_{q,\mu} \leq 0 \quad \forall \mu$. +The unconstrained optimal solution of \Cref{eq:opt-problem-gamma} is the origin ($\Gamma=0$), and the constrained optimal solution will also be zero in the case where the origin is feasible (no active constraints), which occurs when $ S_{\mu} C_{q,\mu} \leq 0 \quad \forall \mu$. If the origin is infeasible, the constrained optimal solution will lie on the boundary of one or more of the circles, specifically either at an intersection of two or more circles or at any circle's point closest to the origin. We analytically compute all such candidate points and select the one with the lowest $|\Gamma|$ that satisfies all constraints. For $N$ constraints, there are up to $N^2$ candidate points ($N^2-N$ at intersections and $N$ at closest points). @@ -579,28 +605,28 @@ \subsubsection{Solution} $a_{\mu\nu} = \frac{1}{2}(r_{\mu}^2-r_{\nu}^2+d_{\mu\nu}^2)/d_{\mu\nu}$ is the distance from the center of the $\mu$th circle to the midpoint of the two intersection points, and $1i$ is the imaginary unit. -The closest-point candidates $\mathcal{C}_{cl}$ match \cref*{eq:circle-intersection}~4 of \cite{mccabe_force-limited_2024}, +The closest-point candidates $\mathcal{C}_{cl}$ match \equationautorefname~4 of \cite{mccabe_force-limited_2024}, which provides the solution for problems with only one constraint. Importantly, we need not compute the entire feasible space $\mathcal{F}$, only compute $\mathcal{C}$ and then check whether each candidate point is feasible. \Cref{fig:qp-solution-geometry} illustrates the various cases for feasibility and optimality for a toy problem with $r_{\mu}=4$, $S_{\mu}=1$, and various $\Gamma_{c,\mu}$. \begin{figure}[htbp] \centering - \includegraphics[width=\textwidth]{figs/manual/qp_circles.pdf} - \caption{Visualization of the optimization problem \cref{eq:opt-problem-gamma} in the complex plane of $\Gamma$. -Toy problems with various constraint circle centers $\Gamma_{c,\mu}$, all with radius $r_{\mu}=4$ and $S_{\mu}=1$, demonstrate the various solution cases in \cref{eq:gamma-opt-quadratic}.} + \includegraphics[width=.8\textwidth]{figs/from-matlab/qp_circles.pdf} + \caption{Visualization of the optimization problem \Cref{eq:opt-problem-gamma} in the complex plane of $\Gamma$. +Toy problems with various constraint circle centers $\Gamma_{c,\mu}$, all with radius $r_{\mu}=4$ and $S_{\mu}=1$, demonstrate the various solution cases in \Cref{eq:gamma-opt-quadratic}.} \label{fig:qp-solution-geometry} \end{figure} If $A_{q,\mu} = 0$ for any $\mu$, the $\mu$th inequality constraint defines a line in the complex plane of $\Gamma$ rather than a circle. -This can occur when $\mathbf{Q}_{\mu} = 0$ (the constraint on $\vec{x}$ is linear rather than quadratic, which is not the case for any of the constraints in \cref{tab:qp-constraints}) or when $\vec{n}^{\, *}\mathbf{Q}_{\mu}\vec{n} = 0$ ($\mathbf{Q}_{\mu}$ is rank-deficient and $\vec{n}$ is in its nullspace). +This can occur when $\mathbf{Q}_{\mu} = 0$ (the constraint on $\vec{x}$ is linear rather than quadratic, which is not the case for any of the constraints in \Cref{tab:qp-constraints}) or when $\vec{n}^{\, *}\mathbf{Q}_{\mu}\vec{n} = 0$ ($\mathbf{Q}_{\mu}$ is rank-deficient and $\vec{n}$ is in its nullspace). The same types of critical points (now consisting of line-line, circle-line, and circle-circle intersections, as well as the closest point on each circle and line) apply, but for implementation simplicity, we replace $A_{q,\mu}$ with a small positive $\epsilon$ in this case and use the quadratic implementation. %%%%%%%%%%%%%%% \subsubsection{Quartic Apparent Power Constraints} \label{sec:appendix-mag-S-constraints} While constraints on effort and flow magnitudes and real and reactive power are quadratic in $\vec{x}$, constraints on the magnitude of apparent power $|S|<|S_{\text{max}}|$, and therefore the maximum and minimum instantaneous power, are fourth-order in $\vec{x}$ and thus $\Gamma$. -This results in a ``Cassini oval'' curve on the complex plane of $\Gamma$, which consists of two closed curves when $|S_{\text{max}}|<|S_0|$ and one curve when $|S_{\text{max}}|\geq|S_0|$, where $|S_0|$ is the apparent power of the unconstrained optimum \cite{weisstein_cassini_2026}. +This results in a ``Cassini oval'' curve \citep{weisstein_cassini_2026} on the complex plane of $\Gamma$, which consists of two closed curves when $|S_{\text{max}}|<|S_0|$ and one curve when $|S_{\text{max}}|\geq|S_0|$, where $|S_0|$ is the apparent power of the unconstrained optimum. Though the optimization is no longer a quadratically constrained quadratic program, the same geometric solution procedure applies, adding circle-oval intersections $\mathcal{C}_{int,\text{oval}-\text{circ}}$, oval-oval intersections, and oval closest points $\mathcal{C}_{cl,\text{oval}}$ to the set of candidate points $\mathcal{C}$. The new candidate points are: \begin{equation} @@ -620,15 +646,16 @@ \subsubsection{Quartic Apparent Power Constraints} \end{aligned} \end{equation} where $\mu$ indexes circle constraints and $k$ indexes oval constraints. -While the earlier circle-circle intersections \cref{eq:candidate-points} result in a quadratic equation that is solved analytically for the coordinates of $\Gamma$, oval-circle intersections lead to quartic equations that are solved numerically with standard polynomial root-finding routines. -We currently assume there is only one apparent power constraint, so oval-oval intersections are not derived, but if present would likewise yield a fourth-order polynomial in $\Gamma$. +While the earlier circle-circle intersections of \Cref{eq:candidate-points} result in a quadratic equation that is solved analytically for the coordinates of $\Gamma$, oval-circle intersections lead to quartic equations that are solved numerically with standard polynomial root-finding routines. +Typically there is only one apparent power constraint, so oval-oval intersections are not derived, but if present would likewise yield a fourth-order polynomial in $\Gamma$. +Therefore, the presence of apparent power constraints makes the optimal control method semi-analytical rather than analytical. %%%%%%%%%%%%%%% \subsubsection{Extension to Higher Dimensions and Convexity} \label{sec:appendix-qp-convexity} -Future work may wish to extend the constrained power maximization to the full nonlinear dynamics, or to linear dynamics with irregular wave forcing as in the study \cite{bacelli_numerical_2015}. -In the terminology of \cref{fig:venn-diagram}, these would be known as nonlinear and linear spectral optimal control respectively. -Both of these cases solve the full harmonic-balance equation, producing a higher-dimensional analog of \cref{eq:opt-problem-gamma}. +Future work may wish to extend the constrained power maximization to the full nonlinear dynamics, or to linear dynamics with irregular wave forcing as in the study by \cite{bacelli_numerical_2015}. +In the terminology of \Cref{fig:venn-diagram}, these would be known as nonlinear and linear spectral optimal control respectively. +Both of these cases solve the full harmonic-balance equation, producing a higher-dimensional analog of \Cref{eq:opt-problem-gamma}. The problem dimension equals twice the number of frequencies retained in the spectral expansion, preventing the use of the geometric analytical solution used in the monochromatic case. Instead, a numerical solver must be used, and the computational scaling of that solver depends critically on whether the problem is \emph{convex}. @@ -636,43 +663,43 @@ \subsubsection{Extension to Higher Dimensions and Convexity} The key practical implication is that any locally optimal solution is also globally optimal, so gradient-based solvers converge to the true optimum without exhaustive search, and solution time scales polynomially with the number of decision variables rather than exponentially. After reducing to the $\Gamma$ parameterization, the power objective $|\Gamma|^2$ is a sum of squares and therefore convex. -Even though the original power matrix $\mathbf{A}_P$ (see \cref{tab:power-metrics}) has eigenvalues $\{-1,1\}$ and is indefinite, \cite{bacelli_numerical_2015} shows that substituting the linear dynamics equality constraint into the objective---which is exactly what the reduction to $\Gamma$ in \cref{eq:obj-gamma} accomplishes---renders the objective convex for both regular and irregular wave forcing. +Even though the original power matrix $\mathbf{A}_P$ (see \Cref{tab:power-metrics}) has eigenvalues $\{-1,1\}$ and is indefinite, \citet{bacelli_numerical_2015} show that substituting the linear dynamics equality constraint into the objective---which is exactly what the reduction to $\Gamma$ in \Cref{eq:obj-gamma} accomplishes---renders the objective convex for both regular and irregular wave forcing. Nonlinear dynamics can reintroduce non-convexity and should be checked on a case-by-case basis. The inequality constraints are more problematic. A constraint is convex if the set of points satisfying it forms a convex region. -In the $\Gamma$ plane, a convex constraint corresponds to a circle whose feasible region is the \emph{interior} ($S_\mu=1$ in \cref{eq:disc-constraint}), while a non-convex constraint corresponds to a circle whose feasible region is the \emph{exterior} ($S_\mu=-1$). -Constraints on the effort and flow magnitude (e.g., force limits $|\hat{F}|\leq F_{\text{max}}$) can be convex or non-convex, depending on the complex angle of the Th\'{e}venin equivalent impedance of the relevant source impedance and on the ratio of the constraint limit to its unconstrained value. -Reference \cite{mccabe_force-limited_2024} visualizes the feasible regions for families of such constraints on the complex $\Gamma$ plane. -It shows that the constraints are always convex for purely real impedances; that for reactive plants, nonconvexities occur when the value of the constraint limit exceeds some threshold; and that this threshold lowers as the reactivity increases. -The quadratic matrices $\mathbf{Q}$ in \cref{tab:qp-constraints} confirm this: $\mathbf{A}_{|\hat{q}|^2}$ and $\mathbf{A}_{|\hat{e}|^2}$ are only positive \emph{semi}definite, indicating constraints that define half-spaces rather than bounded ellipsoids. -For the 2D problem studied here, non-convexity is handled by the exhaustive enumeration of candidate points in \cref{eq:gamma-opt-quadratic}, which is efficient in two dimensions but does not scale to higher dimensions. -Future work should investigate semidefinite relaxations of these non-convex constraints using the S-procedure \cite{vanantwerp_tutorial_2000}, which replaces each non-convex constraint with a conservative but convex outer approximation. +In the $\Gamma$ plane, a convex constraint corresponds to a circle whose feasible region is the \emph{interior} ($S_\mu=1$ in \Cref{eq:disc-constraint}), while a non-convex constraint corresponds to a circle whose feasible region is the \emph{exterior} ($S_\mu=-1$). +Constraints on the effort and flow magnitude (e.g., force limits $|\hat{F}|\leq F_{\text{max}}$) can be convex or non-convex, depending on the complex angle of the Th\'{e}venin equivalent of the relevant source impedance and on the ratio of the constraint limit to its unconstrained value. +\citet{mccabe_force-limited_2024} visualize the feasible regions for families of such constraints on the complex $\Gamma$ plane. +They show that the constraints are always convex for purely real impedances; that for reactive plants, nonconvexities occur when the value of the constraint limit exceeds some threshold; and that this threshold lowers as the reactivity increases. +The quadratic matrices $\mathbf{Q}$ in \Cref{tab:qp-constraints} confirm this: $\mathbf{A}_{|\hat{q}|^2}$ and $\mathbf{A}_{|\hat{e}|^2}$ are only positive \emph{semi}definite, indicating constraints that define half-spaces rather than bounded ellipsoids. +For the 2D problem studied here, non-convexity is handled by the exhaustive enumeration of candidate points in \Cref{eq:gamma-opt-quadratic}, which is efficient in two dimensions but does not scale to higher dimensions. +Future work should investigate semidefinite relaxations of these non-convex constraints using the S-procedure \citep{vanantwerp_tutorial_2000}, which replaces each non-convex constraint with a conservative but convex outer approximation. It is expected that the optimal design will have low reactivity because reactivity increases signal peak-to-average ratios, implying that a semi-definite relaxation would likely improve in accuracy as it approaches the optimal. %%%%%%%%%%%%%%% \subsubsection{Comparison to Other WEC Constrained Control Formulations} Notably, $\Gamma$ is equal to the reflection coefficient at the generator electrical port, which is commonly used in microwave circuit design to quantify impedance mismatch. -References \cite{mccabe_force-limited_2024,coe_co-design_2025} further discuss the reflection coefficient for WECs. +\citet{mccabe_force-limited_2024,coe_co-design_2025} further discuss the reflection coefficient for WECs. Similar graphical interpretations of constraints for wave energy converters are presented in the studies \cite{mccabe_force-limited_2024,merigaud_geometrical_2023,bacelli_geometric_2013}, with all three visualizing quadratic constraints as circles on the 2D plane. -Reference \cite{mccabe_force-limited_2024} focuses on force/current limits but discusses amplitude, phase voltage, and apparent power constraints as well. -Reference \cite{merigaud_geometrical_2023} considers exclusively amplitude limits while Ref.~\cite{bacelli_geometric_2013} covers amplitude and force limits. -Reference \cite{mccabe_force-limited_2024} uses Smith charts to show constraints directly in $\Gamma$ space as we do here, while Ref.~\cite{merigaud_geometrical_2023} works in the complex plane of the hydrodynamic transmission coefficient and Ref.~\cite{bacelli_geometric_2013} in that of the PTO force. -Reference \cite{bacelli_geometric_2013} also extends the formulation to capture higher harmonics (nonsinusoidal forces), where the exact constraint cannot be easily represented geometrically but sufficient conditions for constraint violation and satisfaction in the higher dimensional space can be represented as hyperspheres and hyperellipsoids. +\citet{mccabe_force-limited_2024} focus on force/current limits but discuss amplitude, phase voltage, and apparent power constraints as well. +\citet{merigaud_geometrical_2023} consider exclusively amplitude limits while \citet{bacelli_geometric_2013} cover amplitude and force limits. +\cite{mccabe_force-limited_2024} use Smith charts to show constraints directly in $\Gamma$ space as we do here, while \citet{merigaud_geometrical_2023} work in the complex plane of the hydrodynamic transmission coefficient and \citet{bacelli_geometric_2013} in that of the PTO force. +\citet{bacelli_geometric_2013} also extend the formulation to capture higher harmonics (nonsinusoidal forces), where the exact constraint cannot be easily represented geometrically but sufficient conditions for constraint violation and satisfaction in the higher dimensional space can be represented as hyperspheres and hyperellipsoids. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Constraint Sensitivity Analysis via Parametric Programming} \label{sec:appendix-constraint-sensitivity} -To support the discussion in \cref{sec:discussion}, this section derives the scaling of optimal average power with the constraint limits and demonstrates its conditions for convexity. +To support the discussion in \Cref{sec:discussion}, this section derives the scaling of optimal average power with the constraint limits and demonstrates its conditions for convexity. The constraint limits are $\tau_{\text{max}}$, $P_{\tau\Omega,\text{max}}$, $\xi_{f,\text{max}}$, $\xi_{s,\text{max}}$, and $X_{PTO,\text{max}}$, which we collectively denote as $L_\mu$. The dependence of power on the first two limits (PTO sizing variables) is of more immediate relevance than the last three (amplitude limits) because the former can be independently manipulated through PTO design, while the latter can only be manipulated by changing the bulk dimensions. -The sensitivity of power to bulk dimensions is substantially more complex than the sensitivity to constraint limits for reasons disussed in \cref{sec:appendix-dimension-sensitivity}, so we focus on the PTO sizing sensitivities here. +The sensitivity of power to bulk dimensions is substantially more complex than the sensitivity to constraint limits for reasons discussed in \Cref{sec:appendix-dimension-sensitivity}, so we focus on the PTO sizing sensitivities here. -In a given sea state, the global sensitivity of optimal power to a constraint limit can be quantified using parametric programming theory, where a local sensitivity is found parametrically and then integrated over the parameter space to find the global parameter relationship. +In a given sea state, the global sensitivity of optimal power to a constraint limit can be quantified using parametric programming theory, where a local sensitivity is found parametrically and then integrated over the parameter space to find the global parameter relationship. The local sensitivity of power to a constraint parameter $\frac{\partial p_{\text{avg},VI,opt}}{\partial L_\mu}$ equals the product of the Lagrange multiplier for that constraint, $\lambda_\mu$, @@ -681,9 +708,9 @@ \subsection{Constraint Sensitivity Analysis via Parametric Programming} Since the constraint function is defined as $g_\mu(\vec{x}) = \vec{x}^{\,*}\mathbf{Q}_\mu\vec{x} + 2\Re\!\left\{\vec{a}_\mu^{\,*}\vec{x}\right\} - b_\mu\leq 0$, -and \cref{tab:qp-constraints} shows that each constraint limit $L_\mu$ enters $g_\mu$ only through $b_\mu$, we have +and \Cref{tab:qp-constraints} shows that each constraint limit $L_\mu$ enters $g_\mu$ only through $b_\mu$, we have $\frac{\partial g_\mu}{\partial L_\mu} = -\frac{\partial b_\mu}{\partial L_\mu}$. -This derivative can be trivially computed for all constraints in \cref{tab:qp-constraints}. +This derivative can be trivially computed for all constraints in \Cref{tab:qp-constraints}. The power sensitivity simplifies to: \begin{equation} \frac{\partial p_{avg,VI,opt}}{\partial L_\mu} = -\lambda_\mu \frac{\partial b_\mu}{\partial L_\mu} @@ -693,7 +720,7 @@ \subsection{Constraint Sensitivity Analysis via Parametric Programming} In our case, we have a semi-analytical solution for the optimal reflection coefficient at each sea state in terms of the constraint centers and radii at that sea state, $\Gamma_{opt}(r_{\mu}, \Gamma_{c,\mu})$, so we can compute the Lagrange multipliers as follows: -\begin{equation} +\begin{equation}\label{eq:lagrange} \begin{aligned} \lambda_\mu &\equiv @@ -716,10 +743,11 @@ \subsection{Constraint Sensitivity Analysis via Parametric Programming} \right) \end{aligned} \end{equation} +The computation of each of the five partials in the final expression of \Cref{eq:lagrange} is discussed next. %%%%%%%%%%%%%%% \subsubsection{Effect of Constraint Limits on Circle Radii} -Recall from \cref{eq:gamma-disc-radius} that each inequality constraint maps to a circle in the complex $\Gamma$ plane +Recall from \Cref{eq:gamma-disc-radius} that each inequality constraint maps to a circle in the complex $\Gamma$ plane with center $\Gamma_{c,\mu}$ and radius $r_\mu$ given by: \begin{equation}\label{eq:radius-full} r_\mu^2 @@ -729,27 +757,27 @@ \subsubsection{Effect of Constraint Limits on Circle Radii} + |\Gamma_{c,\mu}|^2 \end{equation} The constraint limit $L_\mu$ enters $r_\mu$ only through $b_\mu$ -(the right-hand side of the quadratic inequality in \cref{tab:qp-constraints}), +(the right-hand side of the quadratic inequality in \Cref{tab:qp-constraints}), while $\vec{x}_p$, $\vec{n}$, $\hat{I}_p$, $\mathbf{Q}_\mu$, $\vec{a}_\mu$, and $\Gamma_{c,\mu}$ depend only on the Th\'{e}venin impedance $Z_{s,th}$ and excitation $\hat{V}_{s,th}$ for the sea state, which are independent of the constraint limits. Defining $d_\mu = |\hat{I}_p|^{2}\,\vec{n}^{\,*}\mathbf{Q}_{\mu}\vec{n}$ and $c_\mu = d_\mu|\Gamma_{c,\mu}|^2 - \vec{x}_p^{\,*}\mathbf{Q}_{\mu}\vec{x}_p - 2\Re\!\left\{\vec{a}_{\mu}^{\,*}\vec{x}_p\right\}$, -both independent of the constraint limits, \cref{eq:radius-full} and its derivative simplify to: +both independent of the constraint limits, \Cref{eq:radius-full} and its derivative simplify to: \begin{equation}\label{eq:radius-simplified} r_\mu^2 = \frac{b_\mu + c_\mu}{d_\mu} , \quad \frac{\partial r_\mu}{\partial b_\mu} = \frac{1}{2\sqrt{d_\mu(b_\mu + c_\mu)}} \end{equation} -Since $r_\mu\in\mathbb{R}$, then $b_\mu + c_\mu$ and $d_\mu$ must have the same sign, so $\frac{\partial r_\mu}{\partial b_\mu}$ is always positive. +Since $r_\mu\in\mathbb{R}$ (circle radii cannot have an imaginary part), then $b_\mu + c_\mu$ and $d_\mu$ must have the same sign, so $\frac{\partial r_\mu}{\partial b_\mu}$ is always positive. In other words, increasing $b_\mu$ always enlarges the circle radius, regardless of whether the constraint represents the interior or exterior of the circle. -Meanwhile, \cref{eq:gamma-disc-center} shows that the center $\Gamma_{c,\mu}$ does not depend on $b_\mu$, so $\frac{\partial \Gamma_{c,\mu}}{\partial b_\mu}=0$. +Meanwhile, \Cref{eq:gamma-disc-center} shows that the center $\Gamma_{c,\mu}$ does not depend on $b_\mu$, so $\frac{\partial \Gamma_{c,\mu}}{\partial b_\mu}=0$. Thus, the constraint limit $L_\mu$ does not affect the circle center. %%%%%%%%%%%%%%% \subsubsection{Optimal Reflection Coefficient as a Function of Constraint Limits} Now we combine the relationship between circle radius and optimal reflection coefficient $\Gamma_{opt}(r_\mu)$, with the relationship between circle radius and constraint limit $r_\mu(b_\mu)$ derived above to obtain a relationship between reflection coefficient magnitude and constraint limit in a given sea state, $|\Gamma_{opt}|(b_\mu)$. -Substituting \cref{eq:radius-simplified} into \cref{eq:candidate-points} shows that +Substituting \Cref{eq:radius-simplified} into \Cref{eq:candidate-points} shows that the squared optimal reflection coefficient magnitude in each sea state takes one of the following values depending on the number of active constraints: \begin{equation}\label{eq:gamma-opt-summary} |\Gamma_{opt}|^2 = @@ -772,7 +800,7 @@ \subsubsection{Optimal Reflection Coefficient as a Function of Constraint Limits \end{cases} \end{equation} where $\mu^*,\nu^*$ refer to the indices of the active constraint(s) for a given sea state, -and $a_{\mu^*,\nu^*}$ and $d_{\mu^*,\nu^*}$ are real numbers defined in the discussion following \cref{eq:circle-intersection}. +and $a_{\mu^*,\nu^*}$ and $d_{\mu^*,\nu^*}$ are real numbers defined in the discussion following \Cref{eq:circle-intersection}. $d_{\mu^*,\nu^*}$ is independent of the constraint limits, while $a_{\mu^*,\nu^*}$ is affine in $b_{\mu^*}$ and $b_{\nu^*}$. Thus, using \textrm{aff}() and \textrm{quad}() to denote affine and quadratic functions of the arguments, we have the following scale behavior: \begin{equation}\label{eq:gamma-opt-scale} @@ -795,12 +823,12 @@ \subsubsection{Optimal Reflection Coefficient as a Function of Constraint Limits \end{equation} Constraint activity indices $\mu^*,\nu^*$ depend on the constraint limits, and this dependence must be accounted for before the curvature of $|\Gamma_{opt}|^2$ can be analyzed. -From \cref{eq:gamma-opt-quadratic}, we can define $\mu^*$ and $\nu^*$ more explicitly as functions of $b_\mu$ by defining a penalty function $f(\Gamma)$ that returns $\Gamma$ if $\Gamma$ is feasible and $\infty$ otherwise. +From \Cref{eq:gamma-opt-quadratic}, we can define $\mu^*$ and $\nu^*$ more explicitly as functions of $b_\mu$ by defining a penalty function $f(\Gamma)$ that returns $\Gamma$ if $\Gamma$ is feasible and $\infty$ otherwise. This function can be constructed as $f(\Gamma) = \Gamma + \sum_\mu \mathbb{I}_\mu(\Gamma)$, where $\mathbb{I}_\mu(\Gamma)$ is an indicator function that returns $0$ if $\Gamma$ satisfies the $\mu$th constraint and $\infty$ otherwise. The penalty function is convex in $\Gamma$ if and only if all constraints are convex, i.e., if $S_\mu=1 ~\forall \mu$. -Then, the optimal reflection coefficient of each candidate type can be written as the minimum of the candidate points passed through the penalty function, and the overall optimal reflection coefficient is the minimum of those: -\begin{equation}\label{eq:gamma-opt-min} +Then, the optimal reflection coefficient of each candidate type can be written as the minimum of the candidate points passed through the penalty function. +\begin{equation}\label{eq:gamma-opt-min-per-candidate} \begin{aligned} |\Gamma_{cl,\mu^*}| &= \min_\mu \left\{ @@ -809,7 +837,12 @@ \subsubsection{Optimal Reflection Coefficient as a Function of Constraint Limits |\Gamma_{int,\mu^*,\nu^*}| = \min_{\mu,\nu} \left\{ | f\left(\Gamma_{\mu,\nu}(b_\mu, b_\nu)\right) | - \right\} \\ + \right\} +\end{aligned} +\end{equation} +Finally, the overall optimal reflection coefficient $|\Gamma_{opt}|$ is the minimum of all the per-candidate-type minima: +\begin{equation}\label{eq:gamma-opt-min} +\begin{aligned} |\Gamma_{opt}| &= \min \left\{ |\Gamma_{cl,\mu^*}(b_\mu)|, |\Gamma_{int,\mu^*,\nu^*}(b_\mu, b_\nu)| @@ -842,7 +875,6 @@ \subsubsection{Optimal Reflection Coefficient as a Function of Constraint Limits If that were the case, then by the same argument as for the closest points, the minimum of feasible $|\Gamma_{int}|$ would be concave if and only if all constraints are concave. The optimum $|\Gamma_{opt}|$ is the minimum of the feasible $|\Gamma_{cl}|$ and $|\Gamma_{int}|$, so if both of those are concave, then it is also concave. Therefore, the criteria for the concavity of $|\Gamma_{opt}|$ with respect to $b_\mu$ is that all constraints are convex (interior of circles), and the curvature of $\left(\textrm{aff}(b_{\mu}) + \textrm{aff}(b_{\nu})\right) \sqrt{\textrm{quad}(b_{\mu}, b_{\nu})}$ is concave. - As future work, the above curvature analysis should be verified with a disciplined convex programming package such as CVXPY. To facilitate the analysis of the next section, we observe that although the squared optimal reflection coefficient magnitude, $|\Gamma_{opt}|^2$, @@ -873,7 +905,7 @@ \subsubsection{Optimal Reflection Coefficient as a Function of Constraint Limits \end{equation} where $\delta_{\mu,\mu^*}\delta_{\nu,\nu^*}$ is non-zero when both $\mu$ and $\nu$ are active in that sea state, and $\delta_{\mu,\mu^*}(1-\delta_{\nu,\nu^*})$ is non-zero when $\mu$ is active and $\nu$ is inactive in the sea state. -Both Kronecker delta functions are implicitly functions of the constraint limit $b_\mu$, as seen in \cref{eq:gamma-opt-min}. +Both Kronecker delta functions are implicitly functions of the constraint limit $b_\mu$, as seen in \Cref{eq:gamma-opt-min}. % delta mu mu* is monotonially decreasing (negative step) with $b_\mu$ when $S_\mu=1$ (enlarging the mu-th circle when the mu-th constraint is feasible-inside will make more candidate points mu-feasible, so the mu-th constraint would transition from active to inactive) % and monotonically increasing with $b_\mu$ when $S_\mu=-1$ (enlarging the mu-th circle when the mu-th constraint is feasible-outside will make fewer candidate points mu-feasible, so the mu-th constraint would transition from inactive to active). % $\delta_{\nu,\nu^*}$ is monotonially decreasing with $b_\mu$. @@ -886,7 +918,7 @@ \subsubsection{Average Power as a Function of Constraint Limits} \Cref{sec:appendix-slam} will show that the slamming limits are a function of $\Delta z_{\text{slam}}/H$, which depends explicitly on the wave height, and $\theta$, which depends implicitly on both the wave period and wave height through the guessed phase $\angle\xi$. Since the PTO sizing limits are of primary relevance, the following derivation assumes that the constraint limits are independent of the sea state to simplify the expression, although sea-state-dependent limits can easily be accommodated by adding a $\beta$ index on $b_\mu$ and carrying it through the derivation. -From \cref{eq:power-elec-sum,eq:gamma-opt-summary}, the average power can be written as: +From \Cref{eq:power-elec-sum,eq:gamma-opt-summary}, the average power can be written as: \begin{equation}\label{eq:power-elec-sensitivity} \overline{P}_{elec} = \overline{P}_{elec,0} - \eta \sum_{\beta=1}^{N_{sea}} w_\beta @@ -896,9 +928,9 @@ \subsubsection{Average Power as a Function of Constraint Limits} $w_\beta=JPD_\beta \cdot \frac{|\hat{V}_{s,th,\beta}|^2} {8\Re(Z_{s,th,\beta})}$ is a constant weight for each sea state. -The second term represents power lost to constraint-induced impedance mismatch and depends on the constraint limits through \cref{eq:gamma-opt-summary}. +The second term represents power lost to constraint-induced impedance mismatch and depends on the constraint limits through \Cref{eq:gamma-opt-summary}. -Substituting \cref{eq:gamma-opt-scale-sum} into \cref{eq:power-elec-sensitivity} requires a $\beta$ subscript on the starred index to the Kronecker delta functions since constraint activity varies by sea state, as well as a $\beta$ subscript on the affine and quadratic functions to capture sea-state dependence of the Th\'{e}venin parameters: +Substituting \Cref{eq:gamma-opt-scale-sum} into \Cref{eq:power-elec-sensitivity} requires a $\beta$ subscript on the starred index to the Kronecker delta functions since constraint activity varies by sea state, as well as a $\beta$ subscript on the affine and quadratic functions to capture sea-state dependence of the Th\'{e}venin parameters: \begin{equation} \begin{aligned} \overline{P}_{elec} = &\overline{P}_{elec,0} @@ -922,7 +954,7 @@ \subsubsection{Average Power as a Function of Constraint Limits} \right] \end{aligned} \end{equation} -Expanding under the assumption that each constraint is sometimes active by itself and sometimes active with another constraint, +Expanding under the assumption that each constraint is active by itself in some sea states and active with another constraint in others, we find that $\overline{P}_{\text{elec}}$ is a piecewise function of each constraint limit $b_\mu$, with a quadratic leading order term as well as affine, square root of affine, and affine times square root of quadratic terms. The two Kronecker delta terms are combined with the weighting term $w_\beta$ to create revised weighting terms $\tilde{w}_{1\mu\nu\beta}$ and $\tilde{w}_{2\mu\nu\beta}$ that are non-zero only when the corresponding constraint(s) are active in that sea state: \begin{equation}\label{eq:power-triple-sum} @@ -955,16 +987,14 @@ \subsubsection{Average Power as a Function of Constraint Limits} &\left[ \sqrt{\textrm{aff}_{\mu\nu\beta}(b_{\mu})} + \textrm{quad}_{\mu\nu\beta}(b_{\mu}, b_{\nu}) - \right.+ - \\ - &\left. + + \left(\textrm{aff}_{\mu\nu\beta}(b_{\mu}) + \textrm{aff}_{\mu\nu\beta}(b_{\nu})\right) \sqrt{\textrm{quad}_{\mu\nu\beta}(b_{\mu}, b_{\nu})} \right] \end{aligned}\end{equation} We can then use a similar analysis as before to obtain conditions for the convexity of the overall power-constraint relationship. -%The convexity of $|\Gamma_{opt}|^2$ in $b_\mu$ derived above translates directly to convexity of $\overline{P}_{\text{elec}}$ in $b_\mu$ via \cref{eq:power-elec-sensitivity}, since the weighted sum of concave functions ($-|\Gamma_{opt}|^2$) is concave and the addition of constant $\overline{P}_{\text{elec},0}$ preserves concavity. Equivalently, $\overline{P}_{\text{elec}}$ is convex in the constraint coefficients $b_\mu$ under the same conditions, namely that all constraints are convex ($S_\mu = 1$) and that the curvature of $(\textrm{aff}(b_\mu) + \textrm{aff}(b_\nu))\sqrt{\textrm{quad}(b_\mu, b_\nu)}$ resolves favorably (see the caveat above). This is the convexity claim referenced in \cref{sec:multidisciplinary-insights}. +%The convexity of $|\Gamma_{opt}|^2$ in $b_\mu$ derived above translates directly to convexity of $\overline{P}_{\text{elec}}$ in $b_\mu$ via \Cref{eq:power-elec-sensitivity}, since the weighted sum of concave functions ($-|\Gamma_{opt}|^2$) is concave and the addition of constant $\overline{P}_{\text{elec},0}$ preserves concavity. Equivalently, $\overline{P}_{\text{elec}}$ is convex in the constraint coefficients $b_\mu$ under the same conditions, namely that all constraints are convex ($S_\mu = 1$) and that the curvature of $(\textrm{aff}(b_\mu) + \textrm{aff}(b_\nu))\sqrt{\textrm{quad}(b_\mu, b_\nu)}$ resolves favorably (see the caveat above). This is the convexity claim referenced in \Cref{sec:multidisciplinary-insights}. % \subsubsection{Convexity of the Power-Constraint Relationship} % To illustrate convexity, we use an intuitive geometric argument, leaving formal proof to future work. @@ -986,7 +1016,7 @@ \subsubsection{Extension to Dimension Sensitivity} because bulk dimensions affect $\mathbf{Q}_\mu, \vec{a}_\mu$, and the unconstrained power through the Th\'{e}venin parameters. The sensitivity formula would become significantly more complex and less intuitive with these additional terms, and more importantly, the Th\'{e}venin-to-dimension derivatives are not currently available in MDOcean because they depend on the hydrodynamic coefficient-to-dimension derivatives. -Application of the adjoint method has recently enabled efficient computation of hydrodynamic coefficient derivatives in the context of a numerical boundary element method solver \cite{khanal_fully_2025}, +Application of the adjoint method has recently enabled efficient computation of hydrodynamic coefficient derivatives in the context of a numerical boundary element method solver \citep{khanal_fully_2025}, but the adjoint method has not yet been implemented for the semi-analytical MEEM model used here. Implementing the adjoint for a linear solve is relatively straightforward in a multidisciplinary design optimization package like OpenMDAO, and would unlock a fully semi-analytical differentiation workflow. @@ -994,14 +1024,14 @@ \subsubsection{Extension to Dimension Sensitivity} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Force Saturation} \label{sec:appendix-force-sat} -\Cref{sec:dynamics} introduced the use of describing functions to quantify the fundamental amplitude of non-sinusoidal force waveforms, which can achieve higher powers than the equivalent sinusoidal waveform for the same force limit. +\Cref{sec:dynamics} introduces the use of describing functions to quantify the fundamental amplitude of non-sinusoidal force waveforms, which can achieve higher powers than the equivalent sinusoidal waveform for the same force limit. The simulation permits the nonsinusoidal waveform to have a maximum fundamental a factor of $\frac{4}{\pi}$ above the force limit. This coincides with the fundamental to peak ratio of a square wave, which is the limiting case both for the bang-singular-bang controller (a piecewise-discontinuous sine-square wave combination that \cite{hendrikx_optimal_2017} finds as the analytically optimal solution), and for the saturated sine controller (a piecewise-continuous sine-square wave combination that \cite{coe_initial_2020} finds as numerically optimal). In fact, the optimization need not specify the exact nonlinear waveform, since under the describing function filtering hypothesis, only the fundamental matters for simulation purposes. For hardware implementation purposes, the nonlinear controller can be obtained for the saturated-sine controller by the process outlined in the study \cite{mccabe_force-limited_2024}. -The appropriate complex scale factor from the optimal unsaturated controller (damping or reactive respectively) is found as described in \cref{sec:appendix-qp-numerical,sec:appendix-qp-solution} and will be real for the damping control case and complex in the reactive control case. +The appropriate complex scale factor from the optimal unsaturated controller (damping or reactive respectively) is found as described in \Cref{sec:appendix-qp-solution} and will be real for the damping control case and complex in the reactive control case. %Mathematically, a saturation factor $0< f_{sat}\leq 1$ is computed as the ratio between the fundamental amplitude of the saturated torque and the original unsaturated torque signal, %\begin{equation} @@ -1012,7 +1042,7 @@ \subsection{Force Saturation} % \alpha = \frac{2}{\pi} \left( \frac{F_p}{\tau_{max}}\sin^{-1}\frac{\tau_{max}}{F_p} + \sqrt{1 - \left(\frac{\tau_{max}}{F_p}\right)^2} \right). %\end{equation} -%When $\frac{F_p}{\tau_{\text{max}}}$ = 1 (no saturation), then $\alpha= 1$; when $\frac{F_p}{\tau_{\text{max}}} \rightarrow \infty$ (full saturation), then $\alpha= \frac{4}{\pi}$. This makes sense because $\frac{4}{\pi}$ is the harmonic amplitude of a unit square wave, and in full saturation the saturated signal approaches a square wave. $\alpha$ is plotted in \cref{fig:alpha-fit}. +%When $\frac{F_p}{\tau_{\text{max}}}$ = 1 (no saturation), then $\alpha= 1$; when $\frac{F_p}{\tau_{\text{max}}} \rightarrow \infty$ (full saturation), then $\alpha= \frac{4}{\pi}$. This makes sense because $\frac{4}{\pi}$ is the harmonic amplitude of a unit square wave, and in full saturation the saturated signal approaches a square wave. $\alpha$ is plotted in \Cref{fig:alpha-fit}. %The factor $f_{sat}$ describes the ratio of the saturated and unsaturated torque signal. Previous work \cite{mccabe_multidisciplinary_2022} implies that this is also the ratio of the saturated and unsaturated control gains, $m_{sat}$, but this is not the case because the WEC response also changes with saturation. @@ -1071,10 +1101,10 @@ \subsection{Force Saturation} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Drag Model \label{sec:appendix-drag}} -As described in \cref{sec:drag}, a describing function approximation is used to model the form drag. -The relative-velocity computation in \cref{eq:drag-pressure} uses the standard finite-depth linear-wave velocity phasor evaluated at body draft, with $\vec{T} = [T_{f,2}, T_s]$ collecting the bottom drafts of the float and spar: +As described in \Cref{sec:drag}, a describing function approximation is used to model the form drag. +The relative-velocity computation in \Cref{eq:drag-pressure} uses the standard finite-depth linear-wave velocity phasor evaluated at body draft, with $\vec{T} = [T_{f,2}, T_s]$ collecting the bottom drafts of the float and spar: \begin{equation}\label{eq:wave-velocity-phasor} - \vec{\hat{V}}_{wave}(y) = \frac{H}{2}\,\frac{gk}{\omega}\, e^{-k\vec{T}}\, e^{-iky}. + \vec{\hat{V}}_{wave}(y) = \frac{H}{2}\,\frac{gk}{\omega}\, \exp\{-k\vec{T}-iky\}. \end{equation} Strip theory integrates the spatially-dependent infinitesimal drag force vector $d\vec{F}_d$ over the wetted surface area $A_{wet}$. @@ -1092,14 +1122,14 @@ \subsection{Drag Model \end{cases} \end{equation} -Plugging the describing function \cref{eq:drag-pressure} into the drag force integral \eqref{eq:drag-force-integral} reveals the quasi-linearized drag force to be the sum of a damping term in phase with the body motion and an excitation term potentially out of phase with the body motion: +Plugging the describing function \Cref{eq:drag-pressure} into the drag force integral \eqref{eq:drag-force-integral} reveals the quasi-linearized drag force to be the sum of a damping term in phase with the body motion and an excitation term potentially out of phase with the body motion: \begin{equation}\label{eq:drag-damping-excitation-2} \vec{\hat{F}}_d = -\mathbf{B}_{d} \vec{\hat{\dot{\xi}}} + \vec{\gamma}_{d} \hat{\zeta} \end{equation} The excitation term arises from the use of the relative velocity rather than direct WEC velocity, which is often overlooked in WEC models and has important implications for the phase of the drag force. -The damping-excitation grouping of the drag terms, as well as the dependence of the relative velocity on the direction of wave propagation $y$, improves on the approach of \cite{quartier_influence_2021} and is discussed more in \cref{subsec:appendix-drag-others}. -The coefficients in \cref{eq:drag-damping-excitation} include real diagonal drag damping matrix $\mathbf{B}_d$ and complex drag excitation vector $\vec{\gamma}_{d}$ defined as follows: +The damping-excitation grouping of the drag terms, as well as the dependence of the relative velocity on the direction of wave propagation $y$, improves on the approach of \cite{quartier_influence_2021} and is discussed more in \Cref{subsec:appendix-drag-others}. +The coefficients in \Cref{eq:drag-damping-excitation} include real diagonal drag damping matrix $\mathbf{B}_d$ and complex drag excitation vector $\vec{\gamma}_{d}$ defined as follows: \begin{equation}\label{eq:drag-coeffs} \begin{aligned} \mathbf{B}_{d} &= \frac{8}{3\pi}\frac{1}{2} \rho_w \, \textrm{diag}\left(\vec{C}_d |\vec{\hat{\dot{\xi}}}| \int_{y=-\vec{R}}^{\vec{R}} \vec{w}(y) \vec{\alpha}_v(y) dy \right) \\ @@ -1109,13 +1139,13 @@ \subsection{Drag Model where we use radii vectors $\vec{R}=[D_f/2,D_d/2]$ and $\vec{R}_{in}=[D_{f,in},0]$ to represent the float and spar. $\vec{\alpha}_v(y)$ is the amplitude ratio of the relative velocity and WEC velocity: \begin{equation}\label{eq:drag-alpha-definitions} - \vec{\alpha}_v(y) = \frac{\vec{|\hat{V}}_{rel}(y)|}{|\vec{\dot{\xi}}|} = \sqrt{1 + \vec{r}^{\, 2} e^{-2ky} - 2 \vec{r} e^{-ky} \sin\angle \vec{\hat{\dot{\xi}}}} + \vec{\alpha}_v(y) = \frac{\vec{|\hat{V}}_{rel}(y)|}{|\vec{\dot{\xi}}|} = \sqrt{1 + \vec{r}^{\, 2} \exp\{-2ky\} - 2 \vec{r} \exp\{-ky\} \sin\angle \vec{\hat{\dot{\xi}}}} \end{equation} and $\vec{r} = |\hat{V}_{\text{wave}}|/ |\vec{\dot{\xi}}|$ is the amplitude ratio of the incident wave velocity and WEC velocity. %%%%%%%%%%%%%%% \subsubsection{Nondimensional Drag Integrals $I_B$ and $I_G$} -The drag coefficients $\mathbf{B}_{d}$ and $\vec{\gamma}_{d}$ are expressed in \cref{eq:drag-coeffs} as dimensional integrals over the width of the WEC. +The drag coefficients $\mathbf{B}_{d}$ and $\vec{\gamma}_{d}$ are expressed in \Cref{eq:drag-coeffs} as dimensional integrals over the width of the WEC. Here we present an alternative form of the coefficients in terms of nondimensionalized integral functions, which we refer to as $I_B(r,\theta,\kappa)$ and $I_G(r,\theta,\kappa)$: \begin{equation}\label{eq:drag-integrals-IB-IG} \begin{aligned} @@ -1178,9 +1208,9 @@ \subsubsection{Nondimensional Drag Integrals $I_B$ and $I_G$} \end{aligned} \end{equation} where $J_1$ is the Bessel function of the first kind of order 1. -An important edge case occurs at the origin of the polar plots in \cref{fig:drag-integrals}, when $r \rightarrow \infty$ (the incident wave velocity dominates the body velocity, so $|\hat{\dot{\xi}}|\rightarrow 0$). -Here, the integrals as defined in \cref{eq:definition-IB-IG} diverge, and the form of \cref{eq:drag-integrals-IB-IG} does not apply. -Instead, when $r\rightarrow \infty$, we apply an alternative convention that replaces the WEC speed in \cref{eq:drag-integrals-IB-IG} with the incident wave speed and uses a primed form of the integrals, $I' = I/r$: +An important edge case occurs at the origin of the polar plots in \Cref{fig:drag-integrals}, when $r \rightarrow \infty$ (the incident wave velocity dominates the body velocity, so $|\hat{\dot{\xi}}|\rightarrow 0$). +Here, the integrals as defined in \Cref{eq:definition-IB-IG} diverge, and the form of \Cref{eq:drag-integrals-IB-IG} does not apply. +Instead, when $r\rightarrow \infty$, we apply an alternative convention that replaces the WEC speed in \Cref{eq:drag-integrals-IB-IG} with the incident wave speed and uses a primed form of the integrals, $I' = I/r$: \begin{equation} \begin{aligned} \mathbf{B}_{d} &= \frac{8}{3\pi} \rho_w R^2 C_d |\hat{V}_{wave}| @@ -1215,23 +1245,23 @@ \subsubsection{Comparison to Other Drag Formulations} In other words, it fails to account for the edge case of $r \rightarrow \infty$ described above, where the drag force is purely an excitation force and cannot be expressed as a damping or stiffness. Furthermore, the drag ``damping'' term in the grouping of \cite{quartier_influence_2021} includes not just forces with a dissipative effect on the body but also the portion of nonlinear drag excitation forces that are in phase with the body velocity. This creates the confusing possibility for negative apparent damping coefficients, leading to false concerns about violating energy conservation if erroneously interpreted as a true damping coefficient. -The damping-excitation grouping chosen in \cref{sec:drag} avoids this confusion and guarantees positive values of the damping coefficient $\mathbf{B}_d$. +The damping-excitation grouping chosen in \Cref{sec:drag} avoids this confusion and guarantees positive values of the damping coefficient $\mathbf{B}_d$. Another improvement over \cite{quartier_influence_2021} is that the present model considers the fact that the incident wave velocity, and thus the relative velocity, differs across the width of the WEC in the direction of wave propagation $y$. Reference \cite{quartier_influence_2021} more simplistically assumes that the wave velocity at all points equals that at the center of the WEC, which is only accurate when the incident wavelength far exceeds the WEC width. This means that Ref.~\cite{quartier_influence_2021} captures only the Froude-Krylov-like component of the drag excitation, neglecting the diffraction-like component. Early MDOcean simulations that used the formulation of \cite{quartier_influence_2021} found this approximation to be unacceptable, producing unstable dynamics (negative drag damping coefficients whose absolute value exceeds the radiation damping) at high frequencies and large wave heights in the operational regime. -The strip-theory approach presented in \cref{sec:drag} avoids this issue. -Comparisons against WEC-Sim confirm that even without strip theory, assuming the relative velocity is perfectly in phase with the body velocity yields more accurate results than the drag formulation used in the study \cite{quartier_influence_2021}. +The strip-theory approach presented in \Cref{sec:drag} avoids this issue. +Comparisons against WEC-Sim confirm that even without strip theory, assuming that the relative velocity is perfectly in phase with the body velocity (i.e. a drag force of purely damping and in-phase excitation, with no stiffness or out-of-phase excitation) yields more accurate results than the drag formulation used in the study \cite{quartier_influence_2021}. %%%%%%%%%%%%%%% \subsubsection{Iterative Solution} With the describing function approximation, the nonlinear time-domain drag equation is now a quasi-linear frequency-domain equation, since the state-dependence of the coefficients $\mathbf{B}_{d}$ and $\vec{\gamma}_{d}$ prevents true linearity. The solution for states $|\vec{\hat{\dot{\xi}}}|$ and $\angle \vec{\hat{\dot{\xi}}}$ for a given controller can be obtained either through numerical iteration or analytical solution of the nonlinear equation \eqref{eq:eom}. -Iteration is chosen here, the same approach used for a frequency-domain drag simulation of floating offshore wind turbines \cite{hall_open-source_2022}. +Iteration is chosen here, the same approach used for a frequency-domain drag simulation of floating offshore wind turbines \citep{hall_open-source_2022}. MDOcean provides users with two options: to employ a typical nonlinear root-finding algorithm, or to simply use the equation of motion \eqref{eq:eom} to obtain subsequent iterates. -The latter is a form of fixed point iteration where $\vec{\hat{\dot{\xi}}}_k = g(\vec{\hat{\dot{\xi}}}_{k-1})$, where $g(\vec{\hat{\dot{\xi}}})$ is the equation of motion \cref{eq:eom-freq-domain} and $k$ is the iteration index. -It is therefore guaranteed to converge as long as the dynamics are contracting at the solution, which has the following criteria \cite{chicone_contraction_2006}: +The latter is a form of fixed point iteration where $\vec{\hat{\dot{\xi}}}_k = g(\vec{\hat{\dot{\xi}}}_{k-1})$, where $g(\vec{\hat{\dot{\xi}}})$ is the equation of motion \Cref{eq:eom-freq-domain} and $k$ is the iteration index. +It is therefore guaranteed to converge as long as the dynamics are contracting at the solution, which \cite{chicone_contraction_2006} shows has the following criteria: \begin{equation} \left| \frac{\partial} @@ -1244,7 +1274,7 @@ \subsubsection{Iterative Solution} Five to eight iterations on $|\vec{\hat{\dot{\xi}}}|$ and $\angle \vec{\hat{\dot{\xi}}}$ are typically required to converge all sea states to within 0.01~m and 3 degrees. % from summer research slide 44 5/30/24 %In high-frequency sea states where there is substantial phase difference between $\dot{X}_{\text{rel}}$ and $\dot{X}$, $B_d$ occasionally becomes negative. -At present (since MDOcean v1.0.0), the solver used for drag iteration can be simultaneously used for the numerical optimal control procedure described in \cref{sec:optimal-control}, although since v1.2.0 by default the solver is used only for drag convergence and optimal control is done analytically. +At present (since MDOcean v1.0.0), the solver used for drag iteration can be simultaneously used for the numerical optimal control procedure described in \Cref{sec:optimal-control}, although since v1.2.0 by default the solver is used only for drag convergence and optimal control is done analytically. Compared to numerical optimal control nested inside the drag solve, combining the solvers in this way has the advantages of code simplicity and reducing the number of dynamics evaluations required for a given simulation, provided that the number of iterations required to converge the coupled drag-control solve is less than the product of the number of iterations required to converge each solve individually. However, it has the disadvantage that the error signal couples drag nonlinearities with constraint violations, which can potentially lead to slower convergence. @@ -1255,8 +1285,8 @@ \subsubsection{Optimal Control Condition} \begin{equation} \begin{aligned} 0 &= \frac{\partial }{\partial B_l} \left[p_{avg,VI}\right] -= \frac{\partial}{\partial B_l} \left[\frac{1}{2} B_l |\hat{I}|^2\right] \\ -&= \frac{\partial }{\partial B_l} \left[\frac{1}{2} B_l \left|\frac{\hat{V}_{s,th}}{Z_{s,th}+B_l+K_l/s}\right|^2 \right] += \frac{\partial}{\partial B_l} \left[\frac{1}{2} B_l |\hat{I}|^2\right] += \frac{\partial }{\partial B_l} \left[\frac{1}{2} B_l \left|\frac{\hat{V}_{s,th}}{Z_{s,th}+B_l+K_l/s}\right|^2 \right] \end{aligned} \end{equation} and the typical simplification $\frac{\partial \hat{V}_{s,th}}{\partial B_l}=\frac{\partial Z_{s,th}}{\partial B_l}=0$ must be replaced with the implicit dependence of the Th\'{e}venin equivalent parameters on $B_l$ because $B_l$ affects $\hat{\dot\xi}$ and therefore $\mathbf{B}_{d}$ and $\vec{\gamma}_{d}$ via \eqref{eq:drag-coeffs}. @@ -1275,18 +1305,18 @@ \subsection{Slamming and Submersion Amplitude} \end{aligned} \end{equation} must be true at all times and over all positions where the body could exit the waves, $-D/2H/2$ (wave amplitudes smaller than the draft), \cref{eq:slamming-min-max} reduces to only a maximum amplitude criteria $|\hat{\xi}|<\xi_{\text{max},\text{slam}}$ because $\xi_{\text{min},\text{slam}}<0$. +For the case of $\Delta z_{\text{slam}}>H/2$ (wave amplitudes smaller than the draft), \Cref{eq:slamming-min-max} reduces to only a maximum amplitude criteria $|\hat{\xi}|<\xi_{\text{max},\text{slam}}$ because $\xi_{\text{min},\text{slam}}<0$. This aligns with the intuition that a body fixed at the still water line would not exit the water when the wave amplitude is less than the draft. The value of $\theta$ that minimizes $\xi_{\text{max},\text{slam}}$ over the relevant range is \begin{equation}\label{eq:slamming-limit-small-waves} \theta = \pi - \max\left(0,~ \frac{-kD}{2}+|\pi-\angle \xi|\right) \end{equation} -where the symmetry of \cref{eq:slamming-min-max} has been used to collapse possible values onto $[0,\pi]$. +where the symmetry of \Cref{eq:slamming-min-max} has been used to collapse possible values onto $[0,\pi]$. This expression reduces to the simple limits $\Delta z_{\text{slam}}-H/2$ and $\Delta z_{\text{slam}}+H/2$ for short wavelengths $(\theta=\pi)$ and long wavelengths $(\theta=0)$ respectively. These limits are also the minimum and maximum values of $\xi_{\text{max},\text{slam}}$ for any diameter and wave condition where $\Delta z_{\text{slam}}>H/2$. @@ -1314,29 +1344,29 @@ \subsubsection{Case 1: Small Wave Amplitudes} %%%%%%%%%%%%%%% \subsubsection{Case 2: Large Wave Amplitudes} -In sufficiently large waves ($H/2>\Delta z_{\text{slam}}$), \cref{eq:slamming-limit-small-waves} does not apply. +In sufficiently large waves ($H/2>\Delta z_{\text{slam}}$), \Cref{eq:slamming-limit-small-waves} does not apply. Intuitively, when the wave amplitude exceeds the draft, a minimum amplitude of motion in-phase with the incident wave is required to prevent the wave trough from going below the body surface. The minimum amplitude arises mathematically when $\xi_{\text{min},\text{slam}}>0$, which occurs exactly for waves meeting the amplitude criterion. -The ``in-phase'' motion requirement is consistent with the observation that in this wave regime, the maximum amplitude in \cref{eq:slamming-min-max} becomes unsatisfiable ($\xi_{\text{max},\text{slam}}<0$) for WEC phases that are more than 90 degrees out of phase with the incident wave ($\theta \in [\pi/2,3\pi/2]$). +The ``in-phase'' motion requirement is consistent with the observation that in this wave regime, the maximum amplitude in \Cref{eq:slamming-min-max} becomes unsatisfiable ($\xi_{\text{max},\text{slam}}<0$) for WEC phases that are more than 90 degrees out of phase with the incident wave ($\theta \in [\pi/2,3\pi/2]$). -For evaluating \cref{eq:slamming-min-max}, the value of $\theta$ that produces both minimum $\xi_{\text{max},\text{slam}}$ and maximum $\xi_{\text{min},\text{slam}}$ in this regime is: +For evaluating \Cref{eq:slamming-min-max}, the value of $\theta$ that produces both minimum $\xi_{\text{max},\text{slam}}$ and maximum $\xi_{\text{min},\text{slam}}$ in this regime is: \begin{equation} \theta = \angle\hat{\xi} + \frac{kD}{2}\textrm{sgn}(\pi-\angle\hat{\xi}) \end{equation} -After wrapping the value onto $[0,2\pi]$, it can be mapped to $[0,\pi]$ without changing the value of \cref{eq:slamming-min-max} via the identity $\cos(\theta)=\cos(\pi-|\pi-\theta|)$. +After wrapping the value onto $[0,2\pi]$, it can be mapped to $[0,\pi]$ without changing the value of \Cref{eq:slamming-min-max} via the identity $\cos(\theta)=\cos(\pi-|\pi-\theta|)$. -Notably, in this wave regime it becomes possible for the right hand side of \cref{eq:slamming-squared} to become negative for certain values of $\angle\hat{\xi}$ and $D$. +Notably, in this wave regime it becomes possible for the right hand side of \Cref{eq:slamming-squared} to become negative for certain values of $\angle\hat{\xi}$ and $D$. This means that those combinations of $\angle\hat{\xi}$ and $D$ are prohibited because slamming would occur regardless of the amplitude $|\hat{\xi}|$. The following requirement on $D$ ensures that there exist some values of $\angle\hat{\xi}$ without automatic slamming: \begin{equation}\label{eq:D-slamming} kD<2\arcsin\left(\frac{\Delta z_{slam}}{H/2}\right) \end{equation} which has upper bound $kD<\pi$. -Once \cref{eq:D-slamming} is satisfied, the set of acceptable $\angle\hat{\xi}$ that avoid negative values for both $\xi_{\text{max},\text{slam}}$ and the right hand side of \cref{eq:slamming-squared} are: +Once \Cref{eq:D-slamming} is satisfied, the set of acceptable $\angle\hat{\xi}$ that avoid negative values for both $\xi_{\text{max},\text{slam}}$ and the right hand side of \Cref{eq:slamming-squared} are: \begin{equation}\label{eq:slamming-allowed-angles} \begin{aligned} - \angle\hat{\xi} \in &\left[0,~~\arcsin\left(\frac{\Delta z_{slam}}{H/2}\right)-\frac{kD}{2}\right] \\ - \cup & \left[2\pi-\arcsin\left(\frac{\Delta z_{slam}}{H/2}\right)+\frac{kD}{2}, ~~2\pi\right] + \angle\hat{\xi} \in &\left[0,~~\arcsin\left(\frac{\Delta z_{slam}}{H/2}\right)-\frac{kD}{2}\right] + \cup \left[2\pi-\arcsin\left(\frac{\Delta z_{slam}}{H/2}\right)+\frac{kD}{2}, ~~2\pi\right] \end{aligned} \end{equation} At the edge-case $\angle\hat{\xi}$ on the inner boundaries of this interval, only a single amplitude is permitted because the values for $\xi_{\text{max},\text{slam}}$ and $\xi_{\text{min},\text{slam}}$ coincide at $\sqrt{(H/2)^2-\Delta z_{\text{slam}}^2}$. @@ -1348,10 +1378,10 @@ \subsubsection{Case 2: Large Wave Amplitudes} \subsubsection{Implementation} \Cref{fig:slam} visualizes the nondimensional maximum and minimum slamming amplitudes $\xi_{\text{max},\text{slam}}/(H/2)$ and $\xi_{\text{min},\text{slam}}/(H/2)$ as a function of the worst-case phase angle $\theta$ and the draft to wave amplitude ratio $\Delta z_{\text{slam}}/(H/2)$. This reveals that besides increasing the draft, decreasing $\theta$ can prevent slamming, for example by decreasing the diameter or adjusting $\angle \xi$ via control. -If $\Delta z_{\text{slam}}12 s$, so we attribute the error to resonant instabilities that occur in the multi-body hydrodynamic interactions in the highly underdamped drag-free dynamics. -Turning on drag ($C_d=1$, top right of \cref{fig:dynamic-validation}) substantially resolves this inaccuracy, with power errors of $<5\%$ for the most common moderate sea states and error exceeding $40\%$ at the most energetic sea states. +Turning on drag ($C_d=1$, top right of \Cref{fig:dynamic-validation}) substantially resolves this inaccuracy, with power errors of $<5\%$ for the most common moderate sea states and error exceeding $40\%$ at the most energetic sea states. While determining the exact source of the error requires further investigation, it is deemed low-impact enough to justify the model's use in an early-stage design setting. -Moving to the bottom left corner of \cref{fig:dynamic-validation}, we examine the effect of the error in MDOcean's MEEM hydrodynamic coefficients on its dynamic power production. +Moving to the bottom left corner of \Cref{fig:dynamic-validation}, we examine the effect of the error in MDOcean's MEEM hydrodynamic coefficients on its dynamic power production. The error closely aligns with the error in the identical hydro coefficient case, including the large errors at longer wave periods, confirming that the small error in the MEEM hydro coefficients has minimal effect on the overall dynamic response. -Finally, the bottom right corner of \cref{fig:dynamic-validation} shows the combined effect of drag and hydro coefficient errors, which is the best representation of MDOcean's total dynamic error in the absence of further model improvements. +Finally, the bottom right corner of \Cref{fig:dynamic-validation} shows the combined effect of drag and hydro coefficient errors, which is the best representation of MDOcean's total dynamic error in the absence of further model improvements. Power is underpredicted by up to 40\% at sea states with moderate (10-12s) periods and low wave heights, and overpredicted at both shorter and longer wave periods. -This results in a beneficial positive and negative error cancellation that explains the low error in weighted average power described in \cref{sec:dynamic-validation}. +This results in a beneficial positive and negative error cancellation that explains the low error in weighted average power described in \Cref{sec:dynamic-validation}. Meanwhile, MDOcean underpredicts the peak power by around 25\%. Error scales more closely with wave period than wave height for periods under 12 seconds, while the opposite is true for periods above 12 seconds. @@ -1450,7 +1481,7 @@ \subsubsection{WEC-Sim} \begingroup \begin{figure}[htbp] \centering -\begin{tabular}{c m{1em} | >{\centering\arraybackslash}m{.5\linewidth} | >{\centering\arraybackslash}m{.5\linewidth} } +\begin{tabular}{c m{1em} | M{.47\linewidth} | M{.47\linewidth} } && \multicolumn{2}{c}{Drag Coefficient}\\ && $C_d=0$& $C_d=1$\\ \hline \multirow{2}{*}[-3em]{\rot{Hydro Coeffs}} &\rot{Identical}& @@ -1475,7 +1506,7 @@ \subsubsection{WEC-Sim} \begingroup \begin{figure}[htbp] \centering -\begin{tabular}{c m{1em} | >{\centering\arraybackslash}m{.5\linewidth} | >{\centering\arraybackslash}m{.5\linewidth} } +\begin{tabular}{c m{1em} | M{.47\linewidth} | M{.47\linewidth} } && \multicolumn{2}{c}{Drag Force}\\ && Magnitude& Phase\\ \hline \multirow{2}{*}[-3em]{\rot{Body}} &\rot{Float}& @@ -1491,7 +1522,7 @@ \subsubsection{WEC-Sim} \end{figure} \endgroup \end{landscape} -The reason for this discrepancy remains unclear, since the expected error of the describing function approximation due to higher harmonics would increase with frequency, whereas the observed error is worst at mid-range frequencies. +The reason for this discrepancy remains unclear, since the expected error of the describing function approximation due to higher harmonics would increase with frequency, whereas the observed error is worse at mid-range frequencies. Evidently, amplitude and power results are quite sensitive to the presence of drag, but not very sensitive to the exact magnitude and phase of the drag force. The WEC-Sim simulation uses drag-only Morison elements with a maximum width of one tenth the incident wavelength to ensure accuracy of strip theory, and uses a Fourier transform to extract the fundamental amplitude and phase of the nonlinear drag waveform. Future work should investigate the source of this error and whether it can be reduced by adjusting the drag model. @@ -1500,44 +1531,44 @@ \subsubsection{WEC-Sim} The general application of the describing function technique requires that the fundamental frequency $\omega$ contains the vast majority of the energy, resulting in body displacements of the form $\xi(t) \sim \cos(\omega t+\phi)$. \Cref{fig:wecsim-thd} shows the total harmonic distortion of the float displacement for each sea state in the $C_d=1$ case, which peaks at 1\% in the worst-case sea state and is below 0.5\% for the majority of sea states. This confirms that higher harmonics have a negligible impact on the system and that the describing function method is a valid approach for modeling drag in this context. -The paricular describing function relation used for drag assumes that the drag force has the form $F_d(t) \sim |\cos(\omega t+\phi)|\cos(\omega t+\phi)$. -\Cref{fig:wecsim-drag-waveform} shows the assumed and actual drag force waveform for four representative sea states corresonding to the four corners of the JPD. +The particular describing function relation used for drag assumes that the drag force has the form $F_d(t) \sim |\cos(\omega t+\phi)|\cos(\omega t+\phi)$. +\Cref{fig:wecsim-drag-waveform} shows the assumed and actual drag force waveform for four representative sea states corresponding to the four corners of the JPD. The match is excellent in all four cases, confirming that the drag force is indeed well approximated by this form, even in high-amplitude, high-frequency conditions where the nonlinearity is expected to be strongest. \begin{figure}[htbp] \centering - \includegraphics[width=1.1\linewidth]{figs/from-matlab/position_THD_contour.pdf} + \includegraphics[width=.6\linewidth]{figs/from-matlab/position_THD_contour.pdf} \caption{Total Harmonic Distortion of Float Displacement in WEC-Sim Simulations with Drag} \label{fig:wecsim-thd} \end{figure} \begin{figure}[htbp] \centering - \includegraphics[width=1.1\linewidth]{figs/from-matlab/drag_force_desc_fcn.pdf} + \includegraphics[width=.6\linewidth]{figs/from-matlab/drag_force_desc_fcn.pdf} \caption{Comparison of Assumed and Actual Drag Force Signal Shape} \label{fig:wecsim-drag-waveform} \end{figure} \subsubsection{Reference Model Report} -While the original reference model report \cite{RM3} does not document the intermediate values used in dynamics calculations such as response amplitude or hydrodynamic coefficients, +While the original reference model report \citep{RM3} does not document the intermediate values used in dynamics calculations such as response amplitude or hydrodynamic coefficients, it does record the mechanical power for each sea state. \Cref{fig:report-power-validation} compares these values against those predicted by WEC-Sim and MDOcean. \begin{figure}[htbp] \centering - \includegraphics[width=1.1\linewidth]{figs/from-matlab/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.pdf} + \includegraphics[width=1.05\linewidth]{figs/from-matlab/wecsim_rpt_multi_drag_on_meem_on__power_mech_unsat.pdf} \caption{Comparison of mechanical power for RM3 report \cite{RM3} and MDOcean} \label{fig:report-power-validation} \end{figure} -Note that the data is independent of \cref{fig:dynamic-validation} due to the disparate geometry between the reference model report and provided WEC-Sim hydrodynamic coefficients, -and that the power multiplier mentioned in \cref{sec:dynamic-validation} has not been applied in the figure. +Note that the data is independent of \Cref{fig:dynamic-validation} due to the disparate geometry between the reference model report and provided WEC-Sim hydrodynamic coefficients, +and that the power multiplier mentioned in \Cref{sec:dynamic-validation} has not been applied in the figure. We observe a rather poor match, with MDOcean underestimating power in the low-period sea states and overestimating in the high-period sea states. -The discrepancy is of minimal concern for the reasons described in \cref{sec:dynamic-validation}. +The discrepancy is of minimal concern for the reasons described in \Cref{sec:dynamic-validation}. Nonetheless, researchers and practitioners should be aware of the inconsistency and exercise caution before using the reference model report's power values for technology benchmarking or model validation. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Power Matrix Decomposition} \label{sec:appendix-power-decomposition} -The efficiency matrices introduced in \cref{eq:power-matrix-decomposition} are defined as follows. +The efficiency matrices introduced in \Cref{eq:power-matrix-decomposition} are defined as follows. The wave power density and maximum capture width are independent of design: \begin{equation} \mathbf{J}^{H,T}_{wave} = \frac{\rho_w g^2}{64\pi} T_e H_s^2, \qquad @@ -1548,7 +1579,7 @@ \subsection{Power Matrix Decomposition} \mathbf{\eta}^{H,T}_{rad} = \frac{\mathbf{P}_{F\dot{X},\text{no drag}}}{\mathbf{J}^{H,T}_{wave}\,\mathbf{CW}^{H,T}_{max}}, \qquad \mathbf{\eta}^{H,T}_{drag} = \frac{\mathbf{P}_{F\dot{X},\text{ideal}}}{\mathbf{P}_{F\dot{X},\text{no drag}}}. \end{equation} -$\mathbf{\eta}^{H,T}_{\text{drag}}$ may exceed 1 at frequencies where the drag-free system is so undamped that the unconstrained controller from \cref{eq:matched-load,eq:damping-control} would induce instability; in such cases a sub-optimal controller is substituted, which lowers $\mathbf{P}_{F\dot{X},\text{no drag}}$ (the denominator) rather than raising the numerator. +$\mathbf{\eta}^{H,T}_{\text{drag}}$ may exceed 1 at frequencies where the drag-free system is so undamped that the unconstrained controller from \Cref{eq:matched-load,eq:damping-control} would induce instability; in such cases a sub-optimal controller is substituted, which lowers $\mathbf{P}_{F\dot{X},\text{no drag}}$ (the denominator) rather than raising the numerator. In cases where the unconstrained controller is stable, $\mathbf{\eta}^{H,T}_{\text{drag}} \leq 1$ is guaranteed. The product of the first four matrices is the theoretical ideal mechanical power: @@ -1562,7 +1593,7 @@ \subsection{Power Matrix Decomposition} \end{equation} Although it would be possible to formulate alternative variants such as $\mathbf{\eta}^{H,T}_{\text{drag},\text{var}} = \mathbf{P}_{IV}/\mathbf{P}_{IV,\text{no drag}}$ that capture the full effect of drag on the saturated system, such matrices would represent independent sensitivities and could not be multiplied together to recover the overall power matrix. -The current decomposition preserves multiplicativity, which is the key advantage of the formulation in \cref{eq:power-matrix-decomposition}. +The current decomposition preserves multiplicativity, which is the key advantage of the formulation in \Cref{eq:power-matrix-decomposition}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1573,15 +1604,15 @@ \section{Economics Module Details} \subsection{RM3 Cost Breakdown Structure} \label{sec:appendix-econ-cbs} -The MDOcean economic model is calibrated against the RM3 Cost Breakdown Structure (CBS) of \cite{neary_reference_2014}, reproduced in \cref{tab:CBS}. -Percentages are shown for both single-device ($N_{WEC}=1$) and array ($N_{WEC}=100$) cases to illustrate the economies-of-scale trend captured by the power-law scaling \cref{eq:cost-power-law}. +The MDOcean economic model is calibrated against the RM3 Cost Breakdown Structure (CBS) of \cite{neary_reference_2014}, reproduced in \Cref{tab:CBS}. +Percentages are shown for both single-device ($N_{WEC}=1$) and array ($N_{WEC}=100$) cases to illustrate the economies-of-scale trend captured by the power-law scaling \Cref{eq:cost-power-law}. \begin{table}[htbp] \centering \caption{Cost Breakdown Structure} \label{tab:CBS} -\begin{tabular}{>{\raggedright\arraybackslash}p{0.45\linewidth}>{\centering\arraybackslash}p{0.2\linewidth}>{\centering\arraybackslash}p{0.2\linewidth}>{\centering\arraybackslash}p{0.15\linewidth}} +\begin{tabular}{>{\raggedright\arraybackslash}p{0.3\linewidth}>{\centering\arraybackslash}p{0.2\linewidth}>{\centering\arraybackslash}p{0.2\linewidth}>{\centering\arraybackslash}p{0.15\linewidth}} CBS Category& Nominal \% for $N_{WEC}=1$& Nominal \% for $N_{WEC}=100$&Scales with design?\\\hline 1.1 - Development& 26\%& 3\%&No\\ 1.2 - Infrastructure& 6\%& 4\%&No\\ @@ -1607,13 +1638,13 @@ \subsection{RM3 Cost Breakdown Structure} \subsection{Power-Law Scaling with Number of Devices} \label{sec:appendix-econ-power-law} -The per-WEC unit costs and prices in \cref{eq:unit-cost} ($C_{\text{fixed}}$, $C_{pto,\text{constant}}$, $p_{P}$, $p_{F}$, $p_{s}$) each decrease with the number of devices $N_{WEC}$ according to +The per-WEC unit costs and prices in \Cref{eq:unit-cost} ($C_{\text{fixed}}$, $C_{pto,\text{constant}}$, $p_{P}$, $p_{F}$, $p_{s}$) each decrease with the number of devices $N_{WEC}$ according to \begin{equation}\label{eq:cost-power-law} C = C_\infty+( C_1-C_\infty) \cdot (N_{WEC})^{-\beta}, \end{equation} where $C_\infty$ is the asymptotic large-scale unit cost, $C_1$ is the single-unit cost, and $\beta$ is the rate of decrease. -The values of $C_\infty$, $C_1$, and $\beta$ for each CBS category were obtained by curve-fitting \cref{eq:cost-power-law} to the CBS estimates for $N_{WEC} \in \{1, 10, 50, 100\}$ \cite{neary_reference_2014}, and are tabulated in \cref{tab:econ-model-values}. +The values of $C_\infty$, $C_1$, and $\beta$ for each CBS category were obtained by curve-fitting \Cref{eq:cost-power-law} to the CBS estimates for $N_{WEC} \in \{1, 10, 50, 100\}$ \citep{neary_reference_2014}, and are tabulated in \Cref{tab:econ-model-values}. \begin{table}[h] \centering @@ -1622,10 +1653,10 @@ \subsection{Power-Law Scaling with Number of Devices} \begin{tabular}{ >{\raggedright\arraybackslash}p{0.33\linewidth} >{\raggedright\arraybackslash}p{0.1\linewidth} - >{\raggedright\arraybackslash}p{0.25\linewidth} - >{\raggedright\arraybackslash}p{0.25\linewidth}} + >{\raggedright\arraybackslash}p{0.18\linewidth} + >{\raggedright\arraybackslash}p{0.18\linewidth}} CBS Category& Exponent $\beta$&Unit cost at scale $C_{\infty}$&Single-unit cost \newline $C_1$\\\hline - \textbf{1.1-1.3, 1.6-1.9} - Design-Independent CAPEX& 0.741& 1.24 \$M&13.92 \$M\\ + \textbf{1.1-1.3, 1.6-1.9} - Design-Indep. CAPEX& 0.741& 1.24 \$M&13.92 \$M\\ \textbf{1.4} - Structural CAPEX & 0.481& 2.387 \$/kg&4.294 \$/kg\\ \textbf{1.5} - Power Take Off CAPEX& 0.206& Constant: 92.59 \$k Power: 0.4454 \$/W Force: 0.0086 \$/N&Constant: 93.64 \$k Power: 1.355 \$/W Force: 0.0204 \$/N\\ \textbf{2.1-2.6} - OPEX&0.557& 0&1.193 \$M\\ @@ -1637,8 +1668,8 @@ \subsection{Linear PTO Cost Scaling} \label{sec:appendix-econ-pto-scaling} Linear PTO cost scaling is common for WEC techno-economic analysis. -The RM3 cost numbers \cite{RM3} which MDOcean uses as a baseline are themselves scaled from estimates for a smaller device: the reference model project applies linear scaling with peak power to an unpublished 2011 cost estimate by ReVision Consulting for a 100~kW peak hydraulic PTO (except for the riser cable and control system, whose cost does not scale with power). -The NREL System Advisory Model assumes that hydraulic PTO cost scales slightly less than linearly with power (exponent 0.91), and one study uses regression to obtain separate linear models for the cost of commercial induction and permanent magnet generators as a function of torque capability \cite{nakhai_techno-economic_2022}. +The RM3 cost numbers \citep{RM3} which MDOcean uses as a baseline are themselves scaled from estimates for a smaller device: the reference model project applies linear scaling with peak power to an unpublished 2011 cost estimate by ReVision Consulting for a 100~kW peak hydraulic PTO (except for the riser cable and control system, whose cost does not scale with power). +The NREL System Advisory Model assumes that hydraulic PTO cost scales slightly less than linearly with power (exponent 0.91), and one study uses regression to obtain separate linear models for the cost of commercial induction and permanent magnet generators as a function of torque capability \citep{nakhai_techno-economic_2022}. %the cheaper of the induction and permanent magnet machines is chosen with a torque threshold: % \begin{equation} % C_{gen} = \begin{cases} @@ -1665,8 +1696,8 @@ \section{Structures Module Details} Inputs to the structures module include forces, bulk and structural dimensions, and material constants. It outputs a factor of safety for each limit case. First, it obtains equivalent section properties based on the plate and stiffener dimensions. -Second, it relates applied loads to stresses and deflection using analytical solutions to structural boundary value problems obtained from the well-known Roark's handbook \cite{young_roarks_2001} and the references therein. -Finally, it utilizes design standards from organizations like Det Norske Veritas, the American Bureau of Shipping, and the American Iron and Steel Institute to develop limit state expressions for each possible failure mode of each major structural element under each design load case. +Second, it relates applied loads to stresses and deflection using analytical solutions to structural boundary value problems obtained from the well-known Roark's handbook \citep{young_roarks_2001} and the references therein. +Finally, it utilizes design standards from organizations like Det Norske Veritas, the American Bureau of Shipping, and the American Iron and Steel Institute to develop limit-state expressions for each possible failure mode of each major structural element under each design load case. For consistency with the reference model report \cite{RM3}, all structural elements are assumed to be welded, although future work should consider the use of pinned joints for certain interfaces to reduce reaction moments and enhance structural efficiency. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1699,7 +1730,7 @@ \subsection{Equivalent Section Properties for Stiffened Plates} where $M$ is the maximum moment per unit length and $z_{\text{max}}$ is the maximum distance from the neutral axis of the stiffened section. This parallels the stress for an unstiffened plate of thickness $t$, which is $\sigma=6M/t^2 = 12 M(t/2)/t^3$. -Note that this equivalent-thickness method of accounting for stiffeners assumes that as a whole, the stiffener-plate system deflects like a single plate element, rather than as set of multiple plate elements separated by stiffeners. +Note that this equivalent-thickness method of accounting for stiffeners assumes that as a whole, the stiffener-plate system deflects like a single plate element, rather than as a set of multiple plate elements separated by stiffeners. This is a reasonable assumption when the stiffeners are small and densely spaced with respect to the plate, but breaks down if the stiffeners come to dominate the system. The so-called effective breadth ratio $\rho$ is used to quantify the validity of this assumption, where the equivalent-thickness method requires $\rho=1$: \begin{equation} @@ -1727,12 +1758,12 @@ \subsection{Equivalent Section Properties for Stiffened Plates} \begin{equation}\label{eq:k-buckle} k_{\text{buckle}} = 4+2\left(1-\psi\right)^3+2\left(1-\psi\right) \end{equation} -This effective breadth procedure follows the American Iron and Steel Institute design manual \cite{american_iron_and_steel_institute_cold-formed_1991}. +This effective breadth procedure follows the American Iron and Steel Institute design manual \citep{american_iron_and_steel_institute_cold-formed_1991}. Rather than enforcing $\lambda<0.673$, corresponding with $\rho_\lambda=1$, MDOcean more flexibly requires $\lambda<0.809$, corresponding to $\rho_\lambda=0.9$ and thereby capping the error due to insufficient slenderness at around 10\%. MDOcean also uses $k_{\text{buckle}}=4$, the minimum value that equation \eqref{eq:k-buckle} can take on, conservatively maximizing the slenderness factor $\lambda$. Broadening the design space to allow for more dominant stiffeners with higher slenderness factors would require modeling the stiffener-plate system not as a plate with the stiffeners absorbed into an equivalent thickness, but as individual stiffeners with the plate absorbed into the effective breadth. -That model has other complexities such as the shear lag phenomenon so is left to future extensions \cite{wierzbicki_lecture_2013,american_iron_and_steel_institute_cold-formed_1991}. +That model has other complexities such as the shear lag phenomenon so is left to future extensions \citep{wierzbicki_lecture_2013,american_iron_and_steel_institute_cold-formed_1991}. %\hl{Describe how this informs the lower design variable bounds on the structural stiffnesses.} @@ -1744,23 +1775,23 @@ \subsection{Float} Rather than model the deflections of each edge and apply compatibility, for simplicity the edges of each plate are conservatively modeled as fixed. The top and bottom plates are the only ones with external heave loads, arising from the float-spar tubular connection and the hydrodynamic pressure respectively. -The trapezoidal plates are isosceles trapezoids with smaller base $b_1 = \pi D_{f,in}/12$, larger base $b_2=\pi D_f/12$, and perpendicular height $h_0=(D_f-D_{f,in})/2$ (see \cref{fig:trapezoid}). +The trapezoidal plates are isosceles trapezoids with smaller base $b_1 = \pi D_{f,in}/12$, larger base $b_2=\pi D_f/12$, and perpendicular height $h_0=(D_f-D_{f,in})/2$ (see \Cref{fig:trapezoid}). The references consulted do not contain structural results for trapezoidal plates, so geometric intuition is used to scale available solutions. -For example, Ref.~\cite{young_roarks_2001} contains models for rectangular plates under perpendicular loading. +For example, reference~\cite{young_roarks_2001} contains models for rectangular plates under perpendicular loading. They show that the maximum bending stress $\sigma$ scales with the square of the shorter side length, $x_{\text{min}}^2$. % in rectangular plates, with the square of the altitude in triangular plates, and with the square of the radius in circular sectors. This makes sense because for fixed-edge plates with distributed loads, it is the square of the minimum distance from an edge to the point of highest deflection, $(x_{\text{min}}/2)^2$, that geometrically sets the maximum curvature, so $\sigma\sim x_{\text{min}}^2$. For trapezoids, one then expects approximate rectangles ($b_2/b_1\approx1$) to have $x_{\text{min}}=\min(b_1,h_0)$, short trapezoids ($h_0 #1.wcsum }% + \verbatiminput{#1.wcsum}% +} + +\newcommand{\detailtexcount}[2]{\textbf{Section Breakdown #1} + \immediate\write18{texcount -sub=#2 -inc -sum=[1,1,1,0,0,0,0] -q -brief -template="{SUB?{title}:\\n {sum} words, {float} figs/tables, {dsmath} full equations, {inline} inline equations.\\n?SUB}\\n" #1.tex > #1.wcdetail }% + \verbatiminput{#1.wcdetail} +}% + +\def\fillandplacepagenumber{% for landscape page numbers + \par\thispagestyle{empty}% + \vbox to 0pt{\vss}\vfill + \vbox to 0pt{\baselineskip0pt + \hbox to\linewidth{\hss}% + \baselineskip\footskip + \hbox to\linewidth{% + \hfil\thepage\hfil}\vss}} + +% allows bibcop to be used when bibliography includes multiple arguments +\makeatletter +% \AtBeginDocument{% +% \ifnum\pdf@shellescape=0 +% % shell escape is disabled, so don't patch bibcop +% \else +% \ifdefined\bibliography + +% \RequirePackage{etoolbox} + +% \renewcommand{\bibliography}[1]{% +% \def\bibcop@list{#1}% +% \@for\bibcop@file:=\bibcop@list\do{% +% \edef\bibcop@file{\bibcop@file}% +% \ifx\bibcop@file\@empty\else +% \expandafter\bibcop@processbib\expandafter{\bibcop@file}% +% \fi +% }% +% \bibcop@truebibliography{#1}% +% } + +% \newcommand{\bibcop@processbib}[1]{% +% % trim spaces +% \edef\bibcop@file{\zap@space#1 \@empty}% + +% % skip empty entries +% \ifx\bibcop@file\@empty +% \relax +% \else + +% % build .bib filename +% \edef\bibcop@bibfile{\bibcop@file.bib}% + +% % use kpsewhich to resolve path using BIBINPUTS +% \immediate\write18{kpsewhich \bibcop@bibfile > aux/\jobname.bibcop.tmp}% + +% % read result +% \begingroup +% \endlinechar=-1 +% \newread\bibcop@in +% \openin\bibcop@in=aux/\jobname.bibcop.tmp +% \read\bibcop@in to \bibcop@resolved +% \closein\bibcop@in +% \xdef\bibcop@resolved{\bibcop@resolved}% +% \endgroup + +% % fallback if kpsewhich fails +% \ifx\bibcop@resolved\@empty +% \edef\bibcop@resolved{\bibcop@bibfile}% +% \fi + +% % call original bibcop +% \begingroup +% \edef\x{\endgroup +% \noexpand\bibcop@exec{\bibcop@resolved}% +% }% +% \x + +% \fi +% } +% \fi +% \fi +% } + +\AddToHook{cmd/appendices/before}{% + \crefalias{section}{appendix}% + \crefalias{subsection}{appendix} + \crefalias{subsubsection}{appendix} + \crefalias{chapter}{appendix} +} +\makeatother + +\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} +\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}} \ No newline at end of file diff --git a/pubs/applied-ocean-research-model/zotero-meem-refs.bib b/pubs/applied-ocean-research-model/zotero-meem-refs.bib new file mode 100644 index 000000000..b772cff60 --- /dev/null +++ b/pubs/applied-ocean-research-model/zotero-meem-refs.bib @@ -0,0 +1,485 @@ + +@article{nguyen_theoretical_2024, + title = {Theoretical modeling of a bottom-raised oscillating surge wave energy converter structural loadings and power performances}, + volume = {149}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118724001536}, + doi = {10.1016/j.apor.2024.104031}, + abstract = {This study presents theoretical formulations to evaluate the fundamental parameters and performance characteristics of a bottom-raised oscillating surge wave energy converter (OSWEC) device. Employing a flat plate assumption and potential flow formulation in elliptical coordinates, closed-form equations for the added mass, radiation damping, and excitation forces/torques in the relevant pitch-pitch and surge-pitch directions of motion are developed and used to calculate the system's response amplitude operator and the forces and moments acting on the foundation. The model is benchmarked against numerical simulations using WAMIT and WEC-Sim, showcasing excellent agreement. The sensitivity of plate thickness on the analytical hydrodynamic solutions is investigated over several thickness-to-width ratios ranging from 1:80 to 1:10. The results show that as the thickness of the benchmark OSWEC increases, the deviation of the analytical hydrodynamic coefficients from the numerical solutions grows from 3 \% to 25 \%. Differences in the excitation forces and torques, however, are contained within 12 \%. While the flat plate assumption is a limitation of the proposed analytical model, the error is within a reasonable margin for use in the design space exploration phase before a higher-fidelity (and thus more computationally expensive) model is employed. A parametric study demonstrates the ability of the analytical model to quickly sweep over a domain of OSWEC dimensions, illustrating the analytical model's utility in the early phases of design.}, + urldate = {2026-05-19}, + journal = {Applied Ocean Research}, + author = {Nguyen, Nhu and Davis, Jacob and Tom, Nathan and Thiagarajan, Krish}, + month = aug, + year = {2024}, + keywords = {Analytical, And power production, Design optimization, Hydrodynamic coefficients, OSWEC, Structural loads, Theoretical model, WAMIT, WEC-Sim, Wave energy}, + pages = {104031}, +} + +@inproceedings{nguyen_theoretical_2024-1, + address = {Singapore, Singapore}, + series = {{OMAE}}, + title = {Theoretical {Modeling} {Toolbox} for {Diffraction} {Problems} of {Common} {Shaped} {Bodies}}, + volume = {7: ocean renewable energy}, + isbn = {978-0-7918-8785-1}, + url = {https://dx.doi.org/10.1115/OMAE2024-128018}, + doi = {10.1115/OMAE2024-128018}, + abstract = {Abstract. The present study aims to develop an open-source Python-based toolbox for the theoretical modeling of diffraction problems in commonly shaped bodies. The project has dual objectives: 1) to offer a quick and efficient means for design exploration during the initial project phase and 2) to serve as a tool for code comparison and benchmarking for numerical models. While numerical solvers are commonly employed due to the complexity of obtaining exact solutions, our prior work on OSWEC modeling has demonstrated the advantages of an analytical approach, characterized by a simple setup and significantly quick computational time (typically less than a second for a hundred cases). This analytical approach is well-suited for early stages of project development, encompassing design space exploration and device geometry optimization. The current phase of the toolbox includes diffraction solutions for three fundamental cylindrical bodies: bottom-seated surface-piercing cylinder, truncated cylinder, and bottom-seated surface-piercing elliptical cylinder. The outputs encompass domain velocity potentials, excitation forces, and moments, all validated using Capytaine (a Boundary Element Method modeling program). The project is ongoing and is planned for expansion to provide solutions for other shapes. Additionally, an extension of the program to include radiation problems is also scheduled.}, + language = {en}, + urldate = {2026-05-19}, + booktitle = {{ASME} 2024 43rd {International} {Conference} on {Ocean}, {Offshore} and {Arctic} {Engineering}}, + publisher = {ASME}, + author = {Nguyen, Nhu}, + month = jun, + year = {2024}, + pages = {8}, +} + +@inproceedings{chau_inertia_2010, + address = {Harbin, China}, + title = {Inertia and {Damping} of {Heaving} {Compound} {Cylinders}}, + url = {https://www.academia.edu/73219479/Inertia_and_Damping_of_Heaving_Compound_Cylinders_Fun}, + abstract = {for The 25th International Workshop on Water Waves and Floating Bodies, Harbin, China, May 9-13, 2010. Inertia and Damping of Heaving Compound Cylinders Fun Pang Chau∗ and Ronald W. Yeung† Department of Mechanical Engineering University of California}, + language = {en}, + urldate = {2023-09-28}, + booktitle = {25th {International} {Workshop} on {Water} {Waves} and {Floating} {Bodies}}, + author = {Chau, Fun Pang and Yeung, Ronald W.}, + month = jan, + year = {2010}, + pages = {4}, +} + +@techreport{fuchs_wave_1954, + type = {Technical {Memorandum}}, + title = {Wave forces on piles: a diffraction theory}, + shorttitle = {Wave forces on piles}, + url = {https://hdl.handle.net/11681/3444}, + language = {en}, + number = {69}, + urldate = {2026-05-11}, + institution = {United States Department of the Army Corps of Engineers}, + author = {Fuchs, R. A. and MacCamy, R. C.}, + month = dec, + year = {1954}, + pages = {22}, +} + +@inproceedings{mavrakos_hydrodynamic_2012, + address = {Rio de Janeiro, Brazil}, + series = {{OMAE}}, + title = {Hydrodynamic {Analysis} of a {Vertical} {Axisymmetric} {Oscillating} {Water} {Column} {Device} {Floating} in {Finite} {Depth} {Waters}}, + volume = {7: Ocean Space Utilization; Ocean Renewable Energy}, + isbn = {978-0-7918-4494-6}, + url = {https://dx.doi.org/10.1115/OMAE2012-83998}, + doi = {10.1115/OMAE2012-83998}, + abstract = {A floating oscillating water column device (OWC) consists of a vertical cylinder, with a finite wall thickness, partly submerged as an open-bottom chamber in which air is trapped above the inner water free surface. The chamber is connected with the outer atmosphere by a duct housing an air turbine. Forced by incident waves from any direction, the water surface inside pushes the dry air above through a Wells turbine system to generate power. In the present contribution the volume flows, the wave forces, the added mass and damping coefficients and the mean second-order loads for various configurations of OWC devices are being presented. Finally, it is tested how differentiations in the device’s geometry (wall thickness, draught, shape of the chamber, turbine characterises) affect the inner pressure and as a result the absorbed power by the device.}, + language = {en}, + number = {1}, + urldate = {2026-05-29}, + booktitle = {{ASME} 2012 31st {International} {Conference} on {Ocean}, {Offshore} and {Arctic} {Engineering}}, + publisher = {ASME}, + author = {Mavrakos, Spyros A. and Konispoliatis, Dimitrios N.}, + month = jul, + year = {2012}, + pages = {577--586}, +} + +@article{khanal_fully_2025, + title = {Fully differentiable boundary element solver for hydrodynamic sensitivity analysis of wave-structure interactions}, + volume = {163}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118725002937}, + doi = {10.1016/j.apor.2025.104707}, + abstract = {Accurately predicting wave-structure interactions is critical for the effective design and analysis of marine structures. This is typically achieved using solvers that employ the boundary element method (BEM), which relies on linear potential flow theory. Precise estimation of the sensitivity of these interactions is equally important for system-level applications such as design optimization. Current BEM solvers are unable to provide these sensitivities as they do not support automatic differentiation (AD). To address these challenges, we have developed a fully differentiable BEM solver, MarineHydro.jl, for marine hydrodynamics, capable of calculating diffraction and radiation coefficients, and their derivatives with high accuracy. MarineHydro.jl implements both direct and indirect BEM formulations and incorporates two Green’s function expressions, offering a trade-off between accuracy and computational speed. Gradients are computed using reverse-mode AD within the Julia programming language. As a first case study, we analyze two identical floating spheres, evaluating gradients with respect to physical dimensions, inter-sphere distance, and wave frequency. Verification studies demonstrate excellent agreement between AD-computed gradients and finite-difference results. In a second case study, we leverage AD-computed gradients to optimize the mechanical power production of a pair of wave energy converters (WECs). This represents the first application of exact gradients obtained from BEM solver in WEC power optimization. Both studies offer valuable insights into hydrodynamic interactions and advance the understanding of layout optimization. Beyond power optimization, the differentiable BEM solver highlights the potential of AD for offshore design studies. It paves the way for broader applications in machine learning integration, optimal control, and uncertainty quantification of hydrodynamic coefficients, offering new directions for advancing wave-structure interaction analysis and system-level optimization.}, + urldate = {2026-03-20}, + journal = {Applied Ocean Research}, + author = {Khanal, Kapil and Ströfer, Carlos A. Michelén and Ancellin, Matthieu and Haji, Maha N.}, + month = oct, + year = {2025}, + keywords = {Adjoint, Automatic differentiation, Boundary element method, Differentiable solver, Exact sensitivities}, + pages = {104707}, +} + +@misc{best_openflash-code_2026, + title = {{OpenFLASH}}, + copyright = {MIT}, + url = {https://doi.org/10.5281/zenodo.17453418}, + doi = {https://doi.org/10.5281/zenodo.17453418}, + abstract = {Open source flexible library for analytical and semi-analytical hydrodynamics}, + urldate = {2026-05-20}, + publisher = {Zenodo}, + author = {Best, Hope and McCabe, Rebecca and Khanal, Kapil and Bimali, Yinghui and Lo, En and Jiang, Ruiyang and Fernandez, John and Treacy, Collin}, + collaborator = {Haji, Maha N.}, + month = apr, + year = {2026}, + keywords = {hydrodynamics, linear-potential-theory, matched-eigenfunction-expansion, wave-energy}, +} + +@inproceedings{seah_symmetric_2006, + title = {Symmetric {Resonant} {Modes} {Between} {Twin} {Bodies}}, + url = {http://iwwwfb.org/Abstracts/iwwwfb21/iwwwfb21_44.pdf}, + booktitle = {21st {International} {Workshop} on {Water} {Waves} and {Floating} {Bodies}}, + author = {Seah, Robert K. M. and Yeung, Ronald W.}, + month = apr, + year = {2006}, + pages = {4}, +} + +@incollection{hiptmair_survey_2016, + series = {Lecture {Notes} in {Computational} {Science} and {Engineering}}, + title = {A survey of {Trefftz} methods for the {Helmholtz} equation}, + volume = {1}, + url = {https://centaur.reading.ac.uk/42403/}, + language = {en}, + number = {1}, + urldate = {2026-05-17}, + booktitle = {Building bridges: connections and challenges in modern approaches to numerical {PDEs}}, + publisher = {Springer}, + author = {Hiptmair, Ralf and Moiola, Andrea and Perugia, Ilaria}, + year = {2016}, +} + +@article{pavlidou_novel_2022, + title = {A novel two-objective optimization computational framework for a two-body heaving wave energy converter}, + volume = {191}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148122004670}, + doi = {10.1016/j.renene.2022.04.006}, + abstract = {The present research introduces a novel two-objective optimization computational framework, named H∞ optimization criterion-constrained Two-Objective Optimization Genetic Algorithm (H∞ − cTOOGA). Within this optimization framework, the objectives considered are: (i) the sprung mass isolation, and (ii) the wave energy extraction of a heaving buoy coupled with a sprung (overlying) mass. In such a two-body heaving wave energy converter (WEC), the satisfaction of both objectives is pursued by proper selection of the buoy geometry (i.e., radius r and draft Dr) and the characteristics of the power take-off (PTO). The interrelation among potential buoy geometries and PTO characteristics is performed on the basis of a critical condition. The critical condition refers to the formation of equal double peaks in the sprung mass acceleration response curve and is imposed as the sprung mass acceleration limit that is not allowed to be exceeded throughout the entire frequency range of interest. The two-objective optimization is realized with r, Dr and the tuning ratio δOPT being the decision variables. The value of δOPT is constrained by the value of the critical tuning ratio δcrit, that is, δOPT {\textless} δcrit. This ensures the minimization of the maximum sprung mass acceleration response. Then, the Pareto-optimal solutions result to optimal wave energy extraction.}, + urldate = {2026-05-17}, + journal = {Renewable Energy}, + author = {Pavlidou, Lamprini and Angelides, Demos C.}, + month = may, + year = {2022}, + keywords = {Fixed-points theory, Genetic algorithms, Sprung mass isolation, Two-body heaving wave energy converter, optimization criterion}, + pages = {510--534}, +} + +@article{kita_trefftz_1995, + title = {Trefftz method: an overview}, + volume = {24}, + issn = {0965-9978}, + shorttitle = {Trefftz method}, + url = {https://www.sciencedirect.com/science/article/pii/0965997895000674}, + doi = {10.1016/0965-9978(95)00067-4}, + abstract = {The aim of this paper is to review the existing formulations of ‘Trefftz method’. The Trefftz formulations are classified into the direct and the indirect formulations and then, compared with other boundary-type solution procedures, such as boundary element, singularity, charge simulation and surface charge methods, in order to establish the identity of the method.}, + number = {1}, + urldate = {2026-05-14}, + journal = {Advances in Engineering Software}, + author = {Kita, Eisuke and Kamiya, Norio}, + month = jan, + year = {1995}, + keywords = {Trefftz method, boundary element method, direct formulation, indirect formulation, singularity method}, + pages = {3--12}, +} + +@book{quarteroni_numerical_2006, + title = {Numerical {Mathematics}}, + isbn = {978-3-540-34658-6}, + abstract = {Numerical mathematics is the branch of mathematics that proposes, develops, analyzes and applies methods from scientific computing to several fields including analysis, linear algebra, geometry, approximation theory, functional equations, optimization and differential equations. Other disciplines, such as physics, the natural and biological sciences, engineering, and economics and the financial sciences frequently give rise to problems that need scientific computing for their solutions. As such, numerical mathematics is the crossroad of several disciplines of great relevance in modern applied sciences, and can become a crucial tool for their qualitative and quantitative analysis. One of the purposes of this book is to provide the mathematical foundations of numerical methods, to analyze their basic theoretical properties (stability, accuracy, computational complexity) and demonstrate their performances on examples and counterexamples which outline their pros and cons. This is done using the MATLAB software environment which is user-friendly and widely adopted. Within any specific class of problems, the most appropriate scientific computing algorithms are reviewed, their theoretical analyses are carried out and the expected results are verified on a MATLAB computer implementation. Every chapter is supplied with examples, exercises and applications of the discussed theory to the solution of real-life problems. This book is addressed to senior undergraduate and graduate students with particular focus on degree courses in Engineering, Mathematics, Physics and Computer Sciences. The attention which is paid to the applications and the related development of software makes it valuable also for researchers and users of scientific computing in a large variety of professional fields. In this second edition, the readability of pictures, tables and program headings have been improved. Several changes in the chapters on iterative methods and on polynomial approximation have also been added.}, + language = {en}, + publisher = {Springer Science \& Business Media}, + author = {Quarteroni, Alfio and Sacco, Riccardo and Saleri, Fausto}, + month = oct, + year = {2006}, + note = {Google-Books-ID: 31m4ahn\_KfkC}, + keywords = {Mathematics / Applied, Mathematics / General, Mathematics / Number Systems, Mathematics / Numerical Analysis}, +} + +@article{havelock_forces_1936, + title = {The forces on a circular cylinder submerged in a uniform stream}, + volume = {157}, + issn = {0080-4630}, + url = {https://doi.org/10.1098/rspa.1936.0212}, + doi = {10.1098/rspa.1936.0212}, + abstract = {1—Although many investigations have been made on the wave resistance of submerged bodies, no case has been solved completely in the sense of taking fully into account the condition of zero normal velocity at the surface of the body. The simplest case is that of the two-dimensional motion produced by a long circular cylinder, with its axis horizontal and perpendicular to the stream, submerged at a certain depth below the upper free surface. This problem was propounded many years ago by Kelvin, and it was solved later, as regards a first approximation, by Lamb; in that solution the cylinder was replaced by a doublet, and the effect of the disturbance at the surface of the cylinder was neglected. Applying the method of images, I examined a second approximation, and also by the same method obtained a first approximation for the vertical force on the cylinder. Although the problem is not in itself of practical importance, it seems of sufficient interest to obtain a more complete analytical solution, and this is given in the present paper. The solution contains an infinite series, whose coefficients are given by an infinite set of linear equations; expansions are given for the coefficients in terms of a certain parameter, and corresponding expressions obtained for both the wave resistance and the vertical force. Numerical calculations have been made from these for various velocities and for different ratios of the radius of the cylinder to the depth of its axis. These confirm the general impression that the first approximation is a good one over a considerable range. The effect of the complete expressions appears in an increase in the wave resistance at lower velocities and a slight decrease at high velocities; this may be described as due largely to a shifting of the maximum of resistance towards the lower velocities, an effect which might have been anticipated.}, + number = {892}, + urldate = {2026-05-11}, + journal = {Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences}, + author = {Havelock, Thomas Henry}, + month = dec, + year = {1936}, + pages = {526--534}, +} + +@article{michele_theory_2016, + title = {Theory of the synchronous motion of an array of floating flap gates oscillating wave surge converter}, + volume = {472}, + url = {https://royalsocietypublishing.org/doi/10.1098/rspa.2016.0174}, + doi = {10.1098/rspa.2016.0174}, + abstract = {We consider a finite array of floating flap gates oscillating wave surge converter (OWSC) in water of constant depth. The diffraction and radiation potentials are solved in terms of elliptical coordinates and Mathieu functions. Generated power and capture width ratio of a single gate excited by incoming waves are given in terms of the radiated wave amplitude in the far field. Similar to the case of axially symmetric absorbers, the maximum power extracted is shown to be directly proportional to the incident wave characteristics: energy flux, angle of incidence and wavelength. Accordingly, the capture width ratio is directly proportional to the wavelength, thus giving a design estimate of the maximum efficiency of the system. We then compare the array and the single gate in terms of energy production. For regular waves, we show that excitation of the out-of-phase natural modes of the array increases the power output, while in the case of random seas we show that the array and the single gate achieve the same efficiency.}, + number = {2192}, + urldate = {2023-10-22}, + journal = {Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences}, + publisher = {Royal Society}, + author = {Michele, Simone and Sammarco, Paolo and d’Errico, Michele}, + month = aug, + year = {2016}, + keywords = {floating flap gate energy, resonance, wave-body interaction}, + pages = {20160174}, +} + +@article{edwards_optimisation_2022, + title = {Optimisation of the geometry of axisymmetric point-absorber wave energy converters}, + volume = {933}, + issn = {0022-1120, 1469-7645}, + url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/optimisation-of-the-geometry-of-axisymmetric-pointabsorber-wave-energy-converters/EE6FAE12B0F2F9C4DC607C301406411F}, + doi = {10.1017/jfm.2021.993}, + abstract = {, +We propose a scientifically rigorous framework to find realistic optimal geometries of wave energy converters (WECs). For specificity, we assume WECs to be axisymmetric point absorbers in a monochromatic unidirectional incident wave, all within the context of linearised potential theory. We consider separately the problem of a WEC moving and extracting wave energy in heave only and then the more general case of motion and extraction in combined heave, surge and pitch. We describe the axisymmetric geometries using polynomial basis functions, allowing for discontinuities in slope. Our framework involves ensuring maximum power, specifying practical motion constraints and then minimising surface area (as a proxy for cost). The framework is robust and well-posed, and the optimisation produces feasible WEC geometries. Using the proposed framework, we develop a systematic computational and theoretical approach, and we obtain results and insights for the optimal WEC geometries. The optimisation process is sped up significantly by a new theoretical result to obtain roots of the heave resonance equation. For both the heave-only, and the heave-surge-pitch combined problems, we find that geometries which protrude outward below the waterline are generally optimal. These optimal geometries have up to 73 \% less surface area and 90 \% less volume than the optimal cylinders which extract the same power.}, + language = {en}, + urldate = {2023-10-07}, + journal = {Journal of Fluid Mechanics}, + publisher = {Cambridge University Press}, + author = {Edwards, Emma C. and Yue, Dick K.-P.}, + month = feb, + year = {2022}, + keywords = {surface gravity waves, wave–structure interactions}, + pages = {A1}, +} + +@article{garrett_bottomless_1970, + title = {Bottomless harbours}, + volume = {43}, + issn = {1469-7645, 0022-1120}, + url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/bottomless-harbours/37CE36DBABFD3726B04474AD6039E96F}, + doi = {10.1017/S0022112070002495}, + abstract = {Does the harbour of an artificial island need a bottom? The excitation of waves inside a partially immersed open circular cylinder is considered. An incident plane wave is expanded in Bessel functions and for each mode the problem is formulated in terms of the radial displacement on the cylindrical interface below the cylinder. The solution is obtainable either from an infinite set of simultaneous equations or from an integral equation. It is shown that the phase of the solution is independent of depth and resonances are found at wave-numbers close to those of free oscillations in a cylinder extending to the bottom. If the resonances of the cylinder are made sharper (by increasing the depth of immersion) the peak response of the harbour increases, but the response to a continuous spectrum remains approximately constant. Numerical results are obtained by minimizing the least squares error of a finite number N of simultaneous equations. Convergence is slow, but the error is roughly proportional to 1/N and this is exploited. The solution obtained from a variational formulation using the incoming wave as a trial function is found to give a very good approximation for small wave-numbers, but is increasingly inaccurate for large wave-numbers. Away from resonance the amplitude of the harbour oscillation is less than 10\% of the amplitude of the incoming wave provided the depth of the cylinder is greater than about ¼ wavelength, and it is argued that in practice at the resonant wave-number oscillations excited through the bottom of the harbour will leak out through the entrance before they can reach large amplitudes. In an appendix the excitation of harbour oscillations through the harbour entrance is discussed, and some results of Miles \& Munk (1961) on an alleged harbour paradox are re-interpreted.}, + language = {en}, + number = {3}, + urldate = {2023-10-06}, + journal = {Journal of Fluid Mechanics}, + publisher = {Cambridge University Press}, + author = {Garrett, C. J. R.}, + month = sep, + year = {1970}, + pages = {433--449}, +} + +@book{chatjigeorgiou_analytical_2018, + address = {Cambridge}, + title = {Analytical {Methods} in {Marine} {Hydrodynamics}}, + isbn = {978-1-107-17969-1}, + url = {https://www.cambridge.org/core/books/analytical-methods-in-marine-hydrodynamics/FA575866CF4838EE370460746C304B55}, + doi = {10.1017/9781316838983}, + abstract = {The value of analytical solutions relies on the rigorous formulation, and a strong mathematical background. This comprehensive volume unifies the most important geometries, which allow for the development of analytical solutions for hydrodynamic boundary value problems. It offers detailed explanations of the Laplance domain and numerical results associated with such problems, providing deep insight into the theory of hydrodynamics. Extended numerical calculations are provided and discussed, allowing the reader to use them as benchmarks for their own computations and making this an invaluable resource for specialists in in various disciplines, including hydrodynamics, acoustics, optics, electrostatics, and brain imaging.}, + urldate = {2023-09-28}, + publisher = {Cambridge University Press}, + author = {Chatjigeorgiou, Ioannis K.}, + year = {2018}, +} + +@article{garrett_wave_1971, + title = {Wave forces on a circular dock}, + volume = {46}, + issn = {1469-7645, 0022-1120}, + url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/wave-forces-on-a-circular-dock/467202A9E4D8385F6ECFABC253B6EC80}, + doi = {10.1017/S0022112071000430}, + abstract = {The scattering of surface gravity waves by a circular dock is considered in order to determine the horizontal and vertical forces and torque on the dock. An incident plane wave is expanded in Bessel functions, and for each mode the problem is formulated in terms of the potential on the cylindrical surface containing the dock and extending to the bottom. The solution is shown to have phase independent of depth and so may be obtained from an infinite set of real equations, which are solved numerically by Galerkin's method. The convergence of the solution is discussed, and some numerical results are presented.This problem has been investigated previously by Miles \& Gilbert (1968) by a different method, but their work contained errors.}, + language = {en}, + number = {1}, + urldate = {2023-09-28}, + journal = {Journal of Fluid Mechanics}, + publisher = {Cambridge University Press}, + author = {Garrett, C. J. R.}, + month = mar, + year = {1971}, + pages = {129--139}, +} + +@article{mavrakos_second-order_2009, + title = {Second-order hydrodynamic effects on an arrangement of two concentric truncated vertical cylinders}, + volume = {22}, + issn = {0951-8339}, + url = {https://www.sciencedirect.com/science/article/pii/S0951833908000580}, + doi = {10.1016/j.marstruc.2008.12.003}, + abstract = {The second-order diffraction problem by a piston-like arrangement that consists of two concentric surface piercing cylinders is considered. The developed matched axisymmetric eigenfunction expansion solution methodology in cylindrical co-ordinates is based on the semi-analytical formulation of the velocity potentials in the various fluid regions which are defined by the geometry of the two-body arrangement. The main difficulty associated with the specific configuration originates from the fact that the geometry defines two fluid regions that extend up to the free surface in which the inhomogeneous second-order free surface boundary condition has to be fulfilled. To this end the associated velocity potentials in these regions are decomposed into a number of components defining the so-called ‘free’ and ‘locked’ waves. The latter are calculated by solving the resulting Sturm–Liouville problems. The seek second-order velocity potential in the whole fluid domain is then derived by enforcing matching conditions for the radial velocities and the fluid pressures at the cylindrical boundaries of adjacent fluid domains. Numerical results concerning the second-order hydrodynamic loading and the wave run-up on the cylinders are given, whereas special attention is given at incident wave frequency regions where the first-order exciting wave forces attain maximum values due to the resonant fluid motions in the moonpool.}, + number = {3}, + urldate = {2025-02-03}, + journal = {Marine Structures}, + author = {Mavrakos, Spyros A. and Chatjigeorgiou, Ioannis K.}, + month = jul, + year = {2009}, + keywords = {Concentric cylinders, Exciting wave forces, Moonpool, Second-order theory}, + pages = {545--575}, +} + +@article{mavrakos_hydrodynamic_1997, + title = {Hydrodynamic characteristics of floating toroidal bodies}, + volume = {24}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801896000200}, + doi = {10.1016/S0029-8018(96)00020-0}, + abstract = {The paper deals with the linearized exciting wave forces and hydrodynamic coefficients of a toroidal body floating in water of finite depth. For the solution of the diffraction and the radiation problems the flow field around the body is subdivided into ring-shaped fluid regions, in each of which axisymmetric eigenfunction expansions for the velocity potential is made. By implementing Galerkin's method the various potential solutions are matched and numerical results concerning the exciting wave forces and the hydrodynamic coefficients in all modes of motion are obtained.}, + number = {4}, + urldate = {2023-10-04}, + journal = {Ocean Engineering}, + author = {Mavrakos, S. A.}, + month = apr, + year = {1997}, + pages = {381--399}, +} + +@article{zhang_hydrodynamic_2016, + title = {Hydrodynamic analysis and shape optimization for vertical axisymmetric wave energy converters}, + volume = {30}, + issn = {2191-8945}, + url = {https://doi.org/10.1007/s13344-016-0062-2}, + doi = {10.1007/s13344-016-0062-2}, + abstract = {The absorber is known to be vertical axisymmetric for a single-point wave energy converter (WEC). The shape of the wetted surface usually has a great influence on the absorber’s hydrodynamic characteristics which are closely linked with the wave power conversion ability. For complex wetted surface, the hydrodynamic coefficients have been predicted traditionally by hydrodynamic software based on the BEM. However, for a systematic study of various parameters and geometries, they are too multifarious to generate so many models and data grids. This paper examines a semi-analytical method of decomposing the complex axisymmetric boundary into several ring-shaped and stepped surfaces based on the boundary discretization method (BDM) which overcomes the previous difficulties. In such case, by using the linear wave theory based on eigenfunction expansion matching method, the expressions of velocity potential in each domain, the added mass, radiation damping and wave excitation forces of the oscillating absorbers are obtained. The good astringency of the hydrodynamic coefficients and wave forces are obtained for various geometries when the discrete number reaches a certain value. The captured wave power for a same given draught and displacement for various geometries are calculated and compared. Numerical results show that the geometrical shape has great effect on the wave conversion performance of the absorber. For absorbers with the same outer radius and draught or displacement, the cylindrical type shows fantastic wave energy conversion ability at some given frequencies, while in the random sea wave, the parabolic and conical ones have better stabilization and applicability in wave power conversion.}, + language = {en}, + number = {6}, + urldate = {2023-12-12}, + journal = {China Ocean Engineering}, + author = {Zhang, Wan-chao and Liu, Heng-xu and Zhang, Liang and Zhang, Xue-wei}, + month = dec, + year = {2016}, + keywords = {astringency, complex wetted surface, geometrical shape, semi-analytical method, vertical axisymmetric}, + pages = {954--966}, +} + +@article{kokkinowrachos_behaviour_1986, + title = {Behaviour of vertical bodies of revolution in waves}, + volume = {13}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/0029801886900375}, + doi = {10.1016/0029-8018(86)90037-5}, + abstract = {This paper presents the so-called macroelement method by means of which the complete linear hydromechanic analysis of arbitrarily shaped bodies of revolution with vertical axis can be carried out. The development of a special method for this wide class of structures which are common in offshore designs is of great advantage for the engineering work. The method described here is based on the discretization of the flow field around the structure by means of ring-shaped macroelements, the velocity potential in each element being approximated with Fourier series. For the matching of the solution between neighbouring elements Galerkin's method is applied. Both the diffraction and the radiation problems are solved.}, + number = {6}, + urldate = {2023-12-12}, + journal = {Ocean Engineering}, + author = {Kokkinowrachos, Konstantin and Mavrakos, Spyridon and Asorakos, Sampson}, + month = jan, + year = {1986}, + pages = {505--538}, +} + +@article{liu_analysis_2014, + title = {Analysis of orthogonal wave reflection by a caisson with open front chamber filled with sloping rubble mound}, + volume = {91}, + issn = {0378-3839}, + url = {https://www.sciencedirect.com/science/article/pii/S0378383914000994}, + doi = {10.1016/j.coastaleng.2014.05.002}, + abstract = {A new combined caisson, including an open window on the front wall and an internal rubble mound with a slope, has been proposed and used in Italy. This study presents a semi-analytical solution to estimate the wave absorbing performance of the new combined caisson with regard to orthogonal wave attack. The internal slope of the rubble mound is assumed to be a series of horizontal steps. Then the matched eigenfunction expansions are used to develop the semi-analytical solution. The square-root singularity of fluid velocity at the upper tip of the front submerged wall is incorporated into the solution to enhance the convergence of calculated results. The new semi-analytical solution is confirmed by an independently developed multi-domain boundary element method solution. Also the predictions of the semi-analytical solution agree reasonably well with experimental data. Based on both the calculations and the experimental data, some useful results are presented for practical engineering.}, + urldate = {2023-12-09}, + journal = {Coastal Engineering}, + author = {Liu, Yong and Faraci, Carla}, + month = sep, + year = {2014}, + keywords = {Combined caisson, Reflection coefficient, Rubble mound, Semi-analytical solution, Slope}, + pages = {151--163}, +} + +@article{yeung_added_1981, + title = {Added mass and damping of a vertical cylinder in finite-depth waters}, + volume = {3}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/0141118781901012}, + doi = {10.1016/0141-1187(81)90101-2}, + abstract = {A comprehensive set of theoretical added masses and wave damping data for a floating circular cylinder in finite-depth water is presented. The hydrodynamic problem is solved by matching eigen functions of the interior and exterior problems. The resulting infinite system is solved directly and found to have excellent truncation characteristics. Added mass and damping are given for heave, sway, and roll motion, as well as coupling coefficients for sway and roll. It is shown that the heave added mass is logarithmic singular and the damping approaches a constant in the low-frequency limit. Transition of the behaviour in finite-depth water to deep water is also discussed.}, + number = {3}, + urldate = {2023-09-28}, + journal = {Applied Ocean Research}, + author = {Yeung, Ronald W.}, + month = jul, + year = {1981}, + pages = {119--133}, +} + +@article{cong_novel_2020, + title = {A novel solution to the second-order wave radiation force on an oscillating truncated cylinder based on the application of control surfaces}, + volume = {204}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801820303243}, + doi = {10.1016/j.oceaneng.2020.107278}, + abstract = {A truncated cylinder in harmonic oscillation with a small amplitude at a finite water depth is considered. A perturbation procedure is applied to analyse the wave radiation problem up to the second order in frequency domain. The technique of control surfaces is used to overcome the difficulty associated with the singularity of the fluid velocity at the corner, and a novel solution to the double-frequency wave radiation force on a surging/heaving truncated cylinder is developed. The proposed solution achieves an obvious advantage in that the calculation of the singular terms owing to the singularity of the fluid velocity at a sharp corner is avoided. After examining the convergence and validity of the proposed model, numerical studies are conducted. Numerical results reveal that the force component associated with the body-surface forcing term predominates among the various force components of the total double-frequency wave radiation force. In addition, the force component from the quadratic products of the first-order quantities is in general out-of-phase with the one associated with the body-surface forcing term.}, + urldate = {2025-02-03}, + journal = {Ocean Engineering}, + author = {Cong, Peiwen and Teng, Bin and Chen, Lifen and Gou, Ying}, + month = may, + year = {2020}, + keywords = {Heave motion, Second-order wave radiation, Surge motion, Truncated cylinder}, + pages = {107278}, +} + +@article{mciver_added_1991, + title = {The added mass of bodies heaving at low frequency in water of finite depth}, + volume = {13}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118705800367}, + doi = {10.1016/S0141-1187(05)80036-7}, + abstract = {Numerical results for the added mass of a heaving two-dimensional body in finite-depth water show that the zero-frequency limit is different for the cases of a surface-piercing body and a bottom-mounted body of the same wetted shape. At first sight, this may appear surprising as the limiting boundary-value problems for the potentials involved are identical. However the solutions are indeterminate to within an additive constant and it is the value of this constant that accounts for the difference. In the present work, the method of matched asymptotic expansions is used to show that the added mass limits for the two cases differ by an amount that depends very simply on the geometry of the bodies.}, + number = {1}, + urldate = {2025-04-27}, + journal = {Applied Ocean Research}, + author = {McIver, P. and Linton, C. M.}, + month = feb, + year = {1991}, + pages = {12--17}, +} + +@article{olaya_hydrodynamic_2015, + title = {Hydrodynamic {Coefficient} {Computation} for a {Partially} {Submerged} {Wave} {Energy} {Converter}}, + volume = {40}, + issn = {1558-1691}, + url = {https://ieeexplore.ieee.org/document/6895317}, + doi = {10.1109/JOE.2014.2344951}, + abstract = {This paper deals with the hydrodynamic parameter computation of a wave energy converter (WEC) that consists of a cylindrical buoy sliding along a partially submerged platform made up of a plate and a column. The computed parameters are especially needed for the development of a simple hydrodynamic time-dependant model, based on the Cummins' formulation. This model is intended for WEC control purposes. A semi-analytical approach is proposed for the computation of the hydrodynamic coefficients and the excitation forces. The boundary value problem is solved by using variable separation and matched eigenfunction expansion methods. Analytical expressions for the velocity potential are then obtained for each subdomain. The hydrodynamic coefficients and the excitation force can then be computed by using these expressions. Numerical results are given for different buoy, column, and plate radii and clearly the bearing surface of the plate has a significant influence on the wave excitation force applied to the submerged platform.}, + number = {3}, + urldate = {2025-01-10}, + journal = {IEEE Journal of Oceanic Engineering}, + author = {Olaya, Sébastien and Bourgeot, Jean-Matthieu and Benbouzid, Mohamed El Hachemi}, + month = jul, + year = {2015}, + note = {Conference Name: IEEE Journal of Oceanic Engineering}, + keywords = {Boundary conditions, Eigenfunction expansion, Eigenvalues and eigenfunctions, Hydrodynamics, Scattering, Sea surface, Surface waves, heaving mode, potential theory, scattering and radiation problem, wave energy converter (WEC), wave loads}, + pages = {522--535}, +} + +@article{zhang_performance_2024, + title = {Performance assessment of a {Triple} {Coaxial}-{Cylinder} {Wave}-{Energy} {Converter} ({TCWEC})}, + volume = {237}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S096014812401615X}, + doi = {10.1016/j.renene.2024.121547}, + abstract = {We propose a novel Triple Coaxial-cylinder Wave-Energy Converter (TCWEC) system, as an evolution of the commonly deployed dual-coaxial cylinder WEC (DCWEC). TCWEC consists of one inner cylinder and two concentric outer cylinders, characterized by two coupled resonant frequencies, improving wave power absorption. A semi-analytical model, based on potential flow theory and matched eigenfunction expansions, is developed to analyze the 3-Degrees of Freedom (DOF) system. The viscous drag coefficients are determined by Computational Fluid Dynamics (CFD) simulations and employed as equivalent linear damping. Analysis of impact of the viscous flow-separation factor fvis on the capture width indicates that the higher energy-absorption capability of TCWEC is not merely attributed to a smaller fvis value, but rather a planned split of the outer cylinder in DCWEC design into two cylinders in TCWEC, so as to produce an effectively broader resonance property. Under identical sea conditions, it is found that, compared to DCWEC, the optimal capture width of TCWEC is increased by as much as 77\% in regular waves. In irregular waves, the optimal capture width is increased up to 40\% across the entire frequency range. These findings suggest that the energy absorption efficiency of TCWEC is promising and its potential for real-world applications.}, + urldate = {2024-12-21}, + journal = {Renewable Energy}, + author = {Zhang, Xinshu and Guo, Xinhai and Zhi, Pengfei and Yeung, Ronald W.}, + month = dec, + year = {2024}, + keywords = {Coaxial-cylinder WEC, Eigenfunction solution, Optimal capture width, Permanent magnet linear generator, Wave-Energy Converter}, + pages = {121547}, +} + +@article{renzi_hydrodynamics_2013, + title = {Hydrodynamics of the oscillating wave surge converter in the open ocean}, + volume = {41}, + issn = {0997-7546}, + url = {https://www.sciencedirect.com/science/article/pii/S0997754613000174}, + doi = {10.1016/j.euromechflu.2013.01.007}, + abstract = {A potential flow model is derived for a large flap-type oscillating wave energy converter in the open ocean. Application of Green’s integral theorem in the fluid domain yields a hypersingular integral equation for the jump in potential across the flap. The solution is found via a series expansion in terms of the Chebyshev polynomials of the second kind and even order. Several relationships are then derived between the hydrodynamic parameters of the system. Comparison is made between the behaviour of the converter in the open ocean and in a channel. The degree of accuracy of wave tank experiments aiming at reproducing the performance of the device in the open ocean is quantified. A parametric analysis of the system is then undertaken. In particular, it is shown that increasing the flap width has the beneficial effect of broadening the bandwidth of the capture factor curve. This phenomenon can be exploited in random seas to achieve high levels of efficiency.}, + urldate = {2024-08-12}, + journal = {European Journal of Mechanics - B/Fluids}, + author = {Renzi, E. and Dias, F.}, + month = sep, + year = {2013}, + keywords = {Oscillating wave surge converters, Wave energy, Wave–structure interaction}, + pages = {1--10}, +} + +@article{mavrakos_hydrodynamic_2004, + title = {Hydrodynamic coefficients in heave of two concentric surface-piercing truncated circular cylinders}, + volume = {26}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118705000076}, + doi = {10.1016/j.apor.2005.03.002}, + abstract = {The paper aims at presenting a solution of the linearized hydrodynamic radiation problem for two concentric, free surface-piercing truncated vertical cylinders that are forced to independently oscillate in heave in finite depth waters. For the solution of the problem, the flow field around the two bodies is subdivided into ring-shaped fluid regions, in each of which axisymmetric eigenfunction expansions for the velocity potential are made. By implementing Galerkin's method, the various potential solutions are matched and extensive numerical results concerning the hydrodynamic and interaction coefficients in heave for various geometrical configurations presented and discussed.}, + number = {3}, + urldate = {2023-12-13}, + journal = {Applied Ocean Research}, + author = {Mavrakos, Spyros A.}, + month = may, + year = {2004}, + keywords = {Concentric cylinders, Hydrodynamic parameters, Wave energy devices}, + pages = {84--97}, +} diff --git a/pubs/renewable-energy-mdo/cas-common.sty b/pubs/renewable-energy-mdo/cas-common.sty new file mode 100644 index 000000000..155ebc61b --- /dev/null +++ b/pubs/renewable-energy-mdo/cas-common.sty @@ -0,0 +1,2641 @@ +%% +%% This is file `cas-common.sty', +%% +%% This file is part of the 'CAS Bundle'. +%% ...................................... +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.3c of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'CAS Bundle' is +%% given in the file `manifest.txt'. +%% + +% $Id: cas-common.sty 94 2024-05-04 09:27:09Z rishi $ + + \def\RCSfile{cas-common}% + \def\RCSversion{2.4}% + \def\RCSdate{2024/05/04}% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\pretolerance=-1 +\tolerance=1000 +\hyphenpenalty=1000 +\exhyphenpenalty=100 +\brokenpenalty=10000 +\vfuzz=\z@ +\hfuzz=.2pt +\doublehyphendemerits=100 +\emergencystretch=2pt +\frenchspacing +\clubpenalty=10000 +\widowpenalty=10000 + +\ExplSyntaxOn +\makeatletter +% +% Front matter macros +% +% The front matter macros are derived/adopted from stm-prelims.sty +% written by CV Radhakrishnan and copyrighted by him. +% Usage of those macros and methods are gratefully acknowledged. +% + +\tl_set:Nn \l_stm_title_color_tl { black } + +\keys_define:nn { stm / title } + { + mode .choice: , + mode / title .meta:n = + { + type = title , + size = \LARGE , + shape = \upshape , + weight = \mdseries , + color = black , + before = 0pt , + after = 0pt , + align = \raggedright , + } , + mode / alt .meta:n = + { + type = alt , + size = \large , + shape = \upshape , + weight = \mdseries , + color = black , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / sub .meta:n = + { + type = sub , + size = \large , + shape = \upshape , + weight = \mdseries , + color = black!80 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / trans .meta:n = + { + type = trans , + size = \normalsize , + shape = \upshape , + weight = \mdseries , + color = black!60 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / transsub .meta:n = + { + type = transsub , + size = \small , + shape = \upshape , + weight = \mdseries , + color = black!50 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / ascii .meta:n = + { + type = ascii , + size = \small\ttfamily , + shape = \upshape , + weight = \mdseries , + color = black , + before = 12pt , + after = 0pt , + align = \raggedright , + } , + type .tl_set:N = \l_stm_title_type_tl , + size .tl_set:N = \l_stm_title_size_tl , + shape .tl_set:N = \l_stm_title_shape_tl , + weight .tl_set:N = \l_stm_title_weight_tl , + before .dim_set:N = \l_stm_title_before_dim , + after .dim_set:N = \l_stm_title_after_dim , + align .tl_set:N = \l_stm_title_align_tl , + color .tl_set:N = \l_stm_title_color_tl , + } + +\NewDocumentCommand \processTmarks { } + { + \cs_if_free:cTF { mark@title } + { \ignorespaces } + { \tl_set:Nx \l_tmpa_tl { \cs:w mark@title\cs_end: } + \clist_map_inline:cn { mark@title } + { + \str_case:nn { ##1 } + { + { 1 } { $^\star$ } + { 2 } { $^{,\star\star}$ } + { 3 } { $^{,\star\star\star}$ } + } + } + } + } + +\RenewDocumentCommand \title { O{} m } + { + \pdfstringdef \@pdftitle { #2 } + \csgdef { casprelimstitle } { #2 } + \keys_set:nn { stm / title } { #1 } + \seq_gput_right:Nn \g_stm_title_seq + { + \keys_set:nn { stm / title } { #1 } +% \msg_term:n { MODE:~\l_stm_title_mode_tl ~ ~ [#2]} + \par \vskip \l_stm_title_before_dim + \l_stm_title_align_tl + \l_stm_title_size_tl + \l_stm_title_shape_tl + \l_stm_title_weight_tl + \color { \l_stm_title_color_tl } + \noindent \unskip \ignorespaces #2 + \tl_set:Nn \l_tmpa_tl { title } + \tl_if_eq:NNTF \l_stm_title_type_tl \l_tmpa_tl + { \processTmarks } { } + \par \vskip \l_stm_title_after_dim + \normalcolor \normalsize \normalfont + } + } + +% \gappto\usestmtitle{#1}% + +\renewcommand \@title { \seq_use:Nn \g_stm_title_seq { } } + +\NewDocumentCommand \wrAun { m } % unexpanded write to aux + { \iow_now:Nn \@auxout { #1 } } +\NewDocumentCommand \wrAux { m } % expanded write to aux + { \iow_now:Nx \@auxout { #1 } } + +\NewDocumentCommand \wrShipAux { m } % expanded write at shipout + { \iow_shipout:Nx \@auxout { #1 } } +\NewDocumentCommand \wrShipAun { m } % unexpanded write at shipout + { \iow_shipout:Nn \@auxout { #1 } } + +\NewDocumentCommand \stmLabel { m } + { + \@bsphack \wrAux + { \token_to_str:N \NewLabel { #1 } + { \@currentlabel } + } \@esphack + } +\NewDocumentCommand \NewLabel { m m } + { + \cs_if_free:cTF { X@#1: } + { \cs_new:cx { X@#1: } { #2 } } + { \cs_set:cx { X@#1: } { #2 } } + } +\NewDocumentCommand \stmRef { m } + { + \cs_if_free:cTF { X@#1: } + { 0 } {\use:c {X@#1:} } + } + +\seq_clear_new:N \l_fnmk_seq +\NewDocumentCommand \processFnRef { m } + { + \seq_clear:N \l_fnmk_seq + \clist_map_inline:nn { #1 } + { \seq_put_right:Nx \l_fnmk_seq + {\cs_if_free:cTF { X@##1: } {0} { \use:c {X@##1:} }} + } + } + +\NewDocumentCommand \fnmark { O{} } + { \writemarks { fnau\theau@ } { #1 } } + + +\NewDocumentCommand \fnref { m } + { + \processFnRef { #1 } + \wrAux { \token_to_str:N \csxdef {mark@fnau\theau@} + { \seq_use:Nn \l_fnmk_seq { , } } } + } + +\NewDocumentCommand \corref { m } + { + \str_set:Nx \l_tmpa_str { \stmRef { #1 } } + \wrAux { \token_to_str:N \csxdef { mark@corau\theau@ } + { + \cs_if_free:cTF { X@#1: } {0} { \use:c {X@#1:} } + } + } + } + +\NewDocumentCommand \cormark { O{} } + { + \@cormarktrue + \writemarks {corau\theau@} { #1 } + } + +\seq_new:N \l_stm_au_seq +\seq_new:N \l_stm_au_sn_seq +\seq_new:N \l_stm_au_fn_seq +\seq_new:N \l_stm_au_ead_seq +\seq_new:N \l_stm_au_orcid_seq +\seq_new:N \l_stm_au_contrib_role_seq + +\NewDocumentCommand \parsename { m } + { \seq_set_split:Nnn \l_stm_au_seq { ~ } {#1} + \seq_pop_right:NN \l_stm_au_seq \l_stm_au_sn_seq + \seq_map_inline:Nn \l_stm_au_seq + { \seq_put_right:Nx \l_stm_au_ead_seq + { \tl_head:n { #1 }. } } + } + +\NewDocumentCommand \invparsename { m } + { \seq_set_split:Nnn \l_stm_au_seq { ~ } {#1} + \seq_pop_left:NN \l_stm_au_seq \l_stm_au_sn_seq + \seq_map_inline:Nn \l_stm_au_seq + { \seq_put_right:Nx \l_stm_au_ead_seq + { \tl_head:n { #1 }. } } + } + + +\NewDocumentCommand \surname {} { \l_stm_au_sn_seq } +\NewDocumentCommand \firstname {} + { \seq_use:Nn \l_stm_au_seq { ~ } } +\NewDocumentCommand \eadauthor {} + { \seq_map_inline:Nn \l_stm_au_seq + { \regex_match:nnTF { \. } { ##1 } + { ##1 } + { \tl_head:n {##1}. } + } + {~} \l_stm_au_sn_seq + } +\cs_set_eq:NN \shortauthor \eadauthor + +\seq_clear_new:N \l_affmk_seq +\NewDocumentCommand \processAffRef { m } + { + \seq_clear:N \l_affmk_seq + \clist_map_inline:nn { #1 } + { + \seq_put_right:Nx \l_affmk_seq + {\stmRef{##1}} + } + } + +\NewDocumentCommand \processAffNum { m } + { + \seq_clear:N \l_affmk_seq + \clist_map_inline:nn { #1 } + { + \seq_put_right:Nn \l_affmk_seq + { \int_to_alph:n {##1} } + } + } + +\NewDocumentCommand \listAff { } + { + \tl_if_blank:nTF { \l_affmk_seq } + { \tl_gset:Nn \g_stm_comma_tl { 0 } } + { + \seq_use:Nn \l_affmk_seq { , } + \tex_def:D \sep{\unskip,} + } + } + +\NewDocumentCommand \ead { O{} m } + { + \tl_if_empty:nTF { #1 } { \@ead {#2} } { \@uad[#1]{#2} } + } + +\NewDocumentCommand \eadsep { } { } + +\int_new:N \g_ead_int +\seq_new:N \g_stm_ead_seq +\int_new:N \g_uad_int +\seq_new:N \g_stm_uad_seq +\seq_new:N \g_stm_orcid_seq +\seq_new:N \g_stm_contrib_role_seq + +\newcommand\theead { \int_use:N \g_ead_int } + +\NewDocumentCommand \@uad { O{} m } + { + \group_begin: + \wrAux { \token_to_str:N \urlauthor + { \exp_not:n {#2}}{\the\@eadauthor}}% + \group_end: + } + +\NewDocumentCommand \urlauthor { m m } + { + \int_gincr:N \g_uad_int + \seq_gput_right:Nn \g_stm_uad_seq + { + { %\ttfamily \tl_to_str:n + \url{ #1 } } + \parsename { #2 } + \space(\eadauthor) + } + } +\NewDocumentCommand \@stmuads { } + { \seq_use:Nn \g_stm_uad_seq { ;~ } } + +\NewDocumentCommand \@ead { m } + { + \group_begin: + \wrAux { \token_to_str:N \emailauthor + { \exp_not:n { #1 }}{ \the\@eadauthor }} + \group_end: + } + +\newtoks \@eadauthor +\newbool{@cormark} + +\NewDocumentCommand \emailauthor { m m } + { + \int_gincr:N \g_ead_int + \seq_gput_right:Nn \g_stm_ead_seq + { + { \ttfamily \tl_to_str:n { #1 } } + \parsename { #2 } + \space(\eadauthor)% + } + } + +\NewDocumentCommand \@elseads { } + { \seq_use:Nn \g_stm_ead_seq { ;~ } } + + +\NewDocumentCommand \printemails { } +{ + \group_begin: + \int_compare:nNnTF { \int_use:N \g_ead_int } > { 0 } + { + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \bool_if:NTF \g_stm_nologo_bool + { + \int_compare:nTF { \g_ead_int = 1 } + { \textit{Email~address:\c_space_token} } + { \textit{Email~addresses:\c_space_token} } + } + { \includegraphics[height=8pt]{thumbnails/cas-email.jpeg}\c_space_token } + \seq_use:Nn \g_stm_ead_seq { ;~ } + } + } + { } + \group_end: +} + +\NewDocumentCommand \printurls { } +{ + \group_begin: + \int_compare:nTF { \g_uad_int > 0 } + { + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \bool_if:NTF \g_stm_nologo_bool + { \textit{URL:\c_space_token} } + { \includegraphics[height=8pt]{thumbnails/cas-url.jpeg}\c_space_token } + \seq_use:Nn \g_stm_uad_seq { ;~ } + } + } + { } + \group_end: +} + +% +% orcid +% +\NewDocumentCommand \orcidauthor { m m } + { + \seq_gput_right:Nn \g_stm_orcid_seq + { + { \ttfamily \tl_to_str:n { #1 } } + \parsename{#2} + \space(\eadauthor) + } + } + +\NewDocumentCommand \printorcid { } +{ + \group_begin: + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \textsc{orcid}(s):\c_space_token + \seq_use:Nn \g_stm_orcid_seq { ;~ } + } + \group_end: +} + +% +% Contrib Role +% + +\seq_gclear_new:N \g_stm_credits_seq + +\NewDocumentCommand \ContribRole { m } +{ + \wrAux { \token_to_str:N \creditauthor + { #1 } { \the\@eadauthor } } +} + +\NewDocumentCommand \creditauthor { m m } +{ + \seq_gput_right:Nx \g_stm_credits_seq + { { \exp_not:N\bfseries #2 :}\space #1 } +} + +\cs_set_eq:NN \credit \ContribRole + +\NewDocumentCommand \printcredits { } +{ + \seq_if_empty:NF \g_stm_credits_seq + { + \section*{CRediT ~authorship ~contribution ~statement} + \ifnum\theblind>0\relax + \vspace*{10mm} + \else + \seq_use:Nn \g_stm_credits_seq { .~ }. + \fi + } +} + +\NewDocumentCommand \writemarks { m m } + { \wrAux { \token_to_str:N \csgdef{mark@#1}{#2} } } + +\seq_new:N \g_stm_title_seq + +\NewDocumentCommand \tnotemark { O{} } + { \writemarks { title } { #1 } } + +\NewDocumentCommand \@tnoteref { m } + { \int_set:Nn \l_tmpa_int { 0 } + \clist_map_inline:nn { #1 } + { +% \iow_term:n { ##1 .. [\cs:w X@##1:\cs_end:] } + \cs_if_free:cTF { X@##1: } + { \csdef{X@##1:}{0} } + { + \tl_set:Nx \l_tmpa_tl { \cs:w X@##1:\cs_end: } + \int_case:nn { \l_tmpa_tl } + { + { 1 } { $^\star$ } + { 2 } { $^{,\star\star}$ } + { 3 } { $^{,\star\star\star}$ } + } + } + } + } + +\seq_new:N \g_stm_tnote_seq +\int_new:N \g_stm_tnote_int + +\NewDocumentCommand \tnotetext { O{} m } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { +% \iow_term:n { [TNOTE:~alpha] }% + \seq_gput_right:Nn \g_stm_tnote_seq + { \int_incr:N \g_stm_tnote_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_tnote_int } + \stmLabel { #1 } + \renewcommand\thefootnote + { \int_case:nn { \g_stm_tnote_int } + { + { 1 } { $^\star$ } + { 2 } { $^{\star\star}$ } + { 3 } { $^{\star\star\star}$ } + } + } + \footnotetext { #2 } + } + } + { +% \iow_term:n { [TNOTE:~Number] } + \seq_gput_right:Nn \g_stm_tnote_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \renewcommand\thefootnote + { \int_case:nn { \l_tmpa_int } + { + { 1 } { $^\star$ } + { 2 } { $^{\star\star}$ } + { 3 } { $^{\star\star\star}$ } + } + } + \footnotetext { #2 } + } + } + } + +\newcommand \printtnotes { \seq_use:Nn \g_stm_tnote_seq { \par } } + +\seq_new:N \g_stm_nonumnote_seq + +\NewDocumentCommand \nonumnote { m } +{ + \group_begin: + \seq_gput_right:Nn \g_stm_nonumnote_seq + { + \tex_def:D \thefootnote { } + \footnotetext{#1} + } + \group_end: +} + +\newcommand \printnonumnotes { \seq_use:Nn \g_stm_nonumnote_seq { \par } } + +\seq_new:N \g_stm_fnote_seq +\int_new:N \g_stm_fnote_int + +\NewDocumentCommand \fntext { O{} m } +{ + \tl_if_head_eq_catcode:nNTF { #1 } a + { +% \iow_term:n { [FN:~alpha] }% + \seq_gput_right:Nn \g_stm_fnote_seq + { \int_incr:N \g_stm_fnote_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_fnote_int } + \stmLabel { #1 } + \tex_def:D \thefootnote { \int_use:N \g_stm_fnote_int } + \footnotetext { #2 } + } + } + { +% \iow_term:n { [FN:~Number] } + \seq_gput_right:Nn \g_stm_fnote_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \tex_def:D \thefootnote { \int_use:N \l_tmpa_int } + \footnotetext { #2 } + } + } +} + +\newcommand \printfnotes { \seq_use:Nn \g_stm_fnote_seq { \par } } + +\seq_new:N \g_stm_cor_seq +\int_new:N \g_stm_cor_int + +\NewDocumentCommand \cortext { O{} m } +{ + \tl_if_head_eq_catcode:nNTF { #1 } a + { +% \iow_term:n { [COR:~alpha] }% + \seq_gput_right:Nn \g_stm_cor_seq + { \int_incr:N \g_stm_cor_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_cor_int } + \stmLabel { #1 } + \tex_def:D \thefootnote + { \int_case:nn { \g_stm_cor_int } + { + { 1 } { $\ast$ } + { 2 } { $\ast\!\ast$ } + { 3 } { $\ast\!\ast\!\ast$ } + } + } + \footnotetext { #2 } + } + } + { +% \iow_term:n { [COR:~Number] } + \seq_gput_right:Nn \g_stm_cor_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \tex_def:D \thefootnote + { \int_case:nn { \l_tmpa_int } + { + { 1 } { $\ast$ } + { 2 } { $\ast\!\ast$ } + { 3 } { $\ast\!\ast\!\ast$ } + } + } + \footnotetext { #2 } + } + } +} + +\newcommand \printcornotes { \seq_use:Nn \g_stm_cor_seq { \par } } + +\NewDocumentCommand \process@marks { } + { + \cs_if_free:cTF { mark@corau\theauthor } + { \ignorespaces } + { \str_set:Nx \l_tmpa_str { \use:c{ mark@corau\theauthor } } + \int_case:nn { \l_tmpa_str } + { + { 1 } { \sep$\ast$ } + { 2 } { \sep$\ast\ast$ } + { 3 } { \sep$\ast\!\ast\!\ast$ } + } + \tex_def:D \sep{\unskip,} + } + \cs_if_free:cTF { mark@fnau\theauthor } + { \ignorespaces } + { \sep\use:c { mark@fnau\theauthor } + \tex_def:D \sep{\unskip,} + } + } + + +% +% Author macros +% +\seq_new:c { g_stm_au0_seq } +\seq_new:c { g_stm_clau0_seq } +\int_new:N \g_stm_au_int +\int_new:N \g_stm_aau_int + +\NewDocumentCommand \ResetMarks { } + { + \keys_set:nn { stm / author } + { + auid = {} , + bioid = {} , + alt = {} , + style = { normal } , + prefix = {} , + suffix = {} , + degree = {} , + role = {} , + orcid = {} , + collab = { false } , + type = { author } , + anon = { false } , + deceased = { false } , + twitter = {} , + facebook = {} , + linkedin = {} , + plus = {} , + gplus = {} , + } + \tex_gdef:D \sep{} + \tex_gdef:D \stm@corref{} + \tex_gdef:D \@fnmark {} + } + + +\int_new:N \l_autype_int +\keys_define:nn { stm / author } + { + auid .tl_set:N = \l_stm_au_id_tl , + bioid .tl_set:N = \l_stm_au_bioid_tl , + alt .tl_set:N = \l_stm_au_alt_tl , + style .tl_set:N = \l_stm_au_style_tl , + prefix .tl_set:N = \l_stm_au_prefix_tl , + suffix .tl_set:N = \l_stm_au_suffix_tl , + degree .tl_set:N = \l_stm_au_degree_tl , + role .tl_set:N = \l_stm_au_role_tl , + orcid .tl_set:N = \l_stm_au_orcid_tl , + collab .bool_set:N = \l_stm_au_collab_bool , + type .multichoice:, + type/author .code:n = { \int_set:Nn \l_autype_int { 0 } }, + type/editor .code:n = { \int_set:Nn \l_autype_int { 1 } }, + type/collab .code:n = { \int_set:Nn \l_autype_int { 2 } }, + type/anon .code:n = { \int_set:Nn \l_autype_int { 3 } }, +% type/collab .bool_set:N = \l_stm_au_collab_bool , +% type/anon .bool_set:N = \l_stm_au_anon_bool , + anon .bool_set:N = \l_stm_au_anon_bool , + deceased .bool_set:N = \l_stm_au_deceased_bool , + twitter .tl_set:N = \l_stm_au_twitter_tl , + facebook .tl_set:N = \l_stm_au_facebook_tl , + linkedin .tl_set:N = \l_stm_au_linkedin_tl , + plus .tl_set:N = \l_stm_au_gplus_tl , + gplus .tl_set:N = \l_stm_au_gplus_tl , + } + +\keys_set:nn { stm / author } + { + auid = {} , + bioid = {} , + alt = {} , + style = { normal } , + prefix = {} , + suffix = {} , + degree = {} , + role = {} , + orcid = {} , + collab = { false } , + type = { author } , + anon = { false } , + deceased = { false } , + twitter = {} , + facebook = {} , + linkedin = {} , + plus = {} , + gplus = {} , + } + +\keys_define:nn { stm / ausetup } + { + type .choice: , + type / authors .meta:n = + { + size = \large , + shape = \upshape , + weight = \mdseries , + before = \bigskipamount , + after = 0pt , + align = \raggedright , + color = black , + lskip = 0pt , + rskip = 0pt , + } , + type / collaboration .meta:n = + { + size = \Large , + shape = \upshape , + weight = \mdseries , + before = \bigskipamount , + after = 0pt , + align = \raggedright , + color = black , + lskip = 0pt , + rskip = 0pt , + } , + size .tl_set:N = \l_stm_augroup_size_tl , + shape .tl_set:N = \l_stm_augroup_shape_tl , + weight .tl_set:N = \l_stm_augroup_weight_tl , + before .dim_set:N = \l_stm_augroup_before_dim , + after .dim_set:N = \l_stm_augroup_after_dim , + align .tl_set:N = \l_stm_augroup_align_tl , + color .tl_set:N = \l_stm_augroup_color_tl , + lskip .dim_set:N = \l_stm_augroup_lskip_tl , + rskip .dim_set:N = \l_stm_augroup_rskip_tl , + } + +\DeclareDocumentCommand \stmAuthorSetup { m } + { \keys_set:nn { stm / ausetup } { #1 } } +\DeclareDocumentCommand \stmausetup { m } + { \tl_set:Nn \l_stm_au_setup_tl + { \keys_set:nn { stm / ausetup } { #1 } } + } +\DeclareDocumentCommand \stmclbsetup { m } + { \tl_set:Nn \l_stm_clb_setup_tl + { \keys_set:nn { stm / ausetup } { #1 } } + } + +\stmausetup { } +\stmclbsetup { } + +\seq_new:N \g_stm_maltese_seq +\seq_new:N \g_stm_facebook_seq +\seq_new:N \g_stm_twitter_seq +\seq_new:N \g_stm_gplus_seq +\seq_new:N \g_stm_linkedin_seq +\bool_new:N \g_stm_nologo_bool +\bool_gset_false:N \g_stm_nologo_bool + +\NewDocumentCommand \twitterauthor { m m } + { + \seq_gput_right:Nn \g_stm_twitter_seq + { + \parsename { #2 } + \url{https://twitter.com/\tl_to_str:n{#1}}\space(\eadauthor) + } + } +\NewDocumentCommand \facebookauthor { m m } + { + \seq_gput_right:Nn \g_stm_facebook_seq + { + \parsename { #2 } + \url{https://www.facebook.com/\tl_to_str:n{#1}}\space(\eadauthor) % + } + } +\NewDocumentCommand \gplusauthor { m m } + { + \seq_gput_right:Nn \g_stm_gplus_seq + { + \parsename { #2 } + \url{https://plus.google.com/\tl_to_str:n{#1}}\space(\eadauthor)% + } + } +\NewDocumentCommand \linkedinauthor { m m } + { + \seq_gput_right:Nn \g_stm_linkedin_seq + { + \parsename { #2 } + \url{https://www.linkedin.com/profile/view?id=\tl_to_str:n{#1}}% + \space(\eadauthor) + } + } + +\NewDocumentCommand \printmaltese { } + { + \seq_use:Nn { \g_stm_maltese_seq } { } + } +\NewDocumentCommand \printfacebook { } + { + \seq_if_empty:NTF \g_stm_facebook_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Facebook:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-facebook.jpeg}\c_space_token } + \seq_use:Nn \g_stm_facebook_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printtwitter { } + { + \seq_if_empty:NTF \g_stm_twitter_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Twitter:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-twitter.jpeg}\c_space_token } + \seq_use:Nn \g_stm_twitter_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printgplus { } + { + \seq_if_empty:NTF \g_stm_gplus_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Google+:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-gplus.jpeg}\c_space_token } + \seq_use:Nn \g_stm_gplus_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printlinkedin { } + { + \seq_if_empty:NTF \g_stm_linkedin_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { LinkedIn:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-linkedin.jpeg}\c_space_token } + \seq_use:Nn \g_stm_linkedin_seq {,\c_space_token } + } + } + } + +\seq_new:N \g_stm_prelimsau_seq + +\csxdef{infoauthors}{} +\cs_new:Nn \no_break_space: { \nobreak{~} \penalty 10000 } +\RenewDocumentCommand \author { O{} m O{} } + { + \ResetMarks + \tl_if_blank:nTF { #3 } { } + { \keys_set:nn { stm / author } { #3 } } +% + \int_gincr:N \g_stm_au_int + \tex_gdef:D \theau@ { \int_use:N \g_stm_au_int } +% + \seq_gput_right:Nn \g_stm_prelimsau_seq { #2 } + \bool_if:NTF \l_stm_au_collab_bool + { \seq_gput_right:cn { g_stm_clau\int_use:N \g_stm_augr_int _seq } } + { \seq_gput_right:cn { g_stm_au\int_use:N \g_stm_augr_int _seq } } + { + \int_gincr:N \g_stm_aau_int + \tex_gdef:D \theauthor {\int_use:N \g_stm_aau_int } + \keys_set:nn { stm /author } { #3 } + \tl_if_head_eq_catcode:nNTF { #1 } a + { \processAffRef { #1 } } + { \processAffNum { #1 } } + \tl_if_empty:NF \l_stm_au_prefix + { \l_stm_au_prefix_tl \c_space_token } + \str_if_eq:VnTF \l_stm_au_style_tl { chinese } + { %\iow_term:n {STYLE~T=\l_stm_au_style_tl........} + \invparsename { #2 } + \textcolor{\l_stm_augroup_color_tl}{\surname} + \no_break_space: + \textcolor{\l_stm_augroup_color_tl !50}{\firstname} + } + { %\iow_term:n {STYLE~F=\l_stm_au_style_tl........} + \parsename { #2 } + \textcolor{\l_stm_augroup_color_tl !50}{\firstname} + \no_break_space: + \textcolor{\l_stm_augroup_color_tl}{\surname} + } + \tl_if_empty:NF \l_stm_au_suffix_tl + { \c_space_token \l_stm_au_suffix_tl } + \unskip + \textsuperscript + { + \tl_if_blank:nTF { #1 } + { \tex_def:D \sep{} } + { {\itshape\listAff} \tex_def:D \sep{\unskip,} } + \process@marks + \bool_if:NT \l_stm_au_deceased_bool + { \sep \maltese + \tex_def:D \sep { \unksip, } + } + } + \tl_if_empty:NF \l_stm_au_degree_tl + { ,\c_space_token \l_stm_au_degree_tl } + \tl_if_empty:NF \l_stm_au_role_tl + { \c_space_token (\l_stm_au_role_tl) } +% + \ResetMarks + } +% + \bool_if:NT \l_stm_au_deceased_bool + { + \seq_gput_right:Nn \g_stm_maltese_seq + { + \tex_def:D \thefootnote { \maltese } + \footnotetext{Deceased~author.} + } + } +% various social media + \tl_if_empty:NTF \l_stm_au_facebook_tl { } + { + \wrAux { \token_to_str:N \facebookauthor + { \l_stm_au_facebook_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_twitter_tl + { + \wrAux { \token_to_str:N \twitterauthor + { \l_stm_au_twitter_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_gplus_tl + { + \wrAux { \token_to_str:N \gplusauthor + { \l_stm_au_gplus_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_linkedin_tl + { + \wrAux { \token_to_str:N \linkedinauthor + { \l_stm_au_linkedin_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_orcid_tl + { + \wrAux { \token_to_str:N \orcidauthor + { \l_stm_au_orcid_tl } { \exp_not:n {#2} } } + } +% + \@eadauthor={#2} + \pdfstringdef\__info_au: { #2 } + \int_compare:nNnTF { \theau@ } < { 4 } + { \xappto \infoauthors { \__info_au: , ~ } } + { + \int_compare:nNnTF { \theau@ } = { 4 } + { \xappto \infoauthors { et~al. } } + { } + } + } + +\NewDocumentCommand \stmauthors { } + { + \group_begin: + \stmAuthorSetup { type = authors } + \l_stm_au_setup_tl + \par \vskip\l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \bool_if:NTF \g_stm_augr_bool + { \seq_use:Nn \g_stm_augr_seq { \par } } + { + \seq_use:cnnn { g_stm_au\int_use:N\g_stm_augr_int _seq } + { ,~ } { ,~ } { ~and~ } + } + \par\vskip\l_stm_augroup_after_dim + \group_end: + } + +\seq_new:c { g_stm_collab0_seq } +\bool_new:N \g_stm_in_clau_bool + +\NewDocumentCommand \stmcollab { } + { + \bool_if:NTF \g_stm_augr_bool + { } + { + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cn {g_stm_collab\int_use:N \g_stm_aaugr_int _seq} { } + \seq_use:cnnn {g_stm_clau\int_use:N \g_stm_aaugr_int _seq} + { ~and~ } { ,~ } { ~and~ } + \par \vskip \l_stm_augroup_after_dim + \group_end: + } + } + +\newenvironment{collaboration}[1][] + { + \seq_gput_right:cn {g_stm_collab\int_use:N \g_stm_augr_int _seq} + { \textit{Collaboration:~} #1 \par \smallskip } + } + { } + +\NewDocumentCommand \dept { m } { #1 } +\NewDocumentCommand \divn { m } { #1 } +\NewDocumentCommand \aline { m } { #1 } +\NewDocumentCommand \city { m } { #1 } +\NewDocumentCommand \cnty { m } { #1 } +\NewDocumentCommand \phone { m } { #1 } +\NewDocumentCommand \fax { m } { #1 } +\NewDocumentCommand \aurl { m } { #1 } + +\def\ca_affitem_postskip{\mbox{~}\unskip\ignorespaces} +%%Author Address +\DeclareDocumentCommand \ca_organization { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_postal_code { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_aff_city { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_address_line { O{,}m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_state { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_country { O{ } m } + { +% #2 #1 + \csgappto { ca_affiliation_values } { #2 #1 } + } + +\DeclareDocumentCommand \ca_stm_organization { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_postal_code { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_aff_city { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_aff_address_line { O{,}m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_state { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_country { O{ } m } + { + #2 #1 + } + +\keys_define:nn { stm / affiliation } + { + op .tl_set_x:N = \l_organization_punc_tl, + oraganizationsep .tl_set_x:N = \l_organization_punc_tl, + ap .tl_set_x:N = \l_address_line_punc_tl, + addresslinesep .tl_set_x:N = \l_address_line_punc_tl, + cp .tl_set_x:N = \l_city_punc_tl, + citysep .tl_set_x:N = \l_city_punc_tl, + pp .tl_set_x:N = \l_postal_code_punc_tl, + postcodesep .tl_set_x:N = \l_postal_code_punc_tl, + sp .tl_set_x:N = \l_state_punc_tl, + statesep .tl_set_x:N = \l_state_punc_tl, + o .code:n = { \ca_organization[\l_organization_punc_tl]{#1} }, + organization .code:n = { \ca_organization[\l_organization_punc_tl]{#1} }, + a .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} }, + addressline .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} }, + c .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} }, + city .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} }, + p .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} }, + postcode .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} }, + s .code:n = { \ca_state[\l_state_punc_tl]{#1} }, + state .code:n = { \ca_state[\l_state_punc_tl]{#1} }, + orp .tl_set_x:N = \l_organization_punc_tl, + adp .tl_set_x:N = \l_address_line_punc_tl, + cip .tl_set_x:N = \l_city_punc_tl, + pcp .tl_set_x:N = \l_postal_code_punc_tl, + stp .tl_set_x:N = \l_state_punc_tl, + cyp .tl_set_x:N = \l_country_punc_tl, + or .code:n = { \ca_organization[\l_organization_punc_tl]{#1} }, + ad .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} }, + ci .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} }, + pc .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} }, + st .code:n = { \ca_state[\l_state_punc_tl]{#1} }, + cy .code:n = { \ca_country[\l_country_punc_tl]{#1} }, + country .code:n = { \ca_country[\l_country_punc_tl]{#1} }, + unknown .code:n = { + \ifstrempty { #1 } { + \csxappto { ca_affiliation_values } + { {\l_keys_key_tl}~ } + } { + \csxappto { ca_affiliation_values } + { {#1}~ } + } + } + } + +\cs_set:Npn \__reset_affiliation: +{ + \tl_gset:Nn \l_organization_punc_tl { , } + \tl_gset:Nn \l_address_line_punc_tl { , } + \tl_gset:Nn \l_city_punc_tl { , } + \tl_gset:Nn \l_postal_code_punc_tl { , } + \tl_gset:Nn \l_state_punc_tl { , } + \tl_gset:Nn \l_country_punc_tl { } +} + +\seq_new:c { g_stm_aff0_seq } +\int_new:N \g_stm_aff_int +\tl_new:N \l_addrtype_tl + +\keys_define:nn { stm / address } + { + foot .bool_gset:N = \g_stm_addr_foot_bool , + name .tl_set:N = \l_stm_addr_name_tl , + type .multichoice: , + type/alt .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { Alternate~address } } , + type/addl .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { Additional~address } } , + type/regular .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { } } , + type/custom .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { \l_stm_addr_name_tl } } , + } +\DeclareDocumentCommand \stmAddrSetup { m } + { \keys_set:nn { stm / address } { #1 } } + +\keys_set:nn { stm / address } +{ + foot = { false } , + type = { regular } , + name = { Alternate~address } , +} + +\cs_new:Nn \__reset_addr: +{ + \bool_gset_false:N \g_stm_addr_foot_bool + \tl_set:Nn \l_stm_addr_type_tl { } + \tl_set:Nn \l_stm_addr_name_tl { Alternate~address } +} + +\seq_new:N \g_stm_aff_foot_seq + +\NewDocumentCommand \printaddrinfoot { } + { + { \seq_use:Nn \g_stm_aff_foot_seq { \par } } + } + +\NewDocumentCommand \address { O{} m O{} } + { + \__reset_addr: + \keys_set:nn { stm / address } { #3 } + \bool_if:NTF \g_stm_addr_foot_bool + { \__foot_address:nnn [#1]{#2}[#3] } + { + \seq_gput_right:cn { g_stm_aff\int_use:N \g_stm_augr_int _seq } + { \tl_if_blank:nTF { #1 } + { + \tex_xdef:D \thefootnote{} + { #2 } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \int_gincr:N \g_stm_aff_int + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \stmLabel {#1} + \textsuperscript{\itshape\@currentlabel} #2 + } + { + \int_gset:Nn \g_stm_aff_int { #1 } + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \textsuperscript{\itshape\@currentlabel} #2 + } + } + } + } + } + +\int_new:N \g_stm_aff_ext_int +\int_new:N \g_stm_aff_int_int + +\NewDocumentCommand \affiliation { O{} m O{} } + { + \__reset_affiliation: + \csgdef { ca_affiliation_values } { } + \IfNoValueTF { #2 } + { } + { + \keys_set:nn { stm / affiliation } { #2 } + } + \int_gincr:N \g_stm_aff_ext_int + \csxdef{ca_affiliation_\int_use:N \g_stm_aff_ext_int}{\csuse { ca_affiliation_values }} + \__reset_addr: + \keys_set:nn { stm / address } { #3 } + \bool_if:NTF \g_stm_addr_foot_bool + { \__foot_affiliation:nnn [#1]{#2}[#3] } + { + \seq_gput_right:cn { g_stm_aff\int_use:N \g_stm_augr_int _seq } + { \int_gincr:N \g_stm_aff_int_int + \tl_if_blank:nTF { #1 } + { + \tex_xdef:D \thefootnote{} + { \csuse { ca_affiliation_\int_use:N \g_stm_aff_int_int } } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \int_gincr:N \g_stm_aff_int + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \stmLabel {#1} + \textsuperscript{\itshape\@currentlabel} { \csuse { ca_affiliation_\int_use:N \g_stm_aff_int_int } } + } + { + \int_gset:Nn \g_stm_aff_int { #1 } + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \textsuperscript{\itshape\@currentlabel} { \csuse { ca_affiliation_\int_use:N \g_stm_aff_int_int } } + } + } + } + } +} + +\cs_new:Npn \__foot_address:nnn [#1]#2[#3] +{ + \keys_set:nn { stm / address } { #3 } + \seq_gput_right:cn { g_stm_aff_foot_seq } + { + \tl_if_empty:nTF { #1 } + { + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { + \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token #2 } + } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + % + { + \tex_def:D \thefootnote{\itshape\@currentlabel} + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: \c_space_token #2} } + } + { + \tex_def:D \thefootnote { \itshape\int_to_alph:n { #1 } } + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token #2 } } + } + } + } +} + +\int_new:N \g_stm_fn_aff_ext_int +\int_new:N \g_stm_fn_aff_int_int +\cs_new:Npn \__foot_affiliation:nnn [#1]#2[#3] +{ + \__reset_affiliation: + \csgdef { ca_affiliation_values } { } + \IfNoValueTF { #2 } + { } + { + \keys_set:nn { stm / affiliation } { #2 } + } + \int_gincr:N \g_stm_aff_ext_int + \csxdef{ca_affiliation_\int_use:N \g_stm_fn_aff_ext_int}{\csuse { ca_affiliation_values }} + \keys_set:nn { stm / address } { #3 } + \seq_gput_right:cn { g_stm_aff_foot_seq } + { + \int_gincr:N \g_stm_aff_int_int + \tl_if_empty:nTF { #1 } + { + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{\csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + { + \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token \csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int } } + } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + % + { + \tex_def:D \thefootnote{\itshape\@currentlabel} + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{\csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: \c_space_token + \csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + } + { + \tex_def:D \thefootnote { \itshape\int_to_alph:n { #1 } } + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{\csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token \csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int } } } + } + } + } +} + + +\keys_define:nn { stm / affsetup } + { + type .choice: , + type / normal .code:n = + { \tl_set:Nn \l_stm_aff_type_tl { 0 } } , + type / nonum .code:n = + { \tl_set:Nn \l_stm_aff_type_tl { 1 } } , + + size .tl_set:N = \l_stm_aff_size_tl , + shape .tl_set:N = \l_stm_aff_shape_tl , + weight .tl_set:N = \l_stm_aff_weight_tl , + before .dim_set:N = \l_stm_aff_before_dim , + after .dim_set:N = \l_stm_aff_after_dim , + align .tl_set:N = \l_stm_aff_align_tl , + color .tl_set:N = \l_stm_aff_color_tl , + lskip .dim_set:N = \l_stm_aff_lskip_dim , + rskip .dim_set:N = \l_stm_aff_rskip_dim , + } + +\DeclareDocumentCommand \stmAffSetup { m } + { \keys_set:nn { stm / affsetup } { #1 } } +\DeclareDocumentCommand \stmaffsetup { m } + { \tl_set:Nn \l_stm_aff_setup_tl + { \keys_set:nn { stm / affsetup } { #1 } } + } +\stmaffsetup { + size = \footnotesize, + shape = \itshape, + color = black, + before = 0pt, + weight = \mdseries, + align = \raggedright, + } + +\NewDocumentCommand \stmaddress { } + { + \bool_if:NTF \g_stm_augr_bool + { } + { + \group_begin: + \stmAffSetup { type = normal } + \l_stm_aff_setup_tl + \par \vskip\l_stm_aff_before_dim + \l_stm_aff_align_tl + \l_stm_aff_size_tl + \l_stm_aff_shape_tl + \l_stm_aff_weight_tl + \color{ \l_stm_aff_color_tl } + \seq_use:cn { g_stm_aff\int_use:N \g_stm_aaugr_int _seq } + { \par\vskip2pt } + \par\vskip\l_stm_aff_after_dim + \group_end: + } + } + +\int_new:N \g_stm_augr_int +\seq_new:N \g_stm_augr_seq +\int_new:N \g_stm_aaugr_int +\bool_new:N \g_stm_augr_bool + +\NewDocumentEnvironment { augroup } { } + { + \bool_gset_true:N \g_stm_augr_bool + \int_gincr:N \g_stm_augr_int + \seq_new:c {g_stm_au\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_aff\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_collab\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_clau\int_use:N \g_stm_augr_int _seq} +% \iow_term:n { AUGR:~\int_use:N \g_stm_augr_int ... } + } + { + \seq_gput_right:Nn \g_stm_augr_seq + { + \int_gincr:N \g_stm_aaugr_int + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cnnn { g_stm_au\int_use:N \g_stm_aaugr_int _seq } + { ~and~ } { ,~ } { ~and~ } + \par \vskip \l_stm_augroup_after_dim + \group_end: +% + \group_begin: + \stmAffSetup { type = normal } + \l_stm_aff_setup_tl + \par \vskip\l_stm_aff_before_dim + \l_stm_aff_align_tl + \l_stm_aff_size_tl + \l_stm_aff_shape_tl + \l_stm_aff_weight_tl + \color{ \l_stm_aff_color_tl } + \seq_use:cn { g_stm_aff\int_use:N \g_stm_aaugr_int _seq } + { \par \smallskip } + \par\vskip\l_stm_aff_after_dim +% \iow_term:n { AAUGR:~\int_use:N \g_stm_aaugr_int ... } + \group_end: +% + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cn {g_stm_collab\int_use:N \g_stm_aaugr_int _seq} { } + \seq_use:cnnn {g_stm_clau\int_use:N \g_stm_aaugr_int _seq} + { ~and~ } { ,~ } { ~and~ } + \par\vskip \l_stm_augroup_after_dim + \group_end: + } + } + +% +% Abstract +% +\RequirePackage{moreverb} + +\tex_gdef:D \abstractname { A\,B\,S\,T\,R\,A\,C\,T } +\tl_new:N \l_stm_abs_title_tl +\box_new:N \g_stm_abs_box + +\NewDocumentEnvironment { Abstract } { o } +{ +% \global\setbox \g_stm_abs_box = \vtop \bgroup +% \hsize = .65 \textwidth \parindent \z@ + \group_begin: + \IfNoValueTF { #1 } { } + { \tex_gdef:D \abstractname { #1 } } + \parindent \z@ + \box_if_empty:NTF \g_stm_key_box + { \leftskip = .35 \textwidth } + { + \dim_gset:Nn \l_tmpa_dim { \box_ht:N \g_stm_key_box } + \dim_gadd:Nn \l_tmpa_dim { \box_dp:N \g_stm_key_box } + \leftskip .35\textwidth + \hspace*{-.35 \textwidth } + \noindent\hbox_to_wd:nn { \z@ } { \box \g_stm_key_box } + \skip_vertical:n { - \l_tmpa_dim } + } + \noindent \abstractname \par + \skip_vertical:n { -4pt} + \noindent \rule{.65\textwidth}{.2pt}\par \footnotesize + \ignorespaces \everypar { \parindent=1.5em } +} +{ \par \group_end: } + +\NewDocumentEnvironment { PrelimsAbstract } { O{} } + {\parindent=0pt + { \fontsize{14pt}{16pt}\selectfont #1 }\par + \vskip12pt + { \fontsize{12pt}{14pt}\bfseries\selectfont\casprelimstitle } \par + \vskip6pt + \ifnum\theblind>0\relax + \vspace*{\the\baselineskip} + \else + \seq_use:Nn \g_stm_prelimsau_seq { ,~ } + \fi + \vskip12pt + \par + } + {} + +\RenewDocumentEnvironment { abstract } { o } +{ + \IfNoValueTF { #1 } { } + { \tex_gdef:D \abstracttitle { #1 } } + \verbatimwrite{\jobname.abs} +} +{ \endverbatimwrite } + +\newbox\casgrabsbox +\newbox\casauhlbox +\newbool { usecasgrabsbox } +\newbool { usecashlsbox } + +\DeclareDocumentEnvironment { graphicalabstract } { O{Graphical~Abstract} } +{ + \global \booltrue { usecasgrabsbox } + \global\setbox\casgrabsbox=\vbox\bgroup + \begin{PrelimsAbstract}[#1] + \noindent \ignorespaces +} +{ + \end{PrelimsAbstract} + \egroup +} + +\DeclareDocumentEnvironment { highlights } { O{Highlights} } +{ + \global \booltrue { usecashlsbox } + \global\setbox\casauhlbox=\vbox\bgroup + \begin{PrelimsAbstract}[#1] + \noindent \ignorespaces + \begin{itemize} +} +{ + \end{itemize} + \end{PrelimsAbstract} + \egroup +} + + +\NewDocumentCommand \dashrule { O{.4pt} m m } + { + \color{black!50} + \skip_vertical:n { #2 } + \noindent \rule { \linewidth } { #1} + \normalcolor \skip_vertical:n { #3 } + } + +\NewDocumentCommand \keywordtitle { } { Keywords } +\NewDocumentCommand \keywordtitlesep { } {:\c_space_token } +\box_new:N \g_stm_key_box + +\NewDocumentCommand \MSC { O{} m } + { + \par\noindent \textit { #1\c_space_token MSC:\c_space_token } #2 + } +\NewDocumentCommand \JEL { m } + { + \par\noindent \textit { JEL:\c_space_token } #1 + } +\NewDocumentCommand \PACS { m } + { + \par\noindent \textit { PACS:\c_space_token } #1 + } + +\NewDocumentEnvironment { keywords } { O{ Keywords } } + { + \tex_global:D \tex_setbox:D \g_stm_key_box = \vtop \bgroup + \hsize=.25 \textwidth + \cs_new:Nn \sep: { \par } + \cs_set_eq:NN \sep \sep: + \parindent \z@ + A\,R\,T\,I\,C\,L\,E\ \ I\,N\,F\,O \par \skip_vertical:n { -3pt } + \rule{.25 \textwidth}{.2pt}\par\footnotesize + \noindent \textit { #1 }: \par + } + { \egroup } + + +% +% Print all footnotes in the title page +% + +\bool_new:N \g_stm_longmktitle_bool +\int_new:N \g_stm_jtype_int +\int_new:N \g_stm_blind_int + +\NewDocumentCommand \printFirstPageNotes { } + { + \bool_if:NTF \g_stm_longmktitle_bool + { \tex_let:D \columnwidth = \textwidth } + { } + \int_compare:nTF { \g_stm_jtype_int > 5 } + { \stmaddress } + { } + \printtnotes + \printnonumnotes + \bool_if:NTF \g_stm_blind_bool + { } + { + \printcornotes + \printmaltese + \printaddrinfoot + \printemails + \printurls + \printorcid + \printfacebook + \printtwitter + \printgplus + \printlinkedin + \printfnotes + } + \bool_if:NTF \g_stm_longmktitle_bool + { + \if@twocolumn + \tex_let:D \columnwidth = \Columnwidth \fi + } + { } + \normalcolor + } + +% +% Date History +% +\tl_new:N \g_stm_recd_tl +\tl_new:N \g_stm_accd_tl +\tl_new:N \g_stm_revd_tl +\tl_new:N \g_stm_pub_online_tl +\tl_new:N \g_stm_pub_print_tl + +\cs_new:Npn \date_parse:n #1 { \date_parse_aux:w #1 \q_stop } +\cs_new:Npn \date_parse_aux:w #1 / #2 / #3 \q_stop +{ } + +\NewDocumentCommand \received { m } + { \tl_gput_right:Nn \g_stm_recd_tl { #1 } } +\NewDocumentCommand \accepted { m } + { \tl_gput_right:Nn \g_stm_accd_tl { #1 } } +\NewDocumentCommand \revised { m } + { \tl_gput_right:Nn \g_stm_revd_tl { #1 } } +\NewDocumentCommand \published { O{} m } +{ + \tl_if_eq:nnTF { #1 } { online } + { \tl_if_gput_right:Nn \g_stm_pub_online_tl { #2 } } + { \tl_if_gput_right:Nn \g_stm_pub_print_tl { #2 } } +} + +% +% Verse/Recto +% +\tl_new:N \l_stm_verso_tl +\tl_new:N \l_stm_recto_tl + +\NewDocumentCommand \verso { m } +{ \tl_set:Nn \l_stm_verso_tl { #1 } } +\NewDocumentCommand \recto { m } +{ \tl_set:Nn \l_stm_recto_tl { #1 } } + +% +% Maketitle +% + +\newcounter{au} +\newcounter{cnote} +\newcounter{tnote} +\newcounter{fnote} +\newcounter{aff} + +\cs_new:Nn \__reset_title_counters: +{ + \setcounter{cnote}{0} + \setcounter{fnote}{0} + \setcounter{tnote}{0} + \setcounter{footnote}{0} +} + +\keys_define:nn { stm / mktitle } +{ + blind .bool_gset:N = \g_stm_blind_bool , + footer .multichoice:, + footer/default .tl_gset:N = \g_stm_footer_default_tl , + footer/custom .tl_gset:N = \g_stm_footer_custom_tl , + longtitle .bool_gset:N = \g_stm_longtitle_bool , + longabstract .bool_gset:N = \g_stm_longtitle_bool , + breakafter .clist_gset:N = \g_stm_breakafter_clist , + nologo .bool_gset:N = \g_stm_nologo_bool , +} + +\bool_new:N \g_stm_breakafter_title_bool +\bool_new:N \g_stm_breakafter_auaff_bool +\bool_new:N \g_stm_breakafter_abstract_bool + +\NewDocumentCommand \processbreakafter { } +{ + \clist_if_empty:NTF \g_stm_breakafter_clist { } + { + \clist_map_inline:Nn \g_stm_breakafter_clist + { \bool_gset_true:c { g_stm_breakafter_##1_bool } } + } +} + +\NewDocumentCommand \pprintMaketitle { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \processbreakafter + \clearpage + \__reset_title_counters: + \tex_def:D \baselinestretch { 1 } + \printFirstPageNotes + \thispagestyle{pprintTitle}% + \group_begin: + \@title + \group_end: + \bool_if:NTF \g_stm_breakafter_title_bool + { \newpage } { } + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { + \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par \vskip36pt + \group_end: + \bool_if:NTF \g_stm_breakafter_auaff_bool + { \newpage } { } + } + % + \printabsbox + \printkeybox + \bool_if:NTF \g_stm_breakafter_abstract_bool + { \newpage } { } + % + \setcounter{footnote}{\c@fnote} + \tex_gdef:D \thefootnote { \arabic{footnote} } + \tex_def:D \baselinestretch { \@blstr } + \normalfont \normalsize +} + +\NewDocumentCommand \MaketitleBox { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \processbreakafter + \tex_def:D \baselinestretch{1} + \group_begin: + \@title + \group_end: + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { + \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par + \group_end: + \bool_if:NTF \g_stm_breakafter_auaff_bool + { \newpage } { } + } + % \printFirstPageNotes + % + \dashrule{0pt}{3pt} + \begin{Abstract} + \noindent \ignorespaces + \file_if_exist:nT { \jobname.abs } { \file_input:n { \jobname.abs } } + \end{Abstract} + \dashrule{6pt}{3pt} + \bool_if:NTF \g_stm_breakafter_abstract_bool + { \newpage } { } +} + +\box_new:N \g_stm_notes_box +\box_new:N \g_stm_front_box +\cs_set:Npn \__fn_text:n #1 +{ \group_begin:\vbox_top:n { \footnotesize #1 } \group_end:\par} + +\NewDocumentCommand \LongMaketitleBox { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \vbox_gset:Nn \g_stm_front_box + { + \tex_def:D \baselinestretch{1} + \group_begin: + \@title + \group_end: + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par + \group_end: + } + % + \dashrule{0pt}{3pt} + \begin{Abstract} + \noindent \ignorespaces + \file_if_exist:nT { \jobname.abs } { \file_input:n { \jobname.abs } } + \end{Abstract} + \dashrule{3pt}{3pt} + } + \vbox_gset:Nn \g_stm_notes_box + { \cs_set_eq:NN \footnotetext \__fn_text:n \printFirstPageNotes } + \dim_gset:Nn \g_tmpb_dim { \box_ht:N \g_stm_notes_box } + % \iow_term:x { ...~[ht: \dim_use:N \g_tmpb_dim ] } + \dim_gadd:Nn \g_tmpb_dim { \box_dp:N \g_stm_notes_box } + % \iow_term:x { ...~[ht+dp: \dim_use:N \g_tmpb_dim ] } + \ifbool{sc}{\dim_gadd:Nn \g_tmpb_dim { 12pt } } { } + +} + +\NewDocumentCommand \ProcessLongTitleBox { } +{ + % \vbox_gset:Nn \g_stm_notes_box + % { \cs_set_eq:NN \footnotetext \__fn_text:n \printFirstPageNotes } + % \dim_gset:Nn \g_tmpb_dim { \box_ht:N \g_stm_notes_box } + % % \iow_term:x { ...~[ht: \dim_use:N \g_tmpb_dim ] } + % \dim_gadd:Nn \g_tmpb_dim { \box_dp:N \g_stm_notes_box } + % % \iow_term:x { ...~[ht+dp: \dim_use:N \g_tmpb_dim ] } + % + \dim_gset:Nn \g_tmpa_dim { \textheight } +% \vbox_unpack:N \g_stm_notes_box + % \iow_term:x { ...~[tmpa:~ \dim_use:N \g_tmpa_dim ] } + % \dim_gsub:Nn \g_tmpa_dim { \box_ht:N \g_stm_notes_box } + % \iow_term:x { ...~[tmpa-noteht:~ \dim_use:N \g_tmpa_dim ] } + % \dim_gsub:Nn \g_tmpa_dim { \box_dp:N \g_stm_notes_box } + % \iow_term:x { ...~[tmpa-notedp:~ \dim_use:N \g_tmpa_dim ] } + \dim_gsub:Nn \g_tmpa_dim { \g_tmpb_dim } + \vbox_set_split_to_ht:NNn \g_tmpb_box \g_stm_front_box { \g_tmpa_dim } + \noindent \vbox_unpack_clear:N \g_tmpb_box + \printFirstPageNotes + \dim_gzero:N \g_tmpa_dim + \dim_gset:Nn \g_tmpa_dim { \box_ht:N \g_stm_front_box } + % \iow_term:x { ...~[tmpa-ht:~ \dim_use:N \g_tmpa_dim ] } + \dim_gadd:Nn \g_tmpa_dim { \box_dp:N \g_stm_front_box } + % \iow_term:x { ...~[tmpa-ht+dp:~ \dim_use:N \g_tmpa_dim ~+~\the\textheight] } + \dim_compare:nNnTF { \dim_use:N \g_tmpa_dim } > { \the\textheight } + { + \vbox_set_split_to_ht:NNn \g_tmpb_box \g_stm_front_box { \textheight } + \vbox_unpack_clear:N \g_tmpb_box + \ifbool{dc} + { \twocolumn[{\vbox_unpack_clear:N \g_stm_front_box}] } + { \vbox_unpack_clear:N \g_stm_front_box } + } + { + \ifbool{dc} + { \twocolumn[{\vbox_unpack_clear:N \g_stm_front_box}] } + { \vbox_unpack_clear:N \g_stm_front_box } + } + \normalcolor \normalfont +} +\ExplSyntaxOff + +% +% Headings +% +\def\@seccntDot{.} +\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em} + +\newdimen\paraindent \paraindent=\parindent +\newdimen\subparaindent \subparaindent=\parindent +\def\ssssparaindent{} +\def\sectionfont{\rmfamily\fontsize{12pt}{14pt}% + \bfseries} +\def\ssectionfont{\rmfamily\fontsize{11pt}{13pt}% + \bfseries\selectfont} +\def\sssectionfont{\rmfamily\fontsize{10.5pt}{12pt}% + \fontseries{b}\fontshape{it}\selectfont} +\def\ssssectionfont{\rmfamily\fontsize{11pt}{10pt}\itshape\selectfont} +\def\sssssectionfont{\rmfamily\fontsize{11pt}{10pt}\selectfont}% + +\AtBeginDocument{\global\@afterindentfalse} + +\renewcommand\section{\@startsection{section}{1}{\z@}% + {15pt \@plus 3\p@ \@minus 3\p@}% + {4\p@}% + {%\let\@hangfrom\relax + \sectionfont\raggedright\hst[13pt]}} + +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {10pt \@plus 3\p@ \@minus 2\p@}% + {.1\p@}% + {%\let\@hangfrom\relax + \ssectionfont\raggedright }} + +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {10pt \@plus 1\p@ \@minus .3\p@}% + {.1\p@}% + {%\let\@hangfrom\relax + \sssectionfont\raggedright}} + +\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}% + {10pt \@plus0.01pt \@minus0.01pt}% + {-6pt}% + {\ssssparaindent% + \ssssectionfont\itshape\raggedright}} + +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {0pt \@plus0.1pt \@minus0.1pt}% + {-6pt}% + {\hspace*{\subparaindent} + \sssssectionfont\raggedright}} + +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} + +% +% Sundry lengths +% +\def\xstrut#1#2{\vrule height#1 depth #2 width\z@} +\def\hstrut#1{\vrule height#1 depth \z@ width 0pt} +\def\dstrut#1{\vrule height0pt depth#1 width 0pt} +\def\hst[#1]{\vrule height#1 depth \z@ width \z@} +\def\dst[#1]{\vrule height0pt depth#1 width 0pt} +\def\xst[#1][#2]{\vrule height#1 depth #2 width\z@} + +\def\lastpage{100} + +\AtEndDocument{% +% \clearpage + \immediate\write\@auxout{\string\csxdef{lastpage}{\thepage}} +} + +\ExplSyntaxOn + +% +% pagestyle +% + +\cs_new:Npn \__first_footerline: +{ + \group_begin: + \small + \sffamily + \ifnum\theblind>0\relax + \else + \__short_authors: :~ + \fi + { \rmfamily \itshape Preprint~ submitted ~to ~\journal } + \group_end: +} + +\cs_new:Npn \__first_head: +{ + \parbox[t]{\textwidth} + { + \color{black!20} + \rule{\textwidth}{0pt} + } +} + + +\cs_new:Npn \__first_foot: +{ + \parbox[t]{\textwidth} + { + \rule{\textwidth}{.2pt}\\ + \__first_footerline: \hfill Page~ \thepage {} ~of~ \lastpage } +} + + +\cs_new:Npn \__cas_head: +{ + \parbox{\textwidth} + { + \sffamily\small\centering + \__short_title: + } + } + + +\cs_new:Npn \__cas_foot: +{ + \parbox[t]{\textwidth} + { + \rule{\textwidth}{.2pt}\\ + \sffamily\small + \__first_footerline: + \hfill Page~\thepage {}~of~ \lastpage + } +} + +\newcommand \ps@first + { + \cs_set_eq:NN \@oddhead \__first_head: + \cs_set_eq:NN \@evenhead \__first_head: + \cs_set_eq:NN \@evenfoot \__first_foot: + \cs_set_eq:NN \@oddfoot \__first_foot: + } + + +\newcommand \ps@cas +{ + \cs_set_eq:NN \@oddhead \__cas_head: + \cs_set_eq:NN \@evenhead \__cas_head: + \cs_set_eq:NN \@evenfoot \__cas_foot: + \cs_set_eq:NN \@oddfoot \__cas_foot: +} + +\ps@cas + + +% +% Floats +% + +\def\topfraction{.9} +\def\bottomfraction{.9} +\setcounter{topnumber}{4} +\setcounter{bottomnumber}{3} +\setcounter{totalnumber}{5} +\renewcommand\textfraction{.1} +\renewcommand\floatpagefraction{.9} +\setcounter{dbltopnumber}{2} +\renewcommand\dbltopfraction{.9} +\renewcommand\dblfloatpagefraction{.95} +\newdimen \FullWidth +\ABD{\FullWidth=\textwidth} + +\newcolumntype{L}{@{\extracolsep{\fill}}l} +\newcolumntype{R}{@{\extracolsep{\fill}}r} +\newcolumntype{C}{@{\extracolsep{\fill}}c} + +\cs_gset_eq:NN \thead \toprule +\cs_gset_eq:NN \endthead \midrule +\cs_gset_eq:NN \tabref \ref + +\dim_new:N \l_tbl_width_dim +\dim_set:Nn \l_tbl_width_dim { \linewidth } + +\cs_new:Npn \__make_tbl_caption:nn #1#2 +{ + \l_tbl_align_tl + \skip_vertical:N \l_tbl_abovecap_skip + % \bool_if:NTF \g_tbl_full_bool + % { + % \color{scolor!70}\rule{\FullWidth}{2pt}\normalcolor\\ + % } + % { \color{scolor!70}\rule{\tblwidth}{2pt}\normalcolor\\ } + % \fboxsep=4pt + % \colorbox{white} + {\parbox{ \dimexpr(\l_tbl_width_dim)} + {\rightskip=0pt\sffamily\small\textbf{\color{scolor}#1}\par#2\par\vskip4pt }} + \skip_vertical:N \l_tbl_belowcap_skip +} + +\keys_define:nn { cas / tbl } +{ + width .dim_set:N = \l_tbl_width_dim , + pos .tl_set:N = \l_tbl_pos_tl , + cols .tl_set:N = \l_tbl_cols_tl , + align .tl_set:N = \l_tbl_align_tl, + abovecap .skip_set:N = \l_tbl_abovecap_skip , + belowcap .skip_set:N = \l_tbl_belowcap_skip , + abovetbl .skip_set:N = \l_tbl_abovetbl_skip , + belowtbl .skip_set:N = \l_tbl_belowtbl_skip , + full .bool_gset:N = \g_tbl_full_bool , + unknown .code:n = { + \ifstrempty { #1 } + { + \tl_set:Nn \l_fig_pos_tl { \l_keys_key_tl } + } + { + \l_keys_key_tl=#1 + } + } +} + +\cs_set:Npn \__reset_tbl: +{ + \tl_set:Nx \l_tbl_pos_tl { t } + \tl_set:Nx \l_tbl_cols_tl { 1 } + \tl_set:Nn \l_tbl_align_tl { \centering } + \skip_set:Nn \l_tbl_abovecap_skip { 6pt } + \skip_set:Nn \l_tbl_belowcap_skip { 0pt } + \skip_set:Nn \l_tbl_abovetbl_skip { 6pt } + \skip_set:Nn \l_tbl_belowtbl_skip { 6pt } + +} + +\RenewDocumentEnvironment { table } { O{} } +{ + \__reset_tbl: + \bool_gset_false:N \g_tbl_full_bool + \dim_set:Nn \l_tbl_width_dim { \linewidth } + \keys_set:nn { cas / tbl } { #1 } + \csxdef{fps@table}{\l_tbl_pos_tl} + \csgdef{tblwidth}{\dim_use:N \l_tbl_width_dim} + \cs_set_eq:NN \@makecaption \__make_tbl_caption:nn + \@float{table} + \l_tbl_align_tl + \sffamily\small +} +{ +\end@float +} + + +\RenewDocumentEnvironment { table* } { O{width=\FullWidth} } + { + \__reset_tbl: + \bool_gset_true:N \g_tbl_full_bool + \dim_set:Nn \l_tbl_width_dim { \FullWidth } + \keys_set:nn { cas / tbl } { #1 } + \csxdef{fps@table}{\l_tbl_pos_tl} + \csgdef{tblwidth}{\dim_use:N \l_tbl_width_dim} + \cs_set_eq:NN \@makecaption \__make_tbl_caption:nn + \@dblfloat{table} + \l_tbl_align_tl + \sffamily\small + % \leftskip=-\FullWidth + } + { + \end@dblfloat + } + + +\dim_new:N \l_fig_width_dim +\dim_set:Nn \l_fig_width_dim { \linewidth } + +\newbox\cascaptionbox + +\cs_new:Npn \__make_fig_caption:nn #1#2 +{ + \l_fig_align_tl + \skip_vertical:N \l_fig_abovecap_skip +% \bool_if:NTF \g_fig_full_bool +% { \skip_horizontal:n { -\FullWidth } } { } + \setbox\cascaptionbox=\hbox{% + \sffamily\small\textbf{\color{scolor}#1:}~#2} + \ifdim\the\wd\cascaptionbox<\dim_use:N \l_fig_width_dim\relax + \parbox{ \l_fig_width_dim } + {\unskip\ignorespaces\hfil\sffamily\small + \textbf{\color{scolor}#1:}~#2\hfil\par } + \else + \parbox{ \l_fig_width_dim } + {\rightskip=0pt\unskip\ignorespaces\sffamily + \small\textbf{\color{scolor}#1:}~#2\par } + \fi + \skip_vertical:N \l_fig_belowcap_skip +} + +\keys_define:nn { cas / fig } +{ + width .dim_set:N = \l_fig_width_dim , + pos .tl_set:N = \l_fig_pos_tl , + cols .tl_set:N = \l_fig_cols_tl , + align .tl_set:N = \l_fig_align_tl, + abovecap .skip_set:N = \l_fig_abovecap_skip , + belowcap .skip_set:N = \l_fig_belowcap_skip , + abovefig .skip_set:N = \l_fig_abovefig_skip , + belowfig .skip_set:N = \l_fig_belowfig_skip , + full .bool_gset:N = \g_fig_full_bool , + unknown .code:n = { + \ifstrempty { #1 } + { + \tl_set:Nn \l_fig_pos_tl { \l_keys_key_tl } + } + { + \l_keys_key_tl=#1, + } + } +} + +\cs_set:Npn \__reset_fig: +{ + \tl_set:Nx \l_fig_pos_tl { t } + \tl_set:Nx \l_fig_cols_tl { 1 } + \tl_set:Nn \l_fig_align_tl { \raggedleft } + \skip_set:Nn \l_fig_abovecap_skip { 6pt } + \skip_set:Nn \l_fig_belowcap_skip { 6pt } + \skip_set:Nn \l_fig_abovefig_skip { 6pt } + \skip_set:Nn \l_fig_belowfig_skip { 6pt } + +} + +\RenewDocumentEnvironment { figure } { O{} } + { + \__reset_fig: + \bool_gset_false:N \g_fig_full_bool + \dim_set:Nn \l_fig_width_dim { \linewidth } + \keys_set:nn { cas / fig } { #1 } + \csxdef{fps@figure}{\l_fig_pos_tl} + \csgdef{figwidth}{\dim_use:N \l_fig_width_dim} + \cs_set_eq:NN \@makecaption \__make_fig_caption:nn + \@float{figure} + \l_fig_align_tl + \sffamily\small + } + { + \end@float + } + + +\RenewDocumentEnvironment { figure* } { O{width=\textwidth} } +{ + \__reset_fig: + \bool_gset_true:N \g_fig_full_bool + \dim_set:Nn \l_fig_width_dim { \FullWidth } + \keys_set:nn { cas / fig } { #1 } + \csxdef{fps@figure}{\l_fig_pos_tl} + \csgdef{figwidth}{\dim_use:N \l_fig_width_dim} + \cs_set_eq:NN \@makecaption \__make_fig_caption:nn + \@dblfloat{figure} + \l_fig_align_tl + \sffamily\small +% \leftskip=-\FullWidth +} +{ \end@dblfloat } + +% +% wrapped figure +% +\RequirePackage{wrapfig} + +\dim_new:N \l_wrap_figwidth_dim +\dim_new:N \l_wrap_fighspace_dim +\dim_new:N \l_wrap_figvspace_dim +\dim_new:N \l_wrap_fighcorr_dim +\dim_new:N \l_wrap_figvcorr_dim +\dim_new:N \l_above_bio_dim +\int_new:N \l_wrap_figlcorr_int +\int_new:N \l_wrap_figlines_int +\tl_new:N \l_wrap_figfile_tl + +\NewDocumentCommand \wfigwidth { m } + { \dim_set:Nn \l_wrap_figwidth_dim { #1 } } +\NewDocumentCommand \wfighspace { m } + { \dim_set:Nn \l_wrap_fighspace_dim { #1 } } +\NewDocumentCommand \wfigvspace { m } + { \dim_set:Nn \l_wrap_figvspace_dim { #1 } } +\NewDocumentCommand \wfighcorr { m } + { \dim_set:Nn \l_wrap_fighcorr_dim { #1 } } +\NewDocumentCommand \wfigvcorr { m } + { \dim_set:Nn \l_wrap_figvcorr_dim { #1 } } +\NewDocumentCommand \addfiglines { m } + { \int_set:Nn \l_wrap_figlcorr_int { #1 } } +\NewDocumentCommand \abovebioskip { m } + { \dim_set:Nn \l_above_bio_dim { #1 } } + +\cs_new:Nn \__fig_defaults: + { + \wfigwidth { 25.5mm } + \wfighspace { 0mm } + \wfigvspace { 0mm } + \wfighcorr { 0pt } + \wfigvcorr { -12pt } + \wfigvcorr { 0pt } + \abovebioskip { 12pt } + \tl_set:Nn \l_wrap_figpos_tl { l } + \int_set:Nn \l_wrap_figlines_int { 3 } + \int_set:Nn \l_wrap_figlcorr_int { 1 } + \tl_clear:N \l_wrap_figcap_tl + } + +\__fig_defaults: + +\keys_define:nn { wrap / fig } +{ + width .dim_set:N = \l_wrap_figwidth_dim , + hspace .dim_set:N = \l_wrap_fighspace_dim , + vspace .dim_set:N = \l_wrap_figvspace_dim , + hcorr .dim_set:N = \l_wrap_fighcorr_dim , + vcorr .dim_set:N = \l_wrap_figvcorr_dim , + lcorr .int_set:N = \l_wrap_figlcorr_int , + pos .tl_set:N = \l_wrap_figpos_tl , + lines .int_set:N = \l_wrap_figlines_int , + cap .tl_set:N = \l_wrap_figcap_tl , +} + +\cs_new:Npn \__find_fig_height:n #1 +{ + \box_clear:N \g_tmpa_box + \hbox_gset:Nn \g_tmpa_box + { \includegraphics [ width = \l_wrap_figwidth_dim ] { #1 } } + \dim_zero:N \l_tmpa_dim + \dim_set:Nn \l_tmpa_dim { \box_ht:N \g_tmpa_box } + \dim_add:Nn \l_tmpa_dim { \box_dp:N \g_tmpa_box } + \fp_set:Nn \l_tmpa_fp { \dim_to_fp:n { \l_tmpa_dim } } + \fp_set:Nn \l_tmpb_fp { \dim_to_fp:n { \baselineskip } } +% + \fp_set:Nn \l_wrap_figlines_fp + { \fp_eval:n { ( \l_tmpa_fp / \l_tmpb_fp ) + .5 } } + \int_set:Nn \l_wrap_figlines_int + { \fp_to_int:N \l_wrap_figlines_fp } +% + \iow_term:x { ...~wr-fig:~[BL:~\the\baselineskip] ~ ...} + \iow_term:x { ...~wr-fig:~[LINE-FP:~ \fp_use:N \l_wrap_figlines_fp]~ ...} + \iow_term:x { ...~wr-fig:~[LINE-INT:~ \int_use:N \l_wrap_figlines_int]~ ...} +} + +\newbox \l_bio_text_box + +\NewDocumentCommand \WrapFigure { o m } +{ + \__fig_defaults: + \IfNoValueTF { #1 } { } { \keys_set:nn { wrap / fig } { #1 } } + \stepcounter { ca_biography_ctr } + \__find_fig_height:n { #2 } + \dim_zero:N \l_tmpb_dim + \dim_set:Nn \l_tmpb_dim + { \l_wrap_figwidth_dim + \l_wrap_fighspace_dim } + \int_gadd:Nn \l_wrap_figlines_int { \int_use:N \l_wrap_figlcorr_int } + \setlength { \columnsep } { 5pt } + \setlength { \intextsep } { 0pt } +% \mbox{} + \ifbool { dc } + { \xdef\Columnwidth{238.25pt} } + { \xdef\Columnwidth{\the\textwidth} } + \ifcsundef { cabio\theca_biography_ctr lines } + { + \setbox \l_bio_text_box = \vbox \bgroup + \hsize = \dimexpr ( \Columnwidth - 72.28pt ) + } + { + \ifbool { dc } { + \int_gset:Nn \l_wrap_figlines_int + { \csuse { cabio\theca_biography_ctr lines } } + } { } + \skip_vertical:N \l_above_bio_dim + \begin{wrapfigure}[\int_use:N \l_wrap_figlines_int] + { \l_wrap_figpos_tl } + [ \dim_use:N \l_wrap_fighcorr_dim ] + { \dim_use:N \l_tmpb_dim } + %\skip_vertical:N \l_wrap_figvcorr_dim + \includegraphics[width=\l_wrap_figwidth_dim]{#2} + \end{wrapfigure} + \setbox \l_bio_text_box = \vbox \bgroup + \hsize = \dimexpr ( \Columnwidth ) + } +} + +\cs_set:Nn \__fwidth: { 1in } +\cs_set:Nn \__fpos: { l } + +% +% short authors/title +% + +\newcommand\shortauthors[1]{ \cs_gset:Nn \__short_authors: { #1 } } +\newcommand\shorttitle[1]{ \cs_gset:Nn \__short_title: { #1 } } + +\shortauthors{First~Author~et~al.} +\shorttitle{Short ~Title ~of~the~Article} + +\newcounter { ca_biography_ctr } +\newbool { cas_no_pic_bio } +\boolfalse { cas_no_pic_bio } + +\ifnum\theblind>0\relax +\newbox\hidebiobox +\NewDocumentCommand \bio { O{} m } + {\setbox\hidebiobox=\vbox\bgroup} +\NewDocumentCommand \endbio { } { + \egroup +} +\else +\NewDocumentCommand \bio { O{} m } +{ + \global \boolfalse { cas_no_pic_bio } + \casbiographyfont + \par \medskip \tl_set:Nn \l_tmpa_tl { #2 } + \tl_if_empty:NTF \l_tmpa_tl + { \global \booltrue { cas_no_pic_bio } } + { \WrapFigure [ #1 ]{ #2 } } + \noindent \ignorespaces +} + +\int_new:N \l_ca_temp_inta + +\NewDocumentCommand \endbio { } { + \ifbool{ cas_no_pic_bio } { } { + \egroup +% \fp_set:Nn \l_wrap_figlines_fp +% { \fp_eval:n { ( ( \l_tmpa_fp + +% \numexpr\dimexpr\the\ht\l_bio_text_box ) +% / \l_tmpb_fp ) + .5 } } + \int_gset:Nn \l_ca_temp_inta + { \numexpr\dimexpr(\the\ht\l_bio_text_box + 2\baselineskip )/ + \dimexpr\the\baselineskip } + \iow_now:Nx \@auxout { + \string\csgdef{cabio\theca_biography_ctr lines} + { \int_use:N \l_ca_temp_inta } } +\mbox{}\vspace*{-4.5pt}\noindent +\unvbox \l_bio_text_box } +} +\fi + +\let\casbiographyfont\relax + +\NewDocumentEnvironment { biography } { o m } +{ + \IfValueTF { #1 } + { \par\medskip \noindent \includegraphics[width=1in]{#1} } + { } + \par\smallskip + \noindent \textbf{#2:}\enspace +} +{ } + +\ExplSyntaxOff + +% +% Customized Enumeration +% +\def\blstr#1{\gdef\@bslstr{#1}} +\def\@blstr{1} +\newdimen\leftMargin +\leftMargin=2em +\newtoks\@enLab %\newtoks\@enfont +\def\@enQmark{?} +\def\@enLabel#1#2{% + \edef\@enThe{\noexpand#1{\@enumctr}}% + \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}% + \@enloop} +\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= } +\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop} +\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop} +\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop} +\def\@enloop{\futurelet\@entemp\@enloop@} +\def\@enloop@{% + \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else + \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else + \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else + \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else + \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else + \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else + \ifx \bgroup\@entemp \let\@tempa\@enGroup \else + \ifx \@enum@\@entemp \let\@tempa\@gobble \else + \let\@tempa\@enOther + \fi\fi\fi\fi\fi\fi\fi\fi + \@tempa} +\newlength{\@sep} \newlength{\@@sep} +\setlength{\@sep}{.5\baselineskip plus.2\baselineskip + minus.2\baselineskip} +\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip + minus.05\baselineskip} +\providecommand{\sfbc}{\rmfamily\upshape} +\providecommand{\sfn}{\rmfamily\upshape} +\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt} +\def\enumerate{% + \ifnum \@enumdepth >3 \@toodeep\else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi + \@ifnextchar[{\@@enum@}{\@enum@}} +\def\@@enum@[#1]{% + \@enLab{}\let\@enThe\@enQmark + \@enloop#1\@enum@ + \ifx\@enThe\@enQmark\@warning{The counter will not be printed.% + ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi + \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}% + \expandafter\let\csname the\@enumctr\endcsname\@enThe + \csname c@\@enumctr\endcsname7 + \expandafter\settowidth + \csname leftmargin\romannumeral\@enumdepth\endcsname + {\the\@enLab\hskip\labelsep}% + \@enum@} +\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}% + {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}% + \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else + \setlength{\topsep}{\@sep}\fi + \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}% + \else \setlength{\itemsep}{\@@sep}\fi + %\setlength\leftmargin{\leftMargin}%%%{1.8em} + \setlength{\parsep}{0pt plus1pt minus1pt}% + \setlength{\parskip}{0pt plus1pt minus1pt} + }} + +\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else + \addvspace{\@sep}\fi \endlist} + +\def\sitem{\@noitemargtrue\@item[\@itemlabel *]} + +\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}} + +\def\@Itemize[#1]{\def\next{#1}% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \ifx\next\@empty\else\expandafter\def\csname + labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi% + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter\list\csname\@itemitem\endcsname + {\def\makelabel##1{\hss\llap{##1}}}% + \fi} + +% +% Customized theorem +% (non-italic enunciations) +% + +\def\newdefinition#1{% + \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%] +\def\@ndfn#1#2{% + \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}} +\def\@xndfn#1#2[#3]{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@newctr{#1}[#3]% + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@dfncountersep + \@dfncounter{#1}}% + \global\@namedef{#1}{\@dfn{#1}{#2}}% + \global\@namedef{end#1}{\@enddefinition}}} +\def\@yndfn#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}% + \global\@namedef{#1}{\@dfn{#1}{#2}}% + \global\@namedef{end#1}{\@enddefinition}}} +\def\@odfn#1[#2]#3{% + \@ifundefined{c@#2}{\@nocounterr{#2}}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}} + \global\@namedef{#1}{\@dfn{#2}{#3}}% + \global\@namedef{end#1}{\@enddefinition}}}} +\def\@dfn#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}} +\def\@xdfn#1#2{% + \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@ydfn#1#2[#3]{% + \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces} +\def\@dfncounter#1{\noexpand\arabic{#1}} +\def\@dfncountersep{.} +\def\@begindefinition#1#2{\trivlist + \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape} +\def\@opargbegindefinition#1#2#3{\trivlist + \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape} +\def\@enddefinition{\endtrivlist} + +\def\@begintheorem#1#2{\trivlist + \let\baselinestretch\@blstr + \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape} +\def\@opargbegintheorem#1#2#3{\trivlist + \let\baselinestretch\@blstr + \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape} +% +% Unnumbered roman proofs +% +\def\newproof#1{% + \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}} +\def\@nprf#1#2{% + \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}} +\def\@xnprf#1#2[#3]{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@newctr{#1}[#3]% + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@prfcountersep + \@prfcounter{#1}}% + \global\@namedef{#1}{\@prf{#1}{#2}}% + \global\@namedef{end#1}{\@endproof}}} +\def\@ynprf#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}% + \global\@namedef{#1}{\@prf{#1}{#2}}% + \global\@namedef{end#1}{\@endproof}}} +\def\@oprf#1[#2]#3{% + \@ifundefined{c@#2}{\@nocounterr{#2}}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% + \global\@namedef{#1}{\@prf{#2}{#3}}% + \global\@namedef{end#1}{\@endproof}}}} +\def\@prf#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}} +\def\@xprf#1#2{% + \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yprf#1#2[#3]{% + \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces} +\def\@prfcounter#1{\noexpand\arabic{#1}} +\def\@prfcountersep{.} +\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr + \item[\hskip \labelsep{\scshape #1.}]\rmfamily} +\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr + \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily} +\def\@endproof{\endtrivlist} +\newcommand*{\qed}{\hbox{}\hfill$\Box$} + +\xspaceaddexceptions{]} + +\ABD{\@ifundefined{bibsep}{}{\bibsep=0pt}} +%\ifbool{casfinallayout} +% {% + \ABD{\gdef\bibfont{\fontsize{8pt}{10pt}\selectfont}% + \gdef\casbiographyfont{\fontsize{8pt}{10pt}\selectfont}% + }% +% } +% {} + +\endinput + diff --git a/pubs/renewable-energy-mdo/cas-dc.cls b/pubs/renewable-energy-mdo/cas-dc.cls new file mode 100644 index 000000000..b08b4f3f7 --- /dev/null +++ b/pubs/renewable-energy-mdo/cas-dc.cls @@ -0,0 +1,187 @@ +%% +%% This is file `cas-sc.cls'. +%% +%% This file is part of the 'CAS Bundle'. +%% ...................................... +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'CAS Bundle' is +%% given in the file `manifest.txt'. +%% + +%% $Id: cas-dc.cls 96 2024-05-04 09:29:44Z rishi $ + + \def\RCSfile{cas-dc}% + \def\RCSversion{2.4}% + \def\RCSdate{2024/05/04}% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{\RCSfile}[\RCSdate, \RCSversion: Formatting class + for CAS double column articles] +% +\def\ABD{\AtBeginDocument} +% +% switches +% +\newif\iflongmktitle \longmktitlefalse +\newif\ifdc \global\dctrue +\newif\ifsc \global\scfalse +\newif\ifcasreviewlayout \global\casreviewlayoutfalse +\newif\ifcasfinallayout \global\casfinallayoutfalse + +\newcounter{blind} +\setcounter{blind}{0} + +\def\blstr#1{\gdef\@blstr{#1}} +\def\@blstr{1} +\newdimen\@bls +\@bls=\baselineskip + +\DeclareOption{singleblind}{\setcounter{blind}{1}} +\DeclareOption{doubleblind}{\setcounter{blind}{2}} +\DeclareOption{longmktitle}{\global\longmktitletrue} +\DeclareOption{final}{\global\casfinallayouttrue} +\DeclareOption{review}{\global\casreviewlayouttrue} + +\ExecuteOptions{a4paper,10pt,oneside,fleqn} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass{article} + +\RequirePackage{graphicx} +\RequirePackage{amsmath,amsfonts,amssymb} +\allowdisplaybreaks + +\RequirePackage{expl3,xparse} +\@ifundefined{regex_match:nnTF}{\RequirePackage{l3regex}}{} +\RequirePackage{etoolbox,balance} +\RequirePackage{booktabs,makecell,multirow,array,colortbl,dcolumn,stfloats} +\RequirePackage{xspace,xstring,footmisc} +\RequirePackage[svgnames,dvipsnames]{xcolor} + +\ifbool{casreviewlayout}{\RequirePackage{setspace}}{} + +\RequirePackage[unicode,hypertexnames=false,colorlinks=true]{hyperref} +\colorlet{scolor}{black} +\colorlet{hscolor}{DarkSlateGrey} +\hypersetup{% + pdftitle={\csuse{__short_title:}}, + pdfauthor={\csuse{__short_authors:}}, + pdfcreator={LaTeX3; cas-sc.cls; hyperref.sty}, + pdfproducer={pdfTeX;}, + linkcolor={hscolor}, + urlcolor={hscolor}, + citecolor={hscolor}, + filecolor={hscolor}, + menucolor={hscolor}, + } + + \let\comma\@empty +\let\tnotesep\@empty +\let\@title\@empty +% +% Load Common items +% + +\RequirePackage{cas-common} + +% +% Specific to Single Column +% +\ExplSyntaxOn + +\RenewDocumentCommand \maketitle { } +{ + \ifbool { usecasgrabsbox } + { + \setcounter{page}{0} + \thispagestyle{empty} + \unvbox\casgrabsbox + } { } + \pagebreak + \ifbool { usecashlsbox } + { + \setcounter{page}{0} + \thispagestyle{empty} + \unvbox\casauhlbox + } { } + \pagebreak + \thispagestyle{first} + \ifbool{longmktitle} + { + \ifnum\theblind>0\relax + \LongMaketitleBox[Blind] + \else + \LongMaketitleBox + \fi + \ProcessLongTitleBox + } + { + \ifnum\theblind>0\relax + \twocolumn[{\MaketitleBox[blind]}] + \else + \twocolumn[\MaketitleBox] + \fi + \printFirstPageNotes + } + \setcounter{footnote}{\int_use:N \g_stm_fnote_int} + \renewcommand\thefootnote{\arabic{footnote}} + \gdef\@pdfauthor{\infoauthors} + \gdef\@pdfsubject{Complex ~STM ~Content} + \ifbool{casreviewlayout}{\doublespacing}{} +} + +% +% Fonts +% +\RequirePackage[T1]{fontenc} + +\file_if_exist:nTF { stix.sty } +{ + \file_if_exist:nTF { charis.sty } + { + \RequirePackage[notext]{stix} + \RequirePackage{charis} + } + { \RequirePackage{stix} } +} +{ + \iow_term:x { *********************************************************** } + \iow_term:x { ~Stix ~ and ~ Charis~ fonts ~ are ~ not ~ available ~ } + \iow_term:x { ~ in ~TeX~system.~Hence~CMR~ fonts~ are ~ used. } + \iow_term:x { *********************************************************** } +} + +\file_if_exist:nTF { inconsolata.sty } +{ \RequirePackage[scaled=.85]{inconsolata} } +{ \tex_gdef:D \ttdefault { cmtt } } + + +\ExplSyntaxOff + +% +% Page geometry +% +\usepackage[% + paperwidth=210mm, + paperheight=280mm, + vmargin={19.5mm,18.2mm}, + hmargin={18.1mm,18.1mm}, + headsep=12pt, + footskip=12pt, + columnsep=18pt +]{geometry} + + +\endinput + +% +% End of class 'cas-dc' +% + + diff --git a/pubs/renewable-energy-mdo/cas-model2-names.bst b/pubs/renewable-energy-mdo/cas-model2-names.bst new file mode 100644 index 000000000..726b5f6ac --- /dev/null +++ b/pubs/renewable-energy-mdo/cas-model2-names.bst @@ -0,0 +1,1644 @@ +%% +%% This is file `cas-model2-names.bst' (Version 2.4), +%% +%% Copyright 2009-2024 Elsevier Ltd +%% +%% This file is part of the 'Elsarticle Bundle'. +%% --------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.3c of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% $Id: cas-model2-names.bst$ +%% +%% $URL: https://lenova.river-valley.com/svn/elscastemplates/trunk/cas-model2-names.bst $ +%% + +ENTRY + { address + archive + author + booktitle + chapter + collaboration + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url + doi + eprint + pubmed + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +STRINGS { urlprefix doiprefix eprintprefix pubmedprefix } + +FUNCTION {init.web.variables} +{ + "\URLprefix " 'urlprefix := + "\DOIprefix" 'doiprefix := + "\ArXivprefix " 'eprintprefix := + "\Pubmedprefix " 'pubmedprefix := +} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.comma} +{ ", " * write$} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ". " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { ", " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output.commanull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { ", " * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {output.book.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "Eds." } + +FUNCTION {bbl.editor} +{ "Ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Software Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput. Aid. Des."} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphic."} + +MACRO {toms} {"ACM Trans. Math. Software"} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} + +MACRO {tcs} {"Theor. Comput. Sci."} + +%% Begin - Added on March 13, 2013 + +MACRO {aj} {"Astron. J."} +MACRO {actaa} {"Acta Astron."} +MACRO {araa} {"Annu. Rev. Astron. Astrophys."} +MACRO {apj} {"Astrophys. J."} +MACRO {apjl} {"Astrophys. J. Lett."} +MACRO {apjs} {"Astrophys. J. Suppl. S"} +MACRO {ao} {"Appl. Optics"} +MACRO {apss} {"Astrophys. Space Sci."} +MACRO {aap} {"Astronom. Astrophys."} +MACRO {aapr} {"Astron. Astrophys Rev"} +MACRO {aaps} {"Astron. Astrophys. Sup."} +MACRO {azh} {"Astron. Zh+"} +MACRO {caa} {"Chinese Astron. Astr."} +MACRO {icarus} {"Icarus"} +MACRO {jcap} {"J. Cosmol. Astropart. Phys."} +MACRO {jrasc} {"J. Roy. Astron. Soc. Can."} +MACRO {memras} {"Memoirs of the RAS"} +MACRO {mnras} {"Mon. Not. R. Astron. Soc."} +MACRO {na} {"New Astron."} +MACRO {nar} {"New Astron. Rev."} +MACRO {pra} {"Phys. Rev. A"} +MACRO {prb} {"Phys. Rev. B"} +MACRO {prc} {"Phys. Rev. C"} +MACRO {prd} {"Phys. Rev. D"} +MACRO {pre} {"Phys. Rev. E"} +MACRO {prl} {"Phys. Rev. Lett"} +MACRO {pasa} {"Publ. Astron. Soc. Aust."} +MACRO {pasp} {"Publ. Astron. Soc. Pac."} +MACRO {pasj} {"Publ. Astron. Soc. Jpn."} +MACRO {rmxaa} {"Rev. Mex. Astron. Astr."} +MACRO {rjras} {"Q. J. Roy. Astron. Soc."} +MACRO {skytel} {"Sky Telescope"} +MACRO {solphys} {"Sol. Phys."} +MACRO {sovast} {"Sov. Astron."} +MACRO {ssr} {"Space Sci. Rev."} +MACRO {zap} {"Zeitschrift fuer Astrophysik"} +MACRO {nat} {"Nature"} +MACRO {iaucirc} {"IAU Cirulars"} +MACRO {gca} {"Geochim. Cosmochim. Ac."} +MACRO {grl} {"Geophys. Res. Lett."} +MACRO {jcp} {"J. Chem. Phys."} +MACRO {jgr} {"J. Geophys. Res."} +MACRO {jqsrt} {"J. Quant. Spectrosc. RA"} +MACRO {nphysa} {"Nucl. Phys. A"} +MACRO {physrep} {"Phys. Rep."} +MACRO {physscr} {"Phys. Scrip."} +MACRO {planss} {"Planet. Space Sci."} +MACRO {baas} {"Bull. Aust. Acoust. Soc"} +MACRO {aplett} {"Astrophys. Lett."} +MACRO {procspie} {"Proc. SPIE"} +MACRO {cjaa} {"Chinese J. Astron. Ast."} +MACRO {fcp} {"Fundam. Cosm. Phys."} +MACRO {memsai} {"Mem. Soc. Astron. Ital."} +MACRO {bain} {"Bull. Astron. Inst. Neth., Suppl. Ser."} + +%% End - Added on March 13, 2013 + + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} + +STRINGS { bibinfo} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f{.}.}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names + duplicate$ empty$ 'skip$ + { collaboration "collaboration" bibinfo.check + duplicate$ empty$ 'skip$ + { " (" swap$ * ")" * } + if$ + * + } + if$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in %capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + ", " swap$ * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +%FUNCTION {format.pages} +%{ pages duplicate$ empty$ 'skip$ +% { duplicate$ multi.page.check +% { +% n.dashify +% } +% { +% } +% if$ +% "pages" bibinfo.check +% } +% if$ +%} + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.check format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {print.url} + {url duplicate$ empty$ + { pop$ "" } + { new.sentence + urlprefix "\url{" * swap$ * "}" * + } + if$ + } + +FUNCTION {print.doi} + {doi duplicate$ empty$ + { pop$ "" } + { new.sentence + doiprefix "\doi{" * swap$ * "}" * + } + if$ + } + +FUNCTION {print.eprint} + {eprint duplicate$ empty$ + { pop$ "" } + { new.sentence + duplicate$ "\href{http://arxiv.org/abs/" swap$ * "}{\tt arXiv:" * swap$ * "}" * } + if$ + } + +FUNCTION {print.pubmed} + {pubmed duplicate$ empty$ + { pop$ "" } + { new.sentence + pubmedprefix "\Pubmed{" * swap$ * "}" * + } + if$ + } + +FUNCTION {webpage} +{ "%Type = Webpage" write$ + output.bibitem + format.authors "author" output.check + author format.key output + author empty$ + { + format.title "title" output.check + new.block + format.date "year" output.check + date.block + } + { + format.date "year" output.check + date.block + format.title "title" output.check + new.block +} + if$ + print.url output + fin.entry +} + + +FUNCTION {article} +{ "%Type = Article" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + format.journal.pages + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {book} +{ "%Type = Book" write$ + output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + format.edition output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {booklet} +{ "%Type = Booklet" write$ + output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ "%Type = Inbook" write$ + output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + format.edition output + crossref missing$ + { + format.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.pages "pages" output.check + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ "%Type = Incollection" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.book.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.book.check + format.edition output + format.publisher.address output + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ "%Type = Inproceedings" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.book.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ +% format.bvolume output +% format.number.series output +% format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.pages "pages" output.check + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ "%Type = Manual" write$ + output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.edition output + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ "%Type = Masterthesis" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {misc} +{ "%Type = Misc" write$ + output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {phdthesis} +{ "%Type = Phdthesis" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ "%Type = Proceedings" write$ + output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {techreport} +{ "%Type = Techreport" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ "%Type = Unpublished" write$ + output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + print.url output + print.doi output + print.eprint output + print.pubmed output + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ +% { "{\natexlab{" swap$ * "}}" * } + { "" swap$ * "" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\href}[2]{#2}" + write$ newline$ + "\providecommand{\path}[1]{#1}" + write$ newline$ + "\providecommand{\DOIprefix}{doi:}" + write$ newline$ + "\providecommand{\ArXivprefix}{arXiv:}" + write$ newline$ + "\providecommand{\URLprefix}{URL: }" + write$ newline$ + "\providecommand{\Pubmedprefix}{pmid:}" + write$ newline$ + "\providecommand{\doi}[1]{\href{http://dx.doi.org/#1}{\path{#1}}}" + write$ newline$ + "\providecommand{\Pubmed}[1]{\href{pmid:#1}{\path{#1}}}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\ifx\xfnm\relax \def\xfnm[#1]{\unskip,\space#1}\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +EXECUTE {init.web.variables} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `cas-model2-names.bst'. diff --git a/pubs/renewable-energy-mdo/commands-re.tex b/pubs/renewable-energy-mdo/commands-re.tex index 9a984840c..dff78f711 100644 --- a/pubs/renewable-energy-mdo/commands-re.tex +++ b/pubs/renewable-energy-mdo/commands-re.tex @@ -1,4 +1,8 @@ \newcommand{\requirement}[1]{\refstepcounter{reqnumber}\label{remdo:req:#1}R\arabic{reqnumber}} \newcommand{\reqref}[1]{R\ref{remdo:req:#1}} +\newcommand{\journal}{Renewable Energy} + +\newcommand{\numIterationsToConverge}{55} + \input{numeric-results.tex} \ No newline at end of file diff --git a/pubs/renewable-energy-mdo/content-re.tex b/pubs/renewable-energy-mdo/content-re.tex index 368eed90a..b7dd5bae6 100644 --- a/pubs/renewable-energy-mdo/content-re.tex +++ b/pubs/renewable-energy-mdo/content-re.tex @@ -44,7 +44,8 @@ \section{Conclusion} \else The optimal designs have larger diameters and drafts, lower above-water spar profiles, and thinner structural material, with powertrains similar in size to the nominal RM3, and the non-convex, highly constrained problem requires a \resultsRE[numMultistartRequired]-point multistart for a 95\% chance of the presumed global optimum. Sensitivity analysis shows LCOE is most sensitive to wave characteristics, efficiency, and the fixed charge rate, and design cost to damping plate dimensions, PTO power price, site parameters, and material choice; the optimal design is sensitive to wave characteristics (motivating site-specific designs) and to geometric parameters $D_d$, $T_{f,1}$, $T_s$, and possibly $D_{f,in}$ (suggesting their promotion to design variables). - A global sensitivity across four U.S.\ deployment sites shows incident wave power drives LCOE, with Hawaii's shorter wave periods yielding an optimal design with a \resultsRE[HawaiiDesignCharacteristics]~than on the West Coast, and that allowing force saturation enables a \resultsRE[pctLCOEIncreaseForceSatOptMinLCOE]~LCOE reduction relative to an optimal design without it --- compelling developers to rate the powertrain below the highest expected impedance-matched force. + A global sensitivity across four U.S.\ deployment sites shows incident wave power drives LCOE, with Hawaii's shorter wave periods yielding an optimal design with a \resultsRE[HawaiiDesignCharacteristics]~than on the West Coast. + %, and that allowing force saturation enables a \resultsRE[pctLCOEIncreaseForceSatOptMinLCOE]~LCOE reduction relative to an optimal design without it --- compelling developers to rate the powertrain below the highest expected impedance-matched force. \fi % Meanwhile, control scheme, drag, and degrees of freeom \hl{results await analysis}. diff --git a/pubs/renewable-energy-mdo/mdocean.tex b/pubs/renewable-energy-mdo/mdocean.tex index 25a1404cb..f4e01fa31 100644 --- a/pubs/renewable-energy-mdo/mdocean.tex +++ b/pubs/renewable-energy-mdo/mdocean.tex @@ -1,125 +1,99 @@ -%% -%% Copyright 2007-2024 Elsevier Ltd -%% -%% This file is part of the 'Elsarticle Bundle'. -%% --------------------------------------------- -%% -%% It may be distributed under the conditions of the LaTeX Project Public -%% License, either version 1.3 of this license or (at your option) any -%% later version. The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 1999/12/01 or later. -%% -%% The list of all files belonging to the 'Elsarticle Bundle' is -%% given in the file `manifest.txt'. -%% -%% Template article for Elsevier's document class `elsarticle' -%% with numbered style bibliographic references -%% SP 2008/03/01 -%% $Id: elsarticle-template-num.tex 249 2024-04-06 10:51:24Z rishi $ -%% - -\documentclass[preprint,12pt]{elsarticle} - -%% Use the option review to obtain double line spacing -%% \documentclass[authoryear,preprint,review,12pt]{elsarticle} - -%% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn -%% for a journal layout: -%% \documentclass[final,1p,times]{elsarticle} -%% \documentclass[final,1p,times,twocolumn]{elsarticle} -%% \documentclass[final,3p,times]{elsarticle} -%% \documentclass[final,3p,times,twocolumn]{elsarticle} -%% \documentclass[final,5p,times]{elsarticle} -%% \documentclass[final,5p,times,twocolumn]{elsarticle} - -%% For including figures, graphicx.sty has been loaded in -%% elsarticle.cls. If you prefer to use the old commands -%% please give \usepackage{epsfig} +\documentclass[a4paper,fleqn,colorlinks]{cas-dc} -\input{commands-re} \input{shared-pkg} +\input{commands-re} + +\usepackage[numbers,square]{natbib} -\journal{Renewable Energy} +%%Author macros +\def\tsc#1{\csdef{#1}{\textsc{\lowercase{#1}}\xspace}} +\tsc{WGM} +\tsc{QE} +%%% \begin{document} -\begin{frontmatter} - -%% Title, authors and addresses - -%% use the tnoteref command within \title for footnotes; -%% use the tnotetext command for theassociated footnote; -%% use the fnref command within \author or \affiliation for footnotes; -%% use the fntext command for theassociated footnote; -%% use the corref command within \author for corresponding author footnotes; -%% use the cortext command for theassociated footnote; -%% use the ead command for the email address, -%% and the form \ead[url] for the home page: -%% \title{Title\tnoteref{label1}} -%% \tnotetext[label1]{} -%% \author{Name\corref{cor1}\fnref{label2}} -%% \ead{email address} -%% \ead[url]{home page} -%% \fntext[label2]{} -%% \cortext[cor1]{} -%% \affiliation{organization={}, -%% addressline={}, -%% city={}, -%% postcode={}, -%% state={}, -%% country={}} -%% \fntext[label3]{} - -\title{Leveraging Multidisciplinary Design Optimization to Advance Wave Energy Converter Viability} - -%% use optional labels to link authors explicitly to addresses: -\author[MAE]{Rebecca McCabe\corref{cor1}} +\let\WriteBookmarks\relax +\def\floatpagepagefraction{1} +\def\textpagefraction{.001} + + +\shorttitle{Leveraging Multidisciplinary Design Optimization to Advance Wave Energy Converter Viability} +\shortauthors{R. McCabe et~al.} + +\title[mode=title] +{Leveraging Multidisciplinary Design Optimization to Advance Wave Energy Converter Viability} + +\author[MAE]{Rebecca McCabe}[ +orcid=0000-0001-5108-998X, +auid=57980095200, +linkedin=rebecca-mccabe] + + \ead{rgm222@cornell.edu} -\author[MAE]{Madison Dietrich} -\author[mich]{Maha Haji} - -\cortext[cor1]{Corresponding Author} - -\affiliation[MAE]{organization={Sibley School of Mechanical and Aerospace Engineering, Cornell University}, - addressline={124 Hoy Rd.}, - city={Ithaca}, - postcode={14853}, - state={NY}, - country={USA}} - -\affiliation[mich]{organization={Department of Mechanical Engineering, University of Michigan}, - addressline={G.G. -Brown Laboratory, 2350 Hayward}, - city={Ann Arbor}, - postcode={48109}, - state={MI}, - country={USA}} +\ead[url]{http://sea.mae.cornell.edu} + +% Optional: +\credit{Conceptualization, Methodology, Software, Validation, Writing - Original draft} + +\author[MAE]{Madison Dietrich}[ + orcid=0009-0000-3590-5334 +] + +\credit{Software, Visualization, Writing - Review \& Editing} + +\author[mich]{Maha Haji}[ + orcid=0000-0002-2953-7253 +] +\cormark[1] +\credit{Supervision, Writing - Review \& Editing} + +\affiliation[MAE]{ + organization={Sibley School of Mechanical and Aerospace Engineering, Cornell University}, + addressline={124 Hoy Rd.}, + city={Ithaca}, + postcode={14853}, + state={NY}, + country={USA} +} + +\affiliation[mich]{ + organization={Department of Mechanical Engineering, University of Michigan}, + addressline={G.G. Brown Laboratory, 2350 Hayward}, + city={Ann Arbor}, + postcode={48109}, + state={MI}, + country={USA} +} + +\cortext[1]{Corresponding author} %% Abstract \begin{abstract} %% Text of abstract Wave energy converters (WECs) can advance the global energy transition by producing clean power for utility grids and offshore technologies. -Considering many disciplines concurrently in an optimization process can allow WEC designers to systematically explore interdisciplinary tradeoffs, more fully capture the breadth of design considerations, and leverage coupling for system-wide benefit. +Considering many disciplines concurrently in an optimization process allows WEC designers to systematically explore interdisciplinary tradeoffs and leverage coupling for system-wide benefit. This paper applies the multidisciplinary design optimization (MDO) methodology to perform single- and multi-objective gradient-based optimization of the Reference Model 3 (RM3), a two-body point absorber WEC design benchmark. Five hull dimensions, five structural thicknesses, and the generator force and power rating are simultaneously optimized while obeying various static, dynamic, and structural failure constraints. Objectives include the levelized cost of energy (LCOE), power production, and capital cost. MDO principles motivate the optimization formulation and solution process. -The optimization's large scope and comprehensive nature are uniquely possible due to the purpose-developed semi-analytical model used for simulation, which is called MDOcean and released open-source. - The obtained optimization results achieve a \resultsRE[pctImproveDesignCostMinLCOE]~reduction in modeled cost, \resultsRE[pctImprovePowerMinLCOE]~increase in power, and resulting \resultsRE[pctImproveLCOEMinLCOE]~decrease in LCOE compared to the original RM3 design. Parameter sensitivity analysis indicates that LCOE depends more strongly on \resultsRE[sensitiveParamCategoriesMinLCOE]~parameters than \resultsRE[insensitiveParamCategoriesMinLCOE]~parameters and that the optimal design is sensitive to \resultsRE[sensitiveDesignCategoriesMinLCOE]~parameters. A Pareto trade-off between cost and power reveals different optimal designs depending on which objective is prioritized, suggesting application-specific design heuristics. Three representative optimal designs are investigated: a minimum-LCOE design for cost-sensitive operations like utility power, a minimum-cost design for small offshore systems with fixed power needs, and a balanced design for intermediate applications. -Gradient-based optimization for one objective requires \resultsRE[singleObjFcnEvals]~function evaluations, while the combination gradient and gradient-free procedure for two objectives requires over \resultsRE[paretoFcnEvals]~evaluations. \end{abstract} %%Graphical abstract \begin{graphicalabstract} +%\includegraphics[width=\linewidth]{figs/from-%matlab/graphical_abstract_modeling.pdf} + \centering -\includegraphics[width=\linewidth]{figs/from-matlab/graphical_abstract_optim.pdf} +\includegraphics[width=1\linewidth]{figs/from-matlab/Graphical Abstract 2.pdf} + + + +\textbf{The optimization results achieve a \resultsRE[pctImproveDesignCostMinLCOE]~reduction in modeled cost, \resultsRE[pctImprovePowerMinLCOE]~increase in power, and resulting \resultsRE[pctImproveLCOEMinLCOE]~decrease in LCOE compared to the original RM3 design.} \end{graphicalabstract} %%Research highlights @@ -128,8 +102,8 @@ \end{highlights} %% Keywords -\begin{keyword} -wave energy conversion \sep marine renewable energy \sep structural design \sep survivability analysis \sep sensitivity analysis \sep multidisciplinary design optimization \sep techno-economic optimization \sep control co-design \sep two-body point absorber \sep shape optimization \sep power take-off design +\begin{keywords} +wave energy conversion \sep marine renewable energy \sep multidisciplinary design optimization \sep structural design \sep sensitivity analysis \sep techno-economic optimization %% keywords here, in the form: keyword \sep keyword %% PACS codes here, in the form: \PACS code \sep code @@ -137,16 +111,9 @@ %% MSC codes here, in the form: \MSC code \sep code %% or \MSC[2008] code \sep code (2000 is the default) -\end{keyword} - -\end{frontmatter} - -%% Add \usepackage{lineno} before \begin{document} and uncomment -%% following line to enable line numbers -%% \linenumbers +\end{keywords} -%% main text -%% +\maketitle % added for my convenience, should take out before submission %\tableofcontents @@ -158,76 +125,63 @@ %\detailtexcount{sections/other-appendices}{section} %\newpage -%% Use \section commands to start a section -%% Labels are used to cross-reference an item using \ref command. - \include{content-re} -\section{Acknowledgements} -The authors thank Iris Ren for assistance with optimization code; and Ryan Coe, Jacob Mays, Patrick Reed, Nate DeGeode, and Alaa Ahmed for providing valuable manuscript feedback. +\section*{Acknowledgements} +The authors thank Iris Ren for assistance with optimization code; +Pete Bachant for support on the reproducible computation pipeline; +Ryan Coe, Jacob Mays, Patrick Reed, Nate DeGeode, and Alaa Ahmed for providing valuable manuscript feedback; +and Meghana Vemulapalli, Alex Cuellar, Nathan Huffman, and Nola McCabe for proofreading support. -R.M. acknowledges funding from the National Science Foundation Graduate Research Fellowship. -M.D. acknowledges funding from the Fund for Undergraduate Research on Solutions to Climate Change and the Bill Nye ’77 Award in Undergraduate Research. -This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. +Rebecca McCabe acknowledges funding from the National Science Foundation Graduate Research Fellowship. +Madison Dietrich acknowledges funding from the Fund for Undergraduate Research on Solutions to Climate Change and the Bill Nye ’77 Award in Undergraduate Research. +This material is based on work supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE–2139899. -Any opinion, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation. +Any opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation. -\section{Data Availability Statement} +\section*{Data Availability Statement} The MATLAB code for all simulation, optimization, analysis, and visualization to fully reproduce this work is available open-source via the MDOcean project at \url{https://github.com/symbiotic-engineering/MDOcean} \cite{mccabe_mdocean_2024}. Questions and contributions via GitHub issues and pull requests are welcomed. -A Python version using the OpenMDAO package is forthcoming. % todo: replace with updated Zotero citation - -\begin{appendices} +%A Python version using the OpenMDAO package is forthcoming. % todo: replace with updated Zotero citation +All computational environments, results, and \LaTeX~artifacts can be reproduced via a data version control pipeline built with the \texttt{Calkit} package +and accessed at \url{https://calkit.io/symbiotic-engineering/mdocean}. + +\section*{Declaration of interests} +Rebecca McCabe reports administrative support was provided by New York State Education Department Adult Career and Continuing Education Services Vocational Rehabilitation Services. +Rebecca McCabe reports travel was provided by University Marine Energy Research Community. +Maha Haji reports a relationship with University Marine Energy Research Community that includes board membership. +Madison Dietrich declares no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper. + +\section*{Declaration of generative AI and AI-assisted technologies in the manuscript preparation process} +During the preparation of this work, the authors used the following generative AI tools: +Anthropic Claude (accessed May 2026); +OpenAI ChatGPT (GPT-5.5, GPT-5.3, GPT-5.3-mini, and GPT-5-mini: accessed June 2025--June 2026); +GitHub Copilot Cloud Agent (GPT-5.3 Codex: accessed March 2026--June 2026); +GitHub Copilot Chat Extension for Visual Studio Code (Claude Sonnet 4, Claude Sonnet 4.5, GPT-4.1, GPT-5.4 mini, and GPT-5 mini: accessed February 2024--June 2026); and +Google Search AI Overview (Gemini 1.0, Gemini 1.5, Gemini 2.0, Gemini 2.5, Gemini 3, Gemini 3.5: accessed May 2024--June 2026). +AI tools were dominantly used for the generation and debugging of code and computational workflows not core to the technical contributions of the work. +This includes generation of changelogs, pull request reviews, and continuous integration pipeline features; +execution of merges, dependency version bumps, and compatibility updates; +refactoring of code for improved organization and readability; +syntax reference and usage examples for MATLAB, Python, Bash, \LaTeX, and their associated packages; +resolution of errors and warnings encountered in the above languages during human-led code development and manuscript preparation; +and the execution of specific formatting refinements to figures without altering their core content. + +The following exceptions describe instances where AI tools were used to assist with technical development, mathematical derivations, or figure generation related to the core technical contributions of the work: +ChatGPT was used to conduct targeted literature review to identify relevant optimization algorithms for systems with structured coupling, optimal control techniques to populate the Venn diagram, and references describing convex optimization sensitivity analysis. +Claude and ChatGPT were used editorially to improve clarity, grammar, style, and readability of the text. + +After using these tools, the authors reviewed and edited the content as needed and take full responsibility for the content of the published article. +Author-generated continuous-integration tests and validation cases were used to verify the correctness of simulation code, both AI- and human-generated. + +\appendix +\singleColMacro{ \include{sections/other-appendices} -\end{appendices} - -%% Displayed equations can be tagged using various environments. -%% Single line equations can be tagged using the equation environment. -%%\begin{equation} -%%f(x) = (x+a)(x+b) -%%\end{equation} - -%% Unnumbered equations are tagged using starred versions of the environment. -%% amsmath package needs to be loaded for the starred version of equation environment. -%%\begin{equation*} -%%f(x) = (x+a)(x+b) -%%\end{equation*} - -%% align or eqnarray environments can be used for multi line equations. -%% & is used to mark alignment points in equations. -%% \\ is used to end a row in a multiline equation. -%%\begin{align} -%% f(x) &= (x+a)(x+b) \\ -%% &= x^2 + (a+b)x + ab -%%\end{align} - -%%\begin{eqnarray} -%% f(x) &=& (x+a)(x+b) \nonumber\\ %% If equation numbering is not needed for a row use \nonumber. -%% &=& x^2 + (a+b)x + ab -%%\end{eqnarray} - -%% Unnumbered versions of align and eqnarray -%%\begin{align*} -%% f(x) &= (x+a)(x+b) \\ -%% &= x^2 + (a+b)x + ab -%%\end{align*} - -%%\begin{eqnarray*} -%% f(x)&=& (x+a)(x+b) \\ -%% &=& x^2 + (a+b)x + ab -%%\end{eqnarray*} - -%% Refer following link for more details. -%% https://en.wikibooks.org/wiki/LaTeX/Mathematics -%% https://en.wikibooks.org/wiki/LaTeX/Advanced_Mathematics - -\clearpage - -\bibliographystyle{elsarticle-num-names} +} +\printcredits + + +\bibliographystyle{cas-model2-names} \bibliography{references,zotero-meem-refs} \end{document} - -\endinput -%% -%% End of file `elsarticle-template-num.tex'. diff --git a/pubs/renewable-energy-mdo/references.bib b/pubs/renewable-energy-mdo/references.bib new file mode 100644 index 000000000..76dd1673e --- /dev/null +++ b/pubs/renewable-energy-mdo/references.bib @@ -0,0 +1,5703 @@ + +@misc{mccabe_development_2026, + title = {Development, {Validation}, and {Benchmarking} of a {Multidisciplinary} {Semi}-{Analytical} {Model} for {Wave} {Energy} {Converters}}, + url = {https://arxiv.org/abs/2606.22739v1}, + abstract = {Wave energy converters (WECs) require system-level techno-economic analysis to balance power production, cost, and survivability. Existing simulation tools are either too computationally costly for large-scale optimization or too narrow in disciplinary scope to support integrated design studies. This work presents MDOcean, a novel open-source WEC simulation framework for rapid early-stage design exploration, parametric analysis, and multidisciplinary optimization. MDOcean integrates hydrodynamics, dynamics, structures, and economics in a computationally efficient architecture based on analytical and semi-analytical methods that substantially reduce runtime while maintaining near-numerical accuracy. The framework includes an eigenfunction-based linear hydrodynamic solver, a quasi-linearized frequency-domain dynamics engine capable of modeling drag and saturation nonlinearities, a structural sizing module incorporating realistic yield, ultimate, buckling, storm, and fatigue design criteria, and a simple cost model for techno-economic assessment. Particular emphasis is placed on the linearized pseudo-spectral optimal control formulation, which extends frequency-domain constraint-handling approaches with a unified describing-function and analytical quadratically-constrained quadratic program framework. This formulation efficiently treats nonlinearities and constraints while preserving compatibility with optimization and frequency-domain analysis techniques. Validation and benchmarking demonstrate that MDOcean's 151 ms runtime is orders of magnitude faster than leading WEC simulation tools while maintaining agreement with higher-fidelity baselines to within a few percent in most cases. The framework also provides insight into limiting behaviors, scaling laws, subsystem interactions, and key tradeoffs governing WEC design and techno-economic performance.}, + language = {en}, + urldate = {2026-06-23}, + journal = {arXiv.org}, + author = {McCabe, Rebecca and Dietrich, Madison and Haji, Maha}, + month = jun, + year = {2026}, + file = {Full Text PDF:C\:\\Users\\rgm222\\Zotero\\storage\\KUD5A6AP\\McCabe et al. - 2026 - Development, Validation, and Benchmarking of a Multidisciplinary Semi-Analytical Model for Wave Ener.pdf:application/pdf}, +} + + +@phdthesis{mccabe_dissertation_2026, + address = {Ithaca, NY}, + type = {{PhD} dissertation}, + title = {Leveraging {Semi}-{Analytical} {Modeling}, {Multidisciplinary} {Design} {Optimization}, and {System} {Value} {Metrics} to {Advance} {Wave} {Energy} {Converter} {Viability}}, + url = {https://calkit.io/symbiotic-engineering/mdocean/publications?path=pubs%2Fdissertation%2FsampleThesis.pdf}, + school = {Cornell University}, + author = {McCabe, Rebecca}, + month = aug, + year = {2026}, +} + +@book{hamming_numerical_1962, + address = {New York}, + series = {International series in pure and applied mathematics}, + title = {Numerical methods for scientists and engineers}, + url = {http://archive.org/details/numericalmethods0000hamm}, + abstract = {411 p. 24 cm; Includes bibliography}, + language = {eng}, + urldate = {2026-06-09}, + publisher = {McGraw-Hill}, + author = {Hamming, Richard Wesley}, + year = {1962}, + keywords = {Electronic digital computers}, +} + +@misc{thunberg_speech_2019, + address = {London, England}, + type = {Speech}, + series = {Archives of {Women}'s {Political} {Communication}}, + title = {Speech to the {British} {Parliament}}, + url = {https://awpc.cattcenter.iastate.edu/communication/speech-british-parliament-april-23-2019}, + author = {Thunberg, Greta}, + month = apr, + year = {2019}, +} + +@misc{ackoff_video_2003, + address = {Huntington Beach}, + title = {Dr. {Ackoff} {Seminar}}, + volume = {1}, + url = {https://www.youtube.com/watch?v=a0ooqJ-pOH4&t=26s}, + collaborator = {{The Deming Cooperative}}, + month = mar, + year = {2003}, +} + +@misc{bimali_matrix_2026, + title = {Matrix structure and convergence behaviour of the matched eigenfunction method for computing heave wave forces on generalized concentric bodies}, + url = {http://arxiv.org/abs/2605.19730}, + doi = {10.48550/arXiv.2605.19730}, + abstract = {Structural survival of offshore structures is crucial for the growing marine economy. Calculating the added mass, radiation damping, and excitation coefficients to quantify wave loads with the traditional boundary element method (BEM) presents a computational bottleneck. The matched eigenfunction expansion method (MEEM), a long-known but rarely-used alternative, offers computational benefits due to its semi-analytical nature. However, previous work fails to directly compare its accuracy and computational performance with BEM, leaving the extent of its utility unknown. Furthermore, the geometry-dependent convergence for cylindrical and slanted geometries has not yet been documented, making the method's practicality for general geometries unclear. This paper presents a unifying MEEM framework for modeling an arbitrary number of fixed or heaving surface-piercing annular cylinders with continuous and radially-monotonic body profiles, and explores the method's block matrix structure, convergence behavior, ability to accurately approximate slanted geometries, and computational advantages over the BEM solver Capytaine. The numerical experiments show that MEEM can compute hydrodynamic coefficients of slanted geometries within 5\% of Capytaine, even for angles as steep as 15 degrees from vertical. Finally, MEEM can achieve 2\% convergence of its hydrodynamic coefficients an order of magnitude faster than Capytaine with a matrix size two orders of magnitude smaller, making it a computationally effective alternative to traditional BEM solvers. These contributions enable hydrodynamic analysis of a broad range of shapes with increased speed and confidence, paving the way for future optimization studies to yield improved designs.}, + urldate = {2026-06-09}, + publisher = {arXiv}, + author = {Bimali, Yinghui and McCabe, Rebecca and Treacy, Collin and Khanal, Kapil and Lo, En and Haji, Maha}, + month = may, + year = {2026}, + note = {arXiv:2605.19730 [physics.ao-ph]}, + keywords = {Physics - Atmospheric and Oceanic Physics, Physics - Fluid Dynamics}, +} + + +@unpublished{mccabe_leveraging_2026, + title = {Leveraging {Multidisciplinary} {Design} {Optimization} to {Advance} {Wave} {Energy} {Converter} {Viability}}, + author = {McCabe, Rebecca and Dietrich, Madison and Haji, Maha}, + year = {2026}, + note = {Note: In prep.}, +} + +@book{boyd_convex_2004, + title = {Convex {Optimization}}, + isbn = {978-0-521-83378-3}, + abstract = {Convex optimization problems arise frequently in many different fields. This book provides a comprehensive introduction to the subject, and shows in detail how such problems can be solved numerically with great efficiency. The book begins with the basic elements of convex sets and functions, and then describes various classes of convex optimization problems. Duality and approximation techniques are then covered, as are statistical estimation techniques. Various geometrical problems are then presented, and there is detailed discussion of unconstrained and constrained minimization problems, and interior-point methods. The focus of the book is on recognizing convex optimization problems and then finding the most appropriate technique for solving them. It contains many worked examples and homework exercises and will appeal to students, researchers and practitioners in fields such as engineering, computer science, mathematics, statistics, finance and economics.}, + language = {en}, + publisher = {Cambridge University Press}, + author = {Boyd, Stephen P. and Vandenberghe, Lieven}, + month = mar, + year = {2004}, + note = {Google-Books-ID: mYm0bLd3fcoC}, + keywords = {Business \& Economics / Econometrics, Business \& Economics / Investments \& Securities / General, Computers / Computer Science, Mathematics / General, Mathematics / Linear \& Nonlinear Programming, Mathematics / Optimization, Mathematics / Probability \& Statistics / General, Technology \& Engineering / Electronics / General}, +} + +@article{agrawal_disciplined_2020, + title = {Disciplined quasiconvex programming}, + volume = {14}, + issn = {1862-4480}, + url = {https://doi.org/10.1007/s11590-020-01561-8}, + doi = {10.1007/s11590-020-01561-8}, + abstract = {We present a composition rule involving quasiconvex functions that generalizes the classical composition rule for convex functions. This rule complements well-known rules for the curvature of quasiconvex functions under increasing functions and pointwise maximums. We refer to the class of optimization problems generated by these rules, along with a base set of quasiconvex and quasiconcave functions, as disciplined quasiconvex programs. Disciplined quasiconvex programming generalizes disciplined convex programming, the class of optimization problems targeted by most modern domain-specific languages for convex optimization. We describe an implementation of disciplined quasiconvex programming that makes it possible to specify and solve quasiconvex programs in CVXPY 1.0.}, + language = {en}, + number = {7}, + urldate = {2026-05-05}, + journal = {Optimization Letters}, + author = {Agrawal, Akshay and Boyd, Stephen}, + month = oct, + year = {2020}, + keywords = {Convex optimization, Domain-specific languages, Quasiconvex programming}, + pages = {1643--1657}, +} + +@article{megretski_system_1997, + title = {System analysis via integral quadratic constraints}, + volume = {42}, + issn = {1558-2523}, + url = {https://ieeexplore.ieee.org/document/587335/}, + doi = {10.1109/9.587335}, + abstract = {This paper introduces a unified approach to robustness analysis with respect to nonlinearities, time variations, and uncertain parameters. From an original idea by Yakubovich (1967), the approach has been developed under a combination of influences from the Western and Russian traditions of control theory. It is shown how a complex system can be described, using integral quadratic constraints (IQC) for its elementary components. A stability theorem for systems described by IQCs is presented that covers classical passivity/dissipativity arguments but simplifies the use of multipliers and the treatment of causality. A systematic computational approach is described, and relations to other methods of stability analysis are discussed. Last, but not least, the paper contains a summarizing list of IQCs for important types of system components.}, + number = {6}, + urldate = {2026-04-26}, + journal = {IEEE Transactions on Automatic Control}, + author = {Megretski, A. and Rantzer, A.}, + month = jun, + year = {1997}, + keywords = {Computational modeling, Control system synthesis, Control theory, Design engineering, Feedback, Parameter estimation, Power system modeling, Robust stability, Robustness, Stability analysis}, + pages = {819--830}, +} + +@article{elnagar_pseudospectral_1995, + title = {The pseudospectral {Legendre} method for discretizing optimal control problems}, + volume = {40}, + issn = {1558-2523}, + url = {https://ieeexplore.ieee.org/document/467672}, + doi = {10.1109/9.467672}, + abstract = {This paper presents a computational technique for optimal control problems including state and control inequality constraints. The technique is based on spectral collocation methods used in the solution of differential equations. The system dynamics are collocated at Legendre-Gauss-Lobatto points. The derivative x/spl dot/(t) of the state x(t) is approximated by the analytic derivative of the corresponding interpolating polynomial. State and control inequality constraints are collocated at Legendre-Gauss-Lobatto nodes. The integral involved in the definition of the performance index is discretized based on the Gauss-Lobatto quadrature rule. The optimal control problem is thereby converted into a mathematical programming program. Thus existing, well-developed optimization algorithms may be used to solve the transformed problem. The method is easy to implement, capable of handling various types of constraints, and yields very accurate results. Illustrative examples are included to demonstrate the capability of the proposed method, and a comparison is made with existing methods in the literature.{\textless}{\textgreater}}, + number = {10}, + urldate = {2026-04-08}, + journal = {IEEE Transactions on Automatic Control}, + author = {Elnagar, G. and Kazemi, M.A. and Razzaghi, M.}, + month = oct, + year = {1995}, + keywords = {Chebyshev approximation, Differential equations, Gaussian processes, Lagrangian functions, Mathematical programming, Mathematics, Numerical analysis, Optimal control, Performance analysis, Polynomials}, + pages = {1793--1796}, +} + +@article{hals_comparison_2011, + title = {A {Comparison} of {Selected} {Strategies} for {Adaptive} {Control} of {Wave} {Energy} {Converters}}, + volume = {133}, + issn = {0892-7219}, + url = {https://doi.org/10.1115/1.4002735}, + doi = {10.1115/1.4002735}, + abstract = {Wave-energy converters of the point-absorbing type (i.e., having small extension compared with the wavelength) are promising for achieving cost reductions and design improvements because of a high power-to-volume ratio and better possibilities for mass production of components and devices as compared with larger converter units. However, their frequency response tends to be narrow banded, which means that the performance in real seas (irregular waves) will be poor unless their motion is actively controlled. Only then the invested equipment can be fully exploited, bringing down the overall energy cost. In this work various control methods for point-absorbing devices are reviewed, and a representative selection of methods is investigated by numerical simulation in irregular waves, based on an idealized example of a heaving semisubmerged sphere. Methods include velocity-proportional control, approximate complex conjugated control, approximate optimal velocity tracking, phase control by latching and clutching, and model-predictive control, all assuming a wave pressure measurement as the only external input to the controller. The methods are applied for a single-degree-of-freedom heaving buoy. Suggestions are given on how to implement the controllers, including how to tune control parameters and handle amplitude constraints. Based on simulation results, comparisons are made on absorbed power, reactive power flow, peak-to-average power ratios, and implementation complexity. Identified strengths and weaknesses of each method are highlighted and explored. It is found that overall improvements in average absorbed power of about 100–330\% are achieved for the investigated controllers as compared with a control strategy with velocity-proportional machinery force. One interesting finding is the low peak-to-average ratios resulting from clutching control for wave periods about 1.5 times the resonance period and above.}, + number = {031101}, + urldate = {2026-04-08}, + journal = {Journal of Offshore Mechanics and Arctic Engineering}, + author = {Hals, Jørgen and Falnes, Johannes and Moan, Torgeir}, + month = mar, + year = {2011}, +} + +@article{tan_computationally_2026, + title = {Computationally efficient spectral-domain wave-to-wire modeling of wave energy converters with geared rotary generators}, + volume = {170}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118726001112}, + doi = {10.1016/j.apor.2026.105028}, + abstract = {Wave-to-Wire (W2W) modeling simulates the whole operation process of wave energy converters (WECs), which plays a pivotal role in the systematic design and optimization of WECs. Existing W2W models are predominantly constructed based on time-domain (TD) analysis to coherently incorporate relevant nonlinearities. However, TD models require a high computational cost, which hinders the design iterations of WECs. As a newly emerging alternative approach, spectral-domain (SD) modeling has demonstrated the applicability of describing the W2W process while efficiently covering nonlinear effects through statistical linearization. This study aims to develop an SD W2W modeling approach for WECs coupled with a gearbox and rotary generator. The application of the proposed model is exemplified in two case studies: (1) a point absorber with a rack-pinion system and a rotary generator; (2) a flap-type WEC with a revolving gearbox and a rotary generator. The simulation results obtained by the SD W2W model are compared against a higher-fidelity nonlinear TD W2W model to verify its accuracy across a variety of sea states. A good agreement between the two modeling approaches is observed, in which the maximum relative error is below 7 \% with regard to the estimation of important system outputs. Meanwhile, the computational efficiency of the SD W2W model is thousands of times higher than the TD modeling approach.}, + urldate = {2026-04-07}, + journal = {Applied Ocean Research}, + author = {Tan, Jian and Tao, Ji and Tao, Wei and Xi, Chen and Lavidas, George and Shi, Hongda}, + month = may, + year = {2026}, + keywords = {Geared rotary generator, Spectral-domain modeling, Wave energy converter, Wave-to-wire analysis}, + pages = {105028}, +} + +@book{atherton_nonlinear_1982, + edition = {Student edition}, + title = {Nonlinear {Control} {Engineering}: {Describing} {Function}, {Analysis} and...}, + isbn = {978-0-442-30486-7}, + shorttitle = {Nonlinear {Control} {Engineering}}, + url = {https://www.biblio.com/book/nonlinear-control-engineering-describing-function-analysis/d/1530706447?srsltid=AfmBOopUAO10sh1B9SwmwO78Kn8XmqZsEBUCuyRDsBzWQw9y1AH_QJWz}, + abstract = {Find the best prices on Nonlinear Control Engineering: Describing Function, Analysis and Design by Atherton, Derek P at Biblio {\textbar} Paperback {\textbar} 1982 {\textbar} Chapman \& Hall {\textbar} 9780442304867}, + language = {en}, + urldate = {2026-04-07}, + publisher = {Chapman \& Hall}, + author = {Atherton, Derek P}, + year = {1982}, +} + +@book{ching_quasilinear_2010, + address = {Cambridge}, + title = {Quasilinear {Control}: {Performance} {Analysis} and {Design} of {Feedback} {Systems} with {Nonlinear} {Sensors} and {Actuators}}, + isbn = {978-1-107-00056-8}, + shorttitle = {Quasilinear {Control}}, + url = {https://www.cambridge.org/core/books/quasilinear-control/7FCDA58513EA21BEEB4C3FA941C818BD}, + doi = {10.1017/CBO9780511976476}, + abstract = {This is a textbook and reference for readers interested in quasilinear control (QLC). QLC is a set of methods for performance analysis and design of linear plant or nonlinear instrumentation (LPNI) systems. The approach of QLC is based on the method of stochastic linearization, which reduces the nonlinearities of actuators and sensors to quasilinear gains. Unlike the usual - Jacobian linearization - stochastic linearization is global. Using this approximation, QLC extends most of the linear control theory techniques to LPNI systems. A bisection algorithm for solving these equations is provided. In addition, QLC includes new problems, specific for the LPNI scenario. Examples include Instrumented LQR/LQG, in which the controller is designed simultaneously with the actuator and sensor, and partial and complete performance recovery, in which the degradation of linear performance is either contained by selecting the right instrumentation or completely eliminated by the controller boosting.}, + urldate = {2026-04-07}, + publisher = {Cambridge University Press}, + author = {Ching, ShiNung and Eun, Yongsoon and Gokcek, Cevat and Kabamba, Pierre T. and Meerkov, Semyon M.}, + year = {2010}, +} + +@book{roberts_random_2003, + title = {Random {Vibration} and {Statistical} {Linearization}}, + isbn = {978-0-486-43240-3}, + abstract = {Coherent and self-contained, this volume explains the general method of statistical, or equivalent, linearization and its use in solving random vibration problems. Numerous examples, drawn from a wide variety of engineering problems, offer advanced undergraduate and graduate students a comprehensive view of the method\&\#39;s practical applications. Subjects include general equations of motion and the representation of non-linearities, probability theory and stochastic processes, elements of linear random vibration theory, statistical linearization for simple systems with stationary response, statistical linearization of multi-degree of freedom systems with stationary response, and non-stationary problems. Additional topics include systems with hysteretic non-linearity, relaxation of the Gaussian response assumption, and accuracy of statistical linearization. This updated edition features exclusive material newly prepared by Dr. Spanos, including an appendix, preface, and corrections to the original. 1990 edition.}, + language = {en}, + publisher = {Courier Corporation}, + author = {Roberts, John Brian and Spanos, Pol D.}, + month = dec, + year = {2003}, + note = {Google-Books-ID: xQ7TtGwEMVoC}, + keywords = {Technology \& Engineering / Civil / General, Technology \& Engineering / Engineering (General), Technology \& Engineering / Mechanical}, +} + +@article{vanantwerp_tutorial_2000, + title = {A tutorial on linear and bilinear matrix inequalities}, + volume = {10}, + issn = {0959-1524}, + url = {https://www.sciencedirect.com/science/article/pii/S0959152499000566}, + doi = {10.1016/S0959-1524(99)00056-6}, + abstract = {This is a tutorial on the mathematical theory and process control applications of linear matrix inequalities (LMIs) and bilinear matrix inequalities (BMIs). Many convex inequalities common in process control applications are shown to be LMIs. Proofs are included to familiarize the reader with the mathematics of LMIs and BMIs. LMIs and BMIs are applied to several important process control applications including control structure selection, robust controller analysis and design, and optimal design of experiments. Software for solving LMI and BMI problems is reviewed.}, + number = {4}, + urldate = {2026-04-07}, + journal = {Journal of Process Control}, + author = {VanAntwerp, Jeremy G. and Braatz, Richard D.}, + month = aug, + year = {2000}, + pages = {363--385}, +} + +@article{issoglio_second-order_2026, + title = {Second-order wave excitation forces in {WEC}-{Sim}/{MOST}: {Implementation}, experimental validation, and code-to-code comparison}, + volume = {353}, + issn = {0029-8018}, + shorttitle = {Second-order wave excitation forces in {WEC}-{Sim}/{MOST}}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801826004397}, + doi = {10.1016/j.oceaneng.2026.124605}, + abstract = {Accurate prediction of second-order hydrodynamic loads is essential for floating bodies, including floating offshore wind turbines, wave energy converters, and hybrid wind–wave platforms. These nonlinear effects, arising from both sum- and difference-frequency forcing, are critical for capturing key response characteristics but remain challenging to model efficiently. In this work, we extend the open-source Wave Energy Converter Simulator / MATLAB for Offshore Simulation Tool by implementing second-order wave excitation forces, supporting both the full Quadratic Transfer Function formulation and the Newman approximation. The full Quadratic Transfer Function method is used for all code-to-code comparisons and experimental validation, while the Newman approximation is provided as a computationally lighter alternative. To benchmark the new capability, we perform a code-to-code comparison with OpenFAST and OrcaFlex. We then validate the enhanced model using wave-tank measurements of a 1:96 scale DeepCwind semi-submersible, showing that second-order effects are required to reproduce platform motions. The implementation employs a computationally efficient pre-computation strategy for second-order wave excitation forces, reducing simulation cost while maintaining engineering accuracy. Overall, this work advances the tool as an open-source and versatile tool for modelling floating offshore renewable-energy systems requiring second-order hydrodynamic fidelity.}, + urldate = {2026-03-20}, + journal = {Ocean Engineering}, + author = {Issoglio, Davide and Shabara, Mohamed A. and Petracca, Ermando and Niosi, Francesco and Keester, Adam and Sirigu, Massimo and Bracco, Giovanni}, + month = apr, + year = {2026}, + keywords = {Code-to-code comparison, Experimental validation, Floating offshore wind turbines (FOWTs), Second-order wave excitation forces, WEC-Sim/MOST}, + pages = {124605}, +} + +@inproceedings{mccabe_wec_2025, + address = {Corvallis, OR}, + title = {{WEC} optimization to maximize grid economic value and avoided emissions}, + url = {https://calkit.io/symbiotic-engineering/mdocean/publications#pubs/UMERC-2025-grid-value/UMERC_2025_grid_value.pdf}, + booktitle = {{UMERC}+{OREC} 2025 {Conference}}, + publisher = {University Marine Energy Research Consortium}, + author = {McCabe, Rebecca}, + month = aug, + year = {2025}, + pages = {8}, +} + +@inproceedings{mccabe_open-source_2024, + address = {Duluth, MN}, + title = {Open-source toolbox for semi-analytical hydrodynamic coefficients via the matched eigenfunction expansion method}, + url = {https://zenodo.org/records/14504017}, + doi = {10.5281/zenodo.14504017}, + abstract = {Floating body hydrodynamics are typically solved numerically using the boundary element method. Theassociated code is computationally costly, scaling with the number of mesh panels, and can have accuracy issues atspecific frequencies and for thin bodies. In this work, we instead implement a previously-developed matchedeigenfunction expansion method to semi-analytically solve the linear potential flow radiation problem foraxisymmetric bodies. This method first establishes distinct fluid regions based on the body geometry and expressesthe velocity potential as a function of vertical and radial basis functions (eigenfunctions) with unknown coefficients.Eigenfunctions are chosen to automatically enforce several boundary conditions of the problem. The coefficients arefound by truncating and solving an infinite linear system representing the matching of potential and radial velocityacross fluid region boundaries. This yields a solution for the 3D potential and the hydrodynamic coefficients. Wecompare the results and computational complexity of the matched eigenfunction expansion method with that of thestandard boundary element method. Benefits of the former include 10x faster solve time and lack of meshing, whichare particularly appealing in optimization workflows. Our framework will be released as an open-source pythonpackage to enable future integration with design tools, implementation of gradients, and democratization of thisefficient method. This is a meaningful contribution because prior relevant implementations of the matchedeigenfunction expansion method are, to the authors’ knowledge, private and not available open-source or evencommercially. Future work will extend this formulation to different kinds of bodies and arrays.}, + urldate = {2025-01-03}, + booktitle = {{UMERC} ({University} {Marine} {Energy} {Research} {Consortium}) {Conference} 2024}, + publisher = {Zenodo}, + author = {McCabe, Rebecca and Khanal, Kapil and Haji, Maha}, + month = aug, + year = {2024}, + pages = {6}, +} + +@techreport{ruehl_next-generation_2023, + title = {Next-{Generation} {Marine} {Energy} {Software} {Needs} {Assessment}}, + url = {https://www.osti.gov/biblio/2431205}, + doi = {10.2172/2431205}, + abstract = {The U.S. Department of Energy (DOE) Water Power Technologies Office’s (WPTO) initial investment in marine energy software was driven by needs identified over a decade ago. WPTO-funded research was first launched because of a U.S. congressional mandate that called for the DOE to officially research marine energy technologies, which also established the DOE WPTO in 2008. A congressional mandate requested the WPTO to evaluate a variety of marine energy devices, establish baseline levelized cost of energy estimates, and provide an overall report to Congress. This congressional mandate led to the Reference Model Project (RMP), for which WPTO funded a national multi-laboratory team to develop these reference models, based on state-of-the-art designs of six marine energy converter archetypes that consisted of three current energy converters and three wave energy converters (WEC). Each device was designed to operate for a specific marine resource, thus allowing the devices to serve as reference models for future studies. The RMP congressional report cited the need for improved marine energy software to handle a variety of device designs, as well as a need to standardize performance outputs. Without validated software packages and established metrics, information presented to the WPTO by technology developers could be incorrect or inaccurate and result in misleading conclusions. The recommendation to coordinate WPTO investment in software for numerical modeling and analysis was given a high priority because it would directly fill needs at the time, and focused funding would amplify impact. By sponsoring software development, WPTO would provide industry developers, university researchers, and national laboratories software that could be used, customized, and advanced, thus supporting the overall advancement of marine energy.}, + language = {English}, + number = {SAND--2023-03906R; NREL/TP-5700-84936}, + urldate = {2026-03-14}, + institution = {Sandia National Laboratories (SNL-NM), Albuquerque, NM (United States); National Renewable Energy Laboratory (NREL), Golden, CO (United States)}, + author = {Ruehl, Kelley Michelle and Leon-Quiroga, Jorge Andres and Michelen Strofer, Carlos Alejandro and Topper, Mathew and Tom, Nathan and Baca, Elena and Ogden, David}, + month = may, + year = {2023}, +} + +@unpublished{best_openflash_2026, + type = {In review}, + title = {{OpenFLASH}: {An} open-source flexible library for analytical and semi-analytical hydrodynamics calculations}, + url = {https://joss.theoj.org/papers/842d9827ef856fd88af7128f707f265b}, + author = {Best, Hope and Khanal, Kapil and McCabe, Rebecca and Jiang, Ruiyang and Treacy, Collin and Haji, Maha}, + year = {2026}, + note = {In review}, +} + +@incollection{chicone_contraction_2006, + title = {Contraction}, + isbn = {978-0-387-30769-5}, + url = {https://www.google.com/books/edition/Ordinary_Differential_Equations_with_App/yfY2uGROVrUC}, + abstract = {Mathematics is playing an ever more important role in the physical and biological sciences, provoking a blurring of boundaries between scienti?c disciplines and a resurgence of interest in the modern as well as the cl- sical techniques of applied mathematics. This renewal of interest, both in research and teaching, has led to the establishment of the series Texts in Applied Mathematics (TAM). Thedevelopmentofnewcoursesisanaturalconsequenceofahighlevelof excitement on the research frontier as newer techniques, such as numerical and symbolic computer systems, dynamical systems, and chaos, mix with and reinforce the traditional methods of applied mathematics. Thus, the purpose of this textbook series is to meet the current and future needs of these advances and to encourage the teaching of new courses. TAM will publish textbooks suitable for use in advanced undergraduate and beginning graduate courses, and will complement the Applied Ma- ematical Sciences (AMS) series, which will focus on advanced textbooks and research-level monographs. Pasadena, California J.E. Marsden New York, New York L. Sirovich College Park, Maryland S.S. Antman Preface This book is based on a two-semester course in ordinary di?erential eq- tions that I have taught to graduate students for two decades at the U- versity of Missouri. The scope of the narrative evolved over time from an embryonic collection of supplementary notes, through many classroom tested revisions, to a treatment of the subject that is suitable for a year (or more) of graduate study.}, + language = {en}, + booktitle = {Ordinary {Differential} {Equations} with {Applications}}, + publisher = {Springer Science \& Business Media}, + author = {Chicone, Carmen}, + month = may, + year = {2006}, + note = {Google-Books-ID: yfY2uGROVrUC}, + keywords = {Mathematics / Calculus, Mathematics / Differential Equations / General, Mathematics / Linear \& Nonlinear Programming, Mathematics / Mathematical Analysis, Science / Physics / General}, + pages = {121--144}, +} + +@inproceedings{philip_damping_2012, + address = {Rio de Janeiro, Brazil}, + title = {Damping {Characteristics} of {Heave} {Plates} {Attached} to {Spar} {Hull}}, + url = {https://dx.doi.org/10.1115/OMAE2012-83290}, + doi = {10.1115/OMAE2012-83290}, + abstract = {Damping elements are used in ships and offshore structures as response reduction devices for maintaining the hydrodynamic response within acceptable limits. The use of such elements so far has been based on past experience or using empirical based design approach. An investigation of the wave excitation forces acting on these structures with and without damping elements may give an insight into the damping effects of such elements. Also understanding the flow pattern and the magnitude of flow variation around these elements may be useful to improve the design methods. In the present study, measurement of damping forces and response were carried out to establish the relationship between wave frequency amplitude and damping ratio. It was observed that the damping varies with wave period non-linearly and linearly with wave height. Also it was observed that increase in added mass combined with viscous damping is a key factor for the effectiveness of heave plates in reducing motion response of spar platforms. Of the various configurations tested, the spar with double heave plate at the bottom has higher damping compared to other configurations.}, + language = {en}, + urldate = {2025-04-28}, + booktitle = {{ASME} 2012 31st {International} {Conference} on {Ocean}, {Offshore} and {Arctic} {Engineering}}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Philip, Nimmy Thankom and Nallayarasu, S. and Bhattacharyya, S. K.}, + year = {2012}, + pages = {12}, +} + +@misc{anderson_re-imagining_2024, + address = {Duluth, MN}, + type = {Conference presentation}, + title = {Re-{Imagining} the {RM3} through control co-design}, + url = {https://umerc2024.exordo.com/programme/presentation/106}, + urldate = {2024-12-22}, + author = {Anderson, Megan and Gaebele, Daniel and Roach, Aeron and Forbrush, Dominic and Roberts, Jesse and Weber, Jochem}, + month = aug, + year = {2024}, +} + +@inproceedings{ogden_hydrochrono_2023, + title = {{HydroChrono}: {An} {Open}-{Source} {Hydrodynamics} {Package} for {Project} {Chrono}}, + shorttitle = {{HydroChrono}}, + url = {https://research-hub.nrel.gov/en/publications/hydrochrono-an-open-source-hydrodynamics-package-for-project-chro/}, + doi = {10.36688/ewtec-2023-473}, + language = {American English}, + urldate = {2026-02-27}, + booktitle = {15th {European} {Wave} and {Tidal} {Energy} {Conference}}, + author = {Ogden, David and Quinton, Zuriah and Lataillade, Tristan de and Pallud, Maxime}, + year = {2023}, + pages = {10}, +} + +@inproceedings{mccabe_multidisciplinary_2022, + title = {Multidisciplinary {Optimization} to {Reduce} {Cost} and {Power} {Variation} of a {Wave} {Energy} {Converter}}, + url = {https://asmedigitalcollection.asme.org/IDETC-CIE/proceedings-abstract/IDETC-CIE2022/86229/1150407}, + doi = {10.1115/DETC2022-90227}, + abstract = {Abstract. Wave energy converters (WECs) can advance the global energy transition by producing clean power for utility grids and offshore technologies. This paper provides a multidisciplinary, dual objective optimization of the Reference Model 3 (RM3), a two-body point absorber WEC design benchmark. The simulation model employs linear hydrodynamics with force saturation and probabilistic waves. The RM3 geometry and controller parameters are optimized using sequential quadratic programming to minimize the levelized cost of energy (LCOE) and the coefficient of variation of power. The minimum-LCOE design produces a power variation of 205\% and an LCOE of \$0.08/kWh, a seven-fold cost reduction and 23\% lower variation from the RM3 baseline of \$0.75/kWh and 255\% variation. Parameter sensitivities show that LCOE depends more strongly on site and economic parameters than geometric or material parameters, while power variation is largely insensitive to all parameters. A Pareto trade-offbetween cost and power variation reveals different optimal designs depending on which objective is prioritized, suggesting application-specific design heuristics. Three representative optimal designs are investigated: a minimum-LCOE design for cost-sensitive operations like utility power, a minimum-variation design for cost-insensitive installations like small offshore systems, and a balanced design for intermediate applications. Power probability distributions are shown for each.}, + language = {en}, + urldate = {2023-03-01}, + booktitle = {{ASME} 2022 {International} {Design} {Engineering} {Technical} {Conferences} and {Computers} and {Information} in {Engineering} {Conference}}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {McCabe, Rebecca and Murphy, Olivia and Haji, Maha}, + month = nov, + year = {2022}, + pages = {10}, +} + +@inproceedings{chau_inertia_2012, + title = {Inertia, {Damping}, and {Wave} {Excitation} of {Heaving} {Coaxial} {Cylinders}}, + url = {https://dx.doi.org/10.1115/OMAE2012-83987}, + doi = {10.1115/OMAE2012-83987}, + abstract = {The method of matched eigenfunction expansions is applied in this paper to obtain the hydrodynamic coefficients of a pair of coaxial cylinders, each of which can have independent movement. The geometry idealizes a device for extracting ocean wave energy in the heave mode. The effects of geometric variations and the interaction between cylinders on the hydrodynamic properties are discussed. Analytical expressions for the low-frequency behavior of the hydrodynamic coefficients are also derived. The wave-exciting force on the bottom surface of either one of the cylinders is derived using the radiation solutions, with a generalized form of the Haskind relation developed for this geometry. The presented results are immediately applicable to examine free motion of coaxial cylinders in a wave field.}, + language = {en}, + urldate = {2023-09-28}, + booktitle = {{ASME} 2012 31st {International} {Conference} on {Ocean}, {Offshore} and {Arctic} {Engineering}}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Chau, Fun Pang and Yeung, Ronald W.}, + year = {2012}, + pages = {803--813}, +} + +@mastersthesis{herber_dynamic_2014, + address = {Urbana, Illinois}, + title = {Dynamic system design optimization of wave energy converters utilizing direct transcription}, + copyright = {Copyright 2014 Daniel Ronald Herber}, + url = {https://hdl.handle.net/2142/49463}, + abstract = {Dynamics are playing an increasingly important role in many engineering +domains as these systems become more active and autonomous. Designing +a dynamic engineering system can be challenging. In this thesis, both the problem formulation and solution methods will be discussed for designing a dynamic engineering system. A case is made for the inclusion of both the physical and control system design into a single design formulation. A particular class of numerical methods known as direct transcription is identified as promising solution method. These principles are then demonstrated on the design of a wave energy converter, a device that captures energy present in ocean waves. This system is of particular interest since a successful design hinges on exploiting the natural dynamics of the interaction between the ocean waves and the physical wave energy converter. A number of numerical studies are presented that identify both novel and previously observed strategies for the maximizing energy production of a ocean wave energy converter.}, + urldate = {2023-03-03}, + school = {University of Illinois at Urbana-Champaign}, + author = {Herber, Daniel Ronald}, + month = may, + year = {2014}, +} + +@techreport{azarm_monotonicity-based_1988, + address = {College Park, MD}, + type = {Technical report}, + title = {Monotonicity-{Based} {Decomposition} {Methods} for {Design} {Optimization}.}, + url = {http://hdl.handle.net/1903/4743}, + abstract = {This paper describes applications of global and local monotonicity analysis within a decomposition framework. We present a general formulation and solution procedure, based on a bottom-level global monotoncity analysis, for a design optimization problem which is decomposed into three levels of subproblems. We then perform an optimality test to prove that the optimality conditions for the decomposed subproblems will form the optimality conditions of the overall problem. Furthermore, applications of a two-level decomposition method is presented in which an overall global monotonicity analysis or first-level local monotonicity analysis is performed. Well-known examples illustrate applications of the methods.}, + language = {en\_US}, + number = {SRC TR 88-10}, + urldate = {2026-02-27}, + institution = {University of Maryland College Park}, + author = {Azarm, Shapour and Li, Wei-Chu}, + year = {1988}, + pages = {39}, +} + +@misc{janzou_system_2020, + address = {Golden, CO}, + title = {System {Advisor} {Model} ({SAM})}, + copyright = {BSD-3-Clause}, + url = {https://github.com/NREL/SAM/}, + abstract = {System Advisor Model (SAM)}, + urldate = {2022-05-13}, + publisher = {National Renewable Energy Laboratory}, + author = {Janzou, Steve}, + month = nov, + year = {2020}, + note = {original-date: 2013-01-10T02:52:47Z}, +} + +@article{yoon_spectral_2016, + title = {Spectral {Analysis} of {Electrohydraulic} {System}}, + volume = {139}, + issn = {0022-0434}, + url = {https://doi.org/10.1115/1.4034780}, + doi = {10.1115/1.4034780}, + abstract = {This paper presents spectral analysis of an electrohydraulic system. For a linear system, spectral analysis using a frequency response function (FRF) offers great insight into system dynamics and controls. The objective of this paper is to extend such benefits to the nonlinear electrohydraulic system. To achieve the objective, generalized frequency response functions (GFRFs) and output spectra of the electrohydraulic system are analyzed in frequency domain. In this paper, two different approaches are proposed to derive the GFRFs. In the first approach, the analytic GFRFs are derived from physical dynamics of the electrohydraulic system. Thus, the dynamic features of the electrohydraulic system can be explored with respect to the physical parameters explicitly in frequency domain. In the second approach, the experimental GFRFs are identified from frequency response data. Although the explicit relationship with the physical parameters is not available, they can predict the output spectrum without a priori knowledge of the electrohydraulic system. The proposed approaches are applied to derive the GFRFs analytically and experimentally for spectral analysis of an electrohydraulic system. Spectral analysis reveals the critical dynamic features of the electrohydraulic system in frequency domain, and it turns out to be crucial for system design, identification, and controls of the electrohydraulic system.}, + number = {021005}, + urldate = {2026-03-16}, + journal = {Journal of Dynamic Systems, Measurement, and Control}, + author = {Yoon, Yongsoon and Sun, Zongxuan}, + month = nov, + year = {2016}, +} + +@article{wright_coordinate_2015, + title = {Coordinate descent algorithms}, + volume = {151}, + issn = {1436-4646}, + url = {https://doi.org/10.1007/s10107-015-0892-3}, + doi = {10.1007/s10107-015-0892-3}, + abstract = {Coordinate descent algorithms solve optimization problems by successively performing approximate minimization along coordinate directions or coordinate hyperplanes. They have been used in applications for many years, and their popularity continues to grow because of their usefulness in data analysis, machine learning, and other areas of current interest. This paper describes the fundamentals of the coordinate descent approach, together with variants and extensions and their convergence properties, mostly with reference to convex objectives. We pay particular attention to a certain problem structure that arises frequently in machine learning applications, showing that efficient implementations of accelerated coordinate descent algorithms are possible for problems of this type. We also present some parallel variants and discuss their convergence properties under several models of parallel execution.}, + language = {en}, + number = {1}, + urldate = {2026-02-27}, + journal = {Mathematical Programming}, + author = {Wright, Stephen J.}, + month = jun, + year = {2015}, + keywords = {49M20, 90C25, Coordinate descent, Parallel numerical computing, Randomized algorithms}, + pages = {3--34}, +} + +@article{martins_multidisciplinary_2013, + title = {Multidisciplinary {Design} {Optimization}: {A} {Survey} of {Architectures}}, + volume = {51}, + issn = {0001-1452}, + shorttitle = {Multidisciplinary {Design} {Optimization}}, + url = {https://arc.aiaa.org/doi/10.2514/1.J051895}, + doi = {10.2514/1.J051895}, + abstract = {Multidisciplinary design optimization is a field of research that studies the application of numerical optimization techniques to the design of engineering systems involving multiple disciplines or components. Since the inception of multidisciplinary design optimization, various methods (architectures) have been developed and applied to solve multidisciplinary design-optimization problems. This paper provides a survey of all the architectures that have been presented in the literature so far. All architectures are explained in detail using a unified description that includes optimization problem statements, diagrams, and detailed algorithms. The diagrams show both data and process flow through the multidisciplinary system and computational elements, which facilitate the understanding of the various architectures, and how they relate to each other. A classification of the multidisciplinary design-optimization architectures based on their problem formulations and decomposition strategies is also provided, and the benefits and drawbacks of the architectures are discussed from both theoretical and experimental perspectives. For each architecture, several applications to the solution of engineering-design problems are cited. The result is a comprehensive but straightforward introduction to multidisciplinary design optimization for nonspecialists and a reference detailing all current multidisciplinary design-optimization architectures for specialists.}, + number = {9}, + urldate = {2023-12-04}, + journal = {AIAA Journal}, + publisher = {American Institute of Aeronautics and Astronautics}, + author = {Martins, Joaquim R. R. A. and Lambe, Andrew B.}, + month = sep, + year = {2013}, + note = {\_eprint: https://doi.org/10.2514/1.J051895}, + pages = {2049--2075}, +} + +@article{reveyrand_multiport_2018, + address = {Brive La Gaillarde, France}, + title = {Multiport conversions between {S}, {Z}, {Y}, h, {ABCD}, and {T} parameters}, + copyright = {https://doi.org/10.15223/policy-029}, + url = {https://ieeexplore.ieee.org/document/8430023/}, + doi = {10.1109/INMMIC.2018.8430023}, + abstract = {This paper presents main formulas to convert S, Z, Y, h, ABCD and T parameters of multiport circuits. Formulas are presented in matrix form, and some restrictions on unbalanced systems for cascade parameters are discussed. Those expressions are prime of importance in order to analyze and optimize multiport systems without any simulation software.}, + urldate = {2026-02-05}, + journal = {2018 International Workshop on Integrated Nonlinear Microwave and Millimetre-wave Circuits (INMMIC)}, + publisher = {IEEE}, + author = {Reveyrand, T.}, + month = jul, + year = {2018}, + note = {Conference Name: 2018 International Workshop on Integrated Nonlinear Microwave and Millimetre-wave Circuits (INMMIC) +ISBN: 9781538655078}, + pages = {1--3}, +} + +@book{saadat_power_1999, + title = {Power system analysis}, + volume = {2}, + url = {https://www.uvic.ca/ecs/ece/assets/docs/current/undergraduate/201901/ece488.pdf}, + urldate = {2026-02-02}, + publisher = {McGraw-hill}, + author = {Saadat, Hadi}, + year = {1999}, +} + +@misc{weisstein_cassini_2026, + type = {Text}, + title = {Cassini {Ovals}}, + copyright = {Copyright 1999-2026 Wolfram Research, Inc. See https://mathworld.wolfram.com/about/terms.html for a full terms of use statement.}, + url = {https://mathworld.wolfram.com/CassiniOvals.html}, + abstract = {The Cassini ovals are a family of quartic curves, also called Cassini ellipses, described by a point such that the product of its distances from two fixed points a distance 2a apart is a constant b{\textasciicircum}2. The shape of the curve depends on b/a. If a{\textless}b, the curve is a single loop with an oval (left figure above) or dog bone (second figure) shape. The case a=b produces a lemniscate (third figure). If a{\textgreater}b, then the curve consists of two loops (right figure). Cassini ovals are anallagmatic...}, + language = {en}, + urldate = {2026-02-02}, + journal = {MathWorld - a Wolfram Resource}, + publisher = {Wolfram Research, Inc.}, + author = {Weisstein, Eric W.}, + month = jan, + year = {2026}, +} + +@book{tedrake_underactuated_2024, + title = {Underactuated {Robotics}: {Algorithms} for {Walking}, {Running}, {Swimming}, {Flying}, and {Manipulation}}, + url = {https://underactuated.csail.mit.edu}, + author = {Tedrake, Russ}, + year = {2024}, + note = {Published: Course Notes for MIT 6.832}, +} + +@article{coe_co-design_2025, + title = {Co-design of a wave energy converter through bi-conjugate impedance matching}, + volume = {111}, + issn = {0957-4158}, + url = {https://www.sciencedirect.com/science/article/pii/S0957415825001047}, + doi = {10.1016/j.mechatronics.2025.103395}, + abstract = {As with other oscillatory power conversion systems, the design of wave energy converters can be understood as an impedance matching problem. By representing the wave energy converter as a multi-port network, two separate but related impedance matching conditions can be established. Satisfying these conditions maximizes power transfer to the load. In practice, these impedance matching conditions may be used to influence the design of the system (including the hull, power take-off, controller, mooring, etc.). To this end, this paper considers some example applications of wave energy converter design with the help of the impedance matching framework.}, + urldate = {2025-12-16}, + journal = {Mechatronics}, + author = {Coe, Ryan G. and Bacelli, Giorgio and Gaebele, Daniel and Keow, Alicia and Forbush, Dominic}, + month = nov, + year = {2025}, + keywords = {Control co-design, Impedance matching, Wave energy converter (WEC)}, + pages = {103395}, +} + +@article{edwards_effect_2025, + title = {The effect of device geometry on the performance of a wave energy converter}, + volume = {4}, + copyright = {2025 The Author(s)}, + issn = {2731-3395}, + url = {https://www.nature.com/articles/s44172-025-00441-2}, + doi = {10.1038/s44172-025-00441-2}, + abstract = {Wave energy presents an excellent opportunity to add much-needed diversification to the global renewable energy portfolio. However, a competitive levelised cost of electricity for wave energy conversion devices is yet to be proven. Here, we optimise the geometry of a wave energy device to maximise power while also minimising the power take-off reaction moments. Using theory, numerical modelling and optimisation techniques, we show that by including minimisation of reaction moments in the optimisation, instead of only maximisation of power, it is possible to substantially lower the design loads while maintaining high efficiency. Using the underlying physics of how geometry affects the wave-structure interaction, we explain the resulting performance of these new designs for wave energy converters. We examine the resulting geometries for practicality, including performance over a wide range of sea states, motion requirements, and performance in a real sea-state off the coast of Scotland, United Kingdom. Comparing against the single shape which extracts the theoretical maximum power, the optimal shapes found in our study extract almost as much power (12\% less) with substantially less moment (reduced by up to 35\%), revealing a promising direction for wave energy development.}, + language = {en}, + number = {1}, + urldate = {2025-09-24}, + journal = {Communications Engineering}, + publisher = {Nature Publishing Group}, + author = {Edwards, Emma C. and Whitlam, Craig and Chapman, John and Hughes, Jack and Redfearn, Bryony and Brown, Scott and Draper, Scott and Borthwick, Alistair G. L. and Foster, Graham and Yue, Dick K.-P. and Hann, Martyn and Greaves, Deborah}, + month = jun, + year = {2025}, + keywords = {Civil engineering, Devices for energy harvesting, Mechanical engineering, Renewable energy}, + pages = {107}, +} + +@article{bacelli_system_2017, + title = {System {Identification} of a {Heaving} {Point} {Absorber}: {Design} of {Experiment} and {Device} {Modeling}}, + volume = {10}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {System {Identification} of a {Heaving} {Point} {Absorber}}, + url = {https://www.mdpi.com/1996-1073/10/4/472}, + doi = {10.3390/en10040472}, + abstract = {Empirically based modeling is an essential aspect of design for a wave energy converter. Empirically based models are used in structural, mechanical and control design processes, as well as for performance prediction. Both the design of experiments and methods used in system identification have a strong impact on the quality of the resulting model. This study considers the system identification and model validation process based on data collected from a wave tank test of a model-scale wave energy converter. Experimental design and data processing techniques based on general system identification procedures are discussed and compared with the practices often followed for wave tank testing. The general system identification processes are shown to have a number of advantages, including an increased signal-to-noise ratio, reduced experimental time and higher frequency resolution. The experimental wave tank data is used to produce multiple models using different formulations to represent the dynamics of the wave energy converter. These models are validated and their performance is compared against one another. While most models of wave energy converters use a formulation with surface elevation as an input, this study shows that a model using a hull pressure measurement to incorporate the wave excitation phenomenon has better accuracy.}, + language = {en}, + number = {4}, + urldate = {2025-07-14}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Bacelli, Giorgio and Coe, Ryan G. and Patterson, David and Wilson, David}, + month = apr, + year = {2017}, + note = {Number: 4}, + keywords = {model validation, system identification, wave energy, wave tank testing}, + pages = {472}, +} + +@article{kristiansen_state-space_2005, + title = {State-space representation of radiation forces in time-domain vessel models}, + volume = {32}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801805000946}, + doi = {10.1016/j.oceaneng.2005.02.009}, + abstract = {The paper presents a method for generating a new and efficient time-domain formulation of the equations of motion for a vessel with frequency-dependent hydrodynamic coefficients. Previous work on this topic has relied on the use of convolution terms, whereas in this work state-space models are used. This leads to a model formulation that is well suited for controller design and simulation.}, + number = {17}, + urldate = {2025-07-14}, + journal = {Ocean Engineering}, + author = {Kristiansen, Erlend and Hjulstad, Åsmund and Egeland, Olav}, + month = dec, + year = {2005}, + keywords = {Convolution integral, Discretization, Frequency-dependent characteristics, State-space realization, Time-domain}, + pages = {2195--2216}, +} + +@article{greenhow_added_1988, + title = {Added mass and damping of horizontal circular cylinder sections}, + volume = {15}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/0029801888900121}, + doi = {10.1016/0029-8018(88)90012-1}, + abstract = {This note brings together and extends previously known results for the added masses and dampings of surface-piercing or completely submerged horizontal circular cylinders. For vertical (heave) motions, but not horizontal (sway) motions, a striking qualitative change occurs in these hydrodynamic coefficients when the cylinder breaks the surface. This is simply explained in terms of low-frequency asymptotics and the equivalent wavemaker method.}, + number = {5}, + urldate = {2025-07-14}, + journal = {Ocean Engineering}, + author = {Greenhow, M. and Ahn, S. I.}, + month = jan, + year = {1988}, + pages = {495--504}, +} + +@incollection{mckinley_dimensional_2021, + address = {Cambridge, MA}, + edition = {Spring 2021}, + title = {Dimensional {Analysis}}, + booktitle = {2.006: {Thermal} {Fluids} {Engineering} {II}}, + publisher = {MIT CopyTech}, + author = {McKinley, Garreth and Cheng, W and Brisson, John}, + year = {2021}, + pages = {78}, +} + +@misc{van_den_herik_idemat_2024, + type = {Excel sheet}, + title = {Idemat scope 3 eco-costs}, + url = {https://www.ecocostsvalue.com/data-tools-books/}, + urldate = {2024-04-15}, + author = {van den Herik, Jasper and Vögtlander, Joost}, + year = {2024}, +} + +@article{wu_development_2020, + title = {Development and validation of a high-resolution regional wave hindcast model for {U}.{S}. {West} {Coast} wave resource characterization}, + volume = {152}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148120300963}, + doi = {10.1016/j.renene.2020.01.077}, + abstract = {Wave resource characterization is an essential step for wave energy converter development in the ocean. However, accurate and detailed resource characterization at a regional scale poses a great challenge because of the requirements for high model grid resolution, extensive model validation, and a high-performance-computing resource. This study presents a multi-scale, multi-resolution approach using the WaveWatchIII and Simulating WAve Nearshore (SWAN) wave models to provide accurate long-term wave hindcasts with a spatial resolution of approximate 300 m in the nearshore region on the U.S. West Coast. Extensive model validation for the six wave resource parameters recommended by the International Electrotechnical Commission, bivariate histograms, and frequency-directional spectra distributions were conducted using a set of model performance metrics and measurements from 28 wave buoys along the West Coast. Model skills in simulating large waves under extreme storm events were also evaluated. Model results showed that the high-resolution SWAN model is able to accurately simulate the wave climate on the West Coast, especially in the nearshore region. This study also demonstrates that the multi-scale and multi-resolution modeling framework is an efficient approach for generating accurate long-term, high-resolution wave hindcasts for wave resource characterization at the regional scale.}, + urldate = {2025-07-02}, + journal = {Renewable Energy}, + author = {Wu, Wei-Cheng and Wang, Taiping and Yang, Zhaoqing and García-Medina, Gabriel}, + month = jun, + year = {2020}, + keywords = {High-resolution wave hindcast, Model validation, SWAN, U.S. West Coast, Unstructured-grid model, WaveWatchIII}, + pages = {736--753}, +} + +@article{allahdadi_development_2019, + title = {Development and validation of a regional-scale high-resolution unstructured model for wave energy resource characterization along the {US} {East} {Coast}}, + volume = {136}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148119300175}, + doi = {10.1016/j.renene.2019.01.020}, + abstract = {Leveraging the high-performance computing capability at one of the US Department of Energy’s (USDOE) National Laboratories, an ultra-high-resolution Simulating WAves Nearshore (SWAN) model suitable for wave energy project feasibility studies is developed for the US East Coast Region. This model uses an unstructured mesh with a coastal resolution of 200 m. It is forced by Climate Forecast System Reanalysis wind fields with spatial and temporal resolutions of 0.312° and 1 h at the surface, and by wave parameters from the global WAVEWATCH III model along the model’s open boundaries. It is the first USDOE regional wave hindcast model for the US East Coast developed according to International Electrotechnical Commission standards for wave energy resource assessment and characterization. The present study focuses on the development and validation of this ultra-high resolution large-scale model, including source model selection, sensitivity studies, and model performance evaluation for a wave energy resource characterization application.}, + urldate = {2025-07-02}, + journal = {Renewable Energy}, + author = {Allahdadi, M. Nabi and Gunawan, Budi and Lai, Jonathan and He, Ruoying and Neary, Vincent S.}, + month = jun, + year = {2019}, + keywords = {US East Coast, Wave energy, Wave modeling}, + pages = {500--511}, +} + +@article{mehta_designing_2024, + title = {Designing wind turbines for profitability in the day-ahead market}, + volume = {9}, + issn = {2366-7443}, + url = {https://wes.copernicus.org/articles/9/2283/2024/}, + doi = {10.5194/wes-9-2283-2024}, + abstract = {Traditionally, wind turbine and wind farm designs have been optimized to minimize the cost of energy. Such a design would make sense when bidding in price-based auctions. However, in a future with a high share of renewables and zero subsidies, the wind farm developer is exposed to the volatility of market prices, where the price paid per kilowatt-hour of energy would not be constant anymore. The developer might then have to maximize the revenue earned by participating in different energy, capacity, or ancillary services markets. In such a scenario, a turbine designed for maximizing its market value could be more profitable for the developer compared to a turbine designed for minimizing the levelized cost of electricity (LCoE). This study is in line with this paradigm shift in the field of turbine and farm design. It is a continuation of a previous study conducted by the same authors (Mehta et al., 2024), which explicitly focused on the drivers of turbine sizing with respect to LCoE. The goal of this study is to optimize the design for a new set of objective functions and analyze how various day-ahead market conditions and objectives drive turbine design. A simplified market model that can generate hourly day-ahead market prices is developed and coupled with a wind-farm-level multidisciplinary design analysis and optimization (MDAO) framework to evaluate key economic indicators of the wind farm. The results show how the optimum turbine design is driven by both the choice of the economic metric and the market scenario. However, an LCoE-optimized design is found to perform well with respect to profitability-based economic metrics like modified internal rate of return (MIRR) or profitability index (PI), indicating a limited need to redesign turbines for a specific day-ahead market scenario.}, + language = {English}, + number = {12}, + urldate = {2025-07-01}, + journal = {Wind Energy Science}, + publisher = {Copernicus GmbH}, + author = {Mehta, Mihir Kishore and Zaaijer, Michiel and von Terzi, Dominic}, + month = dec, + year = {2024}, + pages = {2283--2300}, +} + +@techreport{moraski_beyond_2025, + title = {Beyond {LCOE}: {A} {Systems}-{Oriented} {Perspective} for {Evaluating} {Electricity} {Decarbonization} {Pathways}}, + shorttitle = {Beyond {LCOE}}, + url = {https://www.catf.us/resource/beyond-lcoe/}, + abstract = {This report explains why Levelized Cost of Electricity (LCOE) fails to reflect the full complexity of electricity systems.}, + language = {en}, + urldate = {2025-07-01}, + institution = {Clean Air Task Force}, + author = {Moraski, Jill and Qvist, Malwina and Spokas, Kasparas}, + month = may, + year = {2025}, +} + +@mastersthesis{makaremi_economic_2025, + title = {Economic {Evaluation} {Metrics} for {Energy} {Island} {Solutions}, including wind and wave energy generation systems}, + url = {https://openarchive.usn.no/usn-xmlui/handle/11250/3202262}, + abstract = {In response to the global push for decarbonization and sustainable energy development, energy islands have emerged as a strategic concept for large-scale renewable electricity generation. While their technical potential is significant, the economic viability of such systems remains uncertain and requires a comprehensive assessment. This thesis investigates the economic evaluation of offshore energy island solutions utilizing wind, wave, and hybrid wind–wave configurations. + +The main objective of this research is to use a comprehensive set of established and profitability metrics to evaluate and compare the techno-economic performance of different Energy Island configurations. Four distinct configurations were assessed: standalone wind, standalone wave, wind-dominant hybrid, and wave-dominant hybrid systems. The case study is based on an offshore site near Stavanger, Norway, and simulations were performed using HOMER software. + +The methodology included device selection, Capital Expenditure and Operational Expenditure estimation, annual energy production (AEP) calculation, revenue forecasting, and the application of a wide range of economic evaluation metrics. These metrics are categorized as follows: + + * Non-Comprehensive Metrics: Levelized Cost of Energy (LCOE), Levelized Value of Energy (LVOE), Value Factor (VF) + * Comprehensive Metrics: Net Value of Energy (NVOE), Net Value of Capacity (NVOC), System LCOE (SLCOE) + * Profitability Metrics: Benefit-Cost Ratio (BCR), Cost-Benefit Ratio (CBR), Return on Investment (ROI), Profit Margin (PM), and Profitability-adjusted LCOE (PLCOE) +In addition, sensitivity analyses were conducted to assess the impact of key financial variables, such as discount rate and wave energy CAPEX, on the economic feasibility of different energy island configurations, with the aim of identifying break-even conditions and informing investment decisions. + +The results reveal that while wave-only systems remain economically challenging, hybrid wind–wave configurations, particularly those with cost optimization, can offer improved economic outcomes. The study concludes that applying a multi-metric evaluation approach provides a clearer picture of competitiveness, supporting better-informed decisions for future investments in offshore renewable infrastructure.}, + language = {eng}, + urldate = {2025-07-01}, + school = {University of South-Eastern Norway}, + author = {Makaremi, Elaheh}, + year = {2025}, + note = {Accepted: 2025-06-27T16:41:58Z}, +} + +@article{kainz_how_2024, + title = {How do technological choices affect the economic and environmental performance of offshore wind farms?}, + volume = {2767}, + issn = {1742-6596}, + url = {https://dx.doi.org/10.1088/1742-6596/2767/8/082005}, + doi = {10.1088/1742-6596/2767/8/082005}, + abstract = {The ongoing energy transition towards fully sustainable energy systems requires designing wind farms looking beyond the sole levelized cost of energy, in order to concurrently ensure not only the economic profitability but also the environmental friendliness of future plants. Within this new approach to design, it becomes necessary to understand the effects that various possible technological choices have on both the economic and the environmental performance of wind farms. This study presents a framework designed to support these coupled economic-environmental assessments. The capabilities of the code are showcased by analysing the impact of different choices in terms of support structure type, specific power, tower height, powertrain type, and array and export voltage level for an exemplary offshore farm, chosen here as the IEA Wind 740-10-MW Reference Offshore Wind Plant with irregular layout. While the effects of many technological choices on the cost of energy are already well understood by industry, the present analysis shows that — at least in this specific case — climate change impacts are mainly driven by steel production, due to the massive amount of required material, but also, interestingly, by vessel activities. A low specific power, tall towers, and a high export cable voltage appear to offer the greatest potential for the concurrent improvement of the environmental and economic performance of the plant.}, + language = {en}, + number = {8}, + urldate = {2025-07-01}, + journal = {Journal of Physics: Conference Series}, + publisher = {IOP Publishing}, + author = {Kainz, S and Guilloré, A and Bottasso, C L}, + month = jun, + year = {2024}, + pages = {082005}, +} + +@article{canet_eco-conscious_2023, + title = {The eco-conscious wind turbine: design beyond purely economic metrics}, + volume = {8}, + issn = {2366-7443}, + shorttitle = {The eco-conscious wind turbine}, + url = {https://wes.copernicus.org/articles/8/1029/2023/}, + doi = {10.5194/wes-8-1029-2023}, + abstract = {Wind turbines are designed to minimize the economic cost of energy, a metric aimed at making wind competitive with other energy-producing technologies. However, now that wind energy is competitive, how can we increase its value for the environment and for society? And how much would environmental and societal gains cost other stakeholders, such as investors or consumers? This paper tries to answer these questions, limitedly to climate-related environmental impacts, from the perspective of wind turbine design. + + Although wind turbines produce green renewable energy, they also have various impacts on the environment, as do all human endeavors. Among all impacts, the present work adopts the environmental effects produced by a turbine over its entire life cycle, expressed in terms of CO2-equivalent emissions. A new approach to design is proposed, whereby Pareto fronts of solutions are computed to define optimal trade-offs between economic and environmental goals. + + The new proposed methodology is demonstrated on the redesign of a baseline 3 MW wind turbine at two locations in Germany, differing for typical wind speeds but within the same energy market. Among other results, it is found that, in these conditions, a 1 \% increase in the cost of energy can buy about a 5 \% decrease in the environmental impact of the turbine. Additionally, it is also observed that in the specific case of Germany, very low-specific-power designs are typically favored, because they produce more energy at low wind speeds, where both the economic and environmental values of wind are higher. Furthermore, it is found that the CO2-equivalent emissions displaced by a wind turbine are 1 order of magnitude larger than the produced emissions. + + Although limited to the sole optimization of wind-generating assets at two different locations, these results suggest the existence of new opportunities for the future development of wind energy where, by shifting the focus slightly away from a purely cost-driven short-term perspective, longer-term benefits for the environment (and, in turn, for society) may be obtained.}, + language = {English}, + number = {6}, + urldate = {2025-07-01}, + journal = {Wind Energy Science}, + publisher = {Copernicus GmbH}, + author = {Canet, Helena and Guilloré, Adrien and Bottasso, Carlo L.}, + month = jun, + year = {2023}, + pages = {1029--1047}, +} + +@misc{bonaldo_genxprojectgenxjl_2025, + title = {{GenXProject}/{GenX}.jl: v0.4.4}, + shorttitle = {{GenXProject}/{GenX}.jl}, + url = {https://zenodo.org/records/14807684}, + doi = {10.5281/zenodo.14807684}, + abstract = {GenX v0.4.4 + +Diff since v0.4.3 + +Merged pull requests: + + + +Fix path manipulation bug \#827 (\#828) (@cfe316) + + +Closed issues: + + + +[Bug]: model errors out when TimeDomainReduction and OutputFullTimeSeries are both activated (\#827)}, + urldate = {2025-06-30}, + publisher = {Zenodo}, + author = {Bonaldo, Luca and Chakrabarti, Sambuddha and Cheng, Fangwei and Ding, Yifu and Jenkins, Jesse D. and Luo, Qian and Macdonald, Ruaridh and Mallapragada, Dharik and Manocha, Aneesha and Mantegna, Gabe and Morris, Jack and Patankar, Neha and Pecci, Filippo and Schwartz, Aaron and Schwartz, Jacob and Schivley, Greg and Sepulveda, Nestor and Xu, Qingyu and Zhou, Justin}, + month = feb, + year = {2025}, +} + +@misc{schivley_powergenomepowergenome_2025, + title = {{PowerGenome}/{PowerGenome}: v0.7.0}, + shorttitle = {{PowerGenome}/{PowerGenome}}, + url = {https://zenodo.org/records/15066032}, + doi = {10.5281/zenodo.15066032}, + abstract = {The major feature bump in this version is formatting outputs to match inputs required for GenX 0.4.. It is still possible to create inputs for GenX 0.3. using a settings parameter old\_genx\_format: true. Output folder structure has also changed to always follow the format {\textless}case{\textgreater}/Inputs/Inputs\_p*. + +Other non-breaking changes and updates: + + + +Directly use hourly demand data when they are available for a planning year. This is not compatible with constructing demand profiles using end-use stock values and hourly demand factors. + +The case/scenario description file is no longer used. Case/scenario names are set entirely within the scenario definitions file. + +Resources without an assigned fuel will now have the fuel name No\_fuel instead of None. Starting in v2.0 Pandas treats the None string as NaN by default, which can cause data processing issues. + + +What's Changed + + + +Bug fix: RG dicts were somehow modified before use by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/345 + +[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/PowerGenome/PowerGenome/pull/347 + +Fix typo by @mfripp in https://github.com/PowerGenome/PowerGenome/pull/346 + +Improve message for generators without lat/lon data by @mfripp in https://github.com/PowerGenome/PowerGenome/pull/355 + +370 fix sqlite bug from double quoted f strings by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/371 + +Rebase sql fixes into feature branch by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/372 + +Rebase sql fixes into feature branch output-format-genx-0.4 by @lbonaldo in https://github.com/PowerGenome/PowerGenome/pull/376 + +Convert julia output formatting script to python function by @lbonaldo in https://github.com/PowerGenome/PowerGenome/pull/374 + +Refactor scenario settings handling, remove unused case ID mapping function by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/369 + +Only include proposed gens built on or before model\_year by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/342 + +Include UTC offset in unique hash for renewables clusters by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/362 + +Directly use demand data by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/378 + +Update fuel label from "None" to "No\_fuel" in generator functions and… by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/379 + +380 tech matching fails when string contains special regex characters by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/381 + +Output format genx 0.4 by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/377 + +Fixes and features up to 0.7.0 by @gschivley in https://github.com/PowerGenome/PowerGenome/pull/384 + + +New Contributors + + + +@lbonaldo made their first contribution in https://github.com/PowerGenome/PowerGenome/pull/376 + + +Full Changelog: https://github.com/PowerGenome/PowerGenome/compare/v0.6.3...v0.7.0}, + urldate = {2025-06-30}, + publisher = {Zenodo}, + author = {Schivley, Greg and Welty, Ethan and Patankar, Neha and Jacobson, Anna and Xu, Qingyu and Manocha, Aneesha and Pecora, Braden and Bhandarkar, Riti and Jenkins, Jesse D. and Fripp, Matthias and Bonaldo, Luca}, + month = mar, + year = {2025}, +} + +@article{beatty_experimental_2015, + title = {Experimental and numerical comparisons of self-reacting point absorber wave energy converters in regular waves}, + volume = {104}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801815002115}, + doi = {10.1016/j.oceaneng.2015.05.027}, + abstract = {An experimental and numerical comparison of the performance of two self-reacting point absorber wave energy converter designs is undertaken for heave motions. The designs are either currently, or have recently been, under development for commercialization. The experiments consist of a series of 1:25 scale model tests. The physical model features a re-configurable reacting body shape, a feedback controlled power take-off, and a heave motion constraint apparatus. Detailed descriptions of the reconfigurable model design, the analysis/test methodologies, and power capture are given. An extension of Budal׳s theoretical upper bound on power capture for application to self-reacting point absorbers is proposed. A quantitative comparison is made of the two self-reacting point absorber designs in terms of displacement, power take-off force requirements, and power capture in typical (non-extreme) operating conditions with reference to theoretical upper bounds. The design implications of a reactive power take-off control scheme and relative motion constraints on the wave energy converters are investigated using an experimentally validated numerical dynamics model.}, + urldate = {2025-05-12}, + journal = {Ocean Engineering}, + author = {Beatty, Scott J. and Hall, Matthew and Buckham, Bradley J. and Wild, Peter and Bocking, Bryce}, + month = aug, + year = {2015}, + keywords = {Frequency domain, Model testing, Point absorbers, Power take-off, Self-reacting, Wave energy conversion}, + pages = {370--386}, +} + +@article{evans_maximum_1981, + title = {Maximum wave-power absorption under motion constraints}, + volume = {3}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/0141118781900638}, + doi = {10.1016/0141-1187(81)90063-8}, + abstract = {An expression is derived for the maximum mean power that can be absorbed by a system of oscillating bodies in waves under a global constraint on their motions. The particular case of a single half-immersed sphere is used to show how the ‘point absorber’ result predicting capture widths in excess of unity must be modified. The theory is also applied to the submerged cylinder wave-energy device and curves are presented which show how the maximum efficiency is affected by restricting the motion of the device.}, + number = {4}, + urldate = {2025-05-12}, + journal = {Applied Ocean Research}, + author = {Evans, D. V.}, + month = oct, + year = {1981}, + pages = {200--203}, +} + +@techreport{cotrell_analysis_2014, + title = {Analysis of {Transportation} and {Logistics} {Challenges} {Affecting} the {Deployment} of {Larger} {Wind} {Turbines}: {Summary} of {Results}}, + shorttitle = {Analysis of {Transportation} and {Logistics} {Challenges} {Affecting} the {Deployment} of {Larger} {Wind} {Turbines}}, + url = {https://www.osti.gov/biblio/1123207}, + doi = {10.2172/1123207}, + abstract = {There is relatively little literature that characterizes transportation and logistics challenges and the associated effects on U.S. wind markets. The objectives of this study were to identify the transportation and logistics challenges, assess the associated impacts, and provide recommendations for strategies and specific actions to address the challenges. The authors primarily relied on interviews with wind industry project developers, original equipment manufacturers, and transportation and logistics companies to obtain the information and industry perspectives needed for this study. They also reviewed published literature on trends and developments in increasing wind turbine size, logistics, and transportation issues.}, + language = {English}, + number = {NREL/TP-5000-61063}, + urldate = {2025-04-22}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Cotrell, J. and Stehly, T. and Johnson, J. and Roberts, J. O. and Parker, Z. and Scott, G. and Heimiller, D.}, + month = jan, + year = {2014}, +} + +@book{reed_addressing_2022, + title = {Addressing {Uncertainty} in {Multisector} {Dynamics} {Research}}, + url = {https://uc-ebook.org}, + doi = {10.5281/zenodo.6110623}, + publisher = {Zenodo}, + author = {Reed, Patrick M. and Hadjimichael, Antonia and Malek, Keyvan and Karimi, Tina and Vernon, Chris R. and Srikrishnan, Vivek and Gupta, Rohini S. and Gold, David F. and Lee, Ben and Keller, Klaus and Thurber, Travis B. and Rice, Jennie S.}, + year = {2022}, +} + +@misc{national_renewable_energy_laboratory_2024_2024, + title = {2024 {Annual} {Technology} {Baseline}}, + url = {https://atb.nrel.gov/electricity/2024/technologies}, + urldate = {2025-04-14}, + author = {{National Renewable Energy Laboratory}}, + year = {2024}, +} + +@book{box_statistics_1978, + title = {Statistics for experimenters: an introduction to design, data analysis, and model building}, + shorttitle = {Statistics for experimenters}, + publisher = {Wiley}, + author = {Box, George E. P. and Hunter, William Gordon and Hunter, J. Stuart}, + year = {1978}, +} + +@inproceedings{hendrikx_optimal_2017, + title = {Optimal control of a wave energy converter}, + url = {https://ieeexplore.ieee.org/document/8062556}, + doi = {10.1109/CCTA.2017.8062556}, + abstract = {The optimal control strategy for a wave energy converter (WEC) with constraints on the control torque is investigated. The goal is to optimize the total energy delivered to the electricity grid. Using Pontryagin's maximum principle, the solution is found to be singular-bang. Using higher order conditions, the optimal control on the singular arc is found as a function of the state and costate trajectories. Furthermore, it is shown that the transitions between bang and singular subarcs are discontinuous. Based on these findings the results of a numerical direct method are validated. Finally, the optimal control is used to benchmark an existing MPC strategy. It is found that for active control torque constraints the MPC strategy does not result in the discontinuous singular-bang transitions. However, the difference in harvested power is small.}, + urldate = {2025-03-11}, + booktitle = {2017 {IEEE} {Conference} on {Control} {Technology} and {Applications} ({CCTA})}, + author = {Hendrikx, R. W. M. and Leth, J. and Andersen, P. and Heemels, W. P. M. H.}, + month = aug, + year = {2017}, + keywords = {Force, Friction, Mathematical model, Open area test sites, Optimal control, Torque, Trajectory}, + pages = {779--786}, +} + +@article{coe_practical_2021, + title = {A practical approach to wave energy modeling and control}, + volume = {142}, + issn = {1364-0321}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032121000861}, + doi = {10.1016/j.rser.2021.110791}, + abstract = {The potential for control design to dramatically improve the economic viability of wave energy has generated a great deal of interest and excitement. However, for a number of reasons, the promised benefits from better control designs have yet to be widely realized by wave energy devices and wave energy remains a relatively nascent technology. This brief paper summarizes a simple, yet powerful approach to wave energy dynamics modeling, and subsequent control design based on impedance matching. Our approach leverages the same concepts that are exploited by a simple FM radio to achieve a feedback controller for wave energy devices that approaches optimal power absorption. If fully utilized, this approach can deliver immediate and consequential reductions to the cost of wave energy. Additionally, this approach provides the necessary framework for control co-design of a wave energy converter, in which an understanding of the control logic allows for synchronous design of the device control system and hardware.}, + urldate = {2025-02-23}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Coe, Ryan G. and Bacelli, Giorgio and Forbush, Dominic}, + month = may, + year = {2021}, + keywords = {Control, Impedance matching, Marine renewable energy, Power maximization, Wave energy converter (WEC)}, + pages = {110791}, +} + +@incollection{folley_spectral-domain_2016, + title = {Spectral-{Domain} {Models}}, + isbn = {978-0-12-803210-7}, + url = {https://www.sciencedirect.com/science/article/pii/B9780128032107000049}, + doi = {10.1016/B978-0-12-803210-7.00004-9}, + abstract = {Spectral-domain models are a relatively efficient method of producing an estimate of the expected response and power capture for wave energy converters (WECs) that are subject to nonlinear forces such as Coulomb (constant) or viscous (quadratic) damping. They are generally faster than time-domain models and more accurate than frequency-domain models. However, these models can only be used for spectral excitation and are not appropriate for use with monochromatic waves. The estimates of the expected responses and power captures are made using the assumption that the individual frequency components in the wave spectra are uncorrelated. Because the results of a spectral-domain model are fundamentally statistical they are not able to provide details of extreme values. The only spectral-domain models that have so far been implemented effectively linearize the nonlinear forces and iterate the linearized equations of motion to determine the expected response. This technique has been validated using time-domain models and wave-tank experiments. The linearization of the WEC dynamics effectively assumes that the response is Gaussian; however, spectral-domain modelling techniques used in other fields suggest that it should be possible to model non-Gaussian responses, which is expected to increase the range of nonlinearities for which there are solutions in the spectral domain.}, + number = {Chapter 4}, + urldate = {2025-02-16}, + booktitle = {Numerical {Modelling} of {Wave} {Energy} {Converters}}, + publisher = {Academic Press}, + author = {Folley, M.}, + editor = {Folley, Matt}, + month = jan, + year = {2016}, + keywords = {Gaussian, Nonlinear, Spectral}, + pages = {67--80}, +} + +@misc{ruehl_wec-simwec-sim_2025, + title = {{WEC}-{Sim}/{WEC}-{Sim}: v6.1.2}, + shorttitle = {{WEC}-{Sim}/{WEC}-{Sim}}, + url = {https://zenodo.org/records/14648966}, + doi = {10.5281/zenodo.14648966}, + abstract = {What's Changed + + + +Fixing documentation inconsistency for PTO-Sim blocks by @jleonqu in https://github.com/WEC-Sim/WEC-Sim/pull/1330 + +Update Google analytics implementation in docs by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/1342 + +Body block library update for bug fix \#1346 by @dforbush2 in https://github.com/WEC-Sim/WEC-Sim/pull/1347 + +Fixes the bug in the bodyClass for the QTFs and variable hydro by @MShabara in https://github.com/WEC-Sim/WEC-Sim/pull/1351 + +Update overview.rst - fixed a typo by @thepeteriley in https://github.com/WEC-Sim/WEC-Sim/pull/1362 + +Update forceInternalMechanics and powerInternalMechanics in PTO blocks by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/1369 + +Multi wave class bug fix v2 by @MShabara in https://github.com/WEC-Sim/WEC-Sim/pull/1373 + + +New Contributors + +@thepeteriley made their first contribution in \#1362 + +Statistics + + + +19 Issues closed since v6.1.1 + +34 PRs merged since v6.1.1 + +7 Discussions answered since v6.1.1 + + +New Contributors + + + +@thepeteriley made their first contribution in https://github.com/WEC-Sim/WEC-Sim/pull/1362 + + +Full Changelog: https://github.com/WEC-Sim/WEC-Sim/compare/v6.1.1...v6.1.2}, + urldate = {2025-02-16}, + publisher = {Zenodo}, + author = {Ruehl, Kelley and Keester, Adam and dforbush2 and Ströfer, Carlos A. Michelén and Topper, Mathew and jtgrasb and Lawson, Michael and Husain, Salman and Shabara, Mohamed and Leon, Jorge and Ling, Bradley A. and Ogden, David and j-vanrij and jhbates and Nguyen, Lily and Jeffalo1 and sedwardsand and Davies, Ryan and ratanakso and emiliofa and crobarcro and agmoore4 and Alves, Erick F. and zmorrell-sand and yuyihsiang and Hall, Matt and gparisella and ashleynchong and SiHeTh and Riley, Pete}, + month = jan, + year = {2025}, +} + +@article{spanos_efficient_2016, + title = {Efficient {Dynamic} {Analysis} of a {Nonlinear} {Wave} {Energy} {Harvester} {Model}}, + volume = {138}, + issn = {0892-7219}, + url = {https://doi.org/10.1115/1.4032898}, + doi = {10.1115/1.4032898}, + abstract = {In recent years, wave energy harvesting systems have received considerable attention as an alternative energy source. Within this class of systems, single-point harvesters are popular at least for preliminary studies and proof-of-concept analyses in particular locations. Unfortunately, the large displacements of a single-point wave energy harvester are described by a set of nonlinear equations. Further, the excitation is often characterized statistically and in terms of a relevant power spectral density (PSD) function. In the context of this complex problem, the development of efficient techniques for the calculation of reliable harvester response statistics is quite desirable, since traditional Monte Carlo techniques involve nontrivial computational cost. The paper proposes a statistical linearization technique for conducting expeditiously random vibration analyses of single-point harvesters. The technique is developed by relying on the determination of a surrogate linear system identified by minimizing the mean square error between the linear system and the nonlinear one. It is shown that the technique can be implemented via an iterative procedure, which allows calculating statistics, PSDs, and probability density functions (PDFs) of the response components. The reliability of the statistical linearization solution is assessed vis-à-vis data from relevant Monte Carlo simulations. This novel approach can be a basis for constructing computationally expeditious assessments of various design alternatives.}, + number = {041901}, + urldate = {2025-02-16}, + journal = {Journal of Offshore Mechanics and Arctic Engineering}, + author = {Spanos, Pol D. and Arena, Felice and Richichi, Alessandro and Malara, Giovanni}, + month = apr, + year = {2016}, +} + +@phdthesis{kluger_synergistic_2017, + type = {Thesis}, + title = {Synergistic design of a combined floating wind turbine - wave energy converter}, + copyright = {MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission.}, + url = {https://dspace.mit.edu/handle/1721.1/111692}, + abstract = {Offshore energy machines have great potential: higher capacity factors, more available space, and lower visual impacts than onshore machines. This thesis investigates how combining a wave energy converter (WEC) with a floating wind turbine (FWT) may produce offshore renewable energy cost savings. Attaching the WEC to the FWT greatly reduces the WEC's steel frame, mooring lines, electric transmission lines, and siting/permitting costs, which may comprise 56\% of a standalone WEC's cost. A 5 MW FWT currently requires up to 1700 tons of platform steel and 5700 tons of ballast concrete for stabilization in the ocean. This required material may be reduced if the WEC stabilizes the FWT. This thesis addresses several challenges to designing a combined FWT-WEC. First, parameter sweeps for optimizing ocean machine performance are limited by high dimensionalities and nonlinearities, including power takeoff control and wave viscous forcing, which normally require computationally expensive time-domain simulations. This thesis develops a statistical linearization approach to rapidly compute machine dynamics statistics while accounting for nonlinearities in the frequency domain. It is verified that the statistical linearization method may capture significant dynamics effects that are neglected by the traditional Taylor series linearization approach, while computing the results approximately 100 times faster than time domain simulations. Using Morison's equation for wave viscosity and quasi-steady blade-element/momentum theory for rotor aerodynamics, we find that viscous effects and nonlinear aerodynamics may increase the FWT motion and tower stress by up to 15\% in some wind-sea states compared the the Taylor series linearized system. Second, the WEC must stabilize rather than destabilize the FWT. This thesis investigates the dynamics statistics of dierent FWT-WEC configurations using a long wavelength, structurally coupled model. It is shown that simultaneous targeted energy transfer from both the FWT and waves to the WEC when the WEC and FWT are linked by a tuned spring is unlikely. That being said, this thesis considers heave-mode oscillating water column WEC's that are linked to the FWT platform by 4-bar linkages, so that the FWT and WEC's are uncoupled for small heave motions and rigidly coupled in all other degrees of freedom. It is shown that this configuration allows the WEC to move with a large amplitude in its energy harvesting degree of freedom, and therefore harvest a significant amount of power without significantly increasing the FWT motion in the same direction. In the rigidly-connected modes, the WEC inertial resistance to motion must be greater than the wave forcing, as these properties are transmitted to the FWT. Third, the WEC requires power robustness in dierent sea states. Typical WEC's require control schemes to maintain good power performance when the ocean wave dominant frequency differs from the WEC resonant frequency. This thesis introduces a nonlinearity into the WEC design that passively increases power adaptability in dierent sea states. While the optimized nonlinear WEC requires 57\% more steel than the optimized linear WEC, the nonlinear WEC produces 72\% more power on average, resulting in a 3\% lower levelized cost of energy. Further optimization of the nonlinear WEC may find improved performance. This thesis determines that attaching a single linear hinged floating spar oscillating water column to the FWT reduces the levelized cost of energy from \$0.31/kWh for the standalone system to \$0.27/kWh (13\%) without changing stress on the FWT tower. Attaching a single nonlinear hinged floating spar oscillating water column to the FWT reduces the levelized cost of energy to \$0.26/kWh (16\%) and reduces the lifetime equivalent fatigue stress on the FWT tower from 32.4 MPa to 31 MPa (5\%). A 6-unit array of the nonlinear WEC's encircling the FWT platform may generate an average of 400 kW while reducing the FWT tower stress by over 50\%. In wave tank experiments, the response statistics of four dierent combined FWT-WEC configurations are measured, verifying the FWT-WEC dynamics model.}, + language = {eng}, + urldate = {2025-02-16}, + school = {Massachusetts Institute of Technology}, + author = {Kluger, Jocelyn Maxine}, + year = {2017}, + note = {Accepted: 2017-10-04T14:47:10Z}, +} + +@article{nie_optimal_2016, + series = {Selected {Papers} from the {European} {Wave} and {Tidal} {Energy} {Conference} 2015, {Nante}, {France}}, + title = {Optimal causal control of wave energy converters in stochastic waves – {Accommodating} nonlinear dynamic and loss models}, + volume = {15}, + issn = {2214-1669}, + url = {https://www.sciencedirect.com/science/article/pii/S2214166916300169}, + doi = {10.1016/j.ijome.2016.04.004}, + abstract = {Recent research has shown that when constrained to causality, the optimal feedback controller for an ocean wave energy converter (WEC) subjected to stochastic waves can be solved as a non-standard Linear Quadratic-Gaussian (LQG) optimal control problem. In this paper, we present a relaxation to the modeling assumptions that must be made to apply this theory. Specifically, we propose a technique that uses the principle of Gaussian Closure to accommodate nonlinear WEC dynamics in the synthesis of the optimal feedback law. The technique is approximate, in the sense that it arrives at a computationally efficient control synthesis technique through a Gaussian approximation of the stationary stochastic response of the system. This approach allows for a wide range of nonlinear dynamical models to be considered, and also accommodates many complex loss mechanisms in the power transmission system. The technique is demonstrated through simulation examples pertaining to a flap-type WEC with a hydraulic power train.}, + urldate = {2025-02-16}, + journal = {International Journal of Marine Energy}, + author = {Nie, Rudy and Scruggs, Jeff and Chertok, Allan and Clabby, Darragh and Previsic, Mirko and Karthikeyan, Anantha}, + month = sep, + year = {2016}, + keywords = {Causality, Control, Loss models, Nonlinearities, Stochastic waves}, + pages = {41--55}, +} + +@article{neshat_enhancing_2024, + title = {Enhancing the performance of hybrid wave-wind energy systems through a fast and adaptive chaotic multi-objective swarm optimisation method}, + volume = {362}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261924003386}, + doi = {10.1016/j.apenergy.2024.122955}, + abstract = {Hybrid offshore renewable energy platforms have been proposed to optimise power production and reduce the levelised cost of energy by integrating or co-locating several renewable technologies. One example is a hybrid wave-wind energy system that combines offshore wind turbines with wave energy converters (WECs) on a single floating foundation. The design of such systems involves multiple parameters and performance measures, making it a complex, multi-modal, and expensive optimisation problem. This paper proposes a novel, robust and effective multi-objective swarm optimisation method (DMOGWA) to provide a design solution that best compromises between maximising WEC power output and minimising the effect on wind turbine nacelle acceleration. The proposed method uses a chaotic adaptive search strategy with a dynamic archive of non-dominated solutions based on diversity to speed up the convergence rate and enhance the Pareto front quality. Furthermore, a modified exploitation technique (Discretisation Strategy) is proposed to handle the large damping and spring coefficient of the Power Take-off (PTO) search space. To evaluate the efficiency of the proposed method, we compare the DMOGWA with four well-known multi-objective swarm intelligence methods (MOPSO, MALO, MODA, and MOGWA) and four popular evolutionary multi-objective algorithms (NSGA-II, MOEA/D, SPEA-II, and PESA-II) based on four potential deployment sites on the South Coast of Australia. The optimisation results demonstrate the dominance of the DMOGWA compared with the other eight methods in terms of convergence speed and quality of solutions proposed. Furthermore, adjusting the hybrid wave-wind model’s parameters (WEC design and PTO parameters) using the proposed method (DMOGWA) leads to a considerably improved power output (average proximate boost of 138.5\%) and a notable decline in wind turbine nacelle acceleration (41\%) throughout the entire operational spectrum compared with the other methods. This improvement could lead to millions of dollars in additional income per year over the lifespan of hybrid offshore renewable energy platforms.}, + urldate = {2025-02-16}, + journal = {Applied Energy}, + author = {Neshat, Mehdi and Sergiienko, Nataliia Y. and Nezhad, Meysam Majidi and da Silva, Leandro S. P. and Amini, Erfan and Marsooli, Reza and Astiaso Garcia, Davide and Mirjalili, Seyedali}, + month = may, + year = {2024}, + keywords = {Genetic algorithms, Hybrid wave-wind energy systems, Multi-objective optimisation algorithm, Offshore wind turbine, Sustainable energy, Swarm-intelligence algorithms, Wave energy converters}, + pages = {122955}, +} + +@article{da_silva_stochastic_2023, + title = {Stochastic analysis of the nonlinear dynamics of oscillating water columns: {A} frequency domain approach}, + volume = {139}, + issn = {0141-1187}, + shorttitle = {Stochastic analysis of the nonlinear dynamics of oscillating water columns}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118723002523}, + doi = {10.1016/j.apor.2023.103711}, + abstract = {This paper investigates the first and second-order stochastic responses of oscillating water columns (OWCs) under random waves. The OWCs’ nonlinear dynamics are computed in the frequency domain, where sources of nonlinearities are replaced by equivalent polynomial terms up to second order by minimising their difference in a mean-square sense. This procedure is known as the statistical quadratisation (SQ) technique. In such an approach, the linear and quadratic coefficients are obtained using an iterative procedure and non-Gaussian distributions based on Gram–Charlier expansions, and the dynamics are solved using the Volterra theory. The results are compared against a statistical linearisation model (SL), and nonlinear time-domain simulations (TD) to illustrate the capabilities of the method. The result demonstrated an excellent agreement for the first and second-order motions of the water column obtained using statistical quadratisation compared to nonlinear time-domain simulations in terms of spectral response and probability distribution. Along with the good accuracy, the statistical quadratisation has the advantage of being approximately two orders of magnitude faster than nonlinear time-domain simulations. For the proposed systems, the nonlinearity from the variable mass system (inertial type) is shown to be the most important source of second-order effects driving the oscillating water column dynamics based on the environmental conditions and drafts investigated in this work.}, + urldate = {2025-02-16}, + journal = {Applied Ocean Research}, + author = {da Silva, L. S. P. and Pesce, C. P. and de Oliveira, M. and Sergiienko, N. Y. and Cazzolato, B. and Ding, B.}, + month = oct, + year = {2023}, + keywords = {Moon pools, Nonlinear Dynamics, Oscillating Water Column, Statistical Quadratisation, Stochastic Analysis}, + pages = {103711}, +} + +@article{da_silva_statistical_2020, + title = {Statistical linearization of the {Morison}’s equation applied to wave energy converters}, + volume = {6}, + copyright = {2020 Springer Nature Switzerland AG}, + issn = {2198-6452}, + url = {https://link.springer.com/article/10.1007/s40722-020-00165-9}, + doi = {10.1007/s40722-020-00165-9}, + abstract = {The viscous drag acting on wave energy converters may have a significant effect on the dynamics during high-energetic sea states and large motions experienced due to resonance. The viscous drag is a nonlinear phenomenon of floating systems usually modelled based on the Morison’s equation using the relative velocity between the structure and the wave particle. To include such a nonlinearity into the system dynamics, nonlinear time domain simulations are generally employed, which are computationally expensive compared to frequency domain simulations. To overcome this problem, this work presents the derivation of the viscous drag force/torque under the statistical linearization technique using the frequency domain model. The technique offers a reliable tool for the estimation of the system dynamics while maintaining a low computational cost when compared to time domain simulations. For the proposed nonlinearity, the resulting equivalent linear term can be decomposed into two components: an excitation term and a damping term. To illustrate the applicability of the derivation, two conceptually different wave energy converters are investigated: a heaving point absorber, and an oscillating wave surge converter. The results obtained using statistical linearization are compared to their respective nonlinear time domain simulations to verify the reliability of the technique. Also, a comparison between the statistical linearization results using the relative motion and using only the structure motion is presented to illustrate the importance of including the relative velocity for wave energy applications. Excellent agreements have been obtained between statistical linearization model using the relative motion and its respective nonlinear time domain model for both devices in terms of spectral content, probability density of the velocity components, and energy absorbed by the device.}, + language = {en}, + number = {2}, + urldate = {2025-02-16}, + journal = {Journal of Ocean Engineering and Marine Energy}, + publisher = {Springer International Publishing}, + author = {da Silva, Leandro S. P. and Cazzolato, Benjamin S. and Sergiienko, Nataliia Y. and Ding, Boyin and Morishita, Helio M. and Pesce, Celso P.}, + month = may, + year = {2020}, + note = {Company: Springer +Distributor: Springer +Institution: Springer +Label: Springer +Number: 2}, + pages = {157--169}, +} + +@article{carmo_slender-body_2025, + title = {Slender-body approach for computing second-order wave loads in the frequency domain}, + volume = {322}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801825002732}, + doi = {10.1016/j.oceaneng.2025.120558}, + abstract = {This work presents a slender-body approach to evaluate the second-order wave loads acting on a floating structure in the frequency domain. The approach is in the same spirit as the common use of Morison’s equation to approximate the wave loads without solving the radiation/diffraction problem. To do so, we employ Rainey’s equation, which can be seen as an extension of the inertial part of Morison’s equation to include nonlinear effects. We introduce modifications to Rainey’s formulation in order to evaluate wave kinematics at the mean body position instead of the original approach of considering instantaneous displacements. We also propose a simple approximation to partially account for wave scattering effects on the second-order loads based on the analytical solution of a surface-piercing bottom-mounted vertical circular cylinder. Though limited to structures composed of cylinders, this slender-body approach is orders of magnitude faster than computing second-order wave coefficients with a radiation/diffraction code. We implemented this approach for difference-frequency (slow drift) loads in an open-source frequency-domain floating wind turbine model. We present comparisons against results obtained with radiation/diffraction theory for three reference floating wind turbine designs: the OC3-Hywind spar, the OC4-DeepCwind semisubmersible, and the VolturnUS-S semisubmersible. In general, the results show that the proposed slender-body approach with the correction to approximate wave scattering effects provides useful estimations of the difference-frequency wave loads and the resulting motions of the floater.}, + urldate = {2025-02-15}, + journal = {Ocean Engineering}, + author = {Carmo, Lucas and Hall, Matthew}, + month = apr, + year = {2025}, + keywords = {Floating wind turbines, QTFs, RAFT, Second-order wave loads, Slender-body approximation, Slow-drift}, + pages = {120558}, +} + +@article{desideri_multiple-gradient_2012, + title = {Multiple-gradient descent algorithm ({MGDA}) for multiobjective optimization}, + volume = {350}, + issn = {1631-073X}, + url = {https://www.sciencedirect.com/science/article/pii/S1631073X12000738}, + doi = {10.1016/j.crma.2012.03.014}, + abstract = {One considers the context of the concurrent optimization of several criteria Ji(Y) (i=1,…,n), supposed to be smooth functions of the design vector Y∈RN (n⩽N). An original constructive solution is given to the problem of identifying a descent direction common to all criteria when the current design-point Y0 is not Pareto-optimal. This leads us to generalize the classical steepest-descent method to the multiobjective context by utilizing this direction for the descent. The algorithm is then proved to converge to a Pareto-stationary design-point. +Résumé +On se place dans le contexte de lʼoptimisation concourante de plusieurs critères Ji(Y) (i=1,…,n), fonctions régulières du vecteur de conception Y∈RN (n⩽N). On donne une solution constructive originale au problème de lʼidentification dʼune direction de descente commune à tous les critères en un point Y0 non optimal au sens de Pareto. On est conduit à généraliser la méthode classique du gradient au contexte multiobjectif en utilisant cette direction pour la descente. On prouve que lʼalgorithme converge alors vers un point de conception Pareto-stationnaire.}, + number = {5}, + urldate = {2025-02-03}, + journal = {Comptes Rendus Mathematique}, + author = {Désidéri, Jean-Antoine}, + month = mar, + year = {2012}, + pages = {313--318}, +} + +@article{pennock_temporal_2022, + title = {Temporal complementarity of marine renewables with wind and solar generation: {Implications} for {GB} system benefits}, + volume = {319}, + issn = {0306-2619}, + shorttitle = {Temporal complementarity of marine renewables with wind and solar generation}, + url = {https://www.sciencedirect.com/science/article/pii/S030626192200633X}, + doi = {10.1016/j.apenergy.2022.119276}, + abstract = {Wave and tidal energy have the potential to provide benefits to power systems with high proportions of stochastic renewable generation. This is particularly applicable in combination with wind and solar photovoltaics, as the offsetting of these renewable resources results in more reliable renewable generation. This study utilises ten metrics to quantify the temporal complementarity and supply-demand balancing requirements of the energy mix in Great Britain, to investigate the potential magnitude of these system benefits. Wave and tidal generation profiles are created using historical resource data and hydrodynamic models. The results show that the inclusion of wave and tidal generation creates a renewable energy mix which is more available under multiple conditions: throughout a year of operation; at times of peak demand; for multiple consecutive hourly time periods; and at times when wind and solar generation are not available. Three regional case studies also show that the inclusion of marine energy allows for improved regional supply-demand matching, reducing instances of energy shortage and excess and potentially relieving transmission congestion at particularly constrained locations within GB. Finally, the implications of these findings are discussed in terms of GB wholesale market operation, system balancing and system security.}, + urldate = {2025-01-31}, + journal = {Applied Energy}, + author = {Pennock, Shona and Coles, Daniel and Angeloudis, Athanasios and Bhattacharya, Saptarshi and Jeffrey, Henry}, + month = aug, + year = {2022}, + keywords = {Marine energy, System integration, Temporal characterisation, Tidal stream energy, Wave energy}, + pages = {119276}, +} + +@article{bhattacharya_timing_2021, + title = {Timing value of marine renewable energy resources for potential grid applications}, + volume = {299}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S030626192100698X}, + doi = {10.1016/j.apenergy.2021.117281}, + abstract = {In this paper, the applicability of marine renewable energy (MRE) for potential grid applications is presented. We show that many of the unique value streams from marine-based electricity generation resources stem from their inherent temporal characteristics, especially when compared to wind and solar. Specifically, in this work, we evaluate the timing value for three types of MRE resources: (a) tidal, (b) wave, and (c) ocean currents. First, through a suite of novel metrics, such as resource availability, persistence, and versatility, we evaluate the temporal value characteristics of these resources. Second, through a more grid-oriented numerical study, we comment on the potential ramifications of those temporal characteristics in context of energy balancing and effective load carrying capability for one marine-based resource i.e., wave. Finally, we further our understanding of the relative advantages that may be leveraged by operating wave-based generation in tandem with more established renewable resources, such as wind and solar. Our results indicate that compared to wind and solar, MRE resources are consistently more available and persistent on an hourly level throughout an entire year of operation. In addition, wave resources are also seen to reduce the balancing requirements within the power system. Our work focuses on sites specific to the United States (US) and a parallel study for a location in Great Britain (GB). Results are found to be consistent for sites in both the US and GB, implying that the grid benefits discussed in this work could apply to a number of locations globally.}, + urldate = {2025-01-31}, + journal = {Applied Energy}, + author = {Bhattacharya, Saptarshi and Pennock, Shona and Robertson, Bryson and Hanif, Sarmad and Alam, Md Jan E. and Bhatnagar, Dhruv and Preziuso, Danielle and O’Neil, Rebecca}, + month = oct, + year = {2021}, + keywords = {Effective load carrying capacity, Energy balancing requirements, Marine renewable energy, Timing value, Wave energy}, + pages = {117281}, +} + +@article{gaebele_tpl_2025, + title = {From {TPL} assessment to design optimization: {Wave} energy converter control co-design applied to the {RM3}}, + volume = {241}, + issn = {0960-1481}, + shorttitle = {From {TPL} assessment to design optimization}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124024066}, + doi = {10.1016/j.renene.2024.122338}, + abstract = {The Reference Model (RM) project developed six marine energy converter concepts using a sequential design methodology, which, while widely adopted in the industry, often overlooks interactions between system components, resulting in suboptimal designs. One such example is the Reference Model 3 (RM3), a two-body point absorber wave energy converter (WEC). An assessment using the Technology Performance Level (TPL) revealed that RM3’s low power-to-cost ratio, partly due to expensive steel construction, limits its techno-economic performance. This study aims to redesign RM3 by reducing its scale and employing control co-design to integrate WEC and Power Take-Off (PTO) dynamics, constraints, and cost considerations within an optimization framework. We demonstrate the limitations of RM3’s current PTO design and explore the benefits of scaling down to enhance techno-economic viability by lowering material costs. Using WecOptTool, we conduct a parameter sweep over gear ratios and spring stiffnesses for various Commercial Off-The-Shelf generators in irregular wave conditions. Our findings emphasize the importance of aligning PTO components with WEC dynamics, showing that control co-design and strategic scaling can improve RM3’s power-to-cost ratio. This study presents a transferable example of applied control co-design for other WECs, supporting early-stage developers in their design decisions.}, + urldate = {2025-01-31}, + journal = {Renewable Energy}, + author = {Gaebele, Daniel T. and Anderson, Megan L. and Roach, Aeron L. and Forbush, Dominic D. and Roberts, Jesse D. and Weber, Jochem}, + month = mar, + year = {2025}, + keywords = {Off the shelf components, RM3, Reference model project, TPL to redsign, Wave energy converter control co-design}, + pages = {122338}, +} + +@article{lambe_extensions_2012, + title = {Extensions to the design structure matrix for the description of multidisciplinary design, analysis, and optimization processes}, + volume = {46}, + issn = {1615-1488}, + url = {https://doi.org/10.1007/s00158-012-0763-y}, + doi = {10.1007/s00158-012-0763-y}, + abstract = {While numerous architectures exist for solving multidisciplinary design optimization (MDO) problems, there is currently no standard way of describing these architectures. In particular, a standard visual representation of the solution process would be particularly useful as a communication medium among practitioners and those new to the field. This paper presents the extended design structure matrix (XDSM), a new diagram for visualizing MDO processes. The diagram is based on extending the standard design structure matrix (DSM) to simultaneously show data dependency and process flow on a single diagram. Modifications include adding special components to define iterative processes, defining different line styles to show data and process connections independently, and adding a numbering scheme to define the order in which the components are executed. This paper describes the rules for constructing XDSMs along with many examples, including diagrams of several MDO architectures. Finally, this paper discusses potential applications of the XDSM in other areas of MDO and the future development of the diagrams.}, + language = {en}, + number = {2}, + urldate = {2025-01-23}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Lambe, Andrew B. and Martins, Joaquim R. R. A.}, + month = aug, + year = {2012}, + keywords = {Design architectures, Design structure matrix, Distributed optimization, Multidisciplinary analysis, Multidisciplinary design optimization, Visualization}, + pages = {273--284}, +} + +@techreport{previsic_reference_2011, + type = {Unpublished draft report obtained via personal communication with {Vince} {Neary} of {Sandia} {National} {Lab}}, + title = {Reference {Model} 3 - {Structural} {Design} {Supplement}}, + institution = {ReVision Consulting and US Department of Energy}, + author = {Previsic, Mirko}, + month = sep, + year = {2011}, + pages = {20}, +} + +@misc{gambarini_gradient_2024, + title = {A gradient flow approach for combined layout-control design of wave energy parks}, + url = {http://arxiv.org/abs/2409.10200}, + doi = {10.48550/arXiv.2409.10200}, + abstract = {Wave energy converters (WECs) represent an innovative technology for power generation from renewable sources (marine energy). Although there has been a great deal of research into such devices in recent decades, the power output of a single device has remained low. Therefore, installation in parks is required for economic reasons. The optimal design problem for parks of WECs is challenging since it requires the simultaneous optimization of positions and control parameters. While the literature on this problem usually considers metaheuristic algorithms, we present a novel numerical framework based on a gradient-flow formulation. This framework is capable of solving the optimal design problem for WEC parks. In particular, we use a low-order adaptive Runge-Kutta scheme to integrate the gradient-flow equation and introduce an inexact solution procedure. Here, the tolerances of the linear solver used for projection on the constraint nullspace and of the time-advancing scheme are automatically adapted to avoid over-solving so that the method requires minimal tuning. We then provide the specific details of its application to the considered WEC problem: the goal is to maximize the average power produced by a park, subject to hydrodynamic and dynamic governing equations and to the constraints of available sea area, minimum distance between devices, and limited oscillation amplitude around the undisturbed free surface elevation. A suitable choice of the discrete models allows us to compute analytically the Jacobian of the state problem's residual. Numerical tests with realistic parameters show that the proposed algorithm is efficient, and results of physical interest are obtained.}, + urldate = {2025-01-17}, + publisher = {arXiv}, + author = {Gambarini, Marco and Ciaramella, Gabriele and Miglio, Edie}, + month = sep, + year = {2024}, + note = {arXiv:2409.10200 [math]}, + keywords = {Mathematics - Optimization and Control}, +} + +@book{timoshenko_theory_1959, + series = {Engineering mechanics series}, + title = {Theory of {Plates} and {Shells}}, + isbn = {978-0-07-085820-6}, + url = {https://books.google.com/books?id=rTQFAAAAMAAJ}, + publisher = {McGraw-Hill}, + author = {Timoshenko, S. and Woinowsky-Krieger, S.}, + year = {1959}, + lccn = {58059675}, +} + +@article{sobieszczanski-sobieski_sensitivity_1982, + title = {Sensitivity of {Optimum} {Solutions} of {Problem} {Parameters}}, + volume = {20}, + issn = {0001-1452}, + url = {https://arc.aiaa.org/doi/10.2514/3.51191}, + doi = {10.2514/3.51191}, + number = {9}, + urldate = {2025-01-14}, + journal = {AIAA Journal}, + publisher = {American Institute of Aeronautics and Astronautics}, + author = {Sobieszczanski-Sobieski, Jaroslaw and Barthelemy, Jean-Francois and Riley, Kathleen M.}, + month = sep, + year = {1982}, + keywords = {Allowable Stress, Aspect Ratio, Bending Moment, Finite Difference Approximation, Finite Element Analysis, Lagrange Multipliers, Linear Programming, Sensitivity Analysis, Structural Optimization, Trusses}, + pages = {1291--1299}, +} + +@article{custodio_direct_2011, + title = {Direct {Multisearch} for {Multiobjective} {Optimization}}, + volume = {21}, + issn = {1052-6234}, + url = {https://epubs.siam.org/doi/10.1137/10079731X}, + doi = {10.1137/10079731X}, + abstract = {This work deals with bound constrained multiobjective optimization (MOP) of nonsmooth functions for problems where the structure of the objective functions either cannot be exploited, or are absent. Typical situations arise when the functions are computed as the result of a computer simulation. We first present definitions and optimality conditions as well as two families of single-objective formulations of MOP. Next, we propose a new algorithm called for the biobjective optimization (BOP) problem (i.e., MOP with two objective functions). The property that Pareto points may be ordered in BOP and not in MOP is exploited by our algorithm. generates an approximation of the Pareto front by solving a series of single-objective formulations of BOP. These single-objective problems are solved using the recent (mesh adaptive direct search) algorithm for nonsmooth optimization. The Pareto front approximation is shown to satisfy some first order necessary optimality conditions based on the Clarke calculus. Finally, is tested on problems from the literature designed to illustrate specific difficulties encountered in biobjective optimization, such as a nonconvex or disjoint Pareto front, local Pareto fronts, or a nonuniform Pareto front.}, + number = {3}, + urldate = {2025-01-13}, + journal = {SIAM Journal on Optimization}, + publisher = {Society for Industrial and Applied Mathematics}, + author = {Custódio, A. L. and Madeira, J. F. A. and Vaz, A. I. F. and Vicente, L. N.}, + month = jul, + year = {2011}, + pages = {1109--1140}, +} + +@techreport{previsic_100_2011, + type = {Unpublished draft report obtained via personal communication with {Vince} {Neary} of {Sandia} {National} {Lab}}, + title = {100 {kW} {Wave} {Power} {Hydraulic} {System}}, + institution = {ReVision Consulting and US Department of Energy}, + author = {Previsic, Mirko}, + month = sep, + year = {2011}, + pages = {22}, +} + +@techreport{dallman_characterization_2015, + title = {Characterization of {U}.{S}. {Wave} {Energy} {Converter} ({WEC}) test sites: a catalogue of met-ocean data ({Second} edition)}, + shorttitle = {Characterization of {U}.{S}. {Wave} {Energy} {Converter} ({WEC}) test sites}, + url = {https://www.osti.gov/biblio/1963664}, + doi = {10.2172/1963664}, + abstract = {This report presents met-ocean data and wave energy characteristics at eight U.S. wave energy converter (WEC) test and potential deployment sites. Its purpose is to enable the comparison of wave resource characteristics among sites as well as the selection of test sites that are most suitable for a developer’s device and that best meet their testing needs and objectives. It also provides essential inputs for the design of WEC test devices and planning WEC tests, including the planning of deployment, and operations and maintenance. For each site, this report catalogues wave statistics recommended in the International Electrotechnical Commission Technical Specification (IEC 62600-101 TS) on Wave Energy Characterization, as well as the frequency of occurrence of weather windows and extreme sea states, and statistics on wind and ocean currents. It also provides useful information on test site infrastructure and services.}, + language = {English}, + number = {SAND2015-7963}, + urldate = {2025-01-13}, + institution = {Sandia National Lab. (SNL-CA), Livermore, CA (United States); Sandia National Lab. (SNL-NM), Albuquerque, NM (United States)}, + author = {Dallman, Ann and Neary, Vincent}, + month = sep, + year = {2015}, +} + +@misc{janzou_sam_2022, + address = {National Renewable Energy Lab GitHub}, + title = {{SAM} {Wave} {Resource} {Files}}, + url = {https://github.com/NREL/SAM/tree/patch/deploy/wave_resource}, + urldate = {2025-01-12}, + publisher = {SAM (System Advisor Model)}, + author = {Janzou, Steve and Gilman, Paul and Prilliman, Matt}, + month = oct, + year = {2022}, +} + +@techreport{berg_extreme_2011, + title = {Extreme {Ocean} {Wave} {Conditions} for {Northern} {California} {Wave} {Energy} {Conversion} {Device}.}, + url = {https://www.osti.gov/biblio/1113856}, + doi = {10.2172/1113856}, + abstract = {Abstract not provided.}, + language = {English}, + number = {SAND2011-9304}, + urldate = {2025-01-13}, + institution = {Sandia National Lab. (SNL-CA), Livermore, CA (United States); Sandia National Lab. (SNL-NM), Albuquerque, NM (United States)}, + author = {Berg, Jonathan Charles}, + month = dec, + year = {2011}, +} + +@article{babarit_stakeholder_2017, + title = {Stakeholder requirements for commercially successful wave energy converter farms}, + volume = {113}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148117305451}, + doi = {10.1016/j.renene.2017.06.040}, + abstract = {In this study, systems engineering techniques are applied to wave energy to identify and specify stakeholders’ requirements for a commercially successful wave energy farm. The focus is on the continental scale utility market. Lifecycle stages and stakeholders are identified. Stakeholders’ needs across the whole lifecycle of the wave energy farm are analyzed. A list of 33 stakeholder requirements are identified and specified. This list of requirements should serve as components of a technology performance level metric that could be used by investors and funding agencies to make informed decisions when allocating resources. It is hoped that the technology performance level metric will accelerate wave energy conversion technology convergence.}, + urldate = {2025-01-12}, + journal = {Renewable Energy}, + author = {Babarit, Aurélien and Bull, Diana and Dykes, Katherine and Malins, Robert and Nielsen, Kim and Costello, Ronan and Roberts, Jesse and Bittencourt Ferreira, Claudio and Kennedy, Ben and Weber, Jochem}, + month = dec, + year = {2017}, + keywords = {Requirements, Systems engineering, Technology convergence, Technology performance level, Wave energy converter, Wave energy farm}, + pages = {742--755}, +} + +@techreport{livecchi_powering_2019, + title = {Powering the {Blue} {Economy}: {Exploring} {Opportunities} for {Marine} {Renewable} {Energy} in {Maritime} {Markets}}, + url = {https://www.energy.gov/eere/water/downloads/powering-blue-economy-report}, + institution = {US Department of Energy (DOE)}, + author = {LiVecchi, A and Copping, A and Jenne, D and Gorton, A and Preus, R and Gill, G and Robichaud, R and Green, R and Geerlofs, S and Gore, S and Hume, D and McShane, W and Schmaus, C and Spence, H}, + month = apr, + year = {2019}, + keywords = {Human Dimensions, Marine Energy, Social \& Economic Data}, + pages = {207}, +} + +@misc{neary_reference_2014, + type = {Spreadsheet}, + title = {Reference {Model} 3 {Cost} {Breakdown} ({RM3}: {Wave} {Point} {Absorber})}, + url = {https://mhkdr.openei.org/submissions/370}, + doi = {10.15473/1819894}, + publisher = {Marine and Hydrokinetic Data Repository}, + author = {Neary, Vincent and Previsic, Mirko and Jenne, Scott and Hallett, Kathleen}, + month = sep, + year = {2014}, +} + +@misc{noauthor_marine_nodate, + title = {Marine and {Hydrokinetic} {Data} {Repository} ({MHKDR})}, + url = {https://mhkdr.openei.org/}, + abstract = {Contains the Reference Model 3 (RM3) spreadsheets with the cost breakdown structure (CBS) for the levelized cost of energy (LCOE) calculations for a single RM3 device and multiple unit arrays. These spreadsheets are contained within an XLSX file and a spreadsheet editor such as Microsoft Excel is needed to open the file. This data was generated upon completion of the project on September 30, 2014. + +The Reference Model Project (RMP), sponsored by the U.S. Department of Energy (DOE), was a partnered effort to develop open-source MHK point designs as reference models (RMs) to benchmark MHK technology performance and costs, and an open-source methodology for design and analysis of MHK technologies, including models for estimating their capital costs, operational costs, and levelized costs of energy. The point designs also served as open-source test articles for university researchers and commercial technology developers. The RMP project team, led by Sandia National Laboratories (SNL), included a partnership between DOE, three national laboratories, including the National Renewable Energy Laboratory (NREL), Pacific Northwest National Laboratory (PNNL), and Oak Ridge National Laboratory (ORNL), the Applied Research Laboratory of Penn State University, and Re Vision Consulting. + +Reference Model 3 (RM3) is a wave point absorber, also referred to as a wave power buoy, that was designed for a reference site located off the shore of Eureka in Humboldt County, California. The design of the device consists of a surface float that translates (oscillates) with wave motion relative to a vertical column spar buoy, which connects to a subsurface reaction plate. This two-body point absorber converts wave energy into electrical power predominately from the devices heave oscillation induced by incident waves; the float is designed to oscillate up and down the vertical shaft up to 4 m. The bottom of the reaction plate is about 35 m below the water surface. The device is targeted for deployment in water depths of 40 m to 100 m. The point absorber is also connected to a mooring system to keep the floating device in position.}, + language = {en}, + urldate = {2025-01-12}, + journal = {MHKDR}, +} + +@inproceedings{nakhai_techno-economic_2022, + title = {Techno-{Economic} {Implications} of {Electrical} {Machine} {Scaling} for {Wave} {Energy} {Converters}}, + issn = {0197-7385}, + url = {https://ieeexplore.ieee.org/abstract/document/9977184}, + doi = {10.1109/OCEANS47191.2022.9977184}, + abstract = {The sizing of an electrical machine for a Wave Energy Converter (WEC) can have a substantial impact on the overall sizing, cost, and rating of the device. An electrical generator is typically part of the power take-off system, which is the mechanism by which the energy absorbed by the prime mover is transformed into usable electrical energy. For practically all WECs, the rate of change of actuation is predominantly determined by the wave resource (i.e., the wave height and frequency), and devices will see a sinusoidal varying velocity according to the wave conditions. The same can then be said for both directly and indirectly coupled power take-offs with electrical generators. This techno-economic study investigates electrical machine scaling and associated cost implications through core machine design theory, manufacturer data, supporting literature, and the Reference Model Project sponsored by the U.S. Department of Energy. The Reference Model Project was a partnered effort to develop open-source marine energy point designs as reference models to benchmark marine energy technology performance and costs, methods for design and analysis of marine energy technologies, estimations for capital costs, operational costs, and levelized cost of energy. The results from this study show torque is directly related to (1) the physical size of the machine required to increase the air-gap sheer stresses, (2)the amount of active material, (3) the support structure, (4) bearing size and rating, and (5) offshore cable rating, all of which have a significant effect on overall system costs in terms of both capital and operational expenditures. This paper aims to be a critical benchmark in helping determine an “optimal” nameplate rating for wave energy devices and their associated power take-offs. With an optimized rating and sizing process, WEC costs can be reduced and overall performance can be improved.}, + urldate = {2025-01-11}, + booktitle = {{OCEANS} 2022, {Hampton} {Roads}}, + author = {Nakhai, Aryana Y. and McGilton, Ben}, + month = oct, + year = {2022}, + keywords = {Air gaps, Analytical models, Benchmark testing, Costs, Generators, PTO, Performance evaluation, Torque, WEC, cables, capacity factor, cost, electrical machine, force, induction, mass, permanent magnet, power, rating, scaling, torque, wave energy}, + pages = {1--6}, +} + +@misc{mcgilton_optimal_2024, + address = {Rochester, NY}, + type = {{SSRN} {Scholarly} {Paper}}, + title = {On the {Optimal} {Sizing} of {Power} {Take}-{Off} {Systems} for {Wave} {Energy} {Converters}}, + url = {https://papers.ssrn.com/abstract=4886361}, + doi = {10.2139/ssrn.4886361}, + abstract = {The power take-off (PTO) system in a wave energy converter (WEC) is the means by which the energy in an ocean wave is converted into useful energy. There has been a general lack of technology convergence in the wave energyindustry and PTO design has been largely device-specific with the design process determined by the WEC developer. An optimizedPTO design can significantly affect the efficiency, reliability, performance, and overall cost and viability of a device. There remains a need in the marine energy industry for best practices and efficient design processes to be identified as it could greatly benefit developers and researchers in designing an optimal WEC PTO.The results from the extensive modelling and analysis effort in this research indicate that there may be an optimal sizing for WEC PTOs for both power and PTO force rating and that substantial reductions can be made in the cost of a device without significant loss in the energy produced. Furthermore, this optimal sizing may be independent of WEC type and deployment location.With an optimal, or near optimal, approach to WEC PTO sizing demonstrated, a methodology is proposed to address the challenge of nameplate ratings in the wave energy industry.}, + language = {en}, + urldate = {2025-01-11}, + publisher = {Social Science Research Network}, + author = {McGilton, Ben and Nakhai, Aryana and McNally, Jim}, + month = jul, + year = {2024}, + keywords = {LCOx, PTO, cost, rating, sizing, wave energy}, +} + +@article{sundarrajan_open-loop_2023, + title = {Open-{Loop} {Control} {Co}-{Design} of {Semisubmersible} {Floating} {Offshore} {Wind} {Turbines} {Using} {Linear} {Parameter}-{Varying} {Models}}, + volume = {146}, + issn = {1050-0472}, + url = {https://doi.org/10.1115/1.4063969}, + doi = {10.1115/1.4063969}, + abstract = {This paper discusses a framework to design elements of the plant and control systems for floating offshore wind turbines in an integrated manner using linear parameter-varying models. Multiple linearized models derived from aero-elastic simulation software in different operating regions characterized by the incoming wind speed are combined to construct an approximate low-fidelity model of the system. The combined model is then used to generate open-loop, optimal control trajectories as part of a nested control co-design strategy that explores the system’s power production and stability using the platform pitch tilt as a proxy in the context of crucial plant and control design decisions. The radial distance between the central and outer columns and the diameter of the outer columns of the semisubmersible platform are the plant design variables. The platform stability and power production are studied for different plant design decisions. The effect of plant decisions on subsequent power production and stability response of the floating wind turbine is quantified in terms of the levelized cost of energy. The results show that the inner-loop constraints and the plant design decisions affect the turbine’s power and, subsequently, the cost of the system.}, + number = {041704}, + urldate = {2025-01-04}, + journal = {Journal of Mechanical Design}, + author = {Sundarrajan, Athul K. and Hoon Lee, Yong and Allison, James T. and Zalkind, Daniel S. and Herber, Daniel R.}, + month = nov, + year = {2023}, +} + +@article{rohrer_analytical_2024, + title = {Analytical gradients of first-order diffraction and radiation forces for design optimization of floating structures}, + volume = {152}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118724003195}, + doi = {10.1016/j.apor.2024.104198}, + abstract = {Gradient-based design optimization of floating structures with many design variables requires efficient and accurate computation of hydrodynamic coefficients including wave excitation forces and their derivatives with respect to design variables. For large-volume structures or structures with many component members, the only practical method to determine diffraction and radiation forces is to apply a boundary element method solver. This work presents the first known boundary element method solver with implicit analytic derivatives, allowing for total derivative computation alongside force evaluation. Two case studies are presented: a single floating circular column and a structure with multiple square columns attached to a horizontal pontoon. Force results from both case studies agree well with reference data, while derivative results agree with the best comparisons available. Computational requirements limit the applicability of this method and suggest further work is required to refine this approach.}, + urldate = {2025-01-02}, + journal = {Applied Ocean Research}, + author = {Rohrer, Peter J. and Bachynski-Polić, Erin E.}, + month = nov, + year = {2024}, + keywords = {Boundary element method, Gradient-based optimization, Implicit analytic derivatives, Surrogate model}, + pages = {104198}, +} + +@misc{bradbury_jax_2018, + title = {{JAX}: composable transformations of {Python}+{NumPy} programs}, + url = {http://github.com/jax-ml/jax}, + author = {Bradbury, James and Frostig, Roy and Hawkins, Peter and Johnson, Matthew James and Leary, Chris and Maclaurin, Dougal and Necula, George and Paszke, Adam and VanderPlas, Jake and Wanderman-Milne, Skye and Zhang, Qiao}, + year = {2018}, +} + +@misc{ruehl_wec-simwec-sim_2024, + title = {{WEC}-{Sim}/{WEC}-{Sim}: v6.1.2}, + shorttitle = {{WEC}-{Sim}/{WEC}-{Sim}}, + url = {https://zenodo.org/records/14549050}, + doi = {10.5281/zenodo.14549050}, + abstract = {What's Changed + + + +Fixing documentation inconsistency for PTO-Sim blocks by @jleonqu in https://github.com/WEC-Sim/WEC-Sim/pull/1330 + +Update Google analytics implementation in docs by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/1342 + +Body block library update for bug fix \#1346 by @dforbush2 in https://github.com/WEC-Sim/WEC-Sim/pull/1347 + +Fixes the bug in the bodyClass for the QTFs and variable hydro by @MShabara in https://github.com/WEC-Sim/WEC-Sim/pull/1351 + +Update overview.rst - fixed a typo by @thepeteriley in https://github.com/WEC-Sim/WEC-Sim/pull/1362 + +Update forceInternalMechanics and powerInternalMechanics in PTO blocks by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/1369 + +Multi wave class bug fix v2 by @MShabara in https://github.com/WEC-Sim/WEC-Sim/pull/1373 + + +New Contributors + + + +@thepeteriley made their first contribution in https://github.com/WEC-Sim/WEC-Sim/pull/1362 + + +Statistics: + + + +18 issues closed since v6.1.1 + +34 PRs merged since v6.1.1 + +7 Discussions answered since v6.1.1 + + +Full Changelog: https://github.com/WEC-Sim/WEC-Sim/compare/v6.1.1...v6.1.2}, + urldate = {2025-01-02}, + publisher = {Zenodo}, + author = {Ruehl, Kelley and Keester, Adam and dforbush2 and Ströfer, Carlos A. Michelén and Topper, Mathew and Lawson, Michael and jtgrasb and Husain, Salman and Leon, Jorge and Ling, Bradley A. and Shabara, Mohamed and Ogden, David and j-vanrij and jhbates and Nguyen, Lily and Jeffalo1 and sedwardsand and ratanakso and emiliofa and crobarcro and agmoore4 and Alves, Erick F. and zmorrell-sand and yuyihsiang and Hall, Matt and gparisella and ashleynchong and SiHeTh and Davies, Ryan and Riley, Pete}, + month = dec, + year = {2024}, +} + +@misc{mccabe_mdocean_2024, + title = {{MDOcean}}, + url = {https://zenodo.org/records/13997244}, + doi = {10.5281/zenodo.13997244}, + abstract = {Open source codebase that uses multidisciplinary design optimization to optimize an ocean wave energy converter}, + urldate = {2025-01-02}, + publisher = {Zenodo}, + author = {McCabe, Rebecca and Dietrich, Madison and Ren, Iris and Murphy, Olivia and Haji, Maha N.}, + month = oct, + year = {2024}, + keywords = {hydrodynamics, multidisciplinary-optimization, wave-energy}, +} + +@techreport{gaudin_single_2021, + type = {Final report}, + title = {From single to multiple wave energy converters: {Cost} reduction through location and configuration optimisation}, + shorttitle = {From single to multiple wave energy converters}, + number = {ARENA 2015 RND086}, + institution = {University of Western Australia}, + author = {Gaudin, C. and David, D. R. and Cai, Y. and Hansen, J. E. and Bransby, M. F. and Rijnsdorp, D. P. and Lowe, R. J. and O’Loughlin, C. D. and Lu, T. and Uzielli, M. and O'Neill, Michael}, + month = oct, + year = {2021}, +} + +@article{tao_low_2003, + title = {Low \textit{{KC}} flow regimes of oscillating sharp edges. {II}. {Hydrodynamic} forces}, + volume = {25}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118703000464}, + doi = {10.1016/S0141-1187(03)00046-4}, + abstract = {Three vortex shedding modes, i.e. independent vortex shedding, interactive vortex shedding and uni-directional vortex shedding, for flow induced by oscillatory vertical cylinder witha disk attached at its keel were presented in Part I. The occurrence of these modes were shown to depend on the Keulegan–Carpenter (KC) number and disk thickness–diameter ratio. Associated with these distinct changes of vortex shedding patterns are distinct increases in the hydrodynamic damping. A quantitative method of identifying the vortex shedding flow regimes is proposed, and the scaling laws for heave damping estimation of cylinder+disk configuration are presented. A sample calculation on a classic Spar platform show that addition of a heave plate increased the heave damping fourfold.}, + number = {2}, + urldate = {2024-12-27}, + journal = {Applied Ocean Research}, + author = {Tao, Longbin and Thiagarajan, Krish}, + month = apr, + year = {2003}, + keywords = {Keulegan–Carpenter number, Sharp edged body, Vortex shedding}, + pages = {53--62}, +} + +@techreport{newman_motions_1963, + address = {Bethesda, MD}, + type = {Research and development report}, + title = {The motions of a spar buoy in regular waves}, + url = {https://apps.dtic.mil/sti/tr/pdf/AD0406333.pdf}, + doi = {10.5962/bhl.title.48348}, + number = {1499}, + institution = {Department of the Navy: David Taylor Model Basin Hydromechanics Laboratory}, + author = {Newman, J. N.}, + month = may, + year = {1963}, + pages = {38}, +} + +@book{martins_engineering_2022, + address = {Cambridge, UK}, + title = {Engineering {Design} {Optimization}}, + isbn = {978-1-108-83341-7}, + url = {https://mdobook.github.io}, + doi = {10.1017/9781108980647}, + publisher = {Cambridge University Press}, + author = {Martins, Joaquim R. R. A. and Ning, Andrew}, + month = jan, + year = {2022}, +} + +@book{papalambros_principles_2017, + edition = {Third}, + title = {Principles of optimal design}, + isbn = {978-1-107-13267-2}, + publisher = {Cambridge University Press, Cambridge}, + author = {Papalambros, Panos Y. and Wilde, Douglass J.}, + year = {2017}, + mrnumber = {3585626}, +} + +@article{rosati_control_2023, + title = {Control co-design of power take-off and bypass valve for {OWC}-based wave energy conversion systems}, + volume = {219}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148123014386}, + doi = {10.1016/j.renene.2023.119523}, + abstract = {Wave energy is a significant source of renewable energy harnessed by wave energy converters (WECs). However, due to the relatively high levelised cost of energy (LCoE), wave energy has not attained a commercial stage yet. To minimise the LCoE, since the optimum (uncontrolled) WEC design typically differs from the optimum controlled WEC design, control co-design (CCD) techniques are essential. With CCD, the WEC control-related aspects are taken into account from the start of the WEC design phase and, ideally, the best control-informed WEC design is then achieved. This paper specifically focuses on CCD for an oscillating-water-column (OWC) WEC, equipped with a Wells turbine and a bypass valve. In essence, a parametric CCD approach is devised to find the optimum (control-informed) turbine rotor diameter, and bypass valve diameter, for the considered OWC WEC. In particular, the optimum design parameters minimise a ‘simplified’ LCoE, which is chosen as a suitable performance function. Despite the LCoE is primarily sensitive to the power take-off size, rather than to the bypass valve size, peak-shaving control with a bypass valve potentially increases the capacity factor and, consequently, can minimise the LCoE for small-to-medium sized turbines.}, + urldate = {2024-12-23}, + journal = {Renewable Energy}, + author = {Rosati, Marco and Ringwood, John V.}, + month = dec, + year = {2023}, + keywords = {Bypass valve, Control co-design, Levelised cost of energy, Oscillating-water-column, Wave energy, Wells turbine}, + pages = {119523}, +} + +@article{lin_fast_2025, + title = {Fast optimal control performance evaluation for wave energy control co-design}, + volume = {239}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124020421}, + doi = {10.1016/j.renene.2024.121974}, + abstract = {With the application of energy-maximizing control for wave energy converters (WECs), the WEC design problem becomes a control co-design problem. One of the fundamental requirements of co-design is to evaluate the optimal control performance, i.e., average power generation. Previous control techniques include model predictive control (MPC) and pseudo-spectral (PS) control, but both require iterative optimization, with computational requirements the main limiting factor in co-design. In this study, a fast optimal control performance evaluation method is proposed based on a ‘wave-by-wave’ (WbW) representation. The idea is to split the wave excitation force (WEF) signals into individual waves, process them separately, and then combine the results with the distribution of WEF amplitude and period, yielding a straightforward average power calculation. The method is fully developed and studied, considering the cases of position-only, and general, constraints, as well as different choices to obtain the WEF parameter distribution. It is shown that the WbW method can achieve a very high control evaluation fidelity (within a 5\% error) and give almost the same co-design result as MPC and PS (implemented using WecOptTool), but with a significantly reduced computation time (e.g., hundreds of times faster), therefore being a game changer for control co-design of WECs.}, + urldate = {2024-12-22}, + journal = {Renewable Energy}, + author = {Lin, Zechuan and Huang, Xuanrui and Xiao, Xi and Ringwood, John V.}, + month = feb, + year = {2025}, + keywords = {Control co-design, Model predictive control, Pseudo-spectral control, Wave energy converter}, + pages = {121974}, +} + +@article{devin_high-dimensional_2024, + title = {High-dimensional control co-design of a wave energy converter with a novel pitch resonator power takeoff system}, + volume = {312}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801824024624}, + doi = {10.1016/j.oceaneng.2024.119124}, + abstract = {Researchers are exploring adding wave energy converters to existing oceanographic buoys to provide a predictable source of renewable power. A ”pitch resonator” power take-off system has been developed that generates power using a geared flywheel system designed to match resonance with the pitching motion of the buoy. However, the novelty of the concept leaves researchers uncertain about various design aspects of the system. This work presents a novel design study of a pitch resonator to inform design decisions for an upcoming deployment of the system. The assessment uses control co-design via WecOptTool to optimize control trajectories for maximal electrical power production while varying five design parameters of the pitch resonator. Given the large search space of the problem, the control trajectories are optimized within a Monte Carlo analysis to identify optimal designs, followed by parameter sweeps around the optimum to identify trends between the design parameters. The gear ratio between the pitch resonator spring and flywheel are found to be the most sensitive design variables to power performance. The assessment also finds similar power generation for various sizes of resonator components, suggesting that correctly designing for optimal control trajectories at resonance is more critical to the design than component sizing.}, + urldate = {2024-12-22}, + journal = {Ocean Engineering}, + author = {Devin, Michael C. and Gaebele, Daniel T. and Ströfer, Carlos A. Michelén and Grasberger, Jeff T. and Lee, Jantzen and Coe, Ryan G. and Bacelli, Giorgio}, + month = nov, + year = {2024}, + keywords = {Central Pioneer Array, Control co-design, Optimization, Power take-off, Wave energy converter, WecOptTool}, + pages = {119124}, +} + +@article{cotten_multi-objective_2022, + title = {Multi-objective optimisation of a sloped-motion, multibody wave energy converter concept}, + volume = {194}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148122006681}, + doi = {10.1016/j.renene.2022.05.030}, + abstract = {The WaveTrain device is a wave energy converter concept designed to extend the high performance of buoys that undergo sloped motion into a deep water environment. It achieves this by mechanically interconnecting a series of sloped modules, amongst which restorative forces can be exchanged in order to prevent detrimental pitching motion, whilst sufficiently free motion along the inclined axis is retained. Importantly, this circumvents the requirement of a rigid seabed connection, but introduces a potential vulnerability of operational failure of the rotational joints that link each connecting strut to the adjacent module. In this paper, the impact of considering the fatigue damage accumulating at the joints, in addition to the power extraction, is investigated with regards to the optimal design of the WaveTrain device. A specially-tailored multi-objective genetic algorithm is used to explore the optimal design candidates with two variants of the pair of conflicting objectives (power extraction and fatigue damage). Some key design criteria are then presented, with reference and comparison to the design criteria that are considered optimal when only power extraction is considered.}, + urldate = {2024-12-22}, + journal = {Renewable Energy}, + author = {Cotten, A. and Forehand, D. I. M.}, + month = jul, + year = {2022}, + keywords = {Heuristic optimisation, Hydrodynamic modelling, Multi-objective optimisation, Multibody wave energy converter, Sloped motion wave energy converter, WaveTrain}, + pages = {307--320}, +} + +@article{an_optimal_2024, + title = {Optimal {Design} of the {Overtopping} {Wave} {Energy} {Converter} {Based} on {Fluid}–{Structure} {Interaction} {Simulation}}, + volume = {116}, + issn = {0749-0208}, + url = {https://doi.org/10.2112/JCR-SI116-117.1}, + doi = {10.2112/JCR-SI116-117.1}, + abstract = {An, S.-H.; Kim, G.-G., and Lee, J.-H., 2023. Optimal design of the overtopping wave energy converter based on fluid–structure interaction simulation. In: Lee, J.L.; Lee, H.; Min, B.I.; Chang, J.-I.; Cho, G.T.; Yoon, J.-S., and Lee, J. (eds.), Multidisciplinary Approaches to Coastal and Marine Management. Journal of Coastal Research, Special Issue No. 116, pp. 578-582. Charlotte (North Carolina), ISSN 0749-0208.The wave overtopping system in wave power generation systems is called the Overtopping Wave Energy Converter (OWEC). The performance of the OWEC is affected by wave height and period. Wave characteristics, such as wave height, period, and direction, vary with environmental conditions, which make it difficult for the OWEC to generate stable electric power. To mitigate this issue, appropriate OWEC designs based on environmental conditions and wave characteristics must be investigated. In this study, the hydraulic efficiency of the OWEC and the load acting on it were calculated using the Smoothed Particle Hydrodynamics (SPH) based on the environmental conditions along the Ulleungdo coast, and the structural safety of the optimized OWEC model was verified. Moreover, a particle-based simulation was performed to confirm the effect of design parameters on energy efficiency. Additionally, the load acting on the OWEC was calculated, and the optimization method was used to design six types of substructures. Finally, structural analysis was conducted, confirming that all six types avoided the design model's structural resonance period.}, + number = {SI}, + urldate = {2024-12-22}, + journal = {Journal of Coastal Research}, + author = {An, Sung-Hwan and Kim, Geun-Gon and Lee, Jong-Hyun}, + month = jan, + year = {2024}, + pages = {578--582}, +} + +@article{garcia-teruel_reliability-based_2021, + title = {Reliability-based hull geometry optimisation of a point-absorber wave energy converter with power take-off structural reliability objectives}, + volume = {15}, + copyright = {© 2021 The Authors. IET Renewable Power Generation published by John Wiley \& Sons Ltd on behalf of The Institution of Engineering and Technology}, + issn = {1752-1424}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1049/rpg2.12249}, + doi = {10.1049/rpg2.12249}, + abstract = {Recent studies have focused on optimising wave energy converter (WEC) designs, maximising their power performance and techno-economic feasibility. Reliability has yet to be fully considered in these formulations, despite its impact on cost and performance. In this study, this gap is addressed by developing a reliability-based design optimisation framework for WEC hull geometries to explore the trade-off between power performance and power take-off (PTO) system damage equivalent loading (DEL). Optimised hull geometries for two sites are considered (from the centre of the North Sea and off the west coast of Norway), and two directions of motions (heave and surge). Results indicate that site characteristics affect the potential power production and DEL for an optimal WEC design. These are also affected by the direction of motion for power extraction, which also significantly changes optimal hull shape characteristics. Optimal surging WEC designs have edges facing oncoming wave directions, while heaving WECs have pointed bottoms, both to streamline movement. Larger, more convex WECs result in greater power production and DEL, while smaller, more concave WECs result in lesser power production and DEL. These findings underline the importance of considering WEC hull geometry in early design processes to optimise cost, power production, and reliability.}, + language = {en}, + number = {14}, + urldate = {2024-12-22}, + journal = {IET Renewable Power Generation}, + author = {Garcia-Teruel, Anna and Clark, Caitlyn E.}, + year = {2021}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1049/rpg2.12249}, + keywords = {Design, Fluid mechanics and aerodynamics (mechanical engineering), Maintenance and reliability, Optimisation, Optimisation techniques, Other structures, Power and plant engineering (mechanical engineering), Project and design engineering, Reliability, Tidal and flow energy, Wave power}, + pages = {3255--3268}, +} + +@article{ferri_balancing_2014, + title = {Balancing {Power} {Output} and {Structural} {Fatigue} of {Wave} {Energy} {Converters} by {Means} of {Control} {Strategies}}, + volume = {7}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/7/4/2246}, + doi = {10.3390/en7042246}, + abstract = {In order to reduce the cost of electricity produced by wave energy converters (WECs), the benefit of selling electricity as well as the investment costs of the structure has to be considered. This paper presents a methodology for assessing the control strategy for a WEC with respect to both energy output and structural fatigue loads. Different active and passive control strategies are implemented (proportional (P) controller, proportional-integral (PI) controller, proportional-integral-derivative with memory compensation (PID) controller, model predictive control (MPC) and maximum energy controller (MEC)), and load time-series resulting from numerical simulations are used to design structural parts based on fatigue analysis using rain-flow counting, Stress-Number (SN) curves and Miner’s rule. The objective of the methodology is to obtain a cost-effective WEC with a more comprehensive analysis of a WEC based on a combination of well known control strategies and standardised fatigue methods. The presented method is then applied to a particular case study, the Wavestar WEC, for a specific location in the North Sea. Results, which are based on numerical simulations, show the importance of balancing the gained power against structural fatigue. Based on a simple cost model, the PI controller is shown as a viable solution.}, + language = {en}, + number = {4}, + urldate = {2024-12-22}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Ferri, Francesco and Ambühl, Simon and Fischer, Boris and Kofoed, Jens Peter}, + month = apr, + year = {2014}, + note = {Number: 4}, + keywords = {active control, fatigue analysis, model predictive control (MPC), passive control, wave energy converter (WEC), wavestar}, + pages = {2246--2273}, +} + +@article{ambuhl_reliability-based_2014, + title = {Reliability-{Based} {Structural} {Optimization} of {Wave} {Energy} {Converters}}, + volume = {7}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/7/12/8178}, + doi = {10.3390/en7128178}, + abstract = {More and more wave energy converter (WEC) concepts are reaching prototypelevel. Once the prototype level is reached, the next step in order to further decrease thelevelized cost of energy (LCOE) is optimizing the overall system with a focus on structuraland maintenance (inspection) costs, as well as on the harvested power from the waves.The target of a fully-developed WEC technology is not maximizing its power output,but minimizing the resulting LCOE. This paper presents a methodology to optimize thestructural design of WECs based on a reliability-based optimization problem and the intentto maximize the investor’s benefits by maximizing the difference between income (e.g., fromselling electricity) and the expected expenses (e.g., structural building costs or failure costs).Furthermore, different development levels, like prototype or commercial devices, may havedifferent main objectives and will be located at different locations, as well as receive varioussubsidies. These points should be accounted for when performing structural optimizationsof WECs. An illustrative example on the gravity-based foundation of the Wavestar deviceis performed showing how structural design can be optimized taking target reliability levelsand different structural failure modes due to extreme loads into account.}, + language = {en}, + number = {12}, + urldate = {2024-12-22}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Ambühl, Simon and Kramer, Morten and Sørensen, John Dalsgaard}, + month = dec, + year = {2014}, + note = {Number: 12}, + keywords = {LCOE, WEC, Wavestar, probabilistic reliability analysis, reliability level, reliability-basedoptimization, wave energy}, + pages = {8178--8200}, +} + +@article{garcia-teruel_review_2021, + title = {A review of geometry optimisation of wave energy converters}, + volume = {139}, + issn = {1364-0321}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032120308777}, + doi = {10.1016/j.rser.2020.110593}, + abstract = {Reducing the cost of energy of wave energy converters is key for the advancement of the technology. The costs associated with the device structure show the highest potential to achieve this reduction. For this reason, many hull geometry optimisation studies have been performed over the last 20 years, with the aim of finding improved hull shapes, that maximise the power generation and minimise the costs. These studies have been performed for different types of devices, applying a number of optimisation algorithms and representing power generation and costs with various strategies. The definition of the optimisation problem and the use of the most suitable strategies is key for a successful optimisation process, which will provide meaningful results and support device design at early development stages. This paper reviews all these different approaches, with a view to distilling the main findings and best practices; it then formulates recommendations based on these. The work is intended to serve as reference for any technology developer wishing to perform wave energy converter optimisation and for any funding body wanting to assess different device designs.}, + urldate = {2024-12-22}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Garcia-Teruel, A. and Forehand, D. I. M.}, + month = apr, + year = {2021}, + keywords = {Cost of energy, Device design, Hull geometry, Optimisation problem, Wave energy converter}, + pages = {110593}, +} + +@article{coe_survey_2018, + title = {A {Survey} of {WEC} {Reliability}, {Survival} and {Design} {Practices}}, + volume = {11}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/11/1/4}, + doi = {10.3390/en11010004}, + abstract = {A wave energy converter must be designed to survive and function efficiently, often in highly energetic ocean environments. This represents a challenging engineering problem, comprising systematic failure mode analysis, environmental characterization, modeling, experimental testing, fatigue and extreme response analysis. While, when compared with other ocean systems such as ships and offshore platforms, there is relatively little experience in wave energy converter design, a great deal of recent work has been done within these various areas. This paper summarizes the general stages and workflow for wave energy converter design, relying on supporting articles to provide insight. By surveying published work on wave energy converter survival and design response analyses, this paper seeks to provide the reader with an understanding of the different components of this process and the range of methodologies that can be brought to bear. In this way, the reader is provided with a large set of tools to perform design response analyses on wave energy converters.}, + language = {en}, + number = {1}, + urldate = {2024-12-22}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Coe, Ryan G. and Yu, Yi-Hsiang and Van Rij, Jennifer}, + month = jan, + year = {2018}, + note = {Number: 1}, + keywords = {design, extreme conditions, survival, wave energy converter (WEC)}, + pages = {4}, +} + +@article{zou_practical_2023, + title = {Practical power absorption assessment limits for generic wave energy converters}, + volume = {277}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S002980182300687X}, + doi = {10.1016/j.oceaneng.2023.114303}, + abstract = {There lacks a generic representation of the wave power absorption of devices across dimensions, shapes, and resource conditions. A conventional resource assessment approach only evaluates the wave power based on wave characteristics, which is insufficient to capture the practical power absorption variations between WEC archetypes. In this paper, a novel WEC net power assessment (WNPA) method is proposed and is generally applicable to any arbitrary WECs design. Two theoretical upper bounds of wave power absorption are adopted and derived for different types of WECs. Numerical simulations are conducted to apply this novel technique to assess the net power available to different WECs at the Wave Energy Test Site (WETS), Hawaii and the PacWave site, Oregon over 11 years. By comparing the power potential for WECs oscillating in different degrees of freedom, the results indicate the surging mode may be the most energetic; regardless of shapes and ocean sites. When applied to three generic WECs (point absorber, terminator, and attenuator), the pitching terminator is shown to have lower absorption potential. Finally, the mean annual energy production (MAEP) of the three generic WECs at WETS and PacWave are compared, and a surging attenuator shows a significant wave power potential at PacWave.}, + urldate = {2024-12-22}, + journal = {Ocean Engineering}, + author = {Zou, Shangyan and Robertson, Bryson and Yim, Solomon}, + month = jun, + year = {2023}, + keywords = {Budal’s limit, Maximum wave power absorption, Net power assessment, Wave energy conversion, Wave resources assessment}, + pages = {114303}, +} + +@article{garcia-teruel_design_2022, + title = {Design limits for wave energy converters based on the relationship of power and volume obtained through multi-objective optimisation}, + volume = {200}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148122014033}, + doi = {10.1016/j.renene.2022.09.053}, + abstract = {Wave energy conversion can have a significant role in the transition to a net-zero energy system. However, cost reductions are still required for this technology to be commercially competitive. To achieve commercialisation at a reasonable expense, disruptive innovations at early stages of development need to be enabled. Thus, to explore more of the design space, design limits need to be defined. Although physical limits, such as the maximum capture width and the Budal upper bound, have been defined, more realistic limits considering the variability of the resource, device dimensions and the actual hydrodynamic behaviour of different shapes can help provide further insights. This is relevant to both technology developers and funding bodies wanting to identify potential areas for innovation. In this study, the use of multi-objective optimisation is proposed to explore these limits, by investigating the optimal relationship between average annual power production and device size. This relationship depends on resource level, mode of motion used for power extraction and hull shape. The obtained fundamental relationships fall within the existing physical limits, but provide further insights into the impact of different factors on these limits. This allows for a more direct comparison with the performance of state-of-the-art wave energy converters.}, + urldate = {2024-12-22}, + journal = {Renewable Energy}, + author = {Garcia-Teruel, Anna and Roberts, Owain and Noble, Donald R. and Henderson, Jillian Catherine and Jeffrey, Henry}, + month = nov, + year = {2022}, + keywords = {Capture width, Design limits, Fundamental relationships, Scale, Size, Wave energy converter}, + pages = {492--504}, +} + +@article{tom_revisiting_2021, + title = {Revisiting {Theoretical} {Limits} for {One} {Degree}-of-{Freedom} {Wave} {Energy} {Converters}}, + volume = {143}, + issn = {0195-0738}, + url = {https://doi.org/10.1115/1.4049287}, + doi = {10.1115/1.4049287}, + abstract = {This work revisits the theoretical limits of one degree-of-freedom wave energy converters (WECs). This work considers the floating sphere used in the OES Task 10 WEC modeling and verification effort for analysis. Analytical equations are derived to determine bounds on displacement amplitude, time-averaged power (TAP), and power-take-off (PTO) force. A unique result found shows that the TAP absorbed by a WEC can be defined solely by the inertial properties and radiation hydrodynamic coefficients. In addition, a unique expression for the PTO force was derived that provides lower and upper bounds when resistive control is used to maximize power generation. For complex conjugate control, this same expression only provides a lower bound, as there is theoretically no upper bound. These bounds assist in comparing the performance of the floating sphere if it were to extract energy using surge or heave motion. The analysis shows because of differences in hydrodynamic coefficients for each oscillating mode, there are different frequency ranges that provide better power capture efficiency. The influence of a motion constraint on TAP while utilizing a nonideal power take-off is examined and found to reduce the losses associated with bidirectional energy flow. The expression to calculate TAP with a nonideal PTO is modified by the electrical conversion efficiency and the ratio of the PTO spring and damping coefficients. The PTO spring and damping coefficients were separated in the expression, allowing for limits to be set on the PTO coefficients to ensure net power generation.}, + number = {090909}, + urldate = {2024-12-22}, + journal = {Journal of Energy Resources Technology}, + author = {Tom, Nathan M.}, + month = jan, + year = {2021}, +} + +@techreport{housner_numerical_2024, + title = {Numerical {Modeling} and {Optimization} of the {iProTech} {Pitching} {Inertial} {Pump} ({PIP}) {Wave} {Energy} {Converter} ({WEC}) ({Cooperative} {Research} and {Development} {Final} {Report}, {CRADA} {Number}: {CRD}-22-22968)}, + shorttitle = {Numerical {Modeling} and {Optimization} of the {iProTech} {Pitching} {Inertial} {Pump} ({PIP}) {Wave} {Energy} {Converter} ({WEC}) ({Cooperative} {Research} and {Development} {Final} {Report}, {CRADA} {Number}}, + url = {https://www.osti.gov/biblio/2478103}, + doi = {10.2172/2478103}, + abstract = {This work generated a first-of-its-kind automated workflow to couple time-domain simulations of wave energy converters written in one software language with a set of design generation and evaluation scripts written in another software language. This automated workflow used an existing optimization package to analyze the sensitivity of different design parameters on the power output of a specific WEC, iProTech’s Pitching Inertial Pump (PIP). Geometric, inertial, and power take-off variables were all varied and optimized to find values that produced the highest amount of power generated over varying wave conditions. The findings on these parameter sensitivity studies are used to inform future design iterations of the PIP WEC. Including more design variables in the optimizations will only increase computational run time and further software development is needed to analyze a larger optimization.}, + language = {English}, + number = {NREL/TP-5000-92188; CRD-22-22968}, + urldate = {2024-12-21}, + institution = {National Renewable Energy Laboratory (NREL), Golden, CO (United States); iProTech, Redwood City, CA (United States)}, + author = {Housner, Stein and Wynn, Nick}, + month = nov, + year = {2024}, +} + +@article{abdulkadir_control_2024, + title = {Control co-design optimization of nonlinear wave energy converters}, + volume = {304}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S002980182401165X}, + doi = {10.1016/j.oceaneng.2024.117827}, + abstract = {This paper presents a study in which both the control and the shape of a Wave Energy Converter (WEC) are optimized simultaneously. A heaving point absorber WEC is assumed. To optimize the shape of the WEC’s buoy, nonlinear hydrodynamics need to be evaluated. One main contribution of this paper is the integration of nonlinear hydrodynamics and nonlinear control during the optimization of the WEC’s buoy shape. This approach is referred to as Control Co-Design (CCD). In this work, we present a control co-designed nonlinear heaving point absorber WEC that leverages the nonlinear dynamic, static Froude–Krylov (FK) forces to maximize power extraction. The nonlinear FK forces are approximated using a variation of the algebraic solution; the hydrodynamic forces of the body are computed using an analytic formulation leveraging the methods of eigenfunction expansion and separation of variables. The nonlinear geometry of the buoy is modeled as a series of inclined panels; the inclination angles are optimized to arrive at the optimal shape. The performance of the optimized shape is compared to that of a nonlinear spherical WEC. It is found that an average of 20\% improvement is achieved by the optimized geometry over the spherical device.}, + urldate = {2024-12-21}, + journal = {Ocean Engineering}, + author = {Abdulkadir, Habeebullah and Abdelkhalik, Ossama}, + month = jul, + year = {2024}, + keywords = {Control co-design, Froude–Krylov forces, Nonlinear WEC, Optimal control, Wave energy converter}, + pages = {117827}, +} + +@article{mi_multi-scale_2025, + title = {Multi-scale concurrent design of a 100 {kW} wave energy converter}, + volume = {238}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124019037}, + doi = {10.1016/j.renene.2024.121835}, + abstract = {Wave energy converters (WEC) are complex systems comprising multiple subsystems including wave capture structure and station keeping, power takeoff (PTO), and control. Designing the whole WEC system requires an effective design approach that considers mutual couplings among them throughout the entire design process. Moreover, the traditional serial design approach, transitioning from small-scale to full-scale designs incrementally, often overlooks issues related to scaling factors. This can lead to unexpected challenges and delays towards real ocean deployment. To address system-level considerations and scaling challenges in WEC design, this study introduces a novel multi-scale concurrent design approach. It facilitates full-scale WEC design from the early concept to ocean test planning. This approach ensures a holistic and effective design process that considers interactions among subsystems at each design stage and incorporates control co-design starting with early concept development. To demonstrate the presented approach, we introduce a case study focused on the design of a 100 kW floating oscillating surge wave energy converter (FOSWEC) for PacWave South ocean test site. This includes the design of wave capture structure and station keeping, PTO, control, ocean test planning, and techno-economic analysis. The case study showcases the effectiveness of the proposed approach, offering invaluable guidance and insights for future WEC development and support efficient, cost-effective collaboration in WEC design and testing.}, + urldate = {2024-12-20}, + journal = {Renewable Energy}, + author = {Mi, Jia and Huang, Jianuo and Yang, Lisheng and Ahmed, Alaa and Li, Xiaofan and Wu, Xian and Datla, Raju and Staby, Bill and Hajj, Muhammad and Zuo, Lei}, + month = jan, + year = {2025}, + keywords = {Case study, Concurrent design, Multi-scale design, PacWave-south, Wave energy converter}, + pages = {121835}, +} + +@misc{khanal_multi-objective_2024, + title = {Multi-{Objective} {Multidisciplinary} {Optimization} of {Wave} {Energy} {Converter} {Array} {Layout} and {Controls}}, + url = {http://arxiv.org/abs/2410.11089}, + doi = {10.48550/arXiv.2410.11089}, + abstract = {This study utilizes multidisciplinary design optimization (MDO) to design an array of heaving wave energy converters (WECs) for grid-scale energy production with decision variables and parameters chosen from the coupled disciplines of geometry, hydrodynamics, layout, motor-actuated reactive controls (with a force maximum constraint) and economics. We vary a WEC's dimensions, array layout, and control gain to minimize two objectives: the levelized cost of energy (LCOE) and the maximum separation distance. This multi-objective optimization approach results in a set of optimal design configurations that stakeholders can choose from for their specific application and needs. The framework yields a range of optimal (minimum) LCOE values from 0.21 to 0.23 {\textbackslash}\$/kWh and a separation distance ranging from 97 to 62 meters. The WEC radius of 4m is found to be optimal, and the q-factor for optimal designs are greater than 1 up to 1.06 for a rhombus-like layout. Additionally, a post-optimality global sensitivity analysis of a design shows that wave heading, wave frequency, WEC lifetime, amplitude and interest rate accounts for most of the variance. Different designs in the Pareto set may be appealing for different decision makers based on their trade-off analysis. To that end, regression model is developed for design heuristics.}, + urldate = {2024-12-17}, + publisher = {arXiv}, + author = {Khanal, Kapil and DeGoede, Nate and Vitale, Olivia and Haji, Maha N.}, + month = oct, + year = {2024}, + note = {arXiv:2410.11089 [eess]}, + keywords = {Computer Science - Systems and Control, Electrical Engineering and Systems Science - Systems and Control}, +} + +@techreport{wierzbicki_lecture_2013, + type = {Lecture notes}, + title = {Lecture 11: {Buckling} of {Plates} and {Sections}}, + shorttitle = {2.{080J} {Structural} {Mechanics} {Lecture} 11}, + url = {https://ocw.mit.edu/courses/2-080j-structural-mechanics-fall-2013/resources/mit2_080jf13_lecture11/}, + abstract = {This file contains information regarding lecture 7.}, + language = {en}, + number = {11}, + urldate = {2024-12-15}, + institution = {Massachusetts Institute of Technology}, + author = {Wierzbicki, Tomasz}, + year = {2013}, +} + +@techreport{american_bureau_of_shipping_requirements_2022, + address = {ABS Plaza 1701 City Plaza Drive Spring, TX 77389 USA}, + type = {Requirement}, + title = {Requirements for {Buckling} and {Ultimate} {Strength} {Assessment} for {Offshore} {Structures}}, + url = {https://ww2.eagle.org/content/dam/eagle/rules-and-guides/current/offshore/126-requirements-for-buckling-and-ultimate-strength-assessment-for-offshore-structures/126-buckling-reqts-july22.pdf}, + language = {en}, + number = {126}, + urldate = {2024-12-15}, + institution = {American Bureau of Shipping}, + author = {{American Bureau of Shipping}}, + month = jul, + year = {2022}, +} + +@book{american_iron_and_steel_institute_cold-formed_1991, + address = {1000 16th Street, NW, Washington, D.C. 20036}, + edition = {1986 Edition with 1989 Addendum}, + title = {Cold-{Formed} {Steel} {Design} {Manual}}, + url = {https://scholarsmine.mst.edu/ccfss-aisi-spec/60/}, + abstract = {Note: This is an electronic version only. A printed version is available here. ELECTRONIC DELIVERY METHOD:The electronic version of this document will be placed in a Dropbox folder and the purchaser notified via email when it is available for downloading. Please be sure to include an email address with your order. Docu}, + language = {en}, + urldate = {2024-12-15}, + publisher = {W. P. Reyman Associates}, + author = {{American Iron and Steel Institute}}, + year = {1991}, +} + +@article{paduano_towards_2024, + title = {Towards standardised design of wave energy converters: {A} high-fidelity modelling approach}, + volume = {224}, + issn = {0960-1481}, + shorttitle = {Towards standardised design of wave energy converters}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124002064}, + doi = {10.1016/j.renene.2024.120141}, + abstract = {Within this study, an analysis of the global standard panorama for wave energy converters (WECs) is presented, in order to develop design methodologies as close as possible to the state-of-the-art. In particular, an analysis of such international standards panorama exhibits a lack of information and detail regarding WEC system design, and the specific simulations procedures that shall be followed accordingly. In the light of this, this study proposes a standardised design process that can be followed to define the design loads which characterise a structural analysis, which are obtained by high-fidelity models. The device assessment in extreme states is analysed on intact and damaged conditions, where the use of a computational fluid dynamics (CFD) software is proposed to encompass any non-linear behaviour related to extreme events. Furthermore, this article also describes a fatigue assessment based on linear system theory, with the inclusion of linearised significant terms, such as, e.g. mooring influence on device dynamics.}, + urldate = {2024-12-15}, + journal = {Renewable Energy}, + author = {Paduano, Bruno and Parrinello, Luca and Niosi, Francesco and Dell’Edera, Oronzo and Sirigu, Sergej Antonello and Faedo, Nicolás and Mattiazzo, Giuliana}, + month = apr, + year = {2024}, + keywords = {Design, Extreme events, Fatigue, Standards, Wave energy converter}, + pages = {120141}, +} + +@techreport{ove_arup__partners_ltd_structural_2016, + address = {Scotland}, + title = {Structural {Forces} and {Stresses} for {Wave} {Energy} {Devices}}, + url = {https://tethys-engineering.pnnl.gov/publications/structural-forces-stresses-wave-energy-devices}, + number = {ARP LS2}, + urldate = {2024-12-15}, + institution = {Wave Energy Scotland}, + author = {{Ove Arup \& Partners Ltd} and {Cruz Atcheson Consulting Engineers, Lda.}}, + month = jun, + year = {2016}, +} + +@techreport{wierzbicki_lecture_2013-1, + type = {Lecture notes}, + title = {Lecture 7: {Bending} {Response} of {Plates} and {Optimum} {Design}}, + shorttitle = {2.{080J} {Structural} {Mechanics} {Lecture} 7}, + url = {https://ocw.mit.edu/courses/2-080j-structural-mechanics-fall-2013/resources/mit2_080jf13_lecture7/}, + abstract = {This file contains information regarding lecture 7.}, + language = {en}, + number = {7}, + urldate = {2024-12-15}, + institution = {Massachusetts Institute of Technology}, + author = {Wierzbicki, Tomasz}, + year = {2013}, +} + +@article{boedo_corrected_1998, + title = {Corrected {Solution} of {Clamped} {Ring} {Plate} with {Edge} {Point} {Load}}, + volume = {124}, + copyright = {Copyright © 1998 American Society of Civil Engineers}, + issn = {0733-9399}, + url = {https://ascelibrary.org/doi/10.1061/%28ASCE%290733-9399%281998%29124%3A6%28696%29}, + doi = {10.1061/(ASCE)0733-9399(1998)124:6(696)}, + abstract = {This technical note provides closed-form deflection and stress corrections to the +well-known and practical problem of a ring plate clamped along its inner radius and +subjected to a point load on its free outer edge. The corrected solution predicts +radial ...}, + language = {EN}, + number = {6}, + urldate = {2024-12-15}, + journal = {Journal of Engineering Mechanics}, + publisher = {American Society of Civil Engineers}, + author = {Boedo, S. and Prantil, V. C.}, + month = jun, + year = {1998}, + pages = {696--697}, +} + +@book{young_roarks_2001, + title = {Roark's {Formulas} for {Stress} and {Strain}}, + isbn = {978-0-07-150181-1}, + abstract = {Solutions-based approach to quick calculations in structural element design and analysisNow updated with 30\% new material, Roark Formulas for Stress and Strain, Seventh Edition, is the ultimate resource for designers, engineers, and analysts who need to calculate loads and stress. This landmark reference from Warren Young and Richard Budynas provides you with equations and diagrams of structural properties in an easy-to-use, thumb-through format. Updated, with a user-friendly page layout, this new edition includes expanded coverage of joints, bearing and shear stress, experimental stress analysis, and stress concentrations, as well as material behavior coverage and stress and strain measurement. You’ll also find expanded tables and cases; improved notations and figures in the tables; consistent table and equation numbering; and verification of correction factors.}, + language = {en}, + publisher = {McGraw Hill LLC}, + author = {Young, Warren C. and Budynas, Richard G.}, + month = oct, + year = {2001}, + note = {Google-Books-ID: pummClLoFXEC}, + keywords = {Technology \& Engineering / Civil / General}, +} + +@article{mccabe_force-limited_2024, + series = {15th {IFAC} {Conference} on {Control} {Applications} in {Marine} {Systems}, {Robotics} and {Vehicles} {CAMS} 2024}, + title = {Force-{Limited} {Control} of {Wave} {Energy} {Converters} using a {Describing} {Function} {Linearization}⁎}, + volume = {58}, + issn = {2405-8963}, + url = {https://www.sciencedirect.com/science/article/pii/S2405896324018482}, + doi = {10.1016/j.ifacol.2024.10.093}, + abstract = {Actuator saturation is a common nonlinearity. In wave energy conversion, force saturation conveniently limits drivetrain size and cost with minimal impact on energy generation. However, such nonlinear dynamics typically demand numerical simulation, which increases computational cost and diminishes intuition. This paper instead uses describing functions to approximate a force saturation nonlinearity as a linear impedance mismatch. In the frequency domain, the impact of controller impedance mismatch (such as force limit, finite bandwidth, or parameter error) on electrical power production is shown analytically and graphically for a generic nondimensionalized single degree of freedom wave energy converter in regular waves. Results are visualized with Smith charts. Notably, systems with a specific ratio of reactive to real mechanical impedance are least sensitive to force limits, a criteria which conflicts with resonance and bandwidth considerations. The describing function method shows promise to enable future studies such as large-scale design optimization and co-design.}, + number = {20}, + urldate = {2024-12-09}, + journal = {IFAC-PapersOnLine}, + author = {McCabe, Rebecca and Haji, Maha N.}, + month = jan, + year = {2024}, + keywords = {Wave energy converters, constrained control, describing functions, impedance mismatch, linearization, nonlinear and optimal marine system control, systems with saturation}, + pages = {440--445}, +} + +@article{hall_open-source_2022, + title = {An {Open}-{Source} {Frequency}-{Domain} {Model} for {Floating} {Wind} {Turbine} {Design} {Optimization}}, + volume = {2265}, + issn = {1742-6596}, + url = {https://dx.doi.org/10.1088/1742-6596/2265/4/042020}, + doi = {10.1088/1742-6596/2265/4/042020}, + abstract = {A new frequency-domain dynamics model has been developed that uses open-source components to efficiently represent a complete floating wind turbine system. The model, called RAFT (Response Amplitudes of Floating Turbines), incorporates quasi-static mooring reactions, strip-theory and potential-flow hydrodynamics, blade-element-momentum aerodynamics, and linear turbine control. The formulation is compatible with a wide variety of support structure configurations and no manual or time-domain preprocessing steps are required, making RAFT very practical in design and optimization workflows. The model is applied to three reference floating wind turbine designs and its predictions are compared with results from time-domain OpenFAST simulations. There is good agreement in mean offsets as well the statistics and spectra of the dynamic response, verifying RAFT’s general suitability for floating wind analysis. Follow-on work will include verification of potential-flow and turbine-control features and application to optimization problems.}, + language = {en}, + number = {4}, + urldate = {2024-12-08}, + journal = {Journal of Physics: Conference Series}, + publisher = {IOP Publishing}, + author = {Hall, Matthew and Housner, Stein and Zalkind, Daniel and Bortolotti, Pietro and Ogden, David and Barter, Garrett}, + month = may, + year = {2022}, + pages = {042020}, +} + +@book{pozar_microwave_2012, + edition = {4th edition}, + title = {Microwave {Engineering}}, + isbn = {978-1-118-21363-6}, + url = {https://alunoeletrica.eng.ufba.br/material/eletromagnetismoaplicado/livros/pozar.pdf}, + urldate = {2024-10-03}, + publisher = {Wiley}, + author = {Pozar, David}, + year = {2012}, +} + +@article{sun_stochastic_2019, + title = {Stochastic control of wave energy converters for optimal power absorption with constrained control force}, + volume = {87}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118718303122}, + doi = {10.1016/j.apor.2019.03.002}, + abstract = {This paper presents an analytical solution derived for optimal control of the power take-off of a single-degree of freedom heave point absorber with constraints on the control force. The optimal control law turns out to be noncausal with a functional dependence on future velocities. To handle this problem, an algorithm for predicting future velocities is derived. Based on the solution the mean (time-averaged) absorbed power in a given sea-state is calculated. The performance of the indicated controller in terms of the mean absorbed power is close to the optimal value obtained by nonlinear programming and better than a controller with feedback from the present displacement, velocity and acceleration, and with optimized gain factors.}, + urldate = {2024-10-06}, + journal = {Applied Ocean Research}, + author = {Sun, Tao and Nielsen, Søren R. K.}, + month = jun, + year = {2019}, + keywords = {Actuator force constraints, Heave point absorber, Optimal power take-off, Wave energy}, + pages = {130--141}, +} + +@misc{noauthor_77_2020, + title = {7.7: {Broadband} {Matching} to {Reactive} {Loads}}, + shorttitle = {7.7}, + url = {https://eng.libretexts.org/Bookshelves/Electrical_Engineering/Electronics/Microwave_and_RF_Design_III_-_Networks_(Steer)/07%3A_Chapter_7/7.7%3A_Broadband_Matching_to_Reactive_Loads}, + language = {en}, + urldate = {2024-10-03}, + journal = {Engineering LibreTexts}, + month = oct, + year = {2020}, +} + +@article{herber_problem_2019, + title = {A {Problem} {Class} {With} {Combined} {Architecture}, {Plant}, and {Control} {Design} {Applied} to {Vehicle} {Suspensions}}, + volume = {141}, + issn = {1050-0472}, + url = {https://doi.org/10.1115/1.4043312}, + doi = {10.1115/1.4043312}, + abstract = {Here we describe a problem class with combined architecture, plant, and control design for dynamic engineering systems. The design problem class is characterized by architectures comprised of linear physical elements and nested co-design optimization problems employing linear-quadratic dynamic optimization. The select problem class leverages a number of existing theory and tools and is particularly effective due to the symbiosis between labeled graph representations of architectures, dynamic models constructed from linear physical elements, linear-quadratic dynamic optimization, and the nested co-design solution strategy. A vehicle suspension case study is investigated and a specifically constructed architecture, plant, and control design problem is described. The result was the automated generation and co-design problem evaluation of 4374 unique suspension architectures. The results demonstrate that changes to the vehicle suspension architecture can result in improved performance, but at the cost of increased mechanical complexity. Furthermore, the case study highlights a number of challenges associated with finding solutions to the considered class of design problems. One such challenge is the requirement to use simplified design problem elements/models; thus, the goal of these early-stage studies are to identify new architectures that are worth investigating more deeply. The results of higher-fidelity studies on a subset of high-performance architectures can then be used to select a final system architecture. In many aspects, the described problem class is the simplest case applicable to graph-representable, dynamic engineering systems.}, + number = {101401}, + urldate = {2024-09-30}, + journal = {Journal of Mechanical Design}, + author = {Herber, Daniel R. and Allison, James T.}, + month = may, + year = {2019}, +} + +@inproceedings{chen_electrical_2008, + address = {London}, + title = {Electrical and {Mechanical} {Passive} {Network} {Synthesis}}, + isbn = {978-1-84800-155-8}, + doi = {10.1007/978-1-84800-155-8_3}, + abstract = {The context of this paper is the application of electrical circuit synthesis to problems of mechanical control. The use of the electrical-mechanical analogy and the inerter mechanical element is briefly reviewed. Classical results from passive network synthesis are surveyed including Brune’s synthesis, Bott-Duffin’s procedure, Darlington’s synthesis, minimum reactance extraction and the synthesis of biquadratic functions. New results are presented on the synthesis of biquadratic functions which are realisable using two reactive elements and no transformers.}, + language = {en}, + booktitle = {Recent {Advances} in {Learning} and {Control}}, + publisher = {Springer}, + author = {Chen, Michael Z. Q. and Smith, Malcolm C.}, + editor = {Blondel, Vincent D. and Boyd, Stephen P. and Kimura, Hidenori}, + year = {2008}, + pages = {35--50}, +} + +@techreport{bortolotti_system_2022, + title = {System {Modeling} {Frameworks} for {Wind} {Turbines} and {Plants}: {Review} and {Requirements} {Specifications}}, + shorttitle = {System {Modeling} {Frameworks} for {Wind} {Turbines} and {Plants}}, + url = {https://www.osti.gov/biblio/1868328}, + doi = {10.2172/1868328}, + abstract = {System modeling frameworks for wind turbines and plants are used by research groups and industry to design wind energy systems that take into account key trade-offs across performance, cost, and reliability at both the turbine and plant level. The frameworks are exercised using a variety of multi-disciplinary design, analysis and optimization (MDAO) methods. To improve inter-operability and foster collaboration, this report proposes a classification system for the frameworks along dimensions of model fidelity and scope. The classification system is first motivated with reviews the state-of-the-art in the development of software frameworks for integrated wind turbine and plant simulation. Within each major wind turbine and power plant subsystem, a matrix is developed for the disciplines used and the fidelity levels with which each discipline can be modeled. The existing frameworks are then classified according to the matrix. Next, an ontology is proposed that will allow for standardizing how data is transferred between the most common discipline-fidelity combinations used in the frameworks. A common representation of data creates the ability to 1) share system descriptions and analysis results, supporting more transparent benchmarks and comparison, and 2) integrate models together into workflows within and across organizations for improving the efficiency and performance of wind turbine and power plant design processes. Ultimately, this integration leads to better overall wind energy system designs with high performance and low costs.}, + language = {English}, + number = {NREL/TP-5000-82621}, + urldate = {2024-09-14}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Bortolotti, Pietro and Bay, Christopher and Barter, Garrett and Gaertner, Evan and Dykes, Katherine and McWilliam, Michael and Friis-Moller, Mikkel and Molgaard Pedersen, Mads and Zahle, Frederik}, + month = may, + year = {2022}, +} + +@article{rijlaarsdam_comparative_2017, + title = {A comparative overview of frequency domain methods for nonlinear systems}, + volume = {42}, + issn = {0957-4158}, + url = {https://www.sciencedirect.com/science/article/pii/S0957415816301568}, + doi = {10.1016/j.mechatronics.2016.12.008}, + abstract = {The widespread acceptance of frequency domain techniques for linear and time invariant systems has been an impetus for the extension of these methodologies toward nonlinear systems. However, differences and equivalences between alternative methods have been less addressed. This paper provides a comparative overview of four classes of frequency domain methods for nonlinear systems: Volterra based models, nonlinear frequency response functions / Bode plots, describing functions and linear approximations in the presence of nonlinearities. Each method is introduced using consistent nomenclature and terminology, which allows for comparison in terms of system and signal classes for which the methods are valid as well as the type of (nonlinear) effects captured by each model. Summarizing, the paper aims to connect, and make different frequency domain methods for nonlinear systems accessible, by providing a comparative overview of such methodologies, accompanied by illustrative (experimental) examples.}, + urldate = {2024-09-01}, + journal = {Mechatronics}, + author = {Rijlaarsdam, David and Nuij, Pieter and Schoukens, Johan and Steinbuch, Maarten}, + month = apr, + year = {2017}, + keywords = {Convergent systems, Describing functions, Fading memory, Frequency domain methods, Generalized FRF, Linear approximation, Modeling, Nonlinear FRF, Nonlinear systems, Volterra systems}, + pages = {11--24}, +} + +@article{rijlaarsdam_uniquely_2012, + title = {Uniquely connecting frequency domain representations of given order polynomial {Wiener}–{Hammerstein} systems}, + volume = {48}, + issn = {0005-1098}, + url = {https://www.sciencedirect.com/science/article/pii/S0005109812002579}, + doi = {10.1016/j.automatica.2012.06.006}, + abstract = {The notion of frequency response functions has been generalized to nonlinear systems in several ways. However, a relation between different approaches has not yet been established. In this paper, frequency domain representations for nonlinear systems are uniquely connected for a class of nonlinear systems. Specifically, by means of novel analytical results, the generalized frequency response function (GFRF) and the higher order sinusoidal input describing function (HOSIDF) for polynomial Wiener–Hammerstein systems are explicitly related, assuming the linear dynamics are known. Necessary and sufficient conditions for this relation to exist and results on the uniqueness and equivalence of the HOSIDF and GFRF are provided. Finally, this yields an efficient computational procedure for computing the GFRF from the HOSIDF and vice versa.}, + number = {9}, + urldate = {2024-09-01}, + journal = {Automatica}, + author = {Rijlaarsdam, David and Oomen, Tom and Nuij, Pieter and Schoukens, Johan and Steinbuch, Maarten}, + month = sep, + year = {2012}, + keywords = {Describing functions, Frequency response methods, Generalized frequency response function, Higher order sinusoidal input describing function, Nonlinear systems}, + pages = {2381--2384}, +} + +@techreport{schwarz_evaluating_2024, + title = {Evaluating the {Impact} of {Tidal} {Energy} in the {Cook} {Inlet} on {Alaska}'s {Railbelt} {Electrical} {Grid}}, + url = {https://www.osti.gov/biblio/2345173}, + doi = {10.2172/2345173}, + abstract = {This report presents the findings of a case study that evaluates the impact of integrating significant tidal energy generation in the Cook Inlet in Alaska. The case study is part of a series within the "Quantifying the Grid Value of MRE [Marine Renewable Energy] in Early U.S. Markets" project funded by the U.S. Department of Energy. This study takes a scenario-based approach to evaluate the tidal energy potential in the Cook Inlet, in which 100-500 megawatts (MW) of tidal energy are integrated into the grid under different infrastructure scenarios. These scenarios include increased energy storage and transmission line upgrades, a "Basecase" scenario with no additional upgrades, and a reference case with no tidal energy. We concluded that tidal energy at an installed capacity of 200-300 MW has the potential to reduce fuel costs in Alaska while also reducing carbon emissions and increasing the energy independence of the state. This analysis and the key findings should be viewed as a starting point for additional research and used to inform investment and policy options.}, + language = {English}, + number = {NREL/TP-5700-85943}, + urldate = {2024-08-29}, + institution = {National Renewable Energy Laboratory (NREL), Golden, CO (United States)}, + author = {Schwarz, Marty and McGilton, Ben and Kilcher, Levi and Gjestvang, Kelly and Stark, Greg}, + month = apr, + year = {2024}, +} + +@article{penalba_review_2016, + title = {A {Review} of {Wave}-to-{Wire} {Models} for {Wave} {Energy} {Converters}}, + volume = {9}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/9/7/506}, + doi = {10.3390/en9070506}, + abstract = {Control of wave energy converters (WECs) has been very often limited to hydrodynamic control to absorb the maximum energy possible from ocean waves. This generally ignores or significantly simplifies the performance of real power take-off (PTO) systems. However, including all the required dynamics and constraints in the control problem may considerably vary the control strategy and the power output. Therefore, this paper considers the incorporation into the model of all the conversion stages from ocean waves to the electricity network, referred to as wave-to-wire (W2W) models, and identifies the necessary components and their dynamics and constraints, including grid constraints. In addition, the paper identifies different control inputs for the different components of the PTO system and how these inputs are articulated to the dynamics of the system. Examples of pneumatic, hydraulic, mechanical or magnetic transmission systems driving a rotary electrical generator, and linear electric generators are provided.}, + language = {en}, + number = {7}, + urldate = {2024-08-23}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Penalba, Markel and Ringwood, John V.}, + month = jul, + year = {2016}, + note = {Number: 7}, + keywords = {electric generator, electricity network, hydraulic system, hydrodynamic model, power converters, wave energy, wave resource, wave-to-wire model}, + pages = {506}, +} + +@article{gonzalez_offshore_2024, + title = {Offshore wind and wave energy can reduce total installed capacity required in zero-emissions grids}, + volume = {15}, + copyright = {2024 The Author(s)}, + issn = {2041-1723}, + url = {https://www.nature.com/articles/s41467-024-50040-6}, + doi = {10.1038/s41467-024-50040-6}, + abstract = {As the world races to decarbonize power systems to mitigate climate change, the body of research analyzing paths to zero emissions electricity grids has substantially grown. Although studies typically include commercially available technologies, few of them consider offshore wind and wave energy as contenders in future zero-emissions grids. Here, we model with high geographic resolution both offshore wind and wave energy as independent technologies with the possibility of collocation in a power system capacity expansion model of the Western Interconnection with zero emissions by 2050. In this work, we identify cost targets for offshore wind and wave energy to become cost effective, calculate a 17\% reduction in total installed capacity by 2050 when offshore wind and wave energy are fully deployed, and show how curtailment, generation, and transmission change as offshore wind and wave energy deployment increase.}, + language = {en}, + number = {1}, + urldate = {2024-08-21}, + journal = {Nature Communications}, + publisher = {Nature Publishing Group}, + author = {Gonzalez, Natalia and Serna-Torre, Paul and Sánchez-Pérez, Pedro A. and Davidson, Ryan and Murray, Bryan and Staadecker, Martin and Szinai, Julia and Wei, Rachel and Kammen, Daniel M. and Sunter, Deborah A. and Hidalgo-Gonzalez, Patricia}, + month = aug, + year = {2024}, + keywords = {Energy modelling, Energy supply and demand, Hydroelectricity, Power distribution, Wind energy}, + pages = {6826}, +} + +@misc{noauthor_value_nodate, + title = {The {Value} of {Nuclear} {Microreactors} in {Providing} {Heat} and {Electricity} to {Alaskan} {Communities} -}, + url = {https://ceepr.mit.edu/workingpaper/the-value-of-nuclear-microreactors-in-providing-heat-and-electricity-to-alaskan-communities/}, + abstract = {We evaluated the system cost of providing electricity and heat to serve the load profiles of two types of Alaskan […]}, + language = {en-US}, + urldate = {2024-08-21}, + journal = {CEEPR}, +} + +@article{kagemoto_interactions_1986, + title = {Interactions among multiple three-dimensional bodies in water waves: an exact algebraic method}, + volume = {166}, + issn = {1469-7645, 0022-1120}, + shorttitle = {Interactions among multiple three-dimensional bodies in water waves}, + url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/interactions-among-multiple-threedimensional-bodies-in-water-waves-an-exact-algebraic-method/6A2EE66379F6149D11228E1A9D6F2BB3}, + doi = {10.1017/S0022112086000101}, + abstract = {We consider three-dimensional water-wave diffraction and radiation by a structure consisting of a number of separate (vertically) non-overlapping members in the context of linearized potential flow. An interaction theory is developed which solves the complete problem, predicting wave exciting forces, hydrodynamic coefficients and second-order drift forces, but is based algebraically on the diffraction characteristics of single members only. This method, which includes also the diffraction interaction of evanescent waves, is in principle exact (within the context of linearized theory) for otherwise arbitrary configurations and spacings. This is confirmed by a number of numerical examples and comparisons involving two or four axisymmetric legs, where full three-dimensional diffraction calculations for the entire structures are also performed using a hybrid element method. To demonstrate the efficacy of the interaction theory, we apply it finally to an array of 33 (3 by 11) composite cylindrical legs, where experimental data are available. The comparison with measurements shows reasonable agreement.The present method is valid for a large class of arrays of arbitrary individual geometries, number and configuration of bodies with non-intersecting vertical projections. Its application should make it unnecessary to perform full diffraction computations for many multiple-member structures and arrays.}, + language = {en}, + urldate = {2024-08-05}, + journal = {Journal of Fluid Mechanics}, + author = {Kagemoto, Hiroshi and Yue, Dick K. P.}, + month = may, + year = {1986}, + pages = {189--209}, +} + +@article{guo_geometric_2021, + title = {Geometric optimisation of wave energy conversion devices: {A} survey}, + volume = {297}, + issn = {0306-2619}, + shorttitle = {Geometric optimisation of wave energy conversion devices}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261921005456}, + doi = {10.1016/j.apenergy.2021.117100}, + abstract = {Unlike more established renewable energy conversion technologies, such as wind turbines, wave power systems have reached neither commercial maturity, nor technological convergence. The significant variation in device geometries and operating principles has resulted in a diversification of effort, with little coordination or true comparative analysis. The situation is compounded by the relative lack of systematic optimisation applied to the sector, partly explained by the complexity and uncertainty associated with wave energy system models, as well as difficulties in the evaluation of appropriate target function metrics. This review provides a critical overview of the state-of-the-art in wave energy device geometry optimisation, comparing and contrasting various optimisation approaches, and attempting to detail the current limitations preventing further progress, and convergence, in the development of optimal wave energy technology.}, + urldate = {2024-08-05}, + journal = {Applied Energy}, + author = {Guo, Bingyong and Ringwood, John V.}, + month = sep, + year = {2021}, + keywords = {Geometric optimisation, Hydrodynamic modelling, Optimal control, Optimisation algorithm, Optimisation criteria, Wave energy conversion}, + pages = {117100}, +} + +@article{hall_hydrodynamics-based_2014, + title = {Hydrodynamics-based floating wind turbine support platform optimization: {A} basis function approach}, + volume = {66}, + issn = {0960-1481}, + shorttitle = {Hydrodynamics-based floating wind turbine support platform optimization}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148114000068}, + doi = {10.1016/j.renene.2013.12.035}, + abstract = {The floating wind turbine support structure design problem is complicated by conflicting technical objectives and innumerable platform geometry options. Previous support structure optimization studies have been limited in their ability to evaluate the full design space due to their adherence to certain assumptions about the physical platform configuration. The present work is an effort toward developing an alternative form of the support platform optimization problem – one that abstracts details of the platform geometry and deals instead with hydrodynamic performance coefficients – in order to provide a more complete and intuitive exploration of the design space. A basis function approach, which represents the design space by linearly combining the hydrodynamic performance coefficients of a diverse set of basis platform geometries, was taken as the most straightforward way of physically constraining the platform hydrodynamic performance. Candidate designs are evaluated in the frequency domain using linearized coefficients for the wind turbine, platform, and mooring system dynamics. The platform hydrodynamic coefficients are calculated according to linear hydrodynamic theory. The optimization objective is to minimize the nacelle acceleration under several operating conditions. Optimization results for a slack catenary mooring system indicate the benefits of combining submerged volume with a widely dispersed water plane area. Results for a tension leg mooring system are consistent with conventional TLP designs. The intent is to use these results as starting points for more traditional platform parameter optimization. Examination of the possible physical interpretations of linearly combining basis platform coefficients reveals that certain aspects of this approach may have poor physicality. This points to the need to expand this first attempt with more sophisticated ways of representing the constrained hydrodynamic performance variables.}, + urldate = {2024-08-05}, + journal = {Renewable Energy}, + author = {Hall, Matthew and Buckham, Brad and Crawford, Curran}, + month = jun, + year = {2014}, + keywords = {Floating, Hydrodynamics, Offshore, Optimization, Support structure, Wind turbine}, + pages = {559--569}, +} + +@phdthesis{rijlaarsdam_frequency_2012, + title = {Frequency domain based performance optimization of systems with static nonlinearities}, + url = {https://research.tue.nl/en/publications/frequency-domain-based-performance-optimization-of-systems-with-s}, + urldate = {2024-08-05}, + school = {Eindhoven University of Technology}, + author = {Rijlaarsdam, D. J.}, + year = {2012}, +} + +@misc{noauthor_devices_nodate, + title = {Devices}, + url = {https://openei.org/wiki/PRIMRE/Databases/Projects_Database/Devices}, + urldate = {2024-07-26}, +} + +@misc{noauthor_methods_2016, + title = {Methods to determine pore pressure}, + url = {https://petrowiki.spe.org/Methods_to_determine_pore_pressure}, + language = {en}, + urldate = {2024-07-26}, + journal = {PetroWiki}, + month = jan, + year = {2016}, +} + +@misc{noauthor_using_2018, + title = {Using an offshore platform beyond its expected lifespan {\textbar} {Engineer} {Live}}, + url = {https://www.engineerlive.com/node/17311}, + abstract = {When it comes to asset life extension, oil producers have discovered that a risk-based inspection approach can cut costs if it’s implemented properly. Now, says Anne-Marie Walters, it’s a matter of increasing the adoption rate}, + urldate = {2024-07-26}, + month = aug, + year = {2018}, +} + +@misc{noauthor_technology_nodate, + title = {Technology}, + url = {https://capturacorp.com/technology/}, + language = {en-US}, + urldate = {2024-07-26}, + journal = {Captura}, +} + +@article{norton_storage_2024, + title = {Storage capacity estimates and site conditions of potential locations for offshore-wind powered carbon dioxide removal and carbon sequestration in ocean basalt}, + volume = {13}, + issn = {2772-6568}, + url = {https://www.sciencedirect.com/science/article/pii/S2772656824000435}, + doi = {10.1016/j.ccst.2024.100231}, + abstract = {Negative emission technologies (NETs) are considered essential to keep global warming below 2 °C. Situating wind-powered carbon dioxide removal (CDR) devices offshore and injecting carbon dioxide (CO2) into deep-water sub-seafloor basalt aquifers has the potential to offer large CO2 removal capacity. It also avoids land and water-use competition and provides additional low-risk protections against post-injection leakage compared to terrestrial CO2 storage. This paper seeks to identify locations where offshore wind and potential basalt storage locations exist within close proximity to one another around the globe. A global mean wind power density map at 150 m height was computed using 30 years (1986–2016) of ERA5 hourly wind speed reanalysis data. Offshore regions with mean wind speed greater than 8 m/s were identified. Offshore regions with basalt aquifers along seismic or aseismic ridges which provide potential CO2 storage sites were identified and selected based on sediment thickness, age, and distance from plate boundaries. Four scenarios were constructed to capture a range of constraints with implications for technical, economic and regulatory difficulties. For each scenario, eligible regions for CO2 injection were filled by regularly spaced grid points and the distance to the nearest eligible wind resource was calculated for each point to identify the most promising configurations. Total available storage capacity within reach of wind resources was estimated to be between 4,300Gt and 196,000Gt depending on both uncertainties in porosity and other imposed constraints; even the most conservative estimates represent enormous capacity compared to global targets for negative emissions technologies. Typically, the best areas were found close to the poles due to the greater prevalence of good wind resources in those areas. Site-specific properties such as water depth and distance from shore are computed for the identified locations in order to characterize the conditions in which such locations are typically found.}, + urldate = {2024-07-24}, + journal = {Carbon Capture Science \& Technology}, + author = {Norton, Heather and Todd, Devin and Crawford, Curran}, + month = dec, + year = {2024}, + keywords = {Basalt, Carbon capture and storage (CCS), Carbon dioxide removal (CDR), Negative emissions technology (NET), Offshore wind}, + pages = {100231}, +} + +@article{norton_techno-economic_2024, + title = {Techno-economic assessment of supercritical, cold liquid, and dissolved {CO2} injection into sub-seafloor basalt}, + volume = {13}, + issn = {2772-6568}, + url = {https://www.sciencedirect.com/science/article/pii/S2772656824000484}, + doi = {10.1016/j.ccst.2024.100236}, + abstract = {Injecting CO2 into subsea basalt can provide permanent storage via multiple trapping mechanisms, including mineralization reactions which convert the CO2 into solid carbonates over time. Injecting CO2 together with water can accelerate the process of mineralization, but presents additional challenges, such as high energy and water requirements. A techno-economic model of CO2 transport and injection into ocean basalt was developed to compare injection strategies using pure supercritical CO2, pure liquid CO2, and CO2 dissolved in seawater. The model was applied to a representative injection site off the coast of British Columbia, Canada. Injection of CO2 dissolved into seawater was found to be more energy and cost intensive than injection of supercritical or liquid CO2; this is primarily due to the reduced quantities of CO2 that can be injected into each well, and additional pumping energy required for the accompanying seawater. For the base assumptions, transport and storage costs for supercritical, liquid, and dissolved injection were estimated as \$43/t, \$38/t, and \$250/t respectively. Their energy requirements were estimated as 93 kWh/t, 90 kWh/t, and 213 kWh/t respectively. The current best estimates of geological parameters for ocean basalt suggest good injectivity and very large storage capacities per well. This may help to compensate for the additional project expenses incurred by deep water, allowing cost-effective liquid and supercritical injection. However, this result is sensitive to high uncertainties in both geological parameters and component cost data.}, + urldate = {2024-07-24}, + journal = {Carbon Capture Science \& Technology}, + author = {Norton, Heather and Gillessen, Philipp and Crawford, Curran}, + month = dec, + year = {2024}, + keywords = {Basalt, Carbon capture and storage (CCS), Carbon dioxide removal (CDR), Offshore, Techno-economic analysis (TEA)}, + pages = {100236}, +} + +@article{levine_gravitational_2007, + title = {Gravitational trapping of carbon dioxide in deep sea sediments: {Permeability}, buoyancy, and geomechanical analysis}, + volume = {34}, + issn = {1944-8007}, + shorttitle = {Gravitational trapping of carbon dioxide in deep sea sediments}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2007GL031560}, + doi = {10.1029/2007GL031560}, + abstract = {Liquid carbon dioxide injected in deep-sea sediments at km depths and near freezing temperatures is denser than surrounding pore water and will be trapped by gravitational forces. Storage capacity for CO2 in such formations below the ocean floor is shown to vary with seafloor depth, geothermal gradient, porosity, and pore water salinity. The formation permeability, or the successful engineering of such permeability through hydraulic fracturing, will determine the capacity for gravitational trapping in deep-sea geological formations. We conclude that most ocean sediments at appropriate depth will lack the required permeability and that conventional hydraulic fracturing would only be possible in carefully selected sites.}, + language = {en}, + number = {24}, + urldate = {2024-07-24}, + journal = {Geophysical Research Letters}, + author = {Levine, J. S. and Matter, J. M. and Goldberg, D. and Cook, A. and Lackner, K. S.}, + year = {2007}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2007GL031560}, + keywords = {CO2, separations}, +} + +@phdthesis{rijlaarsdam_frequency_2012-1, + address = {Eindhoven}, + type = {Phd {Thesis} 1 ({Research} {TU}/e / {Graduation} {TU}/e)}, + title = {Frequency domain based performance optimization of systems with static nonlinearities}, + isbn = {978-90-386-3149-3}, + doi = {10.6100/IR732581}, + school = {Technische Universiteit Eindhoven}, + author = {Rijlaarsdam, D.J.}, + year = {2012}, +} + +@article{roberts_conjugate-image_1946, + title = {Conjugate-{Image} {Impedances}}, + volume = {34}, + issn = {2162-6634}, + url = {https://ieeexplore.ieee.org/abstract/document/1697051}, + doi = {10.1109/JRPROC.1946.234242}, + abstract = {A load having the conjugate impedance of the signal generator to which it is connected receives the maximum amount of power and is said to be matched on the conjugate-image basis. This method of impedance matching, when applied to active and passive four-terminal networks, is shown to be especially suitable for determining the limits of power amplification or loss. In contrast, an analysis on the usual image basis gives these results only if the image impedances happen to be pure resistances. The maximum power gain of a given network and the impedance terminations for achieving it are derived and are expressed in-concise form. The effects of impedance mismatching are likewise treated.}, + number = {4}, + urldate = {2024-06-21}, + journal = {Proceedings of the IRE}, + author = {Roberts, S.}, + month = apr, + year = {1946}, + keywords = {Circuits, Communication cables, Image analysis, Impedance, Laboratories, Power generation, Research and development, Signal generators, Telephony, Transformers}, + pages = {198p--204p}, +} + +@article{quartier_influence_2021, + title = {Influence of the {Drag} {Force} on the {Average} {Absorbed} {Power} of {Heaving} {Wave} {Energy} {Converters} {Using} {Smoothed} {Particle} {Hydrodynamics}}, + volume = {13}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2073-4441}, + url = {https://www.mdpi.com/2073-4441/13/3/384}, + doi = {10.3390/w13030384}, + abstract = {In this paper, we investigated how the added mass, the hydrodynamic damping and the drag coefficient of a Wave Energy Converter (WEC) can be calculated using DualSPHysics. DualSPHysics is a software application that applies the Smoothed Particle Hydrodynamics (SPH) method, a Lagrangian meshless method used in a growing range of applications within the field of Computational Fluid Dynamics (CFD). Furthermore, the effect of the drag force on the WEC’s motion and average absorbed power is analyzed. Particularly under controlled conditions and in the resonance region, the drag force becomes significant and can greatly reduce the average absorbed power of a heaving point absorber. Once the drag coefficient has been determined, it is used in a modified equation of motion in the frequency domain, taking into account the effect of the drag force. Three different methods were compared for the calculation of the average absorbed power: linear potential flow theory, linear potential flow theory modified to take the drag force into account and DualSPHysics. This comparison showed the considerable effect of the drag force in the resonance region. Calculations of the drag coefficient were carried out for three point absorber WECs: one spherical WEC and two cylindrical WECs. Simulations in regular waves were performed for one cylindrical WEC with two different power take-off (PTO) systems: a linear damping and a Coulomb damping PTO system. The Coulomb damping PTO system was added in the numerical coupling between DualSPHysics and Project Chrono. Furthermore, we considered the optimal PTO system damping coefficient taking the effect of the drag force into account.}, + language = {en}, + number = {3}, + urldate = {2024-06-25}, + journal = {Water}, + author = {Quartier, Nicolas and Ropero-Giralda, Pablo and M. Domínguez, José and Stratigaki, Vasiliki and Troch, Peter}, + month = jan, + year = {2021}, + keywords = {DualSPHysics, SPH, WEC, drag force, multiphysics, numerical coupling, power take-off (PTO) system}, + pages = {384}, +} + +@article{coe_useful_2023, + title = {Useful {Power} {Maximization} for {Wave} {Energy} {Converters}}, + volume = {16}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/16/1/529}, + doi = {10.3390/en16010529}, + abstract = {Wave energy converters (WECs) have enormous potential in providing clean renewable energy with high levels of predictability [...]}, + language = {en}, + number = {1}, + urldate = {2024-02-11}, + journal = {Energies}, + author = {Coe, Ryan G. and Bacelli, Giorgio}, + month = jan, + year = {2023}, + keywords = {n/a}, + pages = {529}, +} + +@article{merigaud_geometrical_2023, + title = {Geometrical {Framework} for {Hydrodynamics} and {Control} of {Wave} {Energy} {Converters}}, + volume = {2}, + url = {https://link.aps.org/doi/10.1103/PRXEnergy.2.023003}, + doi = {10.1103/PRXEnergy.2.023003}, + abstract = {This article presents a simple geometrical approach to visualize the hydrodynamic properties of wave energy converters (WECs), in terms of wave reflection, transmission, and absorption, and how those properties are governed by the WEC control parameters. The problem is modeled as an array of periodic rows of WECs parallel to the wave front, which is representative of WEC farms located along the shoreline, and allows for a straightforward two-dimensional analysis of energy fluxes. The WECs are assumed to be symmetric with respect to the plane perpendicular to the wave propagation direction, and they operate in a single degree of freedom. Under those assumptions, fundamental hydrodynamic relationships allow the WEC operation at a given frequency to be mapped to a single complex number, {\textasciicircum}T, which represents the WEC (complex) transmission coefficient, located in a circle with center 1/2 and radius 1/2. The WEC hydrodynamic and control parameters (added mass, stiffness, damping) govern the precise location of {\textasciicircum}T within the circle. The distance of {\textasciicircum}T to the center of the circle determines the hydrodynamic efficiency, between 0 (when {\textasciicircum}T is on the circle border) and 1/2 (which is achieved when {\textasciicircum}T is at the center of the circle). Therefore, the representation of {\textasciicircum}T provides an immediate insight into the balance between reflection, transmission, and absorption. The proposed unified representation reflects, in a didactic way, some fundamental wave energy concepts, common to all WECs, such as the Haskind relationship, or the impedance matching condition for optimal wave power absorption. Two numerical examples illustrate how the locus of {\textasciicircum}T, across a prescribed frequency range, provides a distinctive “signature” specific to the WEC geometry, mode of operation, and control strategy. Finally, the proposed representation shows many similarities to the Smith chart and, as such, is but one additional analogy between wave energy conversion and electrical engineering.}, + number = {2}, + urldate = {2024-02-07}, + journal = {PRX Energy}, + author = {Mérigaud, Alexis and Thiria, Benjamin and Godoy-Diana, Ramiro}, + month = may, + year = {2023}, + pages = {023003}, +} + +@article{tedeschi_effect_2011, + title = {Effect of {Control} {Strategies} and {Power} {Take}-{Off} {Efficiency} on the {Power} {Capture} {From} {Sea} {Waves}}, + volume = {26}, + issn = {1558-0059}, + url = {https://ieeexplore.ieee.org/abstract/document/6026916}, + doi = {10.1109/TEC.2011.2164798}, + abstract = {The choice of the most suitable control strategy for wave energy converters (WECs) is often evaluated with reference to the sinusoidal assumption for incident waves. Under this hypothesis, linear techniques for the control of the extracted power, as passive loading and optimum control, are well known and widely analyzed. It can be shown, however, how their performances are fundamentally different when irregular waves are considered and the theoretical superiority of optimum control is questionable under real wave conditions. Moreover, the global optimization of WECs implies a rational design of the power electronics equipment. This requires the analysis of the instantaneous extracted power in addition to the average one. In this paper, the impact of irregular waves on the power extraction when using different control techniques is analyzed in the case of a point absorber in heave. It is also shown how a convenient tradeoff between high average power extraction and limited power electronics overrating can be obtained by applying simple power saturation techniques. Moreover, the impact of power conversion efficiency on the control strategy is analyzed.}, + number = {4}, + urldate = {2024-01-29}, + journal = {IEEE Transactions on Energy Conversion}, + author = {Tedeschi, Elisabetta and Carraro, Matteo and Molinas, Marta and Mattavelli, Paolo}, + month = dec, + year = {2011}, + keywords = {Analytical models, Control strategies, Hydrodynamics, Load modeling, Mathematical model, Power electronics, Time domain analysis, Wave energy, irregular waves, power take-off (PTO), wave energy}, + pages = {1088--1098}, +} + +@article{strofer_control_2023, + title = {Control {Co}-{Design} of {Power} {Take}-{Off} {Systems} for {Wave} {Energy} {Converters} {Using} {WecOptTool}}, + volume = {14}, + issn = {1949-3037}, + url = {https://ieeexplore.ieee.org/document/10114969}, + doi = {10.1109/TSTE.2023.3272868}, + abstract = {Improved power take-off (PTO) controller design for wave energy converters is considered a critical component for reducing the cost of energy production. However, the device and control design process often remains sequential, with the space of possible final designs largely reduced before the controller has been considered. Control co-design, whereby the device and control design are considered concurrently, has resulted in improved designs in many industries, but remains rare in the wave energy community. In this paper we demonstrate the use of a new open-source code, WecOptTool, for control co-design of wave energy converters, with the aim to make the co-design approach more accessible and accelerate its adoption. Additionally, we highlight the importance of designing a wave energy converter to maximize electrical power, rather than mechanical power, and demonstrate the co-design process while modeling the PTO's components (i.e., drive-train and generator, and their dynamics). We also consider the design and optimization of causal fixed-structure controllers. The demonstration presented here considers the PTO design problem and finds the optimal PTO drive-train that maximizes annual electrical power production. The results show a 22\% improvement in the optimal controller and drive-train co-design over the optimal controller for the nominal, as built, device design.}, + number = {4}, + urldate = {2024-01-29}, + journal = {IEEE Transactions on Sustainable Energy}, + author = {Ströfer, Carlos A. Michelén and Gaebele, Daniel T. and Coe, Ryan G. and Bacelli, Giorgio}, + month = oct, + year = {2023}, + keywords = {Control design, Mathematical models, Optimal control, Optimization, Software tools, Wave energy conversion, Wave energy converter (WEC), co-design, optimal control, optimization, power take-off (PTO)}, + pages = {2157--2167}, +} + +@article{otoshi_maximum_1994, + title = {Maximum and minimum return losses from a passive two-port network terminated with a mismatched load}, + volume = {42}, + issn = {1557-9670}, + url = {https://ieeexplore-ieee-org.proxy.library.cornell.edu/document/293526}, + doi = {10.1109/22.293526}, + abstract = {An analytical expression is derived for determining load-reflection coefficient phase-angle values that will lead to maximum and minimum return losses from a terminated two-port network. The expression is derived in terms of two-port network S-parameters and a load whose reflection-coefficient magnitude is a constant but can be any value greater than zero and less than or equal to unity. The equation is useful for cases where it is desirable to know how to position a load (1) to obtain maximum return loss for network-matching purposes or (2) to obtain minimum return loss for some types of reflector antenna applications. Two examples are given: One shows that for some types of reflector antennas with a mesh-type surface that is backed by another reflecting surface, a resonance phenomenon can occur and cause unexpectedly large dissipative losses ({\textgreater}30 dB) to occur. The other example shows that when a particular type of reflector antenna with a dielectric layer becomes wet from rain or condensation, large ({\textgreater}10 dB) signal losses can occur. For both examples, equations presented in this article were used to calculate the exact load-reflection coefficient phase values that led to worst-case return loss values. In practical situations, once the phenomenon is understood and predictable, steps can be taken to avoid these resonance regions.{\textless}{\textgreater}}, + number = {5}, + urldate = {2024-06-21}, + journal = {IEEE Transactions on Microwave Theory and Techniques}, + author = {Otoshi, T.Y.}, + month = may, + year = {1994}, + keywords = {Dielectric losses, Equations, Impedance, Loaded antennas, Measurement techniques, Rain, Reflection, Reflector antennas, Resonance, Scattering parameters}, + pages = {787--792}, +} + +@article{zou_practical_2023-1, + title = {Practical power absorption assessment limits for generic wave energy converters}, + volume = {277}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S002980182300687X}, + doi = {10.1016/j.oceaneng.2023.114303}, + abstract = {There lacks a generic representation of the wave power absorption of devices across dimensions, shapes, and resource conditions. A conventional resource assessment approach only evaluates the wave power based on wave characteristics, which is insufficient to capture the practical power absorption variations between WEC archetypes. In this paper, a novel WEC net power assessment (WNPA) method is proposed and is generally applicable to any arbitrary WECs design. Two theoretical upper bounds of wave power absorption are adopted and derived for different types of WECs. Numerical simulations are conducted to apply this novel technique to assess the net power available to different WECs at the Wave Energy Test Site (WETS), Hawaii and the PacWave site, Oregon over 11 years. By comparing the power potential for WECs oscillating in different degrees of freedom, the results indicate the surging mode may be the most energetic; regardless of shapes and ocean sites. When applied to three generic WECs (point absorber, terminator, and attenuator), the pitching terminator is shown to have lower absorption potential. Finally, the mean annual energy production (MAEP) of the three generic WECs at WETS and PacWave are compared, and a surging attenuator shows a significant wave power potential at PacWave.}, + urldate = {2024-07-06}, + journal = {Ocean Engineering}, + author = {Zou, Shangyan and Robertson, Bryson and Yim, Solomon}, + month = jun, + year = {2023}, + keywords = {Budal’s limit, Maximum wave power absorption, Net power assessment, Wave energy conversion, Wave resources assessment}, + pages = {114303}, +} + +@article{abdulkadir_optimal_2024, + title = {Optimal {Constrained} {Control} of {Arrays} of {Wave} {Energy} {Converters}}, + volume = {12}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2077-1312}, + url = {https://www.mdpi.com/2077-1312/12/1/104}, + doi = {10.3390/jmse12010104}, + abstract = {Wave Energy Converters (WECs) are designed to be deployed in arrays, usually in a limited space, to minimize the cost of installation, mooring, and maintenance. Control methods that attempt to maximize the harvested power often lead to power flow from the WEC to the ocean, at times, to maximize the overall harvested power from the ocean over a longer period. The Power Take-Off (PTO) units that can provide power to the ocean (reactive power) are usually more expensive and complex. In this work, an optimal control formulation is presented using Pontryagin’s minimum principle that aims to maximize the harvested energy subject to constraints on the maximum PTO force and power flow direction. An analytical formulation is presented for the optimal control of an array of WECs, assuming irregular wave input. Three variations of the developed control are tested: a formulation without power constraints, a formulation that only allows for positive power, and finally, a formulation that allows for finite reactive power. The control is compared with optimally tuned damping and bang–bang control.}, + language = {en}, + number = {1}, + urldate = {2024-06-27}, + journal = {Journal of Marine Science and Engineering}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Abdulkadir, Habeebullah and Abdelkhalik, Ossama}, + month = jan, + year = {2024}, + note = {Number: 1}, + keywords = {Pontryagin’s minimum principle, constrained control, optimal control, reactive power, wave energy converter}, + pages = {104}, +} + +@article{zhou_assessment_2022, + title = {Assessment of {Electrical} {Power} {Generation} of {Wave} {Energy} {Converters} {With} {Wave}-to-{Wire} {Modeling}}, + volume = {13}, + issn = {1949-3037}, + url = {https://ieeexplore.ieee.org/abstract/document/9760017}, + doi = {10.1109/TSTE.2022.3168040}, + abstract = {Direct-drive wave energy converter (WEC) and buoy control algorithms have shown great potential for renewable wave energy extraction in ideal conditions. However the actual power take-off (PTO) impacts are barely considered in the WEC design. This paper highlights the demands of designing the WEC wave-to-wire control from a global point of view by studying the actual PTO impacts. A permanent magnet linear electrical machine (LEM) PTO unit is simulated and controlled to fulfill the WEC buoy control requirements. Several state of the art control algorithms, which include singular-arc (SA) control, shape-based (SB) control, model predictive control (MPC), and proportional-derivative (PD) control, are applied to maximize the wave energy production (mechanical energy). Multiple types of electrical PTOs, including ideal PTO, unlimited PTO and limited PTO, are all implemented to evaluate WEC wave-to-wire performances. Further, the PTO copper loss model and the PTO actual efficiency maps are introduced and studied to improve the electrical PTO operation efficiency. To further assess the control schemes in various wave conditions, one-year PacWave ground-truth data is applied as well. Numerical simulations are conducted using MATLAB/Simulink and the Simscape toolbox. The electrical PTO unit is composed of a LEM, an ideal inverter, and an ideal energy storage system. The results show that the actual PTO will impact the constrained controls (MPC and SB) less comapring to unconstrained controls (SA and PD). Although SB can produce the maximum energy with the limited PTOs, it is not robust for all wave conditions. At the end of the paper, the possible solutions for improving the WEC wave-to-wire performances are also provided.}, + number = {3}, + urldate = {2024-06-27}, + journal = {IEEE Transactions on Sustainable Energy}, + author = {Zhou, Xiang and Zou, Shangyan and Weaver, Wayne W. and Abdelkhalik, Ossama}, + month = jul, + year = {2022}, + note = {Conference Name: IEEE Transactions on Sustainable Energy}, + keywords = {Computational modeling, Copper, Force, Integrated circuit modeling, Mathematical models, Model predictive control, PD, PD control, Performance evaluation, WEC, power take-off, shape-based control, singular arc, wave energy}, + pages = {1654--1665}, +} + +@article{abdulkadir_power_2022, + series = {14th {IFAC} {Conference} on {Control} {Applications} in {Marine} {Systems}, {Robotics}, and {Vehicles} {CAMS} 2022}, + title = {Power {Constrained} {Optimal} {Control} of {Wave} {Energy} {Converters}}, + volume = {55}, + issn = {2405-8963}, + url = {https://www.sciencedirect.com/science/article/pii/S2405896322025101}, + doi = {10.1016/j.ifacol.2022.10.464}, + abstract = {The general goal of control methods developed for Wave Energy Converter (WEC) technologies is to improve the amount of energy captured by the WEC from the wave. However, most WEC control methods require some power to be supplied from the grid (reactive power) to drive the floater towards resonance at intervals to improve the device's overall performance. Such controls’ reactive power and motion requirements sometimes become large and unrealistic. Additionally, a power take-off (PTO) unit capable of fulfilling a sizeable reactive power requirement will be expensive and complex, if not impossible. In this work, an optimal control formulation that aims to maximize the harvested energy while constraining the reactive power not to exceed a realistic threshold is derived using Pontryagin Minimum Principle. The optimal control formulation is derived for a single WEC device with irregular excitation. Low fidelity numerical simulations are presented comparing the proposed power-constrained Bang Singular Bang (PCBSB) control to an Optimal Resistive Loading (ORL) control.}, + number = {31}, + urldate = {2024-06-27}, + journal = {IFAC-PapersOnLine}, + author = {Abdulkadir, Habeebullah and Abdelkhalik, Ossama}, + month = jan, + year = {2022}, + keywords = {Optimal control, Pontryagin Minimum principle, Reactive power, Wave energy converter, power constraint}, + pages = {421--426}, +} + +@article{wilson_extending_2020, + title = {Extending {Complex} {Conjugate} {Control} to {Nonlinear} {Wave} {Energy} {Converters}}, + volume = {8}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2077-1312}, + url = {https://www.mdpi.com/2077-1312/8/2/84}, + doi = {10.3390/jmse8020084}, + abstract = {This paper extends the concept of Complex Conjugate Control (CCC) of linear wave energy converters (WECs) to nonlinear WECs by designing optimal limit cycles with Hamiltonian Surface Shaping and Power Flow Control (HSSPFC). It will be shown that CCC for a regular wave is equivalent to a power factor of one in electrical power networks, equivalent to mechanical resonance in a mass-spring-damper (MSD) system, and equivalent to a linear limit cycle constrained to a Hamiltonian surface defined in HSSPFC. Specifically, the optimal linear limit cycle is defined as a second-order center in the phase plane projection of the constant energy orbit across the Hamiltonian surface. This concept of CCC described by a linear limit cycle constrained to a Hamiltonian surface will be extended to nonlinear limit cycles constrained to a Hamiltonian surface for maximum energy harvesting by the nonlinear WEC. The case studies presented confirm increased energy harvesting which utilizes nonlinear geometry realization for reactive power generation.}, + language = {en}, + number = {2}, + urldate = {2024-06-27}, + journal = {Journal of Marine Science and Engineering}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Wilson, David G. and Robinett, Rush D. and Bacelli, Giorgio and Abdelkhalik, Ossama and Coe, Ryan G.}, + month = feb, + year = {2020}, + note = {Number: 2}, + keywords = {complex conjugate control, nonlinear control, wave energy converter}, + pages = {84}, +} + +@article{abdelkhalik_optimization_2018, + title = {Optimization of nonlinear wave energy converters}, + volume = {162}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801818307881}, + doi = {10.1016/j.oceaneng.2018.05.023}, + abstract = {This paper presents an optimization approach for the nonlinear control of wave energy converters (WECs). The proposed optimization method also presents the option of optimizing the system nonlinearities, such as those due to the buoy shape, such that the harvested energy is maximized. For the sake of control design, the control force and the system optimizable nonlinear force, each is expressed as a truncated power series function of the system states. The power series coefficients in both the control and system forces are optimized. A hidden genes genetic algorithm is used for optimization. The optimized system's nonlinear force is assumed to drive the design of the WEC. The numerical test cases presented in this paper show that it is possible to attain multiple fold higher harvested energy when using nonlinear control optimization. The advantage of being able to optimize the WEC design simultaneously with the control is the potential of harvesting this multiple fold higher energy without causing large WEC motion and with less dependence on reactive power. While this paper focuses on the optimization part of the problem, the implementation of the obtained control in realtime is discussed at the end of the paper.}, + urldate = {2024-06-27}, + journal = {Ocean Engineering}, + author = {Abdelkhalik, Ossama and Darani, Shadi}, + month = aug, + year = {2018}, + keywords = {Nonlinear control optimization, Nonlinear wave energy conversion, WEC, Wave energy conversion}, + pages = {187--195}, +} + +@incollection{alessio_survey_2009, + address = {Berlin, Heidelberg}, + title = {A {Survey} on {Explicit} {Model} {Predictive} {Control}}, + isbn = {978-3-642-01094-1}, + url = {https://doi.org/10.1007/978-3-642-01094-1_29}, + doi = {10.1007/978-3-642-01094-1_29}, + abstract = {Explicit model predictive control (MPC) addresses the problem of removing one of the main drawbacks of MPC, namely the need to solve a mathematical program on line to compute the control action. This computation prevents the application of MPC in several contexts, either because the computer technology needed to solve the optimization problem within the sampling time is too expensive or simply infeasible, or because the computer code implementing the numerical solver causes software certification concerns,especially in safety critical applications.}, + language = {en}, + urldate = {2024-06-26}, + booktitle = {Nonlinear {Model} {Predictive} {Control}: {Towards} {New} {Challenging} {Applications}}, + publisher = {Springer}, + author = {Alessio, Alessandro and Bemporad, Alberto}, + editor = {Magni, Lalo and Raimondo, Davide Martino and Allgöwer, Frank}, + year = {2009}, + keywords = {Model predictive control, explicit solutions, hybrid systems, min-max control, multiparametric programming, piecewise affine controllers}, + pages = {345--369}, +} + +@inproceedings{soroush_plants_2007, + title = {Plants for {Which} {Model} {Predictive} {Control} {Admits} an {Analytical} {Solution}}, + issn = {2378-5861}, + url = {https://ieeexplore.ieee.org/document/4282843}, + doi = {10.1109/ACC.2007.4282843}, + abstract = {Model predictive control (MPC) provides an optimal control sequence that is the solution to a moving horizon, constrained optimization problem. This problem is usually solved numerically on-line. A question that often process control engineers face is for what class of plants, MPC admits an analytical solution, in which case the optimal control sequence takes significantly less time to calculate. This paper presents an answer to this question. A class of nonlinear and linear plants for which MPC admits an analytical solution, is characterized. It is shown that for plants without directionality, constrained MPC can be identical to unconstrained MPC with saturation. Structural information on the characteristic (decoupling) matrix of a plant is often adequate for the characterization. Two input-constrained plant examples are considered. On the basis of structural information on the characteristic (decoupling) matrices of the two plants, the plan(s) for which constrained MPC admits an analytical solution is (are) specified. Simulated closed-loop responses are then presented to validate the characterization numerically.}, + urldate = {2024-06-26}, + booktitle = {2007 {American} {Control} {Conference}}, + author = {Soroush, Masoud}, + month = jul, + year = {2007}, + keywords = {Biological system modeling, Constraint optimization, Control systems, Linear feedback control systems, Optimal control, PD control, Predictive control, Predictive models, Proportional control, Windup}, + pages = {3745--3750}, +} + +@inproceedings{soroush_analytical_2000, + address = {Basel}, + title = {Analytical {Model} {Predictive} {Control}}, + isbn = {978-3-0348-8407-5}, + doi = {10.1007/978-3-0348-8407-5_9}, + abstract = {This presentation deals with the model predictive controllers that admit an analytical solution. In particular, short horizon and long(infinite) horizon controllers are considered. A general model predictive control(MPC) law is formulated, and it is then shown that in special cases the MPC law leads to the following:input-output linearizing control laws that inherently include optimal windup and directionality compensatorsmodel state feedback control and modified internal model control laws that inherently include an optimal directionality compensatorproportional—integral(PI)and proportional—integral—derivative(PID)controllers that inherently include optimal windup and directionality compensators}, + language = {en}, + booktitle = {Nonlinear {Model} {Predictive} {Control}}, + publisher = {Birkhäuser}, + author = {Soroush, Masoud and Muske, Kenneth R.}, + editor = {Allgöwer, Frank and Zheng, Alex}, + year = {2000}, + keywords = {Internal Model, Internal Model Control, Linear Quadratic Regulator, Model Predictive Control, Prediction Horizon}, + pages = {163--179}, +} + +@inproceedings{seron_global_2000, + title = {Global analytical model predictive control with input constraints}, + volume = {1}, + issn = {0191-2216}, + url = {https://ieeexplore.ieee.org/document/912749}, + doi = {10.1109/CDC.2000.912749}, + abstract = {We derive a closed-form global analytical solution for model predictive control (MPC) of linear, discrete-time systems, subject to a quadratic performance index and hard magnitude constraints at the system input. The solution is shown to be a partition of the state space in regions for which an analytic expression is given for the corresponding control law. Both the regions and the control law are characterised in terms of the parameters of the open-loop optimal control problem that underlies MPC. The result exploits the geometric properties of quadratic programming.}, + urldate = {2024-06-26}, + booktitle = {Proceedings of the 39th {IEEE} {Conference} on {Decision} and {Control} ({Cat}. {No}.{00CH37187})}, + author = {Seron, M.M. and De Dona, J.A. and Goodwin, G.C.}, + month = dec, + year = {2000}, + keywords = {Analytical models, Closed-form solution, Constraint optimization, Open loop systems, Optimal control, Performance analysis, Predictive control, Predictive models, Sampling methods, State-space methods}, + pages = {154--159 vol.1}, +} + +@inproceedings{seron_global_2000-1, + title = {Global {Analytical} {Model} {Predictive} {Control} with {Input} {Constraints}}, + volume = {1}, + isbn = {978-0-7803-6638-1}, + doi = {10.1109/CDC.2000.912749}, + abstract = {We derive a closed-form global analytical solution for model predictive control (MPC) of linear, discrete-time systems, subject to a quadratic performance index and hard magnitude constraints at the system input. The solution is shown to be a partition of the state space in regions for which an analytic expression is given for the corresponding control law. Both the regions and the control law are characterised in terms of the parameters of the open-loop optimal control problem that underlies MPC. The result exploits the geometric properties of quadratic programming}, + author = {Seron, M.M. and Dona, José and Goodwin, Graham}, + month = feb, + year = {2000}, + pages = {154--159 vol.1}, +} + +@article{ringwood_empowering_2023, + title = {Empowering wave energy with control technology: {Possibilities} and pitfalls}, + volume = {55}, + issn = {1367-5788}, + shorttitle = {Empowering wave energy with control technology}, + url = {https://www.sciencedirect.com/science/article/pii/S1367578823000226}, + doi = {10.1016/j.arcontrol.2023.04.004}, + abstract = {With an increasing focus on climate action and energy security, an appropriate mix of renewable energy technologies is imperative. Despite having considerable global potential, wave energy has still not reached a state of maturity or economic competitiveness to have made an impact. Challenges include the high capital and operational costs associated with deployment in the harsh ocean environment, so it is imperative that the full energy harnessing capacity of wave energy devices, and arrays of devices in farms, is realised. To this end, control technology has an important role to play in maximising power capture, while ensuring that physical system constraints are respected, and control actions do not adversely affect device lifetime. Within the gamut of control technology, a variety of tools can be brought to bear on the wave energy control problem, including various control strategies (optimal, robust, nonlinear, etc.), data-based model identification, estimation, and forecasting. However, the wave energy problem displays a number of unique features which challenge the traditional application of these techniques, while also presenting a number of control ‘paradoxes’. This review articulates the important control-related characteristics of the wave energy control problem, provides a survey of currently applied control and control-related techniques, and gives some perspectives on the outstanding challenges and future possibilities. The emerging area of control co-design, which is especially relevant to the relatively immature area of wave energy system design, is also covered.}, + urldate = {2024-06-23}, + journal = {Annual Reviews in Control}, + author = {Ringwood, John V. and Zhan, Siyuan and Faedo, Nicolás}, + month = jan, + year = {2023}, + keywords = {Control system design, Estimation, Forecasting, Wave energy control, Wave energy conversion}, + pages = {18--44}, +} + +@misc{noauthor_history_2019, + title = {History of {Broadband} {Impedance} {Matching}}, + url = {https://ethw.org/History_of_Broadband_Impedance_Matching}, + language = {en}, + urldate = {2024-06-21}, + journal = {ETHW}, + month = jan, + year = {2019}, +} + +@misc{noauthor_72_2020, + title = {7.2: {Fano}-{Bode} {Limits}}, + shorttitle = {7.2}, + url = {https://eng.libretexts.org/Bookshelves/Electrical_Engineering/Electronics/Microwave_and_RF_Design_III_-_Networks_(Steer)/07%3A_Chapter_7/7.2%3A_Fano-Bode_Limits}, + language = {en}, + urldate = {2024-06-21}, + journal = {Engineering LibreTexts}, + month = oct, + year = {2020}, +} + +@book{wing_classical_2009, + address = {Boston, MA}, + title = {Classical {Circuit} {Theory}}, + copyright = {https://www.springernature.com/gp/researchers/text-and-data-mining}, + isbn = {978-0-387-09739-8 978-0-387-09740-4}, + url = {https://link.springer.com/10.1007/978-0-387-09740-4}, + doi = {10.1007/978-0-387-09740-4}, + language = {en}, + urldate = {2024-06-21}, + publisher = {Springer US}, + author = {Wing, Omar}, + year = {2009}, + keywords = {Bounded-Real Functions, Broadband Matching, Circuit Analysis, Circuit Design by Optimization, Circuit Synthesis, Circuit Theory, Constant Phase-Difference Circuits, Delay, Delay Equalizers, Filter Design, Group Delay, Pass-Band Sensitivity, Phase and Gain}, +} + +@article{liang_dynamics_2017, + title = {On the dynamics and design of a two-body wave energy converter}, + volume = {101}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148116307698}, + doi = {10.1016/j.renene.2016.08.059}, + abstract = {A two-body wave energy converter oscillating in heave is studied in this paper. The energy is extracted through the relative motion between the floating and submerged bodies. A linearized model in the frequency domain is adopted to study the dynamics of such a two-body system with consideration of both the linear viscous damping and the hydrodynamic damping. The closed form solution of the maximum absorption power and corresponding power takeoff parameters are obtained. The suboptimal and optimal designs for a two-body system are proposed based on the closed form solution. The physical insight of the optimal design is to have one of the damped natural frequencies of the two body system the same as, or as close as possible to, the excitation frequency. A case study is conducted to investigate the influence of the submerged body on the absorption power of a two-body system subjected to suboptimal and optimal design under regular and irregular wave excitations. It is found that the absorption power of the two-body system can be significantly higher than that of the single body system with the same floating buoy in both regular and irregular waves. In regular waves, it is found that the mass of the submerged body should be designed with an optimal value in order to achieve the maximum absorption power for a given floating buoy in the presence of viscous damping. The viscous damping on the submerged body should be as small as possible for a given mass in both regular and irregular waves.}, + urldate = {2024-06-20}, + journal = {Renewable Energy}, + author = {Liang, Changwei and Zuo, Lei}, + month = feb, + year = {2017}, + keywords = {Dynamics, Optimal design, Suboptimal design, Two-body system, Wave energy converter}, + pages = {265--274}, +} + +@article{merigaud_nonlinear_2018, + title = {A {Nonlinear} {Frequency}-{Domain} {Approach} for {Numerical} {Simulation} of {Wave} {Energy} {Converters}}, + volume = {9}, + issn = {1949-3037}, + url = {https://ieeexplore.ieee.org/document/7950997}, + doi = {10.1109/TSTE.2017.2716826}, + abstract = {Nonlinear, analytical wave-energy converter (WEC) models are generally simulated through time-domain (TD) numerical integration. However, the relatively high computational requirements of TD integration are not compatible with applications where a large number of simulations are needed. Spectral domain (SD) linearization has also been proposed to take into account some nonlinear effects, while being much faster than TD integration. However, as explained in this paper, such SD models have limited accuracy, and cannot extend to the static nonlinear forces. In this paper, a nonlinear frequency-domain (NLFD) method is investigated for WEC simulation, using a projection of the dynamical equations onto a basis of trigonometric functions. A comparison with TD integration (second-order Runge-Kutta-RK2) and SD methods is provided, through theoretical considerations, and by means of numerical simulations based on two case studies. In the cases considered, the proposed NLFD method allows for significant computational savings compared to RK2 integration, without requiring any approximation for the radiation forces. NLFD thus shows promising potential for applications involving extensive WEC simulation, such as power production assessment, while preserving the WEC model accuracy. Although slower than SD, NLFD has significant benefits in terms of accuracy and range of applicability.}, + number = {1}, + urldate = {2024-06-17}, + journal = {IEEE Transactions on Sustainable Energy}, + author = {Mérigaud, Alexis and Ringwood, John V.}, + month = jan, + year = {2018}, + note = {Conference Name: IEEE Transactions on Sustainable Energy}, + keywords = {Computational modeling, Dynamics, Force, Frequency domain, Frequency-domain analysis, Mathematical model, Numerical models, Time-domain analysis, galerkin method, non-linearities, numerical simulation, spectral domain, time domain, wave energy converters}, + pages = {86--94}, +} + +@inproceedings{read_time-_2018, + title = {Time- and {Frequency}-domain {Comparisons} of the {Wavepiston} {Wave} {Energy} {Converter}: 33rd {International} {Workshop} on {Water} {Waves} and {Floating} {Bodies} ({IWWWFB} 2018)}, + shorttitle = {Time- and {Frequency}-domain {Comparisons} of the {Wavepiston} {Wave} {Energy} {Converter}}, + abstract = {Analysis of wave-energy converters is most frequently undertaken in the time-domain. This formulation allows the direct inclusion of nonlinear time-varying loads such as power take-off (PTO) reactions, mooring forces, and viscous drag. However, integrating the governing equations of motion in the time domain is relatively computationally expensive, and requires a simulation to be conducted for each incident-wave state. In contrast, calculating the linearised performance of a wave energy converter (WEC) in sinusoidal waves of a given frequency is relatively inexpensive, albeit with the lower accuracy associated with the assumption of linearity. Combining this frequency-domain information with aspectral characterisation of the sea state therefore offers an opportunity to predict the power-capture performance of a WEC with less computational expense than a direct time-domain approach. In this regard, methods such as spectral domain linearisation (Folley, 2016) and nonlinear frequency domain analysis using a basis of trigonometric functions (Mérigaud and Ringwood, 2018) have been proposed to provide a compromise between speed and accuracy in assessments of WEC performance.This paper will compare time- and frequency-domain analyses of the Wavepiston surging-plate WEC. This device consists of a surging plate close to the free surface that drives a staged telescopic hydraulic PTO. Modelling this system in the frequency domain presents challenges associated withthe signiffcant nonlinear forces arising from both the PTO reactions and the non-negligible viscous drag acting on the plate. Equivalent linear damping coeffcients are used to model these forces in the frequency domain, while they are included explicitly in the time domain. The main idea of this paper is to quantify, for this device, the errors associated with linearising these two nonlinear processes. Ouraim here is to assess the trade-offs between speed and accuracy when using a fully-linear frequency-domain approach compared to a partially-nonlinear time-domain method}, + author = {Read, Robert and Bingham, Harry}, + year = {2018}, +} + +@inproceedings{noauthor_time-_nodate, + title = {Time- and {Frequency}-domain {Comparisons} of the {Wavepiston} {Wave} {Energy} {Converter}}, +} + +@article{pastor_frequency_2014, + title = {Frequency and time domain modeling and power output for a heaving point absorber wave energy converter}, + volume = {5}, + issn = {2251-6832}, + url = {https://doi.org/10.1007/s40095-014-0101-9}, + doi = {10.1007/s40095-014-0101-9}, + abstract = {This paper presents, assesses, and optimizes a point absorber wave energy converter (WEC) through numerical modeling, simulation, and analysis in both frequency and time domain. Wave energy conversion is a technology especially suited for assisting in power generation in the offshore oil and gas platforms. A linear frequency domain model is created to predict the behavior of the heaving point absorber WEC system. The hydrodynamic parameters are obtained with AQWA, a software package based on boundary element methods. A linear external damping coefficient is applied to enable power absorption, and an external spring force is introduced to tune the point absorber to the incoming wave conditions. The external damping coefficient and external spring forces are the control parameters, which need to be optimized to maximize the power absorption. Two buoy shapes are tested and a variety of diameters and drafts are compared. Optimal shape, draft, and diameter of the model are then determined to maximize its power absorption capacity. Based on the results generated from the frequency domain analysis, a time domain analysis was also conducted to derive the responses of the WEC in the hydrodynamic time response domain. The time domain analysis results allowed us to estimate the power output of this WEC system.}, + language = {en}, + number = {2}, + urldate = {2024-06-17}, + journal = {International Journal of Energy and Environmental Engineering}, + author = {Pastor, Jeremiah and Liu, Yucheng}, + month = apr, + year = {2014}, + keywords = {Energy conversion, Frequency and time domain, Numerical modeling and simulation, Wave energy technology}, + pages = {101}, +} + +@article{yu_reynolds-averaged_2013, + title = {Reynolds-{Averaged} {Navier}–{Stokes} simulation of the heave performance of a two-body floating-point absorber wave energy system}, + volume = {73}, + issn = {0045-7930}, + url = {https://www.sciencedirect.com/science/article/pii/S0045793012003878}, + doi = {10.1016/j.compfluid.2012.10.007}, + abstract = {This paper presents a recent numerical study conducted by researchers at the National Renewable Energy Laboratory on a point absorber wave energy conversion (WEC) system using a Reynolds-averaged Navier–Stokes (RANS)-based Computational Fluid Dynamics (CFD) method. The device we studied was a two-body floating-point absorber (FPA) that operates predominantly in heave and generates energy from the relative motion between the two bodies. We performed a series of numerical simulation to analyze the hydrodynamic response and the power absorption performance of the system in regular waves. Overall, it was successful to use the RANS method to model the complex hydrodynamics interaction of the FPA system. We demonstrated the significance of the nonlinear effects, including viscous damping and wave overtopping. The study showed that the nonlinear effects could significantly decrease the power output and the motion of the FPA system, particularly in larger waves.}, + urldate = {2024-06-14}, + journal = {Computers \& Fluids}, + author = {Yu, Yi-Hsiang and Li, Ye}, + month = mar, + year = {2013}, + keywords = {Computational Fluid Dynamics, Heave, Point absorber, Power take-off, Reynolds-averaged Navier–Stokes equations, Wave energy conversion}, + pages = {104--114}, +} + +@inproceedings{faedo_optimisation-_2020, + title = {Optimisation- vs. non-optimisation-based energy-maximising control for wave energy converters: {A} case study}, + shorttitle = {Optimisation- vs. non-optimisation-based energy-maximising control for wave energy converters}, + url = {https://ieeexplore-ieee-org.proxy.library.cornell.edu/document/9143751}, + doi = {10.23919/ECC51009.2020.9143751}, + abstract = {Energy-maximising control of wave energy converters can be separated into two different classes: optimisation and non-optimisation based strategies. While optimisation-based controllers can outperform non-optimisation based strategies, the computational requirements associated with numerical optimisation routines, and the high control forces required under optimal conditions, can render these energy-maximising control laws unsuitable for realistic scenarios. Non-optimisation-based controllers present an alternative solution, where linear time-invariant systems are used to approximate the so-called impedance-matching condition. These strategies are often simple to implement but suffer from performance degradation when motion constraints are considered. This paper aims to present a critical comparison between both families of controllers, highlighting the strengths and weaknesses of each approach. We present simulation results for a state-of-the-art CorPower-like device under polychromatic (irregular) wave excitation, for both (motion) unconstrained and constrained scenarios.}, + urldate = {2024-06-14}, + booktitle = {2020 {European} {Control} {Conference} ({ECC})}, + author = {Faedo, Nicolás and García-Violini, Demián and Peña-Sanchez, Yerai and Ringwood, John V.}, + month = may, + year = {2020}, + keywords = {Dynamics, Force, Linear systems, Mathematical model, Optimal control, Optimized production technology}, + pages = {843--848}, +} + +@article{faedo_energy-maximising_2022, + series = {14th {IFAC} {Conference} on {Control} {Applications} in {Marine} {Systems}, {Robotics}, and {Vehicles} {CAMS} 2022}, + title = {Energy-maximising experimental control synthesis via impedance-matching for a multi degree-of-freedom wave energy converter}, + volume = {55}, + issn = {2405-8963}, + url = {https://www.sciencedirect.com/science/article/pii/S2405896322024995}, + doi = {10.1016/j.ifacol.2022.10.453}, + abstract = {We present, in this paper, an experimental framework for design and synthesis of impedance-matching-based (IM) controllers capable of maximising energy extraction in inherently multi degree-of-freedom wave energy converter (WEC) systems, and its subsequent application to the Intertial Sea Wave Energy Converter (ISWEC) device, by incorporating recent advances in IM-based theory. In particular, we consider a 1/20th scale prototype of the ISWEC system, tested as part of a larger experimental campaign conducted within the tank facilities available at Università degli Studi di Napoli Federico II, subject to a variety of wave conditions. We adopt two different control structures to realise an approximation of the IM principle, fully tuned based upon interpolation of a particular (experimentally obtained) non-parametric empirical transfer function estimate, which defines the optimal frequency-domain input-output response for energy-maximising behaviour. Furthermore, a performance comparison between controller tuning based upon traditional linear boundary element method models, and the presented experimental approach, is also offered, showing that the latter can consistently outperform the former in realistic scenarios, for the set of analysed sea-states.}, + number = {31}, + urldate = {2024-06-14}, + journal = {IFAC-PapersOnLine}, + author = {Faedo, Nicolás and Pasta, Edoardo and Carapellese, Fabio and Orlando, Vincenzo and Pizzirusso, Domenica and Basile, Dario and Sirigu, Sergej A.}, + month = jan, + year = {2022}, + keywords = {Impedance-matching, Optimal control, Wave energy converters}, + pages = {345--350}, +} + +@article{barter_beyond_2023, + title = {Beyond 15 {MW}: {A} cost of energy perspective on the next generation of drivetrain technologies for offshore wind turbines}, + volume = {344}, + issn = {0306-2619}, + shorttitle = {Beyond 15 {MW}}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261923006360}, + doi = {10.1016/j.apenergy.2023.121272}, + abstract = {Leading wind turbine manufacturers are racing to build larger and more powerful offshore machines. Drivetrain configurations often use a permanent-magnet synchronous generator (PMSG), in either a direct-drive configuration or coupled to a gearbox. With increasing demand for critical rare-earth magnets, new generator technologies are emerging to ensure a stable and secure supply chain. We evaluate three different topologies of radial flux synchronous generators employing high field magnets with reduced or no rare-earth content: a direct-drive interior PMSG (DD-IPMSG), a geared drivetrain combining a medium speed gearbox with a PMSG (MS-PMSG), and a direct-drive low-temperature superconducting generator (DD-LTSG). We develop a conceptual design module for each of these technologies within a larger framework for full turbine design. This provides the fairest comparison between technologies at nominal power ratings from 15–25MW, which represent the next generation of offshore wind turbines. The analyses show that if operational expenditures (OpEx) are constant across the technologies, MS-PMSG results in the lowest LCOE with reductions of up to 7\% relative to DD-IPMSG. DD-LTSG also yields lower LCOE values by 2\%–3\% for fixed-bottom turbines and 3\%–5\% with a floating platform. However, results are sensitive to OpEx assumptions, with a mere 10\% increase causing the conclusions to shift.}, + urldate = {2024-06-06}, + journal = {Applied Energy}, + author = {Barter, Garrett E. and Sethuraman, Latha and Bortolotti, Pietro and Keller, Jonathan and Torrey, David A.}, + month = aug, + year = {2023}, + keywords = {Direct drive, Levelized cost of energy, Medium speed, Offshore wind, Permanent magnet synchronous generator, Superconducting generator}, + pages = {121272}, +} + +@misc{schivley_powergenomepowergenome_2024, + title = {{PowerGenome}/{PowerGenome}: v0.6.3}, + url = {https://doi.org/10.5281/zenodo.11194213}, + doi = {10.5281/zenodo.11194213}, + publisher = {Zenodo}, + author = {Schivley, Greg and Welty, Ethan and Patankar, Neha and Jacobson, Anna and Xu, Qingyu and Manocha, Aneesha and Pecora, Braden and Bhandarkar, Riti and Jenkins, Jesse D. and Fripp, Matthias}, + month = may, + year = {2024}, +} + +@misc{pauly_mhkit_2020, + title = {{MHKiT} ({Marine} and {Hydrokinetic} {Toolkit}) - {MATLAB}}, + url = {https://doi.org/10.5281/zenodo.3928405}, + doi = {10.5281/zenodo.3928405}, + author = {Pauly, Rebecca and Klise, Katherine and Ruehl, Kelley M. and Olson, Sterling and Shippert, Timothy and Morrell, Zachary and Bredin, Sarah and Lansing, Carina and Macduff, Matt and Martin, Tonya and Sivaraman, Chitra and Gunawan, Budi and Driscoll, Frederick}, + month = jan, + year = {2020}, + note = {Published: [Computer Software] https://doi.org/10.5281/zenodo.3928405}, +} + +@article{noauthor_mhkit-softwaremhkit-matlab_nodate, + title = {{MHKiT}-{Software}/{MHKiT}-{MATLAB}: v0.4.1}, + shorttitle = {{MHKiT}-{Software}/{MHKiT}-{MATLAB}}, + url = {https://zenodo.org/records/10783438}, + doi = {10.5281/zenodo.10783438}, + abstract = {New Features DOLfYN IO \& Rotations(\#79) IO Implement DOLfYN IO functionality for classic Nortek data format Add support for RDI file read Initial development for NetCDF read and write functionality Rotations Speed optimizations, bug fixes, and rotations for DOLfYN Power Quality Flicker (\#105) Update power quality flicker assessment workflow and calculations CDIP Data IO and Graphics (\#83) Implement CDIP data collection and plotting functions Wave Updates (\#70) Add depth\_regime, wave\_length, and depth flags Implement updates to wave-related functions and tests Cache hindcast data calls (309f51226a88b25f985a6767e5696e0ec656d6ce) Add MATLAB/Python compatibility to README (576b406c7e102068526718e44a8878327c693764) Bug Fixes \#59 Magnitude and Phase Function for MATLAB (\#76) Implement magnitude and phase function for MATLAB \#65 Tidal Ebb and Flood Plots for MATLAB (\#73) Implement tidal ebb and flood plots for MATLAB WPTO for MATLAB (\#61) Address issues related to WPTO for MATLAB Fix python namespace conflict warnings (be70376) Developer Improvements Fix Github Actions Workflow to automate unit testing \#102 Linux, macOS, and Windows Units are performing nominally Fix/update failing unit tests where possible 100\% (151 / 151) of test cases are passing Add built in MATLAB code coverage (1f5f93a) Thank you to @kchong75, @H0R5E, @kbrode22, @parangat94, @Matthew-Boyd, @hivanov-nrel, @rpauly18, @Alex-McVey, @simmsa for your contributions!}, + language = {en}, + urldate = {2024-06-03}, +} + +@misc{klise_mhkit_2020, + title = {{MHKiT} ({Marine} and {Hydrokinetic} {Toolkit}) - {Python}}, + url = {https://doi.org/10.5281/zenodo.3924683}, + doi = {10.5281/zenodo.3924683}, + author = {Klise, Katherine and Pauly, Rebecca and Ruehl, Kelley M. and Olson, Sterling and Shippert, Timothy and Morrell, Zachary and Bredin, Sarah and Lansing, Carina and Macduff, Matt and Martin, Tonya and Sivaraman, Chitra and Gunawan, Budi and Driscoll, Frederick}, + month = jan, + year = {2020}, + note = {Published: [Computer Software] https://doi.org/10.5281/zenodo.3924683}, +} + +@misc{mit_energy_initiative_genx_nodate, + title = {{GenX}: a configurable power system capacity expansion model for studying low-carbon energy futures}, + url = {https://github.com/GenXProject/GenX.jl}, + author = {{MIT Energy Initiative} and {Princeton University ZERO lab}}, +} + +@article{faedo_principle_2022, + title = {On the principle of impedance-matching for underactuated wave energy harvesting systems}, + volume = {118}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118721004223}, + doi = {10.1016/j.apor.2021.102958}, + abstract = {In recent years, the fundamental principle of impedance-matching (IM) has inspired a number of sophisticated, yet simple, control solutions for wave energy converters (WEC). Such controllers have the capability of maximising energy absorption from incoming waves with mild computational requirements, being often intuitive in their design, hence especially appealing for real-time industrial applications. Nonetheless, these control solutions are, to date, almost exclusively developed for single degree-of-freedom (DoF) (and hence fully actuated) WEC systems, hindering their application to realistic underactuated multi-DoF devices, i.e. harvesting systems where energy is extracted from only a handful of its total set of modes of motion. Motivated by this, we present, in this paper, a comprehensive derivation and discussion of the IM conditions for maximum energy absorption in underactuated multi-DoF WEC systems. In particular, we show that the IM principle for single-DoF devices can be effectively extended to underactuated multi-DoF systems, and that a set of optimality conditions can be explicitly derived. In addition, we discuss both the impact and use of this set of optimal conditions for control design and synthesis, hence effectively taking a fundamental step towards the general extension of current IM-based techniques to the case of underactuated multi-DoF devices.}, + urldate = {2024-06-02}, + journal = {Applied Ocean Research}, + author = {Faedo, Nicolás and Carapellese, Fabio and Pasta, Edoardo and Mattiazzo, Giuliana}, + month = jan, + year = {2022}, + keywords = {Energy-maximising control, Impedance-matching, Optimal control, WEC, Wave energy}, + pages = {102958}, +} + +@article{akdemir_opportunities_2023, + title = {Opportunities for wave energy in bulk power system operations}, + volume = {352}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261923012096}, + doi = {10.1016/j.apenergy.2023.121845}, + abstract = {Wave energy resources have high, yet largely untapped potential as candidate generation technology. In this paper, we perform a data-driven analysis to characterize the impact of wave energy integration on bulk-scale power systems and market operations. Through data-driven sensitivity studies centered on an optimization-based production cost modeling formulation, our work characterizes the inflection point beyond which wave integration starts impacting power system operations, considering present day transmission infrastructure. Furthermore, our analysis also considers the joint effects of wave energy integration and system-wide transmission expansion. Finally, potential resilience scenarios such as wildfire-driven transmission contingencies and heat wave events are investigated, whereby the contributions of grid-integrated wave energy in alleviating the effects of the resilience events are analyzed. As our demonstration test bed, we consider a reduced-order network topology for the U.S. Western Interconnection with wave energy generation integrated at carefully selected sites across the coastal areas of Washington, Oregon, and northern California. Our results indicate that over a representative year of operations, wave energy integration systematically reduces locational marginal prices (LMPs) of energy and price volatility, especially during periods of high wave resource availability (winter months for the U.S. west coast). Average, maximum, and minimum of hourly LMPs over a typical year of operation was reduced by 2.95, 51.28, and 1.13 \$/MWh respectively (over a baseline scenario with no wave energy integration), when the selected network model had a total of 5000 MW wave power installed capacity during the representative year of study. The effects of wave energy integration can remain localized with existing transmission infrastructure (identified to be most pronounced in the Pacific Northwest region in the example we studied). However, with concurrent transmission expansion, the impacts of wave energy integration are likely to have a higher geographical spread. Our results also indicate that wave energy may be able to assist power system operations during resilience events such as major transmission contingencies and heat wave events, although such benefits might be dependent on factors such as proximity of affected area to wave resources, availability of adequate resource potential and adequate transmission capacity.}, + urldate = {2024-06-02}, + journal = {Applied Energy}, + author = {Akdemir, Kerem Ziya and Robertson, Bryson and Oikonomou, Konstantinos and Kern, Jordan and Voisin, Nathalie and Hanif, Sarmad and Bhattacharya, Saptarshi}, + month = dec, + year = {2023}, + keywords = {Contingency analysis, Electricity market, Marine renewable energy, Power system operations, Production cost modeling, Wave energy}, + pages = {121845}, +} + +@article{satymov_techno-economic_2024, + title = {Techno-economic assessment of global and regional wave energy resource potentials and profiles in hourly resolution}, + volume = {364}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261924005026}, + doi = {10.1016/j.apenergy.2024.123119}, + abstract = {Climate change is driving the adoption of sustainable energy, with low-cost solar photovoltaics and wind power at the forefront. However, land-constrained regions and islands have a limited onshore renewable energy potential. Wave power may prove useful for such regions, supported by growing literature in the field. This study delves into wave power's techno-economic potential, addressing a gap in previous assessments focused solely on theoretical or technical prospects. Utilising hourly wave data and a wave energy converter manufacturer's power matrix, global wave electricity yield is estimated. Considering projected costs, levelised cost of electricity is used to gauge economic viability. Although wave power is currently expensive, the results suggest that it could become cost-competitive with offshore wind power in the 2030s, with levelised cost of electricity below 70 €/MWh by 2035 in areas with good wave energy resources. Finally, the paper contributes openly accessible, hourly capacity factor data of global wave power generation, empowering further energy system modelling research. This study paves the way for informed decision-making on wave power's role in a diversified, sustainable energy future.}, + urldate = {2024-06-02}, + journal = {Applied Energy}, + author = {Satymov, Rasul and Bogdanov, Dmitrii and Dadashi, Mojtaba and Lavidas, George and Breyer, Christian}, + month = jun, + year = {2024}, + keywords = {CorPower, Energy supply diversification, Land-constrained regions, Ocean energy, Wave electricity yield, Wave energy}, + pages = {123119}, +} + +@article{grasberger_control_2024, + title = {Control co-design and optimization of oscillating-surge wave energy converter}, + volume = {225}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148124002994}, + doi = {10.1016/j.renene.2024.120234}, + abstract = {Ocean wave energy has the potential to play a crucial role in the shift to renewable energy. In order to improve wave energy conversion performance, it is necessary to break through the traditional sequential design process due to the coupling of subsystems such as the wave capture structure geometry, power take-off (PTO), and control systems. A co-design optimization is introduced in this paper to include effects of all subsystems with one outer and one inner optimization loop in order to reach a fully optimal design of an oscillating surge wave energy converter (OSWEC). A width and height sweep serves as an outer loop geometry optimization while power take-off components and control parameters are optimized efficiently in an inner loop for each geometry. An investigation into electrical power and mechanical power maximization also outlines the contrasting nature of the two objectives to illustrate the importance of electrical power maximization for identifying optimality. The co-design optimization leads to an optimal design with a width of 12 m and a height of 10 m which achieves an improvement in the normalized power value of over 60\% when compared to sequential design. A sensitivity analysis of the PTO system enhances understanding of the impact of PTO component value changes to support detailed-design of relevant components including drivetrain and generator. Lastly, the effect of the wave height and period on the optimal design is explored. Through the optimization and sensitivity analysis, a greater understanding on the effects of applying control co-design principles on surface piercing OSWECs is achieved and the importance of control co-design methods is demonstrated.}, + urldate = {2024-06-01}, + journal = {Renewable Energy}, + author = {Grasberger, Jeff and Yang, Lisheng and Bacelli, Giorgio and Zuo, Lei}, + month = may, + year = {2024}, + keywords = {Control co-design, Ocean wave energy, Oscillating-surge wave energy converter, Power-takeoff design, Shape optimization}, + pages = {120234}, +} + +@article{gudmestad_hydrodynamic_1996, + title = {Hydrodynamic coefficients for calculation of hydrodynamic loads on offshore truss structures}, + volume = {9}, + issn = {0951-8339}, + url = {https://www.sciencedirect.com/science/article/pii/0951833995000232}, + doi = {10.1016/0951-8339(95)00023-2}, + abstract = {The current American Petroleum Institute's recipe [API RP 2A WSD, Recommended practice for planning, designing and constructing fixed offshore platforms, working stress design. API, USA, 1993.] for calculation of hydrodynamic loads on offshore truss structures is compared with the corresponding North Sea Design Practice, as given by the rules of Det Norske Veritas. Most emphasis is put on the hydrodynamic coefficients and the estimation of design current as these issues are identified to be particularly critical. Use of the updated API (1993) recommendations in which the drag coefficient for roughened cylinders is increased from a minimum of 0·6 (API 1991) to 1·05 (API 1993) and where current is included, could lead to a general increase in the estimated load level on slender offshore structures [Petrauskas, C., Heideman, J.C. \& Berek, E.P., Extreme wave force calculation procedure for the 20th edition of API RP 2A. OTC paper 7153, In Proc. OTC 1993, Houston, Texas, 1993, pp. 201–211]. The main emphasis with regard to the impact of the new API recommendations, however, is that a consistent approach is provided to the calculation of 100-yr directional loads. This includes taking into account the effect of marine growth on force coefficients, modifying the wave kinematics for directional spreading, and considering current blockage effects, conductor shielding effects, and joint occurrence of wave height and current (i.e., using the associated current as being representative of the current that would lead to the 100-yr load). It is concluded that a consistent approach, such as that underlying the new API RP 2A (1993) recipe, is preferable to the current North Sea Design Practice [Det Norske Veritas, Environmental conditions and environmental loads. DNV classification notes 30.5, 1001.] in this field, and thus that the North Sea Design Practice should be updated. This relates in particular to selection of hydrodynamic coefficients. Measurement programmes to obtain full scale global force data simultatneously with wave and current data are furthermore recommended.}, + number = {8}, + urldate = {2024-05-27}, + journal = {Marine Structures}, + author = {Gudmestad, Ove T. and Moe, Geir}, + month = sep, + year = {1996}, + keywords = {API Recommended practice, hydrodynamic coefficients, offshore truss structures, wave forces}, + pages = {745--758}, +} + +@article{wen_shape_2018, + title = {A {Shape} {Optimization} {Method} of a {Specified} {Point} {Absorber} {Wave} {Energy} {Converter} for the {South} {China} {Sea}}, + volume = {11}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/11/10/2645}, + doi = {10.3390/en11102645}, + abstract = {In this paper, a shape optimization method of a truncated conical point absorber wave energy converter is proposed. This method converts the wave energy absorption efficiency into the matching problem between the wave spectrum of the South China Sea and the buoy’s absorption power spectrum. An objective function which combines these two spectra is established to reflect the energy absorbing efficiency. By applying Taguchi design, the frequency domain hydrodynamic analysis and the response surface method (RSM), the radius, cone angle and draft of the buoy are optimized. Since the significant influence of power take-off system (PTO) on energy absorption, the optimal PTO damping under random wave conditions is also studied. The optimal shape is acquired by maximizing the energy absorbing efficiency. Four types of performance and the influence of each geometrical parameter are also obtained. In addition, the cause of the trend of performance as well as the effects of adjusting the input parameters are analyzed. This study can provide guidance for the shape optimization of multi-parameter buoys.}, + language = {en}, + number = {10}, + urldate = {2024-05-27}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Wen, Yadong and Wang, Weijun and Liu, Hua and Mao, Longbo and Mi, Hongju and Wang, Wenqiang and Zhang, Guoping}, + month = oct, + year = {2018}, + note = {Number: 10}, + keywords = {RSM, South China Sea, Taguchi design, absorption power spectrum, point absorber, shape optimization, wave energy converter}, + pages = {2645}, +} + +@article{son_performance_2016, + title = {Performance validation and optimization of a dual coaxial-cylinder ocean-wave energy extractor}, + volume = {92}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148116300325}, + doi = {10.1016/j.renene.2016.01.032}, + abstract = {A point-absorber wave-energy extractor is developed, consisting of a dual coaxial-cylinder system, with the inner cylinder tension-tethered and an outer cylinder (floater) oscillating vertically. A permanent magnet linear generator (PMLG) is used as a power take-off (PTO) capturing wave energy from the relative motion of the two cylinders. The mathematical modeling of the system includes the coupling effects of the cylinder hydrodynamics and the PMLG behavior. It gives a rational and effective way of providing performance predictions and directions for optimization. The flat bottom shape of the floater is modified into a needle-like curved shape to minimize viscous losses, which leads to three-times increase in floater response, compared with the flat-bottom geometry and thus improved wave-energy capture. The behavior of the PTO in the presence of an appropriate supporting structure for the coaxial cylinders are investigated, and optimal operating conditions for energy extraction and mechanical to electrical conversion efficiency are determined. Experimental results of this coupled system in regular waves confirm the validity of the theoretical predictions and soundness of the engineering design. Optimizing the floater bottom shape and the operating conditions for energy extraction lead to a two-times increase in overall efficiency, even without any active control.}, + urldate = {2024-05-24}, + journal = {Renewable Energy}, + author = {Son, Daewoong and Belissen, Valentin and Yeung, Ronald W.}, + month = jul, + year = {2016}, + keywords = {Coaxial cylinders, Motion amplification, Ocean-wave energy, Optimization, Permanent-magnet linear generator, Wave-energy extractor}, + pages = {192--201}, +} + +@unpublished{dekker_our_1999, + title = {On our own terms: emerging autistic culture}, + url = {https://www.autscape.org/2015/programme/handouts/Autistic-Culture-07-Oct-1999.pdf}, + author = {Dekker, Martijn}, + month = oct, + year = {1999}, +} + +@misc{noauthor_welcome_nodate, + title = {Welcome to {People} {First}.org!}, + url = {https://www.peoplefirst.org/}, + urldate = {2024-05-10}, +} + +@incollection{watson_deaf_2019, + address = {London}, + edition = {2}, + title = {Deaf identities in disability studies}, + isbn = {978-0-429-43081-7}, + doi = {10.4324/9780429430817}, + abstract = {This fully revised and expanded second edition of the Routledge Handbook of Disability Studies takes a multidisciplinary approach to disability and provides an authoritative and up-to-date overview of the main issues in the field around the world today. Adopting an international perspective and arranged thematically, it surveys the state of the discipline, examining emerging and cutting-edge areas as well as core areas of contention. +Divided in five parts, this comprehensive handbook covers: + +Different models and approaches to disability +How key impairment groups have engaged with disability studies and the writings within the discipline +Policy and legislation responses to disability studies and to disability activism +Disability studies and its interaction with other disciplines, such as history, philosophy, sport, and science and technology studies +Disability studies and different life experiences, examining how disability and disability studies intersects with ethnicity, sexuality, gender, childhood and ageing +Containing 15 revised chapters and 12 new chapters from an international selection of leading scholars, this authoritative handbook is an invaluable reference for all academics, researchers, and more advanced students in disability studies and associated disciplines such as sociology, health studies and social work. +Chapter 6 of this book is freely available as a downloadable Open Access PDF at https://www-taylorfrancis-com.proxy.library.cornell.edu under a Creative Commons Attribution-Non Commercial-No Derivatives (CC-BY-NC-ND) 4.0 license.}, + booktitle = {Routledge {Handbook} of {Disability} {Studies}}, + publisher = {Routledge}, + author = {Scully, Jackie Leach}, + editor = {Watson, Nick and Roulstone, Alan and Thomas, Carol}, + month = nov, + year = {2019}, +} + +@misc{murray_deaf_nodate, + type = {Encyclopedia}, + title = {Deaf {History}}, + url = {https://www.britannica.com/science/deaf-history/The-19th-century}, + abstract = {Deaf history - Sign Language, Education, Advocacy: Deaf education in the first part of the 1800s was largely inspired by an impulse to save deaf people’s souls, to ensure that they received sufficient religious training to understand the word of God. In the United States that period is generally known as the heyday of manualism. In 1817 a deaf teacher from the INJS, Laurent Clerc, together with American educational philanthropist Thomas Hopkins Gallaudet, established what later became the American School for the Deaf, located in West Hartford, Connecticut. Aside from a short stint as principal of the Pennsylvania Institution for the Deaf in Philadelphia, Clerc would go}, + language = {en}, + urldate = {2024-05-10}, + journal = {Britannica}, + author = {Murray, Joseph}, +} + +@article{jones_deafness_2002, + title = {Deafness as {Culture}: {A} {Psychosocial} {Perspective}}, + volume = {22}, + copyright = {Copyright (c) 2002 Megan Jones}, + issn = {2159-8371}, + shorttitle = {Deafness as {Culture}}, + url = {https://dsq-sds.org/index.php/dsq/article/view/344}, + doi = {10.18061/dsq.v22i2.344}, + abstract = {No abstract available}, + language = {en}, + number = {2}, + urldate = {2024-05-10}, + journal = {Disability Studies Quarterly}, + author = {Jones, Megan}, + month = apr, + year = {2002}, + note = {Number: 2}, +} + +@incollection{erickson-schroth_disability_2014, + title = {Disability and {Deaf} {Culture}}, + isbn = {978-0-19-932537-5}, + abstract = {There is no one way to be transgender. Transgender and gender non-conforming people have many different ways of understanding their gender identities. Only recently have sex and gender been thought of as separate concepts, and we have learned that sex (traditionally thought of as physical or biological) is as variable as gender (traditionally thought of as social). While trans people share many common experiences, there is immense diversity within trans communities. There are an estimated 700,000 transgendered individuals in the US and 15 million worldwide. Even still, there's been a notable lack of organized information for this sizable group. Trans Bodies, Trans Selves is a revolutionary resource-a comprehensive, reader-friendly guide for transgender people, with each chapter written by transgender or genderqueer authors. Inspired by Our Bodies, Ourselves, the classic and powerful compendium written for and by women, Trans Bodies, Trans Selves is widely accessible to the transgender population, providing authoritative information in an inclusive and respectful way and representing the collective knowledge base of dozens of influential experts. Each chapter takes the reader through an important transgender issue, such as race, religion, employment, medical and surgical transition, mental health topics, relationships, sexuality, parenthood, arts and culture, and many more. Anonymous quotes and testimonials from transgender people who have been surveyed about their experiences are woven throughout, adding compelling, personal voices to every page. In this unique way, hundreds of viewpoints from throughout the community have united to create this strong and pioneering book. It is a welcoming place for transgender and gender-questioning people, their partners and families, students, professors, guidance counselors, and others to look for up-to-date information on transgender life.}, + language = {en}, + booktitle = {Trans {Bodies}, {Trans} {Selves}: {A} {Resource} for the {Transgender} {Community}}, + publisher = {Oxford University Press}, + author = {Ware, Syrus Marcus and Marshall, Zack}, + editor = {Erickson-Schroth, Laura}, + month = may, + year = {2014}, + note = {Google-Books-ID: 7Ef1AwAAQBAJ}, + keywords = {Psychology / Human Sexuality, Social Science / Social Work}, +} + +@article{eckert_audism_2013, + title = {Audism: {A} {Theory} and {Practice} of {Audiocentric} {Privilege}}, + volume = {37}, + issn = {0160-5976}, + shorttitle = {Audism}, + url = {https://doi.org/10.1177/0160597613481731}, + doi = {10.1177/0160597613481731}, + abstract = {More than 30 years ago, Tom Humphries coined the term “audism” to describe audiocentric (based on hearing and speaking) assumptions and attitudes of supremacy. Only a handful of scholarly articles mention the concept of audism and not one of those is published outside of Deaf Cultural Studies. In this article, audism is broadly defined in the ideological contexts of individual, institutional, metaphysical, and laissez-faire prejudices. Audism is further explained in the context of overt, covert, and aversive practices of discrimination. Examples of the intersections of the theory and practice of audiocentric privilege are explored. Based on critical observations of audism as a stratifying system of oppression, four recommendations are made: increasing public awareness of Deaf American contributions to society (multiculturalism), infusing Deaf-centric curriculum content in education (equity), advocating intergroup dialogues as a transformative pedagogy that further exposes audism as a social injustice (intercultural responsibility), and promoting community service opportunities (ethical citizenship) for students to do volunteer work in the Deaf American Community.}, + language = {en}, + number = {2}, + urldate = {2024-05-10}, + journal = {Humanity \& Society}, + publisher = {SAGE Publications Inc}, + author = {Eckert, Richard Clark and Rowley, Amy June}, + month = may, + year = {2013}, + pages = {101--130}, +} + +@article{zisk_augmentative_2019, + title = {Augmentative and {Alternative} {Communication} for {Speaking} {Autistic} {Adults}: {Overview} and {Recommendations}}, + volume = {1}, + issn = {2573-9581}, + shorttitle = {Augmentative and {Alternative} {Communication} for {Speaking} {Autistic} {Adults}}, + url = {https://www.liebertpub.com/doi/10.1089/aut.2018.0007}, + doi = {10.1089/aut.2018.0007}, + abstract = {In recent years, technologies used for augmentative and alternative communication (AAC) have seen increasing development and availability. As a result, more and more autistic people are using AAC. With the increased use of AAC by autistic people, research on autism and AAC has also increased. However, the vast majority of this research focuses on nonspeaking autistic children. AAC use by autistic adults and by speaking autistic people has received limited academic attention. Speaking autistic adults often use AAC and many have publicly shared information about their strategies and experiences. In this article, we provide an overview of the speech differences autistic adults choose to support through AAC, including varying difficulties with speech depending on environment and content. We also discuss the technologies and strategies adopted by autistic adults, including free or low-cost tools that are not specific to AAC, mobile technologies, and signed languages or gestures. We explore barriers to AAC use, including a lack of awareness of relevant options, misconceptions about who AAC supports are for, and the cost of dedicated AAC applications or devices. We then provide suggestions for autistic adults, people supporting autistic adults, and researchers. Overall communication—rather than speech—should be prioritized. Mainstream communication technologies can support communication for autistic adults and a variety of tools can support communication across contexts. Further research into the use and effectiveness of AAC for autistic adults is needed, as is research on barriers to AAC use.}, + number = {2}, + urldate = {2024-05-10}, + journal = {Autism in Adulthood}, + publisher = {Mary Ann Liebert, Inc., publishers}, + author = {Zisk, Alyssa Hillary and Dalton, Elizabeth}, + month = jun, + year = {2019}, + pages = {93--100}, +} + +@techreport{lusin_enrollments_2023, + title = {Enrollments in {Languages} {Other} {Than} {English} in {US} {Institutions} of {Higher} {Education}, {Fall} 2021}, + url = {https://www.mla.org/content/download/191324/file/Enrollments-in-Languages-Other-Than-English-in-US-Institutions-of-Higher-Education-Fall-2021.pdf}, + institution = {Modern Language Association of America}, + author = {Lusin, Natalia and Peterson, Terri and Sulewski, Christine and Zafer, Rizwana}, + year = {2023}, +} + +@misc{rocky_mountain_ada_how_2019, + title = {How {Deaf} people influenced the passage of the {ADA}}, + url = {https://rockymountainada.org/news/blog/how-deaf-people-influenced-passage-ada}, + language = {en}, + urldate = {2024-05-09}, + journal = {Rocky Mountain ADA}, + author = {{Rocky Mountain ADA}}, + month = sep, + year = {2019}, +} + +@misc{noauthor_writing_2023, + title = {Writing {Respectfully}: {Person}-{First} and {Identity}-{First} {Language}}, + shorttitle = {Writing {Respectfully}}, + url = {https://www.nih.gov/about-nih/what-we-do/science-health-public-trust/perspectives/writing-respectfully-person-first-identity-first-language}, + abstract = {When communicating about disabilities, diseases, and health conditions, it’s important to consider the unique needs and interests of the people experiencing them as part of daily life.}, + language = {EN}, + urldate = {2024-05-09}, + journal = {National Institutes of Health (NIH)}, + month = apr, + year = {2023}, +} + +@article{lane_ethnicity_2005, + title = {Ethnicity, {Ethics}, and the {Deaf}-{World}}, + volume = {10}, + issn = {1081-4159}, + url = {https://doi.org/10.1093/deafed/eni030}, + doi = {10.1093/deafed/eni030}, + abstract = {This article is concerned with ethical aspects of the relations between language minorities using signed languages (called the Deaf-World) and the larger societies that engulf them. The article aims to show that such minorities have the properties of ethnic groups, and that an unsuitable construction of the Deaf-World as a disability group has led to programs of the majority that discourage Deaf children from acquiring the language and culture of the Deaf-World and that aim to reduce the number of Deaf births—programs that are unethical from an ethnic group perspective. Four reasons not to construe the Deaf-World as a disability group are advanced: Deaf people themselves do not believe they have a disability; the disability construction brings with it needless medical and surgical risks for the Deaf child; it also endangers the future of the Deaf-World; finally, the disability construction brings bad solutions to real problems because it is predicated on a misunderstanding.}, + number = {3}, + urldate = {2024-05-09}, + journal = {The Journal of Deaf Studies and Deaf Education}, + author = {Lane, Harlan}, + month = jul, + year = {2005}, + pages = {291--310}, +} + +@article{ahamed_advancements_2020, + title = {Advancements of wave energy converters based on power take off ({PTO}) systems: {A} review}, + volume = {204}, + issn = {0029-8018}, + shorttitle = {Advancements of wave energy converters based on power take off ({PTO}) systems}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801820302985}, + doi = {10.1016/j.oceaneng.2020.107248}, + abstract = {Ocean waves contain one of the world's largest untapped and predictable renewable energy sources that can be used to fulfil the energy demand in the present energy crises situation. There are many devices that have been proposed and prototyped in different countries all around the world to harness wave energy based on different power take-off (PTO) systems. The aim of this article is to review the power take-off (PTO) systems of the wave energy converters (WEC). The review starts with a brief introduction and background of wave energy. Following this, a novel classification of WEC systems is introduced. Then, the WECs based on the different working methods of their power take off systems are briefly reviewed. This includes an analysis and comparison of advantages and challenges of the power take off systems. Aspects of current international research and development activities and networks for wave energy is also discussed. The current market of wave energy technologies is also assessed, showing that the mechanical direct drive system is the most popular. Hybrid PTO systems are seen as an important development for the future.}, + urldate = {2024-05-06}, + journal = {Ocean Engineering}, + author = {Ahamed, Raju and McKee, Kristoffer and Howard, Ian}, + month = may, + year = {2020}, + keywords = {Ocean waves, Performance, Power take off system, Wave energy converter, Working methods}, + pages = {107248}, +} + +@article{osullivan_co-design_2017, + title = {Co-design of a wave energy converter using constrained predictive control}, + volume = {102}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148116308990}, + doi = {10.1016/j.renene.2016.10.034}, + abstract = {This paper highlights the need to optimise the performance of the complete wave to wire system, instead of designing the individual subsystems. In this work a point absorber wave energy converter operating in heave mode separately, coupled to a Linear Permanent Magnet Generator (LPMG); where the results are obtained in simulation. The PTO force is controlled by a machine side back-to-back voltage source converter (VSC), which is connected to a constant DC-link voltage. Model Predictive Control (MPC) is then used to maximise the absorbed electrical power with the resistive losses of the PTO included; this is compared with classical control methods. The optimal force produced from the MPC incorporates legitimate physical and electrical constraints of the WEC and LPMG -the importance of including such constraints within the optimisation is shown. Field weakening and a uni-directional power flow constraint are then incorporated to help prevent poor grid power quality when fluctuations in the DC-link occur. It is assumed that the constrained optimal control approach produces the highest possible electrical power available. This means that it is now possible to clearly see the effect of physical design choices on the performance on a level playing field.}, + urldate = {2024-05-06}, + journal = {Renewable Energy}, + author = {O'Sullivan, Adrian C. M. and Lightbody, Gordon}, + month = mar, + year = {2017}, + keywords = {Cyber-physical, Field weakening, MPC, Power maximisation, Uni-directional power flow, Wave energy}, + pages = {142--156}, +} + +@article{tan_downsizing_2022, + title = {Downsizing the {Linear} {PM} {Generator} in {Wave} {Energy} {Conversion} for {Improved} {Economic} {Feasibility}}, + volume = {10}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2077-1312}, + url = {https://www.mdpi.com/2077-1312/10/9/1316}, + doi = {10.3390/jmse10091316}, + abstract = {A crucial part of wave energy converters (WECs) is the power take-off (PTO) mechanism, and PTO sizing has been shown to have a considerable impact on the levelized cost of energy (LCOE). However, as a dominating type of PTO system in WECs, previous research pertinent to PTO sizing did not take modeling and optimization of the linear permanent magnet (PM) generator into consideration. To fill this gap, this paper provides an insight into how PTO sizing affects the performance of linear permanent magnet (PM) generators, and further the techno-economic performance of WECs. To thoroughly reveal the power production of the WEC, both hydrodynamic modeling and generator modeling are incorporated. In addition, three different methods for sizing the linear generator are applied and compared. The effect of the selection of the sizing method on the techno-economic performance of the WEC is identified. Furthermore, to realistically reflect the relevance of PTO sizing, wave resources from three European sea sites are considered in the techno-economic analysis. The dependence of PTO sizing on wave resources is demonstrated.}, + language = {en}, + number = {9}, + urldate = {2024-05-04}, + journal = {Journal of Marine Science and Engineering}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Tan, Jian and Wang, Xuezhou and Polinder, Henk and Laguna, Antonio Jarquin and Miedema, Sape A.}, + month = sep, + year = {2022}, + note = {Number: 9}, + keywords = {downsizing, linear PM generator, wave energy converter}, + pages = {1316}, +} + +@article{wu_gradient-based_2022, + title = {A {Gradient}-based {Sequential} {Multifidelity} {Approach} to {Multidisciplinary} {Design} {Optimization}}, + volume = {65}, + issn = {1615-1488}, + url = {https://doi.org/10.1007/s00158-022-03204-1}, + doi = {10.1007/s00158-022-03204-1}, + abstract = {Multifidelity design optimization is a strategy that can reduce the high computational cost in cases where the high-fidelity model is too expensive to use directly in optimization. However, current multifidelity approaches cannot handle the high-dimensional problems commonly encountered in industrial settings. Furthermore, they cannot accommodate arbitrary analysis fidelities, directly handle multidisciplinary problems, or provably converge to the high-fidelity optimum. In this paper, we present a practical multifidelity approach that leverages the advantages of conventional gradient-based approaches. Rather than constructing a multifidelity surrogate, we perform a sequence of single-fidelity gradient-based optimizations. The framework determines the appropriate fidelity and updates it during the optimization process. Finally, we demonstrate the proposed approach on a multipoint aerostructural wing optimization problem with over a hundred design variables. The multifidelity approach reduces the computational cost by 59\% compared to the high-fidelity approach while obtaining the same numerical optimum.}, + language = {en}, + number = {4}, + urldate = {2024-04-12}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Wu, Neil and Mader, Charles A. and Martins, Joaquim R. R. A.}, + month = apr, + year = {2022}, + keywords = {Gradient-based optimization, Multidisciplinary design optimization, Multifidelity optimization}, + pages = {131}, +} + +@misc{noauthor_overview_nodate, + title = {Overview of {NASA} {Electrified} {Aircraft} {Propulsion} ({EAP}) {Research} for {Large} {Subsonic} {Transports}}, + url = {https://arc.aiaa.org/doi/epdf/10.2514/6.2017-4701}, + doi = {10.2514/6.2017-4701}, + language = {en}, + urldate = {2024-04-12}, +} + +@book{noauthor_commercial_nodate, + title = {Commercial {Aircraft} {Propulsion} and {Energy} {Systems} {Research}: {Reducing} {Global} {Carbon} {Emissions}}, + shorttitle = {Read "{Commercial} {Aircraft} {Propulsion} and {Energy} {Systems} {Research}}, + url = {https://nap.nationalacademies.org/read/23490/chapter/7#58}, + doi = {10.17226/23490}, + abstract = {Read chapter 4 Electric Propulsion: The primary human activities that release carbon dioxide (CO2) into the atmosphere are the combustion of fossil fuels ...}, + language = {en}, + urldate = {2024-04-12}, +} + +@book{gelb_multiple-input_1968, + series = {{McGraw}-{Hill} {Electronic} {Sciences}}, + title = {Multiple-{Input} {Describing} {Functions} and {Nonlinear} {System} {Design}}, + url = {https://www.semanticscholar.org/paper/Multiple-Input-Describing-Functions-and-Nonlinear-Gelb-Velde/8a855f23d04e394328b2978c5843cf9f6d2d8fdc}, + abstract = {The theory of automatic control has been advanced in important ways during recent years, particularly with respect to stability and optimal control. These are significant contributions which appeal to many workers, including the writers, because they answer important questions and are both theoretically elegant and practically useful. These theories do not, however, lay to rest all questions of importance to the control engineer. The designer of the attitude control system for a space vehicle booster which, for simplicity, utilizes a rate-switched engine gimbal drive, must know the characteristics of the limit cycle oscillation that the system will sustain and must have some idea of how the system will respond to attitude commands while continuing to limit-cycle. The designer of a chemical process control system must be able to predict the transient oscillations the process may experience during start-up due to the limited magnitudes of important variables in the system. The designer of a radar antenna pointing system with limited torque capability must be able to predict the rms pointing error due to random wind disturbances on the antenna, and must understand how these random disturbances will influence the behavior of the system in its response to command inputs. But more important than just being able to evaluate how a given system will behave in a postulated situation is the fact that these control engineers must design their systems to meet specifications on important characteristics. Thus a complicated exact analytical tool, if one existed, would be of less value to the designer than an approximate tool which is simple enough in application to give insight into the trends in system behavior as a function of system parameter values or possible compensations, hence providing the basis for system design. As an analytical tool to answer questions such as these in a way …}, + urldate = {2024-04-08}, + publisher = {McGraw-Hill}, + author = {Gelb, Arthur and Vander Velde, Wallace E.}, + year = {1968}, +} + +@article{comino_augmentative_2024, + title = {Augmentative and alternative communication and deaf children with disabilities}, + volume = {0}, + issn = {1464-3154}, + url = {https://doi.org/10.1080/14643154.2024.2316959}, + doi = {10.1080/14643154.2024.2316959}, + abstract = {With recent data reporting approximately 40–50\% of Deaf or hard of hearing (DHH) individuals as having a diability, complex communication needs are not uncommon within this population and can present unique communicative challenges. Implementing augmentative and alternative communication (AAC) systems can provide this population with an effective means of communication, assist them in developing specific language skills, and support them in effectively accessing their social environment. The purpose of this scoping review was to (a) identify the facilitators and barriers to AAC provision for this group of individuals, (b) discuss observable trends throughout studies, and (c) highlight areas for further research in AAC for this group of learners. This review compiles the results from seven studies within the last 10 years and focuses on the facilitators and barriers when implementing AAC systems for DHH individuals with a disability (DWD) and complex communication needs. The facilitators and barriers are categorised as interpersonal, intervention and assessment related. The trends that were identified included (a) the overall success of AAC, (b) the prevalence of speech-generating devices (SGD) use, (c) the lack of communication within interdisciplinary teams, (d) the lack of DHH-specific research, and (e) the lack of standardised methods for AAC selection.}, + number = {0}, + urldate = {2024-04-03}, + journal = {Deafness \& Education International}, + publisher = {Routledge}, + author = {Comino, Dimity and Roche, Laura and Duncan, Jill}, + year = {2024}, + note = {\_eprint: https://doi.org/10.1080/14643154.2024.2316959}, + keywords = {Augmentative and alternative communication; deaf, hard of hearing; complex communication needs}, + pages = {1--25}, +} + +@article{graham_increasing_2020, + title = {Increasing {Social} {Awareness} for {Deaf} and {Hard} of {Hearing} {Children} on the {Autism} {Spectrum}: {Innovative} {Strategies}}, + volume = {21}, + issn = {1544-6751}, + shorttitle = {Increasing {Social} {Awareness} for {Deaf} and {Hard} of {Hearing} {Children} on the {Autism} {Spectrum}}, + url = {https://eric.ed.gov/?id=EJ1268538}, + abstract = {For families and educators, understanding and working with children who experience a combination of deafness and autism spectrum disorder (ASD) can be challenging. Yet both understanding and work are crucial. For children with ASD to succeed, parents and educators need to understand them and to be able to work together to implement successful educational strategies. These strategies fall into two categories: 1) strategies for improving social interaction, primarily focusing on communication; and 2) strategies for incorporating the students' interests, which may be intense but restricted (American Psychiatric Association, 2013). What this means is that some children can be very focused on a few specific interests so educators can modify strategies to use each child's interests to introduce new knowledge and teach various skills. Educators, must develop a "toolbox" of strategies and frameworks of practice to help students develop supportive relationships and ensure they have a sense of belonging and being a part of an inclusive community. The information in this toolbox will help teachers who have deaf or hard of hearing children with ASD in their classrooms. This article describes four strategies that are inclusive; they work for most children. They include: (1) routine explanation; (2) video modeling; (3) peer-to-peer social interaction; and (4) differentiated instruction.}, + language = {en}, + urldate = {2024-04-03}, + journal = {Odyssey: New Directions in Deaf Education}, + publisher = {Laurent Clerc National Deaf Education Center}, + author = {Graham, Patrick and Neild, Raschelle and Shield, Aaron}, + year = {2020}, + note = {ERIC Number: EJ1268538}, + keywords = {Autism, Comorbidity, Deafness, Generalization, Hearing Impairments, Individualized Instruction, Interaction, Interpersonal Communication, Modeling (Psychology), Peer Relationship, Pervasive Developmental Disorders, Social Development, Student Interests, Students with Disabilities, Teaching Methods, Video Technology}, + pages = {28--33}, +} + +@article{shield_preliminary_2014, + title = {Preliminary {Findings} of {Similarities} and {Differences} in the {Signed} and {Spoken} {Language} of {Children} with {Autism}}, + volume = {35}, + copyright = {Thieme Medical Publishers 333 Seventh Avenue, New York, NY 10001, USA.}, + issn = {0734-0478, 1098-9056}, + url = {http://www.thieme-connect.de/DOI/DOI?10.1055/s-0034-1389103}, + doi = {10.1055/s-0034-1389103}, + abstract = {Approximately 30\% of hearing children with autism spectrum disorder (ASD) do not acquire expressive language, and those who do often show impairments related to their social deficits, using language instrumentally rather than socially, with a poor understanding of pragmatics and a tendency toward repetitive content. Linguistic abnormalities can be clinically useful as diagnostic markers of ASD and as targets for intervention. Studies have begun to document how ASD manifests in children who are deaf for whom signed languages are the primary means of communication. Though the underlying disorder is presumed to be the same in children who are deaf and children who hear, the structures of signed and spoken languages differ in key ways. This article describes similarities and differences between the signed and spoken language acquisition of children on the spectrum. Similarities include echolalia, pronoun avoidance, neologisms, and the existence of minimally verbal children. Possible areas of divergence include pronoun reversal, palm reversal, and facial grammar.}, + language = {en}, + number = {4}, + urldate = {2024-04-03}, + journal = {Seminars in Speech and Language}, + publisher = {Thieme Medical Publishers}, + author = {Shield, Aaron}, + month = nov, + year = {2014}, + keywords = {Sign language, autism, echolalia, language acquisition, pronouns}, + pages = {309--320}, +} + +@inproceedings{polinder_linear_2007, + address = {Porto}, + title = {Linear generator systems for wave energy conversion}, + booktitle = {Proceedings of the 7th {European} {Wave} and {Tidal} {Energy} {Conference}, {Porto}}, + author = {Polinder, Henk and Mueller, Markus and Scuotto, Mattia and Prado, M.}, + month = sep, + year = {2007}, +} + +@article{skrovanek_electrostatic_2024, + title = {Electrostatic {Wave} {Energy} {Conversion}: {A} {Review} of {Devices}, {Theory}, and {Hurdles}}, + issn = {1558-0059}, + shorttitle = {Electrostatic {Wave} {Energy} {Conversion}}, + url = {https://ieeexplore.ieee.org/document/10399859}, + doi = {10.1109/TEC.2024.3354122}, + abstract = {Wave energy is a continuously available resource with tremendous potential. However, utility-scale wave energy harvesting has experienced limited commercial success to date. Many of these shortcomings can be attributed to the fundamental mismatch between the low-frequency nature of ocean waves and the physical principles of conventional electromagnetic generators used in today's WECs, leading to WECs that are large, expensive, and inefficient. As such, a growing number of researchers are investigating electric machinery based on electrostatics as a viable alternative for WEC generators. Not only are electrostatic WECs generally more efficient than their electromagnetic counterparts at low-speed operation, but they also tend to be constructed from abundant, lightweight, and inexpensive materials, which could make WECs economically competitive with other energy sources. This paper first characterizes electrostatic WECs from a theoretical perspective to gain insight into their physical nature and then reviews existing electrostatic WEC technologies, which include variable-capacitance and triboelectric generators. Performance metrics for existing electrostatic WECs are presented. Finally, the key challenges in electrostatic WEC technology are identified along with several strategies to overcome these hurdles in future research.}, + urldate = {2024-03-16}, + journal = {IEEE Transactions on Energy Conversion}, + author = {Skrovanek, David and Ludois, Daniel C.}, + year = {2024}, + note = {Conference Name: IEEE Transactions on Energy Conversion}, + keywords = {Capacitors, Electromagnetic scattering, Electromagnetics, Electrostatics, Generators, Magnetomechanical effects, Power conversion, Wave energy, dielectric elastomers, electrostatics, ocean energy, triboelectricity, variable capacitors}, + pages = {1--11}, +} + +@article{rahman_recent_2020, + title = {Recent {Progress} in {Electrical} {Generators} for {Oceanic} {Wave} {Energy} {Conversion}}, + volume = {8}, + issn = {2169-3536}, + url = {https://ieeexplore.ieee.org/document/9152036}, + doi = {10.1109/ACCESS.2020.3012662}, + abstract = {Oceanic wave energy extraction through electrical generator is one of the most interesting topics in the field of power engineering. Almost all the existing relevant review paper focus on electrical generator with the working principle of electromagnetic induction or piezoelectric or triboelectric effect. In this paper, all the existing types (based on principle of operation) of electrical generator used for wave power harvesting are discussed. This paper not only covers recent progress in electrical power generation by electro-magnetic induction, piezoelectric generator, and electrostatic induction, but also presents critical comparative review as well where suitable use and weakness of each type of generators are discussed. Moreover, the application of advanced magnetic core, winding, and permanent magnets are discussed with extensive explanation which are not focused in the existing reviews. Various new constructional features of the electrical generators such as split translator flux switching, two-point absorber, triangular coil, dual port linear generator, piezoelectric, triboelectric nanogenerator, etc. are highlighted with principles of operation. It also includes emerging human intervened optimization method for determining optimum shape of generator and cooling system which is necessary to prevent demagnetization of the permanent magnet. Finally, the way of supply the generated electrical power form the generator to load/grid is thoroughly described in a separate section that would be obvious for successful operation. The comparison among all types of generators in terms of output voltage, current, scale of power production, power-frequency characteristics, power density, cascading, and approaches are tabulated in this paper.}, + urldate = {2024-03-09}, + journal = {IEEE Access}, + author = {Rahman, Abidur and Farrok, Omar and Islam, Md. Rabiul and Xu, Wei}, + year = {2020}, + note = {Conference Name: IEEE Access}, + keywords = {Electromagnetics, Electrostatic induction generator, Energy conversion, Generators, Magnetic cores, Permanent magnets, Stator windings, linear electrical generator, magnetic material, optimization, permanent magnet, piezoelectric generator, superconductor, wave energy converter}, + pages = {138595--138615}, +} + +@inproceedings{akiror_coefficients_2012, + title = {On the coefficients of core loss formulas for electrical machines}, + issn = {1553-572X}, + url = {https://ieeexplore.ieee.org/document/6388907}, + doi = {10.1109/IECON.2012.6388907}, + abstract = {In this paper the behavior of core loss coefficients is studied using a new method of core loss separation. This method eliminates the assumption of uniform magnetic field distribution in a material especially at high frequencies. With this separation method, the hysteresis and eddy current coefficients are calculated using the original Steinmetz equation and its derivative. The calculated loss from the coefficients of the two formulas is then compared to the loss from the separation. Results and conclusions are also presented.}, + urldate = {2024-03-07}, + booktitle = {{IECON} 2012 - 38th {Annual} {Conference} on {IEEE} {Industrial} {Electronics} {Society}}, + author = {Akiror, Jemimah.C and Pillay, Pragasen}, + month = oct, + year = {2012}, + keywords = {Core loss, Eddy current loss, hysteresis loss}, + pages = {1927--1933}, +} + +@book{hanselman_brushless_2003, + edition = {Second}, + title = {Brushless {Permanent} {Magnet} {Motor} {Design}}, + isbn = {978-1-932133-63-9}, + abstract = {Explaining techniques for magnetic modelling and circuit analysis, this book shows how magnetic circuit analysis applies to motor design. It describes the major aspects of motor operation and design, and develops design equations for radial flux and axial flux motors. It is intended for electrical, electronics and mechanical engineers.}, + language = {en}, + publisher = {Writers' Collective}, + author = {Hanselman, Duane C.}, + year = {2003}, + note = {Google-Books-ID: vlWSQAAACAAJ}, + keywords = {Technology \& Engineering / Electrical, Technology \& Engineering / Electronics / General, Technology \& Engineering / Mechanical, Technology \& Engineering / Power Resources / Electrical}, +} + +@phdthesis{mccabe_electromagnetic_2021, + type = {Thesis}, + title = {Electromagnetic and {Systems} {Design} of a {Permanent} {Magnet} {Synchronous} {Motor} for an {Electric} {Vehicle}}, + copyright = {In Copyright - Educational Use Permitted}, + url = {https://dspace.mit.edu/handle/1721.1/139215}, + abstract = {This project explores the analysis and design of a Surface Permanent Magnet (SPM) motor for an electric racecar application. Magnetic fields and forces are analyzed using simplified magnetic circuits as well as the more accurate magnetic scalar potential and the Maxwell stress tensor. Thermal analysis is performed to determine peak and continuous current capability. Parameter sweeps are used to optimize machine design for a 20 kW hub motor in a student-built high-performance electric vehicle. The optimization maximizes simulated points scored in the Formula Society of Automotive Engineers (FSAE) competition. Performance is estimated with full-vehicle sensitivities linearized around the point of breaking traction.}, + language = {en}, + urldate = {2024-03-07}, + school = {Massachusetts Institute of Technology}, + author = {McCabe, Rebecca G.}, + month = jun, + year = {2021}, + note = {Accepted: 2022-01-14T14:57:12Z}, +} + +@misc{noauthor_tesla_2024, + title = {Tesla {Investor} {Relations}}, + url = {https://ir.tesla.com/}, + abstract = {Tesla's mission is to accelerate the world's transition to sustainable energy. Today, Tesla builds not only all-electric vehicles but also infinitely scalable clean energy generation and storage products.}, + language = {en}, + urldate = {2024-02-17}, + month = jan, + year = {2024}, +} + +@techreport{hull_economic_nodate, + address = {San Francisco, CA}, + title = {The {Economic} {Value} of {Offshore} {Wind} {Power} in {California}}, + url = {https://www.ethree.com/wp-content/uploads/2019/09/2019-08-08_E3-Castle-Wind-Offshore-Wind-Value-Report-FINAL.pdf}, + urldate = {2024-02-17}, + institution = {Energy and Environmental Economics, Inc. and Castle Wind}, + author = {Hull, Sanderson and Sawyerr, Femi and Mullen, Dan and Olson, Arne and Weinstein, Alla and Knop, Christoph and Kienzle, Sebastian and Black, Steve}, +} + +@misc{noauthor_what_nodate, + title = {What are the {UK} power system benefits from deployments of wave and tidal stream generation?}, + url = {https://www.policyandinnovationedinburgh.org/what-are-the-uk-power-system-benefits-from-deployments-of-wave-and-tidal-stream-generation.html}, + abstract = {This new study quantifies the potential power system benefits that the UK stands to gain through the deployment of marine energy technologies (wave and tidal stream) in domestic waters. These system...}, + language = {en}, + urldate = {2024-02-17}, + journal = {POLICY AND INNOVATION GROUP}, +} + +@misc{noauthor_value_nodate, + title = {Value of innovative offshore renewable energy deployment to the {UK}}, + url = {https://www.policyandinnovationedinburgh.org/value-of-innovative-offshore-renewable-energy-deployment-to-the-uk.html}, + abstract = {C. Cochrane, S. Pennock,  H. Jeffrey, Policy and Innovation Group.  Published on: 03/09/2021 This policy paper from the Supergen ORE Hub , and the Policy and Innovation Group  at the University...}, + language = {en}, + urldate = {2024-02-17}, + journal = {POLICY AND INNOVATION GROUP}, +} + +@article{bensalah_electrical_2022, + title = {Electrical {Generators} for {Large} {Wind} {Turbine}: {Trends} and {Challenges}}, + volume = {15}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {Electrical {Generators} for {Large} {Wind} {Turbine}}, + url = {https://www.mdpi.com/1996-1073/15/18/6700}, + doi = {10.3390/en15186700}, + abstract = {This paper presents an overview of the emerging trends in the development of electrical generators for large wind turbines. To describe the developments in the design of electrical generators, it is necessary to look at the conversion system as a whole, and then, the structural and mechanical performances of the drive train need to be considered. Many drive train configurations have been proposed for large wind turbines; they should ensure high reliability, long availability and reduced maintainability. Although most installed wind turbines are geared, directly driven wind turbines with permanent magnet generators have attracted growing interest in the last few years, which has been in parallel to the continuous increase of the per unit turbine power. The aim of this work is to present the recent commercial designs of electrical generators in large wind turbines. Both the strengths and weaknesses of the existing systems are discussed. The most emerging technologies in high-power, low-speed electrical generators are investigated. Furthermore, a comparative analysis of different electrical generator concepts is performed, and the generators are assessed upon a list of criteria such as the mass, cost, and mass-to-torque ratio. Within the framework of these criteria, it may help to determine whether the electrical generator is technically feasible and economically viable for high-power wind turbines. Finally, this review could help to determine suitable generators for use in large and ultra-large wind energy systems.}, + language = {en}, + number = {18}, + urldate = {2024-02-17}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Bensalah, Amina and Barakat, Georges and Amara, Yacine}, + month = jan, + year = {2022}, + note = {Number: 18}, + keywords = {direct drive, gearless, large wind turbine, multi-megawatt generator, permanent magnet, rare-earth materials, wind energy conversion system}, + pages = {6700}, +} + +@techreport{noauthor_co2_nodate, + title = {{CO2} {EOR} {Primer}}, +} + +@article{faedo_optimal_2017, + title = {Optimal control, {MPC} and {MPC}-like algorithms for wave energy systems: {An} overview}, + volume = {1}, + issn = {2468-6018}, + shorttitle = {Optimal control, {MPC} and {MPC}-like algorithms for wave energy systems}, + url = {https://www.sciencedirect.com/science/article/pii/S2468601817301104}, + doi = {10.1016/j.ifacsc.2017.07.001}, + abstract = {Model predictive control (MPC) has achieved considerable success in the process industries, with its ability to deal with linear and nonlinear models, while observing system constraints and considering future behaviour. Given these characteristics, against the backdrop of the energy maximising control problem for Wave Energy Converters (WECs), with physical constraints on system variables and a non-causal optimal control solution it is, perhaps, natural to consider the application of MPC to the WEC problem. However, the WEC energy maximisation problem requires a significant modification of the traditional MPC objective function, resulting in a potentially non-convex optimisation problem. A variety of MPC formulations for WECs have been proposed, with variations in the WEC model, discretisation method, objective function and optimisation algorithm employed. This paper attempts to provide a critical comparison of the various WEC MPC algorithms, while also presenting WEC MPC algorithms within the broader context of other WEC “optimal” control schemes.}, + urldate = {2024-02-10}, + journal = {IFAC Journal of Systems and Control}, + author = {Faedo, Nicolás and Olaya, Sébastien and Ringwood, John V.}, + month = sep, + year = {2017}, + keywords = {Constrained optimisation, Model predictive control, Optimal control, Receding horizon, Wave energy conversion, Wave energy device}, + pages = {37--56}, +} + +@article{nuij_higher-order_2006, + title = {Higher-order sinusoidal input describing functions for the analysis of non-linear systems with harmonic responses}, + volume = {20}, + issn = {0888-3270}, + url = {https://www.sciencedirect.com/science/article/pii/S088832700500083X}, + doi = {10.1016/j.ymssp.2005.04.006}, + abstract = {For high-precision motion systems, modelling and control design specifically oriented at friction effects is instrumental. The sinusoidal input describing function theory represents an approximative mathematical framework for analysing non-linear system behaviour. This theory, however, limits the description of the non-linear system behaviour to a quasi-linear amplitude-dependent relation between sinusoidal excitation and sinusoidal response. In this paper, an extension to higher-order describing functions is realised by introducing the concept of the harmonics generator. The resulting higher-order sinusoidal input describing functions (HOSIDFs) relate the magnitude and phase of the higher harmonics of the periodic response of the system to the magnitude and phase of a sinusoidal excitation. Based on this extension two techniques to measure HOSIDFs are presented. The first technique is FFT based. The second technique is based on IQ (in-phase/quadrature-phase) demodulation. In a simulation, the measurement techniques have been tested by comparing the simulation results to analytically derived results from a known (backlash) non-linearity. In a subsequent practical case study both techniques are used to measure the changes in dynamic behaviour as a function of drive level due to friction in an electric motor. Both methods prove successful for measuring HOSIDFs.}, + number = {8}, + urldate = {2024-02-10}, + journal = {Mechanical Systems and Signal Processing}, + author = {Nuij, P. W. J. M. and Bosgra, O. H. and Steinbuch, M.}, + month = nov, + year = {2006}, + keywords = {Describing function, Frequency domain analysis, Harmonic distortion, Non-linear systems, System identification}, + pages = {1883--1904}, +} + +@inproceedings{gaebele_incorporating_2023, + title = {Incorporating {Empirical} {Nonlinear} {Efficiency} {Into} {Control} {Co}-{Optimization} of a {Real} {World} {Heaving} {Point} {Absorber} {Using} {WecOptTool}}, + url = {https://dx.doi.org/10.1115/OMAE2023-103899}, + doi = {10.1115/OMAE2023-103899}, + abstract = {Abstract. The open-source WecOptTool was developed to make wave energy converter (WEC) control co-design accessible. WecOptTool is based on the pseudo-spectral method which is capable of efficiently dealing with any linear or nonlinear constraints and nonlinear dynamics by solving the WEC optimal control problem in the time domain using a gradient based optimization algorithm. This work1 presents a control co-optimization study of the AquaHarmonics Inc. heaving point absorber WEC sized for ocean deployment to solve practical industry design problems. Components such as the specific type of generator, the hull shape, and the displaced volume are pre-determined. We co-optimize the WEC’s mass versus mooring line pretension in conjunction with the controller. The optimization is subject to the power-take-off (PTO) dynamics and the rated constraints of the components. In particular, the continuous torque rating is implemented as an explicit constraint, a novel approach for WEC optimization. The PTO dynamics are incorporated into the optimization algorithm via a combination of first principle methods (linear drivetrain model) and empirical efficiency maps (electrical generator) represented as a power loss map. This is a practical method applicable to a variety of PTO architectures and transferable to other WECs. A discussion between using an efficiency coefficient versus a power loss map and their implication for the optimization method is presented. This application of WecOptTool represents a real world WEC by combining simplified models with empirical efficiency data. The WEC, as a dynamically coupled, oscillatory system, requires consideration of the time trajectory dependent power loss for optimizing the average electrical power. This objective function, the modelling approach, and the realistic loss terms makes the common practice of artificially penalizing the reactive power needless.}, + language = {en}, + urldate = {2024-02-06}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Gaebele, Daniel T. and Michelén Ströfer, Carlos A. and Devin, Michael C. and Grasberger, Jeff T. and Coe, Ryan G. and Bacelli, Giorgio}, + month = sep, + year = {2023}, +} + +@article{bacelli_geometric_2013, + title = {A geometric tool for the analysis of position and force constraints in wave energy converters}, + volume = {65}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801813001200}, + doi = {10.1016/j.oceaneng.2013.03.011}, + abstract = {Most wave energy devices are subject to finite constraints on both the power take-off (PTO) stroke length and the maximum force that the PTO can tolerate. It is also often the case that greater stroke lengths can reduce the maximum force in the PTO and vice versa. Ultimately, some informed choice of PTO constraints must be made in order to ensure that PTO constraints are not violated and that the trade-off between position and force constraints is made in such as way that maximum energy is captured by the converter. This paper presents a tool to allow device developers to check the satisfaction of constraints for a given hydrodynamic model and set of sea conditions and, where constraints are not satisfied, shows how to relax the constraints to maximize energy capture. The tool is algebraic, requiring no simulation and the results are presented through intuitive geometrical constructs. Sample application results are presented for single- and two-body wave energy systems.}, + urldate = {2024-01-29}, + journal = {Ocean Engineering}, + author = {Bacelli, Giorgio and Ringwood, John V.}, + month = jun, + year = {2013}, + keywords = {Constraints, Discretization, Power take-off, Wave energy}, + pages = {10--18}, +} + +@article{zou_optimal_2017, + title = {Optimal control of wave energy converters}, + volume = {103}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148116310059}, + doi = {10.1016/j.renene.2016.11.036}, + abstract = {Optimal control theory is applied to compute control for a single-degree-of-freedom heave wave energy converter. The goal is to maximize the energy extraction per cycle. Both constrained and unconstrained optimal control problems are presented. Both periodic and non-periodic excitation forces are considered. In contrast to prior work, it is shown that for this non-autonomous system, the optimal control, in general, includes both singular arc and bang-bang modes. Conditions that determine the switching times to/from the singular arc are derived. Simulation results show that the proposed optimal control solution matches the solution obtained using the complex conjugate control. A generic linear dynamic model is used in the simulations. The main advantage of the proposed control is that it finds the optimal control without the need for wave prediction; it only requires the knowledge of the excitation force and its derivatives at the current time.}, + urldate = {2024-01-29}, + journal = {Renewable Energy}, + author = {Zou, Shangyan and Abdelkhalik, Ossama and Robinett, Rush and Bacelli, Giorgio and Wilson, David}, + month = apr, + year = {2017}, + keywords = {Bang-bang control, Optimal control, Singular arc control, Wave energy conversion}, + pages = {217--225}, +} + +@article{sun_stochastic_2019, + title = {Stochastic control of wave energy converters for optimal power absorption with constrained control force}, + volume = {87}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118718303122}, + doi = {10.1016/j.apor.2019.03.002}, + abstract = {This paper presents an analytical solution derived for optimal control of the power take-off of a single-degree of freedom heave point absorber with constraints on the control force. The optimal control law turns out to be noncausal with a functional dependence on future velocities. To handle this problem, an algorithm for predicting future velocities is derived. Based on the solution the mean (time-averaged) absorbed power in a given sea-state is calculated. The performance of the indicated controller in terms of the mean absorbed power is close to the optimal value obtained by nonlinear programming and better than a controller with feedback from the present displacement, velocity and acceleration, and with optimized gain factors.}, + urldate = {2024-01-29}, + journal = {Applied Ocean Research}, + author = {Sun, Tao and Nielsen, Søren R. K.}, + month = jun, + year = {2019}, + keywords = {Actuator force constraints, Heave point absorber, Optimal power take-off, Wave energy}, + pages = {130--141}, +} + +@article{sichani_constrained_2014, + title = {Constrained optimal stochastic control of non-linear wave energy point absorbers}, + volume = {47}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118714000546}, + doi = {10.1016/j.apor.2014.06.005}, + abstract = {The paper deals with the stochastic optimal control of a wave energy point absorber with strong nonlinear buoyancy forces using the reactive force from the electric generator on the absorber as control force. The considered point absorber has only one degree of freedom, heave motion, which is used to extract energy. Constrains are enforced on the control force to prevent large structural stresses in the floater at specific hot spots with the risk of inducing fatigue damage, or because the demanded control force cannot be supplied by the actuator system due to saturation. Further, constraints are enforced on the motion of the floater to prevent it from hitting the bottom of the sea or to make unacceptable jumps out of the water. The applied control law, which is of the feedback type with feedback from the displacement, velocity, and acceleration of the floater, contains two unprovided gain parameters, which are chosen so the mean (expected value) of the power outtake in the stationary state is optimized. In order to ensure accuracy of the results for each configuration of the controller Monte Carlo simulations have been carried out for various sea-states and the final results have been presented in the paper. The effect of nonlinear buoyancy force – in comparison to linear buoyancy force – and constraints of the controller on the power outtake of the device have been studied in details and supported by numerical simulations.}, + urldate = {2024-01-29}, + journal = {Applied Ocean Research}, + author = {Sichani, M. T. and Chen, J. B. and Kramer, M. M. and Nielsen, S. R. K.}, + month = aug, + year = {2014}, + keywords = {Constrained optimal stochastic control, Irregular sea state, Nonlinear buoyancy force, Wave energy point converter}, + pages = {255--269}, +} + +@article{babarit_numerical_2012, + title = {Numerical benchmarking study of a selection of wave energy converters}, + volume = {41}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148111005672}, + doi = {10.1016/j.renene.2011.10.002}, + abstract = {The aim of this study is to estimate the mean annual power absorption of a selection of eight Wave Energy Converters (WECs) with different working principles. Based on these estimates a set of power performance measures that can be related to costs are derived. These are the absorbed energy per characteristic mass [kWh/kg], per characteristic surface area [MWh/m2], and per root mean square of Power Take Off (PTO) force [kWh/N]. The methodology relies on numerical modelling. For each device, a numerical Wave-to-Wire (W2W) model is built based on the equations of motion. Physical effects are modelled according to the state-of-the-art within hydrodynamic modelling practise. Then, the W2W models are used to calculate the power matrices of each device and the mean annual power absorption at five different representative wave sites along the European Coast, at which the mean level of wave power resource ranges between 15 and 88 kW per metre of wave front. Uncertainties are discussed and estimated for each device. Computed power matrices and results for the mean annual power absorption are assembled in a summary sheet per device. Comparisons of the selected devices show that, despite very different working principles and dimensions, power performance measures vary much less than the mean annual power absorption. With the chosen units, these measures are all shown to be of the order of 1.}, + urldate = {2024-01-29}, + journal = {Renewable Energy}, + author = {Babarit, A. and Hals, J. and Muliawan, M. J. and Kurniawan, A. and Moan, T. and Krokstad, J.}, + month = may, + year = {2012}, + keywords = {Comparison, Mean annual power, Power matrix, Wave energy converter}, + pages = {44--63}, +} + +@article{pena-sanchez_control_2022, + series = {9th {IFAC} {Symposium} on {Mechatronic} {Systems} {MECHATRONICS} 2022}, + title = {Control co-design of power take-off parameters for wave energy systems}, + volume = {55}, + issn = {2405-8963}, + url = {https://www.sciencedirect.com/science/article/pii/S2405896322025848}, + doi = {10.1016/j.ifacol.2022.10.531}, + abstract = {A key component of wave energy converters (WECs), which determines the technical and economic performance of WECs, is the power take-off (PTO) system. This WEC subsystem converts the hydrodynamic excitation of the WEC into useful mechanical and, typically, electrical energy. It is well known that WEC control systems have the capability to significantly enhance the performance of WECs, but are limited in scope by the physical PTO displacement and force constraints. A variety of WEC control algorithms have the capacity to include the PTO constraints within the (constrained) optimal control formulation, delivering performance which takes maximum advantage of the available operational space, but avoiding exceedance of device/PTO specifications. However, little consideration is given to the interplay between the constraint levels and the maximum achievable performance. This paper examines, from an economic perspective, the trade-off between energy receipts and the capital cost of force and displacement constraints in a typical heaving point absorber WEC.}, + number = {27}, + urldate = {2024-01-27}, + journal = {IFAC-PapersOnLine}, + author = {Peña-Sanchez, Yerai and García-Violini, Demián and Ringwood, John V.}, + month = jan, + year = {2022}, + keywords = {Power take-off, constraints, control co-design, energy maximisation, wave energy}, + pages = {311--316}, +} + +@article{de_la_torre-castro_combined_2023, + title = {Combined impact of power take-off capping and of wave resource description on wave energy converter performance}, + volume = {134}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S014111872300038X}, + doi = {10.1016/j.apor.2023.103494}, + abstract = {Wave energy converters (WECs) energy production estimates are key metrics for performance predictions. This study compares four methods for energy production assessment: power matrix, interpolated power matrix, capture length matrix, and a reference method based on the exact omnidirectional spectra for every sea state. Two deployment sites are considered and their wave resource is derived from hindcast databases. The WEC chosen for this study is a two-body self-referenced heaving device characterised using a boundary element method (BEM) numerical model run in time-domain and accounting for some non-linearities. The model also includes power take-off capping, in terms of power capacity and a force cap, independently. A novel metric is introduced to assess the shape similarity between two spectra and it is used to assess the impact of approximating raw spectra with standard ones on energy production estimates. The study shows that the power take-off capping approaches and values and the way the exact resource spectra are approximated have a significant impact WEC energy estimation methods accuracy. Indeed, relative differences in yearly production estimates with respect to the benchmark method vary from 2.4\% to 8.3\% across capping values and estimation methods. It also shows that there is little difference in yearly averaged energy production estimates between the different “matrix based” methods. These differences are of the order of tens of percent for a given power take-off capping configuration and a given site.}, + urldate = {2023-12-12}, + journal = {Applied Ocean Research}, + author = {de la Torre-Castro, L. M. and Pascal, R. C. R. and Perignon, Y. and Babarit, A. and Payne, G. S.}, + month = may, + year = {2023}, + keywords = {Energy production estimates, Power take-off capping, Wave energy, Wave resource characterisation}, + pages = {103494}, +} + +@article{chittick_asymmetric_2009, + title = {An asymmetric suboptimization approach to aerostructural optimization}, + volume = {10}, + issn = {1573-2924}, + url = {https://doi.org/10.1007/s11081-008-9046-2}, + doi = {10.1007/s11081-008-9046-2}, + abstract = {An asymmetric suboptimization method for performing multidisciplinary design optimization is introduced. The objective of the proposed method is to improve the overall efficiency of aerostructural optimization, by simplifying the system-level problem, and thereby reducing the number of calls to a potentially costly aerodynamics solver. To guide a gradient-based optimization algorithm, an extension of the coupled sensitivity equations is developed to include post-optimality information from the structural suboptimization. The optimization of an aircraft wing is performed using linear aerodynamic and structural analyses, and a thorough performance comparison is made between the new approach and the conventional multidisciplinary feasible method. The asymmetric suboptimization method is found to be the more efficient approach when it adequately simplifies the system-level problem, or when there is a large enough discrepancy between disciplinary solution times.}, + language = {en}, + number = {1}, + urldate = {2023-12-04}, + journal = {Optimization and Engineering}, + author = {Chittick, Ian R. and Martins, Joaquim R. R. A.}, + month = mar, + year = {2009}, + keywords = {Asymmetric suboptimization, Coupled post-optimality sensitivity analysis, Multidisciplinary design optimization}, + pages = {133--152}, +} + +@inproceedings{sundarrajan_towards_2021, + title = {Towards a {Fair} {Comparison} between the {Nested} and {Simultaneous} {Control} {Co}-{Design} {Methods} using an {Active} {Suspension} {Case} {Study}}, + issn = {2378-5861}, + url = {https://ieeexplore.ieee.org/abstract/document/9482687}, + doi = {10.23919/ACC50511.2021.9482687}, + abstract = {This paper tackles perhaps the two most common control co-design coordination strategies: simultaneous analysis and design and the nested control problem formulation. Many practical insights into the two strategies are presented using the literature and comprehensive numerical results from a detailed and challenging CCD problem of an active vehicle suspension. The study conducted attempts to provide a fair comparison and discussion between the control co-design coordination implementations. The results indicate a substantial reduction in computational costs over the existing implementations and conclusions on method selection contrary to common assumptions in the literature. However, additional work is needed to provide a robust set of CCD implementation guidelines.}, + urldate = {2023-12-04}, + booktitle = {2021 {American} {Control} {Conference} ({ACC})}, + author = {Sundarrajan, Athul K. and Herber, Daniel R.}, + month = may, + year = {2021}, + pages = {358--365}, +} + +@article{bacelli_numerical_2015, + title = {Numerical {Optimal} {Control} of {Wave} {Energy} {Converters}}, + volume = {6}, + issn = {1949-3037}, + url = {https://ieeexplore.ieee.org/abstract/document/6987295}, + doi = {10.1109/TSTE.2014.2371536}, + abstract = {Energy maximizing control for wave energy converters (WECs) is a nonstandard optimal control problem. While the constrained optimal control problem for WECs has been addressed by model-predictive control strategies, such strategies need to employ cost function modifications due to convexity problems and the algorithms are computationally complex, making real-time implementation difficult. The recently developed family of direct transcription methods offer a promising alternative, since they are computationally efficient and a convex problem results. Moreover, constraints on both the device displacement and velocity, and power take off force, are easily incorporated. Both single-body and multibody device models can be used, as well as arrays of single-body or multibody devices.}, + number = {2}, + urldate = {2023-11-27}, + journal = {IEEE Transactions on Sustainable Energy}, + author = {Bacelli, Giorgio and Ringwood, John V.}, + month = apr, + year = {2015}, + note = {Conference Name: IEEE Transactions on Sustainable Energy}, + pages = {294--302}, +} + +@article{coe_maybe_2021, + title = {Maybe less is more: {Considering} capacity factor, saturation, variability, and filtering effects of wave energy devices}, + volume = {291}, + issn = {0306-2619}, + shorttitle = {Maybe less is more}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261921002701}, + doi = {10.1016/j.apenergy.2021.116763}, + abstract = {While a great deal of research has been performed to quantify and characterize the wave energy resource, there are still open questions about how a wave energy developer should use this wave resource information to design a wave energy converter device to suit a specific environment or, alternatively, to assess potential deployment locations. It is natural to focus first on the impressive magnitudes of power available from ocean waves, and to be drawn to locations where mean power levels are highest. However, a number of additional factors such as intermittency and capacity factor may be influential in determining economic viability of a wave energy converter, and should therefore be considered at the resource level, so that these factors can influence device design decisions. This study examines a set of wave resource metrics aimed towards this end of bettering accounting for variability in wave energy converter design. The results show distinct regional trends that may factor into project siting and wave energy converter design. Although a definitive solution for the optimal size of a wave energy converter is beyond the reaches of this study, the evidence presented does support the idea that smaller devices with lower power ratings may merit closer consideration.}, + urldate = {2023-11-27}, + journal = {Applied Energy}, + author = {Coe, Ryan G. and Ahn, Seongho and Neary, Vincent S. and Kobos, Peter H. and Bacelli, Giorgio}, + month = jun, + year = {2021}, + keywords = {Practical resource, Wave energy converter (WEC), Wave power resource}, + pages = {116763}, +} + +@article{grossmann_systematic_2013, + title = {Systematic modeling of discrete-continuous optimization models through generalized disjunctive programming}, + volume = {59}, + copyright = {Copyright © 2013 American Institute of Chemical Engineers}, + issn = {1547-5905}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/aic.14088}, + doi = {10.1002/aic.14088}, + abstract = {Discrete-continuous optimization problems are commonly modeled in algebraic form as mixed-integer linear or nonlinear programming models. Since these models can be formulated in different ways, leading either to solvable or nonsolvable problems, there is a need for a systematic modeling framework that provides a fundamental understanding on the nature of these models. This work presents a modeling framework, generalized disjunctive programming (GDP), which represents problems in terms of Boolean and continuous variables, allowing the representation of constraints as algebraic equations, disjunctions and logic propositions. An overview is provided of major research results that have emerged in this area. Basic concepts are emphasized as well as the major classes of formulations that can be derived. These are illustrated with a number of examples in the area of process systems engineering. As will be shown, GDP provides a structured way for systematically deriving mixed-integer optimization models that exhibit strong continuous relaxations, which often translates into shorter computational times. © 2013 American Institute of Chemical Engineers AIChE J, 59: 3276–3295, 2013}, + language = {en}, + number = {9}, + urldate = {2023-11-27}, + journal = {AIChE Journal}, + author = {Grossmann, Ignacio E. and Trespalacios, Francisco}, + year = {2013}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/aic.14088}, + keywords = {logic-based optimization, mixed-integer programming, optimization}, + pages = {3276--3295}, +} + +@misc{sundarrajan_open-loop_2023, + title = {Open-{Loop} {Control} {Co}-{Design} of {Semisubmersible} {Floating} {Offshore} {Wind} {Turbines} using {Linear} {Parameter}-{Varying} {Models}}, + url = {http://arxiv.org/abs/2310.13647}, + doi = {10.48550/arXiv.2310.13647}, + abstract = {This paper discusses a framework to design elements of the plant and control systems for floating offshore wind turbines in an integrated manner using linear parameter-varying models. Multiple linearized models derived from aeroelastic simulation software in different operating regions characterized by the incoming wind speed are combined to construct an approximate low-fidelity model of the system. The combined model is then used to generate open-loop, optimal control trajectories as part of a nested control co-design strategy that explores the system's power production and stability using the platform pitch tilt as a proxy in the context of crucial plant and control design decisions. The radial distance between the central and outer columns and the diameter of the outer columns of the semisubmersible platform are the plant design variables. The platform stability and power production are studied for different plant design decisions. The effect of plant decisions on subsequent power production and stability response of the floating wind turbine is quantified in terms of the levelized cost of energy. The results show that the inner-loop constraints and the plant design decisions affect the turbine's power and, subsequently, the cost of the system.}, + urldate = {2023-11-01}, + publisher = {arXiv}, + author = {Sundarrajan, Athul Krishna and Lee, Yong Hoon and Allison, James T. and Zalkind, Daniel and Herber, Daniel}, + month = oct, + year = {2023}, + note = {arXiv:2310.13647 [cs, eess]}, + keywords = {Electrical Engineering and Systems Science - Systems and Control}, +} + +@article{herber_advances_2017, + title = {Advances in combined architecture, plant, and control design}, + url = {https://www.ideals.illinois.edu/items/105359}, + urldate = {2023-11-01}, + author = {Herber, Daniel Ronald}, + year = {2017}, +} + +@article{herber_nested_2018, + title = {Nested and {Simultaneous} {Solution} {Strategies} for {General} {Combined} {Plant} and {Control} {Design} {Problems}}, + volume = {141}, + issn = {1050-0472}, + url = {https://doi.org/10.1115/1.4040705}, + doi = {10.1115/1.4040705}, + abstract = {In this paper, general combined plant and control design or co-design problems are examined. The previous work in co-design theory imposed restrictions on the type of problems that could be posed. This paper lifts many of those restrictions. The problem formulations and optimality conditions for both the simultaneous and nested solution strategies are given. Due to a number of challenges associated with the optimality conditions, practical solution considerations are discussed with a focus on the motivating reasons for using direct transcription (DT) in co-design. This paper highlights some of the key concepts in general co-design including general coupling, the differences between the feasible regions for each strategy, general boundary conditions, inequality path constraints, system-level objectives, and the complexity of the closed-form solutions. Three co-design test problems are provided. A number of research directions are proposed to further co-design theory including tailored solution methods for reducing total computational expense, better comparisons between the two solution strategies, and more realistic test problems.}, + number = {011402}, + urldate = {2023-10-30}, + journal = {Journal of Mechanical Design}, + author = {Herber, Daniel R. and Allison, James T.}, + month = oct, + year = {2018}, +} + +@article{abbas_control_2024, + title = {Control co-design of a floating offshore wind turbine}, + volume = {353}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261923014009}, + doi = {10.1016/j.apenergy.2023.122036}, + abstract = {Several control co-design (CCD) optimizations of floating offshore wind turbines are presented in this work using the newly introduced Wind Energy with Integrated Servo-Control (WEIS) framework. Three methods for parameterizing the primary tuning inputs to the Reference Open-Source Controller are presented and optimized, including a sensitivity-margin constrained controller. WEIS, a detailed, open-source floating offshore wind turbine design optimization tool is then used to conduct CCD optimizations on the International Energy Agency (IEA) 15MW wind turbine on the University of Maine VolturnUS-S semisubmersible platform. The results from optimizations are shown to reduce the levelized cost of energy (LCOE) by approximately 1\% and 4\% when optimizing the tower and platform, respectively. It is also found that the coupling between the tower and control system parameters is weaker than the coupling between the floating system and control system parameters, showing that CCD may not be advantageous for certain problems. Finally, a subset of operational design load cases is run to verify the optimized controller and turbine models.}, + urldate = {2023-10-30}, + journal = {Applied Energy}, + author = {Abbas, Nikhar J. and Jasa, John and Zalkind, Daniel S. and Wright, Alan and Pao, Lucy}, + month = jan, + year = {2024}, + keywords = {Control systems, Floating wind turbines, Multidisciplinary design, Optimization}, + pages = {122036}, +} + +@article{mowers_evaluation_2021, + title = {An evaluation of electricity system technology competitiveness metrics: {The} case for profitability}, + volume = {34}, + issn = {1040-6190}, + shorttitle = {An evaluation of electricity system technology competitiveness metrics}, + url = {https://www.sciencedirect.com/science/article/pii/S1040619021000221}, + doi = {10.1016/j.tej.2021.106931}, + abstract = {In this work we develop standardized functional forms for electricity technology competitiveness metrics and show how the mathematical relationship between value and cost can affect the robustness of the metric. We make the case to replace established metrics with economic profitability metrics – including a new profitability-based adjustment to LCOE. These profitability metrics are shown to be more robust for evaluating technology competitiveness by keeping comparisons on an equivalent monetary basis.}, + number = {4}, + urldate = {2023-10-30}, + journal = {The Electricity Journal}, + author = {Mowers, Matthew and Mai, Trieu}, + month = may, + year = {2021}, + keywords = {Competitiveness metrics, Electricity technology competitiveness, Levelized cost of electricity, Profitability, Renewable energy, System value}, + pages = {106931}, +} + +@phdthesis{andre_sustainable_2022, + title = {Sustainable {Design} of {Electric} {Vertical} {Take}-{Off} and {Landing} {Aircraft} for {Urban} {Air} {Mobility}}, + url = {https://mediatum.ub.tum.de/1618545}, + abstract = {The thesis assesses the environmental impact of electric vertical take-off and landing (eVTOL) aircraft. It develops a methodology for the integrated conceptual design and life cycle assessment of eVTOL that facilitates evaluating different configurations, electrochemical energy carriers, and scenarios. It is shown that eVTOLs can provide a sustainable transportation mode under appropriate circumstances. Sensitivity analyses, case studies, and a novel regression-based conceptual design approach analyze those circumstances and discuss implications of uncertainties.}, + urldate = {2023-10-07}, + school = {Technische Universität München}, + author = {André, Nicolas}, + year = {2022}, +} + +@article{noauthor_reflection_2014, + title = {Reflection of oblique ocean water waves by a vertical porous structure placed on a multi-step impermeable bottom}, + volume = {47}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118714000595}, + doi = {10.1016/j.apor.2014.07.001}, + abstract = {Based on linear water wave theory, wave reflection by a vertical porous structure placed on an elevated impermeable seabed, assumed to consist of a nu…}, + language = {en-US}, + urldate = {2023-10-07}, + journal = {Applied Ocean Research}, + publisher = {Elsevier}, + month = aug, + year = {2014}, + pages = {373--385}, +} + +@article{bacelli_control_2011, + series = {18th {IFAC} {World} {Congress}}, + title = {A control system for a self-reacting point absorber wave energy converter subject to constraints}, + volume = {44}, + issn = {1474-6670}, + url = {https://www.sciencedirect.com/science/article/pii/S1474667016454443}, + doi = {10.3182/20110828-6-IT-1002.03694}, + abstract = {The problem of the maximization of the energy produced by a self reacting point absorber subject to motion restriction is addressed. The main objective is to design a control system suitable for real-time implementation. The method presented for the solution of the optimization problem is based on the approximation of the motion of the device and of the force exerted by the power take off unit by means of a linear combination of basis functions. The result is that the optimal control problem is reformulated as a non linear program where the properties of the cost function and of the constraint are affected by the choice of the basis functions. An example is described where the motion and the force are approximated using Fourier series; an optimization algorithm for the solution of the non linear program is also presented. The control system is implemented and simulated using a real sea profile measured by a waverider buoy.}, + number = {1}, + urldate = {2023-09-13}, + journal = {IFAC Proceedings Volumes}, + author = {Bacelli, Giorgio and Ringwood, John V. and Gilloteaux, Jean-Christophe}, + month = jan, + year = {2011}, + pages = {11387--11392}, +} + +@article{fukui_impedance_2021, + title = {Impedance {Control} {Considering} {Velocity} {Saturation} of a {Series} {Elasticity} {System} with a {Motor}}, + volume = {33}, + doi = {10.20965/jrm.2021.p0833}, + abstract = {Human-machine cooperative robots are required to drive their arms with low impedance and high torque. As a compact mechanism that generates a large torque and has low impedance characteristics, the series elastic drive system, in which an elastic element is inserted between the motor and driving unit, has been proposed. In this paper, we propose a method of applying impedance control to a series elasticity system with a torque-compensating motor that uses a torsion bar as an elastic body that enables its use under high loads. The stability of the system was verified via simulation and experiment by considering the allowable speed and maximum torque of the motor. The experimental results from the conventional system and the proposed system were compared. The proposed system was confirmed to be superior to the conventional system in terms of both stability and tracking performance. Consequently, the effectiveness of our proposed system was confirmed.}, + number = {4}, + journal = {Journal of Robotics and Mechatronics}, + author = {Fukui, Ren and Kusakabe, Yasuhito and Ikeura, Ryojun and Hayakawa, Soichiro}, + year = {2021}, + keywords = {human-robot cooperation, impedance control, robot arm, series elasticity system, velocity saturation}, + pages = {833--842}, +} + +@article{flower_describing-function_1980, + title = {Describing-function method for estimating the performance of a dynamic system having nonlinear-power take-off, with application to wave-power conversion}, + volume = {20}, + issn = {0196-8904}, + url = {https://www.sciencedirect.com/science/article/pii/0196890480900175}, + doi = {10.1016/0196-8904(80)90017-5}, + abstract = {This work reports part of a programme aimed at stimulating the use of control engineering methods and techniques in the wave-power arena. Here we use the Describing-Function method to estimate the performance of a dynamical energy-conversion system (a second-order system in this particular case) with nonlinear damping. The Describing-Function is used to model the nonlinearity, and the system is conceptually re-arranged to appear in closed-loop form; this arrangement is particularly convenient for the application of a graphical method of solution. By this means the motion and the mean-rate of energy conversion of the system can be rapidly evaluated. The method is primarily directed towards solving problems of wave-power conversion by nonlinear devices.}, + number = {2}, + urldate = {2023-08-27}, + journal = {Energy Conversion and Management}, + author = {Flower, J. O. and Knott, G. F.}, + month = jan, + year = {1980}, + keywords = {Describing-Function, Nonlinear, Power conversion, Wave-power}, + pages = {127--134}, +} + +@inproceedings{herber_wave_2014, + title = {Wave {Energy} {Extraction} {Maximization} in {Irregular} {Ocean} {Waves} {Using} {Pseudospectral} {Methods}}, + url = {https://dx.doi.org/10.1115/DETC2013-12600}, + doi = {10.1115/DETC2013-12600}, + abstract = {Energy extraction from ocean waves and conversion to electrical energy is a promising form of renewable energy, yet achieving economic viability of wave energy converters (WECs) has proven challenging. In this article, the design of a heaving cylinder WEC will be explored. The optimal plant (i.e. draft and radius) design space with respect to the design’s optimal control (i.e. power take-off trajectory) for maximum energy production is characterized. Irregular waves based on the Bretschneider wave spectrum are considered. The optimization problem was solved using a pseudospectral method, a direct optimal control approach that can incorporate practical design constraints, such as power flow, actuation force, and slamming. The results provide early-stage guidelines for WEC design. Results show the resonance frequency required for optimal energy production with a regular wave is quite different than the resonance frequency found for irregular waves; specifically, it is much higher.}, + language = {en}, + urldate = {2023-08-27}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Herber, Daniel R. and Allison, James T.}, + month = feb, + year = {2014}, +} + +@article{tom_pseudo-spectral_2017, + title = {Pseudo-spectral control of a novel oscillating surge wave energy converter in regular waves for power optimization including load reduction}, + volume = {137}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801817301403}, + doi = {10.1016/j.oceaneng.2017.03.027}, + abstract = {The aim of this paper is to describe a procedure to maximize the power-to-load ratio of a novel wave energy converter (WEC) that combines an oscillating surge wave energy converter with variable structural components. The control of the power-take-off torque will be on a wave-to-wave timescale, whereas the structure will be controlled statically such that the geometry remains the same throughout the wave period. Linear hydrodynamic theory is used to calculate the upper and lower bounds for the time-averaged absorbed power and surge foundation loads while assuming that the WEC motion remains sinusoidal. Previous work using pseudo-spectral techniques to solve the optimal control problem focused solely on maximizing absorbed energy. This work extends the optimal control problem to include a measure of the surge foundation force in the optimization. The objective function includes two competing terms that force the optimizer to maximize power capture while minimizing structural loads. A penalty weight was included with the surge foundation force that allows control of the optimizer performance based on whether emphasis should be placed on power absorption or load shedding. Results from pseudo-spectral optimal control indicate that a unit reduction in time-averaged power can be accompanied by a greater reduction in surge-foundation force.}, + urldate = {2023-08-27}, + journal = {Ocean Engineering}, + author = {Tom, N. M. and Yu, Y. H. and Wright, A. D. and Lawson, M. J.}, + month = jun, + year = {2017}, + keywords = {Convex optimization, Load shedding, Oscillating surge wave energy converter, Psuedo-spectral control, Variable structures}, + pages = {352--366}, +} + +@article{sepulveda_design_2021, + title = {The design space for long-duration energy storage in decarbonized power systems}, + volume = {6}, + copyright = {2021 The Author(s), under exclusive licence to Springer Nature Limited}, + issn = {2058-7546}, + url = {https://www.nature.com/articles/s41560-021-00796-8}, + doi = {10.1038/s41560-021-00796-8}, + abstract = {Long-duration energy storage (LDES) is a potential solution to intermittency in renewable energy generation. In this study we have evaluated the role of LDES in decarbonized electricity systems and identified the cost and efficiency performance necessary for LDES to substantially reduce electricity costs and displace firm low-carbon generation. Our findings show that energy storage capacity cost and discharge efficiency are the most important performance parameters. Charge/discharge capacity cost and charge efficiency play secondary roles. Energy capacity costs must be ≤US\$20 kWh–1 to reduce electricity costs by ≥10\%. With current electricity demand profiles, energy capacity costs must be ≤US\$1 kWh–1 to fully displace all modelled firm low-carbon generation technologies. Electrification of end uses in a northern latitude context makes full displacement of firm generation more challenging and requires performance combinations unlikely to be feasible with known LDES technologies. Finally, LDES systems with the greatest impact on electricity cost and firm generation have storage durations exceeding 100 h.}, + language = {en}, + number = {5}, + urldate = {2023-05-22}, + journal = {Nature Energy}, + publisher = {Nature Publishing Group}, + author = {Sepulveda, Nestor A. and Jenkins, Jesse D. and Edington, Aurora and Mallapragada, Dharik S. and Lester, Richard K.}, + month = may, + year = {2021}, + note = {Number: 5}, + keywords = {Climate-change mitigation, Energy and society, Energy economics, Energy policy, Energy science and technology}, + pages = {506--516}, +} + +@article{schwartz_value_2023, + title = {The value of fusion energy to a decarbonized {United} {States} electric grid}, + volume = {7}, + issn = {2542-4785, 2542-4351}, + url = {https://www.cell.com/joule/abstract/S2542-4351(23)00075-2}, + doi = {10.1016/j.joule.2023.02.006}, + language = {English}, + number = {4}, + urldate = {2023-05-22}, + journal = {Joule}, + publisher = {Elsevier}, + author = {Schwartz, Jacob A. and Ricks, Wilson and Kolemen, Egemen and Jenkins, Jesse D.}, + month = apr, + year = {2023}, + keywords = {capacity expansion, macro-energy systems, nuclear fusion, technology assessment, tokamaks}, + pages = {675--699}, +} + +@inproceedings{mccabe_system_2023, + address = {Boston, MA, USA}, + title = {System {Level} {Techno}-{Economic} and {Environmental} {Design} {Optimization} for {Ocean} {Wave} {Energy}}, + author = {McCabe, Rebecca and Dietrich, Madison and Liu, Alan and Haji, Maha}, + month = aug, + year = {2023}, +} + +@article{gray_openmdao_2019, + title = {{OpenMDAO}: an open-source framework for multidisciplinary design, analysis, and optimization}, + volume = {59}, + issn = {1615-1488}, + shorttitle = {{OpenMDAO}}, + url = {https://doi.org/10.1007/s00158-019-02211-z}, + doi = {10.1007/s00158-019-02211-z}, + abstract = {Multidisciplinary design optimization (MDO) is concerned with solving design problems involving coupled numerical models of complex engineering systems. While various MDO software frameworks exist, none of them take full advantage of state-of-the-art algorithms to solve coupled models efficiently. Furthermore, there is a need to facilitate the computation of the derivatives of these coupled models for use with gradient-based optimization algorithms to enable design with respect to large numbers of variables. In this paper, we present the theory and architecture of OpenMDAO, an open-source MDO framework that uses Newton-type algorithms to solve coupled systems and exploits problem structure through new hierarchical strategies to achieve high computational efficiency. OpenMDAO also provides a framework for computing coupled derivatives efficiently and in a way that exploits problem sparsity. We demonstrate the framework’s efficiency by benchmarking scalable test problems. We also summarize a number of OpenMDAO applications previously reported in the literature, which include trajectory optimization, wing design, and structural topology optimization, demonstrating that the framework is effective in both coupling existing models and developing new multidisciplinary models from the ground up. Given the potential of the OpenMDAO framework, we expect the number of users and developers to continue growing, enabling even more diverse applications in engineering analysis and design.}, + language = {en}, + number = {4}, + urldate = {2023-03-01}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Gray, Justin and Hwang, John and Martins, Joaquim and Moore, Kenneth and Naylor, Bret}, + year = {2019}, + pages = {1075--1104}, +} + +@techreport{bhatnagar_grid_2021, + address = {Richland, WA (United States)}, + title = {Grid {Value} {Proposition} of {Marine} {Energy}}, + url = {https://www.osti.gov/biblio/1833512}, + doi = {10.2172/1833512}, + abstract = {Marine energy technologies convert the energy of ocean waves, and tidal, river, and ocean currents into electricity and other forms of usable energy. The marine energy resource potential in the United States is significant and geographically diverse, with a study commissioned by the U.S. Department of Energy estimating that the nation’s annual marine energy potential is approximately 2,300 TWh/year across the 50 states, or greater than 57 percent of U.S. electricity generation in 2019. However, the marine energy industry still faces hurdles to commercialization. While high costs relative to wind and solar remain a key challenge, other hurdles relate to marine energy’s value streams not being well characterized and not captured by traditional energy comparison metrics like the levelized cost of energy. To address this challenge, this project undertakes several types of analyses to identify and illustrate value propositions for marine energy resources. It provides a fresh framework for considering electric system benefits based on unique marine energy attributes, and provides analyses illustrating and quantifying those benefits. The authors find many opportunities for the deployment of marine energy technologies both in the near term and within typical utility planning timeframes (i.e. up to 20 years). From a resource and technology perspective, marine energy resources can deliver distinct and valuable benefits to different configurations of the grid, whether the bulk system, isolated distribution systems, or remote communities, islands, and microgrids. Marine energy resources can be valuable in increasing technology diversity in a generation portfolio, providing energy where it is otherwise difficult to come by, supporting local resiliency, complementing and being complemented by other resources including solar, wind, and energy storage, and avoiding land constraints.}, + language = {English}, + number = {PNNL-31123}, + urldate = {2023-03-07}, + institution = {Pacific Northwest National Lab}, + author = {Bhatnagar, Dhruv and Bhattacharya, Saptarshi and Preziuso, Danielle and Hanif, Sarmad and O'Neil, Rebecca and Alam, Md and Chalishazar, Vishvas and Newman, Sarah and Lessick, Jennifer and Medina, Gabriel Garcia and Douville, Travis and Robertson, Bryson and Busch, Jason and Kilcher, Levi and Yu, Y}, + year = {2021}, +} + +@techreport{previsic_future_2012, + title = {The {Future} {Potential} of {Wave} {Power} in the {United} {States}}, + doi = {10.13140/RG.2.2.24238.05444}, + abstract = {The theoretical ocean wave energy resource potential exceeds 50\% of the annual domestic energy demand of the United States, is located close to coastal population centers, and, although variable in nature, may be more consistent and predictable than some other renewable generation technologies. As a renewable electricity generation technology, ocean wave energy offers a low air pollutant option for diversifying the +U.S. electricity generation portfolio. Furthermore, the output characteristics of these technologies may complement other renewable technologies. + +This study addresses the following: +(1) The theoretical, technical and practical potential for electricity generation from wave energy +(2) The present lifecycle cost profile (Capex, Opex, and Cost of Electricity) of wave energy conversion +technology at a reference site in Northern California at different plant scales +(3) Cost of electricity variations as a function of deployment site, considering technical, geo-spatial and +and electric grid constraints +(4) Technology cost reduction pathways +(5) Cost reduction targets at which the technology will see significant deployment within US markets, explored through a series of deployment scenarios}, + author = {Previsic, Mirko and Eppler, Jeff and Hand, Mohammed and Heimiller, Donna and Short, Walter and Eurek, Kelly}, + month = aug, + year = {2012}, +} + +@inproceedings{coe_minimizing_2022, + title = {Minimizing {Cost} in a 100\% {Renewable} {Electricity} {Grid}: {A} {Case} {Study} of {Wave} {Energy} in {California}}, + shorttitle = {Minimizing {Cost} in a 100\% {Renewable} {Electricity} {Grid}}, + url = {https://asmedigitalcollection.asme.org/OMAE/proceedings-abstract/OMAE2022/85932/1148047}, + doi = {10.1115/OMAE2022-80731}, + abstract = {Abstract. Wave energy converters have yet to reach broad market viability. Traditionally, levelized cost of energy has been considered the ultimate stage gate through which wave energy developers must pass in order to find success (i.e., the levelized cost of wave energy must be less than that of solar and wind). However, real world energy decisions are not based solely on levelized cost of energy. In this study, we consider the energy mix in California in the year 2045, upon which the state plans to achieve zero carbon energy production. By considering temporal electricity production and consumption, we are able to perform a more informed analysis of the decision process to address this challenge. The results show that, due to high level of ocean wave energy in the winter months, wave energy provides a valuable complement to solar and wind, which have higher production in the summer. Thus, based on this complementary temporal aspect, wave energy appears cost-effective, even when the cost of installation and maintenance is twice that of solar and wind.}, + language = {en}, + urldate = {2023-03-01}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Coe, Ryan and Lavidas, George and Bacelli, Giorgio and Kobos, Peter and Neary, Vincent}, + month = oct, + year = {2022}, +} + +@incollection{roy_mixed_nodate, + title = {A {Mixed} {Integer} {Efficient} {Global} {Optimization} {Algorithm} with {Multiple} {Infill} {Strategy} - {Applied} to a {Wing} {Topology} {Optimization} {Problem}}, + urldate = {2023-03-13}, + booktitle = {{AIAA} {Scitech} 2019 {Forum}}, + publisher = {American Institute of Aeronautics and Astronautics}, + author = {Roy, Satadru and Crossley, William and Stanford, Bret and Moore, Kenneth and Gray, Justin}, +} + +@article{sobieszczanski-sobieski_multidisciplinary_1997, + title = {Multidisciplinary aerospace design optimization: survey of recent developments}, + volume = {14}, + issn = {1615-1488}, + shorttitle = {Multidisciplinary aerospace design optimization}, + url = {https://doi.org/10.1007/BF01197554}, + doi = {10.1007/BF01197554}, + abstract = {The increasing complexity of engineering systems has sparked rising interest in multidisciplinary optimization (MDO). This paper surveys recent publications in the field of aerospace, in which the interest in MDO has been particularly intense. The primary c hallenges in MDO are computational expense and organizational complexity. Accordingly, this survey focuses on various methods used by different researchers to address these challenges. The survey is organized by a breakdown of MDO into its conceptual components, reflected in sections on mathematical modelling, approximation concepts, optimization procedures, system sensitivity, and human interface. Because the authors' primary area of expertise is in the structures discipline, the majority of the references focus on the interaction of this discipline with others. In particular, two sections at the end of this review focus on two interactions that have recently been pursued with vigour: the simultaneous optimization of structures and aerodynamics and the simultaneous optimization of structures with active control.}, + language = {en}, + number = {1}, + urldate = {2021-10-20}, + journal = {Structural optimization}, + author = {Sobieszczanski-Sobieski, J. and Haftka, R.}, + month = aug, + year = {1997}, + pages = {1--23}, +} + +@techreport{kilcher_marine_2021, + title = {Marine {Energy} in the {United} {States}: {An} {Overview} of {Opportunities}}, + shorttitle = {Marine {Energy} in the {United} {States}}, + url = {https://www.osti.gov/servlets/purl/1766861/}, + doi = {10.2172/1766861}, + language = {en}, + number = {NREL/TP-5700-78773}, + urldate = {2021-10-19}, + institution = {NREL}, + author = {Kilcher, Levi and Fogarty, Michelle and Lawson, Michael}, + month = feb, + year = {2021}, +} + +@book{sterman_business_2000, + title = {Business {Dynamics}: {Systems} {Thinking} and {Modeling} for a {Complex} {World}}, + isbn = {978-0-07-231135-8}, + shorttitle = {Business {Dynamics}}, + abstract = {Today's leading authority on the subject of this text is the author, MIT Standish Professor of Management and Director of the System Dynamics Group, John D. Sterman. Sterman's objective is to explain, in a true textbook format, what system dynamics is, and how it can be successfully applied to solve business and organizational problems. System dynamics is both a currently utilized approach to organizational problem solving at the professional level, and a field of study in business, engineering, and social and physical sciences.}, + language = {en}, + publisher = {Irwin/McGraw-Hill}, + author = {Sterman, John}, + year = {2000}, +} + +@article{ricks_value_2022, + title = {The value of in-reservoir energy storage for flexible dispatch of geothermal power}, + volume = {313}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261922002537}, + doi = {10.1016/j.apenergy.2022.118807}, + abstract = {Geothermal systems making use of advanced drilling and well stimulation techniques have the potential to provide tens to hundreds of gigawatts of clean electricity generation in the United States by 2050. With near-zero variable costs, geothermal plants have traditionally been envisioned as providing “baseload” power, generating at their maximum rated output at all times. However, as variable renewable energy sources (VREs) see greater deployment in energy markets, baseload power is becoming increasingly less competitive relative to flexible, dispatchable generation and energy storage. Herein we conduct an analysis of the potential for future geothermal plants to provide both of these services, taking advantage of the natural properties of confined, engineered geothermal reservoirs to store energy in the form of accumulated, pressurized geofluid and provide flexible load-following generation. We develop a linear optimization model based on multi-physics reservoir simulations that captures the transient pressure and flow behaviors within a confined, engineered geothermal reservoir. We then optimize the investment decisions and hourly operations of a power plant exploiting such a reservoir against a set of historical and modeled future electricity price series. We find that operational flexibility and in-reservoir energy storage can significantly enhance the value of geothermal plants in markets with high VRE penetration, with energy value improvements of up to 60\% relative to conventional baseload plants operating under identical conditions. Across a range of realistic subsurface and operational conditions, our modeling demonstrates that confined, engineered geothermal reservoirs can provide large and effectively free energy storage capacity, with round-trip storage efficiencies comparable to those of leading grid-scale energy storage technologies. Optimized operational strategies indicate that flexible geothermal plants can provide both short- and long-duration energy storage, prioritizing output during periods of high electricity prices. Sensitivity analysis assesses the variation in outcomes across a range of subsurface conditions and cost scenarios.}, + language = {en}, + urldate = {2023-05-15}, + journal = {Applied Energy}, + author = {Ricks, Wilson and Norbeck, Jack and Jenkins, Jesse}, + month = may, + year = {2022}, + keywords = {EGS, Flexibility, Geothermal, Solar, Storage, Wind}, + pages = {118807}, +} + +@article{lopez-garza_fuzzy_2022, + title = {Fuzzy {Logic} and {Linear} {Programming}-{Based} {Power} {Grid}-{Enhanced} {Economical} {Dispatch} for {Sustainable} and {Stable} {Grid} {Operation} in {Eastern} {Mexico}}, + volume = {15}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/15/11/4069}, + doi = {10.3390/en15114069}, + abstract = {Sustainable, stable, and cost-optimized operation of power grids must be the main objectives of power grid operators and electric utilities. The energy transition towards a preponderant green energy economy requires innovative solutions to enhance the power grid economic dispatches looking for a better allocation of the energy demand among the diverse renewable and fossil fuel energy plants. Green renewable energy systems must be preferred over fossil fuel generators when they are available. However, fossil plants are still required to be kept operational due to the variability and uncertainty of renewable energy plants. This study proposes a hybrid rational economic dispatch model that combines a cost minimization linear model enhanced with a fuzzy logic system for decision-making on wind and hydropower minimum and maximum generation levels. The model considers the intermittency of wind energy and recognizes the strategic value of hydropower as energy storage. The results of the model with real data taken from wind, hydroelectric, geothermal, nuclear, bioenergy, and fossil fuel power plants in the eastern region of Mexico show that a fairer, rational, and cost-optimized power grid economic dispatch can be achieved with the proposed approach.}, + language = {en}, + number = {11}, + urldate = {2023-03-27}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {López-Garza, Esmeralda and Domínguez-Cruz, René Fernando and Martell-Chávez, Fernando and Salgado-Tránsito, Iván}, + month = jan, + year = {2022}, + note = {Number: 11}, + keywords = {economic dispatch, optimization of generation grids, reliability power grid}, + pages = {4069}, +} + +@techreport{united_nations_transforming_2015, + title = {Transforming our {World}: {The} 2030 {Agenda} for {Sustainable} {Development}}, + url = {https://sdgs.un.org/publications/transforming-our-world-2030-agenda-sustainable-development-17981}, + number = {A/RES/70/1}, + urldate = {2023-03-25}, + institution = {United Nations Department of Economic and Social Affairs}, + author = {{United Nations}}, + year = {2015}, +} + +@article{wu_dynamic_2014, + title = {Dynamic economic dispatch of a microgrid: {Mathematical} models and solution algorithm}, + volume = {63}, + issn = {0142-0615}, + shorttitle = {Dynamic economic dispatch of a microgrid}, + url = {https://www.sciencedirect.com/science/article/pii/S0142061514003482}, + doi = {10.1016/j.ijepes.2014.06.002}, + abstract = {Dynamic economic dispatch of a microgrid is better suited to the requirements of a system in actual operation because it not only considers the lowest cost in a scheduling cycle but also coordinates between different distribution generations (DGs) over many periods. So it is very significant to research the dynamic economic dispatch of a microgrid. Since wind energy and solar energy are subject to random variations and intervals, there is great difficulty in solving the dynamic economic dispatch. In this paper, we establish a combined heat and power (CHP) microgrid system which includes wind turbines (WT), photovoltaic arrays (PV), diesel engines (DE), a micro-turbine (MT), a fuel cell (FC) and a battery (BS). Comprehensively considering the operation cost and the pollutant treatment cost of the microgrid system, we choose the maximum comprehensive benefits as the objective function for the dynamic economic dispatch. At the same time, we establish the spinning reserve probability constraints of the microgrid considering the influence of uncertainty factors such as the fluctuation of the renewable energy, load fluctuation error, and fault shutdown of the unit. Also researched are four different operation scheduling strategies under grid-connected mode and island mode of the microgrid. An improved particle swarm optimization (PSO) algorithm combined with Monte Carlo simulation is used to solve the objective function. With the example system, the proposed models and improved algorithm are verified. When the microgrid is running under the grid-connected mode, we discuss the influence of different scheduling strategies, optimization goals and reliability indexes on the dynamic economic dispatch. And when the microgrid is running under the island mode, we discuss the influence of the uncertainty factors and the capacityof the battery on the dynamic economic dispatch. The presented research can provide some reference for dynamic economic dispatch of microgrid on making full use of renewable energy and improving the microgrid system reliability.}, + language = {en}, + urldate = {2023-03-16}, + journal = {International Journal of Electrical Power \& Energy Systems}, + author = {Wu, Hongbin and Liu, Xingyue and Ding, Ming}, + month = dec, + year = {2014}, + keywords = {Dynamic economic dispatch, Improved particle swarm optimization, Microgrid, Monte Carlo simulation, Operation scheduling strategies, Uncertainty}, + pages = {336--346}, +} + +@techreport{yang_reliability_2020, + type = {Deliverable}, + title = {Reliability, {Availability}, {Maintainability} and {Survivability} {Assessment} {Tool} – {Alpha} version}, + url = {https://www.dtoceanplus.eu/content/download/5623/file/DTOceanPlus_D6.3_Systems%20RAMS%20Tools_alpha_AAU_20200430_v1.0.pdf}, + number = {D6.3}, + institution = {Aalborg University}, + author = {Yang, Yi and Nambiar, Amup and Luxcey, Neil and Fonseca, Francisco and Amaral, Luis}, + month = apr, + year = {2020}, +} + +@techreport{correia_da_fonseca_system_2019, + type = {Deliverable}, + title = {System {Lifetime} {Costs} {Tools} - alpha version}, + url = {https://www.dtoceanplus.eu/content/download/4457/file/DTOceanPlus_D6.4_System_Lifetime_Costs_WavEC_20191219_v1.0.pdf%20citation%20link%20for%20dtoceanslc}, + number = {D6.4}, + institution = {WavEC}, + author = {Correia da Fonseca, F. X. and Amaral, Luis and González Armayor, Amorina and Cândido, José and Arede, Filipe and Henderson, Jillian and Hudson, Ben and Nava, Vincenzo and Tunga, Ines and Petrov, Alexey}, + month = dec, + year = {2019}, +} + +@article{pan_technological_2007, + series = {Sustainability and {Cost}-{Benefit} {Analysis}}, + title = {Technological change in energy systems: {Learning} curves, logistic curves and input–output coefficients}, + volume = {63}, + issn = {0921-8009}, + shorttitle = {Technological change in energy systems}, + url = {https://www.sciencedirect.com/science/article/pii/S0921800907000912}, + doi = {10.1016/j.ecolecon.2007.01.013}, + abstract = {Learning curves have recently been widely adopted in climate-economy models to incorporate endogenous change of energy technologies, replacing the conventional assumption of an autonomous energy efficiency improvement. However, there has been little consideration of the credibility of the learning curve. The current trend that many important energy and climate change policy analyses rely on the learning curve means that it is of great importance to critically examine the basis for learning curves. Here, we analyse the use of learning curves in energy technology, usually implemented as a simple power function. We find that the learning curve cannot separate the effects of price and technological change, cannot reflect continuous and qualitative change of both conventional and emerging energy technologies, cannot help to determine the time paths of technological investment, and misses the central role of R\&D activity in driving technological change. We argue that a logistic curve of improving performance modified to include R\&D activity as a driving variable can better describe the cost reductions in energy technologies. Furthermore, we demonstrate that the top-down Leontief technology can incorporate the bottom-up technologies that improve along either the learning curve or the logistic curve, through changing input–output coefficients. An application to UK wind power illustrates that the logistic curve fits the observed data better and implies greater potential for cost reduction than the learning curve does.}, + language = {en}, + number = {4}, + urldate = {2023-03-14}, + journal = {Ecological Economics}, + author = {Pan, Haoran and Köhler, Jonathan}, + month = sep, + year = {2007}, + keywords = {Input–output coefficients, Learning curve, Logistic curve, Technological change, UK wind power}, + pages = {749--758}, +} + +@book{simpson_product_2006, + address = {New York, NY}, + title = {Product {Platform} and {Product} {Family} {Design}}, + isbn = {978-0-387-25721-1 978-0-387-29197-0}, + url = {http://link.springer.com/10.1007/0-387-29197-0}, + doi = {10.1007/0-387-29197-0}, + language = {en}, + urldate = {2023-03-13}, + publisher = {Springer US}, + editor = {Simpson, Timothy W. and Siddique, Zahed and Jiao, Jianxin Roger}, + year = {2006}, + keywords = {architecture, capacity, design, development, innovation, management, manufacturing, mass customization, platform design, product design, product development, product family design, production, pruduction efficiency, technology roadmap}, +} + +@techreport{noauthor_system_2023, + title = {The system benefits of ocean energy to {European} power systems}, + url = {https://evolveenergy.eu/wp-content/uploads/2023/01/EVOLVE-technical-note-The-system-benefits-of-ocean-energy-to-European-power-systems.pdf}, + institution = {EVOLVE Consortium}, + month = jan, + year = {2023}, +} + +@book{crawley_system_2016, + title = {System {Architecture}: {Strategy} and {Product} {Development} for {Complex} {Systems}}, + isbn = {978-0-13-397534-5}, + shorttitle = {System {Architecture}}, + abstract = {For courses in engineering and technical management Architecture and Function of Complex Systems System architecture is the study of early decision making in complex systems. This text teaches how to capture experience and analysis about early system decisions, and how to choose architectures that meet stakeholder needs, integrate easily, and evolve flexibly. With case studies written by leading practitioners, from hybrid cars to communications networks to aircraft, this text showcases the science and art of system architecture.}, + language = {en}, + publisher = {Pearson}, + author = {Crawley, Edward and Cameron, Bruce and Selva, Daniel}, + year = {2016}, + note = {Google-Books-ID: 67TuoQEACAAJ}, +} + +@techreport{costello_wavesparc_2019, + title = {{WaveSPARC}: {Evaluation} of {Innovation} {Techniques} for {Wave} {Energy}.}, + shorttitle = {{WaveSPARC}}, + url = {https://www.osti.gov/biblio/1641798}, + abstract = {Abstract not provided.}, + language = {English}, + number = {SAND2019-10104C}, + urldate = {2023-03-07}, + institution = {Sandia National Lab. (SNL-NM), Albuquerque, NM (United States)}, + author = {Costello, Ronan and Nielsen, Kim and Weber, Jochem and Tom, Nate and Roberts, Jesse D.}, + month = aug, + year = {2019}, +} + +@inproceedings{trueworthy_set-based_2019, + address = {Naples, Italy}, + title = {A {Set}-{Based} {Design} approach for the design of high-performance wave energy converters}, + abstract = {The objective of this paper is to introduce an approach for designing wave energy converters (WECs) that can be implemented early during the conceptual design phase, enabling downstream convergence on higher performance concepts. Currently, WEC concepts span a wide design space which includes a high number of functionally dissimilar devices. The concept-agnostic assessment of WEC techno-economic performance, the Technology Performance Level (TPL) metric [1], provides designers with a set of customer requirements upon which devices can be assessed. Those requirements were translated to functional requirements using a systems engineering approach [2]. Despite the framework that TPL and the functional requirements provide, WEC designers have limited guidance in approach to conceptual design. This often results in premature commitment to a single functional concept that can limit device performance, even if later-stage design optimization techniques are used [3]. TPL has made significant strides in helping designers understand the requirements of WEC design. This work aims to guide designers toward design processes which can help them meet those requirements. This paper proposes a Set-Based Design approach to WEC conceptual design which could enable the generation of high-performance concepts faster and with less expense. Set-Based Design is a design process in which engineers ideate a large set of potential solutions and work with critical stakeholders to ensure convergence on an optimal concept [4]. The process was chosen specifically due to its ability to directly facilitate design decision making. We tested the design method through a design workshop in which participants were given design requirements and asked to generate WEC concepts. Though the workshop was constrained by time, number of participants, and background of participants, it was a good proof of concept for the applicability of this design methodology and provided insight on how to continue developing WEC design methodologies. SBD is a methodology that can help designers understand and design to the conflicting requirements of WEC design. SBD also allows designers to avoid making decisions based on imprecise information, which may ultimately lead to more efficient generation of +high-performance concepts.}, + author = {Trueworthy, Ali and DuPont, Bryony and Maurer, Benjamin and Cavagnaro, Robert}, + year = {2019}, +} + +@misc{noauthor_ali_nodate, + title = {Ali {TRUEWORTHY} {\textbar} {PhD} {Student} {\textbar} {Oregon} {State} {University}, {Oregon} {\textbar} {OSU} {\textbar} {School} of {Mechanical}, {Industrial} and {Manufacturing} {Engineering} {\textbar} {Research} profile}, + url = {https://www.researchgate.net/profile/Ali-Trueworthy-2}, + abstract = {I work in wave energy from both the engineering and the humanities disciplines. Currently, I am doing work related to WEC design methodologies and the relationships between wave energy and climate change.}, + language = {en}, + urldate = {2023-03-07}, + journal = {ResearchGate}, +} + +@article{bubbar_method_2018, + title = {A method for comparing wave energy converter conceptual designs based on potential power capture}, + volume = {115}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148117308674}, + doi = {10.1016/j.renene.2017.09.005}, + abstract = {The design space for ocean wave energy converters is notable for its divergence. To facilitate convergence, and thereby support commercialization, we present a new simple method for analysis and comparison of alternative device architectures at an early stage of the design process. Using Thévenin's theorem, Falnes crafted an ingenious solution for the monochromatic optimal power capture of heaving point absorber devices by forming a mechanical impedance matching problem between the device and the power take-off. However, his solutions are limited by device architecture complexity. In this paper, we use the mechanical circuit framework to extend Falnes' method to form and solve the impedance matching problem and calculate the optimal power capture for converter architectures of arbitrary complexity. The new technique is first applied to reprove Falnes' findings and then to assess a complex converter architecture, proposed by Korde. This work also provides insight into a master-slave relationship between the geometry and power take-off force control problems that are inherent to converter design, and it reveals a hierarchy of distinct design objectives unbeknownst to Korde for his device. Finally, we show how application of the master-slave principle leads to the reduction in the dimensionality of the associated design space.}, + language = {en}, + urldate = {2023-03-07}, + journal = {Renewable Energy}, + author = {Bubbar, K. and Buckham, B. and Wild, P.}, + month = jan, + year = {2018}, + keywords = {Design convergence, Geometry control, Impedance matching, Mechanical circuits, Optimal PTO force control, Optimal power capture, Thévenin's theorem, WEC canonical form}, + pages = {797--807}, +} + +@book{vogtlander_lca-based_2010, + address = {Oegetgeest, The Netherlands}, + series = {Sustainable {Design} {Series} of {Delft} {University} of {Technology}}, + title = {{LCA}-based assessment of sustainability: the {Eco}-costs/{Value} {Ratio} ({EVR})}, + url = {https://www.ecocostsvalue.com/EVR/img/references%20ecocosts/Book_EVR.pdf}, + publisher = {Sustainability Impact Metrics}, + author = {Vogtlander, Joost G and Baetens, Bianca and Bijma, Arianne and Brandjes, Eduard and Lindeijer, Erwin and Segers, Merel and Witte, Flip and Brezet, J.C. and Hendriks, Ch.F.}, + year = {2010}, +} + +@techreport{araignous_environmental_2020, + type = {Deliverable}, + title = {Environmental and {Social} {Acceptance} {Tools} - alpha version}, + url = {https://www.dtoceanplus.eu/content/download/4813/file/DTOceanPlus_D6.5_ESA_alpha_FEM_20200227_v1.0.pdf}, + number = {D6.5}, + institution = {France Energies Marines}, + author = {Araignous, E and Safi, G}, + month = feb, + year = {2020}, +} + +@article{de_faria_optimizing_2022, + title = {Optimizing offshore renewable portfolios under resource variability}, + volume = {326}, + issn = {0306-2619}, + url = {https://www.sciencedirect.com/science/article/pii/S0306261922012697}, + doi = {10.1016/j.apenergy.2022.120012}, + abstract = {The deployment of offshore wind, wave, and ocean current technologies can be coordinated to provide maximum economic benefit. We develop a model formulation based on Mean-Variance portfolio theory to identify the optimal site locations for a given number of wind, wave, and ocean current turbines subject to constraints on their energy collection system and the maximum number of turbines per site location. A model relaxation is also developed to improve the computational efficiency of the optimization process, allowing the inclusion of more than 5000 candidate generation sites. The model is tested using renewable resource estimates from the coast of North Carolina, along the eastern US coast. Different combinations of technology-specific offshore technologies are compared in terms of their levelized cost of electricity and energy variability. The optimal portfolio results are then included in a capacity expansion model to derive economic targets that make the offshore portfolios cost-competitive with other generating technologies. Results of this work indicate that the integration of different offshore technologies can help to decrease the energy variability associated with marine energy resources. Furthermore, this research shows that substantial cost reductions are still necessary to realize the deployment of these technologies in the region investigated.}, + language = {en}, + urldate = {2023-03-07}, + journal = {Applied Energy}, + author = {de Faria, Victor A. D. and de Queiroz, Anderson R. and DeCarolis, Joseph F.}, + month = nov, + year = {2022}, + keywords = {Energy economics, Energy system planning, Ocean current energy, Offshore renewable energy, Portfolio optimization, Wave energy, Wind energy}, + pages = {120012}, +} + +@techreport{mai_competitiveness_2021, + title = {Competitiveness {Metrics} for {Electricity} {System} {Technologies}}, + url = {https://www.osti.gov/biblio/1765599}, + doi = {10.2172/1765599}, + abstract = {The relative economic competitiveness of power generation technologies is a topic of much interest to diverse electric industry participants. However, assessing competitiveness can be challenging as it requires considering both total costs and total system value of each technology, which are complicated by the (1) numerous and diverse grid services needed to operate a reliable power system; (2) variations in the economic value of the grid services with system state and location, and over multiple timescales, due to the challenges of transporting and storing electricity; and (3) the unique characteristics of different electric system assets. Ideally, metrics designed or used to convey technology competitiveness must consider these complexities, but existing metrics often fall short. For example, the levelized cost of energy does not consider the system economic value of the various technologies nor does it consider services beyond electricity production. Various other metrics have been designed with the purpose of more-accurately communicating the economic viability of electric system technologies. In this report, we summarize the primary sources and components of costs and value and review the known competitiveness metrics by presenting their definitions, applications, advantages, and disadvantages. We also introduce a new set of competitiveness metrics, which we refer to as System Profitability metrics, that more-directly applies the economic principles of return-on-investment to electric system technologies. We use conceptual examples to show how the System Profitability metrics better reflect economic viability and relative technology competitiveness compared with existing metrics. We also describe how competitiveness metrics can be quantified using optimization-based models and demonstrate this capability using a U.S. electric sector capacity expansion model.}, + language = {English}, + number = {NREL/TP-6A20-72549}, + urldate = {2023-03-07}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Mai, Trieu and Mowers, Matthew and Eurek, Kelly}, + month = feb, + year = {2021}, +} + +@techreport{jenne_powering_2021, + title = {Powering the {Blue} {Economy}: {Economics} of {Marine} {Renewable} {Energy} {Systems}}, + shorttitle = {Powering the {Blue} {Economy}}, + url = {https://www.osti.gov/biblio/1811994}, + abstract = {This presentation, part of the Policy and Innovation Drivers Shaping the Market for Marine Renewable Energy panel of the 2020 Marine Renewable Energy Conference: On and Off the Grid, moderated by Leslie-Ann McGee, Assistant Director of the Consortium for Marine Robotics at the Woods Hole Oceanographic Institution and Program Manager, Cape Cod Blue Economy Foundation, delves into government policies incentivizing technological advances, collaborative models for technology development, market trends, and permitting hurdles. Panelists include: Jennifer Garson, Senior Advisor, U.S. Dept. of Energy Lead for the Powering the Blue Economy Initiative; Henry Jeffrey, Chairman of the Technology Collaboration Programme for Ocean Energy Systems, University of Edinburgh; Alf Carroll, SBIR Blackbelt and Ocean Energy SME, Raytheon Technologies; Walter Schurtenberger, Founder, Hydrokinetic Energy Corp.; and Dale "Scott" Jenne, Engineer, National Renewable Energy Laboratory.}, + language = {English}, + number = {NREL/PR-5700-78328}, + urldate = {2023-03-07}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Jenne, Scott}, + month = jul, + year = {2021}, +} + +@techreport{driscoll_methodology_2018, + title = {Methodology to {Calculate} the {ACE} and {HPQ} {Metrics} {Used} in the {Wave} {Energy} {Prize}}, + url = {https://www.osti.gov/biblio/1426063}, + doi = {10.2172/1426063}, + abstract = {The U.S. Department of Energy's Wave Energy Prize Competition encouraged the development of innovative deep-water wave energy conversion technologies that at least doubled device performance above the 2014 state of the art. Because levelized cost of energy (LCOE) metrics are challenging to apply equitably to new technologies where significant uncertainty exists in design and operation, the prize technical team developed a reduced metric as proxy for LCOE, which provides an equitable comparison of low technology readiness level wave energy converter (WEC) concepts. The metric is called 'ACE' which is short for the ratio of the average climate capture width to the characteristic capital expenditure. The methodology and application of the ACE metric used to evaluate the performance of the technologies that competed in the Wave Energy Prize are explained in this report.}, + language = {English}, + number = {NREL/TP-5000-70592}, + urldate = {2023-03-07}, + institution = {National Renewable Energy Lab. (NREL), Golden, CO (United States)}, + author = {Driscoll, Frederick R. and Weber, Jochem W. and Jenne, Dale S. and Thresher, Robert W. and Fingersh, Lee J. and Bull, Dianna and Dallman, Ann and Gunawan, Budi and Ruehl, Kelley and Newborn, David and Quintero, Miguel and LaBonte, Alison and Karwat, Darshan and Beatty, Scott}, + month = mar, + year = {2018}, +} + +@inproceedings{bilgen_openturbinecode_2022, + address = {University of Delaware, DE}, + title = {{OpenTurbineCoDe} ({OTCD}): {An} {Open}-{Source} {Floating} {Offshore} {Wind} {Turbine} {Multidisciplinary} {Control} {Co}-{Design} {Optimization} {Framework}}, + url = {https://dial.uclouvain.be/pr/boreal/en/object/boreal%3A269524/datastreams}, + urldate = {2023-03-01}, + author = {Bilgen, Onur and Martins, Joaquim R. R. A. and Ning, Andrew and Burlion, Laurent and Platt, Andy and Caprace, Denis–Gabriel and Du, Xianping and Mangano, Marco and Lopez Muro, Juan Francisco and Wright, Cody and Zhang, Kai}, + month = sep, + year = {2022}, +} + +@book{sartori_research_2020, + title = {A {Research} {Framework} for the {Multidisciplinary} {Design} and {Optimization} of {Wind} {Turbines}}, + isbn = {978-1-78984-408-5}, + url = {https://www.intechopen.com/chapters/70217}, + doi = {10.5772/intechopen.90172}, + abstract = {The design of very large wind turbines is a complex task which requires the development of dedicated tools and techniques. In this chapter, we present a system-level design procedure based on the combination of multi-body numerical models of the turbine and a multilevel optimization scheme. The overall design aims at the minimization of the cost of energy (COE) through the optimization of all the characteristics of the turbine, and the procedure automatically manages all the simulations required to compute relevant loads and displacements. This unique setup allows the designer to conduct trade-off studies in a highly realistic virtual environment and is an ideal test bench for advanced research studies in which it is important to assess the economic impact of specific design choices. Examples of such studies include the impact of stall-induced vibrations on fatigue, the development of active/passive control laws for large rotors, and the complete definition of 10–20 MW reference turbines.}, + language = {en}, + urldate = {2023-03-07}, + publisher = {IntechOpen}, + author = {Sartori, Luca and Cacciola, Stefano and Croce, Alessandro and Riboldi, Carlo Emanuele Dionigi and Sartori, Luca and Cacciola, Stefano and Croce, Alessandro and Riboldi, Carlo Emanuele Dionigi}, + month = apr, + year = {2020}, + note = {Publication Title: Design Optimization of Wind Energy Conversion Systems with Applications}, +} + +@article{jasa_effectively_2022, + title = {Effectively using multifidelity optimization for wind turbine design}, + volume = {7}, + issn = {2366-7443}, + url = {https://wes.copernicus.org/articles/7/991/2022/}, + doi = {10.5194/wes-7-991-2022}, + abstract = {Wind turbines are complex multidisciplinary systems that are challenging to design because of the tightly coupled interactions between different subsystems. Computational modeling attempts to resolve these couplings so we can efficiently explore new wind turbine systems early in the design process. Low-fidelity models are computationally efficient but make assumptions and simplifications that limit the accuracy of design studies, whereas high-fidelity models capture more of the actual physics but with increased computational cost. This paper details the use of multifidelity methods for optimizing wind turbine designs by using information from both low- and high-fidelity models to find an optimal solution at reduced cost. Specifically, a trust-region approach is used with a novel corrective function built from a nonlinear surrogate model. We find that for a diverse set of design problems – with examples given in rotor blade geometry design, wind turbine controller design, and wind power plant layout optimization – the multifidelity method finds the optimal design using 38 \%–58 \% of the computational cost of the high-fidelity-only optimization. The success of the multifidelity method in disparate applications suggests that it could be more broadly applied to other wind energy or otherwise generic applications.}, + language = {English}, + number = {3}, + urldate = {2023-03-07}, + journal = {Wind Energy Science}, + publisher = {Copernicus GmbH}, + author = {Jasa, John and Bortolotti, Pietro and Zalkind, Daniel and Barter, Garrett}, + month = may, + year = {2022}, + pages = {991--1006}, +} + +@article{oconnell_review_2023, + title = {A review of geographic information system ({GIS}) and techno economic ({TE}) software tools for renewable energy and methodology to develop a coupled {GIS}-{TE} software tool for marine renewable energy ({MRE})}, + issn = {1475-0902}, + url = {https://doi.org/10.1177/14750902221150050}, + doi = {10.1177/14750902221150050}, + abstract = {Accurate and up-to-date Geographic Information System (GIS) and Techno Economic (TE) tools are pertinent to helping to develop the renewable energy sector. This paper reviews the state of the art in existing GIS and TE tools for renewable energy and proposes a methodology to develop a coupled GIS-TE software tool that is geared specifically to Marine Renewable Energy (MRE) applications and bespoke to Irish and Western UK waters. Methods for approaching GIS and TE analysis within existing tools for renewable energy are presented and compared. Many existing tools of this nature have some interesting functionalities, but most are unsuitable for MRE; are limited by a lack of information on both the technology and the site; and focus solely either on GIS or TE aspects of analysis. Additionally, almost all of those with a TE focus are not open access. The proposed tool aims to incorporate increased resolution and site relevance of resource data; the most up-to-date geospatial data for site selection; and will provide site specific TE indicators and recommendations for contemporary MRE devices. The result will be the development an open-access GIS-TE software tool for MRE.}, + language = {en}, + urldate = {2023-03-07}, + journal = {Proceedings of the Institution of Mechanical Engineers, Part M: Journal of Engineering for the Maritime Environment}, + publisher = {SAGE Publications}, + author = {O’Connell, Ross and Murphy, Jimmy and Devoy McAuliffe, Fiona and Dalton, Gordon}, + month = jan, + year = {2023}, + pages = {14750902221150050}, +} + +@misc{noauthor_exfin_nodate, + title = {Exfin {Software} {\textbar} {Your} {Single} {Source} of {Digital} {Truth}}, + url = {https://exfinsoftware.com/product/}, + abstract = {Exfin financial modelling software for the renewable industry, creates a centralised, single source of digital truth in 4 simple steps.}, + language = {en-US}, + urldate = {2023-03-07}, + journal = {exfinsoftware.com}, +} + +@article{roberts_bringing_2021, + title = {Bringing {Structure} to the {Wave} {Energy} {Innovation} {Process} with the {Development} of a {Techno}-{Economic} {Tool}}, + volume = {14}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/14/24/8201}, + doi = {10.3390/en14248201}, + abstract = {Current wave energy development initiatives assume that available designs have the potential for success through continuous learning and innovation-based cost reduction. However, this may not be the case, and potential winning technologies may have been overlooked. The scenario creation tool presented in this paper provides a structured method for the earliest stages of design in technology development. The core function of the scenario creation tool is to generate and rank scenarios of potential Wave Energy Converter (WEC) attributes and inform the user on the areas of the parameter space that are most likely to yield commercial success. This techno-economic tool uses a structured innovation approach to identify commercially attractive and technically achievable scenarios, with a scoring system based on their power performance and costs. This is done by leveraging performance and cost data from state-of-the-art wave energy converters and identifying theoretical limits to define thresholds. As a result, a list of scored solutions is obtained depending on resource level, wave energy converter hull shape, size, material, degree of freedom for power extraction, and efficiency. This scenario creation tool can be used to support private and public investors to inform strategy for future funding calls, and technology developers and researchers in identifying new avenues of innovation.}, + language = {en}, + number = {24}, + urldate = {2023-03-07}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Roberts, Owain and Henderson, Jillian Catherine and Garcia-Teruel, Anna and Noble, Donald R. and Tunga, Inès and Hodges, Jonathan and Jeffrey, Henry and Hurst, Tim}, + month = jan, + year = {2021}, + note = {Number: 24}, + keywords = {commercial attractiveness, scenario creation, structured innovation, technical achievability, wave energy}, + pages = {8201}, +} + +@article{tunga_addressing_2021, + title = {Addressing {European} {Ocean} {Energy} {Challenge}: {The} {DTOceanPlus} {Structured} {Innovation} {Tool} for {Concept} {Creation} and {Selection}}, + volume = {14}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {Addressing {European} {Ocean} {Energy} {Challenge}}, + url = {https://www.mdpi.com/1996-1073/14/18/5988}, + doi = {10.3390/en14185988}, + abstract = {The whole energy system requires renewables that scale and produce reliable, valuable energy at an acceptable cost. The key to increasing the deployment of ocean energy is bringing down development and operating costs. This paper proposes a structured approach to innovation in ocean energy systems that would spur innovation and expand the market for ocean energy. This approach can be used by a wide range of stakeholders—including technology and project developers and investors—when considering creating or improving designs. The Structured Innovation design tool within the DTOceanPlus suite is one of a kind beyond the current state-of-the-art. It enables the adaptation and integration of systematic problem-solving tools based on quality function deployment (QFD), the theory of inventive thinking (TRIZ), and the failure modes and effects analysis (FMEA) methodologies for the ocean energy sector. In obtaining and assessing innovative concepts, the integration of TRIZ into QFD enables the designers to define the innovation problem, identifies trade-offs in the system, and, with TRIZ as a systematic inventive problem-solving methodology, generates potential design concepts for the contradicting requirements. Additionally, the FMEA is used to assess the technical risks associated with the proposed design concepts. The methodology is demonstrated using high-level functional requirements for a small array of ten tidal turbines to improve the devices layout and power cabling architecture. The Structured Innovation design tool output comprises critical functional requirements with the highest overall impact and the least organisational effort to implement, along with appropriate alternative solutions to conflicting requirements.}, + language = {en}, + number = {18}, + urldate = {2023-03-07}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Tunga, Inès and Garcia-Teruel, Anna and Noble, Donald R. and Henderson, Jillian}, + month = jan, + year = {2021}, + note = {Number: 18}, + keywords = {DTOceanPlus, FMEA, fundamental relationships, innovation, ocean energy, quality function deployment, structured innovation tool, theory of inventive problem solving}, + pages = {5988}, +} + +@inproceedings{weber_wec_2012, + title = {{WEC} {Technology} {Readiness} and {Performance} {Matrix} – finding the best research technology development trajectory}, + abstract = {The paper identifies and discusses the need for techno-economic performance improvements at early stages of the wave energy converter (WEC) technology development process. Technology Readiness Levels (TRLs) for wave energy projects provide a valuable metric of technology readiness and deliver useful guidance for the development process. This paper describes the complementary metric of Technology Performance Levels (TPLs) characterised by a set of quantified performance criteria aimed at identifying and classifying the techno-economic performance of wave energy technology. These TPLs are broadly inversely related to cost of energy (CoE) and provide a combined measure for capital expenditure (CapEx), lifecycle operational expenditure (OpEx), energy conversion efficiency and technology availability. Less quantifiable performance aspects such as acceptability and safety are also considered in the definition of the TPLs. +A 2-dimensional representation of technology readiness and performance levels is introduced. This TRL–TPL–Matrix visualisation provides a useful means for the evaluation, comparison and discussion of different research technology development trajectories over the technology readiness and performance levels plane. The paper identifies the need for technology performance trajectories with high technology performance levels at low readiness levels and gives valuable advice on the development strategy and tools required to achieve successful WEC technology development outcome at reduced development time, total development cost and encountered risk.}, + author = {Weber, Jochem}, + month = oct, + year = {2012}, +} + +@inproceedings{noauthor_notitle_nodate, +} + +@article{clark_reliability-based_2018, + title = {Reliability-based design optimization in offshore renewable energy systems}, + volume = {97}, + issn = {1364-0321}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032118306154}, + doi = {10.1016/j.rser.2018.08.030}, + abstract = {Offshore wind farm operations and maintenance costs currently total 6 m€/year, or 25–28\% of total costs. For wave and tidal energy converters, this cost is projected to be twice that of offshore wind, but has high levels of uncertainty. As the wave and tidal energy industries mature, decreasing O\&M costs through reliability-based design optimization is critical to increasing feasibility and competitiveness with other energy technologies. In this paper, we will synthesize existing information on reliability-based optimization in systems analogous to offshore renewable energy systems. We will conclude by highlighting opportunities for future work in this field.}, + language = {en}, + urldate = {2023-03-07}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Clark, Caitlyn E. and DuPont, Bryony}, + month = dec, + year = {2018}, + keywords = {Offshore renewable energy, Offshore wind energy, Reliability-based design optimization, Tidal energy, Wave energy}, + pages = {390--400}, +} + +@article{macgillivray_innovation_2014, + title = {Innovation and cost reduction for marine renewable energy: {A} learning investment sensitivity analysis}, + volume = {87}, + issn = {0040-1625}, + shorttitle = {Innovation and cost reduction for marine renewable energy}, + url = {https://www.sciencedirect.com/science/article/pii/S0040162513003041}, + doi = {10.1016/j.techfore.2013.11.005}, + abstract = {Using learning curves as an analytical tool for technology forecasting involves making assumptions over a range of key uncertainties, often implicitly. In this paper, we present an explicit treatment of the key uncertainties involved in learning rates' analyses of marine energy innovation (wave and tidal stream) — technology fields attracting considerable interest, but whose commercial prospects depends on substantial learning and cost reduction. Taking a simple single factor learning rate model, we describe a range of plausible learning investments required so that marine energy technologies become cost-competitive with their ‘benchmark’ technology: offshore wind. Our analysis highlights the sensitivity of marine energy to three key parameters: the capital cost of first devices, the level of deployment before sustained cost reduction emerges, and the average rate of cost reduction with deployment (learning rate). Figures often quoted within the marine energy sector for the parameters of starting cost, learning rate, and capacity at which sustained cost reduction occurs (metrics conventionally used for learning rate analysis) can be seen to represent very attractive scenarios. The intention of this paper is to display that even small changes to input assumptions can have a dramatic effect on the overall investment required for a sector to reach parity with benchmark technologies. In the short term, reaching cost competitiveness with offshore wind is a necessity if marine energy is to reach commercialisation. Additionally, an assessment of the plausible total investment (and inherent uncertainties) in a global wave and tidal deployment scenario will be presented. The paper also considers the implications of these uncertainties for marine energy innovation management. While the benchmark against offshore wind will generally be used as a performance indicator, in order to achieve similar and sustained cost reductions to other, more mature, renewable energy technologies (and thus achieve a competitive price for marine technologies, securing their place within the energy mix), the marine energy sector needs a targeted innovation focus to fulfil the desired objectives, and a development pathway very different to offshore wind must be used.}, + language = {en}, + urldate = {2023-03-05}, + journal = {Technological Forecasting and Social Change}, + author = {MacGillivray, Andrew and Jeffrey, Henry and Winskel, Mark and Bryden, Ian}, + month = sep, + year = {2014}, + keywords = {Experience curve, Learning curve, Learning investment, Marine energy, Technology innovation}, + pages = {108--124}, +} + +@article{tassey_standardization_2000, + title = {Standardization in technology-based markets}, + volume = {29}, + issn = {0048-7333}, + url = {https://www.sciencedirect.com/science/article/pii/S0048733399000918}, + doi = {10.1016/S0048-7333(99)00091-8}, + abstract = {The complexity of modern technology, especially its system character, has led to an increase in the number and variety of standards that affect a single industry or market. Standards affect the R\&D, production, and market penetration stages of economic activity and therefore have a significant collective effect on innovation, productivity, and market structure. Standards are classified into product-element and nonproduct categories because the two types arise from different technologies and require different formulation and implementation strategies. Because standards are a form of technical infrastructure, they have considerable public good content. Research policy must therefore include standardization in analyses of technology-based growth issues.}, + language = {en}, + number = {4}, + urldate = {2023-03-05}, + journal = {Research Policy}, + author = {Tassey, Gregory}, + month = apr, + year = {2000}, + keywords = {Economic growth, Industry structure, Innovation, R\&D, Standardization}, + pages = {587--602}, +} + +@article{moni_life_2020, + title = {Life cycle assessment of emerging technologies: {A} review}, + volume = {24}, + copyright = {© 2019 by Yale University}, + issn = {1530-9290}, + shorttitle = {Life cycle assessment of emerging technologies}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/jiec.12965}, + doi = {10.1111/jiec.12965}, + abstract = {In recent literature, prospective application of life cycle assessment (LCA) at low technology readiness levels (TRL) has gained immense interest for its potential to enable development of emerging technologies with improved environmental performances. However, limited data, uncertain functionality, scale up issues and uncertainties make it very challenging for the standard LCA guidelines to evaluate emerging technologies and requires methodological advances in the current LCA framework. In this paper, we review published literature to identify major methodological challenges and key research efforts to resolve these issues with a focus on recent developments in five major areas: cross-study comparability, data availability and quality, scale-up issues, uncertainty and uncertainty communication, and assessment time. We also provide a number of recommendations for future research to support the evaluation of emerging technologies at low technology readiness levels: (a) the development of a consistent framework and reporting methods for LCA of emerging technologies; (b) the integration of other tools with LCA, such as multicriteria decision analysis, risk analysis, technoeconomic analysis; and (c) the development of a data repository for emerging materials, processes, and technologies.}, + language = {en}, + number = {1}, + urldate = {2023-03-04}, + journal = {Journal of Industrial Ecology}, + author = {Moni, Sheikh Moniruzzaman and Mahmud, Roksana and High, Karen and Carbajales-Dale, Michael}, + year = {2020}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1111/jiec.12965}, + keywords = {emerging technology, ex ante LCA, industrial ecology, life cycle assessment (LCA), technoeconomic analysis (TEA), technology readiness level (TRL)}, + pages = {52--63}, +} + +@article{pennock_life_2022, + title = {Life cycle assessment of a point-absorber wave energy array}, + volume = {190}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148122004712}, + doi = {10.1016/j.renene.2022.04.010}, + abstract = {Wave energy has a large global resource and thus a great potential to contribute to low-carbon energy systems. This study quantifies the environmental impacts of a 10 MW array of 28 point-absorber wave energy converters, by means of a process-based life cycle assessment (LCA). Midpoint and Cumulative Energy Demand LCA results are presented over 19 impact categories, representing impacts encompassing human health, ecosystems and resource availability. Three scenarios are undertaken to represent the use phase of the array, identified as a particularly uncertain input, with very little long-term operation of wave energy arrays available to validate assumptions. The resultant global warming potential of the array ranges from 25.1 to 46.0 gCO2e/kWh over a 95\% confidence interval, 23–43 times lower than conventional fossil fuel electricity generation. The Energy Payback Time of the array ranges between 2.6 and 5.2 years. LCA results are found to be particularly sensitive to annual energy production across all impact categories, and to assumptions associated with the frequency of marine operations over a number of categories quantifying the production of greenhouse gases. This LCA has been undertaken at an early stage in the WEC product development and will inform innovative research focused on further reducing the environmental impacts of electricity generation.}, + language = {en}, + urldate = {2023-03-04}, + journal = {Renewable Energy}, + author = {Pennock, Shona and Vanegas-Cantarero, María M. and Bloise-Thomaz, Tianna and Jeffrey, Henry and Dickson, Matthew J.}, + month = may, + year = {2022}, + keywords = {Carbon footprint, Environmental impact, Life cycle assessment, Operations and maintenance, Wave energy}, + pages = {1078--1088}, +} + +@inproceedings{apolonia_developing_2019, + address = {Universitá degli Studi della Campania “Luigi Vanvitelli”, Italy}, + title = {Developing an {Environmental} {Impact} {Assessment} model for nearshore wave energy devices}, + booktitle = {Proceedings of the {Thirteenth} {European} {Wave} and {Tidal} {Energy} {Conference}}, + publisher = {EWTEC}, + author = {Apolonia, Maria and Silva, Ana and Simas, Teresa}, + editor = {Vicinanza, D.}, + month = sep, + year = {2019}, +} + +@article{zhang_optimization_2022, + title = {Optimization of energy-capture performance of point-absorber wave energy converter}, + volume = {46}, + issn = {1099-114X}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/er.7816}, + doi = {10.1002/er.7816}, + abstract = {An optimization process is proposed for improving the energy-harvesting efficiency of the point-absorber wave energy converter (WEC) and thus enhancing the utilization of wave energy resources. The multidisciplinary design optimization integration system ISIGHT is adopted to establish an optimization design flow for the shape parameters of the point-absorber WEC. The motion equations of the point-absorber WEC are established according to the potential flow theory, and the wave energy capture capacity per unit is calculated. Considering it as the objective, the point-absorber WEC is modified to improve the energy-capture efficiency by using an optimization function in an approximation model. A comparison indicates that a cylindrical-bottom point-absorber WEC with a diameter of 7 m, draft of 1.8 m, and damping factor of 31 150 Ns·m−1 has the optimal performance and the maximum energy capture capacity. The energy-capture performance of the WEC can be significantly enhanced through this optimization method.}, + language = {en}, + number = {7}, + urldate = {2023-03-03}, + journal = {International Journal of Energy Research}, + author = {Zhang, Baocheng and Deng, Ziwei and Miao, Yu and Zhao, Bo and Wang, Qiang and Zhang, Kaisheng}, + year = {2022}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/er.7816}, + keywords = {hydrodynamic, optimization design, parameterization, point absorber, wave energy}, + pages = {9444--9455}, +} + +@inproceedings{caio_tackling_2019, + title = {Tackling the {Wave} {Energy} {Paradox} - {Stepping} {Towards} {Commercial} {Deployment}}, + url = {https://onepetro.org/ISOPEIOPEC/proceedings-abstract/ISOPE19/All-ISOPE19/21575}, + abstract = {ABSTRACT. For the wave energy industry, the leap from R\&D to commercial deployment remains considerable and arises as part of the ‘wave energy paradox’, defined here as a negative reinforcement cycle involving a lack of investment, deployment, learning and returns. In this context, we review performance metrics set by funding bodies, industry standards and developers, examining how existing practices can result in sub-optimal design targets due to current specifications and misalignment of metrics between developers and external stakeholders. This paper offers initial insights - via a case study - to demonstrate how the integration of meaningful and aligned metrics throughout the design process represents a key lever in overcoming the paradox.INTRODUCTION. The vast potential of wave energy as a renewable source of power has been advocated for several decades (Isaacs \& Seymour, 1973), (Cruz, 2008). Although nearshore wave energy potential has been estimated to be in the TW range, e.g. (Gunn \& Stock-Williams, 2012), global deployed capacity as of 2017 was lagging at only 8MW (Ocean Energy Systems, 2017). Many observers argue that the shortfall is a result of the failure of wave energy converters (WECs) to converge to a single optimal design, though this can be viewed as both a cause and an effect (see following section). In 2016, O'Hagan et al. highlighted that}, + language = {en}, + urldate = {2023-03-03}, + publisher = {OnePetro}, + author = {Caio, Andrea and Davey, Thomas and McNatt, Cameron}, + month = jun, + year = {2019}, +} + +@misc{noauthor_triton_nodate, + title = {Triton {\textbar} {PNNL}}, + url = {https://www.pnnl.gov/projects/triton}, + urldate = {2023-03-01}, +} + +@article{li_quantitative_2022, + title = {Quantitative sustainable design ({QSD}) for the prioritization of research, development, and deployment of technologies: a tutorial and review}, + volume = {8}, + issn = {2053-1419}, + shorttitle = {Quantitative sustainable design ({QSD}) for the prioritization of research, development, and deployment of technologies}, + url = {https://pubs.rsc.org/en/content/articlelanding/2022/ew/d2ew00431c}, + doi = {10.1039/D2EW00431C}, + abstract = {The pursuit of sustainability has catalyzed broad investment in the research, development, and deployment (RD\&D) of innovative water, sanitation, and resource recovery technologies, yet the lack of transparent and agile methodologies to navigate the expansive landscape of technology development pathways remains a critical challenge. This challenge is further complicated by the higher levels of uncertainty that are intrinsic to early-stage technologies. In this work, we review and synthesize published literature on the sustainability analyses of water and related technologies to present quantitative sustainable design (QSD) – a methodology to expedite and support technology RD\&D. With a shared lexicon and a structured approach, QSD facilitates interdisciplinary communication and research consistency. In introducing QSD, we review existing studies to highlight best practices and discuss them in the context of the specific steps of QSD, which include defining the problem space, establishing simulation algorithms, and characterizing system sustainability across economic, environmental, human health, and social dimensions. Next, we summarize tools for QSD execution and provide recommendations to account for uncertainty in this process. We further discuss applications of QSD in the fields of water/wastewater and beyond (e.g., renewable fuels, circular economy) in combination with uncertainty, sensitivity, and scenario analyses to generate the desired types of insight. Finally, we identify future research needs for sustainability analyses to advance technology RD\&D. Ultimately, QSD can be used to elucidate the complex and intertwined connections among design decisions, technology characteristics, contextual factors, and sustainability indicators, thereby supporting transparent, consistent, and agile RD\&D.}, + language = {en}, + number = {11}, + urldate = {2023-03-01}, + journal = {Environmental Science: Water Research \& Technology}, + publisher = {The Royal Society of Chemistry}, + author = {Li, Yalin and Trimmer, John T. and Hand, Steven and Zhang, Xinyi and Chambers, Katherine G. and Lohman, Hannah A. C. and Shi, Rui and Byrne, Diana M. and Cook, Sherri M. and Guest, Jeremy S.}, + month = oct, + year = {2022}, + pages = {2439--2465}, +} + +@article{mahmud_integration_2021, + title = {Integration of techno-economic analysis and life cycle assessment for sustainable process design – {A} review}, + volume = {317}, + issn = {0959-6526}, + url = {https://www.sciencedirect.com/science/article/pii/S0959652621024641}, + doi = {10.1016/j.jclepro.2021.128247}, + abstract = {For sustainable design, technology developers need to consider not only technical and economic aspects but also potential environmental impacts while developing new technologies. Techno economic analysis (TEA) evaluates the technical performance and economic feasibility of a technology. Life cycle assessment (LCA) evaluates the potential environmental impacts associated with a product system throughout its life cycle from raw material extraction to disposal. Generally, TEA and LCA performed separately for technology assessment. Understanding of the trade-off between economic and environmental performance is crucial for sustainable process design, which is not fully available if TEA and LCA is performed separately. In contrast, integration of TEA and LCA enables systematic analysis of the relationships between technical, economic, and environmental performance and provides more information to technology developers for trade-off analysis. Integrated TEA-LCA tool can also reduce inconsistency between system boundaries, functional units, and assumptions that can arise from using standalone TEA and LCA findings in decision making. There is also growing interest of prospective application of integrated TEA-LCA tool to evaluate emerging technologies at early technology readiness level (TRL). Integration of TEA and LCA is still an evolving area and requires further exploration to develop a consistent methodological guideline. The goal of this study is to review the current state-of-the-art in TEA and LCA to identify the methodological challenges of TEA-LCA integration approaches. This study also identifies major challenges to perform integrated TEA-LCA analysis of emerging technologies at low TRLs. Lack of consistent methodological guidelines and compatible software tools, inconsistent system boundary and functional unit selection, limited data availability and uncertainty are key methodological challenges for integration of LCA and TEA. Future research should focus on developing integrated TEA-LCA tool, formulating approach to incorporate optimization method with integrated TEA-LCA tool, and developing strategy of proper communication of results from integrated LCA-TEA tool to broad range of stakeholders.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Journal of Cleaner Production}, + author = {Mahmud, Roksana and Moni, Sheikh Moniruzzaman and High, Karen and Carbajales-Dale, Michael}, + month = oct, + year = {2021}, + keywords = {Emerging technology, Integration, Life cycle assessment (LCA), Sustainable process design, Techno-economic analysis (TEA), Technology readiness level (TRL)}, + pages = {128247}, +} + +@article{li_quantitative_2022-1, + title = {Quantitative sustainable design ({QSD}) for the prioritization of research, development, and deployment of technologies: a tutorial and review}, + volume = {8}, + issn = {2053-1419}, + shorttitle = {Quantitative sustainable design ({QSD}) for the prioritization of research, development, and deployment of technologies}, + url = {https://pubs.rsc.org/en/content/articlelanding/2022/ew/d2ew00431c}, + doi = {10.1039/D2EW00431C}, + abstract = {The pursuit of sustainability has catalyzed broad investment in the research, development, and deployment (RD\&D) of innovative water, sanitation, and resource recovery technologies, yet the lack of transparent and agile methodologies to navigate the expansive landscape of technology development pathways remains a critical challenge. This challenge is further complicated by the higher levels of uncertainty that are intrinsic to early-stage technologies. In this work, we review and synthesize published literature on the sustainability analyses of water and related technologies to present quantitative sustainable design (QSD) – a methodology to expedite and support technology RD\&D. With a shared lexicon and a structured approach, QSD facilitates interdisciplinary communication and research consistency. In introducing QSD, we review existing studies to highlight best practices and discuss them in the context of the specific steps of QSD, which include defining the problem space, establishing simulation algorithms, and characterizing system sustainability across economic, environmental, human health, and social dimensions. Next, we summarize tools for QSD execution and provide recommendations to account for uncertainty in this process. We further discuss applications of QSD in the fields of water/wastewater and beyond (e.g., renewable fuels, circular economy) in combination with uncertainty, sensitivity, and scenario analyses to generate the desired types of insight. Finally, we identify future research needs for sustainability analyses to advance technology RD\&D. Ultimately, QSD can be used to elucidate the complex and intertwined connections among design decisions, technology characteristics, contextual factors, and sustainability indicators, thereby supporting transparent, consistent, and agile RD\&D.}, + language = {en}, + number = {11}, + urldate = {2023-03-01}, + journal = {Environmental Science: Water Research \& Technology}, + publisher = {The Royal Society of Chemistry}, + author = {Li, Yalin and Trimmer, John T. and Hand, Steven and Zhang, Xinyi and Chambers, Katherine G. and Lohman, Hannah A. C. and Shi, Rui and Byrne, Diana M. and Cook, Sherri M. and Guest, Jeremy S.}, + month = oct, + year = {2022}, + pages = {2439--2465}, +} + +@article{mccabe_constrained_2013, + title = {Constrained optimization of the shape of a wave energy collector by genetic algorithm}, + volume = {51}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148112006258}, + doi = {10.1016/j.renene.2012.09.054}, + abstract = {Wave energy extraction requires the conversion of the energy within the waves to drive the power take off system, often by means of a principal interface, or collector. This paper describes part of the development of a robust, systematic method of optimizing the collector shape to improve energy extraction using a genetic algorithm. The collector geometry uses a parametric description based upon bi-cubic B-spline surfaces, generated from a relatively small number of control points to reduce the dimensionality of the search space. The collector shapes that are optimized have one plane of symmetry and move in one degree of freedom (surge). Each candidate shape is assessed in a wave climate based upon data from a site in the North-East Atlantic Ocean. Three cost functions, distinguished by the severity of the penalty put on the size of the candidate collectors, and four constraint regimes, defined by two displacement and two power rating limits, are the governing influences on the twelve optimization procedures described. The selected collector shapes from each optimization run are appraised in terms of size, complexity and their performance compared to that of ‘benchmark’ box-shaped collectors.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Renewable Energy}, + author = {McCabe, A. P.}, + month = mar, + year = {2013}, + keywords = {Genetic algorithms, Marine energy conversion, Optimization methods, Wave energy converter design}, + pages = {274--284}, +} + +@article{patryniak_multidisciplinary_2022, + title = {Multidisciplinary design analysis and optimisation frameworks for floating offshore wind turbines: {State} of the art}, + volume = {251}, + issn = {0029-8018}, + shorttitle = {Multidisciplinary design analysis and optimisation frameworks for floating offshore wind turbines}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801822004267}, + doi = {10.1016/j.oceaneng.2022.111002}, + abstract = {Meeting climate and air quality targets, while preserving the focus on the reliability and cost-effectiveness of energy, became a central issue for offshore wind turbine engineers. Floating offshore wind turbines, which allow harnessing the large untapped wind resources in deep waters, are highly complex and coupled systems. Subsystem-level optimisations result in suboptimal designs, implying that an integrated design approach is important. Literature saw a few attempts on multidisciplinary design analysis and optimisation of floating wind turbines, with varying results, proving the need for an efficient, and sufficiently accurate, integrated approach. This paper reviews the state-of-the-art approaches to multidisciplinary design analysis and optimisation of floating support structures. The choice of the optimisation framework architecture, support platform design variables, constraints and objective functions are investigated. The techno-economic analysis models are closely examined, focusing on the approaches to achieving the optimum accuracy–efficiency balance. It is shown that the representation of the fully coupled system within the optimisation framework requires the introduction of a more complex multidisciplinary analysis workflow. Methods to increase the efficiency of such frameworks are indicated. Non-conventional support structure configurations can be conceived through the application of more advanced parametrisation schemes, which is feasible together with design space size reduction techniques. The set of design criteria should be extended by operation and maintenance cost, and power production metrics. The main technical limitations of the frameworks adopted so far include the inability to accurately analyse a diverse range of support structure topologies in multiple design load cases within a common framework. The cost approximation models should be extended by the chosen aspects of pre-operational phases, to better explore the benefits of the floating platforms.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Ocean Engineering}, + author = {Patryniak, Katarzyna and Collu, Maurizio and Coraddu, Andrea}, + month = may, + year = {2022}, + keywords = {Coupled dynamics, Floating offshore wind turbine, MDAO, Multidisciplinary optimisation, Offshore wind, Support structure}, + pages = {111002}, +} + +@article{giannini_wave_2022, + title = {Wave energy converters design combining hydrodynamic performance and structural assessment}, + volume = {249}, + issn = {0360-5442}, + url = {https://www.sciencedirect.com/science/article/pii/S0360544222005448}, + doi = {10.1016/j.energy.2022.123641}, + abstract = {The design of a wave energy converter (WEC) is a many-sided and important assignment that determines its future technical and economic viability. Presently, there is a lack of structured design methodologies that take into account both the hydrodynamic performance, structural reliability and economic data from early development stages. Therefore, a new methodology is proposed, aiming for a viable predesign solution for avoiding major setbacks at later stages. It includes a series of steps related to the initial design definition, hydrodynamic analysis, yield strength investigation and early-stage economic assessment. For demonstration, the methodology is applied to progress a sloped motion WEC for near-shore locations. The original WEC configuration is also assessed and the novel design, which allows reducing the mass of floating elements by 70\%, is developed. It is found that: for recurrent sea states, the capture width ratio of the new design (20–40\%) is similar to the one of the original design (20–50\%), the estimated cost of the device is reduced by 28.6\% and the payback period is reduced by 2.4 years. Overall, the results obtained for the case study demonstrated the interest in the proposed methodology that can assist in the development and analysis of early-stage WEC concepts.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Energy}, + author = {Giannini, Gianmaria and Rosa-Santos, Paulo and Ramos, Victor and Taveira-Pinto, Francisco}, + month = jun, + year = {2022}, + keywords = {Economic analysis, Hydrodynamic structural analysis, Multi-scope design development, Pivoting wave energy converter, Wave loads, marine Energy}, + pages = {123641}, +} + +@misc{noauthor_dtocean_nodate, + title = {{DTOcean}+}, + url = {https://www.dtoceanplus.eu/Tools/DTOcean}, + language = {en-GB}, + urldate = {2023-03-01}, + journal = {DTOceanPlus - Design tools for ocean energy systems}, +} + +@article{garcia-teruel_geometry_2020, + title = {Geometry optimisation of wave energy converters}, + url = {https://era.ed.ac.uk/handle/1842/36912}, + doi = {10.7488/era/213}, + abstract = {Given the large energy resource available in ocean waves, wave energy +converters have been developed over the last decades for power extraction. +Various concepts exist, and research efforts are now focussed on reducing their +levelised cost of energy. The device structure has been identified to have the +highest cost reduction potential. For this reason, a number of hull geometry +optimisation studies have been performed in recent years. In these studies, +costs have been mostly represented through the device size or weight, and +devices have been optimised for specific sea conditions, based generally on +simple shapes such as spheres or cylinders. However, there is no consensus in +the employed methodology and resulting shapes might be difficult to manu +facture or unable to survive in high energetic seas. The goal of this thesis is, +therefore, to develop a device-agnostic methodology for geometry optimisation +of wave energy converters, which enables the generation of improved hull shapes +that reduce the levelised cost of electricity. An existing approach for single +body floating point-absorbers, exhibiting some of the best practices found in +this field, is re-implemented and extended to improve its robustness for its +application to different case studies. Each of the elements composing this +approach (how the geometry is defined, the choice of objective function and +the choice of optimisation algorithm and set-up) are then evaluated and their +suitability is assessed through comparison to other strategies. The method is +then applied to a range of study cases, such as to study the effect of location +and of the choice of modes-of-motion for power extraction on the optimal hull +shape. Further extensions of the method to include manufacturability and +reliability considerations, as well as to include the effect of mass distribution +are investigated. As a result, recommendations are formulated for the set-up of +an early stage WEC design geometry optimisation process. Additionally, trends +for the hull shape design are identified for the considered cases - depending +on, location, the choice of the modes of motion for power extraction, and how +costs are accounted for.}, + language = {en}, + urldate = {2023-03-01}, + publisher = {The University of Edinburgh}, + author = {Garcia-Teruel, Anna}, + month = jul, + year = {2020}, + note = {Accepted: 2020-03-31T10:31:18Z}, +} + +@misc{noauthor_proteusds_nodate, + title = {{ProteusDS} {\textbar} {A} flexible {Dynamic} {Analysis} {Tool} for {Ocean} {Industries} {\textbar} {DSA}}, + url = {https://dsaocean.com/proteusds/overview/}, + abstract = {ProteusDS is a full-featured dynamic analysis software capable of simulating vessels, flexible structures, lines and technologies in harsh marine environments. It is modern, customizable and validated.}, + language = {en-CA}, + urldate = {2023-03-01}, + journal = {DSA Ocean}, +} + +@misc{ruehl_wec-simwec-sim_2022, + title = {{WEC}-{Sim}/{WEC}-{Sim}: {WEC}-{Sim} v5.0.1}, + shorttitle = {{WEC}-{Sim}/{WEC}-{Sim}}, + url = {https://zenodo.org/record/7121186}, + doi = {10.5281/zenodo.7121186}, + abstract = {New Features This is a bug fix release. New features since the previous release are not included. Bug Fixes Fix saveViz by @jtgrasb in https://github.com/WEC-Sim/WEC-Sim/pull/866 Fix typo in docs. by @mancellin in https://github.com/WEC-Sim/WEC-Sim/pull/898 Update documentation tutorials to fix OSWEC inertia by @jtgrasb in https://github.com/WEC-Sim/WEC-Sim/pull/894 CI: Split docs jobs {\textbar} Add color to docs logs {\textbar} Cancel runs on new push {\textbar} Add 2021b to MATLAB versions by @H0R5E in https://github.com/WEC-Sim/WEC-Sim/pull/862 Mac path fixes and make outputDir public by @ahmedmetin in https://github.com/WEC-Sim/WEC-Sim/pull/874 wecSimPCT Fix (Master) by @yuyihsiang in https://github.com/WEC-Sim/WEC-Sim/pull/870 Fix image bug in PTO-Sim in Library Browser by @jleonqu in https://github.com/WEC-Sim/WEC-Sim/pull/896 update to v5.0 citation by @akeeste in https://github.com/WEC-Sim/WEC-Sim/pull/911 fix non-linear hydro by @dforbush2 in https://github.com/WEC-Sim/WEC-Sim/pull/910 Pull dev bugfixes into master by @akeeste @jtgrasb in https://github.com/WEC-Sim/WEC-Sim/pull/950 (includes https://github.com/WEC-Sim/WEC-Sim/pull/929 https://github.com/WEC-Sim/WEC-Sim/pull/917 https://github.com/WEC-Sim/WEC-Sim/pull/884 by @jtgrasb) New Contributors @mancellin made their first contribution in https://github.com/WEC-Sim/WEC-Sim/pull/898 @ahmedmetin made their first contribution in https://github.com/WEC-Sim/WEC-Sim/pull/874 Issues and Pull Requests {\textgreater}52 issues closed since v5.0 {\textgreater}23 PRs merged since v5.0 Full Changelog: https://github.com/WEC-Sim/WEC-Sim/compare/v5.0...v5.0.1}, + urldate = {2023-03-01}, + publisher = {Zenodo}, + author = {Ruehl, Kelley and Keester, Adam and Ströfer, Carlos A. Michelén and nathanmtom and Topper, Mathew and Lawson, Michael and dforbush2 and Ling, Bradley A. and jtgrasb and j-vanrij and Sal and jhbates and Ogden, David and Nguyen, Lily and Jeffalo1 and Leon, Jorge and sedwardsand and Alves, Erick F. and crobarcro and emiliofa and ratanakso and Rashid, Ahmed and Aquaharmonics and Sauer, Filip and Ancellin, Matthieu and NREL-Jim-McNally and SiHeTh and gparisella and Hall, Matt and yuyihsiang}, + month = sep, + year = {2022}, +} + +@article{balitsky_analyzing_2018, + title = {Analyzing the {Near}-{Field} {Effects} and the {Power} {Production} of an {Array} of {Heaving} {Cylindrical} {WECs} and {OSWECs} {Using} a {Coupled} {Hydrodynamic}-{PTO} {Model}}, + volume = {11}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + url = {https://www.mdpi.com/1996-1073/11/12/3489}, + doi = {10.3390/en11123489}, + abstract = {The Power Take-Off (PTO) system is the key component of a Wave Energy Converter (WEC) that distinguishes it from a simple floating body because the uptake of the energy by the PTO system modifies the wave field surrounding the WEC. Consequently, the choice of a proper PTO model of a WEC is a key factor in the accuracy of a numerical model that serves to validate the economic impact of a wave energy project. Simultaneously, the given numerical model needs to simulate many WEC units operating in close proximity in a WEC farm, as such conglomerations are seen by the wave energy industry as the path to economic viability. A balance must therefore be struck between an accurate PTO model and the numerical cost of running it for various WEC farm configurations to test the viability of any given WEC farm project. Because hydrodynamic interaction between the WECs in a farm modifies the incoming wave field, both the power output of a WEC farm and the surface elevations in the ‘near field’ area will be affected. For certain types of WECs, namely heaving cylindrical WECs, the PTO system strongly modifies the motion of the WECs. Consequently, the choice of a PTO system affects both the power production and the surface elevations in the ‘near field’ of a WEC farm. In this paper, we investigate the effect of a PTO system for a small wave farm that we term ‘WEC array’ of 5 WECs of two types: a heaving cylindrical WEC and an Oscillating Surge Wave Energy Converter (OSWEC). These WECs are positioned in a staggered array configuration designed to extract the maximum power from the incident waves. The PTO system is modelled in WEC-Sim, a purpose-built WEC dynamics simulator. The PTO system is coupled to the open-source wave structure interaction solver NEMOH to calculate the average wave field η in the ‘near-field’. Using a WEC-specific novel PTO system model, the effect of a hydraulic PTO system on the WEC array power production and the near-field is compared to that of a linear PTO system. Results are given for a series of regular wave conditions for a single WEC and subsequently extended to a 5-WEC array. We demonstrate the quantitative and qualitative differences in the power and the ‘near-field’ effects between a 5-heaving cylindrical WEC array and a 5-OSWEC array. Furthermore, we show that modeling a hydraulic PTO system as a linear PTO system in the case of a heaving cylindrical WEC leads to considerable inaccuracies in the calculation of average absorbed power, but not in the near-field surface elevations. Yet, in the case of an OSWEC, a hydraulic PTO system cannot be reduced to a linear PTO coefficient without introducing substantial inaccuracies into both the array power output and the near-field effects. We discuss the implications of our results compared to previous research on WEC arrays which used simplified linear coefficients as a proxy for PTO systems.}, + language = {en}, + number = {12}, + urldate = {2023-03-01}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Balitsky, Philip and Quartier, Nicolas and Verao Fernandez, Gael and Stratigaki, Vasiliki and Troch, Peter}, + month = dec, + year = {2018}, + note = {Number: 12}, + keywords = {BEM, NEMOH, PTO system, PTO system tuning, PTO-sim, WEC array, WEC farm, WEC-sim, hydraulic, linearization, model coupling}, + pages = {3489}, +} + +@article{de_andres_adaptability_2015, + title = {Adaptability of a generic wave energy converter to different climate conditions}, + volume = {78}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148115000270}, + doi = {10.1016/j.renene.2015.01.020}, + abstract = {This study evaluates the influence of wave climate tunability on the performance of a generic Wave Energy Converter (WEC) for different climate scenarios. The generic WEC is assumed to be composed of an array of heaving, floating cylinders. In this study, two natural periods for the cylinders of 4 s and 8 s (typical of enclosed seas and the mean Atlantic swell, respectively) and a location-tunable cylinder are considered to evaluate the influence of tuning on the power performance of the cylinder. The WEC power matrix is computed using a frequency domain model, and the performance of the WEC is evaluated along the global coasts; the met-ocean data originated from the global reanalysis database (GOW) from Reguero et al. (2012). The performance of the WEC is evaluated using two parameters: the capture width ratio (CWR), which evaluates the efficiency of the converter at each location, and the kW/Ton (KWT) parameter, which evaluates the efficiency of the converter using “economic” terms. Tuning a converter for each location displayed a positive CWR; however, the KWT was low after WEC tuning because of the weight of the structures required to tune the converter that experiences high peak periods.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Renewable Energy}, + author = {de Andres, A. and Guanche, R. and Vidal, C. and Losada, I. J.}, + month = jun, + year = {2015}, + keywords = {Adaptability, Capture width ratio, Resonance, Tuning, Wave energy converter}, + pages = {322--333}, +} + +@article{zhang_ocean_2021, + title = {Ocean wave energy converters: {Technical} principle, device realization, and performance evaluation}, + volume = {141}, + issn = {1364-0321}, + shorttitle = {Ocean wave energy converters}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032121000605}, + doi = {10.1016/j.rser.2021.110764}, + abstract = {As a renewable energy with immense development potential, ocean wave energy has abundant storage. The utilizations of wave energy technology to exploit wave energy resources have broad application prospects and an important realistic meaning. The researchers worldwide have designed many wave energy converters (WEC) with varied and structures based on different concepts. In this paper, the principle of wave energy power generation technology is reviewed and analyzed from basic structure and power take-off (PTO). Some typical WEC and multi-degree of freedom WEC (MDWEC) and their realization are introduced. The analytic hierarchy process (AHP) is employed to construct a comprehensive multi-index model and evaluate the present WEC from five perspectives: energy capture, technology cost economic, reliability, environmental friendliness and adaptability. Results show that in the field of wave energy utilization and development, the MDWEC has a good comprehensive performance and a wide application range. Qualitative and quantitative methods are adopted to find the optimal WEC technical scheme based on the review and analysis of technology principles of wave energy power generation and realization of devices, which can be used for the development of WEC.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Zhang, Yongxing and Zhao, Yongjie and Sun, Wei and Li, Jiaxuan}, + month = may, + year = {2021}, + keywords = {Device realization, Ocean wave energy, Performance evaluation, Technical principles, Wave energy converters}, + pages = {110764}, +} + +@misc{noauthor_small_nodate, + title = {Small {WEC}}, + url = {https://apps.openei.org/swec/}, + urldate = {2023-03-01}, +} + +@article{trueworthy_wave_2020, + title = {The {Wave} {Energy} {Converter} {Design} {Process}: {Methods} {Applied} in {Industry} and {Shortcomings} of {Current} {Practices}}, + volume = {8}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {2077-1312}, + shorttitle = {The {Wave} {Energy} {Converter} {Design} {Process}}, + url = {https://www.mdpi.com/2077-1312/8/11/932}, + doi = {10.3390/jmse8110932}, + abstract = {Wave energy is among the many renewable energy technologies being researched and developed to address the increasing demand for low-emissions energy. The unique design challenges for wave energy converter design—integrating complex and uncertain technological, economic, and ecological systems, overcoming the structural challenges of ocean deployment, and dealing with complex system dynamics—have lead to a disjointed progression of research and development. There is no common design practice across the wave energy industry and there is no published synthesis of the practices that are used by developers. In this paper, we summarize the methods being employed in WEC design as well as promising methods that have yet to be applied. We contextualize these methods within an overarching design process. We present results from a survey of WEC developers to identify methods that are common in industry. From the review and survey results, we conclude that the most common methods of WEC design are iterative methods in which design parameters are defined, evaluated, and then changed based on evaluation results. This leaves a significant space for improvement of methods that help designers make better-informed decisions prior to sophisticated evaluation, and methods of using the evaluation results to make better design decisions during iteration. Despite the popularity of optimization methods in academic research, they are less common in industry development. We end this paper with a summary of the areas of WEC design in which the testing and development of new methods is necessary, and where more research is required to fully understand the influence of design decisions on WEC performance.}, + language = {en}, + number = {11}, + urldate = {2023-03-01}, + journal = {Journal of Marine Science and Engineering}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Trueworthy, Ali and DuPont, Bryony}, + month = nov, + year = {2020}, + note = {Number: 11}, + keywords = {conceptual design, design methods, industry survey, stakeholder requirements, wave energy converter}, + pages = {932}, +} + +@book{bazilian_analytical_2009, + title = {Analytical {Methods} for {Energy} {Diversity} and {Security}: {Portfolio} {Optimization} in the {Energy} {Sector}: {A} {Tribute} to the work of {Dr}. {Shimon} {Awerbuch}}, + isbn = {978-0-08-091531-9}, + shorttitle = {Analytical {Methods} for {Energy} {Diversity} and {Security}}, + abstract = {Analytical Methods for Energy Diversity and Security is an ideal volume for professionals in academia, industry and government interested in the rapidly evolving area at the nexus between energy and climate change policy. The cutting-edge international contributions allow for a wide coverage of the topic. Analytical Methods for Energy Diversity and Security focuses on the consideration of financial risk in the energy sector. It describes how tools borrowed from financial economic theory, in particular mean-variance portfolio theory, can provide insights on the costs and benefits of diversity, and thus inform investment decision making in conditions of uncertainty. It gives the reader an in-depth understanding of how to manage risk at a time when the world’s focus is on this area. The book provides insights from leading authorities in the area of energy security. It gives readers abundant, rigorous analysis and guidance at a critical time in facing the twin challenges of energy security and climate change. The book also highlights the role of clean energy technology in moving towards future diverse and intelligent electricity systems. It will be a trusted, first point of reference for decision-makers in the field of energy policy. The book includes a foreword by the 2007 Nobel Peace Prize winner. All royalties from sale of this book will be donated to charities working in the energy sector in the developing world. Theoretical underpinning and applied use of Portfolio theory in the energy sector In-depth consideration of risk Contributions from leading international energy economists Innovative methodologies for thinking about energy security and diversity}, + publisher = {Elsevier}, + author = {Bazilian, Morgan and Roques, Fabien}, + month = mar, + year = {2009}, + note = {Google-Books-ID: iV1qIPxGM4wC}, + keywords = {Business \& Economics / Industries / Energy, Technology \& Engineering / Power Resources / General}, +} + +@article{jurasz_review_2020, + title = {A review on the complementarity of renewable energy sources: {Concept}, metrics, application and future research directions}, + volume = {195}, + issn = {0038-092X}, + shorttitle = {A review on the complementarity of renewable energy sources}, + url = {https://www.sciencedirect.com/science/article/pii/S0038092X19311831}, + doi = {10.1016/j.solener.2019.11.087}, + abstract = {Global and regional trends indicate that energy demand will soon be covered by a widespread deployment of renewable energy sources. However, the weather and climate driven energy sources are characterized by a significant spatial and temporal variability. One of the commonly mentioned solutions to overcome the mismatch between demand and supply provided by renewable generation is a hybridization of two or more energy sources into a single power station (like wind-solar, solar-hydro or solar-wind-hydro). The operation of hybrid energy sources is based on the complementary nature of renewable sources. Considering the growing importance of such systems and increasing number of research activities in this area this paper presents a comprehensive review of studies which investigated, analyzed, quantified and utilized the effect of temporal, spatial and spatiotemporal complementarity between renewable energy sources. The review starts with a brief overview of available research papers, formulates detailed definition of major concepts, summarizes current research directions and ends with prospective future research activities. The review provides a chronological and spatial information with regard to the studies on the complementarity concept.}, + language = {en}, + urldate = {2023-03-01}, + journal = {Solar Energy}, + author = {Jurasz, J. and Canales, F. A. and Kies, A. and Guezgouz, M. and Beluco, A.}, + month = jan, + year = {2020}, + keywords = {Complementarity index, Non-dispatchable energy sources, Reliability, Variability, Weather-driven}, + pages = {703--724}, +} + +@misc{noauthor_system_2022, + title = {System {Advisor} {Model} ({SAM})}, + copyright = {BSD-3-Clause}, + url = {https://github.com/NREL/SAM}, + abstract = {System Advisor Model (SAM)}, + urldate = {2022-05-13}, + publisher = {National Renewable Energy Laboratory}, + month = apr, + year = {2022}, + note = {original-date: 2013-01-10T02:52:47Z}, +} + +@book{franklin2014feedback, + series = {Always learning}, + title = {Feedback control of dynamic systems}, + isbn = {978-1-292-06890-9}, + url = {https://books.google.com/books?id=yO2hoAEACAAJ}, + publisher = {Pearson}, + author = {Franklin, G.F. and Powell, J.D. and Emami-Naeini, A.}, + year = {2014}, +} + +@incollection{FPE, + edition = {7}, + title = {Equivalent {Gain} {Analysis} {Using} {Frequency} {Response}: {Describing} {Functions}}, + isbn = {978-1-292-06890-9}, + url = {https://books.google.com/books?id=yO2hoAEACAAJ}, + booktitle = {Feedback control of dynamic systems}, + publisher = {Pearson}, + author = {Franklin, G.F. and Powell, J.D. and Emami-Naeini, A.}, + year = {2015}, + pages = {678--682}, +} + +@misc{noauthor_feedback_nodate, + title = {Feedback {Control} of {Dynamic} {Systems}, 7th {Edition}}, + url = {https://www.pearson.com/content/one-dot-com/one-dot-com/us/en/higher-education/program.html}, + abstract = {Feedback Control of Dynamic Systems, 7th Edition}, + language = {en}, + urldate = {2022-05-12}, +} + +@misc{noauthor_paretosearch_nodate, + title = {paretosearch {Algorithm} - {MATLAB} \& {Simulink}}, + url = {https://www.mathworks.com/help/gads/paretosearch-algorithm.html}, + urldate = {2022-02-21}, +} + +@article{goteman_methods_2014, + title = {Methods of reducing power fluctuations in wave energy parks}, + volume = {6}, + url = {https://aip.scitation.org/doi/10.1063/1.4889880}, + doi = {10.1063/1.4889880}, + number = {4}, + urldate = {2022-02-14}, + journal = {Journal of Renewable and Sustainable Energy}, + publisher = {American Institute of Physics}, + author = {Göteman, Malin and Engström, Jens and Eriksson, Mikael and Isberg, Jan and Leijon, Mats}, + month = jul, + year = {2014}, + pages = {043103}, +} + +@article{al_shami_parameter_2019, + title = {A parameter study and optimization of two body wave energy converters}, + volume = {131}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148118307833}, + doi = {10.1016/j.renene.2018.06.117}, + abstract = {This paper studies the multidisciplinary nature of two body wave energy converters by a parametric study based on the Taguchi method which helps to understand the effect of different dependent parameters on the wave energy conversion performance. Seven different parameters are analyzed and their effect on the maximum captured power, resonance frequency and bandwidth is studied. An interesting comparison between a cylindrical submerged body and a spherical one was made in terms of the system's viscous damping and hydrodynamics. The best system parameter combinations based on the maximum output power, best resonant frequency and frequency bandwidth were identified from the outcomes of the Taguchi method and optimized to capture the maximum power to operate in the specific (Australian) sea regions where the waves' frequencies are relatively low. This paper should provide a guideline for designers to tune their parameters based on the desired performance and sea state.}, + language = {en}, + urldate = {2022-02-14}, + journal = {Renewable Energy}, + author = {Al Shami, Elie and Wang, Xu and Zhang, Ran and Zuo, Lei}, + month = feb, + year = {2019}, + keywords = {Bandwidth, Optimization, Parameter, Power, Taguchi method, Two body wave energy converters}, + pages = {1--13}, +} + +@article{aderinto_ocean_2018, + title = {Ocean {Wave} {Energy} {Converters}: {Status} and {Challenges}}, + volume = {11}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {Ocean {Wave} {Energy} {Converters}}, + url = {https://www.mdpi.com/1996-1073/11/5/1250}, + doi = {10.3390/en11051250}, + abstract = {Wave energy is substantial as a resource, and its potential to significantly contribute to the existing energy mix has been identified. However, the commercial utilization of wave energy is still very low. This paper reviewed the background of wave energy harvesting technology, its evolution, and the present status of the industry. By covering the theoretical formulations, wave resource characterization methods, hydrodynamics of wave interaction with the wave energy converter, and the power take-off and electrical systems, different challenges were identified and discussed. Solutions were suggested while discussing the challenges in order to increase awareness and investment in wave energy industry as a whole.}, + language = {en}, + number = {5}, + urldate = {2022-02-14}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Aderinto, Tunde and Li, Hua}, + month = may, + year = {2018}, + note = {Number: 5}, + keywords = {challenges, design, wave energy, wave energy converters}, + pages = {1250}, +} + +@article{franzitta_desalination_2016, + title = {The {Desalination} {Process} {Driven} by {Wave} {Energy}: {A} {Challenge} for the {Future}}, + volume = {9}, + copyright = {http://creativecommons.org/licenses/by/3.0/}, + issn = {1996-1073}, + shorttitle = {The {Desalination} {Process} {Driven} by {Wave} {Energy}}, + url = {https://www.mdpi.com/1996-1073/9/12/1032}, + doi = {10.3390/en9121032}, + abstract = {The correlation between water and energy is currently the focus of several investigations. In particular, desalination is a technological process characterized by high energy consumption; nevertheless, desalination represents the only practicable solution in several areas, where the availability of fresh water is limited but brackish water or seawater are present. These natural resources (energy and water) are essential for each other; energy system conversion needs water, and electrical energy is necessary for water treatment or transport. Several interesting aspects include the study of saline desalination as an answer to freshwater needs and the application of renewable energy (RE) devices to satisfy electrical energy requirement for the desalination process. A merge between renewable energy and desalination is beneficial in that it is a sustainable and challenging option for the future. This work investigates the possibility of using renewable energy sources to supply the desalination process. In particular, as a case study, we analyze the application of wave energy sources in the Sicilian context.}, + language = {en}, + number = {12}, + urldate = {2022-02-14}, + journal = {Energies}, + publisher = {Multidisciplinary Digital Publishing Institute}, + author = {Franzitta, Vincenzo and Curto, Domenico and Milone, Daniele and Viola, Alessia}, + month = dec, + year = {2016}, + note = {Number: 12}, + keywords = {desalination, renewable energy, water, wave}, + pages = {1032}, +} + +@inproceedings{driscol_wave-powered_2019, + title = {Wave-{Powered} {AUV} {Recharging}: {A} {Feasibility} {Study}}, + shorttitle = {Wave-{Powered} {AUV} {Recharging}}, + url = {https://asmedigitalcollection.asme.org/OMAE/proceedings/OMAE2019/58899/V010T09A023/1068258}, + doi = {10.1115/OMAE2019-95383}, + language = {en}, + urldate = {2022-02-14}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Driscol, Blake P. and Gish, Andrew and Coe, Ryan G.}, + month = nov, + year = {2019}, +} + +@inproceedings{ramudu_ocean_2011, + title = {Ocean {Wave} {Energy}-{Driven} {Desalination} {Systems} for {Off}-grid {Coastal} {Communities} in {Developing} {Countries}}, + doi = {10.1109/GHTC.2011.38}, + abstract = {Resolute Marine Energy, Inc. (RME) is based in Boston, MA and is developing ocean wave energy converters (WECs) to benefit remote off-grid communities in developing nations. Our two WEC technologies are based on the heaving and surging motion of a buoy on the ocean surface (the 3-D WEC) and on a bottom-mounted hinged paddle that oscillates in the full water column (the Surge WEC). Our computer models and wave tank tests have revealed conversion efficiencies as high as 31\% in random sea states for the 3-D WEC and 40\% for the Surge WEC. Our objective is to complete all the testing and prototyping of both WECs by the end of 2012. RME plans to use the Surge WEC in conjunction with a reverse osmosis seawater desalination system in order to provide fresh water to coastal communities in developing countries. The proposed system will operate completely off-grid and will represent a clean and low-cost solution to the water scarcity problem commonly faced by remote communities. The fresh water production process comprises three stages: energy extraction from waves, process water acquisition and pressure regulation, and reverse osmosis. We estimate that an array of about 25 Surge WECs can produce 0.9 million m3 of fresh water per year, which is enough to meet the water needs of about 30,000 people while eliminating about 104 thousand tons of carbon dioxide emissions per year. RME has identified a municipality in South Africa as its launch customer and has the support of the South African Department of Water Affairs to develop the project. In South Africa, 1.97 million people live on the coast where wave energy is abundant and each person needs an additional 700 m3 of water per person per year to comply with United Nations Millennium Development Goals. After the first deployment, RME will expand to other remote communities in South Africa.}, + booktitle = {2011 {IEEE} {Global} {Humanitarian} {Technology} {Conference}}, + author = {Ramudu, Eshwan}, + month = oct, + year = {2011}, + keywords = {Communities, Desalination, Ocean waves, Oceans, Sea measurements, Surges, coastal communities, desalination, ocean wave energy, renewable energy, water}, + pages = {287--289}, +} + +@inproceedings{polinder_wave_2005, + title = {Wave energy converters and their impact on power systems}, + doi = {10.1109/FPS.2005.204210}, + abstract = {The objective of this paper is to give an introduction into ocean wave energy converters and their impact on power systems. The potential of wave energy is very large. There are a lot of different methods and systems for converting this power into electrical power, such as oscillating water columns, hinged contour devices as the Pelamis, overtopping devices as the wave dragon and the Archimedes wave swing. The main characteristics of these wave energy converters are discussed. A lot of research, development and engineering work is necessary to develop the experimental systems into reliable and cost-effective power stations. The wide variety of systems makes it difficult to say general things about power quality. However, the large variations of output power are a common problem. Whether this can be solved by using wave farms has to be investigated further}, + booktitle = {2005 {International} {Conference} on {Future} {Power} {Systems}}, + author = {Polinder, H. and Scuotto, M.}, + month = nov, + year = {2005}, + keywords = {Archimedes Wave Swing, Energy conversion, Ocean wave energy, Ocean waves, Petroleum, Power engineering and energy, Power generation, Power quality, Power system reliability, Power systems, Reliability engineering, Renewable energy resources, oscillating water column, power quality, power systems, renewable energy, wave energy conversion}, + pages = {9 pp.--9}, +} + +@article{borettiSolar, + title = {High-frequency standard deviation of the capacity factor of renewable energy facilities: {Part} 1—{Solar} photovoltaic}, + volume = {2}, + issn = {2578-4862}, + shorttitle = {High-frequency standard deviation of the capacity factor of renewable energy facilities}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/est2.101}, + doi = {10.1002/est2.101}, + abstract = {It is important to secure for every solar photovoltaic energy installation the highest-possible average (mean) capacity factor, as well as the lowest-possible SD, this latter computed with high frequency. High-frequency data of solar photovoltaic energy facilities are, however, very hard to be found. There are no estimations in the literature of the SD of the capacity factor of solar photovoltaic energy installations sampled with high frequency. Here, we show the data sampled every 5 minutes for the solar photovoltaic energy facilities connected to the Australian National Electricity Market grid during the year 2018. The average capacity factors are about 27\%-28\% flat panel, and 31\%-32\% tracking flat panel. The SDs have larger values at about 37\%-38\%, for coefficients of variation 120\%-130\%. As solar photovoltaic energy facilities only produce electricity during the daylight time, that is predictable, the statistic analysis is also applied to the daylight times only. While average daylight-only capacity factors are about twice the previous values, SDs are slightly less, for coefficients of variations more than halved at 55\%-65\%. The analysis highlights the extreme variability of solar energy helping the design of the energy storage needed for making possible an efficient, resilient, renewable energy-only grid. The collected and interpreted information and the provided analysis are filing a gap in the area of renewable energy and energy harvesting technology based on wind and solar photovoltaics where variability has been so far underevaluated.}, + language = {en}, + number = {1}, + urldate = {2022-01-26}, + journal = {Energy Storage}, + author = {Boretti, Alberto}, + year = {2020}, + keywords = {Australia, energy storage, renewable energy, solar energy, variability analysis, variability measures}, + pages = {e101}, +} + +@article{falcaoHydro, + title = {Wave energy utilization: {A} review of the technologies}, + volume = {14}, + issn = {1364-0321}, + shorttitle = {Wave energy utilization}, + url = {https://www.sciencedirect.com/science/article/pii/S1364032109002652}, + doi = {10.1016/j.rser.2009.11.003}, + abstract = {Sea wave energy is being increasingly regarded in many countries as a major and promising resource. The paper deals with the development of wave energy utilization since the 1970s. Several topics are addressed: the characterization of the wave energy resource; theoretical background, with especial relevance to hydrodynamics of wave energy absorption and control; how a large range of devices kept being proposed and studied, and how such devices can be organized into classes; the conception, design, model-testing, construction and deployment into real sea of prototypes; and the development of specific equipment (air and water turbines, high-pressure hydraulics, linear electrical generators) and mooring systems.}, + language = {en}, + number = {3}, + urldate = {2022-01-26}, + journal = {Renewable and Sustainable Energy Reviews}, + author = {Falcão, António F. de O.}, + month = apr, + year = {2010}, + keywords = {Equipment, Power take-off, Renewable energy, Review, Wave energy, Wave power}, + pages = {899--918}, +} + +@techreport{RM3, + address = {Albuquerque, New Mexico}, + title = {Methodology for {Design} and {Economic} {Analysis} of {Marine} {Energy} {Conversion} ({MEC}) {Technologies}}, + shorttitle = {{RM3}}, + url = {https://energy.sandia.gov/wp-content/gallery/uploads/SAND2014-9040-RMP-REPORT.pdf}, + language = {en}, + number = {SAND2014-9040}, + institution = {Sandia National Laboratories}, + author = {Neary, Vincent S and Previsic, Mirko and Jepsen, Richard A and Lawson, Michael J and Yu, Yi-Hsiang and Copping, Andrea E and Fontaine, Arnold A and Hallett, Kathleen C and Murray, Dianne K}, + month = mar, + year = {2014}, + pages = {262}, +} + +@book{newman, + title = {Marine {Hydrodynamics}}, + shorttitle = {newman}, + url = {https://direct.mit.edu/books/book/2693/Marine-Hydrodynamics}, + abstract = {Marine Hydrodynamics was specifically designed to meet the need for an ocean hydrodynamics text that is up-to-date in terms of both content and approach. The bo}, + language = {en}, + urldate = {2022-01-26}, + author = {Newman, J. N.}, + month = aug, + year = {1977}, +} + +@article{boretti_high-frequency_2020, + title = {High-frequency standard deviation of the capacity factor of renewable energy facilities: {Part} 1—{Solar} photovoltaic}, + volume = {2}, + issn = {2578-4862}, + shorttitle = {High-frequency standard deviation of the capacity factor of renewable energy facilities}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/est2.101}, + doi = {10.1002/est2.101}, + abstract = {It is important to secure for every solar photovoltaic energy installation the highest-possible average (mean) capacity factor, as well as the lowest-possible SD, this latter computed with high frequency. High-frequency data of solar photovoltaic energy facilities are, however, very hard to be found. There are no estimations in the literature of the SD of the capacity factor of solar photovoltaic energy installations sampled with high frequency. Here, we show the data sampled every 5 minutes for the solar photovoltaic energy facilities connected to the Australian National Electricity Market grid during the year 2018. The average capacity factors are about 27\%-28\% flat panel, and 31\%-32\% tracking flat panel. The SDs have larger values at about 37\%-38\%, for coefficients of variation 120\%-130\%. As solar photovoltaic energy facilities only produce electricity during the daylight time, that is predictable, the statistic analysis is also applied to the daylight times only. While average daylight-only capacity factors are about twice the previous values, SDs are slightly less, for coefficients of variations more than halved at 55\%-65\%. The analysis highlights the extreme variability of solar energy helping the design of the energy storage needed for making possible an efficient, resilient, renewable energy-only grid. The collected and interpreted information and the provided analysis are filing a gap in the area of renewable energy and energy harvesting technology based on wind and solar photovoltaics where variability has been so far underevaluated.}, + language = {en}, + number = {1}, + urldate = {2021-12-14}, + journal = {Energy Storage}, + author = {Boretti, Alberto}, + year = {2020}, + keywords = {Australia, energy storage, renewable energy, solar energy, variability analysis, variability measures}, + pages = {e101}, +} + +@article{noauthor_notitle_nodate, +} + +@inproceedings{du_control_2021, + title = {Control {Co}-{Design} for {Rotor} {Blades} of {Floating} {Offshore} {Wind} {Turbines}}, + url = {https://asmedigitalcollection.asme.org/IMECE/proceedings/IMECE2020/84546/V07AT07A052/1099255}, + doi = {10.1115/IMECE2020-24605}, + language = {en}, + urldate = {2021-10-20}, + publisher = {American Society of Mechanical Engineers Digital Collection}, + author = {Du, Xianping and Burlion, Laurent and Bilgen, Onur}, + month = feb, + year = {2021}, +} + +@article{mwasilu_potential_2019, + title = {Potential for power generation from ocean wave renewable energy source: a comprehensive review on state-of-the-art technology and future prospects}, + volume = {13}, + issn = {1752-1424}, + shorttitle = {Potential for power generation from ocean wave renewable energy source}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1049/iet-rpg.2018.5456}, + doi = {10.1049/iet-rpg.2018.5456}, + abstract = {This study presents a comprehensive review of the ocean wave technology and prospects of the wave energy penetration to cater to clean global energy demand. An ocean wave is a remarkable energy resource, but it presents a very small share in the global energy mix because of various challenges and limitations encountered to unleash its potential. This study evaluates intensively the complex barriers to the ocean energy technology deployment. The existing and prospective major wave energy projects are extensively examined to identify the learned lessons and optimise possible technological solutions to close the gap in the energy market. Furthermore, limiting and motivating factors to foster the global wave energy potential growth are deeply discussed to ignite new research directions and promising solutions. In particular, the wave energy converters as the underpinning enabling technology are fully investigated regarding their technical readiness, reliability, competitiveness and critical challenges. To complete the power equation, possible energy conversion stages, grid connection and integration issues are dealt with in a broad view of the wave energy power system. Eventually, this study aims at providing an updated ocean wave technology review and progress while introducing new research gap to fast-track contributions in the global energy mix.}, + language = {en}, + number = {3}, + urldate = {2021-10-20}, + journal = {IET Renewable Power Generation}, + author = {Mwasilu, Francis and Jung, Jin-Woo}, + year = {2019}, + keywords = {clean global energy demand, energy market, global energy mix, global wave energy potential growth, hydroelectric power, ocean energy technology deployment, ocean wave renewable energy source, ocean waves, power generation, renewable energy sources, underpinning enabling technology, wave energy converters, wave energy penetration, wave energy power system, wave power generation}, + pages = {363--375}, +} + +@techreport{bull_technological_2013, + address = {Albuquerque, NM}, + title = {Technological {Cost}-{Reduction} {Pathways} for {Point} {Absorber} {Wave} {Energy} {Converters} in the {Marine} {Hydrokinetic} {Environment}.}, + url = {https://www.osti.gov/servlets/purl/1092993/}, + doi = {10.2172/1092993}, + abstract = {This report considers and prioritizes the potential technical cost‐reduction pathways for offshore point absorber wave energy converters designed for ocean resources. This report focuses on cost‐reduction pathways related to the device technology rather than environmental monitoring or permitting opportunities. Three sources of information were used to understand current cost drivers and develop a prioritized list of potential cost‐reduction pathways: a literature review of technical work related to offshore wave activated body point absorbers, a reference device that was developed through the DOE Reference Model project, and a webinar with each of four industry device developers. Data from these information sources were aggregated and prioritized with respect to the potential impact on the lifetime levelized cost of energy, the potential for progress, the potential for success, and the confidence in success. Results indicated the four most promising cost‐reduction pathways include advanced controls, optimized structural design, improved power conversion, and optimized device profile.}, + language = {en}, + number = {SAND2013-7204, 1092993, 470210}, + urldate = {2021-10-20}, + institution = {Sandia National Lab}, + author = {Bull, Diana and Ochs, Margaret and Laird, Daniel and Boren, Blake and Jepsen, Richard}, + month = sep, + year = {2013}, +} + +@techreport{ochs_technological_2013, + title = {Technological {Cost}-{Reduction} {Pathways} for {Point} {Absorber} {Wave} {Energy} {Converters} in the {Marine} {Hydrokinetic} {Environment}.}, + url = {https://www.osti.gov/servlets/purl/1092993/}, + doi = {10.2172/1092993}, + number = {SAND2013-7204, 1092993, 470210}, + urldate = {2021-10-20}, + author = {Ochs, Margaret and Bull, Diana and Laird, Daniel and Jepsen, Richard and Boren, Blake}, + month = sep, + year = {2013}, + pages = {SAND2013--7204, 1092993, 470210}, +} + +@article{coe_initial_2020, + title = {Initial conceptual demonstration of control co-design for {WEC} optimization}, + volume = {6}, + issn = {2198-6452}, + url = {https://doi.org/10.1007/s40722-020-00181-9}, + doi = {10.1007/s40722-020-00181-9}, + abstract = {While some engineering fields have benefited from systematic design optimization studies, wave energy converters have yet to successfully incorporate such analyses into practical engineering workflows. The current iterative approach to wave energy converter design leads to sub-optimal solutions. This short paper presents an open-source MATLAB toolbox for performing design optimization studies on wave energy converters where power take-off behavior and realistic constraints can be easily included. This tool incorporates an adaptable control co-design approach, in that a constrained optimal controller is used to simulate device dynamics and populate an arbitrary objective function of the user’s choosing. A brief explanation of the tool’s structure and underlying theory is presented. To demonstrate the capabilities of the tool, verify its functionality, and begin to explore some basic wave energy converter design relationships, three conceptual case studies are presented. In particular, the importance of considering (and constraining) the magnitudes of device motion and forces in design optimization is shown.}, + language = {en}, + number = {4}, + urldate = {2021-10-20}, + journal = {Journal of Ocean Engineering and Marine Energy}, + author = {Coe, Ryan G. and Bacelli, Giorgio and Olson, Sterling and Neary, Vincent S. and Topper, Mathew B. R.}, + month = nov, + year = {2020}, + pages = {441--449}, +} + +@misc{garcia-sanz_control_2018, + address = {Washington, DC}, + title = {Control {Co}-{Design} for {Wind}/{Tidal}/{Wave} {Energy} {Systems}}, + url = {https://arpa-e.energy.gov/sites/default/files/2.%20Garcia-Sanz_ARPA-E_Presentation.pdf}, + urldate = {2021-10-20}, + author = {Garcia-Sanz, Mario}, + month = jul, + year = {2018}, +} + +@article{garcia-sanz_control_2019, + title = {Control {Co}-{Design}: {An} engineering game changer}, + volume = {1}, + issn = {2578-0727}, + shorttitle = {Control {Co}-{Design}}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/adc2.18}, + doi = {10.1002/adc2.18}, + abstract = {Over the last few decades, control engineers have focused on developing innovative control theories and algorithms to regulate systems. These control efforts are usually at the last stage of a sequential strategy that allows engineering departments to work independently and consecutively toward the design of new products and systems. Control algorithms are usually developed at the end of that sequential process, once the mechanical, electrical, and other subsystems are completely defined. This paper discusses a different approach, named Control Co-Design (CCD). Following a concurrent engineering strategy that considers multidisciplinary subsystem interactions from the beginning of the design process, CCD applies control concepts to design the entire system and reach optimal solutions that are not achievable otherwise. This approach is a game changer for the control engineer, who will be not only the designer of advanced control algorithms but also the natural leader of the design of new products and systems. This paper describes some historic engineering breakthroughs achieved by applying CCD and explores some relevant application areas. It also presents three complementary CCD methodologies that include control-inspired paradigms, formal mathematical co-optimization techniques, and co-simulation campaigns to enhance engineering creativity and achieve radically new optimal designs.}, + language = {en}, + number = {1}, + urldate = {2021-10-20}, + journal = {Advanced Control for Applications}, + author = {Garcia-Sanz, Mario}, + year = {2019}, + keywords = {concurrent engineering, control, control co-design, design, systems engineering}, + pages = {e18}, +} + +@techreport{bull_systems_2017, + address = {Albuquerque, New Mexico}, + title = {Systems {Engineering} {Applied} to the {Development} of a {Wave} {Energy} {Farm}.}, + url = {https://www.osti.gov/biblio/1365534}, + number = {SAND2017-4507}, + institution = {Sandia National Lab}, + author = {Bull, Diana L. and Costello, Ronan Patrick and Babarit, Aurelien and Nielsen, Kim and Ferreira, Claudio Bittencourt and Kennedy, Ben and Malins, Robert Joseph and Dykes, Kathryn and Roberts, Jesse and Weber, Jochem}, + month = apr, + year = {2017}, +} + +@techreport{kilcher_marine_2021, + title = {Marine {Energy} in the {United} {States}: {An} {Overview} of {Opportunities}}, + shorttitle = {Marine {Energy} in the {United} {States}}, + url = {https://www.osti.gov/servlets/purl/1766861/}, + doi = {10.2172/1766861}, + number = {NREL/TP-5700-78773, 1766861, MainId:32690}, + urldate = {2021-10-19}, + author = {Kilcher, Levi and Fogarty, Michelle and Lawson, Michael}, + month = feb, + year = {2021}, + pages = {NREL/TP--5700--78773, 1766861, MainId:32690}, +} + +@techreport{noauthor_net_2021, + title = {Net {Zero} by 2050}, + url = {https://www.iea.org/reports/net-zero-by-2050}, + abstract = {Net Zero by 2050 - Analysis and key findings. A report by the International Energy Agency.}, + language = {en-GB}, + urldate = {2021-10-19}, + institution = {IEA}, + month = may, + year = {2021}, +} + +@misc{noauthor_climate_2019, + title = {Climate change impacts}, + url = {https://www.noaa.gov/education/resource-collections/climate/climate-change-impacts}, + urldate = {2021-10-19}, + journal = {NOAA}, + month = feb, + year = {2019}, +} + +@techreport{ipcc_summary_2021, + title = {Summary for {Policymakers}}, + url = {https://www.ipcc.ch/report/ar6/wg1/downloads/report/IPCC_AR6_WGI_SPM.pdf}, + urldate = {2021-10-19}, + institution = {Cambridge University Press}, + author = {{IPCC}}, + month = aug, + year = {2021}, +} + +@article{agte_mdo_2010, + title = {{MDO}: assessment and direction for advancement—an opinion of one international group}, + volume = {40}, + issn = {1615-147X, 1615-1488}, + shorttitle = {{MDO}}, + url = {http://link.springer.com/10.1007/s00158-009-0381-5}, + doi = {10.1007/s00158-009-0381-5}, + language = {en}, + number = {1-6}, + urldate = {2021-08-28}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Agte, Jeremy and de Weck, Olivier and Sobieszczanski-Sobieski, Jaroslaw and Arendsen, Paul and Morris, Alan and Spieck, Martin}, + month = jan, + year = {2010}, + pages = {17--33}, +} + +@incollection{cooley_municipal_2012, + address = {Oxford ; New York}, + edition = {1st edition}, + title = {Municipal {Water} {Use}}, + isbn = {978-0-19-985944-3}, + language = {English}, + booktitle = {A {Twenty}-{First} {Century} {U}.{S}. {Water} {Policy}}, + publisher = {Oxford University Press}, + author = {Cooley, Heather}, + month = jul, + year = {2012}, +} + +@misc{walton_water_2016, + title = {Water {Systems} {Need} {Investment} and {Affordability}}, + url = {https://www.circleofblue.org/2016/united-states/water-systems-need-investment-affordability/}, + abstract = {Utilities are pulled by opposing economic and infrastructure pressures.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {Circle of Blue}, + author = {Walton, Brett}, + month = mar, + year = {2016}, +} + +@incollection{fischer_citizens_2000, + address = {Durham, NC}, + title = {Citizens as {Local} {Experts}}, + isbn = {978-0-8223-2622-9}, + language = {English}, + booktitle = {Citizens, {Experts}, and the {Environment}: {The} {Politics} of {Local} {Knowledge}}, + publisher = {Duke University Press Books}, + author = {Fischer, Frank}, + month = dec, + year = {2000}, +} + +@article{hohn_flints_2016, + chapter = {Magazine}, + title = {Flint’s {Water} {Crisis} and the ‘{Troublemaker}’ {Scientist}}, + issn = {0362-4331}, + url = {https://www.nytimes.com/2016/08/21/magazine/flints-water-crisis-and-the-troublemaker-scientist.html}, + abstract = {Marc Edwards took up the cause of water activists in Michigan a year ago — and earned their trust. Now he’s fighting to keep it.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {The New York Times}, + author = {Hohn, Donovan}, + month = aug, + year = {2016}, + keywords = {Edwards, Marc (1964- ), Flint (Mich), Hazardous and Toxic Substances, Hohn, Donovan, Lead, Ruffalo, Mark, Virginia Polytechnic Institute and State University, Water, Water Pollution}, +} + +@article{bosman_ep_2016, + chapter = {U.S.}, + title = {E.{P}.{A}. {Waited} {Too} {Long} to {Warn} of {Flint} {Water} {Danger}, {Report} {Says}}, + issn = {0362-4331}, + url = {https://www.nytimes.com/2016/10/21/us/epa-waited-too-long-to-warn-of-flint-water-danger-report-says.html}, + abstract = {The findings of the agency’s internal inspector general suggests the federal government should shoulder some of the blame for the city water supply’s continued lead contamination.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {The New York Times}, + author = {Bosman, Julie}, + month = oct, + year = {2016}, + keywords = {Bosman, Julie, Environmental Protection Agency, Flint (Mich), Lead, Water, Water Pollution}, +} + +@article{edwards_flint_2016, + title = {The {Flint} {Water} {Crisis}: {Overturning} the {Research} {Paradigm} to {Advance} {Science} and {Defend} {Public} {Welfare}}, + doi = {http://dx.doi.org/10.1021/acs.est.6b03573}, + number = {50}, + journal = {Environmental Science and Technology}, + author = {Edwards, Marc A. and Pruden, Amy}, + month = aug, + year = {2016}, + pages = {8935--8936}, +} + +@techreport{davis_flint_2016, + address = {Michigan}, + title = {Flint {Water} {Advisory} {Task} {Force} {Final} {Report}}, + institution = {Office of Governor Rick Snyder}, + author = {Davis, Matthew M. and Kolb, Chris and Reynolds, Lawrence and Rothstein, Eric and Sikkema, Ken}, + month = mar, + year = {2016}, + pages = {116}, +} + +@article{sorkin_contempt_2016, + title = {The {Contempt} {That} {Poisoned} {Flint}’s {Water}}, + url = {https://www.newyorker.com/news/amy-davidson/the-contempt-that-poisoned-flints-water}, + abstract = {When Michigan officials systematically ignored tests and dismissed concerns, it was the city’s citizens who suffered.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {The New Yorker}, + author = {Sorkin, Amy Davidson}, + month = jan, + year = {2016}, +} + +@incollection{vanderwarker_water_2012, + address = {Oxford ; New York}, + edition = {1st edition}, + title = {Water and {Environmental} {Justice}}, + isbn = {978-0-19-985944-3}, + abstract = {It is zero hour for a new US water policy! At a time when many countries are adopting new national approaches to water management, the United States still has no cohesive federal policy, and water-related authorities are dispersed across more than 30 agencies. Here, at last, is a vision forwhat we as a nation need to do to manage our most vital resource. In this book, leading thinkers at world-class water research institution the Pacific Institute present clear and readable analysis and recommendations for a new federal water policy to confront our national and global challenges at acritical time.What exactly is at stake? In the 21st century, pressures on water resources in the United States are growing and conflicts among water users are worsening. Communities continue to struggle to meet water quality standards and to ensure that safe drinking water is available for all. And new challengesare arising as climate change and extreme events worsen, new water quality threats materialize, and financial constraints grow. Yet the United States has not stepped up with adequate leadership to address these problems. The inability of national policymakers to safeguard our water makes the United States increasingly vulnerable to serious disruptions of something most of us take for granted: affordable, reliable, and safe water. This book provides an independent assessment of water issues and water management inthe United States, addressing emerging and persistent water challenges from the perspectives of science, public policy, environmental justice, economics, and law. With fascinating case studies and first-person accounts of what helps and hinders good water management, this is a clear-eyed look atwhat we need for a 21st century U.S. water policy.}, + language = {English}, + booktitle = {A {Twenty}-{First} {Century} {U}.{S}. {Water} {Policy}}, + publisher = {Oxford University Press}, + author = {Vanderwarker, Amy}, + month = jul, + year = {2012}, +} + +@article{goodnough_when_2016, + chapter = {U.S.}, + title = {When the {Water} {Turned} {Brown}}, + issn = {0362-4331}, + url = {https://www.nytimes.com/2016/01/24/us/when-the-water-turned-brown.html}, + abstract = {As every major decision was made over more than a year, officials at all levels of government acted in ways that contributed to the public health emergency in Flint, Mich.}, + language = {en-US}, + urldate = {2021-05-28}, + journal = {The New York Times}, + author = {Goodnough, Abby and Davey, Monica and Smith, Mitch}, + month = jan, + year = {2016}, + keywords = {Davey, Monica, Flint (Mich), Goodnough, Abby, Lead, Michigan, Smith, Mitch, Water, Water Pollution}, +} + +@article{schmidt_bush_2008, + title = {The {Bush} {Doctrine} and the {Iraq} {War}: {Neoconservatives} {Versus} {Realists}}, + volume = {17}, + issn = {0963-6412}, + shorttitle = {The {Bush} {Doctrine} and the {Iraq} {War}}, + url = {https://doi.org/10.1080/09636410802098990}, + doi = {10.1080/09636410802098990}, + abstract = {The aim of this article is to contribute to our understanding of both the debate over the war in Iraq and its implications for the future of U.S. foreign policy by examining the relationship between neoconservatism and realism. The article begins by establishing the connection between the tenets of neoconservatism and the arguments for war against Iraq. The primary focus is on the neoconservative Bush Doctrine that served as the primary justification for the Iraq War. Next, we turn to the arguments that realists put forth in their attempt to steer America away from the road to war. The realists, however, proved to be unsuccessful in their attempt to prevent war and in the final section we address the central question of the article; why did realism fail in the debate over Iraq?}, + number = {2}, + urldate = {2021-05-27}, + journal = {Security Studies}, + author = {Schmidt, Brian C. and Williams, Michael C.}, + month = may, + year = {2008}, + pages = {191--220}, +} + +@article{kaufmann_threat_2004, + title = {Threat {Inflation} and the {Failure} of the {Marketplace} of {Ideas}: {The} {Selling} of the {Iraq} {War}}, + volume = {29}, + issn = {0162-2889}, + url = {https://doi.org/10.1162/0162288041762940}, + doi = {10.1162/0162288041762940}, + number = {1}, + urldate = {2021-05-27}, + journal = {International Security}, + author = {Kaufmann, Chaim}, + month = jul, + year = {2004}, + pages = {5--48}, +} + +@article{nelkin_political_1975, + title = {The {Political} {Impact} of {Technical} {Expertise}}, + volume = {5}, + issn = {0306-3127}, + url = {https://doi.org/10.1177/030631277500500103}, + doi = {10.1177/030631277500500103}, + language = {en}, + number = {1}, + urldate = {2021-05-27}, + journal = {Social Studies of Science}, + author = {Nelkin, Dorothy}, + month = feb, + year = {1975}, + pages = {35--54}, +} + +@book{ricks_fiasco_2006, + address = {New York}, + title = {Fiasco: {The} {American} {Military} {Adventure} in {Iraq}, 2003 to 2005}, + isbn = {978-0-14-303891-7}, + shorttitle = {Fiasco}, + abstract = {Coming from The Penguin Press in February 2009, Thomas E. Ricks's The GambleThomas E. Ricks 's \#1 New York Times bestseller, Fiasco, transformed the political dialogue on the war in Iraq. Now Ricks has picked up where Fiasco left off-Iraq, late 2005. With more newsbreaking information, including hundreds of hours of interviews with top U.S. officials who were on the ground during the surge and beyond, The Gamble is the natural companion piece to Fiasco, and the two are sure to become the definitive examinations of what ultimately went wrong in Iraq.}, + language = {English}, + publisher = {Penguin Books}, + author = {Ricks, Thomas E.}, + year = {2006}, +} + +@inproceedings{grandi_evaluation_2013, + address = {Ljubljana, Slovenia}, + title = {Evaluation of current ripple amplitude in three-phase {PWM} voltage source inverters}, + isbn = {978-1-4673-4913-0 978-1-4673-4911-6}, + url = {http://ieeexplore.ieee.org/document/6601146/}, + doi = {10.1109/CPE.2013.6601146}, + abstract = {Determination of current ripple in three-phase PWM voltage source inverters (VSI) is important for both design and control purposes, since this is the most popular conversion topology for energy conversion systems. In this paper the complete analysis of the peak-to-peak current ripple distribution over a fundamental period is given for three-phase VSIs. In particular, peak-to-peak current ripple amplitude is analytically determined as a function of the modulation index. Minimum, maximum, and average values are also emphasized. Although the reference is made to continuous symmetric PWM, being the most simple and effective solution to minimize the current ripple, the analysis could be easily extended to either discontinuous or unsymmetrical modulation, both carrier-based and space vector PWM. The analytical developments for all the different subcases are verified by numerical simulations.}, + language = {en}, + urldate = {2021-05-17}, + booktitle = {2013 {International} {Conference}-{Workshop} {Compatibility} {And} {Power} {Electronics}}, + publisher = {IEEE}, + author = {Grandi, G. and Loncarski, J.}, + month = jun, + year = {2013}, + pages = {156--161}, +} + +@misc{yngve_solbakken_space_2017, + title = {Space {Vector} {PWM} {Intro}}, + url = {https://www.switchcraft.org/learning/2017/3/15/space-vector-pwm-intro}, + abstract = {Get rich, smart and famous by understanding the dark arts of space vector pulse width modulation! A must for everyone aspiring to become a star in the drives community!}, + language = {en-US}, + urldate = {2021-05-16}, + journal = {Switchcraft}, + author = {{Yngve Solbakken}}, + month = may, + year = {2017}, +} + +@misc{mathworks_permanent_nodate, + title = {Permanent magnet synchronous machine}, + url = {https://www.mathworks.com/help/physmod/sps/powersys/ref/permanentmagnetsynchronousmachine.html}, + urldate = {2021-05-16}, + journal = {Mathworks Help Center Documentation}, + author = {{Mathworks}}, +} + +@book{hanselman_brushless_2006, + address = {Lebanon, Ohio}, + edition = {2}, + title = {Brushless {Permanent} {Magnet} {Motor} {Design}}, + isbn = {1-881855-15-5}, + url = {https://blog.avislab.com/uploads/2014/05/BrushlessPermanentMagnetMotorDesignVersion2.pdf}, + abstract = {Written for electrical, electronics, and mechanical engineers responsible for designing and specifying motors, the book provides details of brushless DC and synchronous motors, as well as both radial and axial motor...}, + language = {en}, + urldate = {2021-05-14}, + publisher = {Magna Physics Publishing}, + author = {Hanselman, Duane C.}, + year = {2006}, +} + +@article{decoret_fourrier_2004, + title = {Fourrier transform of an impulsion train}, + language = {en}, + author = {Decoret, Xavier}, + month = jul, + year = {2004}, + pages = {3}, +} + +@misc{ka-raceing_ev_ka-raceing_2021, + title = {{KA}-{RaceIng} {Rollout} 2021 powered by {BASF}}, + url = {https://www.youtube.com/watch?v=xPRnP5qF-JQ}, + language = {German}, + collaborator = {{KA-RaceIng e.V.}}, + month = may, + year = {2021}, +} + +@misc{noauthor_vehicles_nodate, + title = {Vehicles – {ELEFANT} {RACING}}, + url = {https://elefantracing.de/vehicles}, + urldate = {2021-05-14}, +} + +@article{haugland_new_2019, + title = {A {New} {Motor}}, + url = {https://issuu.com/revolventnu/docs/spring_magazine_2019}, + number = {1}, + journal = {Revolve}, + author = {Haugland, Kristoffer}, + month = may, + year = {2019}, + pages = {20--21}, +} + +@misc{noauthor_mythen_nodate, + title = {Mythen}, + url = {https://electric.amzracing.ch/en/team/2019}, + urldate = {2021-05-14}, + journal = {AMZ Racing}, +} + +@misc{noauthor_amz_nodate, + title = {{AMZ} {Racing}}, + url = {https://electric.amzracing.ch/en/team/2019}, + urldate = {2021-05-14}, +} + +@incollection{woodson_review_1968, + address = {New York, NY}, + title = {Review of {Electromagnetic} {Theory}}, + volume = {1}, + url = {https://ocw.mit.edu/resources/res-6-003-electromechanical-dynamics-spring-2009/front-end-matter/app_b_emd.pdf}, + booktitle = {Electromechanical {Dynamics}}, + publisher = {John Wiley and Sons, Inc.}, + author = {Woodson, Herbert H. and Melcher, James R.}, + year = {1968}, + pages = {B19--B24}, +} + +@incollection{kassakian_introduction_2010, + series = {Addison-{Wesley} series in electrical engineering}, + title = {Introduction to {Rectifier} {Circuits}}, + isbn = {978-81-317-3320-2}, + booktitle = {Principles of {Power} {Electronics}}, + publisher = {Pearson Education}, + author = {Kassakian, John G. and Schlecht, Martin F. and Verghese, George C.}, + year = {2010}, + pages = {52}, +} + +@article{formula_student_germany_team_2019, + title = {Team {Profiles} {Electric}}, + url = {https://www.formulastudent.de/fileadmin/user_upload/all/2019/PR_Media/FSG2019%20magazine%20v20190724_LQ.pdf}, + journal = {Formula Student Germany}, + author = {{Formula Student Germany}}, + month = jul, + year = {2019}, + pages = {112--126}, +} + +@phdthesis{owen_benefits_2018, + address = {Cambridge, MA}, + type = {Thesis}, + title = {The benefits of {4WD} drive for a high-performance {FSAE} electric racecar}, + copyright = {MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission.}, + url = {https://dspace.mit.edu/handle/1721.1/119907}, + abstract = {This thesis explores the performance of Rear-Wheel Drive (RWD) and Four-Wheel Drive (4WD) FSAE Electric racecars with regards to acceleration and regenerative braking. The benefits of a 4WD architecture are presented along with the tools for further optimization and understanding. The goal is to provide real, actionable information to teams deciding to pursue 4WD vehicles and quantify the results of difficult engineering trade-offs. Analytical bicycle models are used to discuss the effect of the Center of Gravity location on vehicle performance, and Acceleration-Velocity Phase Space (AVPS) is introduced as a useful tool for optimization. Lap-time Simulation is used to determine the regenerative braking energy available for recovery during a race for RWD and 4WD vehicles.}, + language = {eng}, + urldate = {2021-05-14}, + school = {Massachusetts Institute of Technology}, + author = {Owen, Elliot Douglas}, + year = {2018}, +} + +@article{wrobel_characterizing_2016, + title = {Characterizing the in situ {Thermal} {Behavior} of {Selected} {Electrical} {Machine} {Insulation} and {Impregnation} {Materials}}, + volume = {52}, + doi = {10.1109/TIA.2016.2589219}, + number = {6}, + journal = {IEEE Transactions on Industry Applications}, + author = {Wrobel, Rafal and Williamson, Samuel J. and Booker, Julian D. and Mellor, Phil H.}, + year = {2016}, + pages = {4678--4687}, +} + +@misc{sylvestre_120kw_nodate, + title = {{120kW} {Quad} {Inverter} for {All}-{Wheel} {Drive} {Electric} {Racecar}}, + url = {https://wisconsinracing.org/wp-content/uploads/2020/10/WR_Quad_Inverter.pdf}, + publisher = {Wisconsin Formula SAE Racing}, + author = {Sylvestre, Jason and Sixel, Will and Shozda, Alex}, +} + +@inproceedings{swaminathan_effect_2017, + title = {Effect of {Practical} {Losses} on {Optimal} {Design} of {Batch} {RO} {Systems}}, + booktitle = {Proceedings of {IDA} {World} {Congress} on {Desalination} and {Water} {Reuse}}, + publisher = {International Desalination Association}, + author = {Swaminathan, Jaichander and Stover, Richard L. and Tow, Emily W. and Warsinger, David M. and Lienhard, John H.}, + month = oct, + year = {2017}, +} diff --git a/pubs/renewable-energy-mdo/sections/discussion.tex b/pubs/renewable-energy-mdo/sections/discussion.tex index f9178ec14..1a807deee 100644 --- a/pubs/renewable-energy-mdo/sections/discussion.tex +++ b/pubs/renewable-energy-mdo/sections/discussion.tex @@ -3,10 +3,10 @@ \section{Discussion}\label{remdo:sec:discussion} \ifdefined\DISSERTATION - Beyond the analysis of individual results in \cref{remdo:sec:results}, this section discusses the study's contributions, implications, and limitations more broadly. + Beyond the analysis of individual results in \Cref{remdo:sec:results}, this section discusses the study's contributions, implications, and limitations more broadly. It compares results to existing studies for context and suggests avenues for future work to resolve model shortcomings and answer additional design questions. \else - Beyond the per-result analysis of \cref{remdo:sec:results}, this section discusses the study's contributions and limitations, comparing results to existing studies and suggesting future work. + Beyond the per-result analysis of \Cref{remdo:sec:results}, this section discusses the study's contributions and limitations, comparing results to existing studies and suggesting future work. \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -18,13 +18,13 @@ \subsection{Result Comparison to Other Studies } \subsubsection{Force Saturation} \ifdefined\DISSERTATION Previous studies \cite{mcgilton_optimal_2024,coe_maybe_2021,devin_high-dimensional_2024,gaebele_tpl_2025,mccabe_force-limited_2024} recommend capping the maximum force well below the unsaturated point, finding that this sacrifices only minimal power, but none perform a full economic analysis confirming that the cost savings outweigh the power loss. - The results in \cref{remdo:sec:results-single} verify the conclusion with an appropriate cost analysis, since the optimal design sizes its powertrain small enough to require force saturation. - The follow-on analysis in \cref{remdo:sec:sensitivity-model-assumptions} repeats the optimization without allowing force saturation and finds a 5\% LCOE penalty. + The results in \Cref{remdo:sec:results-single} verify the conclusion with an appropriate cost analysis, since the optimal design sizes its powertrain small enough to require force saturation. + The follow-up analysis in \Cref{remdo:sec:sensitivity-model-assumptions} repeats the optimization without allowing force saturation and finds a 5\% LCOE penalty. Force saturation is therefore highly valuable as a control technique, capable of tangible LCOE reductions once the power--cost tradeoff is considered. Future studies could quantify the lowest marginal PTO force price (\$/N) for which this conclusion still holds. \else - Previous studies \cite{mcgilton_optimal_2024,coe_maybe_2021,devin_high-dimensional_2024,gaebele_tpl_2025,mccabe_force-limited_2024} recommend capping maximum force well below the unsaturated point on the finding that it sacrifices minimal power, but none confirm economically that the savings outweigh the loss. - This study verifies the conclusion with a full cost analysis: the optimal design sizes its powertrain to require force saturation, and re-optimizing without it incurs a 5\% LCOE penalty (\cref{remdo:sec:sensitivity-model-assumptions}), confirming force saturation as a valuable control technique. + Previous studies \cite{mcgilton_optimal_2024,coe_maybe_2021,devin_high-dimensional_2024,gaebele_tpl_2025,mccabe_force-limited_2024} recommend capping maximum force well below the unsaturated point to minimize power loss, but none have economically confirmed that the financial savings outweigh the performance reduction. + This study verifies the conclusion with a full cost analysis: the optimal design sizes its powertrain to require force saturation, and re-optimizing without it incurs a 5\% LCOE penalty. %(\Cref{remdo:sec:sensitivity-model-assumptions}), confirming force saturation as a valuable control technique. \fi % \hl{add similar analysis for power saturation} @@ -35,13 +35,13 @@ \subsubsection{Global Deployability} A previous study \cite{de_andres_adaptability_2015} compares the global deployability of a uniform versus a tunable WEC design across wave climates, finding that tuning the resonant period to the dominant ocean period by changing geometry increases capture width ratio but decreases the more important power-to-mass ratio (an inverse LCOE proxy), and concluding that tuning is unfavorable because it requires expensive larger diameters. Importantly, however, those devices have equal diameter and height, use only damping control, and are tuned to maximize power without regard for mass or cost. In MDOcean, tuning can be accomplished by varying diameter and height independently and with reactive control, and devices are tuned to minimize LCOE rather than maximize power. - The single-objective results in \cref{remdo:tab:opt-dv-values,remdo:tab:opt-output} agree with the overall conclusion of \cite{de_andres_adaptability_2015} that power maximization does not align with LCOE minimization, though here the additional cost of maximum power appears as PTO cost rather than structural cost. - Meanwhile, the location sensitivity (\cref{remdo:tab:location}) shows a significantly larger optimal float in Hawaii, the site with the lowest common wave period, which departs from the study \cite{de_andres_adaptability_2015}, which finds small (4~m diameter) WECs optimize their LCOE proxy regardless of dominant period. + The single-objective results in \Cref{remdo:tab:opt-dv-values,remdo:tab:opt-output} agree with the overall conclusion of \cite{de_andres_adaptability_2015} that power maximization does not align with LCOE minimization, though here the additional cost of maximum power appears as PTO cost rather than structural cost. + Meanwhile, the location sensitivity (\Cref{remdo:tab:location}) shows a significantly larger optimal float in Hawaii, the site with the lowest common wave period, which departs from the study \cite{de_andres_adaptability_2015}, which finds small (4~m diameter) WECs optimize their LCOE proxy regardless of dominant period. This demonstrates that a more thorough multidisciplinary model is essential to draw accurate design conclusions. \else A survey finds 40\% of WEC developers design for site-agnostic deployment \cite{trueworthy_wave_2020}. A prior study \cite{de_andres_adaptability_2015} concludes that geometric tuning to the dominant wave period is unfavorable, but its devices have coupled diameter and height, use only damping control, and tune for power rather than cost. - MDOcean's results agree that power maximization does not align with LCOE minimization, but show the cost penalty as PTO rather than structural cost, and show a significantly larger optimal float in Hawaii (\cref{remdo:tab:opt-dv-values,remdo:tab:opt-output,remdo:tab:location}), which contradicts \cite{de_andres_adaptability_2015} and demonstrates the value of a fuller multidisciplinary model. + MDOcean's results agree that power maximization does not align with LCOE minimization, but show the cost penalty as PTO rather than structural cost, and show a significantly larger optimal float in Hawaii (\Cref{remdo:tab:opt-dv-values,remdo:tab:opt-output,remdo:tab:location}), which contradicts \cite{de_andres_adaptability_2015} and demonstrates the value of a fuller multidisciplinary model. \fi %%%%%%%%%%%%%%%%%%%%%%% @@ -63,7 +63,7 @@ \subsubsection{Structural Efficiency} \subsubsection{Optimization Procedure} \label{remdo:sec:discussion-optimization} \ifdefined\DISSERTATION - Recalling the prior WEC optimization studies of \cref{remdo:sec:lit}, all prior large-scale ($\geq 8$ design variables) WEC optimizations use the genetic algorithm, a population-based heuristic. + Recalling the prior WEC optimization studies of \Cref{remdo:sec:lit}, all prior large-scale ($\geq 8$ design variables) WEC optimizations use the genetic algorithm, a population-based heuristic. Based on the stated generation counts and population sizes \cite{khanal_multi-objective_2024,garcia-teruel_reliability-based_2021,cotten_multi-objective_2022,abdulkadir_control_2024}, these require roughly 12{,}000, 2{,}200, 6{,}100, and 2{,}400 function evaluations to converge. The present study is the first large-scale WEC optimization with a gradient-based algorithm, which was expected to require fewer evaluations. Generating the Pareto seeds, however, entails 20 single-objective optimizations at about 100 iterations each, using finite difference over 12 design variables, for an estimated $20\cdot100\cdot(12+1)=\resultsRE[paretoFcnEvals]$ evaluations, dwarfing the genetic algorithm counts. @@ -73,7 +73,7 @@ \subsubsection{Optimization Procedure} A more substantial reduction is possible via automatic differentiation or the adjoint method, which would make the evaluation count independent of the number of design variables at the cost of greater implementation effort: the adjoint method would require constraint aggregation given the many constraints, and automatic differentiation would require rewriting functions in terms of elementary operations and manually supplying gradients for unsupported functions such as the Bessel functions in the hydrodynamics module. Even with the higher evaluation count, the gradient-based algorithm retains the advantage of certifying convergence to a local optimum, and with systematic multistart, reasonable confidence of a global optimum, which a heuristic optimization cannot provide. \else - All prior large-scale ($\geq 8$ design variables) WEC optimizations use the genetic algorithm (\cref{remdo:sec:lit}), requiring roughly 2{,}000--12{,}000 function evaluations to converge \cite{khanal_multi-objective_2024,garcia-teruel_reliability-based_2021,cotten_multi-objective_2022,abdulkadir_control_2024}. + All prior large-scale ($\geq 8$ design variables) WEC optimizations use the genetic algorithm (\Cref{remdo:sec:lit}), requiring roughly 2{,}000--12{,}000 function evaluations to converge \cite{khanal_multi-objective_2024,garcia-teruel_reliability-based_2021,cotten_multi-objective_2022,abdulkadir_control_2024}. This study is the first to use a gradient-based algorithm at this scale; surprisingly, finite-difference gradients over 12 design variables make its estimated $\resultsRE[paretoFcnEvals]$ evaluations exceed the heuristic counts, though MDOcean's semi-analytical model likely still runs faster in wall-clock time. Automatic differentiation or the adjoint method would make the count independent of the design-variable dimension, and the gradient-based approach retains the key advantage of certifying local optimality, with global confidence via multistart, that heuristics cannot. \fi @@ -81,7 +81,7 @@ \subsubsection{Optimization Procedure} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Model Realism} \ifdefined\DISSERTATION - Using the optimization and sensitivity results, the modeling assumptions of \cref{remdo:sec:model} can now be assessed for reasonableness. + Using the optimization and sensitivity results, the modeling assumptions of \Cref{remdo:sec:model} can now be assessed for reasonableness. We examine both the model complexities MDOcean captures, to confirm they were worth including, and the shortcomings it cannot capture, to judge whether they must be added in future versions. Previous studies such as \cite{garcia-teruel_reliability-based_2021} have called for this kind of systematic model-fidelity assessment to build designer confidence in the most relevant effects and their computational cost. \else @@ -91,25 +91,27 @@ \subsection{Model Realism} %%%%%%%%%%%%%%%%%%%%%%% \subsubsection{Observed Impact of Modeled Effects} \ifdefined\DISSERTATION - Several areas of model complexity, force saturation, slamming amplitude limits, and 2-DOF dynamics, stand out as contributing significantly to the results, evident in the constraint activity and in the differences from using 1-DOF (stationary-spar) dynamics; \cref{remdo:sec:sensitivity-model-assumptions} analyzed these in detail. + Several areas of model complexity, force saturation, slamming amplitude limits, and 2-DOF dynamics, stand out as contributing significantly to the results, evident in the constraint activity and in the differences from using 1-DOF (stationary-spar) dynamics; \Cref{remdo:sec:sensitivity-model-assumptions} analyzed these in detail. MDOcean's 2-DOF dynamics run roughly an order of magnitude slower than its 1-DOF dynamics \cite{mccabe_development_2026}, suggesting that code improvements to narrow this gap may be worthwhile given the dynamic importance of the second degree of freedom. Force saturation is especially relevant: it directly reduces powertrain cost and indirectly reduces structural cost by lowering operational heave loading, which permits a thinner spar given the active column fatigue factor-of-safety constraint. The observed impact of these effects justifies the corresponding model complexity and suggests other optimization frameworks should include them for realistic results. \else - Force saturation, slamming amplitude limits, and 2-DOF dynamics all contribute significantly to the results (\cref{remdo:sec:sensitivity-model-assumptions}). + Force saturation, slamming amplitude limits, and 2-DOF dynamics all contribute significantly to the results.% (\Cref{remdo:sec:sensitivity-model-assumptions}). The 2-DOF dynamics run roughly an order of magnitude slower than 1-DOF \cite{mccabe_development_2026}, suggesting worthwhile code improvements, while force saturation reduces both powertrain cost and, via lower heave loading, structural cost. The impact of these effects justifies their model complexity and argues for their inclusion in other frameworks. \fi \ifdefined\DISSERTATION Conversely, a few modeling complexities appear unnecessary in hindsight because they have little effect. - \Cref{remdo:sec:sensitivities-local} finds low sensitivity to drag coefficient, and the re-optimization without drag in \cref{remdo:sec:sensitivity-model-assumptions} confirms it, suggesting that modeling the drag nonlinearity is inessential and that future optimizations may disable drag to avoid iterating the drag damping coefficient. + \Cref{remdo:sec:sensitivities-local} finds low sensitivity to drag coefficient, and the re-optimization without drag in \Cref{remdo:sec:sensitivity-model-assumptions} confirms it, suggesting that modeling the drag nonlinearity is inessential and that future optimizations may disable drag to avoid iterating the drag damping coefficient. Likewise, the slamming model is derived to be valid not only for long waves but also intermediate wavelengths, where the maximum amplitude depends on the phase of the dynamic response; the simple long-wave slamming model is reasonably accurate at sea states with an active slamming constraint \cite{mccabe_development_2026}, suggesting the intermediate-wavelength model may be unnecessary. Confirming this would require checking all points during the optimization, not just the optimum, since the slamming model fidelity is not currently a model setting and the long-wave condition is verified manually at the optimum. %\hl{I should actually check this.} % TODO (scrutineering) Finally, although drag and intermediate-wavelength slamming each have little individual effect, the problem's nonlinearity admits a possible coupling effect were both disabled simultaneously, or an emergent effect under a changed formulation (a different objective or added constraints), so users should exercise caution when simplifying the model. \else - Conversely, the low sensitivity to drag coefficient (\cref{remdo:sec:sensitivities-local}), confirmed by re-optimization without drag (\cref{remdo:sec:sensitivity-model-assumptions}), suggests the drag nonlinearity is inessential. - Similarly, the simple long-wave slamming model is reasonably accurate where the slamming constraint is active \cite{mccabe_development_2026}, suggesting the intermediate-wavelength model may be unnecessary. + Conversely, + %the low sensitivity to drag coefficient (\Cref{remdo:sec:sensitivities-local}), confirmed by re-optimization without drag (\Cref{remdo:sec:sensitivity-model-assumptions}), suggests the drag nonlinearity is inessential. + %Similarly, + the simple long-wave slamming model is reasonably accurate where the slamming constraint is active \cite{mccabe_development_2026}, suggesting the intermediate-wavelength model may be unnecessary. Because the problem is nonlinear, however, disabling both simultaneously or changing the formulation could produce coupling effects, so model simplification warrants caution. \fi @@ -134,7 +136,7 @@ \subsection{Formulation Realism} \subsubsection{Design Variable Suitability} \ifdefined\DISSERTATION \Cref{remdo:sec:formulation} described this study's careful choice of design variables to facilitate satisfaction of high-priority requirements, such as maintaining model validity and aiding convergence, while balancing the computational challenge of a large design space. - The analysis of \cref{remdo:sec:sensitivities-local} reveals that several variables chosen as parameters may merit inclusion as design variables in future studies: $D_d$, $T_{f,1}$, $T_s$, and possibly $D_{f,in}$. + The analysis of \Cref{remdo:sec:sensitivities-local} reveals that several variables chosen as parameters may merit inclusion as design variables in future studies: $D_d$, $T_{f,1}$, $T_s$, and possibly $D_{f,in}$. Adding $N_{WEC}$ as a design variable carries little importance in LCOE minimization, where economies of scale always favor larger $N_{WEC}$, but offers useful insight in a modified multi-objective analysis where the first objective changes from per-WEC power to array power. This is relevant for small-scale Powering the Blue Economy applications with a fixed power requirement, where it is unclear whether multiple smaller WECs or one larger WEC is preferable. @@ -145,7 +147,7 @@ \subsubsection{Design Variable Suitability} The authors predict, however, that the speed of the semi-analytical models and the extensions discussed here will permit full coupling even for substantially larger WEC optimizations, including the ambitious target of comparing multiple hydrodynamic architectures with realistic powertrain models. \else \Cref{remdo:sec:formulation} described the careful choice of design variables to maintain model validity and aid convergence. - The sensitivity analysis (\cref{remdo:sec:sensitivities-local}) suggests $D_d$, $T_{f,1}$, $T_s$, and possibly $D_{f,in}$ merit inclusion as design variables in future studies. + The sensitivity analysis (\Cref{remdo:sec:sensitivities-local}) suggests $D_d$, $T_{f,1}$, $T_s$, and possibly $D_{f,in}$ merit inclusion as design variables in future studies. Adding $N_{WEC}$ matters little for LCOE minimization but is valuable in a modified multi-objective analysis using array power, relevant to fixed-requirement Powering the Blue Economy applications weighing many small WECs against one large one. A sensitivity analysis of design variables perturbed as parameters would further quantify inter-disciplinary coupling, supporting either the fully coupled approach used here \cite{mccabe_development_2026} or a future decoupled formulation should the design space grow too large for full coupling. \fi @@ -153,15 +155,15 @@ \subsubsection{Design Variable Suitability} %%%%%%%%%%%%%%%%%%%%%%% \subsubsection{Parameter Suitability} \ifdefined\DISSERTATION - The local parameter sensitivity analysis of \cref{remdo:sec:sensitivities-local} already yields significant insight into the choice of parameters. + The local parameter sensitivity analysis of \Cref{remdo:sec:sensitivities-local} already yields significant insight into the choice of parameters. Interpreting those results more broadly, parameters with high design sensitivity $\left(\frac{dx^*}{dp}\right)$, such as dimensional aspect ratios, wave conditions, and material properties, are especially important for engineers to pin down early, since they affect the optimal design; where relevant, designers should consider holding their nondimensional forms constant across prototype scales, extending the common practice of Froude scaling for wave conditions. Parameters with high objective sensitivity $\left(\frac{dJ^*}{dp}\right)$, such as operational wave conditions, PTO efficiency, and financing rates in LCOE minimization, are most important for funders to determine early and for research agencies to target through R\&D incentives, since they affect economic viability. Notably, other parameters, such as PTO price, storm wave conditions, and dimensional variables, are more relevant to design cost minimization, highlighting that incentives and innovation strategies for Powering the Blue Economy applications may differ from those for utility-scale energy. The larger number of highly sensitive parameters in cost minimization further implies more diverse avenues for impactful innovation in PBE applications than in utility-scale energy. - Further useful analysis includes a sensitivity analysis of hyperparameters, following \cref{remdo:sec:sensitivities-local}, to ensure numerical convergence and adequate tuning, and a global parameter sensitivity analysis accounting for both nonlinearities across operating points and interaction effects among uncertain parameters. + Further useful analysis includes a sensitivity analysis of hyperparameters, following \Cref{remdo:sec:sensitivities-local}, to ensure numerical convergence and adequate tuning, and a global parameter sensitivity analysis accounting for both nonlinearities across operating points and interaction effects among uncertain parameters. \else - Interpreting the parameter sensitivities (\cref{remdo:sec:sensitivities-local}) broadly, parameters with high design sensitivity (aspect ratios, wave conditions, material properties) are most important for engineers to fix early, + Interpreting the parameter sensitivities (\Cref{remdo:sec:sensitivities-local}) broadly, parameters with high design sensitivity (aspect ratios, wave conditions, material properties) are most important for engineers to fix early, which should ideally be held constant in nondimensional form across scales, while those with high objective sensitivity (wave conditions, PTO efficiency, financing rates) are most important for funders and R\&D incentives. The differing high-sensitivity parameters for cost minimization, and their greater number, suggest that @@ -172,14 +174,14 @@ \subsubsection{Parameter Suitability} \subsubsection{Constraint and Requirement Suitability} \ifdefined\DISSERTATION By including \resultsRE[numLinConstraints]~linear and \resultsRE[numNonlinConstraints]~nonlinear constraints, this optimization captures more realistic design, model, and operational requirements than any other WEC optimization study known to the authors. - The active constraints in \cref{remdo:fig:constraint-activity} fall broadly into survivability: structural (design-variable lower bounds and factors of safety in the float, column, and damping plate) and amplitude-based (float rising above spar, linear theory, and float slamming). + The active constraints in \Cref{remdo:fig:constraint-activity} fall broadly into survivability: structural (design-variable lower bounds and factors of safety in the float, column, and damping plate) and amplitude-based (float rising above spar, linear theory, and float slamming). Constraints related to ballast and pitch stability are inactive, confirming these are not primary innovation avenues. While survivability is a known critical WEC requirement, it is rarely incorporated into optimization studies; this study demonstrates and quantifies its effect. - For example, the Lagrange multipliers of \cref{remdo:fig:lagrange-multiplier} suggest that improving the damping plate's structural design is worth about 5 times more than equivalent column improvements and 10 times more than float improvements. + For example, the Lagrange multipliers of \Cref{remdo:fig:lagrange-multiplier} suggest that improving the damping plate's structural design is worth about 5 times more than equivalent column improvements and 10 times more than float improvements. Further survivability innovation is warranted, both incremental and transformative. Incremental improvements include more structurally and hydrodynamically performant detail designs that obey these constraints while reducing material and sustaining energy production, for example, performing FEA or adding stiffeners to justify removing more material, replacing welded connections with pins to reduce moment transfer, or modifying the float--spar attachment geometry to allow more travel at the same bulk dimensions. - Transformative improvements include creative concepts that avoid these constraints altogether, storm-survival strategies such as submerging the WEC, changing shape with control surfaces, or altering the PTO control strategy to reduce force and amplitude, whose viability can be readily estimated by weighing the additional costs (e.g.\ actuator and control hardware and software) against the performance gains, again using the Lagrange multipliers of \cref{remdo:fig:lagrange-multiplier}. + Transformative improvements include creative concepts that avoid these constraints altogether, storm-survival strategies such as submerging the WEC, changing shape with control surfaces, or altering the PTO control strategy to reduce force and amplitude, whose viability can be readily estimated by weighing the additional costs (e.g.\ actuator and control hardware and software) against the performance gains, again using the Lagrange multipliers of \Cref{remdo:fig:lagrange-multiplier}. That said, many considerations remain uncaptured, requiring caution before asserting that industry should pursue the optimal design found here. Design variables are assumed continuous, whereas structural thicknesses and, to a lesser extent, generator specifications are constrained to discrete commercially available sizes. @@ -189,9 +191,9 @@ \subsubsection{Constraint and Requirement Suitability} For guidance on requirements and constraints in WEC design optimization, the reader is referred to \cite{bull_systems_2017,babarit_stakeholder_2017} for a comprehensive breakdown and mapping of WEC requirements, and to \cite{trueworthy_wave_2020} for how developers prioritize requirements in practice. \else With \resultsRE[numLinConstraints]~linear and \resultsRE[numNonlinConstraints]~nonlinear constraints, this optimization captures more realistic requirements than any other WEC optimization known to the authors. - The active constraints (\cref{remdo:fig:constraint-activity}) are all survivability-related, such as structural factors of safety and amplitude limits, while ballast and pitch-stability constraints are inactive. + The active constraints (\Cref{remdo:fig:constraint-activity}) are all survivability-related, such as structural factors of safety and amplitude limits, while ballast and pitch-stability constraints are inactive. Although survivability is a critical but rarely optimized WEC requirement, this study quantifies its effect: - the Lagrange multipliers (\cref{remdo:fig:lagrange-multiplier}) indicate that improving the damping plate is worth about 5 and 10 times more than improving the column and float respectively, + the Lagrange multipliers (\Cref{remdo:fig:lagrange-multiplier}) indicate that improving the damping plate is worth about 5 and 10 times more than improving the column and float respectively, motivating both incremental detail-design improvements and transformative storm-survival concepts (submersion, control surfaces, or amplitude-reducing control), whose viability can be screened using the same multipliers. Many considerations remain uncaptured, however, such as discrete component sizing, mooring loads, structural resonant modes, storm overturning moment, and manufacturing, regulatory, and transport limits \cite{cotrell_analysis_2014}, so caution is warranted before pursuing this optimum; see \cite{bull_systems_2017,babarit_stakeholder_2017,trueworthy_wave_2020} for comprehensive WEC requirement guidance. \fi diff --git a/pubs/renewable-energy-mdo/sections/formulation.tex b/pubs/renewable-energy-mdo/sections/formulation.tex index f14387b83..b65dafdcb 100644 --- a/pubs/renewable-energy-mdo/sections/formulation.tex +++ b/pubs/renewable-energy-mdo/sections/formulation.tex @@ -29,7 +29,7 @@ \subsubsection{Objective Function}\label{remdo:sec:obj} In the multi-objective formulation, instead of $LCOE$, the two objectives are average electrical power $P_{\text{avg,elec}}$ and design-dependent capital cost $C_{\text{design}}$. This directly addresses the second and third LCOE limitations: the fixed charge rate and inaccurately-scaled cost components can no longer influence the optimum, and the minimum-capital design for a given power requirement is easily identified. \else - LCOE is adopted for its simplicity, though it carries three limitations: it values every Joule equally, ignoring the temporal and spatial variation of electricity value on real grids \cite{akdemir_opportunities_2023,mccabe_system_2023}; it has high early-stage uncertainty, since only structural and PTO costs are modeled as design-dependent \cite{mccabe_development_2026}; and it is less relevant for the off-grid ``Powering the Blue Economy'' applications \cite{livecchi_powering_2019,jenne_powering_2021} where power requirements are fixed or projects are unfinanced. + LCOE is adopted for its simplicity, though it carries three limitations: it values every Joule equally, ignoring the temporal and spatial variation of electricity value on real grids \cite{akdemir_opportunities_2023,mccabe_system_2023}; it has high early-stage uncertainty, since only structural and PTO costs are modeled as design-dependent \cite{mccabe_development_2026}; and it is less relevant for the off-grid \emph{Powering the Blue Economy} applications \cite{livecchi_powering_2019,jenne_powering_2021} where power requirements are fixed or projects are unfinanced. The multi-objective formulation addresses the latter two limitations by replacing $LCOE$ with average electrical power $P_{\text{avg,elec}}$ and design-dependent capital cost $C_{\text{design}}$, removing the influence of the fixed charge rate and inaccurately-scaled costs and exposing the minimum-capital design for a given power requirement. \fi @@ -59,13 +59,13 @@ \subsubsection{Requirements}\label{remdo:sec:requirements} (2) to clarify a part of the optimization process that is critical to result quality yet often omitted; and (3) to illustrate how the MDO mindset systematically yields a ``clever'' formulation that overcomes common difficulties in large-scale optimization. \else - Outlining the requirements and the resulting formulation logic grounds the optimization within the engineering design process, clarifies a step critical to result quality yet often omitted, and illustrates how the MDO mindset yields a formulation that overcomes common large-scale optimization difficulties. + Outlining the requirements and the resulting formulation logic grounds the optimization within the engineering design process, clarifies a step critical to result quality still often omitted, and illustrates how the MDO mindset yields a formulation that overcomes common large-scale optimization difficulties. \fi \Cref{remdo:tab:requirements} lists each requirement with its priority and enforcement mechanism. The physical and modeling basis for each requirement such as the underlying geometry, dynamics, hydrostatics, structural, and economic relations, is developed in \citet{mccabe_development_2026}. - \newcounter{reqnumber} +\singleColMacro{ \begin{longtable}{c>{\centering\arraybackslash}p{0.25\linewidth}>{\centering\arraybackslash}p{0.27\linewidth}>{\centering\arraybackslash}p{0.08\linewidth}>{\raggedright\arraybackslash}p{0.28\linewidth}} \textbf{\#}&\textbf{Requirement}& \textbf{Description}& \textbf{Priority}&\textbf{Enforcement}\\ \hline @@ -101,7 +101,7 @@ \subsubsection{Requirements}\label{remdo:sec:requirements} \caption{Requirements} \label{remdo:tab:requirements} \end{longtable} - +} \ifdefined\DISSERTATION Priority 1 requirements are model requirements that must never be violated during the optimization, because doing so causes the simulation to error or return an invalid result such as \texttt{Inf}, \texttt{NaN}, or imaginary numbers. Some algorithms fail outright at such points, and even robust algorithms struggle to converge without a valid objective to guide the next step. @@ -116,7 +116,7 @@ \subsubsection{Requirements}\label{remdo:sec:requirements} \fi \ifdefined\DISSERTATION - Requirements are ordered by priority in \cref{remdo:tab:requirements}, and within priority grouped by enforcement mechanism. + Requirements are ordered by priority in \Cref{remdo:tab:requirements}, and within priority grouped by enforcement mechanism. They include direct geometric relations among float, column, plate, and seafloor dimensions to prevent overlap (\reqref{float_spar_diam}, \reqref{float_in_out_diam}, \reqref{float_spar_draft}, \reqref{damping_plate_thickness}, \reqref{float_stiffener_height}), numerical overflow (\reqref{float_seafloor_overflow}, \reqref{spar_seafloor_overflow}), deviation from the truncated-cone shape (\reqref{float_base_diameter}, \reqref{float_draft}), submersion below the waterplane (\reqref{float_submergence}), and violation of dynamic assumptions (\reqref{spar_similarity}, \reqref{spar_damping_ratio}); a power criterion ensuring net energy generation (\reqref{positive_net_power}); height conditions for valid float-spar positioning in the static case (\reqref{clearance_static}, \reqref{tops_static}, \reqref{base_static}) and in operational seas (\reqref{tops_dynamic}, \reqref{base_dynamic}, \reqref{clearance_dynamic}); @@ -124,7 +124,7 @@ \subsubsection{Requirements}\label{remdo:sec:requirements} buoyancy measures ensuring the float and spar float and can be ballasted (\reqref{float_hydrostatics}, \reqref{spar_hydrostatics}); eight structural factors of safety (\reqref{FOS}); a stability measure preventing tipping (\reqref{GM}); equality of maximum experienced and rated powertrain force and power to avoid oversized PTO components (\reqref{force_max}, \reqref{P_max}); - and a maximum LCOE constraint required for the epsilon-constraint procedure of \cref{remdo:sec:multi-obj-process} (\reqref{LCOE}). + and a maximum LCOE constraint required for the epsilon-constraint procedure of \Cref{remdo:sec:multi-obj-process} (\reqref{LCOE}). Note that \reqref{base_static} dominates \reqref{float_spar_draft}, making the latter unnecessary to implement independently. \else The requirements span geometric relations preventing overlap, numerical overflow, shape deviation, submersion, and dynamic-assumption violation (\reqref{float_spar_diam}--\reqref{spar_similarity}); @@ -133,7 +133,7 @@ \subsubsection{Requirements}\label{remdo:sec:requirements} buoyancy and ballast feasibility (\reqref{float_hydrostatics}, \reqref{spar_hydrostatics}); eight structural factors of safety (\reqref{FOS}); pitch stability (\reqref{GM}); powertrain rating equality to avoid oversizing (\reqref{force_max}, \reqref{P_max}); - and a maximum-LCOE constraint for the epsilon-constraint procedure of \cref{remdo:sec:multi-obj-process} (\reqref{LCOE}). + and a maximum-LCOE constraint for the epsilon-constraint procedure of \Cref{remdo:sec:multi-obj-process} (\reqref{LCOE}). \reqref{base_static} dominates \reqref{float_spar_draft}, so the latter need not be implemented independently. \fi @@ -156,18 +156,18 @@ \subsubsection{Design Variables, Parameters, and Constraints} \fi This logic is repeated for the remaining design variables and requirements. -After several formulation iterations, the design variable and parameter definitions in \cref{remdo:tab:design-vars,remdo:tab:parameters} emerged as effective. +After several formulation iterations, the design variable and parameter definitions in \Cref{remdo:tab:design-vars,remdo:tab:parameters} emerged as effective. The 12 design variables represent 5 bulk dimensions, 2 generator ratings, and 5 structural dimensions (3 thicknesses and 2 stiffener heights). -Referring back to \cref{remdo:tab:lit}, this study is the most comprehensive WEC optimization in breadth of design-variable disciplines, and on the larger end, though not the largest, in number of design variables. +Referring back to \Cref{remdo:tab:lit}, this study is the most comprehensive WEC optimization in breadth of design-variable disciplines, and on the larger end, though not the largest, in number of design variables. \begin{table}[ht] -\setlength\tabcolsep{1.5pt} % make less wide +\setlength\tabcolsep{1pt} \renewcommand{\arraystretch}{1.1} % make taller \begin{center} { \caption{Design Variables}\label{remdo:tab:design-vars} -\begin{tabular}{c>{\centering\arraybackslash}m{0.15\linewidth}>{\centering\arraybackslash}m{0.3\linewidth}>{\centering\arraybackslash}m{0.15\linewidth}>{\centering\arraybackslash}m{0.15\linewidth}>{\centering\arraybackslash}m{0.15\linewidth}c} - \textbf{\#}&\textbf{Design Variable}& \textbf{Description} & \textbf{Lower Bound}& \textbf{Nominal Value} & \textbf{Upper Bound} & \textbf{Units} \\ \hline +\begin{tabular}{c>{\centering\arraybackslash}m{0.12\linewidth}>{\centering\arraybackslash}m{0.25\linewidth}>{\centering\arraybackslash}m{0.12\linewidth}>{\centering\arraybackslash}m{0.12\linewidth}>{\centering\arraybackslash}m{0.12\linewidth}c} + \textbf{\#}&\textbf{Design Var.}& \textbf{Description} & \textbf{Lower Bound}& \textbf{Nominal Value} & \textbf{Upper Bound} & \textbf{Units} \\ \hline $x_1$&$D_s$& Spar outer diameter& 0& 6& 30& m\\ $x_2$&$D_{f}$ & Float outer diameter& 1& 20 & 50& m \\ $x_3$&$T_{f,2}$ & Float draft& 0.5& Nominal RM3~\cite{mccabe_development_2026}&100& m\\ @@ -185,7 +185,7 @@ \subsubsection{Design Variables, Parameters, and Constraints} \end{center} \end{table} -The parameters in \cref{remdo:tab:parameters} assume operation in the seas of Humboldt Bay, CA, A-36 structural steel, and nominal RM3 values for the design factor of safety, fixed charge rate, number of devices, and float submergence ratio \cite{RM3}. +The parameters in \Cref{remdo:tab:parameters} assume operation in the seas of Humboldt Bay, CA, A-36 structural steel, and nominal RM3 values for the design factor of safety, fixed charge rate, number of devices, and float submergence ratio \cite{RM3}. \ifdefined\DISSERTATION Three parameters of note are the geometric ratios $D_d/D_s$, $T_s/D_s$, and $h_d/D_s$, which hold the spar proportions constant to maintain a sufficiently large damping ratio (\reqref{spar_damping_ratio}). Together with \reqref{spar_similarity}, which enforces geometric similarity on the damping plate, this fixes the spar dynamics to those of the nominal RM3, preserving the modeling assumptions of \cite{mccabe_development_2026}. @@ -199,9 +199,10 @@ \subsubsection{Design Variables, Parameters, and Constraints} \begin{table}[ht] \centering +\setlength\tabcolsep{2pt} \renewcommand{\arraystretch}{1.4} \caption{Selected Parameters}\label{remdo:tab:parameters} -\begin{tabular}{c>{\centering\arraybackslash}p{0.35\linewidth}>{\centering\arraybackslash}p{0.3\linewidth}c} +\begin{tabular}{c>{\centering\arraybackslash}p{0.28\linewidth}>{\centering\arraybackslash}p{0.23\linewidth}c} \textbf{Parameter} & \textbf{Description} & \textbf{Value} & \textbf{Units} \\ \hline $\rho_w$ & Seawater density& 1000 & kg/$m^3$ \\ $g$& Acceleration of gravity& 9.8 & m/$s^2$ \\ @@ -233,12 +234,12 @@ \subsubsection{Design Variables, Parameters, and Constraints} \end{tabular} \end{table} -Returning to \cref{remdo:tab:requirements}, the enforcement column shows that this encoding successfully avoids nonlinear constraints for all priority 1 requirements and all but one priority 2 requirement, helping prevent model errors while facilitating convergence. -A total of \resultsRE[numLinConstraints]~linear and \resultsRE[numNonlinConstraints]~nonlinear inequality constraints exist, with no equality constraints; the eight linear inequality constraints are given in matrix form in \cref{remdo:sec:appendix-linear-constraints}. +Returning to \Cref{remdo:tab:requirements}, the enforcement column shows that this encoding successfully avoids nonlinear constraints for all priority 1 requirements and all but one priority 2 requirement, helping prevent model errors while facilitating convergence. +A total of \resultsRE[numLinConstraints]~linear and \resultsRE[numNonlinConstraints]~nonlinear inequality constraints exist, with no equality constraints; the eight linear inequality constraints are given in matrix form in \Cref{remdo:sec:appendix-linear-constraints}. \ifdefined\DISSERTATION Notably, while the design variables include PTO sizing variables, PTO characteristics such as the generator and drivetrain impedances are kept as parameters. - Rather than perform PTO co-design, whose value a number of recent papers (e.g.\ \cite{coe_useful_2023,gaebele_incorporating_2023} and those discussed in \cref{remdo:sec:lit}) have already proven, this study keeps the PTO design fixed at representative values. + Rather than perform PTO co-design, whose value a number of recent papers (e.g.\ \cite{coe_useful_2023,gaebele_incorporating_2023} and those discussed in \Cref{remdo:sec:lit}) have already proven, this study keeps the PTO design fixed at representative values. While impedance matching can and should be used to design the actual PTO hardware, this choice adds simplicity and illustrative value at the system level: it highlights the novel non-PTO (e.g.\ structural) aspects of WEC co-design introduced here while still capturing the effect of PTO rating on system performance and maintaining the generality to incorporate PTO optimization later. Developing a more detailed PTO cost model that scales with these characteristics would be a necessary next step toward PTO co-design. \else diff --git a/pubs/renewable-energy-mdo/sections/introduction.tex b/pubs/renewable-energy-mdo/sections/introduction.tex index cbe38fa4b..9897af53b 100644 --- a/pubs/renewable-energy-mdo/sections/introduction.tex +++ b/pubs/renewable-energy-mdo/sections/introduction.tex @@ -22,14 +22,14 @@ \subsection{Wave Energy Overview} A landmark step toward a multidisciplinary WEC design baseline was the U.S.\ Department of Energy's Reference Model Project (2010--2014), which produced six benchmark designs along with design artifacts and a comprehensive report \cite{RM3}.\footnote{\url{https://openei.org/wiki/PRIMRE/Signature_Projects/Reference_Model}} The third reference model (RM3), a two-body point-absorber WEC sited for Humboldt Bay, California, has received considerable research attention. - Its surface float oscillates against a spar consisting of a vertical column and a subsurface damping plate (\cref{remdo:fig:rm3-parts}), with electrical power produced from the relative heave motion. + Its surface float oscillates against a spar consisting of a vertical column and a subsurface damping plate (\Cref{remdo:fig:rm3-parts}), with electrical power produced from the relative heave motion. The present study builds on that work, presenting a multidisciplinary techno-economic optimization of RM3. \else Wave energy converters (WECs) can deliver both utility-scale electricity and power for offshore applications such as aquaculture, desalination, and marine sensing \cite{livecchi_powering_2019,akdemir_opportunities_2023,bhattacharya_timing_2021,pennock_temporal_2022}, but large-scale deployment requires substantial cost reduction. Achieving that reduction is complicated by strong interdisciplinary coupling: the powertrain, controller, bulk dimensions, hydrodynamic shape, and structural thicknesses jointly determine performance, cost, and survivability. Sequential single-discipline design cannot exploit this coupling, motivating system-level concurrent optimization. - This paper presents a multidisciplinary techno-economic optimization of the Reference Model 3 (RM3) WEC \cite{RM3}: a two-body point absorber sited for Humboldt Bay, California, in which a surface float oscillates against a spar with a subsurface damping plate (\cref{remdo:fig:rm3-parts}), with electrical power produced from the relative heave motion. + This paper presents a multidisciplinary techno-economic optimization of the Reference Model 3 (RM3) WEC \cite{RM3}: a two-body point absorber sited for Humboldt Bay, California, in which a surface float oscillates against a spar with a subsurface damping plate (\Cref{remdo:fig:rm3-parts}), with electrical power produced from the relative heave motion. \fi \begin{figure}[!ht] @@ -56,11 +56,11 @@ \subsection{WEC Design Optimization: State of the Art and Gaps} \Cref{remdo:tab:lit} draws on these and the underlying primary literature \cite{garcia-teruel_review_2021,guo_geometric_2021,ringwood_empowering_2023,clark_reliability-based_2018,coe_survey_2018,ove_arup__partners_ltd_structural_2016,paduano_towards_2024,giannini_wave_2022} to compare the most relevant studies along modeling and optimization axes. \else A survey of 25 WEC designers \cite{trueworthy_wave_2020} reports that only 48\% and 40\% of developers use optimization for controls and hydrodynamic shape respectively, and only 50\% design all subsystems concurrently --- attributed to the time, expertise, and computational resources optimization demands, and concluding that concurrent design is a promising but under-utilized technique. - Review papers \cite{garcia-teruel_review_2021,guo_geometric_2021,ringwood_empowering_2023,clark_reliability-based_2018} and primary literature on WEC survivability guidelines \cite{coe_survey_2018,ove_arup__partners_ltd_structural_2016,paduano_towards_2024,giannini_wave_2022} together motivate the comparison in \cref{remdo:tab:lit}. + Review papers \cite{garcia-teruel_review_2021,guo_geometric_2021,ringwood_empowering_2023,clark_reliability-based_2018} and primary literature on WEC survivability guidelines \cite{coe_survey_2018,ove_arup__partners_ltd_structural_2016,paduano_towards_2024,giannini_wave_2022} together motivate the comparison in \Cref{remdo:tab:lit}. \fi \Cref{remdo:tab:lit} compares previous WEC optimization studies along modeling fidelity (hydrodynamics, drag, degrees of freedom, domain, controls, mooring, powertrain, structures, economics, sea states) and optimization formulation (optimizer, objectives, constraints, design variables). -Column-abbreviation legends are provided in \cref{remdo:sec:appendix-lit-legend}. +Column-abbreviation legends are provided in \Cref{remdo:sec:appendix-lit-legend}. \ifdefined\DISSERTATION Point absorbers dominate as the most common architecture, though all major device types are represented and several studies optimize arrays. @@ -81,13 +81,14 @@ \subsection{WEC Design Optimization: State of the Art and Gaps} \fi %Need to copy sources over from slide 27 and 35 of F24 reseach slides with original charts (with color) -\begin{landscape} +%\begin{landscape} \begingroup \centering %\begin{tabular} - -\begin{longtable}{>{\centering\arraybackslash}p{0.03\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.040\linewidth}|>{\centering\arraybackslash}p{0.015\linewidth}|>{\centering\arraybackslash}p{0.025\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.02\linewidth}} +\singleColMacro{ +\setlength{\tabcolsep}{1pt} +\begin{longtable}{>{\centering\arraybackslash}p{0.04\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}|>{\centering\arraybackslash}p{0.06\linewidth}|>{\centering\arraybackslash}p{0.040\linewidth}|>{\centering\arraybackslash}p{0.02\linewidth}|>{\centering\arraybackslash}p{0.025\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.045\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.055\linewidth}|>{\centering\arraybackslash}p{0.02\linewidth}} \rot{\textbf{Ref}} & \rot{\textbf{Device}} & \rot{\textbf{Hydro}}& \rot{\textbf{Drag}} & \rot{\textbf{\# DOF}} & \rot{\textbf{Domain}} & \rot{\textbf{Controls}} & \rot{\textbf{Mooring}} & \rot{\textbf{Powertrain}} & \rot{\textbf{Structures}} & \rot{\textbf{Economics}} & \rot{\textbf{Sea state}} & \rot{\textbf{Optimizer}}& \rot{\textbf{Objective}} & \rot{\textbf{Constraints}} & \rot{\textbf{\shortstack{Design \\ Variables}}}& \rot{\textbf{\# DVs}} \\ \hline @@ -126,7 +127,7 @@ \subsection{WEC Design Optimization: State of the Art and Gaps} \cite{RM3} & 2-PA & BEM & Q & 2 & T & P & DES & - & FEA & FULL & IRR+, STO & IT & - & - & - & - \\ -\cite{mi_multi-scale_2025} & OSW & BEM & Various & 8 & T & PI & DYN, DES & DYN & FEA & FULL & IRR+, STO +\cite{mi_multi-scale_2025} & OSW & BEM & Var. & 8 & T & PI & DYN, DES & DYN & FEA & FULL & IRR+, STO & IT & - & - & - & - \\ \cite{an_optimal_2024} & OTP & CFD & CFD & - & T & - & - & - & FEA & - & STO @@ -173,12 +174,13 @@ \subsection{WEC Design Optimization: State of the Art and Gaps} \hline %\end{tabular} \caption{Comparison of previous WEC optimization studies' disciplinary scope, modeling fidelity, and optimization formulation. -See \cref{remdo:sec:appendix-lit-legend} for legend definitions.} +See \Cref{remdo:sec:appendix-lit-legend} for legend definitions.} \label{remdo:tab:lit} %\fillandplacepagenumber \end{longtable} +} \endgroup -\end{landscape} +%\end{landscape} % Prior WEC optimization across discipline \ifdefined\DISSERTATION @@ -207,11 +209,11 @@ \subsection{WEC Design Optimization: State of the Art and Gaps} \citet{mcgilton_optimal_2024} reports only 3\% energy loss from a 70\% force-rating reduction across multiple device archetypes (RM3, RM5), sites, and scales, supporting analytical predictions in \cite{coe_maybe_2021,devin_high-dimensional_2024}. None of these studies perform full economic analysis to confirm that the cost savings outweigh the power decrease --- a gap this paper addresses. \else - Of the multi-discipline studies in \cref{remdo:tab:lit}, the largest in scope are those summarized in the studies \cite{khanal_multi-objective_2024,gaudin_single_2021,edwards_optimisation_2022,garcia-teruel_reliability-based_2021,garcia-teruel_design_2022,cotten_multi-objective_2022}, spanning four-WEC array layout, hydrodynamics, controls, economics, high-dimensional site/layout/mooring, shape with stability constraints, and power-versus-structure trade-offs. + Of the multi-discipline studies in \Cref{remdo:tab:lit}, the largest in scope are those summarized in the studies \cite{khanal_multi-objective_2024,gaudin_single_2021,edwards_optimisation_2022,garcia-teruel_reliability-based_2021,garcia-teruel_design_2022,cotten_multi-objective_2022}, spanning four-WEC array layout, hydrodynamics, controls, economics, high-dimensional site/layout/mooring, shape with stability constraints, and power-versus-structure trade-offs. All large-scale ($\geq 8$ design variables) WEC optimizations use the genetic algorithm; local optimization is limited to small design spaces or frequency-domain settings due to time-domain simulation cost \cite{housner_numerical_2024,garcia-teruel_reliability-based_2021,garcia-teruel_design_2022,cotten_multi-objective_2022,martins_engineering_2022}. Structural optimization faces a parallel compute bottleneck, with FEA-based optimization usually replaced by manual iteration \cite{RM3,mi_multi-scale_2025}, commercial decoupled tools \cite{an_optimal_2024}, brute-force sweeps over analytical stress \cite{ambuhl_reliability-based_2014}, or load-magnitude proxies \cite{nguyen_theoretical_2024,ferri_balancing_2014}. The control co-design literature \cite{garcia-sanz_control_2019,coe_useful_2023} has produced joint PTO-and-controller optimizations \cite{rosati_control_2023,son_performance_2016,anderson_re-imagining_2024,devin_high-dimensional_2024,grasberger_control_2024,gaebele_tpl_2025} often leveraging the pseudo-spectral method; \cite{gaebele_tpl_2025} directly addresses RM3 and finds a 0.55 scaling factor optimal. - Several studies independently conclude that undersizing the PTO and accepting force saturation is favorable: \citet{mcgilton_optimal_2024} reports only 3\% energy loss from a 70\% force-rating reduction across archetypes, sites, and scales, supporting analytical predictions in \cite{coe_maybe_2021,devin_high-dimensional_2024}. + Several studies independently conclude that undersizing the PTO and accepting force saturation is favorable: \citet{mcgilton_optimal_2024} reports only 3\% energy loss from a 70\% force-rating reduction across archetypes, sites, and scales, supporting analytical predictions made in other studies \cite{coe_maybe_2021,devin_high-dimensional_2024}. None perform a full economic analysis to confirm cost savings exceed power loss, a gap this paper addresses. \fi @@ -226,7 +228,7 @@ \subsection{WEC Design Optimization: State of the Art and Gaps} Finally, several studies note that cost-model uncertainty may significantly affect results, evidencing the need for sensitivity analysis. \else No existing optimization study simultaneously includes dimensional, structural, and PTO design variables: the closest are the studies \cite{ambuhl_reliability-based_2014,grasberger_control_2024}, covering dimensional-and-structural and dimensional-and-PTO formulations respectively. - A parallel gap exists in trading off power against survivability with stress modeled as a function of bulk dimensions rather than force as proxy. + A parallel gap exists in trading off power against survivability with stress modeled as a function of bulk dimensions rather than force as a proxy. The lack of a multidisciplinary WEC simulation platform fast enough for optimization is part of the issue (e.g., WEC-Sim \cite{ruehl_wec-simwec-sim_2024} is too slow at scale \cite{housner_numerical_2024}, and WecOptTool \cite{coe_initial_2020} is currently limited to hydrodynamics and control) and cost-model uncertainty in prior work evidences the need for sensitivity analysis. \fi @@ -251,7 +253,7 @@ \subsection{Relevance of Multidisciplinary Design Optimization} Semi-analytical models offer a uniquely suitable combination of speed and accuracy for early-stage WEC optimization, where the model must be run thousands of times and where smooth dependence on inputs facilitates accurate gradients \cite{mccabe_development_2026}. This study uses the MDOcean framework \cite{mccabe_development_2026}, which integrates semi-analytical models across hydrodynamics, dynamics and control, structures, and economics, to enable a WEC optimization of unprecedented scope. \else - Multidisciplinary Design Optimization (MDO) is a quantitative methodology for formulating, solving, and interpreting design problems involving multiple coupled disciplines \cite{agte_mdo_2010}, emphasizing that comprehensive consideration of coupling typically outperforms sequential single-discipline optimization \cite{martins_multidisciplinary_2013}. + Multidisciplinary Design Optimization (MDO) is a quantitative methodology for formulating, solving, and interpreting design problems involving multiple coupled disciplines \cite{agte_mdo_2010}, highlighting that comprehensive consideration of coupling typically outperforms sequential single-discipline optimization \cite{martins_multidisciplinary_2013}. Originating in structural optimization and established in aerospace, MDO is gaining traction in floating offshore wind \cite{abbas_control_2024,jasa_effectively_2022,patryniak_multidisciplinary_2022} but has not yet caught on in wave energy despite recognized need \cite{mi_multi-scale_2025,ringwood_empowering_2023}. Only two existing studies approach WEC design explicitly from an MDO perspective: \citet{mccabe_multidisciplinary_2022}, a preliminary formulation by the same authors using less accurate models and fewer design variables, and \citet{khanal_multi-objective_2024}, which adds Sobol global sensitivity. Other multidisciplinary WEC papers do not explicitly invoke MDO and sometimes neglect the coupling principle: for example, \cite{edwards_optimisation_2022} minimizes surface material only over designs achieving maximum power, missing the power--cost tradeoff where the minimum cost-to-power ratio may sacrifice some power for significant cost savings. @@ -281,10 +283,10 @@ \subsection{Paper Contributions and Roadmap} The contributions are: a multidisciplinary problem formulation simultaneously varying 12 design variables across bulk dimensions, structural thicknesses, and powertrain ratings subject to static, dynamic, structural, and operational constraints; a solution methodology combining sequential quadratic programming with multistart and an epsilon-constraint-plus-pattern-search procedure for multi-objective optimization; single- and multi-objective results with sensitivity analysis revealing drivers of LCOE, cost, and power, and identifying a non-convex Pareto cusp tied to a force-saturation to power-saturation strategy shift; - and design recommendations distinguishing utility-scale from Powering-the-Blue-Economy applications. + and design recommendations distinguishing utility-scale from \emph{Powering the Blue Economy} applications. The remainder of the paper is organized as follows. \Cref{remdo:sec:optim-methods} describes the optimization methodology and references \cite{mccabe_development_2026} for the underlying simulation model. - \Cref{remdo:sec:formulation} develops the problem formulation and \cref{remdo:sec:optim-process} the solution procedure. - \Cref{remdo:sec:results} presents results; \cref{remdo:sec:discussion} interprets them and outlines future work. + \Cref{remdo:sec:formulation} develops the problem formulation and \Cref{remdo:sec:optim-process} the solution procedure. + \Cref{remdo:sec:results} presents results; \Cref{remdo:sec:discussion} interprets them and outlines future work. \fi diff --git a/pubs/renewable-energy-mdo/sections/methods.tex b/pubs/renewable-energy-mdo/sections/methods.tex index 188a81694..1563d0a0b 100644 --- a/pubs/renewable-energy-mdo/sections/methods.tex +++ b/pubs/renewable-energy-mdo/sections/methods.tex @@ -7,10 +7,9 @@ \section{Optimization Methodology}\label{remdo:sec:optim-methods} (2) implementing and verifying models for each simulation module, (3) formally defining the optimization problem, and (4) outlining a process for solving the problem and analyzing the results. - \Cref{remdo:fig:overview-methods} depicts the overall flow, with the simulation and modeling components covered in this section and the formulation and solution-process components developed in \cref{remdo:sec:formulation,remdo:sec:optim-process}. + \Cref{remdo:fig:overview-methods} depicts the overall flow, with the simulation and modeling components covered in this section and the formulation and solution-process components developed in \Cref{remdo:sec:formulation,remdo:sec:optim-process}. \else - This methodology consists of four iterative components summarized in \cref{remdo:fig:overview-methods}: selecting the simulation structure, implementing and verifying models for each module, formally defining the optimization problem, and outlining a solution and analysis process. - This section addresses the first two whereas \cref{remdo:sec:formulation,remdo:sec:optim-process} develops the last two. + This methodology consists of four iterative components summarized in \Cref{remdo:fig:overview-methods}: selecting the simulation structure, implementing and verifying models for each module, formally defining the optimization problem, and outlining a solution and analysis process. \Cref{remdo:sec:model} addresses the first two while \Cref{remdo:sec:formulation,remdo:sec:optim-process} develops the last two. \fi \begin{figure}[htbp] \centering @@ -38,24 +37,24 @@ \subsection{MDOcean Simulation Model}\label{remdo:sec:model} These together compute the system-level quantities the optimization acts on: power production, capital and operational cost, levelized cost of energy (LCOE), and structural factors of safety under operational and storm design load cases. \fi -\begin{figure}[htbp] +\begin{figure*}[htbp] \centering \includegraphics[width=\linewidth]{figs/from-matlab/xdsm.pdf} \caption{Simplified extended design structure matrix (XDSM) diagram of the MDOcean modules, adapted from \citet{mccabe_development_2026}. Inputs enter at the top, data passes forward between modules left to right along the diagonal, and outputs exit at the left; the orange block denotes the internally iterated dynamics module.} \label{remdo:fig:n2} -\end{figure} +\end{figure*} \ifdefined\DISSERTATION - The module structure is shown in the XDSM diagram of \cref{remdo:fig:n2}, a standard MDO representation \cite{lambe_extensions_2012} in which modules lie on the diagonal, inter-module data dependencies occupy the off-diagonal, and design-variable inputs and objective and constraint outputs enter and exit at the edges. + The module structure is shown in the XDSM diagram of \Cref{remdo:fig:n2}, a standard MDO representation \cite{lambe_extensions_2012} in which modules lie on the diagonal, inter-module data dependencies occupy the off-diagonal, and design-variable inputs and objective and constraint outputs enter and exit at the edges. The disciplines are coupled in two ways: through shared design variables (most prominently the bulk dimensions, which feed the geometry, hydrodynamics, and structures modules) and through the feed-forward passing of each module's outputs to those downstream. Crucially, there is no feedback coupling: the data dependencies are strictly feed-forward (all off-diagonal coupling lies on one side of the diagonal), so a single pass through the modules evaluates the design, with internal iteration confined to the dynamics module where nonlinear drag and powertrain saturation are converged. - Because this coupling is non-convex and non-monotonic, the disciplines cannot be optimized sequentially without sacrificing optimality; the design variables across all modules must instead be driven concurrently by a single system-level optimizer, which is the central premise of the formulation developed in \cref{remdo:sec:formulation}. + Because this coupling is non-convex and non-monotonic, the disciplines cannot be optimized sequentially without sacrificing optimality; the design variables across all modules must instead be driven concurrently by a single system-level optimizer, which is the central premise of the formulation developed in \Cref{remdo:sec:formulation}. \else \Cref{remdo:fig:n2} shows the module structure as an XDSM diagram \cite{lambe_extensions_2012}: design variables enter at the edges, data passes feed-forward between the modules on the diagonal, and the objective and constraint outputs exit at the left. The disciplines couple through shared design variables (most prominently the bulk dimensions, which feed geometry, hydrodynamics, and structures) and through feed-forward output dependence, with no feedback coupling, so a single pass evaluates each design apart from internal iteration in the dynamics module. - Because this coupling is non-convex and non-monotonic, the modules cannot be optimized sequentially without sacrificing optimality, so all design variables are driven concurrently by a single optimizer, which is the central premise of the formulation in \cref{remdo:sec:formulation}. + Because this coupling is non-convex and non-monotonic, the modules cannot be optimized sequentially without sacrificing optimality, so all design variables are driven concurrently by a single optimizer, which is the central premise of the formulation in \Cref{remdo:sec:formulation}. \fi MDOcean adopts an implicit multiple-discipline-feasible (MDF) analysis architecture, in which an analytically-derived optimal control condition is solved implicitly inside the dynamics iteration rather than introducing control variables into the outer optimization. -The reader is referred to \cite{mccabe_development_2026} for the full module-level assumptions, the control-architecture taxonomy and rationale, the constrained optimal control derivation, and the validation and benchmarking results that establish MDOcean's accuracy and \resultsRE[simRuntime] per-evaluation runtime, the property that makes the present optimization computationally feasible. +The reader is referred to \cite{mccabe_development_2026} for the full module-level assumptions, the control-architecture taxonomy and rationale, the constrained optimal control derivation, and the validation and benchmarking results that establish MDOcean's accuracy and \resultsRE[simRuntime] per-evaluation runtime (the property that makes the present optimization computationally feasible). diff --git a/pubs/renewable-energy-mdo/sections/model-overview.tex b/pubs/renewable-energy-mdo/sections/model-overview.tex index 520215471..048c4cf72 100644 --- a/pubs/renewable-energy-mdo/sections/model-overview.tex +++ b/pubs/renewable-energy-mdo/sections/model-overview.tex @@ -6,7 +6,7 @@ The structures module takes in these loads along with bulk dimensions and structural thicknesses to calculate the stress and factor of safety to various failure criterion. Finally, the economics module calculates the PTO and structural capital costs from generator ratings and material usage respectively, and combines it with the power matrix to estimate the levelized cost of energy. -The extended design structure matrix (XDSM) diagram in \cref{remdo:fig:n2} illustrates the functional interfaces between modules. +The extended design structure matrix (XDSM) diagram in \Cref{remdo:fig:n2} illustrates the functional interfaces between modules. XDSM diagrams are standard in MDO, with more details available in \cite{lambe_extensions_2012}. Variables above and below each module are inputs, and variables to the left and right are outputs. Design variables are shown in the first row. @@ -29,7 +29,7 @@ For example, techniques like block coordinate descent or alternating direction method of multipliers apply if coupling is convex \cite{wright_coordinate_2015}, and monotonicity-based decomposition and constraint elimination apply if coupling is monotonic \cite{azarm_monotonicity-based_1988,papalambros_principles_2017}. The present coupling of WEC disciplines is non-convex and non-monotonic, so concurrent optimization is required to obtain the system optimal design. Non-monotonicity means that perturbing a variable from one module in a certain direction does not necessarily determine the direction of the propagated change in coupling variables, objective, and constraints computed in other modules. -Non-convexity arises from the presence of both positve and negative curvature in the coupled variable space, leading to multiple local optima. +Non-convexity arises from the presence of both positive and negative curvature in the coupled variable space, leading to multiple local optima. With an objective $J$ of LCOE, for example, while an increase in hydrodynamic damping generally increases power production (beneficial to $J$), it also increases structural loading (detrimental to $g$), and the larger bulk dimensions required to achieve that higher damping may produce higher stresses (detrimental to $g$) and increase the required structural material (detrimental to $J$). Thus, it would be sub-optimal to optimize the hydrodynamics module strictly for damping or power production followed by a separate optimization considering structures and economics. Furthermore, while even in a unified optimization it may be tempting to calculate the structural thicknesses within the structures module as the minimum required to sustain loads without failure, it is important to keep structural thicknesses as design variables because they also contribute to the hydrostatic constraints computed in the geometry module. @@ -47,7 +47,7 @@ Readers familiar with trajectory optimization should note that the choice of MDF versus SAND as an MDO architecture parallels that of shooting versus collocation as a transcription method, in the sense that one chooses to enforce governing equations with simulation (MDF and shooting) versus optimization (SAND and collocation) \cite{tedrake_underactuated_2024}. In MDO, the appropriate decision depends on characteristics of all modules, not merely the module whose governing equations are in question. -As \cref{sec:sim-runtime} will demonstrate, the hydrodynamics module, not dynamics and controls, is the dominant computational cost of the simulation. +As \Cref{sec:sim-runtime} will demonstrate, the hydrodynamics module, not dynamics and controls, is the dominant computational cost of the simulation. This means that even a substantial dynamics speedup represents only a small speedup of the full simulation and is unlikely to outweigh the slowdown of more (hydrodynamics-dominated) simulation evaluations. For this reason, SAND would likely increase the runtime of the full optimization, motivating MDOcean's selection of MDF as the more suitable architecture. Another advantage of MDF over SAND is that the latter invites the possibility of inconsistent dynamics if the optimization terminates unsuccessfully \cite{martins_multidisciplinary_2013} and requires optimizing a dummy constant objective to perform simulation without optimization. @@ -69,9 +69,9 @@ Depending on whether a user adds additional design variables to the existing pseudo-spectral optimizer or in a separate loop outside, WecOptTool would be considered either simultaneous-SAND or nested-SAND respectively \cite{coe_initial_2020}. For MDOcean, we choose the implicit-MDF architecture. -Like the explicit-MDF architecture, it minimizes computational cost by avoiding the need to include control variables in an optimization and lowering the number of dynamic constraints which the optimizer must consider. +Like the explicit-MDF architecture, it minimizes computational cost by avoiding the need to include control variables in an optimization and lowering the number of dynamic constraints that the optimizer must consider. This is possible due to the semi-analytical dynamics and control module, where the optimal constrained control conditions are derived analytically. -Implicit-MDF is chosen over explicit-MDF because the available optimal control condition is implicit, as \cref{remdo:sec:model} will detail. +Implicit-MDF is chosen over explicit-MDF because the available optimal control condition is implicit, as \Cref{remdo:sec:model} will detail. \begin{figure}[htbp] \centering diff --git a/pubs/renewable-energy-mdo/sections/optimization.tex b/pubs/renewable-energy-mdo/sections/optimization.tex index 8202a8277..af940fabc 100644 --- a/pubs/renewable-energy-mdo/sections/optimization.tex +++ b/pubs/renewable-energy-mdo/sections/optimization.tex @@ -1,6 +1,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Solution Methodology}\label{remdo:sec:optim-process} -The optimization solution and post-optimality analysis process is shown in \cref{remdo:fig:optim-process}, consisting of design space exploration, single-objective optimization, and multi-objective optimization. +The optimization solution and post-optimality analysis process is shown in \Cref{remdo:fig:optim-process}, consisting of design space exploration, single-objective optimization, and multi-objective optimization. \begin{figure}[htbp] \centering \includegraphics[width=1\linewidth]{figs/from-matlab/optimization_flowchart.pdf} @@ -22,7 +22,7 @@ \subsubsection{Single Objective Optimization}\label{remdo:sec:single-obj-process %%% This subsection defines the single-objective optimization setup, including algorithm choice, derivatives, and scaling. \paragraph{Algorithm} -The single-objective algorithm is selected by characterizing the problem following \cite[Ch.~1.5]{martins_engineering_2022}, as summarized in \cref{remdo:tab:characterization}. +The single-objective algorithm is selected by characterizing the problem following \cite[Ch.~1.5]{martins_engineering_2022}, as summarized in \Cref{remdo:tab:characterization}. \begin{table}[htbp] \centering \caption{Problem characterization to inform algorithm choice} @@ -40,11 +40,11 @@ \subsubsection{Single Objective Optimization}\label{remdo:sec:single-obj-process This motivates sequential quadratic programming (SQP) with multistart. \ifdefined\DISSERTATION SQP is a gradient-based method that builds successive quadratic approximations of the objective and linear approximations of the constraints, solving each subproblem as an efficient quadratic program and updating the approximations every iteration to track the true nonlinear functions. - The MATLAB SQP implementation also guarantees that every intermediate design query obeys its bounds, which helps remain within the zone of model validity defined by the priority 1 requirements of \cref{remdo:sec:requirements}. + The MATLAB SQP implementation also guarantees that every intermediate design query obeys its bounds, which helps remain within the zone of model validity defined by the priority 1 requirements of \Cref{remdo:sec:requirements}. Because only local, not global, optimality can be verified for a non-convex objective, the multistart method is used to search for better local optima across several initial guesses. \else SQP is a gradient-based method that solves successive quadratic-program approximations of the objective and constraints. - Its MATLAB implementation keeps every intermediate query within bounds, helping maintain the model validity required by the priority 1 requirements of \cref{remdo:sec:requirements}. + The MATLAB implementation keeps every intermediate query within bounds, helping maintain the model validity required by the priority 1 requirements of \Cref{remdo:sec:requirements}. Since only local optimality can be verified for a non-convex objective, multistart searches for better local optima from several initial guesses. \fi \resultsRE[numMultistartRandom]~designs are randomly drawn between the upper and lower bounds, and those obeying the linear constraints (typically around \resultsRE[numMultistartObeyConstraint]) are evaluated. @@ -80,10 +80,10 @@ \subsubsection{Single Objective Optimization}\label{remdo:sec:single-obj-process \ifdefined\DISSERTATION Design variables are implemented in the engineering-notation SI unit that places the nominal value between 1 and 1000: meters for bulk dimensions, millimeters for structural dimensions, MN for force, and kilowatts for power. The objectives are scaled to magnitude near one, using megawatts for power, millions of dollars for cost, and \$/kWh for LCOE. - For SQP, Hessian scaling further rescales the design variables so that each has a similar effect magnitude on the objective; \cref{remdo:sec:appendix-scaling} details the procedure. + For SQP, Hessian scaling further rescales the design variables so that each has a similar effect magnitude on the objective; \Cref{remdo:sec:appendix-scaling} details the procedure. \else Design variables use the engineering-notation SI unit that places each nominal value between 1 and 1000, and the objectives are scaled to magnitude near one. - For SQP, Hessian scaling further equalizes each variable's effect magnitude on the objective, detailed in \cref{remdo:sec:appendix-scaling}. + For SQP, Hessian scaling further equalizes each variable's effect magnitude on the objective, detailed in \Cref{remdo:sec:appendix-scaling}. \fi \paragraph{Sensitivity Analysis} @@ -96,13 +96,13 @@ \subsubsection{Single Objective Optimization}\label{remdo:sec:single-obj-process \end{equation} Nonzero Lagrange multipliers imply the associated constraint is active at the optimum, larger values indicating a more influential constraint. Beyond their inherent value for analyzing constraint activity, the multipliers facilitate calculation of local parameter sensitivities, obtained analytically from $\vec{\lambda}$, other solver outputs such as the Hessian $\mathbf{H}$ and gradient $\nabla J$, and additional finite-difference derivatives. - \cref{remdo:sec:appendix-sensitivties} gives the details. + \Cref{remdo:sec:appendix-sensitivties} gives the details. These sensitivities estimate not only how the objective would change if a parameter changed at fixed design, but also how the optimal objective, optimal design, and constraint activity would change if the optimization were repeated with the modified parameter, without re-optimizing, and thus at very little cost. They serve as a screening step to identify high-sensitivity parameters for further study in the global sensitivity analysis. \else Local sensitivities exploit the SQP solver's Lagrange multiplier vector $\vec{\lambda} = -dJ/d\vec{g}$ \cite{martins_engineering_2022}, which measures the objective's sensitivity to each constraint; nonzero multipliers mark active constraints, larger values more influential ones. The multipliers also yield local parameter sensitivities analytically (from $\vec\lambda$, the Hessian, the gradient, and a few finite-difference derivatives), estimating how the re-optimized objective, design, and constraint activity would respond to a parameter change without re-optimizing. - \cref{remdo:sec:appendix-sensitivties} gives the details. + \Cref{remdo:sec:appendix-sensitivties} gives the details. This screens for high-sensitivity parameters to study further in the global analysis. \fi @@ -121,6 +121,6 @@ \subsubsection{Multi-Objective Optimization}\label{remdo:sec:multi-obj-process} Here the single-objective optima of each objective set the constraint values: the nadir point $(J_1(J_2=J_2^*),\, J_2(J_1=J_1^*))$ becomes the center of a circle, and twenty constraint values are taken at equal angular spacing on that circle. The MATLAB \texttt{paretosearch} function then executes the constrained multi-objective pattern search of \cite{custodio_direct_2011}, starting from the SQP-optimized epsilon-constraint points and maximizing Pareto hypervolume and spread to quickly fill gaps between them. \else - While derivative criteria for local Pareto optimality exist \cite{desideri_multiple-gradient_2012}, solvers using them are rare, since a Pareto front demands exploration rather than the pure exploitation gradient methods excel at. + While derivative criteria for local Pareto optimality exist \cite{desideri_multiple-gradient_2012}, solvers using them are rare, since a Pareto front demands exploration rather than the pure exploitation with which gradient methods excel. This work combines two approaches: the epsilon-constraint method recasts the problem as an ensemble of single-objective problems solved by SQP --- repeatedly optimizing one objective while sweeping a constraint on the other, with twenty constraint values placed at equal angular spacing on a circle centered at the nadir point $(J_1(J_2=J_2^*),\, J_2(J_1=J_1^*))$ --- and these solutions then seed the MATLAB \texttt{paretosearch} derivative-free pattern search \cite{custodio_direct_2011}, which maximizes Pareto hypervolume and spread to fill the gaps. \fi diff --git a/pubs/renewable-energy-mdo/sections/other-appendices.tex b/pubs/renewable-energy-mdo/sections/other-appendices.tex index d7ece792e..6ba77527b 100644 --- a/pubs/renewable-energy-mdo/sections/other-appendices.tex +++ b/pubs/renewable-energy-mdo/sections/other-appendices.tex @@ -5,14 +5,15 @@ \section{Literature Review Column Legends} \label{remdo:sec:appendix-lit-legend} -The following tables define column-abbreviation legends for the optimization-study comparison in \cref{remdo:tab:lit}. +The following tables define column-abbreviation legends for the optimization-study comparison in \Cref{remdo:tab:lit}. \begin{landscape} \begingroup +\setlength{\tabcolsep}{2pt} \begin{table}[htbp] \centering - \caption{Legend keys for the dynamics and controls columns of \cref{remdo:tab:lit}} -\begin{tabular}{>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.15\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.15\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.15\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.15\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.15\linewidth}} + \caption{Legend keys for the dynamics and controls columns of \Cref{remdo:tab:lit}} +\begin{tabular}{>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.14\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.14\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.14\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.14\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.14\linewidth}} \multicolumn{2}{c|}{Device}& \multicolumn{2}{c|}{Hydro}& \multicolumn{2}{c|}{Drag} &\multicolumn{2}{c|}{Domain} & \multicolumn{2}{c}{Controls} \\ \hline N-PA& N-body floating point absorber& MEEM& Matched eigenfunction expansion method or similar & DF& Describing function & F&Frequency domain & P&Proportional (pure damping) \\ ATN& Attenuator& BEM& Boundary element method& LD& Linear damping & F+&Frequency domain, with extension to incorporate constraints or nonlinearities & PI&Proportional integral (damping and stiffness, aka reactive) \\ @@ -27,9 +28,10 @@ \section{Literature Review Column Legends} \begin{landscape} \begingroup +\setlength{\tabcolsep}{2pt} \begin{table}[htbp] - \caption{Legend keys for other modeling columns of \cref{remdo:tab:lit}} -\begin{tabular}{>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.2\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.2\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.2\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.2\linewidth}} + \caption{Legend keys for other modeling columns of \Cref{remdo:tab:lit}} +\begin{tabular}{>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.18\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.18\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.18\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.18\linewidth}} \multicolumn{2}{c|}{Mooring}& \multicolumn{2}{c|}{Structures} & \multicolumn{2}{c|}{Economics}& \multicolumn{2}{c}{Sea state}\\ \hline DYN& Model incorporates mooring dynamics & AN& Models stress analytically as a function of dimensions& STR& Models structural cost & REG& Regular waves\\ DES& Study considers mooring physical design & LO& Models load without dimension-dependent stress & PTO& Models power take-off cost & IRR& Irregular wave spectrum\\ @@ -41,8 +43,8 @@ \section{Literature Review Column Legends} \bigskip \begin{table}[htbp] - \caption{Legend keys for the optimization columns of \cref{remdo:tab:lit}} -\begin{tabular}{>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.2\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.2\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.2\linewidth}|>{\centering\arraybackslash}p{0.05\linewidth}>{\raggedright\arraybackslash}p{0.2\linewidth}} + \caption{Legend keys for the optimization columns of \Cref{remdo:tab:lit}} +\begin{tabular}{>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.18\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.18\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.18\linewidth}|>{\centering\arraybackslash}p{0.04\linewidth}>{\raggedright\arraybackslash}p{0.18\linewidth}} \multicolumn{2}{c|}{Optimization} & \multicolumn{2}{c|}{Objective} & \multicolumn{2}{c|}{Constraints} & \multicolumn{2}{c}{Design variables}\\ \hline LOC& Local optimizer (gradient-based, derivative-free)& ECON& Economic metrics or proxies, including power/size ratios& GEO& Geometric (volume, inertial, layout)& DIM&Bulk dimensions\\ GA& Genetic algorithm& PWR& Power production& AMP& Amplitude, stroke& STR&Structural thickness\\ @@ -66,7 +68,7 @@ \section{Optimization Process Details} \subsection{Linear Inequality Constraints} \label{remdo:sec:appendix-linear-constraints} -The eight linear inequality constraints of the optimization formulation (\cref{remdo:sec:formulation}) are expressed in matrix form below, where each row corresponds to the constraint identifier $g_{L,*}$ given in parentheses: +The eight linear inequality constraints of the optimization formulation (\Cref{remdo:sec:formulation}) are expressed in matrix form below, where each row corresponds to the constraint identifier $g_{L,*}$ given in parentheses: % notebook p137 11/16/25 % TODO: verify row 2 ($g_{L,2}$) coefficient — should the leading entry use D_{f,in}/D_s or D_{f,in} directly? See formulation note, unresolved against MATLAB source. \begin{equation} @@ -150,6 +152,7 @@ \section{Supplementary Results} \subsection{Single Objective Optimization Results} \Cref{remdo:fig:single-objective-convergence} shows the convergence of the single objective optimization (LCOE minimization) using the nominal RM3 design as a starting point. +The optimization converges in \numIterationsToConverge~iterations, not including the 8 initial iterations used to perform Hessian scaling. \begin{figure}[htbp] \centering \includegraphics[width=\linewidth]{figs/from-matlab/single_obj_convergence.pdf} @@ -158,12 +161,13 @@ \subsection{Single Objective Optimization Results} \Cref{remdo:fig:multistart-parallel-axis} shows the effect of starting point $x_0$ (leftmost column in each subplot) on the optimal design value $x^*$ (middle two columns) and optimal objective value $J^*$ (rightmost two columns). The meaning of $x$ in each subplot is indicated by the subplot title. -The two starting points that achieve global optima, denoted in green and orange, both have low inital values of $T_{f,2}$ and medium initial values of $t_{f,b}$. +The two starting points that achieve global optima, denoted in green and orange, both have low initial values of $T_{f,2}$ and medium initial values of $t_{f,b}$. The value of the optimal draft, $T_{f,2}^*$, is likewise lowest at the global minima. On the other hand, the optimal float thickness, $t_{f,b}^*$, both depends less on and differs more from the initial value for float thickness. This suggests that it is primarily the initial value of the draft $T_{f,2}$, rather than the initial float thickness $t_{f,b}$, that is important for arriving at the global optimum. -\Cref{remdo:fig:multistart-parallel-axis} also sheds light on the convexity of the search space: local minima are common for all design variables except $T_{f,2}$ and $t_{f,b}$, which usually converge to the same optimal $x^*$ value regardless of the starting point $x_0$. +\Cref{remdo:fig:multistart-parallel-axis} also sheds light on the convexity of the search space: multimodality (several local minima) is common for all design variables except $T_{f,2}$ and $t_{f,b}$, which usually converge to the same optimal $x^*$ value regardless of the starting point $x_0$. Surprisingly, the optimal values take on many different continuous values, as opposed to converging to several discrete values as might be expected from distinct local optima in a multimodal problem. +Future multistart procedures could therefore fix deterministic starts for the unimodal variables and sample only the multimodal ones, reducing the total function evaluations. %\hl{This requires further investigation to explain and will be done during re-scrutineering.} \begin{landscape} @@ -251,6 +255,6 @@ \subsection{Local Sensitivities} \end{figure} Finally, the authors note that while the re-optimization method is valid even when the parameters are far from their nominal values and can be considered a global sensitivity analysis method, it has here only been performed for parameters perturbed in a OAT fashion very close to the nominal and is therefore used as a local sensitivity analysis method. -The global sensitivities of \cref{remdo:sec:sensitivities} only investigate a few select parameters. +The global sensitivities of \Cref{remdo:sec:sensitivities} only investigate a few select parameters. Future work could obtain fuller global sensitivities through re-optimization or a variety of other methods such as Sobol variance decomposition or Method of Morris \cite{reed_addressing_2022}. This would reveal higher order effects like interactions between parameters and dependence of the sensitivity derivative on the parameter value. diff --git a/pubs/renewable-energy-mdo/sections/re-contributions.tex b/pubs/renewable-energy-mdo/sections/re-contributions.tex index 0467063aa..91f6474a4 100644 --- a/pubs/renewable-energy-mdo/sections/re-contributions.tex +++ b/pubs/renewable-energy-mdo/sections/re-contributions.tex @@ -1,8 +1,8 @@ \item Presents multidisciplinary design optimization framework for wave energy converters. -\item Problem setup leverages convex subspaces to speed up computations. -\item Solves a constrained optimization with 12 dimensional, structural, and powertrain design variables. +\item Problem setup leverages convex subspaces to speed up computations for practical use. +\item Optimizes across 12 dimensional, structural, and powertrain design variables. \item Multiobjective power-cost formulation reduces the impact of economic uncertainties. -\item Optimal designs achieve \resultsRE[pctImproveLCOEMinLCOE]~LCOE reduction and tend to be \resultsRE[optDesignDescriptionMinLCOE]~than the standard RM3 design. +\item \resultsRE[pctImproveLCOEMinLCOE]~LCOE reduction and larger float diameter compared to standard RM3 design. \ifdefined\DISSERTATION \item Sensitivity analysis reveals LCOE is most sensitive to \resultsRE[sensitiveParamCategoriesMinLCOE], while cost is most sensitive to \resultsRE[sensitiveParamCategoriesMinCapex]. \fi diff --git a/pubs/renewable-energy-mdo/sections/results.tex b/pubs/renewable-energy-mdo/sections/results.tex index ac12480c6..fdddb15ad 100644 --- a/pubs/renewable-energy-mdo/sections/results.tex +++ b/pubs/renewable-energy-mdo/sections/results.tex @@ -3,6 +3,22 @@ \section{Results}\label{remdo:sec:results} %\hl{Maybe add a 2D sweep of $D_f$ and $T_{f,2}$ if I have time} This section presents optimization outcomes and targeted sensitivity analyses for the formulation and model assumptions. +\subsection{Pre-Optimization Sweep} +\Cref{remdo:fig:experiments} depicts a variable sweep using the one-at-a-time design-of-experiments method. +Many designs are infeasible: those that violate nonlinear constraints are marked with an X, +and those that violate linear constraints are not simulated to avoid errors as described in \cref{remdo:sec:requirements}. +Most violations are due to structural failure of the damping plate, in both fatigue and ultimate load cases. +A few designs violate hydrostatic pitch stability ($g_{NL,5}$) or geometrically incompatible damping plate thickness ($g_{L,7}$). +Of particular note, the most significant LCOE decrease is obtained by increasing the float diameter. +The LCOE attains a local minimum at a float diameter around 1.5 times the nominal design, but the plate fails structurally there. +The PTO power and force ratings also attain local minima, as expected from the tradeoff of power generation and cost. +The structural variables, meanwhile, increase with cost and do not affect power, so no direct LCOE tradeoff is expected; these variables exist solely to satisfy constraints. +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figs/from-matlab/experiments_ratios.pdf} +\caption{Exploratory one at a time sweep of design variables to understand tradeoffs prior to optimization. Feasible and infeasible designs are indicated with an O and X respectively.} +\label{remdo:fig:experiments} +\end{figure} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Single Objective Optimization} @@ -12,25 +28,27 @@ \subsection{Single Objective Optimization} \subsubsection{Optimal Design} In the single-objective optimizations, $LCOE$ and $CAPEX$ are minimized and average power $P_{\text{elec},\text{avg}}$ is maximized, each starting from the nominal RM3 configuration as the initial condition $\vec{x}_0$, for which all optimizations converge successfully. -The optimal designs $\vec{x}^*$ are shown visually in \cref{remdo:fig:overlaid-geometry} and numerically in \cref{remdo:tab:opt-dv-values}, alongside the nominal design and a balanced design. +The optimal designs $\vec{x}^*$ are shown visually in \Cref{remdo:fig:overlaid-geometry} and numerically in \Cref{remdo:tab:opt-dv-values}, alongside the nominal design and a balanced design. \ifdefined\DISSERTATION - The balanced design is a $CAPEX$ minimization with an added constraint that average power exceed \resultsRE[powerBalanced]~kW, a value chosen from the shape of the multi-objective Pareto front (\cref{remdo:sec:results-multi}) to trade a small power reduction for a cost reduction relative to the minimum-LCOE design. + The balanced design is a $CAPEX$ minimization with an added constraint that average power exceed \resultsRE[powerBalanced], kW a value chosen from the shape of the multi-objective Pareto front (\Cref{remdo:sec:results-multi}) to trade a small power reduction for a cost reduction relative to the minimum-LCOE design. This would be preferred whenever design-dependent capital expenditures matter more than modeled here, for shorter-duration projects, higher discount rates, lower operational cost, or lower design-independent capital cost. \else - The balanced design is a $CAPEX$ minimization constrained to exceed \resultsRE[powerBalanced]~kW average power (chosen from the Pareto front of \cref{remdo:sec:results-multi}), trading a small power reduction for lower cost, preferable when design-dependent capital cost matters more than modeled here. + The balanced design is a $CAPEX$ minimization constrained to exceed \resultsRE[powerBalanced] average power (chosen from the Pareto front of \Cref{remdo:sec:results-multi}), trading a small power reduction for lower cost, preferable when design-dependent capital cost matters more than modeled here. \fi + + \begin{figure}[htbp] \centering -\includegraphics[width=\linewidth]{figs/from-matlab/experiments_ratios.pdf} +\includegraphics[width=\linewidth]{figs/from-matlab/overlaid_geometry.pdf} \caption{Geometries overlaid} \label{remdo:fig:overlaid-geometry} \end{figure} -\begin{table}[htbp] +\begin{table*}[htbp] \input{tables/from-matlab/optimal_design_vars.tex} \caption{Optimal design variables}\label{remdo:tab:opt-dv-values} -\end{table} +\end{table*} The optimal designs are generally larger than the nominal. \ifdefined\DISSERTATION @@ -41,13 +59,13 @@ \subsubsection{Optimal Design} In all optima, the three structural thicknesses decrease significantly and the float stiffener height decreases moderately, indicating that the optimized floats experience lower hydrodynamic forces and can shed structural material. In the minimum-LCOE design, the lower damping plate thickness trades off against larger damping plate stiffeners, mimicking the aerospace paradigm in which thin sheet-metal skin and substantial stiffeners are favored over thick plate stock. In several scenarios, structural thickness variables converge to their lower bounds. - The activity of these bound constraints (priority 2 requirements in the language of \cref{remdo:sec:requirements}) indicates that the structures model is at the edge of its validity for thin-skinned stiffened shells, calling into question the assumption that the deflection field resembles a plate rather than a beam \cite{mccabe_development_2026}. + The activity of these bound constraints (priority 2 requirements in the language of \Cref{remdo:sec:requirements}) indicates that the structures model is at the edge of its validity for thin-skinned stiffened shells, calling into question the assumption that the deflection field resembles a plate rather than a beam \cite{mccabe_development_2026}. Expanding the structures model to remove this assumption could yield even more efficient structural designs. In the minimum-cost design, the damping plate stiffeners instead decrease in size. \else - The minimum-LCOE design is larger in all bulk dimensions, most strikingly in float diameter (nearly doubling to \resultsRE[DfoptMinLCOE]~m), with a similarly sized PTO at slightly lower maximum force. + The minimum-LCOE design is larger in all bulk dimensions, most strikingly in float diameter (nearly doubling to \resultsRE[DfoptMinLCOE]), with a similarly sized PTO at slightly lower maximum force. In all optima the three structural thicknesses decrease significantly, in several cases reaching their lower bounds, indicating lower hydrodynamic forces and reduced structural material; the minimum-LCOE design trades thinner damping plate for larger stiffeners, mimicking the aerospace thin-skin-and-stiffener paradigm. - The activity of these lower-bound constraints (priority 2 requirements, \cref{remdo:sec:requirements}) signals that the structures model is at the edge of its validity for thin-skinned stiffened shells, where the plate-like deflection assumption \cite{mccabe_development_2026} weakens; removing it in future work could yield more efficient structures. + The activity of these lower-bound constraints (priority 2 requirements, \Cref{remdo:sec:requirements}) signals that the structures model is at the edge of its validity for thin-skinned stiffened shells, where the plate-like deflection assumption \cite{mccabe_development_2026} weakens; removing it in future work could yield more efficient structures. \fi %\hl{discuss the difference between material reductions driven by structural load decrease versus structural efficiency increase, and how to tell the difference and which is happening here.} @@ -62,14 +80,14 @@ \subsubsection{Optimal Design} %%%%%%%%%%%%%%%%%%%% \subsubsection{Optimal Performance Outputs} -The hydrodynamic coefficients and power distributions of each single-objective optimal design, with the nominal for reference, are compared in \cref{remdo:fig:overlaid-hydro,remdo:fig:overlaid-power-dist}, with numerical results in \cref{remdo:tab:opt-output}. +The hydrodynamic coefficients and power distributions of each single-objective optimal design, with the nominal for reference, are compared in \Cref{remdo:fig:overlaid-hydro,remdo:fig:overlaid-power-dist}, with numerical results in \Cref{remdo:tab:opt-output}. -\begin{figure}[htbp] +\begin{figure*}[htbp] \centering \includegraphics[width=\linewidth]{figs/from-matlab/overlaid_hydro_coeffs.pdf} \caption{Hydrodynamic coefficients overlaid} \label{remdo:fig:overlaid-hydro} -\end{figure} +\end{figure*} \begin{figure}[htbp] \centering \includegraphics[width=\linewidth]{figs/from-matlab/probability_CDF.pdf} @@ -83,12 +101,12 @@ \subsubsection{Optimal Performance Outputs} %On the opposite end of the spectrum, a second design is the least variable design, with an LCOE of \$1.00/kWh and merely 58\% power variation. This design is recommended for applications where the cost of energy is less critical, and storage is extremely limited. Powering the Blue Economy (PBE) applications such as aquaculture farms and AUV charging likely meet these criteria. %Finally, we recommend the balanced design for intermediate applications, where energy storage is available but not abundant, and cost is important but not the bottom line. An example is a grid-connected application for island communities. This balanced design has an LCOE of \$0.18/kWh and a power coefficient of variation equal to 100\%. -%Further insight on the power profiles of these recommended designs compared to the baseline can be uncovered through probability distribution plots, shown in \cref{fig:power-dist}. The minimum variation design is seen to be tuned to produce most of its power from moderate sea states only ($\sim$60-300 kW), whereas the minimum LCOE design has a much broader spectrum, collecting significant power both below 10~kW and above 1~MW. The balanced design falls in the middle. %As expected, the minimum LCOE design operates at high powers the most, spending 50\% of the time above 500~kW, compared to 40\% and 10\% for the balanced and minimum variation designs respectively. Also as expected, the minimum variation design spends a large amount of time ($\approx$40\%) at low powers below 50~kW. Interestingly, the minimum-LCOE design actually spends more time at low powers than the balanced design. In future work, the power distributions could be optimized more explicitly, incorporating information other than the coefficient of variation as an objective based on grid-level analysis. +%Further insight on the power profiles of these recommended designs compared to the baseline can be uncovered through probability distribution plots, shown in \Cref{fig:power-dist}. The minimum variation design is seen to be tuned to produce most of its power from moderate sea states only ($\sim$60-300 kW), whereas the minimum LCOE design has a much broader spectrum, collecting significant power both below 10~kW and above 1~MW. The balanced design falls in the middle. %As expected, the minimum LCOE design operates at high powers the most, spending 50\% of the time above 500~kW, compared to 40\% and 10\% for the balanced and minimum variation designs respectively. Also as expected, the minimum variation design spends a large amount of time ($\approx$40\%) at low powers below 50~kW. Interestingly, the minimum-LCOE design actually spends more time at low powers than the balanced design. In future work, the power distributions could be optimized more explicitly, incorporating information other than the coefficient of variation as an objective based on grid-level analysis. -\begin{table}[htbp] +\begin{table*}[htbp] \input{tables/from-matlab/optimal_outputs.tex} \caption{Optimal outputs}\label{remdo:tab:opt-output} -\end{table} +\end{table*} \ifdefined\DISSERTATION The minimum-LCOE design achieves an annual average electrical power of \resultsRE[powerAvgAtMinLCOE]~kW with a structural material mass of \resultsRE[structMassAtMinLCOE]~kg, requiring a generator rated for \resultsRE[powerMaxAtMinLCOE]~kW and \resultsRE[forceMaxAtMinLCOE]~kN peak. @@ -98,13 +116,13 @@ \subsubsection{Optimal Performance Outputs} The CAPEX minimization reduces design-dependent cost by a further \resultsRE[pctImproveDesignCostMinCapex]~at the cost of a \resultsRE[pctWorsePowerMinCapex]~power reduction, while the power maximization increases power by a further \resultsRE[pctImprovePowerMaxPower]~at the expense of a \resultsRE[pctWorseDesignCostMaxPower]~increase in design-dependent cost, both relative to the minimum-LCOE design. \else - The minimum-LCOE design achieves \resultsRE[powerAvgAtMinLCOE]~kW annual average electrical power at an estimated \resultsRE[minLCOE]~\$/kWh, a \resultsRE[pctImproveLCOEMinLCOE]~improvement over the nominal \resultsRE[nominalLCOE], from a simultaneous \resultsRE[pctImproveDesignCostMinLCOE]~design-cost reduction and \resultsRE[pctImprovePowerMinLCOE]~power increase (economic assumptions per \cite{mccabe_development_2026}). + The minimum-LCOE design achieves \resultsRE[powerAvgAtMinLCOE]~annual average electrical power at an estimated \resultsRE[minLCOE], a \resultsRE[pctImproveLCOEMinLCOE]~improvement over the nominal \resultsRE[nominalLCOE], from a simultaneous \resultsRE[pctImproveDesignCostMinLCOE]~design-cost reduction and \resultsRE[pctImprovePowerMinLCOE]~power increase (economic assumptions per \cite{mccabe_development_2026}). This remains far above other renewables (onshore wind/solar 0.03-0.05~\$/kWh; floating offshore wind projected 0.11-0.25~\$/kWh by 2030 \cite{national_renewable_energy_laboratory_2024_2024}). Relative to the minimum-LCOE design, CAPEX minimization cuts design-dependent cost a further \resultsRE[pctImproveDesignCostMinCapex]~for a \resultsRE[pctWorsePowerMinCapex]~power loss, and power maximization adds \resultsRE[pctImprovePowerMaxPower]~power for a \resultsRE[pctWorseDesignCostMaxPower]~cost increase. \fi \ifdefined\DISSERTATION - Finally, \cref{remdo:fig:power-matrix-opt} shows a multiplicative breakdown of the power matrix for the minimum-LCOE design. + Finally, \Cref{remdo:fig:power-matrix-opt} shows a multiplicative breakdown of the power matrix for the minimum-LCOE design. The maximum capture width is that of any shape oscillating in heave, based on the far-field radiation pattern. The radiation efficiency is the ratio of the maximum lossless power for the given shape to the maximum radiation-limited power, the former computed with the design's hydrodynamic coefficients, no drag, and an unsaturated controller of the specified type (damping or reactive). The drag efficiency captures the effect of enabling drag and increases with wave height as expected. @@ -115,20 +133,20 @@ \subsubsection{Optimal Performance Outputs} \Cref{remdo:fig:power-matrix-opt} shows a multiplicative breakdown of the minimum-LCOE power matrix into maximum capture width, radiation efficiency, drag efficiency, the $F_{\text{max}}$ force-limit factor (departing from unity only near resonance at high wave heights), and electrical efficiency; their product with the annual hours per sea state yields annual energy production. \fi -\begin{figure}[htbp] +\begin{figure*}[htbp] \centering \includegraphics[width=1\linewidth]{figs/from-matlab/single_obj_opt_power_matrix.pdf} \caption{Power matrix multiplicative breakdown for minimum LCOE design} \label{remdo:fig:power-matrix-opt} -\end{figure} +\end{figure*} %%%%%%%%%%%%%%%%%%%% \subsubsection{Post-Optimality Derivatives} \ifdefined\DISSERTATION \Cref{remdo:sec:single-obj-process} introduced the Lagrange multipliers $\vec{\lambda}=-dJ^*/d\vec{g}$ to quantify the activity and influence of constraints at the optimum. - The nonzero multipliers are reported in \cref{remdo:fig:lagrange-multiplier}, each signifying the increase in objective $J$ per unit increase in an active constraint $g$. + The nonzero multipliers are reported in \Cref{remdo:fig:lagrange-multiplier}, each signifying the increase in objective $J$ per unit increase in an active constraint $g$. \else - The Lagrange multipliers $\vec{\lambda}=-dJ^*/d\vec{g}$ (\cref{remdo:sec:single-obj-process}), reported in \cref{remdo:fig:lagrange-multiplier}, quantify each active constraint's influence on the objective. + The Lagrange multipliers $\vec{\lambda}=-dJ^*/d\vec{g}$ (\Cref{remdo:sec:single-obj-process}), reported in \Cref{remdo:fig:lagrange-multiplier}, quantify each active constraint's influence on the objective. \fi \begin{figure}[htbp] @@ -155,12 +173,12 @@ \subsubsection{Post-Optimality Derivatives} Additional optimization outputs are the objective gradient $\vec{\nabla} J=\partial J/\partial \vec{x}$ and the Hessian of the Lagrangian $\mathbf{H} = \partial^2 (J+\sum_i g_i)/\partial \vec{x}^2$, whose value lies in computing further local sensitivities such as the effect of perturbing a design variable or parameter from its optimum. - Local parameter sensitivity is treated in \cref{remdo:sec:sensitivities-local}; design-variable perturbation is examined here. + Local parameter sensitivity is treated in \Cref{remdo:sec:sensitivities-local}; design-variable perturbation is examined here. \Cref{remdo:fig:delta-J} shows the relative change in objective for a 10\% perturbation of each design variable from its optimum, - $\Delta J/J$, computed via \cref{remdo:eq:delta-J} and compared against the ground-truth simulation re-evaluation. + $\Delta J/J$, computed via \Cref{remdo:eq:delta-J} and compared against the ground-truth simulation re-evaluation. \else The optimization also returns the objective gradient $\vec{\nabla} J$ and the Hessian of the Lagrangian, enabling further local sensitivities. - \Cref{remdo:fig:delta-J} shows the relative objective change for a 10\% perturbation of each design variable from its optimum via \cref{remdo:eq:delta-J}, against ground-truth re-evaluation. + \Cref{remdo:fig:delta-J} shows the relative objective change for a 10\% perturbation of each design variable from its optimum via \Cref{remdo:eq:delta-J}, against ground-truth re-evaluation. \fi \begin{equation}\label{remdo:eq:delta-J} @@ -175,13 +193,13 @@ \subsubsection{Post-Optimality Derivatives} \ifdefined\DISSERTATION The gradient $\vec{\nabla} J$, and hence the gradient estimate of $\Delta J$, is zero for any design variable not involved in an active constraint, provided the optimization has converged. - Here all values are nonzero, indicating that every design variable affects the active constraints of \cref{remdo:fig:lagrange-multiplier}; each value conveys how much the objective would improve if that variable could change, though doing so would violate the active constraint it participates in. + Here all values are nonzero, indicating that every design variable affects the active constraints of \Cref{remdo:fig:lagrange-multiplier}; each value conveys how much the objective would improve if that variable could change, though doing so would violate the active constraint it participates in. The highest sensitivities are $D_s$, $D_f$, and $h_{\text{stiff},f}$: a 10\% decrease in the diameters or 10\% increase in the stiffener height raises LCOE by 7.9\%, 4.4\%, and 3.7\% respectively. The remaining design variables can be perturbed 10\% in either direction while changing the objective by only 1--2\% (though they may affect constraints). The gradient estimates are generally accurate except for the diameters $D_s$, $D_f$ and the peak power $P_{\text{max}}$, where curvature in the objective indicates a tradeoff producing an optimum even absent active constraints, which are expected for LCOE minimization, since increasing the diameters and power rating raises both power production and capital cost. More accurate perturbed-LCOE estimates would require the objective Hessian via manual finite differences, since the solver returns only the Hessian of the Lagrangian. \else - The gradient estimate $\Delta J$ is zero for any design variable not in an active constraint at convergence; here all values are nonzero, showing every variable affects the active constraints of \cref{remdo:fig:lagrange-multiplier}. + The gradient estimate $\Delta J$ is zero for any design variable not in an active constraint at convergence; here all values are nonzero, showing every variable affects the active constraints of \Cref{remdo:fig:lagrange-multiplier}. The highest sensitivities are $D_s$, $D_f$, and $h_{\text{stiff},f}$ (a 10\% change raises LCOE by 7.9\%, 4.4\%, and 3.7\%); the rest shift the objective only 1--2\% under 10\% perturbation. Estimates are accurate except for the diameters and peak power, where objective curvature reflects the power-versus-cost tradeoff that would produce an optimum even without active constraints. \fi @@ -201,7 +219,7 @@ \subsubsection{Multi-Start} $\textrm{ceil}\!\left(\frac{\ln(1-0.95)}{\ln(1-0.2)}\right)=\resultsRE[numMultistartRequired]$ linearly feasible starting points. \else Because non-convex optimization can stall at local minima, 1000 random starts are tested; 974 are linearly infeasible, leaving 26 feasible, none of which converge while meeting the KKT conditions. - For LCOE minimization 17 converge via small steps and 9 do not (reversed at 9/17 for cost minimization); of the converged runs, 5 and 4 reach the same presumed global minimum while more (12 and 5) reach a worse local minimum (\cref{remdo:fig:multistart-tree}). + For LCOE minimization 17 converge via small steps and 9 do not (reversed at 9/17 for cost minimization); of the converged runs, 5 and 4 reach the same presumed global minimum while more (12 and 5) reach a worse local minimum (\Cref{remdo:fig:multistart-tree}). With roughly one fifth reaching the global minimum, a 95\% chance of finding it requires at least $\textrm{ceil}\!\left(\frac{\ln(1-0.95)}{\ln(1-0.2)}\right)=\resultsRE[numMultistartRequired]$ feasible starts. \fi @@ -224,16 +242,15 @@ \subsubsection{Multi-Start} Future studies can exploit this to reduce the function evaluations needed to reach the global optimum. Within each optimization, the multistart could use deterministic starting points for the float draft and bottom plate thickness, sampling only the multimodal variables; across optimizations, the multimodal variables could be sampled from a non-uniform distribution to capture multiple local minima. \else - \Cref{remdo:fig:multistart-bar} shows convergence behavior versus each design variable's starting value: the float draft $T_{f,2}$ and bottom plate thickness $t_{f,b}$ converge to the same optimum regardless of start (nearly unimodal), while the others are highly multimodal. - Future multistart procedures could therefore fix deterministic starts for the unimodal variables and sample only the multimodal ones, reducing the total function evaluations. + \fi -More complete multistart results appear in \cref{remdo:sec:appendix-supplemental-results}. +More complete multistart results appear in \Cref{remdo:sec:appendix-supplemental-results}. -\begin{figure}[htbp] -\centering -\includegraphics[width=\linewidth]{example-image-a} % TODO (scrutineering): replace placeholder with real multistart bar chart -\caption{Bar chart showing impact of starting point on convergence behavior}\label{remdo:fig:multistart-bar} -\end{figure} +% \begin{figure}[htbp] +% \centering +% \includegraphics[width=\linewidth]{example-image-a} % TODO (scrutineering): replace placeholder with real multistart bar chart +% \caption{Bar chart showing impact of starting point on convergence behavior}\label{remdo:fig:multistart-bar} +% \end{figure} % \begin{table}[htbp] % \begin{tabular}{c|c|c} @@ -252,24 +269,24 @@ \subsection{Single Objective Sensitivity Analysis}\label{remdo:sec:sensitivities %%%%%%%%%%%%%%%%%%%%%%%%% \subsubsection{Local Sensitivity to Parameters}\label{remdo:sec:sensitivities-local} \ifdefined\DISSERTATION - This section interprets the most accurate local parameter sensitivity method (perturbing each parameter slightly from its nominal value and re-optimizing) while \cref{remdo:sec:appendix-sensitivties} compares the accuracy and cost of several computation methods. + This section interprets the most accurate local parameter sensitivity method (perturbing each parameter slightly from its nominal value and re-optimizing) while \Cref{remdo:sec:appendix-sensitivties} compares the accuracy and cost of several computation methods. Re-optimization accounts for nonlinearities and is thus more accurate, but far more expensive, than post-optimality-derivative sensitivities. \else - Local parameter sensitivities are computed by perturbing each parameter from its nominal value and re-optimizing, the most accurate of several methods compared in \cref{remdo:sec:appendix-sensitivties}. + Local parameter sensitivities are computed by perturbing each parameter from its nominal value and re-optimizing, the most accurate of several methods compared in \Cref{remdo:sec:appendix-sensitivties}. \fi \Cref{remdo:fig:param-sens-J-star-tornado,remdo:fig:param-sens-x-star-tornado,remdo:fig:param-sens-x-star-tornado-2} show tornado charts of the highest normalized sensitivities for the objective and design respectively, normalized so that a value of 1 means a given percent increase in the parameter causes the same percent increase in $J^*$ or $x^*$. -\begin{figure}[htbp] +\begin{figure*}[htbp] \centering - \includegraphics[width=1\linewidth]{figs/from-matlab/re_optim_objective_tornado.pdf} + \includegraphics[width=.8\linewidth]{figs/from-matlab/re_optim_objective_tornado.pdf} \caption{Tornado chart showing highest objective sensitivities} \label{remdo:fig:param-sens-J-star-tornado} -\end{figure} +\end{figure*} \ifdefined\DISSERTATION - On the left side of \cref{remdo:fig:param-sens-J-star-tornado}, the minimum LCOE is highly sensitive to operational wave characteristics, + On the left side of \Cref{remdo:fig:param-sens-J-star-tornado}, the minimum LCOE is highly sensitive to operational wave characteristics, with normalized sensitivities of $-1.4$: a 1\% increase in wave height or period lowers LCOE by 1.4\% through increased power. LCOE is also sensitive to array availability and transmission efficiency ($-1.0$) and PTO efficiency ($-0.8$); the 1:1 correspondence for array efficiency is expected since it directly scales annual energy production, @@ -303,7 +320,7 @@ \subsubsection{Local Sensitivity to Parameters}\label{remdo:sec:sensitivities-lo Finally, minimum design cost is sensitive to material density and cost (both $+0.6$, expected to be equal given the mass-based cost model), suggesting a lighter, cheaper material may benefit the low-power WEC. \else - For the minimum LCOE (left of \cref{remdo:fig:param-sens-J-star-tornado}), the dominant sensitivities are + For the minimum LCOE (left of \Cref{remdo:fig:param-sens-J-star-tornado}), the dominant sensitivities are operational wave characteristics ($-1.4$, as higher waves raise power), array and transmission efficiency ($-1.0$), PTO efficiency ($-0.8$), and the @@ -313,8 +330,8 @@ \subsubsection{Local Sensitivity to Parameters}\label{remdo:sec:sensitivities-lo and is dominated by damping plate geometry (the nondimensional stiffener height at $+2.1$, $D_d/D_s$ at $+1.7$, and related terms), with no float or spar geometric parameter influential, indicating the damping plate sets the minimum achievable cost. Two counterintuitive findings stand out: the sign of the structural-period sensitivity $T_{\text{struct}}$ flips between the two objectives, - and material yield strength has a \emph{positive} cost sensitivity ($+1.0$), that is a stronger material yields a costlier design, - because with thicknesses already at their lower bounds the added strength is spent on larger, higher-load dimensions rather than reduced structural cost. + and the material yield strength has a \emph{positive} cost sensitivity ($+1.0$). Specifically, a stronger material yields a costlier design + because--with thicknesses already at their lower bounds--the added strength is spent on larger, higher-load dimensions rather than reduced structural cost. \fi \begin{landscape} @@ -344,7 +361,7 @@ \subsubsection{Local Sensitivity to Parameters}\label{remdo:sec:sensitivities-lo For controllable choices held fixed for simplicity, such as many geometric parameters, high values indicate the value should become a design variable in future studies. The LCOE-minimizing design variables are most sensitive to site (black) and geometric (red) parameters, with a subset of structural variables ($t_{sr}$, $h_{\text{stiff},f}$, $h_{1,\text{stiff},d}$) also sensitive to structural (yellow) parameters. - In \cref{remdo:fig:param-sens-x-star-tornado-2}, the cost-minimizing design variables add sensitivity to economic parameters. + In \Cref{remdo:fig:param-sens-x-star-tornado-2}, the cost-minimizing design variables add sensitivity to economic parameters. Dynamic parameters (blue), including the float and spar drag coefficients and PTO efficiency, do not significantly affect the optimal design in either case; the low drag-coefficient sensitivity in particular means it is likely unnecessary to model the variation of drag coefficient with hull shape, frequency, or surface roughness. Some structural thicknesses ($t_{fb}$ and $t_d$ in both, $t_{sr}$ in cost minimization) are insensitive to all parameters because the optimum sits consistently at the lower bound, reinforcing the need to improve the structures model for thin-skinned stiffened shells. @@ -373,7 +390,7 @@ \subsubsection{Local Sensitivity to Parameters}\label{remdo:sec:sensitivities-lo %Maybe also show dJ/dx and that's important because you need that DV exact or not without affecting your bottom line.} %\hl{Is it possible to use these sensitivities to demonstrate coupling, and predict the effect of holding some DVs constant?) - during re scrutineering} -%For these highly sensitive parameters, it is worthwhile to perform a global sensitivity analysis to observe any nonlinearity. \Cref{remdo:fig:param-sens-global,remdo:fig:x-opt-sens-global} demonstrate the new optimal objective and optimal design variable values respectively under the re-optimization-based OAT global parameter sensitivity process described in \cref{sec:single-obj-process}. +%For these highly sensitive parameters, it is worthwhile to perform a global sensitivity analysis to observe any nonlinearity. \Cref{remdo:fig:param-sens-global,remdo:fig:x-opt-sens-global} demonstrate the new optimal objective and optimal design variable values respectively under the re-optimization-based OAT global parameter sensitivity process described in \Cref{sec:single-obj-process}. % \begin{figure}\label{remdo:fig:param-sens-global} % \includegraphics[width=\linewidth]{example-image-a} % \caption{Global OAT parameter sensitivity analysis to optimal objective $J^*$} @@ -397,16 +414,16 @@ \subsubsection{Global Sensitivity to Deployment Location} \Cref{remdo:tab:location} gives the optimal design variables and LCOE for each location. \else The high sensitivity to wave conditions warrants a global analysis re-optimizing for four U.S.\ deployment locations (Humboldt Bay, CA; Pac-Wave North and South, OR; Wave Energy Test Site, HI), using NREL SAM wave resource data \cite{janzou_sam_2022,dallman_characterization_2015} with economic assumptions held fixed. - This captures interactions among wave height, period, depth, and storm state that the OAT analysis cannot, and tests whether the optimal design is robust to location which is relevant because global deployability is a core viability requirement \cite{bull_systems_2017}. + This captures interactions among wave height, period, depth, and storm state that the OAT analysis cannot, and tests whether the optimal design is robust to location, which is relevant because global deployability is a core viability requirement \cite{bull_systems_2017}. \Cref{remdo:tab:location} gives the results. \fi -\begin{table}[htbp]\centering +\begin{table*}[htbp]\centering \setlength\arraycolsep{1pt} \input{tables/location_table.tex} \caption{Results for Re-Optimization in Four Distinct Locations} \label{remdo:tab:location} -\end{table} +\end{table*} \ifdefined\DISSERTATION All optimized LCOE values undercut the RM3 baseline. @@ -436,17 +453,17 @@ \subsubsection{Global Sensitivity to Deployment Location} %We also perform a global sensitivity analysis for price parameters $p_\tau$, $p_P$, $p_M$, and $p_0$ from equation~\eqref{remdo:eq:LCOE-scale}. For $p_0$, if the design-independent (unmodeled) cost goes to zero, \hl{(and maybe change 80\% efficiency into 100\%)}, that's essentially the best LCOE that a WEC of these technical assumptions (steel point absorber with given operational conditions) can get. We can think of the rest as a cost gap \hl{(explain)}. Meanwhile, the global sensitivity analysis for $p_\tau$ gives preliminary insight into the multi-objective problem, recovering a portion of the pareto front between the four variables that influence $LCOE$: $\tau$, $P_{pk,\text{elec}}$, $V_{\text{struct}}$, and $P_{\text{avg},\text{elec}}$. This shows \hl{XXX conclusion}, to be clarified further in the multi-objective optimization. %%%%%%%%%%%%%%%%%%%% -\subsubsection{Global Sensitivity to Modeling Assumptions} -\label{remdo:sec:sensitivity-model-assumptions} -Beyond continuous parameters, the simulation depends on discrete options governing model behavior: the control scheme (damping or reactive), the presence of generator force saturation, the presence of drag, and the number of dynamic degrees of freedom (float-heave only, or float and spar heave). +% \subsubsection{Global Sensitivity to Modeling Assumptions} +% \label{remdo:sec:sensitivity-model-assumptions} +% Beyond continuous parameters, the simulation depends on discrete options governing model behavior: the control scheme (damping or reactive), the presence of generator force saturation, the presence of drag, and the number of dynamic degrees of freedom (float-heave only, or float and spar heave). %\paragraph{Control Scheme} %\hl{This analysis is left for during scrutineering.} %%% -\paragraph{Force Saturation} +% \paragraph{Force Saturation} \ifdefined\DISSERTATION - For the minimum-LCOE design of \cref{remdo:sec:results-single}, the lowest force-saturation power factor across all sea states in \cref{remdo:fig:power-matrix-opt} is + For the minimum-LCOE design of \Cref{remdo:sec:results-single}, the lowest force-saturation power factor across all sea states in \Cref{remdo:fig:power-matrix-opt} is $P_{sat}/P_{\text{unsat}}=\resultsRE[lowestFmaxFactorMinLCOE]$, at a force limit of $F_{\text{max}}/F_{\text{unsat}}=\lowestFsatMinLCOE$ in that sea state. Across all sea states, the optimal force-saturated design sacrifices only \resultsRE[powerLossForceSatMinLCOE]~of average power (about \resultsRE[pctPowerLossForceSatMinLCOE]) while cutting PTO cost by \resultsRE[pctPTOSavingsForceSatMinLCOE], @@ -457,9 +474,9 @@ \subsubsection{Global Sensitivity to Modeling Assumptions} \resultsRE[pctStructCostIncreaseForceSatOptMinLCOE]~higher structural cost, and \resultsRE[pctLCOEIncreaseForceSatOptMinLCOE]~higher LCOE than the optimization with saturation. \else - For the minimum-LCOE design, the optimal force-saturated solution sacrifices only \resultsRE[powerLossForceSatMinLCOE]~of average power (about \resultsRE[pctPowerLossForceSatMinLCOE]) - while cutting PTO cost by \resultsRE[pctPTOSavingsForceSatMinLCOE], for an LCOE reduction of \resultsRE[pctImproveLCOEForceSatMinLCOE]~versus the unsaturated equivalent (which violates structural constraints). - Re-optimizing to avoid saturation while satisfying constraints gives \resultsRE[pctLCOEIncreaseForceSatOptMinLCOE]~higher LCOE, confirming that force saturation is advantageous. + % For the minimum-LCOE design, the optimal force-saturated solution sacrifices only \resultsRE[powerLossForceSatMinLCOE]~of average power (about \resultsRE[pctPowerLossForceSatMinLCOE]) + % while cutting PTO cost by \resultsRE[pctPTOSavingsForceSatMinLCOE], for an LCOE reduction of \resultsRE[pctImproveLCOEForceSatMinLCOE]~versus the unsaturated equivalent (which violates structural constraints). + % Re-optimizing to avoid saturation while satisfying constraints gives \resultsRE[pctLCOEIncreaseForceSatOptMinLCOE]~higher LCOE, confirming that force saturation is advantageous. \fi %This corresponds almost exactly with the relationship expected in the purely resistive Thevenin impedance case in \cite{mccabe_force-limited_2024}: %\begin{equation} @@ -469,14 +486,14 @@ \subsubsection{Global Sensitivity to Modeling Assumptions} % fixme: what about the factor of 4/pi in the force ratio? Then the quadratic equation wouldn't apply, it would be more complicated (alpha non zero case) which casts doubt on my conclusion that alpha=0 emerges as optimal. Would need to compute alpha directly I think? I also think that the assumption of damping control means my Im(Gamma)=0 assumption in the notebook is false. Also Psat/Punsat is the the same as Psat/Pmax. So leaving this sentence out. %%% -\paragraph{Drag} +% \paragraph{Drag} \ifdefined\DISSERTATION - As \cref{remdo:sec:sensitivities-local} notes, the low sensitivity to drag coefficient suggests that modeling the drag nonlinearity may not be essential. + As \Cref{remdo:sec:sensitivities-local} notes, the low sensitivity to drag coefficient suggests that modeling the drag nonlinearity may not be essential. This is surprising, since without drag the resonant amplitude is significantly higher, which should matter given the active slamming constraint. One reason for the discrepancy is that the drag sensitivity was local only; a re-optimization at $C_d=0$ would likely give different results. \else - The low local sensitivity to drag coefficient (\cref{remdo:sec:sensitivities-local}) suggests modeling the drag nonlinearity may be inessential, - which is surprising given the active slamming constraint, though a global re-optimization at $C_d=0$ is needed to confirm. + % The low local sensitivity to drag coefficient (\Cref{remdo:sec:sensitivities-local}) suggests modeling the drag nonlinearity may be inessential. + % This is surprising given the active slamming constraint, though a global re-optimization at $C_d=0$ is needed to confirm. \fi %\hl{Performing this re-optimization is left for during scrutineering.} @@ -487,16 +504,16 @@ \subsubsection{Global Sensitivity to Modeling Assumptions} \subsection{Multi-Objective Optimization}\label{remdo:sec:results-multi} \ifdefined\DISSERTATION In the multi-objective optimization, the design-dependent capital cost $C_{\text{design}}$ and average electrical power $P_{\text{avg},\text{elec}}$ are optimized simultaneously to expose the trade-off between them. - As described in \cref{remdo:sec:multi-obj-process}, this gives insight for cases where LCOE may not apply or is uncertain due to cost variables modeled as constant, including $OPEX$, $FCR$, and $p_0$. - The Pareto front is shown in \cref{remdo:fig:pareto}, with the utopia point marked by a green star, simulated designs by squares, and the actual nominal performance reported in the RM3 reference \cite{RM3} by a diamond. + As described in \Cref{remdo:sec:multi-obj-process}, this gives insight for cases where LCOE may not apply or is uncertain due to cost variables modeled as constant, including $OPEX$, $FCR$, and $p_0$. + The Pareto front is shown in \Cref{remdo:fig:pareto}, with the utopia point marked by a green star, simulated designs by squares, and the actual nominal performance reported in the RM3 reference \cite{RM3} by a diamond. All Pareto-front designs cost significantly less than the nominal RM3, spanning powers both below and above it. \Cref{remdo:fig:pareto-lcoe} provides a zoomed view with superimposed constant-$LCOE$ contours; the minimum-LCOE design lies at the tangency between the Pareto front and the contours and very nearly coincides with the maximum-power design. %\hl{analyze more: how are the max power and min LCOE designs different? ... multiple apparent points of tangency ...} % TODO (scrutineering) \else - The multi-objective optimization simultaneously trades off design-dependent capital cost $C_{\text{design}}$ against average electrical power $P_{\text{avg},\text{elec}}$ (\cref{remdo:sec:multi-obj-process}), + The multi-objective optimization simultaneously trades off design-dependent capital cost $C_{\text{design}}$ against average electrical power $P_{\text{avg},\text{elec}}$ (\Cref{remdo:sec:multi-obj-process}), giving insight where LCOE is inapplicable or uncertain in its constant-modeled cost terms ($OPEX$, $FCR$, $p_0$). - The Pareto front (\cref{remdo:fig:pareto}) shows all designs costing significantly less than the nominal RM3 \cite{RM3} across a range of powers; - the zoomed view with constant-$LCOE$ contours (\cref{remdo:fig:pareto-lcoe}) places the minimum-LCOE design at the front's tangency with the contours, nearly coincident with the maximum-power design. + The Pareto front (\Cref{remdo:fig:pareto}) shows all designs costing significantly less than the nominal RM3 \cite{RM3} across a range of powers; + the zoomed view with constant-$LCOE$ contours (\Cref{remdo:fig:pareto-lcoe}) places the minimum-LCOE design at the front's tangency with the contours, nearly coincident with the maximum-power design. \fi \begin{figure}[htbp] \centering @@ -523,13 +540,13 @@ \subsection{Multi-Objective Optimization}\label{remdo:sec:results-multi} \Cref{remdo:fig:pareto} inlays geometry visualizations for a few designs (light blue). One apparent trend is that the optimal spar draft and float diameter grow from left to right along the front, this is intuitive since minimizing material keeps components as small as constraints allow, while larger dimensions cost more and generate more power. \else - The geometry inlays in \cref{remdo:fig:pareto} show the optimal spar draft and float diameter growing from left to right, as larger dimensions cost more but generate more power. + The geometry inlays in \Cref{remdo:fig:pareto} show the optimal spar draft and float diameter growing from left to right, as larger dimensions cost more but generate more power. \fi -Similar trends are quantified in \cref{remdo:fig:design-heuristics}, which provides design heuristics for adapting WEC design to a given cost-power balance. +Similar trends are quantified in \Cref{remdo:fig:design-heuristics}, which provides design heuristics for adapting WEC design to a given cost-power balance. \ifdefined\DISSERTATION To show consistent, interpretable trends despite the non-uniform spacing of points, the x-axis gives percent along the Pareto front (the angle of each point from the nadir point) and the y-values are lightly low-pass smoothed. - The individual Pareto points appear as black squares on the x-axis for comparison against \cref{remdo:fig:pareto} and to visualize clusters. + The individual Pareto points appear as black squares on the x-axis for comparison against \Cref{remdo:fig:pareto} and to visualize clusters. Structural design variables are green, powertrain ratings blue, and bulk geometry dimensions red. \else The x-axis gives percent along the Pareto front and y-values are lightly smoothed; structural variables are green, powertrain ratings blue, and bulk dimensions red. @@ -548,40 +565,40 @@ \subsection{Multi-Objective Optimization}\label{remdo:sec:results-multi} Examining the magnitude of change, the powertrain ratings vary most dramatically across the front while geometric and structural variables need only moderate adjustment. This raises the question of how much the cost savings at lower power come from smaller PTO versus smaller material cost: if PTO cost dominated, companies selling devices at multiple power levels could keep one geometric and structural design and vary only the PTO, easing design effort and economies of scale. - Using the costs in \cref{remdo:tab:opt-dv-values}, however, only \resultsRE[pctCostSavingsFromPTO]~of the savings come from the smaller PTO, so for a lower-power WEC under these price assumptions the slightly smaller hydrodynamic design matters far more than the substantially smaller PTO, making design reuse across power levels unlikely. + Using the costs in \Cref{remdo:tab:opt-dv-values}, however, only \resultsRE[pctCostSavingsFromPTO]~of the savings come from the smaller PTO, so for a lower-power WEC under these price assumptions the slightly smaller hydrodynamic design matters far more than the substantially smaller PTO, making design reuse across power levels unlikely. This differs from preliminary work \cite{mccabe_multidisciplinary_2022}, which wrongly examined only the change in optimal design without weighting the relative cost impact of PTO and dimensions. \else With increasing cost and power (left to right), most design variables increase monotonically or nearly so; only $T_{f,2}$ and $h_{fs,\text{clear}}$ (both in the amplitude constraints) decrease, while the lower-bound thicknesses $t_d$ and $t_{f,b}$ stay essentially constant. - The powertrain ratings vary most across the front, raising whether cost savings at low power come mainly from smaller PTO or smaller material: using \cref{remdo:tab:opt-dv-values}, only \resultsRE[pctCostSavingsFromPTO]~comes from the PTO, so the smaller hydrodynamic design dominates and design reuse across power levels is unlikely, correcting preliminary work \cite{mccabe_multidisciplinary_2022} that weighed only the design change, not its cost impact. + The powertrain ratings vary most across the front, raising whether cost savings at low power come mainly from smaller PTO or smaller material: using \Cref{remdo:tab:opt-dv-values}, only \resultsRE[pctCostSavingsFromPTO]~comes from the PTO, so the smaller hydrodynamic design dominates and design reuse across power levels is unlikely, correcting preliminary work \cite{mccabe_multidisciplinary_2022} that weighed only the design change, not its cost impact. \fi \ifdefined\DISSERTATION - The bottom of \cref{remdo:fig:design-heuristics} gives the analogous trends for the objectives. + The bottom of \Cref{remdo:fig:design-heuristics} gives the analogous trends for the objectives. Power output is largely linear, while design cost shows a discrete slope change near 5\% and a gradual one beyond. The discrete change causes the Pareto cusp and corresponds to a shift in PTO sizing strategy: from 0-5\% along, the cost-power trade is made by adjusting maximum power, whereas from 5-70\% it is made by adjusting maximum force at constant maximum power. The gradual slope change reflects diminishing returns, that is an increasing marginal cost of additional power. \else - The objective trends (bottom of \cref{remdo:fig:design-heuristics}) show largely linear power but a design-cost slope that changes discretely near 5\%, the source of the Pareto cusp, corresponding to a shift in PTO sizing strategy from adjusting maximum power (0-5\%) to adjusting maximum force at constant power (5-70\%), beyond which a gradual slope change reflects diminishing returns. + The objective trends (bottom of \Cref{remdo:fig:design-heuristics}) show largely linear power but a design-cost slope that changes discretely near 5\%, the source of the Pareto cusp, corresponding to a shift in PTO sizing strategy from adjusting maximum power (0-5\%) to adjusting maximum force at constant power (5-70\%), beyond which a gradual slope change reflects diminishing returns. \fi -%An additional point of note on the Pareto front of \cref{remdo:fig:pareto} is the LCOE and coefficient of variation of a typical solar array plotted for comparison (data from \cite{borettiSolar}). Even the cheapest WEC design is still almost an order of magnitude more expensive than solar, indicative of the immaturity of WEC technology and the need for further innovation and cost reduction. On the bright side, many of the designs achieve a lower coefficient of power variation than solar, indicating the potential for wave energy as a relatively steady grid-connected renewable. Finally, it is worth highlighting that the amount of power variation directly affects the required energy storage, so the local cost of storage affects the position along the Pareto front that is optimal for a given application. +%An additional point of note on the Pareto front of \Cref{remdo:fig:pareto} is the LCOE and coefficient of variation of a typical solar array plotted for comparison (data from \cite{borettiSolar}). Even the cheapest WEC design is still almost an order of magnitude more expensive than solar, indicative of the immaturity of WEC technology and the need for further innovation and cost reduction. On the bright side, many of the designs achieve a lower coefficient of power variation than solar, indicating the potential for wave energy as a relatively steady grid-connected renewable. Finally, it is worth highlighting that the amount of power variation directly affects the required energy storage, so the local cost of storage affects the position along the Pareto front that is optimal for a given application. %We can plot LCOE contours under different economic assumptions (sweep a couple FCRs, p0s, and opexes) and overlay this to the results already obtained in the global sensitivity analysis of FCR, p0, and opex but now plotted in multiobjective space.\hl{(Explain this better)} \ifdefined\DISSERTATION \Cref{remdo:fig:constraint-activity} shows which constraints are active along the front. Three structural design variables ($t_d$, $h_{\text{stiff},f}$, $h_{1,\text{stiff},d}$) reach their lower bound and none their upper bound. - The only active linear constraint is the spar natural frequency constraint; since it is priority 2 (required for modeling accuracy under the assumptions), its activity is significant and discussed further in \cref{remdo:sec:discussion}. + The only active linear constraint is the spar natural frequency constraint; since it is priority 2 (required for modeling accuracy under the assumptions), its activity is significant and discussed further in \Cref{remdo:sec:discussion}. Aside from the maximum force constraint (always active by design), the active nonlinear constraints are the float, column, and damping plate factors of safety and the amplitude constraints preventing the float from rising above the spar, maintaining linear wave theory, and preventing float slamming. \else - \Cref{remdo:fig:constraint-activity} shows the active constraints along the front: three structural variables at their lower bound, the spar natural frequency constraint (a priority 2 modeling-accuracy constraint whose activity is discussed in \cref{remdo:sec:discussion}), and the structural factor-of-safety and float-amplitude constraints. + \Cref{remdo:fig:constraint-activity} shows the active constraints along the front: three structural variables at their lower bound, the spar natural frequency constraint (a priority 2 modeling-accuracy constraint whose activity is discussed in \Cref{remdo:sec:discussion}), and the structural factor-of-safety and float-amplitude constraints. \fi -\begin{figure}[htbp] +\begin{figure*}[htbp] \centering \includegraphics[width=1\linewidth]{figs/from-matlab/pareto_constraint_activity_reactive.pdf} \caption{Constraint Activity} \label{remdo:fig:constraint-activity} -\end{figure} +\end{figure*} %\hl{If there's room/time, consider a bonus pareto of LCOE vs CF.} @@ -611,16 +628,17 @@ \subsection{Optimization Runtime} \Cref{remdo:fig:optim-runtimes} shows the runtime of each optimization and analysis routine, run in parallel on a 14-core server. The optimization also runs without issue, though more slowly, on unspecialized machines such as a Windows~10 laptop with MATLAB~R2022a. \else - \Cref{remdo:fig:optim-runtimes} shows the runtime of each routine, run in parallel on a 14-core server; the optimization also runs, more slowly, on a commodity laptop. + %\Cref{remdo:fig:optim-runtimes} shows the runtime of each routine, run in parallel on a 14-core server; the optimization also runs, more slowly, on a commodity laptop. + The timings in this section are performed on an Ubuntu 20.04 LTS server with a 14-core Intel Core i9-10940X CPU (3.3~GHz base clock) and 256~GB of DDR4 RAM at 3200~MHz, running MATLAB R2024b. + The optimization also runs, more slowly, on a commodity laptop. \fi -\begin{figure}[htbp] - \centering - \includegraphics[width=\linewidth]{figs/from-matlab/runtime_bar_chart.pdf} - \caption{Bar chart of optimization and analysis runtimes} - \label{remdo:fig:optim-runtimes} -\end{figure} -%the standard GitHub Linux runner for public repositories, which has 4 CPUs and 16 GB RAM with Ubuntu 24.04 operating system. +% \begin{figure}[htbp] +% \centering +% \includegraphics[width=\linewidth]{figs/from-matlab/runtime_bar_chart.pdf} +% \caption{Bar chart of optimization and analysis runtimes} +% \label{remdo:fig:optim-runtimes} +% \end{figure} \ifdefined\DISSERTATION Each single-objective optimization takes just \resultsRE[singleObjRuntime], converging in \resultsRE[singleObjIters]~iterations and \resultsRE[singleObjFcnEvals]~function evaluations (objective and gradient combined). @@ -630,12 +648,12 @@ \subsection{Optimization Runtime} Each single-objective optimization takes \resultsRE[singleObjRuntime] (\resultsRE[singleObjIters]~iterations, \resultsRE[singleObjFcnEvals]~function evaluations); the Pareto front takes \resultsRE[paretoRuntime]; gradient-based sensitivities run in \resultsRE[gradientSensRuntime] versus \resultsRE[reoptimSensRuntime]~for re-optimization-based ones. \fi -\Cref{remdo:fig:pareto-epsilon-runtime-sweep} shows the effect of the number of epsilon-constraint seeds on function evaluations and hypervolume. +%\Cref{remdo:fig:pareto-epsilon-runtime-sweep} shows the effect of the number of epsilon-constraint seeds on function evaluations and hypervolume. %\hl{Analysis is left for during scrutineering.} -\begin{figure}[htbp] - \centering - \includegraphics[width=\linewidth]{example-image-a} - \caption{Effect of number of epsilon-constraint seeds on pareto front function evaluations and hypervolume} - \label{remdo:fig:pareto-epsilon-runtime-sweep} -\end{figure} +% \begin{figure}[htbp] +% \centering +% \includegraphics[width=\linewidth]{example-image-a} +% \caption{Effect of number of epsilon-constraint seeds on pareto front function evaluations and hypervolume} +% \label{remdo:fig:pareto-epsilon-runtime-sweep} +% \end{figure} diff --git a/pubs/renewable-energy-mdo/shared-pkg.tex b/pubs/renewable-energy-mdo/shared-pkg.tex new file mode 100644 index 000000000..a09559eaf --- /dev/null +++ b/pubs/renewable-energy-mdo/shared-pkg.tex @@ -0,0 +1,147 @@ +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{soul} % for highlighting text with \hl +\usepackage{multirow} % for multi row/col tables +\usepackage{tikz} +\usepackage{array} % required for text wrapping in tables +\usepackage{pdflscape} % for landscape table +\usepackage{longtable} % for table going multiple pages +\usepackage{rotating} % for rotated table headers +\usepackage{color} % also required for highlighting +\usepackage{pdftexcmds} % for detecting if shell escape is enabled +\usepackage{enumitem} % bullets + +% save bibliography command before bibcop modifies it +\makeatletter +\let\bibcop@truebibliography\bibliography +\ifnum\pdf@shellescape=0 + % shell escape is disabled, so don't load bibcop +\else + %\usepackage{bibcop} % warnings for incorrect citations +\fi +\makeatother + +\usepackage[title,titletoc]{appendix} % make it possible to do \ref of an appendix section without automatically getting the word "Appendix" + +\usepackage{stmaryrd} % element wise division symbol used in hessian scaling +\SetSymbolFont{stmry}{bold}{U}{stmry}{m}{n} % avoid warning about bold stmry font + +\newcommand{\singleColMacro}[1]{ + \ifdefined\DISSERATION + \else + \onecolumn + \fi + {#1} + \ifdefined\DISSERATION + \else + \twocolumn + \fi +} + +\usepackage{verbatim} % word counts +\usepackage{textcomp} % cent symbol + +\ifdefined\DISSERTATION + \usepackage[numbers,square]{natbib} % citep command +\else + %\usepackage[numbers]{natbib} % citep command +\fi +\usepackage[unicode,hypertexnames=false,colorlinks=true]{hyperref} +\usepackage{cleveref} + +\newcommand*\rot{\rotatebox{90}} % for rotated table headers +\newcommand{\phant}{\vphantom{\frac{-1}{\rho_M/\rho_w - 1}}} % to make inequality stacks the right height + +\newcommand{\summarytexcount}[1]{\textbf{Word Count} + \immediate\write18{texcount -nosub -inc -sum=[1,0,0,0,0,0,0] -q -brief -template="{title}:\\n {sum} words, {float} figs/tables, {dsmath} full equations, {inline} inline equations.\\n" #1.tex > #1.wcsum }% + \verbatiminput{#1.wcsum}% +} + +\newcommand{\detailtexcount}[2]{\textbf{Section Breakdown #1} + \immediate\write18{texcount -sub=#2 -inc -sum=[1,1,1,0,0,0,0] -q -brief -template="{SUB?{title}:\\n {sum} words, {float} figs/tables, {dsmath} full equations, {inline} inline equations.\\n?SUB}\\n" #1.tex > #1.wcdetail }% + \verbatiminput{#1.wcdetail} +}% + +\def\fillandplacepagenumber{% for landscape page numbers + \par\thispagestyle{empty}% + \vbox to 0pt{\vss}\vfill + \vbox to 0pt{\baselineskip0pt + \hbox to\linewidth{\hss}% + \baselineskip\footskip + \hbox to\linewidth{% + \hfil\thepage\hfil}\vss}} + +% allows bibcop to be used when bibliography includes multiple arguments +\makeatletter +% \AtBeginDocument{% +% \ifnum\pdf@shellescape=0 +% % shell escape is disabled, so don't patch bibcop +% \else +% \ifdefined\bibliography + +% \RequirePackage{etoolbox} + +% \renewcommand{\bibliography}[1]{% +% \def\bibcop@list{#1}% +% \@for\bibcop@file:=\bibcop@list\do{% +% \edef\bibcop@file{\bibcop@file}% +% \ifx\bibcop@file\@empty\else +% \expandafter\bibcop@processbib\expandafter{\bibcop@file}% +% \fi +% }% +% \bibcop@truebibliography{#1}% +% } + +% \newcommand{\bibcop@processbib}[1]{% +% % trim spaces +% \edef\bibcop@file{\zap@space#1 \@empty}% + +% % skip empty entries +% \ifx\bibcop@file\@empty +% \relax +% \else + +% % build .bib filename +% \edef\bibcop@bibfile{\bibcop@file.bib}% + +% % use kpsewhich to resolve path using BIBINPUTS +% \immediate\write18{kpsewhich \bibcop@bibfile > aux/\jobname.bibcop.tmp}% + +% % read result +% \begingroup +% \endlinechar=-1 +% \newread\bibcop@in +% \openin\bibcop@in=aux/\jobname.bibcop.tmp +% \read\bibcop@in to \bibcop@resolved +% \closein\bibcop@in +% \xdef\bibcop@resolved{\bibcop@resolved}% +% \endgroup + +% % fallback if kpsewhich fails +% \ifx\bibcop@resolved\@empty +% \edef\bibcop@resolved{\bibcop@bibfile}% +% \fi + +% % call original bibcop +% \begingroup +% \edef\x{\endgroup +% \noexpand\bibcop@exec{\bibcop@resolved}% +% }% +% \x + +% \fi +% } +% \fi +% \fi +% } + +\AddToHook{cmd/appendices/before}{% + \crefalias{section}{appendix}% + \crefalias{subsection}{appendix} + \crefalias{subsubsection}{appendix} + \crefalias{chapter}{appendix} +} +\makeatother + +\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} +\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}} \ No newline at end of file diff --git a/pubs/renewable-energy-mdo/tables/location_table.tex b/pubs/renewable-energy-mdo/tables/location_table.tex index f88f57965..8b0da0394 100644 --- a/pubs/renewable-energy-mdo/tables/location_table.tex +++ b/pubs/renewable-energy-mdo/tables/location_table.tex @@ -1,4 +1,8 @@ -\begin{tabular}{>{\centering\arraybackslash}p{0.22\linewidth}>{\centering\arraybackslash}p{0.08\linewidth}>{\centering\arraybackslash}p{0.17\linewidth}>{\centering\arraybackslash}p{0.17\linewidth}>{\centering\arraybackslash}p{0.17\linewidth}>{\centering\arraybackslash}p{0.18\linewidth}} + + +\begin{tabular}{ +l +>{\raggedright\arraybackslash}p{0.1\linewidth}>{\raggedright\arraybackslash}p{0.1\linewidth}>{\raggedright\arraybackslash}p{0.1\linewidth}>{\raggedright\arraybackslash}p{0.1\linewidth}>{\raggedright\arraybackslash}p{0.12\linewidth}} && \multicolumn{4}{c}{Location}\\ \cline{3-6} & Symbol & Humboldt, CA & PacWave North, OR & PacWave South, OR & Wave Energy Test Site, HI\\ \hline diff --git a/pubs/renewable-energy-mdo/zotero-meem-refs.bib b/pubs/renewable-energy-mdo/zotero-meem-refs.bib new file mode 100644 index 000000000..b772cff60 --- /dev/null +++ b/pubs/renewable-energy-mdo/zotero-meem-refs.bib @@ -0,0 +1,485 @@ + +@article{nguyen_theoretical_2024, + title = {Theoretical modeling of a bottom-raised oscillating surge wave energy converter structural loadings and power performances}, + volume = {149}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118724001536}, + doi = {10.1016/j.apor.2024.104031}, + abstract = {This study presents theoretical formulations to evaluate the fundamental parameters and performance characteristics of a bottom-raised oscillating surge wave energy converter (OSWEC) device. Employing a flat plate assumption and potential flow formulation in elliptical coordinates, closed-form equations for the added mass, radiation damping, and excitation forces/torques in the relevant pitch-pitch and surge-pitch directions of motion are developed and used to calculate the system's response amplitude operator and the forces and moments acting on the foundation. The model is benchmarked against numerical simulations using WAMIT and WEC-Sim, showcasing excellent agreement. The sensitivity of plate thickness on the analytical hydrodynamic solutions is investigated over several thickness-to-width ratios ranging from 1:80 to 1:10. The results show that as the thickness of the benchmark OSWEC increases, the deviation of the analytical hydrodynamic coefficients from the numerical solutions grows from 3 \% to 25 \%. Differences in the excitation forces and torques, however, are contained within 12 \%. While the flat plate assumption is a limitation of the proposed analytical model, the error is within a reasonable margin for use in the design space exploration phase before a higher-fidelity (and thus more computationally expensive) model is employed. A parametric study demonstrates the ability of the analytical model to quickly sweep over a domain of OSWEC dimensions, illustrating the analytical model's utility in the early phases of design.}, + urldate = {2026-05-19}, + journal = {Applied Ocean Research}, + author = {Nguyen, Nhu and Davis, Jacob and Tom, Nathan and Thiagarajan, Krish}, + month = aug, + year = {2024}, + keywords = {Analytical, And power production, Design optimization, Hydrodynamic coefficients, OSWEC, Structural loads, Theoretical model, WAMIT, WEC-Sim, Wave energy}, + pages = {104031}, +} + +@inproceedings{nguyen_theoretical_2024-1, + address = {Singapore, Singapore}, + series = {{OMAE}}, + title = {Theoretical {Modeling} {Toolbox} for {Diffraction} {Problems} of {Common} {Shaped} {Bodies}}, + volume = {7: ocean renewable energy}, + isbn = {978-0-7918-8785-1}, + url = {https://dx.doi.org/10.1115/OMAE2024-128018}, + doi = {10.1115/OMAE2024-128018}, + abstract = {Abstract. The present study aims to develop an open-source Python-based toolbox for the theoretical modeling of diffraction problems in commonly shaped bodies. The project has dual objectives: 1) to offer a quick and efficient means for design exploration during the initial project phase and 2) to serve as a tool for code comparison and benchmarking for numerical models. While numerical solvers are commonly employed due to the complexity of obtaining exact solutions, our prior work on OSWEC modeling has demonstrated the advantages of an analytical approach, characterized by a simple setup and significantly quick computational time (typically less than a second for a hundred cases). This analytical approach is well-suited for early stages of project development, encompassing design space exploration and device geometry optimization. The current phase of the toolbox includes diffraction solutions for three fundamental cylindrical bodies: bottom-seated surface-piercing cylinder, truncated cylinder, and bottom-seated surface-piercing elliptical cylinder. The outputs encompass domain velocity potentials, excitation forces, and moments, all validated using Capytaine (a Boundary Element Method modeling program). The project is ongoing and is planned for expansion to provide solutions for other shapes. Additionally, an extension of the program to include radiation problems is also scheduled.}, + language = {en}, + urldate = {2026-05-19}, + booktitle = {{ASME} 2024 43rd {International} {Conference} on {Ocean}, {Offshore} and {Arctic} {Engineering}}, + publisher = {ASME}, + author = {Nguyen, Nhu}, + month = jun, + year = {2024}, + pages = {8}, +} + +@inproceedings{chau_inertia_2010, + address = {Harbin, China}, + title = {Inertia and {Damping} of {Heaving} {Compound} {Cylinders}}, + url = {https://www.academia.edu/73219479/Inertia_and_Damping_of_Heaving_Compound_Cylinders_Fun}, + abstract = {for The 25th International Workshop on Water Waves and Floating Bodies, Harbin, China, May 9-13, 2010. Inertia and Damping of Heaving Compound Cylinders Fun Pang Chau∗ and Ronald W. Yeung† Department of Mechanical Engineering University of California}, + language = {en}, + urldate = {2023-09-28}, + booktitle = {25th {International} {Workshop} on {Water} {Waves} and {Floating} {Bodies}}, + author = {Chau, Fun Pang and Yeung, Ronald W.}, + month = jan, + year = {2010}, + pages = {4}, +} + +@techreport{fuchs_wave_1954, + type = {Technical {Memorandum}}, + title = {Wave forces on piles: a diffraction theory}, + shorttitle = {Wave forces on piles}, + url = {https://hdl.handle.net/11681/3444}, + language = {en}, + number = {69}, + urldate = {2026-05-11}, + institution = {United States Department of the Army Corps of Engineers}, + author = {Fuchs, R. A. and MacCamy, R. C.}, + month = dec, + year = {1954}, + pages = {22}, +} + +@inproceedings{mavrakos_hydrodynamic_2012, + address = {Rio de Janeiro, Brazil}, + series = {{OMAE}}, + title = {Hydrodynamic {Analysis} of a {Vertical} {Axisymmetric} {Oscillating} {Water} {Column} {Device} {Floating} in {Finite} {Depth} {Waters}}, + volume = {7: Ocean Space Utilization; Ocean Renewable Energy}, + isbn = {978-0-7918-4494-6}, + url = {https://dx.doi.org/10.1115/OMAE2012-83998}, + doi = {10.1115/OMAE2012-83998}, + abstract = {A floating oscillating water column device (OWC) consists of a vertical cylinder, with a finite wall thickness, partly submerged as an open-bottom chamber in which air is trapped above the inner water free surface. The chamber is connected with the outer atmosphere by a duct housing an air turbine. Forced by incident waves from any direction, the water surface inside pushes the dry air above through a Wells turbine system to generate power. In the present contribution the volume flows, the wave forces, the added mass and damping coefficients and the mean second-order loads for various configurations of OWC devices are being presented. Finally, it is tested how differentiations in the device’s geometry (wall thickness, draught, shape of the chamber, turbine characterises) affect the inner pressure and as a result the absorbed power by the device.}, + language = {en}, + number = {1}, + urldate = {2026-05-29}, + booktitle = {{ASME} 2012 31st {International} {Conference} on {Ocean}, {Offshore} and {Arctic} {Engineering}}, + publisher = {ASME}, + author = {Mavrakos, Spyros A. and Konispoliatis, Dimitrios N.}, + month = jul, + year = {2012}, + pages = {577--586}, +} + +@article{khanal_fully_2025, + title = {Fully differentiable boundary element solver for hydrodynamic sensitivity analysis of wave-structure interactions}, + volume = {163}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118725002937}, + doi = {10.1016/j.apor.2025.104707}, + abstract = {Accurately predicting wave-structure interactions is critical for the effective design and analysis of marine structures. This is typically achieved using solvers that employ the boundary element method (BEM), which relies on linear potential flow theory. Precise estimation of the sensitivity of these interactions is equally important for system-level applications such as design optimization. Current BEM solvers are unable to provide these sensitivities as they do not support automatic differentiation (AD). To address these challenges, we have developed a fully differentiable BEM solver, MarineHydro.jl, for marine hydrodynamics, capable of calculating diffraction and radiation coefficients, and their derivatives with high accuracy. MarineHydro.jl implements both direct and indirect BEM formulations and incorporates two Green’s function expressions, offering a trade-off between accuracy and computational speed. Gradients are computed using reverse-mode AD within the Julia programming language. As a first case study, we analyze two identical floating spheres, evaluating gradients with respect to physical dimensions, inter-sphere distance, and wave frequency. Verification studies demonstrate excellent agreement between AD-computed gradients and finite-difference results. In a second case study, we leverage AD-computed gradients to optimize the mechanical power production of a pair of wave energy converters (WECs). This represents the first application of exact gradients obtained from BEM solver in WEC power optimization. Both studies offer valuable insights into hydrodynamic interactions and advance the understanding of layout optimization. Beyond power optimization, the differentiable BEM solver highlights the potential of AD for offshore design studies. It paves the way for broader applications in machine learning integration, optimal control, and uncertainty quantification of hydrodynamic coefficients, offering new directions for advancing wave-structure interaction analysis and system-level optimization.}, + urldate = {2026-03-20}, + journal = {Applied Ocean Research}, + author = {Khanal, Kapil and Ströfer, Carlos A. Michelén and Ancellin, Matthieu and Haji, Maha N.}, + month = oct, + year = {2025}, + keywords = {Adjoint, Automatic differentiation, Boundary element method, Differentiable solver, Exact sensitivities}, + pages = {104707}, +} + +@misc{best_openflash-code_2026, + title = {{OpenFLASH}}, + copyright = {MIT}, + url = {https://doi.org/10.5281/zenodo.17453418}, + doi = {https://doi.org/10.5281/zenodo.17453418}, + abstract = {Open source flexible library for analytical and semi-analytical hydrodynamics}, + urldate = {2026-05-20}, + publisher = {Zenodo}, + author = {Best, Hope and McCabe, Rebecca and Khanal, Kapil and Bimali, Yinghui and Lo, En and Jiang, Ruiyang and Fernandez, John and Treacy, Collin}, + collaborator = {Haji, Maha N.}, + month = apr, + year = {2026}, + keywords = {hydrodynamics, linear-potential-theory, matched-eigenfunction-expansion, wave-energy}, +} + +@inproceedings{seah_symmetric_2006, + title = {Symmetric {Resonant} {Modes} {Between} {Twin} {Bodies}}, + url = {http://iwwwfb.org/Abstracts/iwwwfb21/iwwwfb21_44.pdf}, + booktitle = {21st {International} {Workshop} on {Water} {Waves} and {Floating} {Bodies}}, + author = {Seah, Robert K. M. and Yeung, Ronald W.}, + month = apr, + year = {2006}, + pages = {4}, +} + +@incollection{hiptmair_survey_2016, + series = {Lecture {Notes} in {Computational} {Science} and {Engineering}}, + title = {A survey of {Trefftz} methods for the {Helmholtz} equation}, + volume = {1}, + url = {https://centaur.reading.ac.uk/42403/}, + language = {en}, + number = {1}, + urldate = {2026-05-17}, + booktitle = {Building bridges: connections and challenges in modern approaches to numerical {PDEs}}, + publisher = {Springer}, + author = {Hiptmair, Ralf and Moiola, Andrea and Perugia, Ilaria}, + year = {2016}, +} + +@article{pavlidou_novel_2022, + title = {A novel two-objective optimization computational framework for a two-body heaving wave energy converter}, + volume = {191}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S0960148122004670}, + doi = {10.1016/j.renene.2022.04.006}, + abstract = {The present research introduces a novel two-objective optimization computational framework, named H∞ optimization criterion-constrained Two-Objective Optimization Genetic Algorithm (H∞ − cTOOGA). Within this optimization framework, the objectives considered are: (i) the sprung mass isolation, and (ii) the wave energy extraction of a heaving buoy coupled with a sprung (overlying) mass. In such a two-body heaving wave energy converter (WEC), the satisfaction of both objectives is pursued by proper selection of the buoy geometry (i.e., radius r and draft Dr) and the characteristics of the power take-off (PTO). The interrelation among potential buoy geometries and PTO characteristics is performed on the basis of a critical condition. The critical condition refers to the formation of equal double peaks in the sprung mass acceleration response curve and is imposed as the sprung mass acceleration limit that is not allowed to be exceeded throughout the entire frequency range of interest. The two-objective optimization is realized with r, Dr and the tuning ratio δOPT being the decision variables. The value of δOPT is constrained by the value of the critical tuning ratio δcrit, that is, δOPT {\textless} δcrit. This ensures the minimization of the maximum sprung mass acceleration response. Then, the Pareto-optimal solutions result to optimal wave energy extraction.}, + urldate = {2026-05-17}, + journal = {Renewable Energy}, + author = {Pavlidou, Lamprini and Angelides, Demos C.}, + month = may, + year = {2022}, + keywords = {Fixed-points theory, Genetic algorithms, Sprung mass isolation, Two-body heaving wave energy converter, optimization criterion}, + pages = {510--534}, +} + +@article{kita_trefftz_1995, + title = {Trefftz method: an overview}, + volume = {24}, + issn = {0965-9978}, + shorttitle = {Trefftz method}, + url = {https://www.sciencedirect.com/science/article/pii/0965997895000674}, + doi = {10.1016/0965-9978(95)00067-4}, + abstract = {The aim of this paper is to review the existing formulations of ‘Trefftz method’. The Trefftz formulations are classified into the direct and the indirect formulations and then, compared with other boundary-type solution procedures, such as boundary element, singularity, charge simulation and surface charge methods, in order to establish the identity of the method.}, + number = {1}, + urldate = {2026-05-14}, + journal = {Advances in Engineering Software}, + author = {Kita, Eisuke and Kamiya, Norio}, + month = jan, + year = {1995}, + keywords = {Trefftz method, boundary element method, direct formulation, indirect formulation, singularity method}, + pages = {3--12}, +} + +@book{quarteroni_numerical_2006, + title = {Numerical {Mathematics}}, + isbn = {978-3-540-34658-6}, + abstract = {Numerical mathematics is the branch of mathematics that proposes, develops, analyzes and applies methods from scientific computing to several fields including analysis, linear algebra, geometry, approximation theory, functional equations, optimization and differential equations. Other disciplines, such as physics, the natural and biological sciences, engineering, and economics and the financial sciences frequently give rise to problems that need scientific computing for their solutions. As such, numerical mathematics is the crossroad of several disciplines of great relevance in modern applied sciences, and can become a crucial tool for their qualitative and quantitative analysis. One of the purposes of this book is to provide the mathematical foundations of numerical methods, to analyze their basic theoretical properties (stability, accuracy, computational complexity) and demonstrate their performances on examples and counterexamples which outline their pros and cons. This is done using the MATLAB software environment which is user-friendly and widely adopted. Within any specific class of problems, the most appropriate scientific computing algorithms are reviewed, their theoretical analyses are carried out and the expected results are verified on a MATLAB computer implementation. Every chapter is supplied with examples, exercises and applications of the discussed theory to the solution of real-life problems. This book is addressed to senior undergraduate and graduate students with particular focus on degree courses in Engineering, Mathematics, Physics and Computer Sciences. The attention which is paid to the applications and the related development of software makes it valuable also for researchers and users of scientific computing in a large variety of professional fields. In this second edition, the readability of pictures, tables and program headings have been improved. Several changes in the chapters on iterative methods and on polynomial approximation have also been added.}, + language = {en}, + publisher = {Springer Science \& Business Media}, + author = {Quarteroni, Alfio and Sacco, Riccardo and Saleri, Fausto}, + month = oct, + year = {2006}, + note = {Google-Books-ID: 31m4ahn\_KfkC}, + keywords = {Mathematics / Applied, Mathematics / General, Mathematics / Number Systems, Mathematics / Numerical Analysis}, +} + +@article{havelock_forces_1936, + title = {The forces on a circular cylinder submerged in a uniform stream}, + volume = {157}, + issn = {0080-4630}, + url = {https://doi.org/10.1098/rspa.1936.0212}, + doi = {10.1098/rspa.1936.0212}, + abstract = {1—Although many investigations have been made on the wave resistance of submerged bodies, no case has been solved completely in the sense of taking fully into account the condition of zero normal velocity at the surface of the body. The simplest case is that of the two-dimensional motion produced by a long circular cylinder, with its axis horizontal and perpendicular to the stream, submerged at a certain depth below the upper free surface. This problem was propounded many years ago by Kelvin, and it was solved later, as regards a first approximation, by Lamb; in that solution the cylinder was replaced by a doublet, and the effect of the disturbance at the surface of the cylinder was neglected. Applying the method of images, I examined a second approximation, and also by the same method obtained a first approximation for the vertical force on the cylinder. Although the problem is not in itself of practical importance, it seems of sufficient interest to obtain a more complete analytical solution, and this is given in the present paper. The solution contains an infinite series, whose coefficients are given by an infinite set of linear equations; expansions are given for the coefficients in terms of a certain parameter, and corresponding expressions obtained for both the wave resistance and the vertical force. Numerical calculations have been made from these for various velocities and for different ratios of the radius of the cylinder to the depth of its axis. These confirm the general impression that the first approximation is a good one over a considerable range. The effect of the complete expressions appears in an increase in the wave resistance at lower velocities and a slight decrease at high velocities; this may be described as due largely to a shifting of the maximum of resistance towards the lower velocities, an effect which might have been anticipated.}, + number = {892}, + urldate = {2026-05-11}, + journal = {Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences}, + author = {Havelock, Thomas Henry}, + month = dec, + year = {1936}, + pages = {526--534}, +} + +@article{michele_theory_2016, + title = {Theory of the synchronous motion of an array of floating flap gates oscillating wave surge converter}, + volume = {472}, + url = {https://royalsocietypublishing.org/doi/10.1098/rspa.2016.0174}, + doi = {10.1098/rspa.2016.0174}, + abstract = {We consider a finite array of floating flap gates oscillating wave surge converter (OWSC) in water of constant depth. The diffraction and radiation potentials are solved in terms of elliptical coordinates and Mathieu functions. Generated power and capture width ratio of a single gate excited by incoming waves are given in terms of the radiated wave amplitude in the far field. Similar to the case of axially symmetric absorbers, the maximum power extracted is shown to be directly proportional to the incident wave characteristics: energy flux, angle of incidence and wavelength. Accordingly, the capture width ratio is directly proportional to the wavelength, thus giving a design estimate of the maximum efficiency of the system. We then compare the array and the single gate in terms of energy production. For regular waves, we show that excitation of the out-of-phase natural modes of the array increases the power output, while in the case of random seas we show that the array and the single gate achieve the same efficiency.}, + number = {2192}, + urldate = {2023-10-22}, + journal = {Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences}, + publisher = {Royal Society}, + author = {Michele, Simone and Sammarco, Paolo and d’Errico, Michele}, + month = aug, + year = {2016}, + keywords = {floating flap gate energy, resonance, wave-body interaction}, + pages = {20160174}, +} + +@article{edwards_optimisation_2022, + title = {Optimisation of the geometry of axisymmetric point-absorber wave energy converters}, + volume = {933}, + issn = {0022-1120, 1469-7645}, + url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/optimisation-of-the-geometry-of-axisymmetric-pointabsorber-wave-energy-converters/EE6FAE12B0F2F9C4DC607C301406411F}, + doi = {10.1017/jfm.2021.993}, + abstract = {, +We propose a scientifically rigorous framework to find realistic optimal geometries of wave energy converters (WECs). For specificity, we assume WECs to be axisymmetric point absorbers in a monochromatic unidirectional incident wave, all within the context of linearised potential theory. We consider separately the problem of a WEC moving and extracting wave energy in heave only and then the more general case of motion and extraction in combined heave, surge and pitch. We describe the axisymmetric geometries using polynomial basis functions, allowing for discontinuities in slope. Our framework involves ensuring maximum power, specifying practical motion constraints and then minimising surface area (as a proxy for cost). The framework is robust and well-posed, and the optimisation produces feasible WEC geometries. Using the proposed framework, we develop a systematic computational and theoretical approach, and we obtain results and insights for the optimal WEC geometries. The optimisation process is sped up significantly by a new theoretical result to obtain roots of the heave resonance equation. For both the heave-only, and the heave-surge-pitch combined problems, we find that geometries which protrude outward below the waterline are generally optimal. These optimal geometries have up to 73 \% less surface area and 90 \% less volume than the optimal cylinders which extract the same power.}, + language = {en}, + urldate = {2023-10-07}, + journal = {Journal of Fluid Mechanics}, + publisher = {Cambridge University Press}, + author = {Edwards, Emma C. and Yue, Dick K.-P.}, + month = feb, + year = {2022}, + keywords = {surface gravity waves, wave–structure interactions}, + pages = {A1}, +} + +@article{garrett_bottomless_1970, + title = {Bottomless harbours}, + volume = {43}, + issn = {1469-7645, 0022-1120}, + url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/bottomless-harbours/37CE36DBABFD3726B04474AD6039E96F}, + doi = {10.1017/S0022112070002495}, + abstract = {Does the harbour of an artificial island need a bottom? The excitation of waves inside a partially immersed open circular cylinder is considered. An incident plane wave is expanded in Bessel functions and for each mode the problem is formulated in terms of the radial displacement on the cylindrical interface below the cylinder. The solution is obtainable either from an infinite set of simultaneous equations or from an integral equation. It is shown that the phase of the solution is independent of depth and resonances are found at wave-numbers close to those of free oscillations in a cylinder extending to the bottom. If the resonances of the cylinder are made sharper (by increasing the depth of immersion) the peak response of the harbour increases, but the response to a continuous spectrum remains approximately constant. Numerical results are obtained by minimizing the least squares error of a finite number N of simultaneous equations. Convergence is slow, but the error is roughly proportional to 1/N and this is exploited. The solution obtained from a variational formulation using the incoming wave as a trial function is found to give a very good approximation for small wave-numbers, but is increasingly inaccurate for large wave-numbers. Away from resonance the amplitude of the harbour oscillation is less than 10\% of the amplitude of the incoming wave provided the depth of the cylinder is greater than about ¼ wavelength, and it is argued that in practice at the resonant wave-number oscillations excited through the bottom of the harbour will leak out through the entrance before they can reach large amplitudes. In an appendix the excitation of harbour oscillations through the harbour entrance is discussed, and some results of Miles \& Munk (1961) on an alleged harbour paradox are re-interpreted.}, + language = {en}, + number = {3}, + urldate = {2023-10-06}, + journal = {Journal of Fluid Mechanics}, + publisher = {Cambridge University Press}, + author = {Garrett, C. J. R.}, + month = sep, + year = {1970}, + pages = {433--449}, +} + +@book{chatjigeorgiou_analytical_2018, + address = {Cambridge}, + title = {Analytical {Methods} in {Marine} {Hydrodynamics}}, + isbn = {978-1-107-17969-1}, + url = {https://www.cambridge.org/core/books/analytical-methods-in-marine-hydrodynamics/FA575866CF4838EE370460746C304B55}, + doi = {10.1017/9781316838983}, + abstract = {The value of analytical solutions relies on the rigorous formulation, and a strong mathematical background. This comprehensive volume unifies the most important geometries, which allow for the development of analytical solutions for hydrodynamic boundary value problems. It offers detailed explanations of the Laplance domain and numerical results associated with such problems, providing deep insight into the theory of hydrodynamics. Extended numerical calculations are provided and discussed, allowing the reader to use them as benchmarks for their own computations and making this an invaluable resource for specialists in in various disciplines, including hydrodynamics, acoustics, optics, electrostatics, and brain imaging.}, + urldate = {2023-09-28}, + publisher = {Cambridge University Press}, + author = {Chatjigeorgiou, Ioannis K.}, + year = {2018}, +} + +@article{garrett_wave_1971, + title = {Wave forces on a circular dock}, + volume = {46}, + issn = {1469-7645, 0022-1120}, + url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/wave-forces-on-a-circular-dock/467202A9E4D8385F6ECFABC253B6EC80}, + doi = {10.1017/S0022112071000430}, + abstract = {The scattering of surface gravity waves by a circular dock is considered in order to determine the horizontal and vertical forces and torque on the dock. An incident plane wave is expanded in Bessel functions, and for each mode the problem is formulated in terms of the potential on the cylindrical surface containing the dock and extending to the bottom. The solution is shown to have phase independent of depth and so may be obtained from an infinite set of real equations, which are solved numerically by Galerkin's method. The convergence of the solution is discussed, and some numerical results are presented.This problem has been investigated previously by Miles \& Gilbert (1968) by a different method, but their work contained errors.}, + language = {en}, + number = {1}, + urldate = {2023-09-28}, + journal = {Journal of Fluid Mechanics}, + publisher = {Cambridge University Press}, + author = {Garrett, C. J. R.}, + month = mar, + year = {1971}, + pages = {129--139}, +} + +@article{mavrakos_second-order_2009, + title = {Second-order hydrodynamic effects on an arrangement of two concentric truncated vertical cylinders}, + volume = {22}, + issn = {0951-8339}, + url = {https://www.sciencedirect.com/science/article/pii/S0951833908000580}, + doi = {10.1016/j.marstruc.2008.12.003}, + abstract = {The second-order diffraction problem by a piston-like arrangement that consists of two concentric surface piercing cylinders is considered. The developed matched axisymmetric eigenfunction expansion solution methodology in cylindrical co-ordinates is based on the semi-analytical formulation of the velocity potentials in the various fluid regions which are defined by the geometry of the two-body arrangement. The main difficulty associated with the specific configuration originates from the fact that the geometry defines two fluid regions that extend up to the free surface in which the inhomogeneous second-order free surface boundary condition has to be fulfilled. To this end the associated velocity potentials in these regions are decomposed into a number of components defining the so-called ‘free’ and ‘locked’ waves. The latter are calculated by solving the resulting Sturm–Liouville problems. The seek second-order velocity potential in the whole fluid domain is then derived by enforcing matching conditions for the radial velocities and the fluid pressures at the cylindrical boundaries of adjacent fluid domains. Numerical results concerning the second-order hydrodynamic loading and the wave run-up on the cylinders are given, whereas special attention is given at incident wave frequency regions where the first-order exciting wave forces attain maximum values due to the resonant fluid motions in the moonpool.}, + number = {3}, + urldate = {2025-02-03}, + journal = {Marine Structures}, + author = {Mavrakos, Spyros A. and Chatjigeorgiou, Ioannis K.}, + month = jul, + year = {2009}, + keywords = {Concentric cylinders, Exciting wave forces, Moonpool, Second-order theory}, + pages = {545--575}, +} + +@article{mavrakos_hydrodynamic_1997, + title = {Hydrodynamic characteristics of floating toroidal bodies}, + volume = {24}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801896000200}, + doi = {10.1016/S0029-8018(96)00020-0}, + abstract = {The paper deals with the linearized exciting wave forces and hydrodynamic coefficients of a toroidal body floating in water of finite depth. For the solution of the diffraction and the radiation problems the flow field around the body is subdivided into ring-shaped fluid regions, in each of which axisymmetric eigenfunction expansions for the velocity potential is made. By implementing Galerkin's method the various potential solutions are matched and numerical results concerning the exciting wave forces and the hydrodynamic coefficients in all modes of motion are obtained.}, + number = {4}, + urldate = {2023-10-04}, + journal = {Ocean Engineering}, + author = {Mavrakos, S. A.}, + month = apr, + year = {1997}, + pages = {381--399}, +} + +@article{zhang_hydrodynamic_2016, + title = {Hydrodynamic analysis and shape optimization for vertical axisymmetric wave energy converters}, + volume = {30}, + issn = {2191-8945}, + url = {https://doi.org/10.1007/s13344-016-0062-2}, + doi = {10.1007/s13344-016-0062-2}, + abstract = {The absorber is known to be vertical axisymmetric for a single-point wave energy converter (WEC). The shape of the wetted surface usually has a great influence on the absorber’s hydrodynamic characteristics which are closely linked with the wave power conversion ability. For complex wetted surface, the hydrodynamic coefficients have been predicted traditionally by hydrodynamic software based on the BEM. However, for a systematic study of various parameters and geometries, they are too multifarious to generate so many models and data grids. This paper examines a semi-analytical method of decomposing the complex axisymmetric boundary into several ring-shaped and stepped surfaces based on the boundary discretization method (BDM) which overcomes the previous difficulties. In such case, by using the linear wave theory based on eigenfunction expansion matching method, the expressions of velocity potential in each domain, the added mass, radiation damping and wave excitation forces of the oscillating absorbers are obtained. The good astringency of the hydrodynamic coefficients and wave forces are obtained for various geometries when the discrete number reaches a certain value. The captured wave power for a same given draught and displacement for various geometries are calculated and compared. Numerical results show that the geometrical shape has great effect on the wave conversion performance of the absorber. For absorbers with the same outer radius and draught or displacement, the cylindrical type shows fantastic wave energy conversion ability at some given frequencies, while in the random sea wave, the parabolic and conical ones have better stabilization and applicability in wave power conversion.}, + language = {en}, + number = {6}, + urldate = {2023-12-12}, + journal = {China Ocean Engineering}, + author = {Zhang, Wan-chao and Liu, Heng-xu and Zhang, Liang and Zhang, Xue-wei}, + month = dec, + year = {2016}, + keywords = {astringency, complex wetted surface, geometrical shape, semi-analytical method, vertical axisymmetric}, + pages = {954--966}, +} + +@article{kokkinowrachos_behaviour_1986, + title = {Behaviour of vertical bodies of revolution in waves}, + volume = {13}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/0029801886900375}, + doi = {10.1016/0029-8018(86)90037-5}, + abstract = {This paper presents the so-called macroelement method by means of which the complete linear hydromechanic analysis of arbitrarily shaped bodies of revolution with vertical axis can be carried out. The development of a special method for this wide class of structures which are common in offshore designs is of great advantage for the engineering work. The method described here is based on the discretization of the flow field around the structure by means of ring-shaped macroelements, the velocity potential in each element being approximated with Fourier series. For the matching of the solution between neighbouring elements Galerkin's method is applied. Both the diffraction and the radiation problems are solved.}, + number = {6}, + urldate = {2023-12-12}, + journal = {Ocean Engineering}, + author = {Kokkinowrachos, Konstantin and Mavrakos, Spyridon and Asorakos, Sampson}, + month = jan, + year = {1986}, + pages = {505--538}, +} + +@article{liu_analysis_2014, + title = {Analysis of orthogonal wave reflection by a caisson with open front chamber filled with sloping rubble mound}, + volume = {91}, + issn = {0378-3839}, + url = {https://www.sciencedirect.com/science/article/pii/S0378383914000994}, + doi = {10.1016/j.coastaleng.2014.05.002}, + abstract = {A new combined caisson, including an open window on the front wall and an internal rubble mound with a slope, has been proposed and used in Italy. This study presents a semi-analytical solution to estimate the wave absorbing performance of the new combined caisson with regard to orthogonal wave attack. The internal slope of the rubble mound is assumed to be a series of horizontal steps. Then the matched eigenfunction expansions are used to develop the semi-analytical solution. The square-root singularity of fluid velocity at the upper tip of the front submerged wall is incorporated into the solution to enhance the convergence of calculated results. The new semi-analytical solution is confirmed by an independently developed multi-domain boundary element method solution. Also the predictions of the semi-analytical solution agree reasonably well with experimental data. Based on both the calculations and the experimental data, some useful results are presented for practical engineering.}, + urldate = {2023-12-09}, + journal = {Coastal Engineering}, + author = {Liu, Yong and Faraci, Carla}, + month = sep, + year = {2014}, + keywords = {Combined caisson, Reflection coefficient, Rubble mound, Semi-analytical solution, Slope}, + pages = {151--163}, +} + +@article{yeung_added_1981, + title = {Added mass and damping of a vertical cylinder in finite-depth waters}, + volume = {3}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/0141118781901012}, + doi = {10.1016/0141-1187(81)90101-2}, + abstract = {A comprehensive set of theoretical added masses and wave damping data for a floating circular cylinder in finite-depth water is presented. The hydrodynamic problem is solved by matching eigen functions of the interior and exterior problems. The resulting infinite system is solved directly and found to have excellent truncation characteristics. Added mass and damping are given for heave, sway, and roll motion, as well as coupling coefficients for sway and roll. It is shown that the heave added mass is logarithmic singular and the damping approaches a constant in the low-frequency limit. Transition of the behaviour in finite-depth water to deep water is also discussed.}, + number = {3}, + urldate = {2023-09-28}, + journal = {Applied Ocean Research}, + author = {Yeung, Ronald W.}, + month = jul, + year = {1981}, + pages = {119--133}, +} + +@article{cong_novel_2020, + title = {A novel solution to the second-order wave radiation force on an oscillating truncated cylinder based on the application of control surfaces}, + volume = {204}, + issn = {0029-8018}, + url = {https://www.sciencedirect.com/science/article/pii/S0029801820303243}, + doi = {10.1016/j.oceaneng.2020.107278}, + abstract = {A truncated cylinder in harmonic oscillation with a small amplitude at a finite water depth is considered. A perturbation procedure is applied to analyse the wave radiation problem up to the second order in frequency domain. The technique of control surfaces is used to overcome the difficulty associated with the singularity of the fluid velocity at the corner, and a novel solution to the double-frequency wave radiation force on a surging/heaving truncated cylinder is developed. The proposed solution achieves an obvious advantage in that the calculation of the singular terms owing to the singularity of the fluid velocity at a sharp corner is avoided. After examining the convergence and validity of the proposed model, numerical studies are conducted. Numerical results reveal that the force component associated with the body-surface forcing term predominates among the various force components of the total double-frequency wave radiation force. In addition, the force component from the quadratic products of the first-order quantities is in general out-of-phase with the one associated with the body-surface forcing term.}, + urldate = {2025-02-03}, + journal = {Ocean Engineering}, + author = {Cong, Peiwen and Teng, Bin and Chen, Lifen and Gou, Ying}, + month = may, + year = {2020}, + keywords = {Heave motion, Second-order wave radiation, Surge motion, Truncated cylinder}, + pages = {107278}, +} + +@article{mciver_added_1991, + title = {The added mass of bodies heaving at low frequency in water of finite depth}, + volume = {13}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118705800367}, + doi = {10.1016/S0141-1187(05)80036-7}, + abstract = {Numerical results for the added mass of a heaving two-dimensional body in finite-depth water show that the zero-frequency limit is different for the cases of a surface-piercing body and a bottom-mounted body of the same wetted shape. At first sight, this may appear surprising as the limiting boundary-value problems for the potentials involved are identical. However the solutions are indeterminate to within an additive constant and it is the value of this constant that accounts for the difference. In the present work, the method of matched asymptotic expansions is used to show that the added mass limits for the two cases differ by an amount that depends very simply on the geometry of the bodies.}, + number = {1}, + urldate = {2025-04-27}, + journal = {Applied Ocean Research}, + author = {McIver, P. and Linton, C. M.}, + month = feb, + year = {1991}, + pages = {12--17}, +} + +@article{olaya_hydrodynamic_2015, + title = {Hydrodynamic {Coefficient} {Computation} for a {Partially} {Submerged} {Wave} {Energy} {Converter}}, + volume = {40}, + issn = {1558-1691}, + url = {https://ieeexplore.ieee.org/document/6895317}, + doi = {10.1109/JOE.2014.2344951}, + abstract = {This paper deals with the hydrodynamic parameter computation of a wave energy converter (WEC) that consists of a cylindrical buoy sliding along a partially submerged platform made up of a plate and a column. The computed parameters are especially needed for the development of a simple hydrodynamic time-dependant model, based on the Cummins' formulation. This model is intended for WEC control purposes. A semi-analytical approach is proposed for the computation of the hydrodynamic coefficients and the excitation forces. The boundary value problem is solved by using variable separation and matched eigenfunction expansion methods. Analytical expressions for the velocity potential are then obtained for each subdomain. The hydrodynamic coefficients and the excitation force can then be computed by using these expressions. Numerical results are given for different buoy, column, and plate radii and clearly the bearing surface of the plate has a significant influence on the wave excitation force applied to the submerged platform.}, + number = {3}, + urldate = {2025-01-10}, + journal = {IEEE Journal of Oceanic Engineering}, + author = {Olaya, Sébastien and Bourgeot, Jean-Matthieu and Benbouzid, Mohamed El Hachemi}, + month = jul, + year = {2015}, + note = {Conference Name: IEEE Journal of Oceanic Engineering}, + keywords = {Boundary conditions, Eigenfunction expansion, Eigenvalues and eigenfunctions, Hydrodynamics, Scattering, Sea surface, Surface waves, heaving mode, potential theory, scattering and radiation problem, wave energy converter (WEC), wave loads}, + pages = {522--535}, +} + +@article{zhang_performance_2024, + title = {Performance assessment of a {Triple} {Coaxial}-{Cylinder} {Wave}-{Energy} {Converter} ({TCWEC})}, + volume = {237}, + issn = {0960-1481}, + url = {https://www.sciencedirect.com/science/article/pii/S096014812401615X}, + doi = {10.1016/j.renene.2024.121547}, + abstract = {We propose a novel Triple Coaxial-cylinder Wave-Energy Converter (TCWEC) system, as an evolution of the commonly deployed dual-coaxial cylinder WEC (DCWEC). TCWEC consists of one inner cylinder and two concentric outer cylinders, characterized by two coupled resonant frequencies, improving wave power absorption. A semi-analytical model, based on potential flow theory and matched eigenfunction expansions, is developed to analyze the 3-Degrees of Freedom (DOF) system. The viscous drag coefficients are determined by Computational Fluid Dynamics (CFD) simulations and employed as equivalent linear damping. Analysis of impact of the viscous flow-separation factor fvis on the capture width indicates that the higher energy-absorption capability of TCWEC is not merely attributed to a smaller fvis value, but rather a planned split of the outer cylinder in DCWEC design into two cylinders in TCWEC, so as to produce an effectively broader resonance property. Under identical sea conditions, it is found that, compared to DCWEC, the optimal capture width of TCWEC is increased by as much as 77\% in regular waves. In irregular waves, the optimal capture width is increased up to 40\% across the entire frequency range. These findings suggest that the energy absorption efficiency of TCWEC is promising and its potential for real-world applications.}, + urldate = {2024-12-21}, + journal = {Renewable Energy}, + author = {Zhang, Xinshu and Guo, Xinhai and Zhi, Pengfei and Yeung, Ronald W.}, + month = dec, + year = {2024}, + keywords = {Coaxial-cylinder WEC, Eigenfunction solution, Optimal capture width, Permanent magnet linear generator, Wave-Energy Converter}, + pages = {121547}, +} + +@article{renzi_hydrodynamics_2013, + title = {Hydrodynamics of the oscillating wave surge converter in the open ocean}, + volume = {41}, + issn = {0997-7546}, + url = {https://www.sciencedirect.com/science/article/pii/S0997754613000174}, + doi = {10.1016/j.euromechflu.2013.01.007}, + abstract = {A potential flow model is derived for a large flap-type oscillating wave energy converter in the open ocean. Application of Green’s integral theorem in the fluid domain yields a hypersingular integral equation for the jump in potential across the flap. The solution is found via a series expansion in terms of the Chebyshev polynomials of the second kind and even order. Several relationships are then derived between the hydrodynamic parameters of the system. Comparison is made between the behaviour of the converter in the open ocean and in a channel. The degree of accuracy of wave tank experiments aiming at reproducing the performance of the device in the open ocean is quantified. A parametric analysis of the system is then undertaken. In particular, it is shown that increasing the flap width has the beneficial effect of broadening the bandwidth of the capture factor curve. This phenomenon can be exploited in random seas to achieve high levels of efficiency.}, + urldate = {2024-08-12}, + journal = {European Journal of Mechanics - B/Fluids}, + author = {Renzi, E. and Dias, F.}, + month = sep, + year = {2013}, + keywords = {Oscillating wave surge converters, Wave energy, Wave–structure interaction}, + pages = {1--10}, +} + +@article{mavrakos_hydrodynamic_2004, + title = {Hydrodynamic coefficients in heave of two concentric surface-piercing truncated circular cylinders}, + volume = {26}, + issn = {0141-1187}, + url = {https://www.sciencedirect.com/science/article/pii/S0141118705000076}, + doi = {10.1016/j.apor.2005.03.002}, + abstract = {The paper aims at presenting a solution of the linearized hydrodynamic radiation problem for two concentric, free surface-piercing truncated vertical cylinders that are forced to independently oscillate in heave in finite depth waters. For the solution of the problem, the flow field around the two bodies is subdivided into ring-shaped fluid regions, in each of which axisymmetric eigenfunction expansions for the velocity potential are made. By implementing Galerkin's method, the various potential solutions are matched and extensive numerical results concerning the hydrodynamic and interaction coefficients in heave for various geometrical configurations presented and discussed.}, + number = {3}, + urldate = {2023-12-13}, + journal = {Applied Ocean Research}, + author = {Mavrakos, Spyros A.}, + month = may, + year = {2004}, + keywords = {Concentric cylinders, Hydrodynamic parameters, Wave energy devices}, + pages = {84--97}, +} diff --git a/pubs/shared/els-cas/LICENSE b/pubs/shared/els-cas/LICENSE new file mode 100644 index 000000000..842cf85e3 --- /dev/null +++ b/pubs/shared/els-cas/LICENSE @@ -0,0 +1,415 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3c 2008-05-04 + +Copyright 1999 2002-2008 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is +unrelated to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2008 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % https://www.latex-project.org/lppl.txt + % and version 1.3c or later is part of all distributions of LaTeX + % version 2008 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + +Derived Works That Are Not Replacements +--------------------------------------- + +Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. diff --git a/pubs/shared/els-cas/cas-common.sty b/pubs/shared/els-cas/cas-common.sty new file mode 100644 index 000000000..155ebc61b --- /dev/null +++ b/pubs/shared/els-cas/cas-common.sty @@ -0,0 +1,2641 @@ +%% +%% This is file `cas-common.sty', +%% +%% This file is part of the 'CAS Bundle'. +%% ...................................... +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.3c of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'CAS Bundle' is +%% given in the file `manifest.txt'. +%% + +% $Id: cas-common.sty 94 2024-05-04 09:27:09Z rishi $ + + \def\RCSfile{cas-common}% + \def\RCSversion{2.4}% + \def\RCSdate{2024/05/04}% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\pretolerance=-1 +\tolerance=1000 +\hyphenpenalty=1000 +\exhyphenpenalty=100 +\brokenpenalty=10000 +\vfuzz=\z@ +\hfuzz=.2pt +\doublehyphendemerits=100 +\emergencystretch=2pt +\frenchspacing +\clubpenalty=10000 +\widowpenalty=10000 + +\ExplSyntaxOn +\makeatletter +% +% Front matter macros +% +% The front matter macros are derived/adopted from stm-prelims.sty +% written by CV Radhakrishnan and copyrighted by him. +% Usage of those macros and methods are gratefully acknowledged. +% + +\tl_set:Nn \l_stm_title_color_tl { black } + +\keys_define:nn { stm / title } + { + mode .choice: , + mode / title .meta:n = + { + type = title , + size = \LARGE , + shape = \upshape , + weight = \mdseries , + color = black , + before = 0pt , + after = 0pt , + align = \raggedright , + } , + mode / alt .meta:n = + { + type = alt , + size = \large , + shape = \upshape , + weight = \mdseries , + color = black , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / sub .meta:n = + { + type = sub , + size = \large , + shape = \upshape , + weight = \mdseries , + color = black!80 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / trans .meta:n = + { + type = trans , + size = \normalsize , + shape = \upshape , + weight = \mdseries , + color = black!60 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / transsub .meta:n = + { + type = transsub , + size = \small , + shape = \upshape , + weight = \mdseries , + color = black!50 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / ascii .meta:n = + { + type = ascii , + size = \small\ttfamily , + shape = \upshape , + weight = \mdseries , + color = black , + before = 12pt , + after = 0pt , + align = \raggedright , + } , + type .tl_set:N = \l_stm_title_type_tl , + size .tl_set:N = \l_stm_title_size_tl , + shape .tl_set:N = \l_stm_title_shape_tl , + weight .tl_set:N = \l_stm_title_weight_tl , + before .dim_set:N = \l_stm_title_before_dim , + after .dim_set:N = \l_stm_title_after_dim , + align .tl_set:N = \l_stm_title_align_tl , + color .tl_set:N = \l_stm_title_color_tl , + } + +\NewDocumentCommand \processTmarks { } + { + \cs_if_free:cTF { mark@title } + { \ignorespaces } + { \tl_set:Nx \l_tmpa_tl { \cs:w mark@title\cs_end: } + \clist_map_inline:cn { mark@title } + { + \str_case:nn { ##1 } + { + { 1 } { $^\star$ } + { 2 } { $^{,\star\star}$ } + { 3 } { $^{,\star\star\star}$ } + } + } + } + } + +\RenewDocumentCommand \title { O{} m } + { + \pdfstringdef \@pdftitle { #2 } + \csgdef { casprelimstitle } { #2 } + \keys_set:nn { stm / title } { #1 } + \seq_gput_right:Nn \g_stm_title_seq + { + \keys_set:nn { stm / title } { #1 } +% \msg_term:n { MODE:~\l_stm_title_mode_tl ~ ~ [#2]} + \par \vskip \l_stm_title_before_dim + \l_stm_title_align_tl + \l_stm_title_size_tl + \l_stm_title_shape_tl + \l_stm_title_weight_tl + \color { \l_stm_title_color_tl } + \noindent \unskip \ignorespaces #2 + \tl_set:Nn \l_tmpa_tl { title } + \tl_if_eq:NNTF \l_stm_title_type_tl \l_tmpa_tl + { \processTmarks } { } + \par \vskip \l_stm_title_after_dim + \normalcolor \normalsize \normalfont + } + } + +% \gappto\usestmtitle{#1}% + +\renewcommand \@title { \seq_use:Nn \g_stm_title_seq { } } + +\NewDocumentCommand \wrAun { m } % unexpanded write to aux + { \iow_now:Nn \@auxout { #1 } } +\NewDocumentCommand \wrAux { m } % expanded write to aux + { \iow_now:Nx \@auxout { #1 } } + +\NewDocumentCommand \wrShipAux { m } % expanded write at shipout + { \iow_shipout:Nx \@auxout { #1 } } +\NewDocumentCommand \wrShipAun { m } % unexpanded write at shipout + { \iow_shipout:Nn \@auxout { #1 } } + +\NewDocumentCommand \stmLabel { m } + { + \@bsphack \wrAux + { \token_to_str:N \NewLabel { #1 } + { \@currentlabel } + } \@esphack + } +\NewDocumentCommand \NewLabel { m m } + { + \cs_if_free:cTF { X@#1: } + { \cs_new:cx { X@#1: } { #2 } } + { \cs_set:cx { X@#1: } { #2 } } + } +\NewDocumentCommand \stmRef { m } + { + \cs_if_free:cTF { X@#1: } + { 0 } {\use:c {X@#1:} } + } + +\seq_clear_new:N \l_fnmk_seq +\NewDocumentCommand \processFnRef { m } + { + \seq_clear:N \l_fnmk_seq + \clist_map_inline:nn { #1 } + { \seq_put_right:Nx \l_fnmk_seq + {\cs_if_free:cTF { X@##1: } {0} { \use:c {X@##1:} }} + } + } + +\NewDocumentCommand \fnmark { O{} } + { \writemarks { fnau\theau@ } { #1 } } + + +\NewDocumentCommand \fnref { m } + { + \processFnRef { #1 } + \wrAux { \token_to_str:N \csxdef {mark@fnau\theau@} + { \seq_use:Nn \l_fnmk_seq { , } } } + } + +\NewDocumentCommand \corref { m } + { + \str_set:Nx \l_tmpa_str { \stmRef { #1 } } + \wrAux { \token_to_str:N \csxdef { mark@corau\theau@ } + { + \cs_if_free:cTF { X@#1: } {0} { \use:c {X@#1:} } + } + } + } + +\NewDocumentCommand \cormark { O{} } + { + \@cormarktrue + \writemarks {corau\theau@} { #1 } + } + +\seq_new:N \l_stm_au_seq +\seq_new:N \l_stm_au_sn_seq +\seq_new:N \l_stm_au_fn_seq +\seq_new:N \l_stm_au_ead_seq +\seq_new:N \l_stm_au_orcid_seq +\seq_new:N \l_stm_au_contrib_role_seq + +\NewDocumentCommand \parsename { m } + { \seq_set_split:Nnn \l_stm_au_seq { ~ } {#1} + \seq_pop_right:NN \l_stm_au_seq \l_stm_au_sn_seq + \seq_map_inline:Nn \l_stm_au_seq + { \seq_put_right:Nx \l_stm_au_ead_seq + { \tl_head:n { #1 }. } } + } + +\NewDocumentCommand \invparsename { m } + { \seq_set_split:Nnn \l_stm_au_seq { ~ } {#1} + \seq_pop_left:NN \l_stm_au_seq \l_stm_au_sn_seq + \seq_map_inline:Nn \l_stm_au_seq + { \seq_put_right:Nx \l_stm_au_ead_seq + { \tl_head:n { #1 }. } } + } + + +\NewDocumentCommand \surname {} { \l_stm_au_sn_seq } +\NewDocumentCommand \firstname {} + { \seq_use:Nn \l_stm_au_seq { ~ } } +\NewDocumentCommand \eadauthor {} + { \seq_map_inline:Nn \l_stm_au_seq + { \regex_match:nnTF { \. } { ##1 } + { ##1 } + { \tl_head:n {##1}. } + } + {~} \l_stm_au_sn_seq + } +\cs_set_eq:NN \shortauthor \eadauthor + +\seq_clear_new:N \l_affmk_seq +\NewDocumentCommand \processAffRef { m } + { + \seq_clear:N \l_affmk_seq + \clist_map_inline:nn { #1 } + { + \seq_put_right:Nx \l_affmk_seq + {\stmRef{##1}} + } + } + +\NewDocumentCommand \processAffNum { m } + { + \seq_clear:N \l_affmk_seq + \clist_map_inline:nn { #1 } + { + \seq_put_right:Nn \l_affmk_seq + { \int_to_alph:n {##1} } + } + } + +\NewDocumentCommand \listAff { } + { + \tl_if_blank:nTF { \l_affmk_seq } + { \tl_gset:Nn \g_stm_comma_tl { 0 } } + { + \seq_use:Nn \l_affmk_seq { , } + \tex_def:D \sep{\unskip,} + } + } + +\NewDocumentCommand \ead { O{} m } + { + \tl_if_empty:nTF { #1 } { \@ead {#2} } { \@uad[#1]{#2} } + } + +\NewDocumentCommand \eadsep { } { } + +\int_new:N \g_ead_int +\seq_new:N \g_stm_ead_seq +\int_new:N \g_uad_int +\seq_new:N \g_stm_uad_seq +\seq_new:N \g_stm_orcid_seq +\seq_new:N \g_stm_contrib_role_seq + +\newcommand\theead { \int_use:N \g_ead_int } + +\NewDocumentCommand \@uad { O{} m } + { + \group_begin: + \wrAux { \token_to_str:N \urlauthor + { \exp_not:n {#2}}{\the\@eadauthor}}% + \group_end: + } + +\NewDocumentCommand \urlauthor { m m } + { + \int_gincr:N \g_uad_int + \seq_gput_right:Nn \g_stm_uad_seq + { + { %\ttfamily \tl_to_str:n + \url{ #1 } } + \parsename { #2 } + \space(\eadauthor) + } + } +\NewDocumentCommand \@stmuads { } + { \seq_use:Nn \g_stm_uad_seq { ;~ } } + +\NewDocumentCommand \@ead { m } + { + \group_begin: + \wrAux { \token_to_str:N \emailauthor + { \exp_not:n { #1 }}{ \the\@eadauthor }} + \group_end: + } + +\newtoks \@eadauthor +\newbool{@cormark} + +\NewDocumentCommand \emailauthor { m m } + { + \int_gincr:N \g_ead_int + \seq_gput_right:Nn \g_stm_ead_seq + { + { \ttfamily \tl_to_str:n { #1 } } + \parsename { #2 } + \space(\eadauthor)% + } + } + +\NewDocumentCommand \@elseads { } + { \seq_use:Nn \g_stm_ead_seq { ;~ } } + + +\NewDocumentCommand \printemails { } +{ + \group_begin: + \int_compare:nNnTF { \int_use:N \g_ead_int } > { 0 } + { + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \bool_if:NTF \g_stm_nologo_bool + { + \int_compare:nTF { \g_ead_int = 1 } + { \textit{Email~address:\c_space_token} } + { \textit{Email~addresses:\c_space_token} } + } + { \includegraphics[height=8pt]{thumbnails/cas-email.jpeg}\c_space_token } + \seq_use:Nn \g_stm_ead_seq { ;~ } + } + } + { } + \group_end: +} + +\NewDocumentCommand \printurls { } +{ + \group_begin: + \int_compare:nTF { \g_uad_int > 0 } + { + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \bool_if:NTF \g_stm_nologo_bool + { \textit{URL:\c_space_token} } + { \includegraphics[height=8pt]{thumbnails/cas-url.jpeg}\c_space_token } + \seq_use:Nn \g_stm_uad_seq { ;~ } + } + } + { } + \group_end: +} + +% +% orcid +% +\NewDocumentCommand \orcidauthor { m m } + { + \seq_gput_right:Nn \g_stm_orcid_seq + { + { \ttfamily \tl_to_str:n { #1 } } + \parsename{#2} + \space(\eadauthor) + } + } + +\NewDocumentCommand \printorcid { } +{ + \group_begin: + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \textsc{orcid}(s):\c_space_token + \seq_use:Nn \g_stm_orcid_seq { ;~ } + } + \group_end: +} + +% +% Contrib Role +% + +\seq_gclear_new:N \g_stm_credits_seq + +\NewDocumentCommand \ContribRole { m } +{ + \wrAux { \token_to_str:N \creditauthor + { #1 } { \the\@eadauthor } } +} + +\NewDocumentCommand \creditauthor { m m } +{ + \seq_gput_right:Nx \g_stm_credits_seq + { { \exp_not:N\bfseries #2 :}\space #1 } +} + +\cs_set_eq:NN \credit \ContribRole + +\NewDocumentCommand \printcredits { } +{ + \seq_if_empty:NF \g_stm_credits_seq + { + \section*{CRediT ~authorship ~contribution ~statement} + \ifnum\theblind>0\relax + \vspace*{10mm} + \else + \seq_use:Nn \g_stm_credits_seq { .~ }. + \fi + } +} + +\NewDocumentCommand \writemarks { m m } + { \wrAux { \token_to_str:N \csgdef{mark@#1}{#2} } } + +\seq_new:N \g_stm_title_seq + +\NewDocumentCommand \tnotemark { O{} } + { \writemarks { title } { #1 } } + +\NewDocumentCommand \@tnoteref { m } + { \int_set:Nn \l_tmpa_int { 0 } + \clist_map_inline:nn { #1 } + { +% \iow_term:n { ##1 .. [\cs:w X@##1:\cs_end:] } + \cs_if_free:cTF { X@##1: } + { \csdef{X@##1:}{0} } + { + \tl_set:Nx \l_tmpa_tl { \cs:w X@##1:\cs_end: } + \int_case:nn { \l_tmpa_tl } + { + { 1 } { $^\star$ } + { 2 } { $^{,\star\star}$ } + { 3 } { $^{,\star\star\star}$ } + } + } + } + } + +\seq_new:N \g_stm_tnote_seq +\int_new:N \g_stm_tnote_int + +\NewDocumentCommand \tnotetext { O{} m } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { +% \iow_term:n { [TNOTE:~alpha] }% + \seq_gput_right:Nn \g_stm_tnote_seq + { \int_incr:N \g_stm_tnote_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_tnote_int } + \stmLabel { #1 } + \renewcommand\thefootnote + { \int_case:nn { \g_stm_tnote_int } + { + { 1 } { $^\star$ } + { 2 } { $^{\star\star}$ } + { 3 } { $^{\star\star\star}$ } + } + } + \footnotetext { #2 } + } + } + { +% \iow_term:n { [TNOTE:~Number] } + \seq_gput_right:Nn \g_stm_tnote_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \renewcommand\thefootnote + { \int_case:nn { \l_tmpa_int } + { + { 1 } { $^\star$ } + { 2 } { $^{\star\star}$ } + { 3 } { $^{\star\star\star}$ } + } + } + \footnotetext { #2 } + } + } + } + +\newcommand \printtnotes { \seq_use:Nn \g_stm_tnote_seq { \par } } + +\seq_new:N \g_stm_nonumnote_seq + +\NewDocumentCommand \nonumnote { m } +{ + \group_begin: + \seq_gput_right:Nn \g_stm_nonumnote_seq + { + \tex_def:D \thefootnote { } + \footnotetext{#1} + } + \group_end: +} + +\newcommand \printnonumnotes { \seq_use:Nn \g_stm_nonumnote_seq { \par } } + +\seq_new:N \g_stm_fnote_seq +\int_new:N \g_stm_fnote_int + +\NewDocumentCommand \fntext { O{} m } +{ + \tl_if_head_eq_catcode:nNTF { #1 } a + { +% \iow_term:n { [FN:~alpha] }% + \seq_gput_right:Nn \g_stm_fnote_seq + { \int_incr:N \g_stm_fnote_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_fnote_int } + \stmLabel { #1 } + \tex_def:D \thefootnote { \int_use:N \g_stm_fnote_int } + \footnotetext { #2 } + } + } + { +% \iow_term:n { [FN:~Number] } + \seq_gput_right:Nn \g_stm_fnote_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \tex_def:D \thefootnote { \int_use:N \l_tmpa_int } + \footnotetext { #2 } + } + } +} + +\newcommand \printfnotes { \seq_use:Nn \g_stm_fnote_seq { \par } } + +\seq_new:N \g_stm_cor_seq +\int_new:N \g_stm_cor_int + +\NewDocumentCommand \cortext { O{} m } +{ + \tl_if_head_eq_catcode:nNTF { #1 } a + { +% \iow_term:n { [COR:~alpha] }% + \seq_gput_right:Nn \g_stm_cor_seq + { \int_incr:N \g_stm_cor_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_cor_int } + \stmLabel { #1 } + \tex_def:D \thefootnote + { \int_case:nn { \g_stm_cor_int } + { + { 1 } { $\ast$ } + { 2 } { $\ast\!\ast$ } + { 3 } { $\ast\!\ast\!\ast$ } + } + } + \footnotetext { #2 } + } + } + { +% \iow_term:n { [COR:~Number] } + \seq_gput_right:Nn \g_stm_cor_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \tex_def:D \thefootnote + { \int_case:nn { \l_tmpa_int } + { + { 1 } { $\ast$ } + { 2 } { $\ast\!\ast$ } + { 3 } { $\ast\!\ast\!\ast$ } + } + } + \footnotetext { #2 } + } + } +} + +\newcommand \printcornotes { \seq_use:Nn \g_stm_cor_seq { \par } } + +\NewDocumentCommand \process@marks { } + { + \cs_if_free:cTF { mark@corau\theauthor } + { \ignorespaces } + { \str_set:Nx \l_tmpa_str { \use:c{ mark@corau\theauthor } } + \int_case:nn { \l_tmpa_str } + { + { 1 } { \sep$\ast$ } + { 2 } { \sep$\ast\ast$ } + { 3 } { \sep$\ast\!\ast\!\ast$ } + } + \tex_def:D \sep{\unskip,} + } + \cs_if_free:cTF { mark@fnau\theauthor } + { \ignorespaces } + { \sep\use:c { mark@fnau\theauthor } + \tex_def:D \sep{\unskip,} + } + } + + +% +% Author macros +% +\seq_new:c { g_stm_au0_seq } +\seq_new:c { g_stm_clau0_seq } +\int_new:N \g_stm_au_int +\int_new:N \g_stm_aau_int + +\NewDocumentCommand \ResetMarks { } + { + \keys_set:nn { stm / author } + { + auid = {} , + bioid = {} , + alt = {} , + style = { normal } , + prefix = {} , + suffix = {} , + degree = {} , + role = {} , + orcid = {} , + collab = { false } , + type = { author } , + anon = { false } , + deceased = { false } , + twitter = {} , + facebook = {} , + linkedin = {} , + plus = {} , + gplus = {} , + } + \tex_gdef:D \sep{} + \tex_gdef:D \stm@corref{} + \tex_gdef:D \@fnmark {} + } + + +\int_new:N \l_autype_int +\keys_define:nn { stm / author } + { + auid .tl_set:N = \l_stm_au_id_tl , + bioid .tl_set:N = \l_stm_au_bioid_tl , + alt .tl_set:N = \l_stm_au_alt_tl , + style .tl_set:N = \l_stm_au_style_tl , + prefix .tl_set:N = \l_stm_au_prefix_tl , + suffix .tl_set:N = \l_stm_au_suffix_tl , + degree .tl_set:N = \l_stm_au_degree_tl , + role .tl_set:N = \l_stm_au_role_tl , + orcid .tl_set:N = \l_stm_au_orcid_tl , + collab .bool_set:N = \l_stm_au_collab_bool , + type .multichoice:, + type/author .code:n = { \int_set:Nn \l_autype_int { 0 } }, + type/editor .code:n = { \int_set:Nn \l_autype_int { 1 } }, + type/collab .code:n = { \int_set:Nn \l_autype_int { 2 } }, + type/anon .code:n = { \int_set:Nn \l_autype_int { 3 } }, +% type/collab .bool_set:N = \l_stm_au_collab_bool , +% type/anon .bool_set:N = \l_stm_au_anon_bool , + anon .bool_set:N = \l_stm_au_anon_bool , + deceased .bool_set:N = \l_stm_au_deceased_bool , + twitter .tl_set:N = \l_stm_au_twitter_tl , + facebook .tl_set:N = \l_stm_au_facebook_tl , + linkedin .tl_set:N = \l_stm_au_linkedin_tl , + plus .tl_set:N = \l_stm_au_gplus_tl , + gplus .tl_set:N = \l_stm_au_gplus_tl , + } + +\keys_set:nn { stm / author } + { + auid = {} , + bioid = {} , + alt = {} , + style = { normal } , + prefix = {} , + suffix = {} , + degree = {} , + role = {} , + orcid = {} , + collab = { false } , + type = { author } , + anon = { false } , + deceased = { false } , + twitter = {} , + facebook = {} , + linkedin = {} , + plus = {} , + gplus = {} , + } + +\keys_define:nn { stm / ausetup } + { + type .choice: , + type / authors .meta:n = + { + size = \large , + shape = \upshape , + weight = \mdseries , + before = \bigskipamount , + after = 0pt , + align = \raggedright , + color = black , + lskip = 0pt , + rskip = 0pt , + } , + type / collaboration .meta:n = + { + size = \Large , + shape = \upshape , + weight = \mdseries , + before = \bigskipamount , + after = 0pt , + align = \raggedright , + color = black , + lskip = 0pt , + rskip = 0pt , + } , + size .tl_set:N = \l_stm_augroup_size_tl , + shape .tl_set:N = \l_stm_augroup_shape_tl , + weight .tl_set:N = \l_stm_augroup_weight_tl , + before .dim_set:N = \l_stm_augroup_before_dim , + after .dim_set:N = \l_stm_augroup_after_dim , + align .tl_set:N = \l_stm_augroup_align_tl , + color .tl_set:N = \l_stm_augroup_color_tl , + lskip .dim_set:N = \l_stm_augroup_lskip_tl , + rskip .dim_set:N = \l_stm_augroup_rskip_tl , + } + +\DeclareDocumentCommand \stmAuthorSetup { m } + { \keys_set:nn { stm / ausetup } { #1 } } +\DeclareDocumentCommand \stmausetup { m } + { \tl_set:Nn \l_stm_au_setup_tl + { \keys_set:nn { stm / ausetup } { #1 } } + } +\DeclareDocumentCommand \stmclbsetup { m } + { \tl_set:Nn \l_stm_clb_setup_tl + { \keys_set:nn { stm / ausetup } { #1 } } + } + +\stmausetup { } +\stmclbsetup { } + +\seq_new:N \g_stm_maltese_seq +\seq_new:N \g_stm_facebook_seq +\seq_new:N \g_stm_twitter_seq +\seq_new:N \g_stm_gplus_seq +\seq_new:N \g_stm_linkedin_seq +\bool_new:N \g_stm_nologo_bool +\bool_gset_false:N \g_stm_nologo_bool + +\NewDocumentCommand \twitterauthor { m m } + { + \seq_gput_right:Nn \g_stm_twitter_seq + { + \parsename { #2 } + \url{https://twitter.com/\tl_to_str:n{#1}}\space(\eadauthor) + } + } +\NewDocumentCommand \facebookauthor { m m } + { + \seq_gput_right:Nn \g_stm_facebook_seq + { + \parsename { #2 } + \url{https://www.facebook.com/\tl_to_str:n{#1}}\space(\eadauthor) % + } + } +\NewDocumentCommand \gplusauthor { m m } + { + \seq_gput_right:Nn \g_stm_gplus_seq + { + \parsename { #2 } + \url{https://plus.google.com/\tl_to_str:n{#1}}\space(\eadauthor)% + } + } +\NewDocumentCommand \linkedinauthor { m m } + { + \seq_gput_right:Nn \g_stm_linkedin_seq + { + \parsename { #2 } + \url{https://www.linkedin.com/profile/view?id=\tl_to_str:n{#1}}% + \space(\eadauthor) + } + } + +\NewDocumentCommand \printmaltese { } + { + \seq_use:Nn { \g_stm_maltese_seq } { } + } +\NewDocumentCommand \printfacebook { } + { + \seq_if_empty:NTF \g_stm_facebook_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Facebook:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-facebook.jpeg}\c_space_token } + \seq_use:Nn \g_stm_facebook_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printtwitter { } + { + \seq_if_empty:NTF \g_stm_twitter_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Twitter:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-twitter.jpeg}\c_space_token } + \seq_use:Nn \g_stm_twitter_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printgplus { } + { + \seq_if_empty:NTF \g_stm_gplus_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Google+:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-gplus.jpeg}\c_space_token } + \seq_use:Nn \g_stm_gplus_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printlinkedin { } + { + \seq_if_empty:NTF \g_stm_linkedin_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { LinkedIn:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/cas-linkedin.jpeg}\c_space_token } + \seq_use:Nn \g_stm_linkedin_seq {,\c_space_token } + } + } + } + +\seq_new:N \g_stm_prelimsau_seq + +\csxdef{infoauthors}{} +\cs_new:Nn \no_break_space: { \nobreak{~} \penalty 10000 } +\RenewDocumentCommand \author { O{} m O{} } + { + \ResetMarks + \tl_if_blank:nTF { #3 } { } + { \keys_set:nn { stm / author } { #3 } } +% + \int_gincr:N \g_stm_au_int + \tex_gdef:D \theau@ { \int_use:N \g_stm_au_int } +% + \seq_gput_right:Nn \g_stm_prelimsau_seq { #2 } + \bool_if:NTF \l_stm_au_collab_bool + { \seq_gput_right:cn { g_stm_clau\int_use:N \g_stm_augr_int _seq } } + { \seq_gput_right:cn { g_stm_au\int_use:N \g_stm_augr_int _seq } } + { + \int_gincr:N \g_stm_aau_int + \tex_gdef:D \theauthor {\int_use:N \g_stm_aau_int } + \keys_set:nn { stm /author } { #3 } + \tl_if_head_eq_catcode:nNTF { #1 } a + { \processAffRef { #1 } } + { \processAffNum { #1 } } + \tl_if_empty:NF \l_stm_au_prefix + { \l_stm_au_prefix_tl \c_space_token } + \str_if_eq:VnTF \l_stm_au_style_tl { chinese } + { %\iow_term:n {STYLE~T=\l_stm_au_style_tl........} + \invparsename { #2 } + \textcolor{\l_stm_augroup_color_tl}{\surname} + \no_break_space: + \textcolor{\l_stm_augroup_color_tl !50}{\firstname} + } + { %\iow_term:n {STYLE~F=\l_stm_au_style_tl........} + \parsename { #2 } + \textcolor{\l_stm_augroup_color_tl !50}{\firstname} + \no_break_space: + \textcolor{\l_stm_augroup_color_tl}{\surname} + } + \tl_if_empty:NF \l_stm_au_suffix_tl + { \c_space_token \l_stm_au_suffix_tl } + \unskip + \textsuperscript + { + \tl_if_blank:nTF { #1 } + { \tex_def:D \sep{} } + { {\itshape\listAff} \tex_def:D \sep{\unskip,} } + \process@marks + \bool_if:NT \l_stm_au_deceased_bool + { \sep \maltese + \tex_def:D \sep { \unksip, } + } + } + \tl_if_empty:NF \l_stm_au_degree_tl + { ,\c_space_token \l_stm_au_degree_tl } + \tl_if_empty:NF \l_stm_au_role_tl + { \c_space_token (\l_stm_au_role_tl) } +% + \ResetMarks + } +% + \bool_if:NT \l_stm_au_deceased_bool + { + \seq_gput_right:Nn \g_stm_maltese_seq + { + \tex_def:D \thefootnote { \maltese } + \footnotetext{Deceased~author.} + } + } +% various social media + \tl_if_empty:NTF \l_stm_au_facebook_tl { } + { + \wrAux { \token_to_str:N \facebookauthor + { \l_stm_au_facebook_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_twitter_tl + { + \wrAux { \token_to_str:N \twitterauthor + { \l_stm_au_twitter_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_gplus_tl + { + \wrAux { \token_to_str:N \gplusauthor + { \l_stm_au_gplus_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_linkedin_tl + { + \wrAux { \token_to_str:N \linkedinauthor + { \l_stm_au_linkedin_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_orcid_tl + { + \wrAux { \token_to_str:N \orcidauthor + { \l_stm_au_orcid_tl } { \exp_not:n {#2} } } + } +% + \@eadauthor={#2} + \pdfstringdef\__info_au: { #2 } + \int_compare:nNnTF { \theau@ } < { 4 } + { \xappto \infoauthors { \__info_au: , ~ } } + { + \int_compare:nNnTF { \theau@ } = { 4 } + { \xappto \infoauthors { et~al. } } + { } + } + } + +\NewDocumentCommand \stmauthors { } + { + \group_begin: + \stmAuthorSetup { type = authors } + \l_stm_au_setup_tl + \par \vskip\l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \bool_if:NTF \g_stm_augr_bool + { \seq_use:Nn \g_stm_augr_seq { \par } } + { + \seq_use:cnnn { g_stm_au\int_use:N\g_stm_augr_int _seq } + { ,~ } { ,~ } { ~and~ } + } + \par\vskip\l_stm_augroup_after_dim + \group_end: + } + +\seq_new:c { g_stm_collab0_seq } +\bool_new:N \g_stm_in_clau_bool + +\NewDocumentCommand \stmcollab { } + { + \bool_if:NTF \g_stm_augr_bool + { } + { + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cn {g_stm_collab\int_use:N \g_stm_aaugr_int _seq} { } + \seq_use:cnnn {g_stm_clau\int_use:N \g_stm_aaugr_int _seq} + { ~and~ } { ,~ } { ~and~ } + \par \vskip \l_stm_augroup_after_dim + \group_end: + } + } + +\newenvironment{collaboration}[1][] + { + \seq_gput_right:cn {g_stm_collab\int_use:N \g_stm_augr_int _seq} + { \textit{Collaboration:~} #1 \par \smallskip } + } + { } + +\NewDocumentCommand \dept { m } { #1 } +\NewDocumentCommand \divn { m } { #1 } +\NewDocumentCommand \aline { m } { #1 } +\NewDocumentCommand \city { m } { #1 } +\NewDocumentCommand \cnty { m } { #1 } +\NewDocumentCommand \phone { m } { #1 } +\NewDocumentCommand \fax { m } { #1 } +\NewDocumentCommand \aurl { m } { #1 } + +\def\ca_affitem_postskip{\mbox{~}\unskip\ignorespaces} +%%Author Address +\DeclareDocumentCommand \ca_organization { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_postal_code { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_aff_city { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_address_line { O{,}m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_state { O{,} m } + { +% #2 #1\mbox{~}\unskip\ignorespaces + \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip } + } +\DeclareDocumentCommand \ca_country { O{ } m } + { +% #2 #1 + \csgappto { ca_affiliation_values } { #2 #1 } + } + +\DeclareDocumentCommand \ca_stm_organization { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_postal_code { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_aff_city { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_aff_address_line { O{,}m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_state { O{,} m } + { + #2 #1\ca_affitem_postskip + } +\DeclareDocumentCommand \ca_stm_country { O{ } m } + { + #2 #1 + } + +\keys_define:nn { stm / affiliation } + { + op .tl_set_x:N = \l_organization_punc_tl, + oraganizationsep .tl_set_x:N = \l_organization_punc_tl, + ap .tl_set_x:N = \l_address_line_punc_tl, + addresslinesep .tl_set_x:N = \l_address_line_punc_tl, + cp .tl_set_x:N = \l_city_punc_tl, + citysep .tl_set_x:N = \l_city_punc_tl, + pp .tl_set_x:N = \l_postal_code_punc_tl, + postcodesep .tl_set_x:N = \l_postal_code_punc_tl, + sp .tl_set_x:N = \l_state_punc_tl, + statesep .tl_set_x:N = \l_state_punc_tl, + o .code:n = { \ca_organization[\l_organization_punc_tl]{#1} }, + organization .code:n = { \ca_organization[\l_organization_punc_tl]{#1} }, + a .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} }, + addressline .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} }, + c .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} }, + city .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} }, + p .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} }, + postcode .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} }, + s .code:n = { \ca_state[\l_state_punc_tl]{#1} }, + state .code:n = { \ca_state[\l_state_punc_tl]{#1} }, + orp .tl_set_x:N = \l_organization_punc_tl, + adp .tl_set_x:N = \l_address_line_punc_tl, + cip .tl_set_x:N = \l_city_punc_tl, + pcp .tl_set_x:N = \l_postal_code_punc_tl, + stp .tl_set_x:N = \l_state_punc_tl, + cyp .tl_set_x:N = \l_country_punc_tl, + or .code:n = { \ca_organization[\l_organization_punc_tl]{#1} }, + ad .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} }, + ci .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} }, + pc .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} }, + st .code:n = { \ca_state[\l_state_punc_tl]{#1} }, + cy .code:n = { \ca_country[\l_country_punc_tl]{#1} }, + country .code:n = { \ca_country[\l_country_punc_tl]{#1} }, + unknown .code:n = { + \ifstrempty { #1 } { + \csxappto { ca_affiliation_values } + { {\l_keys_key_tl}~ } + } { + \csxappto { ca_affiliation_values } + { {#1}~ } + } + } + } + +\cs_set:Npn \__reset_affiliation: +{ + \tl_gset:Nn \l_organization_punc_tl { , } + \tl_gset:Nn \l_address_line_punc_tl { , } + \tl_gset:Nn \l_city_punc_tl { , } + \tl_gset:Nn \l_postal_code_punc_tl { , } + \tl_gset:Nn \l_state_punc_tl { , } + \tl_gset:Nn \l_country_punc_tl { } +} + +\seq_new:c { g_stm_aff0_seq } +\int_new:N \g_stm_aff_int +\tl_new:N \l_addrtype_tl + +\keys_define:nn { stm / address } + { + foot .bool_gset:N = \g_stm_addr_foot_bool , + name .tl_set:N = \l_stm_addr_name_tl , + type .multichoice: , + type/alt .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { Alternate~address } } , + type/addl .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { Additional~address } } , + type/regular .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { } } , + type/custom .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { \l_stm_addr_name_tl } } , + } +\DeclareDocumentCommand \stmAddrSetup { m } + { \keys_set:nn { stm / address } { #1 } } + +\keys_set:nn { stm / address } +{ + foot = { false } , + type = { regular } , + name = { Alternate~address } , +} + +\cs_new:Nn \__reset_addr: +{ + \bool_gset_false:N \g_stm_addr_foot_bool + \tl_set:Nn \l_stm_addr_type_tl { } + \tl_set:Nn \l_stm_addr_name_tl { Alternate~address } +} + +\seq_new:N \g_stm_aff_foot_seq + +\NewDocumentCommand \printaddrinfoot { } + { + { \seq_use:Nn \g_stm_aff_foot_seq { \par } } + } + +\NewDocumentCommand \address { O{} m O{} } + { + \__reset_addr: + \keys_set:nn { stm / address } { #3 } + \bool_if:NTF \g_stm_addr_foot_bool + { \__foot_address:nnn [#1]{#2}[#3] } + { + \seq_gput_right:cn { g_stm_aff\int_use:N \g_stm_augr_int _seq } + { \tl_if_blank:nTF { #1 } + { + \tex_xdef:D \thefootnote{} + { #2 } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \int_gincr:N \g_stm_aff_int + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \stmLabel {#1} + \textsuperscript{\itshape\@currentlabel} #2 + } + { + \int_gset:Nn \g_stm_aff_int { #1 } + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \textsuperscript{\itshape\@currentlabel} #2 + } + } + } + } + } + +\int_new:N \g_stm_aff_ext_int +\int_new:N \g_stm_aff_int_int + +\NewDocumentCommand \affiliation { O{} m O{} } + { + \__reset_affiliation: + \csgdef { ca_affiliation_values } { } + \IfNoValueTF { #2 } + { } + { + \keys_set:nn { stm / affiliation } { #2 } + } + \int_gincr:N \g_stm_aff_ext_int + \csxdef{ca_affiliation_\int_use:N \g_stm_aff_ext_int}{\csuse { ca_affiliation_values }} + \__reset_addr: + \keys_set:nn { stm / address } { #3 } + \bool_if:NTF \g_stm_addr_foot_bool + { \__foot_affiliation:nnn [#1]{#2}[#3] } + { + \seq_gput_right:cn { g_stm_aff\int_use:N \g_stm_augr_int _seq } + { \int_gincr:N \g_stm_aff_int_int + \tl_if_blank:nTF { #1 } + { + \tex_xdef:D \thefootnote{} + { \csuse { ca_affiliation_\int_use:N \g_stm_aff_int_int } } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \int_gincr:N \g_stm_aff_int + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \stmLabel {#1} + \textsuperscript{\itshape\@currentlabel} { \csuse { ca_affiliation_\int_use:N \g_stm_aff_int_int } } + } + { + \int_gset:Nn \g_stm_aff_int { #1 } + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \textsuperscript{\itshape\@currentlabel} { \csuse { ca_affiliation_\int_use:N \g_stm_aff_int_int } } + } + } + } + } +} + +\cs_new:Npn \__foot_address:nnn [#1]#2[#3] +{ + \keys_set:nn { stm / address } { #3 } + \seq_gput_right:cn { g_stm_aff_foot_seq } + { + \tl_if_empty:nTF { #1 } + { + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { + \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token #2 } + } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + % + { + \tex_def:D \thefootnote{\itshape\@currentlabel} + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: \c_space_token #2} } + } + { + \tex_def:D \thefootnote { \itshape\int_to_alph:n { #1 } } + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token #2 } } + } + } + } +} + +\int_new:N \g_stm_fn_aff_ext_int +\int_new:N \g_stm_fn_aff_int_int +\cs_new:Npn \__foot_affiliation:nnn [#1]#2[#3] +{ + \__reset_affiliation: + \csgdef { ca_affiliation_values } { } + \IfNoValueTF { #2 } + { } + { + \keys_set:nn { stm / affiliation } { #2 } + } + \int_gincr:N \g_stm_aff_ext_int + \csxdef{ca_affiliation_\int_use:N \g_stm_fn_aff_ext_int}{\csuse { ca_affiliation_values }} + \keys_set:nn { stm / address } { #3 } + \seq_gput_right:cn { g_stm_aff_foot_seq } + { + \int_gincr:N \g_stm_aff_int_int + \tl_if_empty:nTF { #1 } + { + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{\csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + { + \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token \csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int } } + } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + % + { + \tex_def:D \thefootnote{\itshape\@currentlabel} + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{\csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: \c_space_token + \csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + } + { + \tex_def:D \thefootnote { \itshape\int_to_alph:n { #1 } } + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{\csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int }} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token \csuse { ca_affiliation_\int_use:N \g_stm_fn_aff_int_int } } } + } + } + } +} + + +\keys_define:nn { stm / affsetup } + { + type .choice: , + type / normal .code:n = + { \tl_set:Nn \l_stm_aff_type_tl { 0 } } , + type / nonum .code:n = + { \tl_set:Nn \l_stm_aff_type_tl { 1 } } , + + size .tl_set:N = \l_stm_aff_size_tl , + shape .tl_set:N = \l_stm_aff_shape_tl , + weight .tl_set:N = \l_stm_aff_weight_tl , + before .dim_set:N = \l_stm_aff_before_dim , + after .dim_set:N = \l_stm_aff_after_dim , + align .tl_set:N = \l_stm_aff_align_tl , + color .tl_set:N = \l_stm_aff_color_tl , + lskip .dim_set:N = \l_stm_aff_lskip_dim , + rskip .dim_set:N = \l_stm_aff_rskip_dim , + } + +\DeclareDocumentCommand \stmAffSetup { m } + { \keys_set:nn { stm / affsetup } { #1 } } +\DeclareDocumentCommand \stmaffsetup { m } + { \tl_set:Nn \l_stm_aff_setup_tl + { \keys_set:nn { stm / affsetup } { #1 } } + } +\stmaffsetup { + size = \footnotesize, + shape = \itshape, + color = black, + before = 0pt, + weight = \mdseries, + align = \raggedright, + } + +\NewDocumentCommand \stmaddress { } + { + \bool_if:NTF \g_stm_augr_bool + { } + { + \group_begin: + \stmAffSetup { type = normal } + \l_stm_aff_setup_tl + \par \vskip\l_stm_aff_before_dim + \l_stm_aff_align_tl + \l_stm_aff_size_tl + \l_stm_aff_shape_tl + \l_stm_aff_weight_tl + \color{ \l_stm_aff_color_tl } + \seq_use:cn { g_stm_aff\int_use:N \g_stm_aaugr_int _seq } + { \par\vskip2pt } + \par\vskip\l_stm_aff_after_dim + \group_end: + } + } + +\int_new:N \g_stm_augr_int +\seq_new:N \g_stm_augr_seq +\int_new:N \g_stm_aaugr_int +\bool_new:N \g_stm_augr_bool + +\NewDocumentEnvironment { augroup } { } + { + \bool_gset_true:N \g_stm_augr_bool + \int_gincr:N \g_stm_augr_int + \seq_new:c {g_stm_au\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_aff\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_collab\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_clau\int_use:N \g_stm_augr_int _seq} +% \iow_term:n { AUGR:~\int_use:N \g_stm_augr_int ... } + } + { + \seq_gput_right:Nn \g_stm_augr_seq + { + \int_gincr:N \g_stm_aaugr_int + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cnnn { g_stm_au\int_use:N \g_stm_aaugr_int _seq } + { ~and~ } { ,~ } { ~and~ } + \par \vskip \l_stm_augroup_after_dim + \group_end: +% + \group_begin: + \stmAffSetup { type = normal } + \l_stm_aff_setup_tl + \par \vskip\l_stm_aff_before_dim + \l_stm_aff_align_tl + \l_stm_aff_size_tl + \l_stm_aff_shape_tl + \l_stm_aff_weight_tl + \color{ \l_stm_aff_color_tl } + \seq_use:cn { g_stm_aff\int_use:N \g_stm_aaugr_int _seq } + { \par \smallskip } + \par\vskip\l_stm_aff_after_dim +% \iow_term:n { AAUGR:~\int_use:N \g_stm_aaugr_int ... } + \group_end: +% + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cn {g_stm_collab\int_use:N \g_stm_aaugr_int _seq} { } + \seq_use:cnnn {g_stm_clau\int_use:N \g_stm_aaugr_int _seq} + { ~and~ } { ,~ } { ~and~ } + \par\vskip \l_stm_augroup_after_dim + \group_end: + } + } + +% +% Abstract +% +\RequirePackage{moreverb} + +\tex_gdef:D \abstractname { A\,B\,S\,T\,R\,A\,C\,T } +\tl_new:N \l_stm_abs_title_tl +\box_new:N \g_stm_abs_box + +\NewDocumentEnvironment { Abstract } { o } +{ +% \global\setbox \g_stm_abs_box = \vtop \bgroup +% \hsize = .65 \textwidth \parindent \z@ + \group_begin: + \IfNoValueTF { #1 } { } + { \tex_gdef:D \abstractname { #1 } } + \parindent \z@ + \box_if_empty:NTF \g_stm_key_box + { \leftskip = .35 \textwidth } + { + \dim_gset:Nn \l_tmpa_dim { \box_ht:N \g_stm_key_box } + \dim_gadd:Nn \l_tmpa_dim { \box_dp:N \g_stm_key_box } + \leftskip .35\textwidth + \hspace*{-.35 \textwidth } + \noindent\hbox_to_wd:nn { \z@ } { \box \g_stm_key_box } + \skip_vertical:n { - \l_tmpa_dim } + } + \noindent \abstractname \par + \skip_vertical:n { -4pt} + \noindent \rule{.65\textwidth}{.2pt}\par \footnotesize + \ignorespaces \everypar { \parindent=1.5em } +} +{ \par \group_end: } + +\NewDocumentEnvironment { PrelimsAbstract } { O{} } + {\parindent=0pt + { \fontsize{14pt}{16pt}\selectfont #1 }\par + \vskip12pt + { \fontsize{12pt}{14pt}\bfseries\selectfont\casprelimstitle } \par + \vskip6pt + \ifnum\theblind>0\relax + \vspace*{\the\baselineskip} + \else + \seq_use:Nn \g_stm_prelimsau_seq { ,~ } + \fi + \vskip12pt + \par + } + {} + +\RenewDocumentEnvironment { abstract } { o } +{ + \IfNoValueTF { #1 } { } + { \tex_gdef:D \abstracttitle { #1 } } + \verbatimwrite{\jobname.abs} +} +{ \endverbatimwrite } + +\newbox\casgrabsbox +\newbox\casauhlbox +\newbool { usecasgrabsbox } +\newbool { usecashlsbox } + +\DeclareDocumentEnvironment { graphicalabstract } { O{Graphical~Abstract} } +{ + \global \booltrue { usecasgrabsbox } + \global\setbox\casgrabsbox=\vbox\bgroup + \begin{PrelimsAbstract}[#1] + \noindent \ignorespaces +} +{ + \end{PrelimsAbstract} + \egroup +} + +\DeclareDocumentEnvironment { highlights } { O{Highlights} } +{ + \global \booltrue { usecashlsbox } + \global\setbox\casauhlbox=\vbox\bgroup + \begin{PrelimsAbstract}[#1] + \noindent \ignorespaces + \begin{itemize} +} +{ + \end{itemize} + \end{PrelimsAbstract} + \egroup +} + + +\NewDocumentCommand \dashrule { O{.4pt} m m } + { + \color{black!50} + \skip_vertical:n { #2 } + \noindent \rule { \linewidth } { #1} + \normalcolor \skip_vertical:n { #3 } + } + +\NewDocumentCommand \keywordtitle { } { Keywords } +\NewDocumentCommand \keywordtitlesep { } {:\c_space_token } +\box_new:N \g_stm_key_box + +\NewDocumentCommand \MSC { O{} m } + { + \par\noindent \textit { #1\c_space_token MSC:\c_space_token } #2 + } +\NewDocumentCommand \JEL { m } + { + \par\noindent \textit { JEL:\c_space_token } #1 + } +\NewDocumentCommand \PACS { m } + { + \par\noindent \textit { PACS:\c_space_token } #1 + } + +\NewDocumentEnvironment { keywords } { O{ Keywords } } + { + \tex_global:D \tex_setbox:D \g_stm_key_box = \vtop \bgroup + \hsize=.25 \textwidth + \cs_new:Nn \sep: { \par } + \cs_set_eq:NN \sep \sep: + \parindent \z@ + A\,R\,T\,I\,C\,L\,E\ \ I\,N\,F\,O \par \skip_vertical:n { -3pt } + \rule{.25 \textwidth}{.2pt}\par\footnotesize + \noindent \textit { #1 }: \par + } + { \egroup } + + +% +% Print all footnotes in the title page +% + +\bool_new:N \g_stm_longmktitle_bool +\int_new:N \g_stm_jtype_int +\int_new:N \g_stm_blind_int + +\NewDocumentCommand \printFirstPageNotes { } + { + \bool_if:NTF \g_stm_longmktitle_bool + { \tex_let:D \columnwidth = \textwidth } + { } + \int_compare:nTF { \g_stm_jtype_int > 5 } + { \stmaddress } + { } + \printtnotes + \printnonumnotes + \bool_if:NTF \g_stm_blind_bool + { } + { + \printcornotes + \printmaltese + \printaddrinfoot + \printemails + \printurls + \printorcid + \printfacebook + \printtwitter + \printgplus + \printlinkedin + \printfnotes + } + \bool_if:NTF \g_stm_longmktitle_bool + { + \if@twocolumn + \tex_let:D \columnwidth = \Columnwidth \fi + } + { } + \normalcolor + } + +% +% Date History +% +\tl_new:N \g_stm_recd_tl +\tl_new:N \g_stm_accd_tl +\tl_new:N \g_stm_revd_tl +\tl_new:N \g_stm_pub_online_tl +\tl_new:N \g_stm_pub_print_tl + +\cs_new:Npn \date_parse:n #1 { \date_parse_aux:w #1 \q_stop } +\cs_new:Npn \date_parse_aux:w #1 / #2 / #3 \q_stop +{ } + +\NewDocumentCommand \received { m } + { \tl_gput_right:Nn \g_stm_recd_tl { #1 } } +\NewDocumentCommand \accepted { m } + { \tl_gput_right:Nn \g_stm_accd_tl { #1 } } +\NewDocumentCommand \revised { m } + { \tl_gput_right:Nn \g_stm_revd_tl { #1 } } +\NewDocumentCommand \published { O{} m } +{ + \tl_if_eq:nnTF { #1 } { online } + { \tl_if_gput_right:Nn \g_stm_pub_online_tl { #2 } } + { \tl_if_gput_right:Nn \g_stm_pub_print_tl { #2 } } +} + +% +% Verse/Recto +% +\tl_new:N \l_stm_verso_tl +\tl_new:N \l_stm_recto_tl + +\NewDocumentCommand \verso { m } +{ \tl_set:Nn \l_stm_verso_tl { #1 } } +\NewDocumentCommand \recto { m } +{ \tl_set:Nn \l_stm_recto_tl { #1 } } + +% +% Maketitle +% + +\newcounter{au} +\newcounter{cnote} +\newcounter{tnote} +\newcounter{fnote} +\newcounter{aff} + +\cs_new:Nn \__reset_title_counters: +{ + \setcounter{cnote}{0} + \setcounter{fnote}{0} + \setcounter{tnote}{0} + \setcounter{footnote}{0} +} + +\keys_define:nn { stm / mktitle } +{ + blind .bool_gset:N = \g_stm_blind_bool , + footer .multichoice:, + footer/default .tl_gset:N = \g_stm_footer_default_tl , + footer/custom .tl_gset:N = \g_stm_footer_custom_tl , + longtitle .bool_gset:N = \g_stm_longtitle_bool , + longabstract .bool_gset:N = \g_stm_longtitle_bool , + breakafter .clist_gset:N = \g_stm_breakafter_clist , + nologo .bool_gset:N = \g_stm_nologo_bool , +} + +\bool_new:N \g_stm_breakafter_title_bool +\bool_new:N \g_stm_breakafter_auaff_bool +\bool_new:N \g_stm_breakafter_abstract_bool + +\NewDocumentCommand \processbreakafter { } +{ + \clist_if_empty:NTF \g_stm_breakafter_clist { } + { + \clist_map_inline:Nn \g_stm_breakafter_clist + { \bool_gset_true:c { g_stm_breakafter_##1_bool } } + } +} + +\NewDocumentCommand \pprintMaketitle { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \processbreakafter + \clearpage + \__reset_title_counters: + \tex_def:D \baselinestretch { 1 } + \printFirstPageNotes + \thispagestyle{pprintTitle}% + \group_begin: + \@title + \group_end: + \bool_if:NTF \g_stm_breakafter_title_bool + { \newpage } { } + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { + \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par \vskip36pt + \group_end: + \bool_if:NTF \g_stm_breakafter_auaff_bool + { \newpage } { } + } + % + \printabsbox + \printkeybox + \bool_if:NTF \g_stm_breakafter_abstract_bool + { \newpage } { } + % + \setcounter{footnote}{\c@fnote} + \tex_gdef:D \thefootnote { \arabic{footnote} } + \tex_def:D \baselinestretch { \@blstr } + \normalfont \normalsize +} + +\NewDocumentCommand \MaketitleBox { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \processbreakafter + \tex_def:D \baselinestretch{1} + \group_begin: + \@title + \group_end: + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { + \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par + \group_end: + \bool_if:NTF \g_stm_breakafter_auaff_bool + { \newpage } { } + } + % \printFirstPageNotes + % + \dashrule{0pt}{3pt} + \begin{Abstract} + \noindent \ignorespaces + \file_if_exist:nT { \jobname.abs } { \file_input:n { \jobname.abs } } + \end{Abstract} + \dashrule{6pt}{3pt} + \bool_if:NTF \g_stm_breakafter_abstract_bool + { \newpage } { } +} + +\box_new:N \g_stm_notes_box +\box_new:N \g_stm_front_box +\cs_set:Npn \__fn_text:n #1 +{ \group_begin:\vbox_top:n { \footnotesize #1 } \group_end:\par} + +\NewDocumentCommand \LongMaketitleBox { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \vbox_gset:Nn \g_stm_front_box + { + \tex_def:D \baselinestretch{1} + \group_begin: + \@title + \group_end: + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par + \group_end: + } + % + \dashrule{0pt}{3pt} + \begin{Abstract} + \noindent \ignorespaces + \file_if_exist:nT { \jobname.abs } { \file_input:n { \jobname.abs } } + \end{Abstract} + \dashrule{3pt}{3pt} + } + \vbox_gset:Nn \g_stm_notes_box + { \cs_set_eq:NN \footnotetext \__fn_text:n \printFirstPageNotes } + \dim_gset:Nn \g_tmpb_dim { \box_ht:N \g_stm_notes_box } + % \iow_term:x { ...~[ht: \dim_use:N \g_tmpb_dim ] } + \dim_gadd:Nn \g_tmpb_dim { \box_dp:N \g_stm_notes_box } + % \iow_term:x { ...~[ht+dp: \dim_use:N \g_tmpb_dim ] } + \ifbool{sc}{\dim_gadd:Nn \g_tmpb_dim { 12pt } } { } + +} + +\NewDocumentCommand \ProcessLongTitleBox { } +{ + % \vbox_gset:Nn \g_stm_notes_box + % { \cs_set_eq:NN \footnotetext \__fn_text:n \printFirstPageNotes } + % \dim_gset:Nn \g_tmpb_dim { \box_ht:N \g_stm_notes_box } + % % \iow_term:x { ...~[ht: \dim_use:N \g_tmpb_dim ] } + % \dim_gadd:Nn \g_tmpb_dim { \box_dp:N \g_stm_notes_box } + % % \iow_term:x { ...~[ht+dp: \dim_use:N \g_tmpb_dim ] } + % + \dim_gset:Nn \g_tmpa_dim { \textheight } +% \vbox_unpack:N \g_stm_notes_box + % \iow_term:x { ...~[tmpa:~ \dim_use:N \g_tmpa_dim ] } + % \dim_gsub:Nn \g_tmpa_dim { \box_ht:N \g_stm_notes_box } + % \iow_term:x { ...~[tmpa-noteht:~ \dim_use:N \g_tmpa_dim ] } + % \dim_gsub:Nn \g_tmpa_dim { \box_dp:N \g_stm_notes_box } + % \iow_term:x { ...~[tmpa-notedp:~ \dim_use:N \g_tmpa_dim ] } + \dim_gsub:Nn \g_tmpa_dim { \g_tmpb_dim } + \vbox_set_split_to_ht:NNn \g_tmpb_box \g_stm_front_box { \g_tmpa_dim } + \noindent \vbox_unpack_clear:N \g_tmpb_box + \printFirstPageNotes + \dim_gzero:N \g_tmpa_dim + \dim_gset:Nn \g_tmpa_dim { \box_ht:N \g_stm_front_box } + % \iow_term:x { ...~[tmpa-ht:~ \dim_use:N \g_tmpa_dim ] } + \dim_gadd:Nn \g_tmpa_dim { \box_dp:N \g_stm_front_box } + % \iow_term:x { ...~[tmpa-ht+dp:~ \dim_use:N \g_tmpa_dim ~+~\the\textheight] } + \dim_compare:nNnTF { \dim_use:N \g_tmpa_dim } > { \the\textheight } + { + \vbox_set_split_to_ht:NNn \g_tmpb_box \g_stm_front_box { \textheight } + \vbox_unpack_clear:N \g_tmpb_box + \ifbool{dc} + { \twocolumn[{\vbox_unpack_clear:N \g_stm_front_box}] } + { \vbox_unpack_clear:N \g_stm_front_box } + } + { + \ifbool{dc} + { \twocolumn[{\vbox_unpack_clear:N \g_stm_front_box}] } + { \vbox_unpack_clear:N \g_stm_front_box } + } + \normalcolor \normalfont +} +\ExplSyntaxOff + +% +% Headings +% +\def\@seccntDot{.} +\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em} + +\newdimen\paraindent \paraindent=\parindent +\newdimen\subparaindent \subparaindent=\parindent +\def\ssssparaindent{} +\def\sectionfont{\rmfamily\fontsize{12pt}{14pt}% + \bfseries} +\def\ssectionfont{\rmfamily\fontsize{11pt}{13pt}% + \bfseries\selectfont} +\def\sssectionfont{\rmfamily\fontsize{10.5pt}{12pt}% + \fontseries{b}\fontshape{it}\selectfont} +\def\ssssectionfont{\rmfamily\fontsize{11pt}{10pt}\itshape\selectfont} +\def\sssssectionfont{\rmfamily\fontsize{11pt}{10pt}\selectfont}% + +\AtBeginDocument{\global\@afterindentfalse} + +\renewcommand\section{\@startsection{section}{1}{\z@}% + {15pt \@plus 3\p@ \@minus 3\p@}% + {4\p@}% + {%\let\@hangfrom\relax + \sectionfont\raggedright\hst[13pt]}} + +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {10pt \@plus 3\p@ \@minus 2\p@}% + {.1\p@}% + {%\let\@hangfrom\relax + \ssectionfont\raggedright }} + +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {10pt \@plus 1\p@ \@minus .3\p@}% + {.1\p@}% + {%\let\@hangfrom\relax + \sssectionfont\raggedright}} + +\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}% + {10pt \@plus0.01pt \@minus0.01pt}% + {-6pt}% + {\ssssparaindent% + \ssssectionfont\itshape\raggedright}} + +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {0pt \@plus0.1pt \@minus0.1pt}% + {-6pt}% + {\hspace*{\subparaindent} + \sssssectionfont\raggedright}} + +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} + +% +% Sundry lengths +% +\def\xstrut#1#2{\vrule height#1 depth #2 width\z@} +\def\hstrut#1{\vrule height#1 depth \z@ width 0pt} +\def\dstrut#1{\vrule height0pt depth#1 width 0pt} +\def\hst[#1]{\vrule height#1 depth \z@ width \z@} +\def\dst[#1]{\vrule height0pt depth#1 width 0pt} +\def\xst[#1][#2]{\vrule height#1 depth #2 width\z@} + +\def\lastpage{100} + +\AtEndDocument{% +% \clearpage + \immediate\write\@auxout{\string\csxdef{lastpage}{\thepage}} +} + +\ExplSyntaxOn + +% +% pagestyle +% + +\cs_new:Npn \__first_footerline: +{ + \group_begin: + \small + \sffamily + \ifnum\theblind>0\relax + \else + \__short_authors: :~ + \fi + { \rmfamily \itshape Preprint~ submitted ~to ~\journal } + \group_end: +} + +\cs_new:Npn \__first_head: +{ + \parbox[t]{\textwidth} + { + \color{black!20} + \rule{\textwidth}{0pt} + } +} + + +\cs_new:Npn \__first_foot: +{ + \parbox[t]{\textwidth} + { + \rule{\textwidth}{.2pt}\\ + \__first_footerline: \hfill Page~ \thepage {} ~of~ \lastpage } +} + + +\cs_new:Npn \__cas_head: +{ + \parbox{\textwidth} + { + \sffamily\small\centering + \__short_title: + } + } + + +\cs_new:Npn \__cas_foot: +{ + \parbox[t]{\textwidth} + { + \rule{\textwidth}{.2pt}\\ + \sffamily\small + \__first_footerline: + \hfill Page~\thepage {}~of~ \lastpage + } +} + +\newcommand \ps@first + { + \cs_set_eq:NN \@oddhead \__first_head: + \cs_set_eq:NN \@evenhead \__first_head: + \cs_set_eq:NN \@evenfoot \__first_foot: + \cs_set_eq:NN \@oddfoot \__first_foot: + } + + +\newcommand \ps@cas +{ + \cs_set_eq:NN \@oddhead \__cas_head: + \cs_set_eq:NN \@evenhead \__cas_head: + \cs_set_eq:NN \@evenfoot \__cas_foot: + \cs_set_eq:NN \@oddfoot \__cas_foot: +} + +\ps@cas + + +% +% Floats +% + +\def\topfraction{.9} +\def\bottomfraction{.9} +\setcounter{topnumber}{4} +\setcounter{bottomnumber}{3} +\setcounter{totalnumber}{5} +\renewcommand\textfraction{.1} +\renewcommand\floatpagefraction{.9} +\setcounter{dbltopnumber}{2} +\renewcommand\dbltopfraction{.9} +\renewcommand\dblfloatpagefraction{.95} +\newdimen \FullWidth +\ABD{\FullWidth=\textwidth} + +\newcolumntype{L}{@{\extracolsep{\fill}}l} +\newcolumntype{R}{@{\extracolsep{\fill}}r} +\newcolumntype{C}{@{\extracolsep{\fill}}c} + +\cs_gset_eq:NN \thead \toprule +\cs_gset_eq:NN \endthead \midrule +\cs_gset_eq:NN \tabref \ref + +\dim_new:N \l_tbl_width_dim +\dim_set:Nn \l_tbl_width_dim { \linewidth } + +\cs_new:Npn \__make_tbl_caption:nn #1#2 +{ + \l_tbl_align_tl + \skip_vertical:N \l_tbl_abovecap_skip + % \bool_if:NTF \g_tbl_full_bool + % { + % \color{scolor!70}\rule{\FullWidth}{2pt}\normalcolor\\ + % } + % { \color{scolor!70}\rule{\tblwidth}{2pt}\normalcolor\\ } + % \fboxsep=4pt + % \colorbox{white} + {\parbox{ \dimexpr(\l_tbl_width_dim)} + {\rightskip=0pt\sffamily\small\textbf{\color{scolor}#1}\par#2\par\vskip4pt }} + \skip_vertical:N \l_tbl_belowcap_skip +} + +\keys_define:nn { cas / tbl } +{ + width .dim_set:N = \l_tbl_width_dim , + pos .tl_set:N = \l_tbl_pos_tl , + cols .tl_set:N = \l_tbl_cols_tl , + align .tl_set:N = \l_tbl_align_tl, + abovecap .skip_set:N = \l_tbl_abovecap_skip , + belowcap .skip_set:N = \l_tbl_belowcap_skip , + abovetbl .skip_set:N = \l_tbl_abovetbl_skip , + belowtbl .skip_set:N = \l_tbl_belowtbl_skip , + full .bool_gset:N = \g_tbl_full_bool , + unknown .code:n = { + \ifstrempty { #1 } + { + \tl_set:Nn \l_fig_pos_tl { \l_keys_key_tl } + } + { + \l_keys_key_tl=#1 + } + } +} + +\cs_set:Npn \__reset_tbl: +{ + \tl_set:Nx \l_tbl_pos_tl { t } + \tl_set:Nx \l_tbl_cols_tl { 1 } + \tl_set:Nn \l_tbl_align_tl { \centering } + \skip_set:Nn \l_tbl_abovecap_skip { 6pt } + \skip_set:Nn \l_tbl_belowcap_skip { 0pt } + \skip_set:Nn \l_tbl_abovetbl_skip { 6pt } + \skip_set:Nn \l_tbl_belowtbl_skip { 6pt } + +} + +\RenewDocumentEnvironment { table } { O{} } +{ + \__reset_tbl: + \bool_gset_false:N \g_tbl_full_bool + \dim_set:Nn \l_tbl_width_dim { \linewidth } + \keys_set:nn { cas / tbl } { #1 } + \csxdef{fps@table}{\l_tbl_pos_tl} + \csgdef{tblwidth}{\dim_use:N \l_tbl_width_dim} + \cs_set_eq:NN \@makecaption \__make_tbl_caption:nn + \@float{table} + \l_tbl_align_tl + \sffamily\small +} +{ +\end@float +} + + +\RenewDocumentEnvironment { table* } { O{width=\FullWidth} } + { + \__reset_tbl: + \bool_gset_true:N \g_tbl_full_bool + \dim_set:Nn \l_tbl_width_dim { \FullWidth } + \keys_set:nn { cas / tbl } { #1 } + \csxdef{fps@table}{\l_tbl_pos_tl} + \csgdef{tblwidth}{\dim_use:N \l_tbl_width_dim} + \cs_set_eq:NN \@makecaption \__make_tbl_caption:nn + \@dblfloat{table} + \l_tbl_align_tl + \sffamily\small + % \leftskip=-\FullWidth + } + { + \end@dblfloat + } + + +\dim_new:N \l_fig_width_dim +\dim_set:Nn \l_fig_width_dim { \linewidth } + +\newbox\cascaptionbox + +\cs_new:Npn \__make_fig_caption:nn #1#2 +{ + \l_fig_align_tl + \skip_vertical:N \l_fig_abovecap_skip +% \bool_if:NTF \g_fig_full_bool +% { \skip_horizontal:n { -\FullWidth } } { } + \setbox\cascaptionbox=\hbox{% + \sffamily\small\textbf{\color{scolor}#1:}~#2} + \ifdim\the\wd\cascaptionbox<\dim_use:N \l_fig_width_dim\relax + \parbox{ \l_fig_width_dim } + {\unskip\ignorespaces\hfil\sffamily\small + \textbf{\color{scolor}#1:}~#2\hfil\par } + \else + \parbox{ \l_fig_width_dim } + {\rightskip=0pt\unskip\ignorespaces\sffamily + \small\textbf{\color{scolor}#1:}~#2\par } + \fi + \skip_vertical:N \l_fig_belowcap_skip +} + +\keys_define:nn { cas / fig } +{ + width .dim_set:N = \l_fig_width_dim , + pos .tl_set:N = \l_fig_pos_tl , + cols .tl_set:N = \l_fig_cols_tl , + align .tl_set:N = \l_fig_align_tl, + abovecap .skip_set:N = \l_fig_abovecap_skip , + belowcap .skip_set:N = \l_fig_belowcap_skip , + abovefig .skip_set:N = \l_fig_abovefig_skip , + belowfig .skip_set:N = \l_fig_belowfig_skip , + full .bool_gset:N = \g_fig_full_bool , + unknown .code:n = { + \ifstrempty { #1 } + { + \tl_set:Nn \l_fig_pos_tl { \l_keys_key_tl } + } + { + \l_keys_key_tl=#1, + } + } +} + +\cs_set:Npn \__reset_fig: +{ + \tl_set:Nx \l_fig_pos_tl { t } + \tl_set:Nx \l_fig_cols_tl { 1 } + \tl_set:Nn \l_fig_align_tl { \raggedleft } + \skip_set:Nn \l_fig_abovecap_skip { 6pt } + \skip_set:Nn \l_fig_belowcap_skip { 6pt } + \skip_set:Nn \l_fig_abovefig_skip { 6pt } + \skip_set:Nn \l_fig_belowfig_skip { 6pt } + +} + +\RenewDocumentEnvironment { figure } { O{} } + { + \__reset_fig: + \bool_gset_false:N \g_fig_full_bool + \dim_set:Nn \l_fig_width_dim { \linewidth } + \keys_set:nn { cas / fig } { #1 } + \csxdef{fps@figure}{\l_fig_pos_tl} + \csgdef{figwidth}{\dim_use:N \l_fig_width_dim} + \cs_set_eq:NN \@makecaption \__make_fig_caption:nn + \@float{figure} + \l_fig_align_tl + \sffamily\small + } + { + \end@float + } + + +\RenewDocumentEnvironment { figure* } { O{width=\textwidth} } +{ + \__reset_fig: + \bool_gset_true:N \g_fig_full_bool + \dim_set:Nn \l_fig_width_dim { \FullWidth } + \keys_set:nn { cas / fig } { #1 } + \csxdef{fps@figure}{\l_fig_pos_tl} + \csgdef{figwidth}{\dim_use:N \l_fig_width_dim} + \cs_set_eq:NN \@makecaption \__make_fig_caption:nn + \@dblfloat{figure} + \l_fig_align_tl + \sffamily\small +% \leftskip=-\FullWidth +} +{ \end@dblfloat } + +% +% wrapped figure +% +\RequirePackage{wrapfig} + +\dim_new:N \l_wrap_figwidth_dim +\dim_new:N \l_wrap_fighspace_dim +\dim_new:N \l_wrap_figvspace_dim +\dim_new:N \l_wrap_fighcorr_dim +\dim_new:N \l_wrap_figvcorr_dim +\dim_new:N \l_above_bio_dim +\int_new:N \l_wrap_figlcorr_int +\int_new:N \l_wrap_figlines_int +\tl_new:N \l_wrap_figfile_tl + +\NewDocumentCommand \wfigwidth { m } + { \dim_set:Nn \l_wrap_figwidth_dim { #1 } } +\NewDocumentCommand \wfighspace { m } + { \dim_set:Nn \l_wrap_fighspace_dim { #1 } } +\NewDocumentCommand \wfigvspace { m } + { \dim_set:Nn \l_wrap_figvspace_dim { #1 } } +\NewDocumentCommand \wfighcorr { m } + { \dim_set:Nn \l_wrap_fighcorr_dim { #1 } } +\NewDocumentCommand \wfigvcorr { m } + { \dim_set:Nn \l_wrap_figvcorr_dim { #1 } } +\NewDocumentCommand \addfiglines { m } + { \int_set:Nn \l_wrap_figlcorr_int { #1 } } +\NewDocumentCommand \abovebioskip { m } + { \dim_set:Nn \l_above_bio_dim { #1 } } + +\cs_new:Nn \__fig_defaults: + { + \wfigwidth { 25.5mm } + \wfighspace { 0mm } + \wfigvspace { 0mm } + \wfighcorr { 0pt } + \wfigvcorr { -12pt } + \wfigvcorr { 0pt } + \abovebioskip { 12pt } + \tl_set:Nn \l_wrap_figpos_tl { l } + \int_set:Nn \l_wrap_figlines_int { 3 } + \int_set:Nn \l_wrap_figlcorr_int { 1 } + \tl_clear:N \l_wrap_figcap_tl + } + +\__fig_defaults: + +\keys_define:nn { wrap / fig } +{ + width .dim_set:N = \l_wrap_figwidth_dim , + hspace .dim_set:N = \l_wrap_fighspace_dim , + vspace .dim_set:N = \l_wrap_figvspace_dim , + hcorr .dim_set:N = \l_wrap_fighcorr_dim , + vcorr .dim_set:N = \l_wrap_figvcorr_dim , + lcorr .int_set:N = \l_wrap_figlcorr_int , + pos .tl_set:N = \l_wrap_figpos_tl , + lines .int_set:N = \l_wrap_figlines_int , + cap .tl_set:N = \l_wrap_figcap_tl , +} + +\cs_new:Npn \__find_fig_height:n #1 +{ + \box_clear:N \g_tmpa_box + \hbox_gset:Nn \g_tmpa_box + { \includegraphics [ width = \l_wrap_figwidth_dim ] { #1 } } + \dim_zero:N \l_tmpa_dim + \dim_set:Nn \l_tmpa_dim { \box_ht:N \g_tmpa_box } + \dim_add:Nn \l_tmpa_dim { \box_dp:N \g_tmpa_box } + \fp_set:Nn \l_tmpa_fp { \dim_to_fp:n { \l_tmpa_dim } } + \fp_set:Nn \l_tmpb_fp { \dim_to_fp:n { \baselineskip } } +% + \fp_set:Nn \l_wrap_figlines_fp + { \fp_eval:n { ( \l_tmpa_fp / \l_tmpb_fp ) + .5 } } + \int_set:Nn \l_wrap_figlines_int + { \fp_to_int:N \l_wrap_figlines_fp } +% + \iow_term:x { ...~wr-fig:~[BL:~\the\baselineskip] ~ ...} + \iow_term:x { ...~wr-fig:~[LINE-FP:~ \fp_use:N \l_wrap_figlines_fp]~ ...} + \iow_term:x { ...~wr-fig:~[LINE-INT:~ \int_use:N \l_wrap_figlines_int]~ ...} +} + +\newbox \l_bio_text_box + +\NewDocumentCommand \WrapFigure { o m } +{ + \__fig_defaults: + \IfNoValueTF { #1 } { } { \keys_set:nn { wrap / fig } { #1 } } + \stepcounter { ca_biography_ctr } + \__find_fig_height:n { #2 } + \dim_zero:N \l_tmpb_dim + \dim_set:Nn \l_tmpb_dim + { \l_wrap_figwidth_dim + \l_wrap_fighspace_dim } + \int_gadd:Nn \l_wrap_figlines_int { \int_use:N \l_wrap_figlcorr_int } + \setlength { \columnsep } { 5pt } + \setlength { \intextsep } { 0pt } +% \mbox{} + \ifbool { dc } + { \xdef\Columnwidth{238.25pt} } + { \xdef\Columnwidth{\the\textwidth} } + \ifcsundef { cabio\theca_biography_ctr lines } + { + \setbox \l_bio_text_box = \vbox \bgroup + \hsize = \dimexpr ( \Columnwidth - 72.28pt ) + } + { + \ifbool { dc } { + \int_gset:Nn \l_wrap_figlines_int + { \csuse { cabio\theca_biography_ctr lines } } + } { } + \skip_vertical:N \l_above_bio_dim + \begin{wrapfigure}[\int_use:N \l_wrap_figlines_int] + { \l_wrap_figpos_tl } + [ \dim_use:N \l_wrap_fighcorr_dim ] + { \dim_use:N \l_tmpb_dim } + %\skip_vertical:N \l_wrap_figvcorr_dim + \includegraphics[width=\l_wrap_figwidth_dim]{#2} + \end{wrapfigure} + \setbox \l_bio_text_box = \vbox \bgroup + \hsize = \dimexpr ( \Columnwidth ) + } +} + +\cs_set:Nn \__fwidth: { 1in } +\cs_set:Nn \__fpos: { l } + +% +% short authors/title +% + +\newcommand\shortauthors[1]{ \cs_gset:Nn \__short_authors: { #1 } } +\newcommand\shorttitle[1]{ \cs_gset:Nn \__short_title: { #1 } } + +\shortauthors{First~Author~et~al.} +\shorttitle{Short ~Title ~of~the~Article} + +\newcounter { ca_biography_ctr } +\newbool { cas_no_pic_bio } +\boolfalse { cas_no_pic_bio } + +\ifnum\theblind>0\relax +\newbox\hidebiobox +\NewDocumentCommand \bio { O{} m } + {\setbox\hidebiobox=\vbox\bgroup} +\NewDocumentCommand \endbio { } { + \egroup +} +\else +\NewDocumentCommand \bio { O{} m } +{ + \global \boolfalse { cas_no_pic_bio } + \casbiographyfont + \par \medskip \tl_set:Nn \l_tmpa_tl { #2 } + \tl_if_empty:NTF \l_tmpa_tl + { \global \booltrue { cas_no_pic_bio } } + { \WrapFigure [ #1 ]{ #2 } } + \noindent \ignorespaces +} + +\int_new:N \l_ca_temp_inta + +\NewDocumentCommand \endbio { } { + \ifbool{ cas_no_pic_bio } { } { + \egroup +% \fp_set:Nn \l_wrap_figlines_fp +% { \fp_eval:n { ( ( \l_tmpa_fp + +% \numexpr\dimexpr\the\ht\l_bio_text_box ) +% / \l_tmpb_fp ) + .5 } } + \int_gset:Nn \l_ca_temp_inta + { \numexpr\dimexpr(\the\ht\l_bio_text_box + 2\baselineskip )/ + \dimexpr\the\baselineskip } + \iow_now:Nx \@auxout { + \string\csgdef{cabio\theca_biography_ctr lines} + { \int_use:N \l_ca_temp_inta } } +\mbox{}\vspace*{-4.5pt}\noindent +\unvbox \l_bio_text_box } +} +\fi + +\let\casbiographyfont\relax + +\NewDocumentEnvironment { biography } { o m } +{ + \IfValueTF { #1 } + { \par\medskip \noindent \includegraphics[width=1in]{#1} } + { } + \par\smallskip + \noindent \textbf{#2:}\enspace +} +{ } + +\ExplSyntaxOff + +% +% Customized Enumeration +% +\def\blstr#1{\gdef\@bslstr{#1}} +\def\@blstr{1} +\newdimen\leftMargin +\leftMargin=2em +\newtoks\@enLab %\newtoks\@enfont +\def\@enQmark{?} +\def\@enLabel#1#2{% + \edef\@enThe{\noexpand#1{\@enumctr}}% + \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}% + \@enloop} +\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= } +\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop} +\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop} +\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop} +\def\@enloop{\futurelet\@entemp\@enloop@} +\def\@enloop@{% + \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else + \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else + \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else + \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else + \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else + \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else + \ifx \bgroup\@entemp \let\@tempa\@enGroup \else + \ifx \@enum@\@entemp \let\@tempa\@gobble \else + \let\@tempa\@enOther + \fi\fi\fi\fi\fi\fi\fi\fi + \@tempa} +\newlength{\@sep} \newlength{\@@sep} +\setlength{\@sep}{.5\baselineskip plus.2\baselineskip + minus.2\baselineskip} +\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip + minus.05\baselineskip} +\providecommand{\sfbc}{\rmfamily\upshape} +\providecommand{\sfn}{\rmfamily\upshape} +\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt} +\def\enumerate{% + \ifnum \@enumdepth >3 \@toodeep\else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi + \@ifnextchar[{\@@enum@}{\@enum@}} +\def\@@enum@[#1]{% + \@enLab{}\let\@enThe\@enQmark + \@enloop#1\@enum@ + \ifx\@enThe\@enQmark\@warning{The counter will not be printed.% + ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi + \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}% + \expandafter\let\csname the\@enumctr\endcsname\@enThe + \csname c@\@enumctr\endcsname7 + \expandafter\settowidth + \csname leftmargin\romannumeral\@enumdepth\endcsname + {\the\@enLab\hskip\labelsep}% + \@enum@} +\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}% + {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}% + \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else + \setlength{\topsep}{\@sep}\fi + \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}% + \else \setlength{\itemsep}{\@@sep}\fi + %\setlength\leftmargin{\leftMargin}%%%{1.8em} + \setlength{\parsep}{0pt plus1pt minus1pt}% + \setlength{\parskip}{0pt plus1pt minus1pt} + }} + +\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else + \addvspace{\@sep}\fi \endlist} + +\def\sitem{\@noitemargtrue\@item[\@itemlabel *]} + +\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}} + +\def\@Itemize[#1]{\def\next{#1}% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \ifx\next\@empty\else\expandafter\def\csname + labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi% + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter\list\csname\@itemitem\endcsname + {\def\makelabel##1{\hss\llap{##1}}}% + \fi} + +% +% Customized theorem +% (non-italic enunciations) +% + +\def\newdefinition#1{% + \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%] +\def\@ndfn#1#2{% + \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}} +\def\@xndfn#1#2[#3]{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@newctr{#1}[#3]% + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@dfncountersep + \@dfncounter{#1}}% + \global\@namedef{#1}{\@dfn{#1}{#2}}% + \global\@namedef{end#1}{\@enddefinition}}} +\def\@yndfn#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}% + \global\@namedef{#1}{\@dfn{#1}{#2}}% + \global\@namedef{end#1}{\@enddefinition}}} +\def\@odfn#1[#2]#3{% + \@ifundefined{c@#2}{\@nocounterr{#2}}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}} + \global\@namedef{#1}{\@dfn{#2}{#3}}% + \global\@namedef{end#1}{\@enddefinition}}}} +\def\@dfn#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}} +\def\@xdfn#1#2{% + \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@ydfn#1#2[#3]{% + \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces} +\def\@dfncounter#1{\noexpand\arabic{#1}} +\def\@dfncountersep{.} +\def\@begindefinition#1#2{\trivlist + \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape} +\def\@opargbegindefinition#1#2#3{\trivlist + \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape} +\def\@enddefinition{\endtrivlist} + +\def\@begintheorem#1#2{\trivlist + \let\baselinestretch\@blstr + \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape} +\def\@opargbegintheorem#1#2#3{\trivlist + \let\baselinestretch\@blstr + \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape} +% +% Unnumbered roman proofs +% +\def\newproof#1{% + \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}} +\def\@nprf#1#2{% + \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}} +\def\@xnprf#1#2[#3]{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@newctr{#1}[#3]% + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@prfcountersep + \@prfcounter{#1}}% + \global\@namedef{#1}{\@prf{#1}{#2}}% + \global\@namedef{end#1}{\@endproof}}} +\def\@ynprf#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}% + \global\@namedef{#1}{\@prf{#1}{#2}}% + \global\@namedef{end#1}{\@endproof}}} +\def\@oprf#1[#2]#3{% + \@ifundefined{c@#2}{\@nocounterr{#2}}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% + \global\@namedef{#1}{\@prf{#2}{#3}}% + \global\@namedef{end#1}{\@endproof}}}} +\def\@prf#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}} +\def\@xprf#1#2{% + \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yprf#1#2[#3]{% + \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces} +\def\@prfcounter#1{\noexpand\arabic{#1}} +\def\@prfcountersep{.} +\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr + \item[\hskip \labelsep{\scshape #1.}]\rmfamily} +\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr + \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily} +\def\@endproof{\endtrivlist} +\newcommand*{\qed}{\hbox{}\hfill$\Box$} + +\xspaceaddexceptions{]} + +\ABD{\@ifundefined{bibsep}{}{\bibsep=0pt}} +%\ifbool{casfinallayout} +% {% + \ABD{\gdef\bibfont{\fontsize{8pt}{10pt}\selectfont}% + \gdef\casbiographyfont{\fontsize{8pt}{10pt}\selectfont}% + }% +% } +% {} + +\endinput + diff --git a/pubs/shared/els-cas/cas-dc-sample.tex b/pubs/shared/els-cas/cas-dc-sample.tex new file mode 100644 index 000000000..aeaa9e565 --- /dev/null +++ b/pubs/shared/els-cas/cas-dc-sample.tex @@ -0,0 +1,463 @@ +%% +%% Copyright 2019-2024 Elsevier Ltd +%% +%% Version 2.4 +%% +%% This file is part of the 'CAS Bundle'. +%% -------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'CAS Bundle' is +%% given in the file `manifest.txt'. +%% +%% Template article for cas-dc documentclass for +%% double column output. + +%\documentclass[a4paper,fleqn,longmktitle]{cas-dc} +\documentclass[a4paper,fleqn]{cas-dc} + +%\usepackage[authoryear,longnamesfirst]{natbib} +%\usepackage[authoryear]{natbib} +\usepackage[numbers]{natbib} + +%%%Author definitions +\def\tsc#1{\csdef{#1}{\textsc{\lowercase{#1}}\xspace}} +\tsc{WGM} +\tsc{QE} +\tsc{EP} +\tsc{PMS} +\tsc{BEC} +\tsc{DE} +%%% + +\begin{document} +\let\WriteBookmarks\relax +\def\floatpagepagefraction{1} +\def\textpagefraction{.001} +\shorttitle{Leveraging social media news} +\shortauthors{J.K. Krishnan et~al.} + +\title [mode = title]{This is a specimen $a_b$ title} +\tnotemark[1,2] + +\tnotetext[1]{This document is the results of the research + project funded by the National Science Foundation.} + +\tnotetext[2]{The second title footnote which is a longer text matter + to fill through the whole text width and overflow into + another line in the footnotes area of the first page.} + + +\author[1,3]{J.K. Krishnan}[type=editor, + auid=000,bioid=1, + prefix=Sir, + role=Researcher, + orcid=0000-0001-0000-0000] +\cormark[1] +\fnmark[1] +\ead{jkk@example.in} +\ead[url]{www.jkkrishnan.in} + +\credit{Conceptualization of this study, Methodology, Software} + +%\address[1]{, Street 129, 1043 NX Amsterdam, The Netherlands} +\affiliation[1]{organization={Department of Physics, J.K. Institute of Science}, + addressline={Jawahar Nagar}, + city={Trivandrum}, +% citysep={}, % Uncomment if no comma needed between city and postcode + postcode={695013}, + state={Kerala}, + country={India}} + +\author[2,4]{Han Thane}[style=chinese] + +\author[2,3]{William {J. Hansen}}[% + role=Co-ordinator, + suffix=Jr, + ] +\fnmark[2] +\ead{wjh@example.org} +\ead[URL]{https://www.university.org} + +\credit{Data curation, Writing - Original draft preparation} + +\affiliation[2]{organization={World Scientific University}, + addressline={Street 29}, + postcode={1011 NX}, + postcodesep={}, + city={Amsterdam}, + country={The Netherlands}} + +\author[1,3]{T. Rafeeq} +\cormark[2] +\fnmark[1,3] +\ead{t.rafeeq@example.in} +\ead[URL]{www.campus.in} + +\affiliation[3]{organization={University of Intelligent Studies}, + addressline={Street 15}, + city={Jabaldesh}, + postcode={825001}, + state={Orissa}, + country={India}} + +\cortext[cor1]{Corresponding author} +\cortext[cor2]{Principal corresponding author} +\fntext[fn1]{This is the first author footnote, but is common to third + author as well.} +\fntext[fn2]{Another author footnote, this is a very long footnote and + it should be a really long footnote. But this footnote is not yet + sufficiently long enough to make two lines of footnote text.} + +\nonumnote{This note has no numbers. In this work we demonstrate $a_b$ + the formation Y\_1 of a new type of polariton on the interface + between a cuprous oxide slab and a polystyrene micro-sphere placed + on the slab. + } + +\begin{abstract} +This template helps you to create a properly formatted \LaTeX\ manuscript. + +\noindent\texttt{\textbackslash begin{abstract}} \dots +\texttt{\textbackslash end{abstract}} and +\verb+\begin{keyword}+ \verb+...+ \verb+\end{keyword}+ +which +contain the abstract and keywords respectively. + +\noindent Each keyword shall be separated by a \verb+\sep+ command. +\end{abstract} + +\begin{graphicalabstract} +\includegraphics{figs/cas-grabs.pdf} +\end{graphicalabstract} + +\begin{highlights} +\item Research highlights item 1 +\item Research highlights item 2 +\item Research highlights item 3 +\end{highlights} + +\begin{keywords} +quadrupole exciton \sep polariton \sep \WGM \sep \BEC +\end{keywords} + + +\maketitle + +\section{Introduction} + +The Elsevier cas-dc class is based on the +standard article class and supports almost all of the functionality of +that class. In addition, it features commands and options to format the +\begin{itemize} \item document style \item baselineskip \item front +matter \item keywords and MSC codes \item theorems, definitions and +proofs \item lables of enumerations \item citation style and labeling. +\end{itemize} + +This class depends on the following packages +for its proper functioning: + +\begin{enumerate} +\itemsep=0pt +\item {natbib.sty} for citation processing; +\item {geometry.sty} for margin settings; +\item {fleqn.clo} for left aligned equations; +\item {graphicx.sty} for graphics inclusion; +\item {hyperref.sty} optional packages if hyperlinking is + required in the document; +\end{enumerate} + +All the above packages are part of any +standard \LaTeX{} installation. +Therefore, the users need not be +bothered about downloading any extra packages. + +\section{Installation} + +The package is available at author resources page at Elsevier +(\url{http://www.elsevier.com/locate/latex}). +The class may be moved or copied to a place, usually,\linebreak +\verb+$TEXMF/tex/latex/elsevier/+, %$%%%%%%%%%%%%%%%%%%%%%%%%%%%% +or a folder which will be read +by \LaTeX{} during document compilation. The \TeX{} file +database needs updation after moving/copying class file. Usually, +we use commands like \verb+mktexlsr+ or \verb+texhash+ depending +upon the distribution and operating system. + +\section{Front matter} + +The author names and affiliations could be formatted in two ways: +\begin{enumerate}[(1)] +\item Group the authors per affiliation. +\item Use footnotes to indicate the affiliations. +\end{enumerate} +See the front matter of this document for examples. +You are recommended to conform your choice to the journal you +are submitting to. + +\section{Bibliography styles} + +There are various bibliography styles available. You can select the +style of your choice in the preamble of this document. These styles are +Elsevier styles based on standard styles like Harvard and Vancouver. +Please use Bib\TeX\ to generate your bibliography and include DOIs +whenever available. + +Here are two sample references: +\cite{Fortunato2010} +\cite{Fortunato2010,NewmanGirvan2004} +\cite{Fortunato2010,Vehlowetal2013} + +\section{Floats} +{Figures} may be included using the command,\linebreak +\verb+\includegraphics+ in +combination with or without its several options to further control +graphic. \verb+\includegraphics+ is provided by {graphic[s,x].sty} +which is part of any standard \LaTeX{} distribution. +{graphicx.sty} is loaded by default. \LaTeX{} accepts figures in +the postscript format while pdf\LaTeX{} accepts {*.pdf}, +{*.mps} (metapost), {*.jpg} and {*.png} formats. +pdf\LaTeX{} does not accept graphic files in the postscript format. + +\begin{figure} + \centering + \includegraphics[width=.9\columnwidth]{figs/cas-munnar-2024.jpg} + \caption{The beauty of Munnar, Kerala. (See also Table \protect\ref{tbl1}).} + \label{FIG:1} +\end{figure} + + +The \verb+table+ environment is handy for marking up tabular +material. If users want to use {multirow.sty}, +{array.sty}, etc., to fine control/enhance the tables, they +are welcome to load any package of their choice and +{cas-dc.cls} will work in combination with all loaded +packages. + +\begin{table}[width=.9\linewidth,cols=4,pos=h] +\caption{This is a test caption. This is a test caption. This is a test +caption. This is a test caption. Use \{table*\} instead of \{table\} if you +want a two column spanned table.}\label{tbl1} +\begin{tabular*}{\tblwidth}{@{} LLLL@{} } +\toprule +Col 1 & Col 2 & Col 3 & Col4\\ +\midrule +12345 & 12345 & 123 & 12345 \\ +12345 & 12345 & 123 & 12345 \\ +12345 & 12345 & 123 & 12345 \\ +12345 & 12345 & 123 & 12345 \\ +12345 & 12345 & 123 & 12345 \\ +\bottomrule +\end{tabular*} +\end{table} + +\section[Theorem and ...]{Theorem and theorem like environments} + +{cas-dc.cls} provides a few shortcuts to format theorems and +theorem-like environments with ease. In all commands the options that +are used with the \verb+\newtheorem+ command will work exactly in the same +manner. {cas-dc.cls} provides three commands to format theorem or +theorem-like environments: + +\begin{verbatim} + \newtheorem{theorem}{Theorem} + \newtheorem{lemma}[theorem]{Lemma} + \newdefinition{rmk}{Remark} + \newproof{pf}{Proof} + \newproof{pot}{Proof of Theorem \ref{thm2}} +\end{verbatim} + + +The \verb+\newtheorem+ command formats a +theorem in \LaTeX's default style with italicized font, bold font +for theorem heading and theorem number at the right hand side of the +theorem heading. It also optionally accepts an argument which +will be printed as an extra heading in parentheses. + +\begin{verbatim} + \begin{theorem} + For system (8), consensus can be achieved with + $\|T_{\omega z}$ ... + \begin{eqnarray}\label{10} + .... + \end{eqnarray} + \end{theorem} +\end{verbatim} + + +\newtheorem{theorem}{Theorem} + +\begin{theorem} +For system (8), consensus can be achieved with +$\|T_{\omega z}$ ... +\begin{eqnarray}\label{10} +.... +\end{eqnarray} +\end{theorem} + +The \verb+\newdefinition+ command is the same in +all respects as its \verb+\newtheorem+ counterpart except that +the font shape is roman instead of italic. Both +\verb+\newdefinition+ and \verb+\newtheorem+ commands +automatically define counters for the environments defined. + +The \verb+\newproof+ command defines proof environments with +upright font shape. No counters are defined. + +\begin{figure*} + \centering + \includegraphics[width=.9\textwidth]{figs/cas-munnar-2024.jpg} + \caption{The beauty of Munnar, Kerala. (See also Table \protect\ref{tbl1}).} + \label{FIG:2} +\end{figure*} + + +\section[Enumerated ...]{Enumerated and Itemized Lists} +{cas-dc.cls} provides an extended list processing macros +which makes the usage a bit more user friendly than the default +\LaTeX{} list macros. With an optional argument to the +\verb+\begin{enumerate}+ command, you can change the list counter +type and its attributes. + +\begin{verbatim} + \begin{enumerate}[1.] + \item The enumerate environment starts with an optional + argument `1.', so that the item counter will be suffixed + by a period. + \item You can use `a)' for alphabetical counter and '(i)' + for roman counter. + \begin{enumerate}[a)] + \item Another level of list with alphabetical counter. + \item One more item before we start another. + \item One more item before we start another. + \item One more item before we start another. + \item One more item before we start another. +\end{verbatim} + +Further, the enhanced list environment allows one to prefix a +string like `step' to all the item numbers. + +\begin{verbatim} + \begin{enumerate}[Step 1.] + \item This is the first step of the example list. + \item Obviously this is the second step. + \item The final step to wind up this example. + \end{enumerate} +\end{verbatim} + +\section{Cross-references} +In electronic publications, articles may be internally +hyperlinked. Hyperlinks are generated from proper +cross-references in the article. For example, the words +\textcolor{black!80}{Fig.~1} will never be more than simple text, +whereas the proper cross-reference \verb+\ref{tiger}+ may be +turned into a hyperlink to the figure itself: +\textcolor{blue}{Fig.~1}. In the same way, +the words \textcolor{blue}{Ref.~[1]} will fail to turn into a +hyperlink; the proper cross-reference is \verb+\cite{Knuth96}+. +Cross-referencing is possible in \LaTeX{} for sections, +subsections, formulae, figures, tables, and literature +references. + +\section{Bibliography} + +Two bibliographic style files (\verb+*.bst+) are provided --- +{model1-num-names.bst} and {model2-names.bst} --- the first one can be +used for the numbered scheme. This can also be used for the numbered +with new options of {natbib.sty}. The second one is for the author year +scheme. When you use model2-names.bst, the citation commands will be +like \verb+\citep+, \verb+\citet+, \verb+\citealt+ etc. However when +you use model1-num-names.bst, you may use only \verb+\cite+ command. + +\verb+thebibliography+ environment. Each reference is a\linebreak +\verb+\bibitem+ and each \verb+\bibitem+ is identified by a label, +by which it can be cited in the text: + +\noindent In connection with cross-referencing and +possible future hyperlinking it is not a good idea to collect +more that one literature item in one \verb+\bibitem+. The +so-called Harvard or author-year style of referencing is enabled +by the \LaTeX{} package {natbib}. With this package the +literature can be cited as follows: + +\begin{enumerate}[\textbullet] +\item Parenthetical: \verb+\citep{WB96}+ produces (Wettig \& Brown, 1996). +\item Textual: \verb+\citet{ESG96}+ produces Elson et al. (1996). +\item An affix and part of a reference:\break +\verb+\citep[e.g.][Ch. 2]{Gea97}+ produces (e.g. Governato et +al., 1997, Ch. 2). +\end{enumerate} + +In the numbered scheme of citation, \verb+\cite{