From 6818b3c0ff27c8628cc20e090b40cad44fea6e49 Mon Sep 17 00:00:00 2001 From: Peter Sharpe Date: Fri, 5 Apr 2024 19:34:50 -0400 Subject: [PATCH] Replaces older sol.value() with preferred sol() for consistency throughout repository --- .../aerodynamics/aero_2D/ignore/viscous analysis.py | 2 +- .../test_fuselage_aerodynamics_optimization.py | 10 +++++----- .../test_vlm/test_airplane_optimization.py | 2 +- .../test_vlm/test_operating_point_optimization.py | 4 ++-- .../point_mass/point_1D/test/test_block_move.py | 4 ++-- .../rigid_2D/ignore/quadcopter - work in progress.py | 2 +- aerosandbox/optimization/opti.py | 8 ++++---- aerosandbox/propulsion/ignore/propeller_model.py | 8 ++++---- aerosandbox/structures/tube_spar_bending.py | 4 ++-- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/aerosandbox/aerodynamics/aero_2D/ignore/viscous analysis.py b/aerosandbox/aerodynamics/aero_2D/ignore/viscous analysis.py index 97ba105b5..ac20386fd 100644 --- a/aerosandbox/aerodynamics/aero_2D/ignore/viscous analysis.py +++ b/aerosandbox/aerodynamics/aero_2D/ignore/viscous analysis.py @@ -86,7 +86,7 @@ def logint(x): ### Solve sol = opti.solve() theta = sol(theta) -H = sol.value(H) +H = sol(H) ### Plot from aerosandbox.tools.pretty_plots import plt, show_plot diff --git a/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_aero_buildup/test_fuselage_aerodynamics_optimization.py b/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_aero_buildup/test_fuselage_aerodynamics_optimization.py index 164c5e213..7980c355b 100644 --- a/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_aero_buildup/test_fuselage_aerodynamics_optimization.py +++ b/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_aero_buildup/test_fuselage_aerodynamics_optimization.py @@ -32,14 +32,14 @@ def test_fuselage_aerodynamics_optimization(): opti.minimize(-aero["L"] / aero["D"]) sol = opti.solve(verbose=True) - print(sol.value(alpha)) - assert sol.value(alpha) > 10 and sol.value(alpha) < 20 - assert sol.value(beta) == pytest.approx(0, abs=1e-3) + print(sol(alpha)) + assert sol(alpha) > 10 and sol(alpha) < 20 + assert sol(beta) == pytest.approx(0, abs=1e-3) opti.minimize(aero["D"]) sol = opti.solve(verbose=False) - assert sol.value(alpha) == pytest.approx(0, abs=1e-2) - assert sol.value(beta) == pytest.approx(0, abs=1e-2) + assert sol(alpha) == pytest.approx(0, abs=1e-2) + assert sol(beta) == pytest.approx(0, abs=1e-2) if __name__ == '__main__': diff --git a/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_vlm/test_airplane_optimization.py b/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_vlm/test_airplane_optimization.py index c68ba5575..4b296c600 100644 --- a/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_vlm/test_airplane_optimization.py +++ b/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_vlm/test_airplane_optimization.py @@ -52,7 +52,7 @@ def get_aero(alpha, taper_ratio): opti.minimize(-LD) sol = opti.solve() - assert sol.value(alpha) == pytest.approx(5.5, abs=1) + assert sol(alpha) == pytest.approx(5.5, abs=1) if __name__ == '__main__': diff --git a/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_vlm/test_operating_point_optimization.py b/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_vlm/test_operating_point_optimization.py index ff030f525..fb9987b73 100644 --- a/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_vlm/test_operating_point_optimization.py +++ b/aerosandbox/aerodynamics/aero_3D/test_aero_3D/test_vlm/test_operating_point_optimization.py @@ -50,8 +50,8 @@ def test_vlm_optimization_operating_point(): verbose=True, # callback=lambda _: print(f"alpha = {opti.debug.value(alpha)}") ) - print(sol.value(alpha), sol.value(LD)) - assert sol.value(alpha) == pytest.approx(5.85, abs=0.1) + print(sol(alpha), sol(LD)) + assert sol(alpha) == pytest.approx(5.85, abs=0.1) if __name__ == '__main__': diff --git a/aerosandbox/dynamics/point_mass/point_1D/test/test_block_move.py b/aerosandbox/dynamics/point_mass/point_1D/test/test_block_move.py index 13a6ed574..88a2eacfd 100644 --- a/aerosandbox/dynamics/point_mass/point_1D/test/test_block_move.py +++ b/aerosandbox/dynamics/point_mass/point_1D/test/test_block_move.py @@ -107,8 +107,8 @@ def test_block_move_minimum_time(): assert dyn.u_e[-1] == pytest.approx(0) assert np.max(dyn.u_e) == pytest.approx(1, abs=0.01) assert sol(u)[0] == pytest.approx(1, abs=0.05) - assert sol.value(u)[-1] == pytest.approx(-1, abs=0.05) - assert np.mean(np.abs(sol.value(u))) == pytest.approx(1, abs=0.01) + assert sol(u)[-1] == pytest.approx(-1, abs=0.05) + assert np.mean(np.abs(sol(u))) == pytest.approx(1, abs=0.01) if __name__ == '__main__': diff --git a/aerosandbox/dynamics/rigid_body/rigid_2D/ignore/quadcopter - work in progress.py b/aerosandbox/dynamics/rigid_body/rigid_2D/ignore/quadcopter - work in progress.py index 54a9a7732..d1ef18c50 100644 --- a/aerosandbox/dynamics/rigid_body/rigid_2D/ignore/quadcopter - work in progress.py +++ b/aerosandbox/dynamics/rigid_body/rigid_2D/ignore/quadcopter - work in progress.py @@ -114,7 +114,7 @@ def test_quadcopter_flip(): sol = opti.solve(verbose=False) dyn = sol(dyn) - assert sol.value(time_final) == pytest.approx(0.824, abs=0.01) + assert sol(time_final) == pytest.approx(0.824, abs=0.01) if __name__ == '__main__': diff --git a/aerosandbox/optimization/opti.py b/aerosandbox/optimization/opti.py index 710a699bf..c33920976 100644 --- a/aerosandbox/optimization/opti.py +++ b/aerosandbox/optimization/opti.py @@ -23,7 +23,7 @@ class Opti(cas.Opti): >>> opti.subject_to(x > 3) # Adds a constraint to be enforced >>> opti.minimize(f) # Sets the objective function as f >>> sol = opti.solve() # Solves the problem using CasADi and IPOPT backend - >>> print(sol.value(x)) # Prints the value of x at the optimum. + >>> print(sol(x)) # Prints the value of x at the optimum. """ def __init__(self, @@ -1205,7 +1205,7 @@ def __init__(self, >>> sol = opti.solve() >>> >>> # Retrieve the value of the variable x in the solution: - >>> x_value = sol.value(x) + >>> x_value = sol(x) >>> >>> # Or, to be more concise: >>> x_value = sol(x) @@ -1232,8 +1232,8 @@ def _value_scalar(self, x: Union[cas.MX, np.ndarray, float, int]) -> Union[float """ Gets the value of a variable at the solution point. For developer use - see following paragraph. - This method is basically a less-powerful version of calling either `sol(x)` or `sol.value(x)` - if you're a - user and not a developer, you almost-certainly want to use one of those methods instead, as those are less + This method is basically a less-powerful version of calling `sol(x)` - if you're a + user and not a developer, you almost-certainly want to use that method instead, as those are less fragile with respect to various input data types. This method exists only as an abstraction to make it easier for other developers to subclass OptiSol, if they wish to intercept the variable substitution process. diff --git a/aerosandbox/propulsion/ignore/propeller_model.py b/aerosandbox/propulsion/ignore/propeller_model.py index 15a905e15..c840d0481 100644 --- a/aerosandbox/propulsion/ignore/propeller_model.py +++ b/aerosandbox/propulsion/ignore/propeller_model.py @@ -245,21 +245,21 @@ def airfoil_CDp(alpha, Re, Ma, Cl): # n_blades * 0.5 * air_density * (W ** 2) * # cl * chord_local * blade_section # ) - # dDrag = sol.value( + # dDrag = sol( # n_blades * 0.5 * air_density * (W ** 2) * # cd * chord_local * blade_section # ) - dThrust = sol.value( + dThrust = sol( air_density * n_blades * gamma * ( W_t - W_a * cd / cl ) * blade_section ) - dTorque = sol.value( + dTorque = sol( air_density * n_blades * gamma * ( W_a + W_t * cd / cl ) * radial_loc * blade_section ) - # if sol.value(alpha_deg) <= 0: + # if sol(alpha_deg) <= 0: # break thrust.append(dThrust) diff --git a/aerosandbox/structures/tube_spar_bending.py b/aerosandbox/structures/tube_spar_bending.py index 798c104c6..27d5b5a91 100644 --- a/aerosandbox/structures/tube_spar_bending.py +++ b/aerosandbox/structures/tube_spar_bending.py @@ -391,11 +391,11 @@ def draw(self, show=True): beam = sol(beam) - print(f"{sol.value(mass)} kg per half-wing") + print(f"{sol(mass)} kg per half-wing") beam.draw() - computed_spar_mass = 2 * sol.value(mass) + computed_spar_mass = 2 * sol(mass) vehicle_mass = lift / 9.81 ultimate_load_factor = 2