Source code for fastga_he.models.performances.methodology.modules.geometry.geometry

import numpy as np
import openmdao.api as om


[docs] class ComputeGeometry(om.Group):
[docs] def setup(self): self.add_subsystem(name="compute_wing_area", subsys=ComputeWingArea(), promotes=["*"])
[docs] class ComputeWingArea(om.ExplicitComponent): """ Computes the wing area based on the provided MTOW and wing loading """
[docs] def setup(self): # Defining the input(s) self.add_input(name="mtow", units="kg", val=np.nan) self.add_input(name="wing_loading", units="kg/m**2", val=np.nan) # Defining the output(s) self.add_output(name="wing_area", units="m**2") self.add_output(name="dummy_vector", units="m**2", shape=3)
[docs] def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None): # Assigning the input to local variable for clarity mtow = inputs["mtow"] wing_loading = inputs["wing_loading"] # Computation of the wing area wing_area = mtow / wing_loading outputs["wing_area"] = wing_area outputs["dummy_vector"] = wing_area * np.array([1.0, 2.0, 3.0])