Duality Sizing contains the Duality engine cycle model, aircraft weight/volume closure, and constraint-analysis tools used for thrust-loading versus wing-loading studies.
The upstream pyCycle source is not vendored in this repo. Install om-pycycle
as a dependency, then run the Duality scripts from this checkout.
Install the package and dependencies in the active Python environment:
pip install -e .The current development environment has been run with:
& 'C:\Users\AlexanderAmos\miniconda3\envs\cycle_env\python.exe' -m sizing.constraint_diagramBecause this repo previously installed om-pycycle in editable mode from the
same checkout, that environment may need a clean om-pycycle install after this
cleanup:
pip uninstall om-pycycle
pip install om-pycycle
pip install -e .Generate the Duality cycle station map:
python example_cycles/duality.pyThis writes:
duality_cycle_map.png
duality_station_geometry.txt
Generate the integrated constraint diagram:
python -m sizing.constraint_diagramThis writes:
_constraint_diagram.png
The default cases are defined in sizing/constraint_diagram.py by
default_constraint_design_points().
The integrated diagram currently evaluates:
- constant-altitude/speed cruise
- constant-speed climb
- constant-altitude/speed turn
- climb acceleration
- ideal takeoff ground roll
- takeoff ground roll with drag and friction
- braking roll
- service ceiling
- takeoff climb angle
Shared thrust-loading math lives in sizing/constraint_equations.py.
example_cycles/duality.py: Duality pyCycle model and cycle station mapsizing/: aircraft geometry, weight, volume, mission closure, and constraintscoupled_mission/: mission and deck utilities for coupled studiesscripts/: command-line helpers for mission and deck generation
The pycycle package is provided by the external om-pycycle dependency. This
repo now keeps only the Duality-specific application code and generated outputs.
