From c2c019b6b356bc0d33ce18fe4da8567db2455c2d Mon Sep 17 00:00:00 2001 From: Garrett Barter Date: Wed, 8 Jul 2026 10:20:07 -0600 Subject: [PATCH 1/4] needed patch for py311 --- wisdem/ccblade/ccblade.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/wisdem/ccblade/ccblade.py b/wisdem/ccblade/ccblade.py index 6383f5b3e..f9598f7cd 100644 --- a/wisdem/ccblade/ccblade.py +++ b/wisdem/ccblade/ccblade.py @@ -175,11 +175,16 @@ def evaluate(self, alpha, Re, return_cm=False): also uses a small amount of smoothing to help remove spurious multiple solutions. """ - cl = self.cl_spline.ev(alpha, Re)[0] - cd = self.cd_spline.ev(alpha, Re)[0] - + cl = self.cl_spline.ev(alpha, Re) + cd = self.cd_spline.ev(alpha, Re) + if isinstance(cl, np.ndarray): + cl = cl.item() + cd = cd.item() + if self.use_cm and return_cm: - cm = self.cm_spline.ev(alpha, Re)[0] + cm = self.cm_spline.ev(alpha, Re) + if isinstance(cm, np.ndarray): + cm = cm.item() return cl, cd, cm else: return cl, cd From 2fb5493204988eb278882d81d2dad45fd21caec2 Mon Sep 17 00:00:00 2001 From: Garrett Barter Date: Wed, 8 Jul 2026 13:01:35 -0600 Subject: [PATCH 2/4] further efforts to make ccblade compatible with numpy 2.5 --- wisdem/ccblade/ccblade.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/wisdem/ccblade/ccblade.py b/wisdem/ccblade/ccblade.py index f9598f7cd..51c511458 100644 --- a/wisdem/ccblade/ccblade.py +++ b/wisdem/ccblade/ccblade.py @@ -102,13 +102,16 @@ def max_eff(self, Re): aoa_end = 40 alpha = np.deg2rad(np.linspace(aoa_start, aoa_end, num=201)) - cl = np.array([self.cl_spline.ev(aoa, Re) for aoa in alpha]) - cd = np.array([self.cd_spline.ev(aoa, Re) for aoa in alpha]) + cl = np.array([self.cl_spline.ev(aoa, Re) for aoa in alpha]).flatten() + cd = np.array([self.cd_spline.ev(aoa, Re) for aoa in alpha]).flatten() if np.max(cl) < 1.e-3: # Cylinder alpha_Emax = 0. cl_Emax = self.cl_spline.ev(alpha_Emax, Re) cd_Emax = self.cd_spline.ev(alpha_Emax, Re) + if isinstance(cl_Emax, np.ndarray): + cl_Emax = cl_Emax.item() + cd_Emax = cd_Emax.item() Emax = cl_Emax / cd_Emax else: Eff = [cli / cdi for cli, cdi, in zip(cl, cd)] @@ -139,7 +142,7 @@ def awayfromstall(self, Re, margin): else: alpha = np.deg2rad(np.linspace(aoa_start, aoa_end, num=201)) cl = [self.cl_spline.ev(aoa, Re) for aoa in alpha] - cd = [self.cd_spline.ev(aoa, Re) for aoa in alpha] + #cd = [self.cd_spline.ev(aoa, Re) for aoa in alpha] i_stall = np.argmax(cl) alpha_stall = alpha[i_stall] @@ -147,6 +150,9 @@ def awayfromstall(self, Re, margin): cl_op = self.cl_spline.ev(alpha_op, Re) cd_op = self.cd_spline.ev(alpha_op, Re) + if isinstance(cl_op, np.ndarray): + cl_op = cl_op.item() + cd_op = cd_op.item() Eff_op = cl_op / cd_op # print Emax, np.deg2rad(alpha_Emax), cl_Emax, cd_Emax From bc1fd495b107ed6408ea90596285e58c9151cba6 Mon Sep 17 00:00:00 2001 From: dzalkind Date: Tue, 21 Jul 2026 14:26:32 -0600 Subject: [PATCH 3/4] Fix depreciation of set_design_var --- wisdem/optimization_drivers/nsga2_driver.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wisdem/optimization_drivers/nsga2_driver.py b/wisdem/optimization_drivers/nsga2_driver.py index 14831253c..c6b9f52f5 100644 --- a/wisdem/optimization_drivers/nsga2_driver.py +++ b/wisdem/optimization_drivers/nsga2_driver.py @@ -439,7 +439,7 @@ def run(self): desvar_new = design_vars_fronts[0][median_idx, :] for name in desvars: i, j = self._desvar_idx[name] - self.set_design_var(name, desvar_new[i:j]) + self._set_design_var(name, desvar_new[i:j]) with RecordingDebugging(self._get_name(), self.iter_count, self) as rec: self._run_solve_nonlinear() rec.abs = 0.0 @@ -471,7 +471,7 @@ def objective_callback(self, x): out_of_bounds = False for name in self._designvars: i, j = self._desvar_idx[name] - self.set_design_var(name, x[i:j]) + self._set_design_var(name, x[i:j]) # Check that design variables are within bounds if ( From cdbacb9c3ce9bb8d75a599fe132bd23555f37788 Mon Sep 17 00:00:00 2001 From: ptrbortolotti Date: Mon, 27 Jul 2026 17:11:48 -0600 Subject: [PATCH 4/4] bump up version to 4.2.6 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 53d7c5deb..416f46762 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "wisdem" -version = "4.2.5" +version = "4.2.6" description = "Wind-Plant Integrated System Design & Engineering Model" readme = "README.md" requires-python = ">=3.11"