|
3 | 3 | from aerosandbox.performance import OperatingPoint |
4 | 4 | import aerosandbox.library.aerodynamics as aero |
5 | 5 | import aerosandbox.numpy as np |
| 6 | +from aerosandbox.numpy.typing import Vectorizable |
6 | 7 | from aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities import * |
7 | 8 | from aerosandbox.library.aerodynamics import transonic |
8 | 9 | import aerosandbox.library.aerodynamics as aerolib |
@@ -137,78 +138,78 @@ def __repr__(self): |
137 | 138 | ) |
138 | 139 |
|
139 | 140 | @property |
140 | | - def F_b(self) -> list[float | np.ndarray]: |
| 141 | + def F_b(self) -> tuple[Vectorizable, Vectorizable, Vectorizable]: |
141 | 142 | """ |
142 | | - An [x, y, z] list of forces in body axes [N] |
| 143 | + An (x, y, z) tuple of forces in body axes [N] |
143 | 144 | """ |
144 | 145 | return self.op_point.convert_axes( |
145 | 146 | *self.F_g, from_axes="geometry", to_axes="body" |
146 | 147 | ) |
147 | 148 |
|
148 | 149 | @property |
149 | | - def F_w(self) -> list[float | np.ndarray]: |
| 150 | + def F_w(self) -> tuple[Vectorizable, Vectorizable, Vectorizable]: |
150 | 151 | """ |
151 | | - An [x, y, z] list of forces in wind axes [N] |
| 152 | + An (x, y, z) tuple of forces in wind axes [N] |
152 | 153 | """ |
153 | 154 | return self.op_point.convert_axes( |
154 | 155 | *self.F_g, from_axes="geometry", to_axes="wind" |
155 | 156 | ) |
156 | 157 |
|
157 | 158 | @property |
158 | | - def M_b(self) -> list[float | np.ndarray]: |
| 159 | + def M_b(self) -> tuple[Vectorizable, Vectorizable, Vectorizable]: |
159 | 160 | """ |
160 | | - An [x, y, z] list of moments about body axes [Nm] |
| 161 | + An (x, y, z) tuple of moments about body axes [Nm] |
161 | 162 | """ |
162 | 163 | return self.op_point.convert_axes( |
163 | 164 | *self.M_g, from_axes="geometry", to_axes="body" |
164 | 165 | ) |
165 | 166 |
|
166 | 167 | @property |
167 | | - def M_w(self) -> list[float | np.ndarray]: |
| 168 | + def M_w(self) -> tuple[Vectorizable, Vectorizable, Vectorizable]: |
168 | 169 | """ |
169 | | - An [x, y, z] list of moments about wind axes [Nm] |
| 170 | + An (x, y, z) tuple of moments about wind axes [Nm] |
170 | 171 | """ |
171 | 172 | return self.op_point.convert_axes( |
172 | 173 | *self.M_g, from_axes="geometry", to_axes="wind" |
173 | 174 | ) |
174 | 175 |
|
175 | 176 | @property |
176 | | - def L(self) -> float | np.ndarray: |
| 177 | + def L(self) -> Vectorizable: |
177 | 178 | """ |
178 | 179 | The lift force [N]. Definitionally, this is in wind axes. |
179 | 180 | """ |
180 | 181 | return -self.F_w[2] |
181 | 182 |
|
182 | 183 | @property |
183 | | - def Y(self) -> float | np.ndarray: |
| 184 | + def Y(self) -> Vectorizable: |
184 | 185 | """ |
185 | 186 | The side force [N]. Definitionally, this is in wind axes. |
186 | 187 | """ |
187 | 188 | return self.F_w[1] |
188 | 189 |
|
189 | 190 | @property |
190 | | - def D(self) -> float | np.ndarray: |
| 191 | + def D(self) -> Vectorizable: |
191 | 192 | """ |
192 | 193 | The drag force [N]. Definitionally, this is in wind axes. |
193 | 194 | """ |
194 | 195 | return -self.F_w[0] |
195 | 196 |
|
196 | 197 | @property |
197 | | - def l_b(self) -> float | np.ndarray: |
| 198 | + def l_b(self) -> Vectorizable: |
198 | 199 | """ |
199 | 200 | The rolling moment [Nm] in body axes. Positive is roll-right. |
200 | 201 | """ |
201 | 202 | return self.M_b[0] |
202 | 203 |
|
203 | 204 | @property |
204 | | - def m_b(self) -> float | np.ndarray: |
| 205 | + def m_b(self) -> Vectorizable: |
205 | 206 | """ |
206 | 207 | The pitching moment [Nm] in body axes. Positive is nose-up. |
207 | 208 | """ |
208 | 209 | return self.M_b[1] |
209 | 210 |
|
210 | 211 | @property |
211 | | - def n_b(self) -> float | np.ndarray: |
| 212 | + def n_b(self) -> Vectorizable: |
212 | 213 | """ |
213 | 214 | The yawing moment [Nm] in body axes. Positive is nose-right. |
214 | 215 | """ |
|
0 commit comments