airinnova / pytornado

:airplane: An implementation of the vortex-lattice method (VLM)
https://pytornado.readthedocs.io/
Apache License 2.0
25 stars 7 forks source link

Overflow or memory access error in aerodynamic coefficients on Windows 10 #15

Closed aarondettmann closed 4 years ago

aarondettmann commented 4 years ago

An overflow or memory access bug is suspected. Error has been produced on a Windows 10 system.

To produce the error:

pytornado --make-example
cd .\pytornado\
pytornado -cv .\settings\template.json

This results in the following output in the terminal:

...
[... INFO] @ pytornado.aero.vlm | Pre-allocating vortex-lattice method results...
[... INFO] @ pytornado.aero.vlm | Computing results...
[... INFO] @ pytornado.aero.vlm | --> Fx = -1.946e+02
[... INFO] @ pytornado.aero.vlm | --> Fy = 5.098e-303
[... INFO] @ pytornado.aero.vlm | --> Fz = 2.640e+191
[... INFO] @ pytornado.aero.vlm | --> FD = 9.208e+189
[... INFO] @ pytornado.aero.vlm | --> FC = 3.216e+188
[... INFO] @ pytornado.aero.vlm | --> FL = 2.638e+191
[... INFO] @ pytornado.aero.vlm | --> Mx =  2.987e+04
[... INFO] @ pytornado.aero.vlm | --> My = -8.648e+03
[... INFO] @ pytornado.aero.vlm | --> Mz =  2.434e+02
[... INFO] @ pytornado.aero.vlm | --> Cx = -0.0032
[... INFO] @ pytornado.aero.vlm | --> Cy =  0.0000
[... INFO] @ pytornado.aero.vlm | --> Cz = 4310306740840105872775157176533500182972667108823184633752001996355399438874484340618455714533441059567706923708553457554295700209043653152099537955380622521171057660745443235315704659968.0000
[... INFO] @ pytornado.aero.vlm | --> CD = 150335899498269576655863479651962660742841077021561704229376396038930950201837543382292880495493340690535301539664628119739663865405568958486362087680254127115330982352353254559038046208.0000
[... INFO] @ pytornado.aero.vlm | --> CC = 5249845292713624069719902860462242867569000306230662345032365277126063483659274284128215418080097234452624254302997207576214439027144596626746912936561974047363242453064521820342845440.0000
[... INFO] @ pytornado.aero.vlm | --> CL = 4307681018434176543373051804779323747877346502938677146351055080694483419506094723372216748148945969541284248274213973140867640278446549213080788307699969439225737815503343307869365731328.0000
[... INFO] @ pytornado.aero.vlm | --> Cl =  0.0975
[... INFO] @ pytornado.aero.vlm | --> Cm = -0.0706
[... INFO] @ pytornado.aero.vlm | --> Cn =  0.0008
[... INFO] @ pytornado.plot.makeplots | Generating results plot...
[... INFO] @ pytornado.stdfun.run | pytornado 0.5.1 terminated

These values are obviously wrong. Same values can be found in the results file if written to disc.

All variables for global forces/moment and corresponding coefficients should be checked.

aarondettmann commented 4 years ago

Fixed with commit 145b845. Output is now:

...
[... INFO] @ pytornado.aero.vlm | Pre-allocating vortex-lattice method results...
[... INFO] @ pytornado.aero.vlm | Computing results...
[... INFO] @ pytornado.aero.vlm | --> Fx = -1.946e+02
[... INFO] @ pytornado.aero.vlm | --> Fy =  0.000e+00
[... INFO] @ pytornado.aero.vlm | --> Fz =  1.787e+04
[... INFO] @ pytornado.aero.vlm | --> FD =  4.288e+02
[... INFO] @ pytornado.aero.vlm | --> FC =  1.497e+01
[... INFO] @ pytornado.aero.vlm | --> FL =  1.786e+04
[... INFO] @ pytornado.aero.vlm | --> Mx =  2.987e+04
[... INFO] @ pytornado.aero.vlm | --> My = -8.648e+03
[... INFO] @ pytornado.aero.vlm | --> Mz =  2.434e+02
[... INFO] @ pytornado.aero.vlm | --> Cx = -0.0032
[... INFO] @ pytornado.aero.vlm | --> Cy =  0.0000
[... INFO] @ pytornado.aero.vlm | --> Cz =  0.2917
[... INFO] @ pytornado.aero.vlm | --> CD =  0.0070
[... INFO] @ pytornado.aero.vlm | --> CC =  0.0002
[... INFO] @ pytornado.aero.vlm | --> CL =  0.2917
[... INFO] @ pytornado.aero.vlm | --> Cl =  0.0975
[... INFO] @ pytornado.aero.vlm | --> Cm = -0.0706
[... INFO] @ pytornado.aero.vlm | --> Cn =  0.0008
[... INFO] @ pytornado.plot.makeplots | Generating results plot...
[... INFO] @ pytornado.stdfun.run | pytornado 0.5.1 terminated