From 7440ab1c9085f09351e49da77fcfb40e1a4cae7d Mon Sep 17 00:00:00 2001 From: dzalkind Date: Wed, 9 Jul 2025 17:00:24 -0600 Subject: [PATCH 1/7] Fix case mask if no viable cases run --- raft/omdao_raft.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/raft/omdao_raft.py b/raft/omdao_raft.py index 49f659d..35db295 100644 --- a/raft/omdao_raft.py +++ b/raft/omdao_raft.py @@ -826,7 +826,8 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs): # use only first rotor/turbine case_metrics = [cm[0] for cm in results['case_metrics'].values()] stat = np.squeeze(np.array([cm[iout] for cm in case_metrics])) - outputs['stats_'+iout][case_mask] = stat + if np.any(case_mask): + outputs['stats_'+iout][case_mask] = stat # Other case outputs # for n in ['wind_PSD','wave_PSD']: @@ -844,13 +845,14 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs): outputs["yaw_period"] = outputs["rigid_body_periods"][5] # Compute some aggregate outputs manually - outputs['Max_Offset'] = np.sqrt(outputs['stats_surge_max'][case_mask]**2 + outputs['stats_sway_max'][case_mask]**2).max() - outputs['heave_avg'] = outputs['stats_heave_avg'][case_mask].mean() - outputs['Max_PtfmPitch'] = outputs['stats_pitch_max'][case_mask].max() - outputs['Std_PtfmPitch'] = outputs['stats_pitch_std'][case_mask].mean() - outputs['max_nac_accel'] = outputs['stats_AxRNA_std'][case_mask].max() - outputs['rotor_overspeed'] = (outputs['stats_omega_max'][case_mask].max() - inputs['rated_rotor_speed']) / inputs['rated_rotor_speed'] - outputs['max_tower_base'] = outputs['stats_Mbase_max'][case_mask].max() + if np.any(case_mask): + outputs['Max_Offset'] = np.sqrt(outputs['stats_surge_max'][case_mask]**2 + outputs['stats_sway_max'][case_mask]**2).max() + outputs['heave_avg'] = outputs['stats_heave_avg'][case_mask].mean() + outputs['Max_PtfmPitch'] = outputs['stats_pitch_max'][case_mask].max() + outputs['Std_PtfmPitch'] = outputs['stats_pitch_std'][case_mask].mean() + outputs['max_nac_accel'] = outputs['stats_AxRNA_std'][case_mask].max() + outputs['rotor_overspeed'] = (outputs['stats_omega_max'][case_mask].max() - inputs['rated_rotor_speed']) / inputs['rated_rotor_speed'] + outputs['max_tower_base'] = outputs['stats_Mbase_max'][case_mask].max() # Combined outputs for OpenFAST outputs['platform_displacement'] = model.fowtList[0].V From 0e9ec67fbcf091a610215b46607d0d9964056531 Mon Sep 17 00:00:00 2001 From: dzalkind Date: Wed, 9 Jul 2025 17:00:41 -0600 Subject: [PATCH 2/7] Add rigid_bodies to RAFT --- raft/omdao_raft.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/raft/omdao_raft.py b/raft/omdao_raft.py index 35db295..7b486f3 100644 --- a/raft/omdao_raft.py +++ b/raft/omdao_raft.py @@ -143,6 +143,11 @@ def setup(self): self.add_input("mu_air", val=1.81e-5, units="kg/(m*s)", desc="Dynamic viscosity of air") self.add_input("shear_exp", val=0.2, desc="Shear exponent of the wind.") self.add_input('rated_rotor_speed', val=0.0, units='rpm', desc='rotor rotation speed at rated') + + for k in range(modeling_opt['floating']['rigid_bodies']['n_bodies']): + self.add_input(f"rigid_body_{k}_node", val=np.zeros(3), units="m", desc=f"location of rigid body {k}") + self.add_input(f"rigid_body_{k}_mass", val=0.0, units="kg", desc=f"point mass of rigid body {k}") + self.add_input(f"rigid_body_{k}_inertia", val=np.zeros(3), units="kg*m**2", desc=f"inertia of rigid body {k}") # member inputs for i in range(1, nmembers + 1): @@ -209,8 +214,8 @@ def setup(self): self.add_input(m_name+'CaEnd', val=0.0, desc='End axial added mass coefficient') else: self.add_input(m_name+'CdEnd', val=np.zeros(mnpts), desc='End axial drag coefficient') - self.add_input(m_name+'CaEnd', val=np.zeros(mnpts), desc='End axial added mass coefficient') - + self.add_input(m_name+'CaEnd', val=np.zeros(mnpts), desc='End axial added mass coefficient') + self.add_input(m_name+'rho_shell', val=0.0, units='kg/m**3', desc='Material density') # optional self.add_input(m_name+'l_fill', val=np.zeros(mnpts_lfill), units='m', desc='Fill heights of ballast in each section') @@ -505,6 +510,10 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs): # Platform members design['platform'] = {} design['platform']['potModMaster'] = int(modeling_opt['potential_model_override']) + # potFirstOrder needs to be 1 to read pre-existing WAMIT-like file + if design['platform']['potModMaster'] == 3: + design['platform']['potFirstOrder'] = 1 + design['platform']['hydroPath'] = modeling_opt['BEM_dir'] design['platform']['dlsMax'] = float(modeling_opt['dls_max']) design['platform']["intersectMesh"] = intersectMesh if intersectMesh==1: @@ -513,6 +522,20 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs): else: design['platform']['characteristic_length_min'] = 1.0 design['platform']['characteristic_length_max'] = 3.0 + + # Add rigid bodies (add external loads here, too, someday) + additional_effects = [] + for k in range(modeling_opt['floating']['rigid_bodies']['n_bodies']): + add_eff = {} + add_eff['type'] = 'point_inertia' + add_eff['location'] = inputs[f"rigid_body_{k}_node"] + add_eff['mass'] = float(inputs[f"rigid_body_{k}_mass"][0]) + add_eff['inertia'] = np.r_[inputs[f"rigid_body_{k}_inertia"],0.0,0.0,0.0] # RAFT expects 6D inertia vector + additional_effects.append(add_eff) + + if additional_effects: + design['platform']['additional_effects'] = additional_effects + # lowest BEM freq needs to be just below RAFT min_freq because of interpolation in RAFT if float(modeling_opt['min_freq_BEM']) >= modeling_opt['min_freq']: modeling_opt['min_freq_BEM'] = modeling_opt['min_freq'] - 1e-7 From 14ee660ccaf32011ee7ed8190330a23deb23585e Mon Sep 17 00:00:00 2001 From: dzalkind Date: Wed, 9 Jul 2025 17:05:20 -0600 Subject: [PATCH 3/7] Fix MoI label --- raft/omdao_raft.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/raft/omdao_raft.py b/raft/omdao_raft.py index 7b486f3..d1f7047 100644 --- a/raft/omdao_raft.py +++ b/raft/omdao_raft.py @@ -527,10 +527,10 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs): additional_effects = [] for k in range(modeling_opt['floating']['rigid_bodies']['n_bodies']): add_eff = {} - add_eff['type'] = 'point_inertia' - add_eff['location'] = inputs[f"rigid_body_{k}_node"] - add_eff['mass'] = float(inputs[f"rigid_body_{k}_mass"][0]) - add_eff['inertia'] = np.r_[inputs[f"rigid_body_{k}_inertia"],0.0,0.0,0.0] # RAFT expects 6D inertia vector + add_eff['type'] = 'point_inertia' + add_eff['location'] = inputs[f"rigid_body_{k}_node"] + add_eff['mass'] = float(inputs[f"rigid_body_{k}_mass"][0]) + add_eff['moments_of_inertia'] = np.r_[inputs[f"rigid_body_{k}_inertia"],0.0,0.0,0.0] # RAFT expects 6D inertia vector additional_effects.append(add_eff) if additional_effects: From aec34d7b269b1ea07a911e63eb54efe10398d3df Mon Sep 17 00:00:00 2001 From: dzalkind Date: Tue, 22 Jul 2025 09:29:20 -0600 Subject: [PATCH 4/7] Fix max nacelle acceleration output --- raft/omdao_raft.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raft/omdao_raft.py b/raft/omdao_raft.py index d1f7047..35642c0 100644 --- a/raft/omdao_raft.py +++ b/raft/omdao_raft.py @@ -873,7 +873,7 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs): outputs['heave_avg'] = outputs['stats_heave_avg'][case_mask].mean() outputs['Max_PtfmPitch'] = outputs['stats_pitch_max'][case_mask].max() outputs['Std_PtfmPitch'] = outputs['stats_pitch_std'][case_mask].mean() - outputs['max_nac_accel'] = outputs['stats_AxRNA_std'][case_mask].max() + outputs['max_nac_accel'] = outputs['stats_AxRNA_max'][case_mask].max() outputs['rotor_overspeed'] = (outputs['stats_omega_max'][case_mask].max() - inputs['rated_rotor_speed']) / inputs['rated_rotor_speed'] outputs['max_tower_base'] = outputs['stats_Mbase_max'][case_mask].max() From 47594838c1893d1c704d4dd1830638a9335dbae4 Mon Sep 17 00:00:00 2001 From: dzalkind Date: Tue, 2 Sep 2025 15:52:41 -0600 Subject: [PATCH 5/7] Update options/inputs provided by WEIS --- tests/test_data/weis_inputs.yaml | 59 +++--- tests/test_data/weis_options.yaml | 331 +++++++++++++++++------------- 2 files changed, 213 insertions(+), 177 deletions(-) diff --git a/tests/test_data/weis_inputs.yaml b/tests/test_data/weis_inputs.yaml index ad67869..6349dfe 100644 --- a/tests/test_data/weis_inputs.yaml +++ b/tests/test_data/weis_inputs.yaml @@ -1,10 +1,10 @@ -turbine_mRNA: [951840.4416139615] -turbine_IxRNA: [409461632.2627004] -turbine_IrRNA: [278545821.52289987] -turbine_xCG_RNA: [-7.3422980746742255] +turbine_mRNA: [951979.776410793] +turbine_IxRNA: [410673981.6585206] +turbine_IrRNA: [279218289.3620287] +turbine_xCG_RNA: [-7.344891303720308] turbine_hHub: [150.0] turbine_overhang: [12.0313] -turbine_Fthrust: [3791040.342084202] +turbine_Fthrust: [3627299.9873144263] turbine_yaw_stiffness: [9286691506.067833] turbine_tower_rA: [0.0, 0.0, 15.0] turbine_tower_rB: [0.0, 0.0, 144.386] @@ -12,27 +12,27 @@ turbine_tower_gamma: [0.0] turbine_tower_stations: [0.0, 0.10047454902385111, 0.20094909804770222, 0.30142364707155334, 0.40189819609540445, 0.5023727451192556, 0.6028472941431067, 0.7033218431669578, 0.8037963921908089, 0.90427094121466, 1.0] turbine_tower_d: [10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 6.5] turbine_tower_t: [0.09, 0.0870568244887821, 0.06969791129654272, 0.06659467020278927, 0.048969783194233195, 0.04562355995431616, 0.028128174258004363, 0.025616868141627953, 0.009881156462835017, 0.009941082963793929, 0.005931142626464429] -turbine_tower_Cd: [0.7136445270091933, 0.7136445270091933, 0.7136445270091933, 0.7136445270091933, 0.7136445270091933, 0.7136445270091933, 0.7136445270091933, 0.7136445270091933, 0.7136445270091933, 0.7136445270091933, 0.7018751605201591] +turbine_tower_Cd: [0.717377272602844, 0.717377272602844, 0.717377272602844, 0.717377272602844, 0.717377272602844, 0.717377272602844, 0.717377272602844, 0.717377272602844, 0.717377272602844, 0.717377272602844, 0.7011960384944751] turbine_tower_Ca: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] turbine_tower_CdEnd: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] turbine_tower_CaEnd: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] turbine_tower_rho_shell: [7800.0] -rotor_PC_GS_angles: [0.060459247838740356, 0.08861269155978418, 0.1107444641211933, 0.12918854333222696, 0.14581834867809282, 0.161009288651768, 0.1752811375448905, 0.18846782964202727, 0.20148949662798657, 0.21333369207070996, 0.22504596166133817, 0.23649880414073302, 0.24720880609134044, 0.2578916012355006, 0.2683937152781697, 0.27828544227769414, 0.2881842628346356, 0.29808977932019026, 0.3073566747005221, 0.31660963526608277, 0.3258844284959737, 0.33489431971596006, 0.3436168999217967, 0.3523643657469011, 0.3611381487001811, 0.36948893290216206, 0.37776270100130327, 0.38607205778676645, 0.39442021360250795, 0.40231559866359] -rotor_PC_GS_Kp: [-1.4499405919862591, -1.2413889626787675, -1.0734895236563196, -0.9354115972353877, -0.819858085360773, -0.7217330780640242, -0.6373700640757235, -0.5640635915260396, -0.4997737444935102, -0.4429333490395087, -0.3923185278421952, -0.3469595798826372, -0.30607825273859846, -0.26904271765841203, -0.23533468057547627, -0.2045249768481733, -0.17625520185347587, -0.15022370480990338, -0.1261747827579203, -0.10389025294928565, -0.08318281451967177, -0.06389077139059254, -0.04587380151254236, -0.029009538146068475, -0.013190786980697256, 0.001676754727471223, 0.015676379571040042, 0.02888193125914981, 0.04135910754190046, 0.05316655332571051] -rotor_PC_GS_Ki: [-0.14754944393717015, -0.13161587759614177, -0.11878818183960942, -0.10823888137063188, -0.09941047013497416, -0.09191361518990242, -0.08546819117391558, -0.07986749868603767, -0.07495568597976036, -0.07061301929897752, -0.0667459931143122, -0.06328052123632814, -0.060157144352043966, -0.05732759007267858, -0.05475226018017072, -0.05239836603934572, -0.05023852515572539, -0.04824969108870165, -0.04641232786014341, -0.04470976607597734, -0.0431276957509139, -0.04165376313254081, -0.040277247466998095, -0.038988799805215024, -0.037780230387835706, -0.0366443343849048, -0.035574748153738865, -0.03456582995640299, -0.03361256041489877, -0.032710458995988026] -Fl_Kp: [-8.834100956191923] -rotor_inertia: [349679043.76099414] -rotor_TC_VS_Kp: [-63669658.43642259] -rotor_TC_VS_Ki: [-5035378.230158315] +rotor_PC_GS_angles: [0.06015621594430109, 0.08675397753892723, 0.11097773981951492, 0.1287459434421391, 0.14454605098444548, 0.15993721317954257, 0.17494236618281866, 0.18861117975687766, 0.2004324453200168, 0.2121751665613698, 0.22384809069072287, 0.2354569526638055, 0.2470044718747377, 0.2575377877171018, 0.267299378320044, 0.27706026354143914, 0.2868199696485141, 0.29658045540824046, 0.3063462941625118, 0.31612448879138616, 0.3251350606927088, 0.33366362280105333, 0.342224588180578, 0.3508194927384396, 0.3594495284649828, 0.3681146185375976, 0.37681239152358265, 0.38554186170527055, 0.3934834895800912, 0.4011365925128091] +rotor_PC_GS_Kp: [-1.4644304857437715, -1.2532012907932009, -1.0834525761469678, -0.9440581114537551, -0.827544248151874, -0.728704740333633, -0.6438014916996978, -0.5700811189668915, -0.5054707372266077, -0.4483799623434253, -0.39756824288811243, -0.35205368431507833, -0.3110489758497734, -0.27391546453480875, -0.24012965036251024, -0.20925835224847109, -0.1809400351452369, -0.15487058581571905, -0.1307923479900249, -0.1084855776158497, -0.087761717139842, -0.06845805251942988, -0.050433432300207345, -0.033564810356580585, -0.017744433152270558, -0.002877535564501279, 0.011119558867274367, 0.02432101372885265, 0.03679279422670766, 0.048593769579713404] +rotor_PC_GS_Ki: [-0.14879112127817487, -0.13259089806268343, -0.11957202030549056, -0.10888116176407336, -0.09994513095814507, -0.0923646348551347, -0.08585298015744017, -0.08019899613274052, -0.07524370287190296, -0.07086512586284244, -0.06696812101305534, -0.063477381919862, -0.06033252578300301, -0.05748457111358252, -0.054893368078242494, -0.05252569385349127, -0.050353820508678225, -0.04835442407892826, -0.04650774361648926, -0.04479692585115662, -0.04320750936127893, -0.04172701479327737, -0.04034461653628361, -0.03905087756763184, -0.03783753372980171, -0.0366973170116531, -0.03562380984700126, -0.03461132425959537, -0.03365480104789091, -0.03274972523711606] +Fl_Kp: [-8.917417189806258] +rotor_inertia: [350889355.0579736] +rotor_TC_VS_Kp: [-62033590.16261847] +rotor_TC_VS_Ki: [-5052806.71283482] tilt: [6.0] precone: [4.0] wind_reference_height: [150.0] hub_radius: [3.97] gear_ratio: [1.0] -blade_r: [3.97, 8.009448011426317, 12.048896022852633, 16.088344034278947, 20.127792045705267, 24.16724005713158, 28.206688068557895, 32.24613607998422, 36.285584091410534, 40.32503210283684, 44.36448011426316, 48.403928125689475, 52.443376137115784, 56.48282414854211, 60.52227215996842, 64.56172017139475, 68.60116818282106, 72.64061619424737, 76.68006420567369, 80.7195122171, 84.75896022852633, 88.79840823995265, 92.83785625137894, 96.87730426280528, 100.91675227423157, 104.9562002856579, 108.99564829708422, 113.03509630851052, 117.07454431993685, 121.11399233136315] +blade_r: [3.97, 8.014334554327489, 12.058669108654977, 16.103003662982466, 20.147338217309954, 24.19167277163744, 28.23600732596493, 32.28034188029242, 36.32467643461991, 40.369010988947394, 44.41334554327488, 48.45768009760237, 52.502014651929855, 56.546349206257354, 60.59068376058483, 64.63501831491233, 68.6793528692398, 72.72368742356731, 76.76802197789479, 80.81235653222227, 84.85669108654977, 88.90102564087726, 92.94536019520473, 96.98969474953225, 101.03402930385971, 105.0783638581872, 109.12269841251471, 113.16703296684217, 117.21136752116966, 121.25570207549714] blade_chord: [5.2, 5.2265040720520535, 5.319400683825207, 5.4580745530036845, 5.603038107463281, 5.718286587458929, 5.764630606410189, 5.715053106286686, 5.539182293334066, 5.290780459215475, 5.034005694445184, 4.815660040795825, 4.623237527554848, 4.432040224442178, 4.2451981651395, 4.065767388212587, 3.896040232078195, 3.7350841723423227, 3.5792063535409593, 3.4245801420565267, 3.267946590725438, 3.111859691750389, 2.957140175463699, 2.800021994595202, 2.6367899876098777, 2.4641317667059357, 2.2834502451238916, 2.0956817072301495, 1.9024851146667074, 0.5000000000000001] blade_theta: [15.594553019711718, 15.488273108365346, 14.71353124178717, 13.333617291568489, 11.64349455458099, 9.927004257169598, 8.44548693054192, 7.300998417700017, 6.228888266329778, 5.229058385210934, 4.345869365684453, 3.606791508890919, 2.9798194943332845, 2.4229574992772953, 1.9243945072809063, 1.4686902287805779, 1.0565354306085457, 0.6927184228293563, 0.3553347025744227, 0.01833021655638992, -0.355885118343244, -0.8310248222211819, -1.3743361006713515, -1.8520979156145947, -2.1407698795062395, -2.1741333308415802, -2.1073589596622617, -1.9479166540529262, -1.6623005276253076, -1.2423877062729698] -blade_Rtip: [121.11399233136315] +blade_Rtip: [121.25570207549714] blade_precurve: [0.0, 0.034295923985786604, 0.08329262571797669, 0.1392555188551465, 0.19190331656176873, 0.232028257864551, 0.24918042933165166, 0.2496141741724728, 0.24625256887234165, 0.2404720106240574, 0.23297926741790076, 0.2179571400171469, 0.17712118065470675, 0.10030156784192272, 1.126605912840715e-05, -0.11231262929473985, -0.24379916019447512, -0.4153387722179258, -0.6207684349190539, -0.8462432424369124, -1.0798464372334413, -1.3290155919297535, -1.6021369821922977, -1.8948995248383433, -2.201796716438755, -2.5227281124194536, -2.8639215886652067, -3.2248356445430946, -3.6046563533868463, -3.9999999999999996] blade_precurveTip: [-3.9999999999999996] blade_presweep: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] @@ -14443,14 +14443,14 @@ airfoils_cm: - - [0.004849000257769079] - [0.004849000257769079] - [0.004849000257769079] -rotor_powercurve_v: [3.0, 4.272046072021935, 5.304031475548529, 6.080106111341955, 6.588350372834853, 6.82095821746675, 6.867559376486635, 7.192653799388591, 7.791248412775406, 8.6541494974404, 9.768103893234573, 10.665311954553012, 11.116002552239781, 12.677143313907283, 14.42754886624012, 16.340335009504354, 18.386123566365413, 20.533493596628738, 22.7494639864494, 25.0] -rotor_powercurve_omega_rpm: [4.999999999999999, 4.999999999999999, 4.999999999999999, 4.999999999999999, 4.999999999999999, 4.999999999999999, 4.999999999999999, 5.1039772317494405, 5.5287458029872045, 6.141068822031498, 6.931541717282476, 7.4903250909423065, 7.4903250909423065, 7.4903250909423065, 7.4903250909423065, 7.4903250909423065, 7.4903250909423065, 7.4903250909423065, 7.4903250909423065, 7.4903250909423065] -rotor_powercurve_pitch: [3.900184620042864, 3.559681534558776, 2.5497645040404984, 1.4894509402020701, 0.6685090860966085, 0.25694655220728596, 0.17138140191409368, 0.0, 0.0, 0.0, 0.0, 0.0, 3.441213241385218, 7.615587064274068, 10.686243106250354, 13.419001890543555, 15.973859706281404, 18.403061394462384, 20.721949200863058, 22.929486377590134] +rotor_powercurve_v: [3.0, 4.272046072021935, 5.304031475548529, 6.080106111341955, 6.588350372834853, 6.82095821746675, 6.867559376486635, 7.192653799388591, 7.791248412775406, 8.6541494974404, 9.768103893234573, 11.116002552239781, 11.179406673813915, 12.677143313907283, 14.42754886624012, 16.340335009504354, 18.386123566365413, 20.533493596628738, 22.7494639864494, 25.0] +rotor_powercurve_omega_rpm: [4.999999999999999, 4.999999999999999, 4.999999999999999, 4.999999999999999, 4.999999999999999, 4.999999999999999, 4.999999999999999, 5.11046111553664, 5.535769295383005, 6.148870184530444, 6.940347264196247, 7.499840493384918, 7.499840493384918, 7.499840493384918, 7.499840493384918, 7.499840493384918, 7.499840493384918, 7.499840493384918, 7.499840493384918, 7.499840493384918] +rotor_powercurve_pitch: [3.898466817660143, 3.5591052879218967, 2.550663449100678, 1.491266913749371, 0.6711739475940427, 0.26014493002007283, 0.17458008976326297, 0.0, 0.0, 0.0, 0.8948880859674491, 3.651939589378261, 3.732476464199819, 7.630932935649058, 10.688118284036522, 13.411089665698448, 15.95793408825377, 18.38024432479316, 20.693123146046435, 22.895369505783574] rho_air: [1.225] rho_water: [1025.0] mu_air: [1.81e-05] shear_exp: [0.12] -rated_rotor_speed: [7.4903250909423065] +rated_rotor_speed: [7.499840493384918] platform_member1_heading: [] platform_member1_rA: [0.0, 0.0, -20.0] platform_member1_rB: [0.0, 0.0, 15.0] @@ -14487,8 +14487,8 @@ platform_member2_Ca: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] platform_member2_CdEnd: [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6] platform_member2_CaEnd: [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6] platform_member2_rho_shell: [7800.0] -platform_member2_l_fill: [0.0400627872412308, 0.05, 0.07139999999999999, 0.027130109943361083, 0.0, 0.0] -platform_member2_rho_fill: [5000.0, 1025.0, 1025.0, 1025.0, 0.0, 0.0] +platform_member2_l_fill: [0.0400627872412308, 0.05, 0.06200679454433111, 0.0, 0.0, 0.0] +platform_member2_rho_fill: [5000.0, 1025.0, 1025.0, 0.0, 0.0, 0.0] platform_member2_cap_stations: [0.0, 0.05, 0.2, 1.0] platform_member2_cap_t: [0.05, 0.05, 0.05, 0.05] platform_member2_cap_d_in: [0.0, 0.0, 0.0, 0.0] @@ -14509,8 +14509,8 @@ platform_member3_Ca: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] platform_member3_CdEnd: [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6] platform_member3_CaEnd: [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6] platform_member3_rho_shell: [7800.0] -platform_member3_l_fill: [0.04006278724123036, 0.05, 0.07139999999999999, 0.02713010994336114, 0.0, 0.0] -platform_member3_rho_fill: [5000.0, 1025.0, 1025.0, 1025.0, 0.0, 0.0] +platform_member3_l_fill: [0.04006278724123036, 0.05, 0.06200679454433117, 0.0, 0.0, 0.0] +platform_member3_rho_fill: [5000.0, 1025.0, 1025.0, 0.0, 0.0, 0.0] platform_member3_cap_stations: [0.0, 0.05, 0.2, 1.0] platform_member3_cap_t: [0.05, 0.05, 0.05, 0.05] platform_member3_cap_d_in: [0.0, 0.0, 0.0, 0.0] @@ -14531,8 +14531,8 @@ platform_member4_Ca: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] platform_member4_CdEnd: [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6] platform_member4_CaEnd: [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6] platform_member4_rho_shell: [7800.0] -platform_member4_l_fill: [0.0400627872412308, 0.05, 0.07139999999999999, 0.027130109943361083, 0.0, 0.0] -platform_member4_rho_fill: [5000.0, 1025.0, 1025.0, 1025.0, 0.0, 0.0] +platform_member4_l_fill: [0.0400627872412308, 0.05, 0.06200679454433111, 0.0, 0.0, 0.0] +platform_member4_rho_fill: [5000.0, 1025.0, 1025.0, 0.0, 0.0, 0.0] platform_member4_cap_stations: [0.0, 0.05, 0.2, 1.0] platform_member4_cap_t: [0.05, 0.05, 0.05, 0.05] platform_member4_cap_d_in: [0.0, 0.0, 0.0, 0.0] @@ -14625,7 +14625,7 @@ platform_member8_Ca: platform_member8_CdEnd: [0.6, 0.6] platform_member8_CaEnd: [0.6, 0.6] platform_member8_rho_shell: [7800.0] -platform_member8_l_fill: [0.7749397040523187] +platform_member8_l_fill: [0.5843832758834666] platform_member8_rho_fill: [1025.0] platform_member8_cap_stations: [0.0, 1.0] platform_member8_cap_t: [0.05, 0.05] @@ -14653,7 +14653,7 @@ platform_member9_Ca: platform_member9_CdEnd: [0.6, 0.6] platform_member9_CaEnd: [0.6, 0.6] platform_member9_rho_shell: [7800.0] -platform_member9_l_fill: [0.7749397040523186] +platform_member9_l_fill: [0.5843832758834666] platform_member9_rho_fill: [1025.0] platform_member9_cap_stations: [0.0, 1.0] platform_member9_cap_t: [0.05, 0.05] @@ -14681,7 +14681,7 @@ platform_member10_Ca: platform_member10_CdEnd: [0.6, 0.6] platform_member10_CaEnd: [0.6, 0.6] platform_member10_rho_shell: [7800.0] -platform_member10_l_fill: [0.7749397040523187] +platform_member10_l_fill: [0.5843832758834666] platform_member10_rho_fill: [1025.0] platform_member10_cap_stations: [0.0, 1.0] platform_member10_cap_t: [0.05, 0.05] @@ -14699,7 +14699,7 @@ mooring_point6_location: [25.874997812786933, -44.816815908632684, -14.001000000 mooring_line1_length: [850.0] mooring_line2_length: [850.0] mooring_line3_length: [850.0] -mooring_line_type1_diameter: [0.185] +mooring_line_type1_diameter: [0.333] mooring_line_type1_mass_density: [681.0774999999999] mooring_line_type1_stiffness: [2922815000.0] mooring_line_type1_breaking_load: [28848692.800000004] @@ -14708,5 +14708,6 @@ mooring_line_type1_transverse_added_mass: [1.0] mooring_line_type1_tangential_added_mass: [0.0] mooring_line_type1_transverse_drag: [1.6] mooring_line_type1_tangential_drag: [0.1] +rotor_orientation: upwind nBlades: 3 airfoils_name: [circular, SNL-FFA-W3-500, FFA-W3-211, FFA-W3-241, FFA-W3-270blend, FFA-W3-301, FFA-W3-330blend, FFA-W3-360] diff --git a/tests/test_data/weis_options.yaml b/tests/test_data/weis_options.yaml index 7888a53..2781542 100644 --- a/tests/test_data/weis_options.yaml +++ b/tests/test_data/weis_options.yaml @@ -10,113 +10,126 @@ modeling_options: xi_start: 0.0 nIter: 15 dls_max: 5 - min_freq_BEM: 0.0159 + min_freq_BEM: 0.0158999 plot_designs: false runPyHAMS: true - BEM_dir: /Users/dzalkind/Tools/WEIS-Main/examples/15_RAFT_Studies/none/BEM + BEM_dir: /Users/dzalkind/Tools/WEIS-Main/examples/04_frequency_domain_analysis_design/outputs/04_umaine_semi_raft_opt/openfast_runs/BEM model_potential: [false, false, false, false, false, false, false, false, false, false] - intersection_mesh: 0 nfreq: 20 - n_cases: 98 + n_cases: 11 + intersection_mesh: 0 + floating: + joints: + n_joints: 11 + name: [main_keel, main_freeboard, col1_keel, col1_freeboard, col2_keel, col2_freeboard, col3_keel, col3_freeboard, anchor1, anchor2, anchor3] + transition: [false, true, false, false, false, false, false, false, false, false, false] + cylindrical: [false, false, true, true, true, true, true, true, true, true, true] + name2idx: {main_keel: 0, main_freeboard: 1, col1_keel: 2, col1_freeboard: 3, col2_keel: 4, col2_freeboard: 5, col3_keel: 6, col3_freeboard: 7, anchor1: 8, anchor2: 9, anchor3: 10, main_upper_pontoon: 11, main_lower_pontoon: 12, col1_upper_pontoon: 13, col1_lower_pontoon: 14, col1_fairlead: 15, col2_upper_pontoon: 16, col2_lower_pontoon: 17, col2_fairlead: 18, col3_upper_pontoon: 19, col3_lower_pontoon: 20, col3_fairlead: 21} + design_variable_data: + - indices: [0, 2, 4, 6] + dimension: 2 + - indices: [2, 3, 4, 5, 6, 7] + dimension: 0 + transition_joint: 1 + members: + n_members: 10 + name: [main_column, column1, column2, column3, Y_pontoon_upper1, Y_pontoon_upper2, Y_pontoon_upper3, Y_pontoon_lower1, Y_pontoon_lower2, Y_pontoon_lower3] + joint1: [main_keel, col1_keel, col2_keel, col3_keel, main_upper_pontoon, main_upper_pontoon, main_upper_pontoon, main_lower_pontoon, main_lower_pontoon, main_lower_pontoon] + joint2: [main_freeboard, col1_freeboard, col2_freeboard, col3_freeboard, col1_upper_pontoon, col2_upper_pontoon, col3_upper_pontoon, col1_lower_pontoon, col2_lower_pontoon, col3_lower_pontoon] + outer_shape: [circular, circular, circular, circular, circular, circular, circular, rectangular, rectangular, rectangular] + n_height: [4, 7, 7, 7, 2, 2, 2, 2, 2, 2] + n_geom: [2, 2, 2, 2, 2, 2, 2, 2, 2, 2] + n_layers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + n_ballasts: [0, 2, 2, 2, 0, 0, 0, 1, 1, 1] + n_bulkheads: [2, 4, 4, 4, 2, 2, 2, 2, 2, 2] + n_axial_joints: [2, 3, 3, 3, 0, 0, 0, 0, 0, 0] + layer_mat_member_main_column: [steel] + ballast_flag_member_main_column: [] + ballast_mat_member_main_column: [] + axial_joint_name_member_main_column: [main_upper_pontoon, main_lower_pontoon] + grid_member_main_column: [0.0, 0.1, 0.987, 1.0] + geom_member_main_column: [0.0, 1.0] + layer_mat_member_column1: [steel] + ballast_flag_member_column1: [false, true] + ballast_mat_member_column1: [slurry, ''] + axial_joint_name_member_column1: [col1_upper_pontoon, col1_lower_pontoon, col1_fairlead] + grid_member_column1: [0.0, 0.05, 0.1, 0.1714, 0.2, 0.987, 1.0] + geom_member_column1: [0.0, 1.0] + layer_mat_member_column2: [steel] + ballast_flag_member_column2: [false, true] + ballast_mat_member_column2: [slurry, ''] + axial_joint_name_member_column2: [col2_upper_pontoon, col2_lower_pontoon, col2_fairlead] + grid_member_column2: [0.0, 0.05, 0.1, 0.1714, 0.2, 0.987, 1.0] + geom_member_column2: [0.0, 1.0] + layer_mat_member_column3: [steel] + ballast_flag_member_column3: [false, true] + ballast_mat_member_column3: [slurry, ''] + axial_joint_name_member_column3: [col3_upper_pontoon, col3_lower_pontoon, col3_fairlead] + grid_member_column3: [0.0, 0.05, 0.1, 0.1714, 0.2, 0.987, 1.0] + geom_member_column3: [0.0, 1.0] + layer_mat_member_Y_pontoon_upper1: [steel] + ballast_flag_member_Y_pontoon_upper1: [] + ballast_mat_member_Y_pontoon_upper1: [] + grid_member_Y_pontoon_upper1: [0.0, 1.0] + geom_member_Y_pontoon_upper1: [0.0, 1.0] + layer_mat_member_Y_pontoon_upper2: [steel] + ballast_flag_member_Y_pontoon_upper2: [] + ballast_mat_member_Y_pontoon_upper2: [] + grid_member_Y_pontoon_upper2: [0.0, 1.0] + geom_member_Y_pontoon_upper2: [0.0, 1.0] + layer_mat_member_Y_pontoon_upper3: [steel] + ballast_flag_member_Y_pontoon_upper3: [] + ballast_mat_member_Y_pontoon_upper3: [] + grid_member_Y_pontoon_upper3: [0.0, 1.0] + geom_member_Y_pontoon_upper3: [0.0, 1.0] + layer_mat_member_Y_pontoon_lower1: [steel] + ballast_flag_member_Y_pontoon_lower1: [true] + ballast_mat_member_Y_pontoon_lower1: [''] + grid_member_Y_pontoon_lower1: [0.0, 1.0] + geom_member_Y_pontoon_lower1: [0.0, 1.0] + layer_mat_member_Y_pontoon_lower2: [steel] + ballast_flag_member_Y_pontoon_lower2: [true] + ballast_mat_member_Y_pontoon_lower2: [''] + grid_member_Y_pontoon_lower2: [0.0, 1.0] + geom_member_Y_pontoon_lower2: [0.0, 1.0] + layer_mat_member_Y_pontoon_lower3: [steel] + ballast_flag_member_Y_pontoon_lower3: [true] + ballast_mat_member_Y_pontoon_lower3: [''] + grid_member_Y_pontoon_lower3: [0.0, 1.0] + geom_member_Y_pontoon_lower3: [0.0, 1.0] + ballast_types: !!set {slurry: !!null '', variable: !!null ''} + linked_members: + - [main_column] + - [column1, column2, column3] + - [Y_pontoon_upper1] + - [Y_pontoon_upper2] + - [Y_pontoon_upper3] + - [Y_pontoon_lower1] + - [Y_pontoon_lower2] + - [Y_pontoon_lower3] + name2idx: {main_column: 0, column1: 1, column2: 1, column3: 1, Y_pontoon_upper1: 2, Y_pontoon_upper2: 3, Y_pontoon_upper3: 4, Y_pontoon_lower1: 5, Y_pontoon_lower2: 6, Y_pontoon_lower3: 7} + platform_elem_memid: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9] + rigid_bodies: + n_bodies: 0 + joint1: [] + tower: + n_ballasts: [0] + n_bulkheads: [0] + n_axial_joints: [0] + n_height: [11] + n_layers: [1] raft_dlcs: - - [3.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 6.9, 1.0, 0.0] - - [5.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 6.93, 1.0, 0.0] - - [7.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 6.99, 1.0, 0.0] - - [9.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 7.07, 1.0, 0.0] - - [11.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 7.1850000000000005, 1.095, 0.0] - - [13.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 7.34, 1.25, 0.0] - - [15.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 7.545, 1.455, 0.0] - - [17.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 7.800000000000001, 1.715, 0.0] - - [19.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 8.105, 2.04, 0.0] - - [21.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 8.45, 2.42, 0.0] - - [23.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 8.82, 2.8449999999999998, 0.0] - - [25.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 9.01, 3.07, 0.0] - - [3.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 6.9, 1.0, 0.0] - - [3.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 6.9, 1.0, 0.0] - - [5.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 6.93, 1.0, 0.0] - - [5.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 6.93, 1.0, 0.0] - - [7.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 6.99, 1.0, 0.0] - - [7.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 6.99, 1.0, 0.0] - - [9.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.07, 1.0, 0.0] - - [9.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.07, 1.0, 0.0] - - [11.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.1850000000000005, 1.095, 0.0] - - [11.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.1850000000000005, 1.095, 0.0] - - [13.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.34, 1.25, 0.0] - - [13.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.34, 1.25, 0.0] - - [15.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.545, 1.455, 0.0] - - [15.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.545, 1.455, 0.0] - - [17.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.800000000000001, 1.715, 0.0] - - [17.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.800000000000001, 1.715, 0.0] - - [19.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 8.105, 2.04, 0.0] - - [19.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 8.105, 2.04, 0.0] - - [21.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 8.45, 2.42, 0.0] - - [21.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 8.45, 2.42, 0.0] - - [23.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 8.82, 2.8449999999999998, 0.0] - - [23.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 8.82, 2.8449999999999998, 0.0] - - [25.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 9.01, 3.07, 0.0] - - [25.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 9.01, 3.07, 0.0] - - [3.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.9, 1.0, 0.0] - - [3.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.9, 1.0, 0.0] - - [3.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.9, 1.0, 0.0] - - [3.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.9, 1.0, 0.0] - - [5.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.93, 1.0, 0.0] - - [5.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.93, 1.0, 0.0] - - [5.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.93, 1.0, 0.0] - - [5.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.93, 1.0, 0.0] - - [7.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.99, 1.0, 0.0] - - [7.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.99, 1.0, 0.0] - - [7.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.99, 1.0, 0.0] - - [7.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 6.99, 1.0, 0.0] - - [9.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.07, 1.0, 0.0] - - [9.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.07, 1.0, 0.0] - - [9.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.07, 1.0, 0.0] - - [9.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.07, 1.0, 0.0] - - [11.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.1850000000000005, 1.095, 0.0] - - [11.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.1850000000000005, 1.095, 0.0] - - [11.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.1850000000000005, 1.095, 0.0] - - [11.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.1850000000000005, 1.095, 0.0] - - [13.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.34, 1.25, 0.0] - - [13.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.34, 1.25, 0.0] - - [13.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.34, 1.25, 0.0] - - [13.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.34, 1.25, 0.0] - - [15.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.545, 1.455, 0.0] - - [15.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.545, 1.455, 0.0] - - [15.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.545, 1.455, 0.0] - - [15.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.545, 1.455, 0.0] - - [17.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.800000000000001, 1.715, 0.0] - - [17.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.800000000000001, 1.715, 0.0] - - [17.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.800000000000001, 1.715, 0.0] - - [17.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.800000000000001, 1.715, 0.0] - - [19.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.105, 2.04, 0.0] - - [19.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.105, 2.04, 0.0] - - [19.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.105, 2.04, 0.0] - - [19.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.105, 2.04, 0.0] - - [21.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.45, 2.42, 0.0] - - [21.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.45, 2.42, 0.0] - - [21.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.45, 2.42, 0.0] - - [21.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.45, 2.42, 0.0] - - [23.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.82, 2.8449999999999998, 0.0] - - [23.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.82, 2.8449999999999998, 0.0] - - [23.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.82, 2.8449999999999998, 0.0] - - [23.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 8.82, 2.8449999999999998, 0.0] - - [25.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 9.01, 3.07, 0.0] - - [25.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 9.01, 3.07, 0.0] - - [25.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 9.01, 3.07, 0.0] - - [25.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 9.01, 3.07, 0.0] - - [3.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 11.5, 6.3, 0.0] - - [5.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 12.1, 7.15, 0.0] - - [7.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 12.7, 8.0, 0.0] - - [9.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 12.75, 8.05, 0.0] - - [11.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 12.95, 8.3, 0.0] - - [13.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 13.1, 8.5, 0.0] - - [15.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 13.6, 9.15, 0.0] - - [17.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 14.1, 9.8, 0.0] - - [19.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 14.1, 9.8, 0.0] - - [21.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 14.1, 9.8, 0.0] - - [23.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 14.1, 9.850000000000001, 0.0] - - [25.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 14.1, 9.9, 0.0] - - [70.0, 0.0, IB_EWM, parked, -8.0, JONSWAP, 14.2, 10.68, 0.0] - - [70.0, 0.0, IB_EWM, parked, 8.0, JONSWAP, 14.2, 10.68, 0.0] + - [10.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 7.12, 1.03, 0.0] + - [10.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.12, 1.03, 0.0] + - [10.0, 0.0, IB_ECD, operating, 0.0, JONSWAP, 7.12, 1.03, 0.0] + - [10.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.12, 1.03, 0.0] + - [10.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.12, 1.03, 0.0] + - [10.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.12, 1.03, 0.0] + - [10.0, 0.0, IB_EWS, operating, 0.0, JONSWAP, 7.12, 1.03, 0.0] + - [10.0, 0.0, IB_NTM, operating, 0.0, JONSWAP, 12.8, 8.1, 0.0] + - [10.0, 0.0, IB_EWM, parked, -8.0, JONSWAP, 14.2, 10.68, 0.0] + - [10.0, 0.0, IB_EWM, parked, 0.0, JONSWAP, 14.2, 10.68, 0.0] + - [10.0, 0.0, IB_EWM, parked, 8.0, JONSWAP, 14.2, 10.68, 0.0] raft_dlcs_keys: [wind_speed, wind_heading, turbulence, turbine_status, yaw_misalign, wave_spectrum, wave_period, wave_height, wave_heading] turbine_options: npts: 11 @@ -156,7 +169,7 @@ member_options: platform_member9_potMod: false platform_member10_potMod: false analysis_options: - general: {folder_output: 15_RAFT_Rect, fname_output: refturb_output} + general: {folder_output: 04_umaine_semi_raft_opt, fname_output: refturb_output} design_variables: floating: joints: @@ -174,11 +187,10 @@ analysis_options: groups: - names: [column1, column2, column3] diameter: {lower_bound: 9.375, upper_bound: 15.625, constant: true} - thickness: {lower_bound: 0.05, upper_bound: 0.25, constant: true} rotor_diameter: {flag: false, minimum: 0.0, maximum: 0.0} blade: aero_shape: - twist: {flag: false, inverse: false, n_opt: 30, max_decrease: 0.1, max_increase: 0.1, index_start: 0, index_end: 8} + twist: {flag: false, inverse: false, inverse_target: max_efficiency, n_opt: 30, max_decrease: 0.1, max_increase: 0.1, index_start: 0, index_end: 8, cap_twist_root: 0.349} chord: {flag: false, n_opt: 30, max_decrease: 0.5, max_increase: 1.5, index_start: 0, index_end: 8} af_positions: {flag: false, af_start: 4} rthick: {flag: false, n_opt: 30, max_decrease: 0.5, max_increase: 1.5, index_start: 0, index_end: 8} @@ -186,8 +198,9 @@ analysis_options: c_d: {flag: false, n_opt: 8, max_decrease: 0.5, max_increase: 1.5, index_start: 0, index_end: 8} stall_margin: {flag: false, n_opt: 8, max_decrease: 0.5, max_increase: 1.5, index_start: 0, index_end: 8} z: {flag: false, n_opt: 3, lower_bound: -1.0, upper_bound: 1.0} - n_opt_struct: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30] structure: [] + n_opt_struct: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30] + layer_index_opt: [] control: tsr: {flag: false, minimum: 0.0, maximum: 0.0, min_gain: 0.5, max_gain: 1.5} flaps: @@ -231,13 +244,18 @@ analysis_options: bedplate_web_thickness: {flag: false, lower_bound: 0.001, upper_bound: 1.0} bedplate_flange_thickness: {flag: false, lower_bound: 0.001, upper_bound: 1.0} bedplate_flange_width: {flag: false, lower_bound: 0.001, upper_bound: 1.0} - tower: &id003 + tower: + outer_diameter: {flag: false, lower_bound: 5.0, upper_bound: 5.0} + layer_thickness: {flag: false, lower_bound: 0.01, upper_bound: 0.01} + section_height: {flag: false, lower_bound: 5.0, upper_bound: 5.0} + E: {flag: false, lower_bound: 200000000000.0, upper_bound: 200000000000.0} + rho: {flag: false, lower_bound: 7800, upper_bound: 7800} + monopile: outer_diameter: {flag: false, lower_bound: 5.0, upper_bound: 5.0} layer_thickness: {flag: false, lower_bound: 0.01, upper_bound: 0.01} section_height: {flag: false, lower_bound: 5.0, upper_bound: 5.0} E: {flag: false, lower_bound: 200000000000.0, upper_bound: 200000000000.0} rho: {flag: false, lower_bound: 7800, upper_bound: 7800} - monopile: *id003 jacket: foot_head_ratio: {flag: false, lower_bound: 1.5, upper_bound: 1.5} r_head: {flag: false, lower_bound: 5.0, upper_bound: 5.0} @@ -252,6 +270,7 @@ analysis_options: line_diameter: {flag: false, lower_bound: 0.0} line_mass_density_coeff: {flag: false, lower_bound: 0.0} line_stiffness_coeff: {flag: false, lower_bound: 0.0} + user: [] TMDs: flag: false groups: [] @@ -268,11 +287,11 @@ analysis_options: pitch_duty_cycle: {flag: false, max: 5} Max_Offset: {flag: true, max: 30.0} floating: - stress: {flag: true} - global_buckling: {flag: true} - shell_buckling: {flag: true} - operational_heel: &id004 {upper_bound: 0.17453292519943295} - survival_heel: *id004 + stress: {flag: false} + global_buckling: {flag: false} + shell_buckling: {flag: false} + operational_heel: {upper_bound: 0.17453292519943295} + survival_heel: {upper_bound: 0.17453292519943295} max_surge: {flag: false, upper_bound: 0.1} buoyancy: {flag: false} fixed_ballast_capacity: {flag: false} @@ -287,12 +306,12 @@ analysis_options: mooring_length: {flag: false} anchor_vertical: {flag: false} anchor_lateral: {flag: false} - surge_period: &id005 {flag: false, lower_bound: 1.0, upper_bound: 1.0} - sway_period: *id005 - heave_period: *id005 - roll_period: *id005 - pitch_period: *id005 - yaw_period: *id005 + surge_period: {flag: false, lower_bound: 1.0, upper_bound: 1.0} + sway_period: {flag: false, lower_bound: 1.0, upper_bound: 1.0} + heave_period: {flag: false, lower_bound: 1.0, upper_bound: 1.0} + roll_period: {flag: false, lower_bound: 1.0, upper_bound: 1.0} + pitch_period: {flag: false, lower_bound: 1.0, upper_bound: 1.0} + yaw_period: {flag: false, lower_bound: 1.0, upper_bound: 1.0} Max_Offset: {flag: false, max: 20} blade: strains_spar_cap_ss: {flag: false, max: 0.004, index_start: 0, index_end: 8} @@ -304,14 +323,17 @@ analysis_options: rail_transport: {flag: false, 8_axle: false, 4_axle: false} stall: {flag: false, margin: 0.05233} chord: {flag: false, max: 4.75} + chord_slope: {flag: false} + twist_slope: {flag: false} root_circle_diameter: {flag: false, max_ratio: 1.0} frequency: flap_3P: false edge_3P: false - first_flap: &id006 {flag: false, target: 0.0, acceptable_error: 0.01} - first_edge: *id006 - first_torsion: *id006 + first_flap: {flag: false, target: 0.0, acceptable_error: 0.01} + first_edge: {flag: false, target: 0.0, acceptable_error: 0.01} + first_torsion: {flag: false, target: 0.0, acceptable_error: 0.01} mass: {flag: false, target: 0.0, acceptable_error: 0.0} + rated_velocity: {flag: false, target: 0.0, acceptable_error: 0.1} moment_coefficient: {flag: false, min: 0.15, max: 0.15} match_cl_cd: {flag_cl: false, flag_cd: false, filename: ''} match_L_D: {flag_L: false, flag_D: false, filename: ''} @@ -319,35 +341,48 @@ analysis_options: thrust_coeff: {flag: false} tower: height_constraint: {flag: false, lower_bound: 0.01, upper_bound: 0.01} - stress: &id007 {flag: false} - global_buckling: &id008 {flag: false} - shell_buckling: &id009 {flag: false} - slope: &id010 {flag: false} - thickness_slope: &id011 {flag: false} - d_to_t: &id012 {flag: false, lower_bound: 50.0, upper_bound: 50.0} - taper: &id013 {flag: false, lower_bound: 0.5} + stress: {flag: false} + global_buckling: {flag: false} + shell_buckling: {flag: false} + slope: {flag: false} + thickness_slope: {flag: false} + d_to_t: {flag: false, lower_bound: 50.0, upper_bound: 50.0} + taper: {flag: false, lower_bound: 0.5} frequency: {flag: false} - frequency_1: &id014 {flag: false, lower_bound: 0.1, upper_bound: 0.1} - monopile: &id015 - stress: *id007 - global_buckling: *id008 - shell_buckling: *id009 - slope: *id010 - thickness_slope: *id011 - d_to_t: *id012 - taper: *id013 - frequency_1: *id014 + frequency_1: {flag: false, lower_bound: 0.1, upper_bound: 0.1} + mass: {flag: false, target: 0.0, acceptable_error: 0.0} + monopile: + stress: {flag: false} + global_buckling: {flag: false} + shell_buckling: {flag: false} + slope: {flag: false} + thickness_slope: {flag: false} + d_to_t: {flag: false, lower_bound: 50.0, upper_bound: 50.0} + taper: {flag: false, lower_bound: 0.5} + frequency_1: {flag: false, lower_bound: 0.1, upper_bound: 0.1} + mass: {flag: false, target: 0.0, acceptable_error: 0.0} + pile_depth: {flag: false, lower_bound: 0.0} + tower_diameter_coupling: {flag: false} + jacket: + stress: {flag: false} + global_buckling: {flag: false} + shell_buckling: {flag: false} + slope: {flag: false} + thickness_slope: {flag: false} + d_to_t: {flag: false, lower_bound: 50.0, upper_bound: 50.0} + taper: {flag: false, lower_bound: 0.5} + frequency_1: {flag: false, lower_bound: 0.1, upper_bound: 0.1} + mass: {flag: false, target: 0.0, acceptable_error: 0.0} pile_depth: {flag: false, lower_bound: 0.0} tower_diameter_coupling: {flag: false} - jacket: *id015 hub: hub_diameter: {flag: false} drivetrain: - lss: *id007 - hss: *id007 - bedplate: *id007 - mb1: &id016 {flag: false} - mb2: *id016 + lss: {flag: false} + hss: {flag: false} + bedplate: {flag: false} + mb1: {flag: false} + mb2: {flag: false} length: {flag: false} height: {flag: false} access: {flag: false, lower_bound: 2.0} @@ -362,7 +397,7 @@ analysis_options: openfast_failed: {flag: false} merit_figure: platform_mass driver: - optimization: {flag: false, solver: LN_COBYLA, tol: 0.01, max_iter: 2, max_major_iter: 10, max_minor_iter: 100, time_limit: 0, max_function_calls: 100000, step_size: 0.001, form: central, step_calc: None, debug_print: false} + optimization: {flag: true, solver: LN_COBYLA, tol: 0.01, max_iter: 1, max_major_iter: 10, max_minor_iter: 100, time_limit: 0, major_step_limit: 2.0, function_precision: 3.7e-11, max_function_calls: 100000, hist_file: None, hotstart_file: None, step_size: 0.001, form: central, step_calc: None, debug_print: false} design_of_experiments: {flag: false, run_parallel: true, generator: Uniform, num_samples: 5, seed: 2, levels: 2, criterion: center, iterations: 2, debug_print: false} step_size_study: flag: false @@ -378,5 +413,5 @@ analysis_options: just_dvs: false merit_figure_user: {name: '', ref: 1, max_flag: false} inverse_design: {} - fname_input_analysis: /Users/dzalkind/Tools/WEIS-Main/examples/15_RAFT_Studies/analysis_options.yaml - opt_flag: false + fname_input_analysis: /Users/dzalkind/Tools/WEIS-Main/examples/04_frequency_domain_analysis_design/umaine_semi_raft_opt_analysis.yaml + opt_flag: true From e48396c78cd20d250326274f5872bdc15f4c63d3 Mon Sep 17 00:00:00 2001 From: dzalkind Date: Tue, 9 Sep 2025 15:32:40 -0600 Subject: [PATCH 6/7] Add floating options to test inputs --- tests/test_omdao_OC3spar.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_omdao_OC3spar.py b/tests/test_omdao_OC3spar.py index c324ea9..b0a2ca6 100644 --- a/tests/test_omdao_OC3spar.py +++ b/tests/test_omdao_OC3spar.py @@ -32,6 +32,10 @@ def testSpiderRegression(self): opt['modeling']['nfreq'] = 10 opt['modeling']['n_cases'] = 2 opt['modeling']['intersection_mesh'] = 0 + opt['modeling']['floating'] = {} + opt['modeling']['floating']['rigid_bodies'] = {} + opt['modeling']['floating']['rigid_bodies']['n_bodies'] = 0 + opt['modeling']['floating']['rigid_bodies']['joint1'] = [] opt['turbine'] = {} opt['turbine']['npts'] = 11 From d258cad877483c476a701912bb3543a9d595d43a Mon Sep 17 00:00:00 2001 From: dzalkind Date: Tue, 9 Sep 2025 15:35:38 -0600 Subject: [PATCH 7/7] Install MoorPy dev in CI for now --- .github/workflows/CI_RAFT.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/CI_RAFT.yml b/.github/workflows/CI_RAFT.yml index 36c7c46..0989d8e 100644 --- a/.github/workflows/CI_RAFT.yml +++ b/.github/workflows/CI_RAFT.yml @@ -48,9 +48,7 @@ jobs: - name: Overwrite MoorPy if on a branch with 'dev' in its name run: | - if [[ "${GITHUB_REF}" == *"_dev"* ]]; then - pip install git+https://github.com/NREL/MoorPy@dev - fi + pip install git+https://github.com/NREL/MoorPy@dev - name: Example run run: |