Source code for openaerostruct.functionals.total_performance

import openmdao.api as om

from openaerostruct.functionals.breguet_range import BreguetRange
from openaerostruct.functionals.equilibrium import Equilibrium
from openaerostruct.functionals.center_of_gravity import CenterOfGravity
from openaerostruct.functionals.moment_coefficient import MomentCoefficient
from openaerostruct.functionals.total_lift_drag import TotalLiftDrag
from openaerostruct.functionals.sum_areas import SumAreas


[docs] class TotalPerformance(om.Group): """ Group to contain the total aerostructural performance components. """ def initialize(self): self.options.declare("surfaces", types=list) self.options.declare("user_specified_Sref", types=bool) self.options.declare("internally_connect_fuelburn", types=bool, default=True) 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"] ) if self.options["internally_connect_fuelburn"]: promote_fuelburn = ["fuelburn"] else: promote_fuelburn = [] 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( "fuelburn", BreguetRange(surfaces=surfaces), promotes_inputs=["*structural_mass", "CL", "CD", "CT", "speed_of_sound", "R", "Mach_number", "W0"], promotes_outputs=["fuelburn"], ) self.add_subsystem( "L_equals_W", Equilibrium(surfaces=surfaces), promotes_inputs=["CL", "*structural_mass", "S_ref_total", "W0", "load_factor", "rho", "v"] + promote_fuelburn, promotes_outputs=["L_equals_W", "total_weight"], ) self.add_subsystem( "CG", CenterOfGravity(surfaces=surfaces), promotes_inputs=["*structural_mass", "*cg_location", "total_weight", "W0", "empty_cg", "load_factor"] + promote_fuelburn, promotes_outputs=["cg"], ) self.add_subsystem( "moment", MomentCoefficient(surfaces=surfaces), promotes_inputs=["v", "rho", "cg", "S_ref_total", "*b_pts", "*widths", "*chords", "*sec_forces", "*S_ref"], promotes_outputs=["CM"], )