Source code for openaerostruct.functionals.sum_areas

import openmdao.api as om


[docs] class SumAreas(om.ExplicitComponent): """ Compute the total surface area of the entire aircraft as a sum of its individual surfaces' surface areas. Parameters ---------- S_ref : float Surface area for one lifting surface. Returns ------- S_ref_total : float Total surface area of the aircraft based on the sum of individual surface areas. """ def initialize(self): self.options.declare("surfaces", types=list) def setup(self): for surface in self.options["surfaces"]: name = surface["name"] self.add_input(name + "_S_ref", val=1.0, units="m**2") self.add_output("S_ref_total", val=0.0, units="m**2", tags=["mphys_result"]) self.declare_partials("*", "*", val=1.0) def compute(self, inputs, outputs): outputs["S_ref_total"] = 0.0 for surface in self.options["surfaces"]: name = surface["name"] S_ref = inputs[name + "_S_ref"] outputs["S_ref_total"] += S_ref