Source code for openaerostruct.functionals.total_aero_performance
import openmdao.api as om
from openaerostruct.functionals.moment_coefficient import MomentCoefficient
from openaerostruct.functionals.total_lift_drag import TotalLiftDrag
from openaerostruct.functionals.sum_areas import SumAreas
[docs]
class TotalAeroPerformance(om.Group):
"""
Group to contain the total aerodynamic performance components.
"""
def initialize(self):
self.options.declare("surfaces", types=list)
self.options.declare("user_specified_Sref", types=bool)
def setup(self):
surfaces = self.options["surfaces"]
if not self.options["user_specified_Sref"]:
self.add_subsystem(
"sum_areas", SumAreas(surfaces=surfaces), promotes_inputs=["*S_ref"], promotes_outputs=["S_ref_total"]
)
self.add_subsystem(
"CL_CD",
TotalLiftDrag(surfaces=surfaces),
promotes_inputs=["*CL", "*CD", "*S_ref", "S_ref_total", "rho", "v"],
promotes_outputs=["CL", "CD", "L", "D"],
)
self.add_subsystem(
"moment",
MomentCoefficient(surfaces=surfaces),
promotes_inputs=["v", "cg", "rho", "*S_ref", "*b_pts", "*widths", "*chords", "*sec_forces", "S_ref_total"],
promotes_outputs=["CM"],
)