Conversation
… the different result of Aircraft.Wing.BENDING_MATERIAL_FACTOR (or BT as returned by subroutine BNDMAT) between Aviary and FLOPS.
| BENDING_MATERIAL_FACTOR = prob.get_val(Aircraft.Wing.BENDING_MATERIAL_FACTOR) | ||
| pod_inertia = prob.get_val(Aircraft.Wing.ENG_POD_INERTIA_FACTOR) | ||
|
|
||
| BENDING_MATERIAL_FACTOR_expected = 4.53053124 # Real FLOPS BT = 5.998060404 |
There was a problem hiding this comment.
So do we think the old FLOPS algorithm was incorrect then?
There was a problem hiding this comment.
The way that is implemented in Aviary is different from FLOPS. I can go back to do a detailed comparison if this difference is not acceptable.
| if engine_models is not None: | ||
| preprocess_propulsion(aviary_options, engine_models, meta_data, verbosity) | ||
|
|
||
| if Aircraft.Wing.ASPECT_RATIO_REFERENCE in aviary_options: |
There was a problem hiding this comment.
FLOPS allows the reference value to be different from the actual value to allow for scaling behavior. Are we removing this behavior from Aviary? If so then do we even need the reference variable?
Changing this might be outside the scope of this PR.
There was a problem hiding this comment.
We want to set reference value ONLY when it is not in the dataset. @jkirk5 : is it what you suggested me to do.
There was a problem hiding this comment.
We need this to also cover the case where ASPECT_RATIO_REFERENCE doesn't exist in aviary_options. Same for the other checks you added below.
Summary
This PR implements another BWB model from FLOPS - BWB300 baseline model.
The BWB300 baseline model implemented here is not exactly the same as the original FLOPS model. This is because Aviary did not implement all the features of FLOPS. More precisely, here are the differences:
Aircraft.Fuselage.MAX_WIDTH = 50.0is not implemented inBWBDetailedCabinLayoutcomponent. Can override later.Aircraft.Fuselage.MAX_HEIGHT = 14.16is not implemented inBWBDetailedCabinLayoutcomponent. Can override later.Aircraft.Wing.ROOT_CHORDwhich is an output fromBWBDetailedCabinLayoutcomponent. Can override later.Mission.Design.GROSS_MASS = 600,000manually. The original logic is DGW = 1, IF(DGW < 5) DG = DGW * GW, but GW is not read in to Aviary. Should we create a new Aviary variable for GW (Ramp weight)?Aircraft.Wing.GLOVE_AND_BATis not implemented. So, take the value from FLOPS run. See subroutine DEFINE().Aircraft.Wing.SPAN = 186.3is incorrect. FLOPS updates value during its run. If we input bothAircraft.Wing.SPANandAircraft.Wing.OUTBOARD_SEMISPAN, they must satisfyAircraft.Wing.SPAN Aircraft.Fuselage.MAX_WIDTH + Aircraft.Wing.OUTBOARD_SEMISPAN*2.Aircraft.Fuselage.HEIGHT_TO_WIDTH_RATIO). Should we add TCSOB (meaning Fuselage thickness/chord ratio at side of body) to Aviary? This will affect the computation ofBWB_THICKNESS_TO_CHORD_DISTRIBUTION[1].Aircraft.VerticalTail.WETTED_AREA = 125, even thoughAircraft.VerticalTail.NUM_TAILS = 0. It is ignored.aircraft:wing:aspect_ratio,5.4252,unitlessin .csv file in order to follow FLOPS computation.Aircraft.HorizontalTail.VERTICAL_TAIL_FRACTION) is not taken care byfortran_to_aviary().Aircraft.VerticalTail.SWEEP) is not taken care byfortran_to_aviary().Aircraft.VerticalTail.ASPECT_RATIO) is not taken care byfortran_to_aviary().Aircraft.VerticalTail.TAPER_RATIO) is not taken care byfortran_to_aviary().Aircraft.Fuel.WING_FUEL_CAPACITY) is not taken care byfortran_to_aviary().Related Issues
Backwards incompatibilities
None
New Dependencies
None