diff --git a/benchmarking/assets/drela_opt6_90_dof.dat b/benchmarking/assets/drela_opt6_90_dof.dat new file mode 100644 index 0000000..aa5ec6a --- /dev/null +++ b/benchmarking/assets/drela_opt6_90_dof.dat @@ -0,0 +1,943 @@ +Drela Opt6 90DoF +1.000000 0.000000 +0.998792 0.000203 +0.997766 0.000612 +0.996740 0.000816 +0.995714 0.001225 +0.994688 0.001428 +0.993684 0.001814 +0.992453 0.002018 +0.991222 0.002426 +0.989991 0.002629 +0.988782 0.003038 +0.987551 0.003241 +0.984679 0.004058 +0.983265 0.004261 +0.981829 0.004669 +0.980187 0.005077 +0.978569 0.005485 +0.976927 0.005687 +0.975286 0.006095 +0.973667 0.006503 +0.971820 0.006888 +0.969974 0.007090 +0.968150 0.007498 +0.964457 0.008313 +0.962428 0.008721 +0.960376 0.009128 +0.958347 0.009535 +0.956295 0.009942 +0.954449 0.010350 +0.952215 0.010757 +0.950163 0.011164 +0.948134 0.011777 +0.946082 0.012161 +0.943825 0.012568 +0.941796 0.012976 +0.939539 0.013588 +0.937510 0.013995 +0.935253 0.014402 +0.933224 0.014809 +0.930967 0.015422 +0.928915 0.015829 +0.926681 0.016236 +0.924424 0.016643 +0.922395 0.017233 +0.920138 0.017640 +0.917904 0.018047 +0.915852 0.018454 +0.913595 0.019066 +0.911361 0.019473 +0.909104 0.019880 +0.907075 0.020492 +0.904818 0.020899 +0.902584 0.021306 +0.900531 0.021919 +0.898275 0.022303 +0.896041 0.022710 +0.893784 0.023117 +0.891754 0.023730 +0.889497 0.024137 +0.887263 0.024544 +0.885006 0.025156 +0.882954 0.025563 +0.880720 0.025970 +0.878463 0.026377 +0.876229 0.026989 +0.874177 0.027374 +0.871943 0.027781 +0.869686 0.028393 +0.867634 0.028800 +0.865400 0.029207 +0.863143 0.029819 +0.860909 0.030226 +0.858857 0.030634 +0.856623 0.031246 +0.854366 0.031653 +0.852314 0.032060 +0.850080 0.032649 +0.847823 0.033056 +0.845588 0.033668 +0.843537 0.034076 +0.841302 0.034483 +0.839045 0.035095 +0.836993 0.035502 +0.834759 0.035909 +0.832502 0.036521 +0.830473 0.036929 +0.828216 0.037313 +0.825982 0.037925 +0.823930 0.038332 +0.821673 0.038944 +0.819439 0.039351 +0.817387 0.039759 +0.815153 0.040371 +0.812896 0.040778 +0.810844 0.041390 +0.808610 0.041797 +0.806353 0.042387 +0.804301 0.042794 +0.802067 0.043201 +0.799832 0.043813 +0.797780 0.044220 +0.795523 0.044833 +0.793289 0.045240 +0.791237 0.045852 +0.788980 0.046259 +0.786951 0.046871 +0.784717 0.047278 +0.782460 0.047868 +0.780408 0.048275 +0.778174 0.048887 +0.776122 0.049295 +0.773887 0.049907 +0.771835 0.050519 +0.769578 0.050926 +0.767549 0.051539 +0.765292 0.051946 +0.763263 0.052535 +0.761006 0.053147 +0.758977 0.053555 +0.756925 0.054167 +0.754668 0.054779 +0.752639 0.055186 +0.750381 0.055799 +0.748352 0.056411 +0.746300 0.057023 +0.744043 0.057613 +0.742014 0.058020 +0.739962 0.058632 +0.737727 0.059245 +0.735675 0.059857 +0.733646 0.060469 +0.731389 0.061082 +0.729337 0.061694 +0.727308 0.062306 +0.725256 0.062691 +0.723021 0.063303 +0.718917 0.064528 +0.716888 0.065140 +0.714836 0.065753 +0.712807 0.066365 +0.710754 0.067183 +0.708702 0.067772 +0.706468 0.068385 +0.704621 0.068997 +0.702592 0.069610 +0.698488 0.070834 +0.696458 0.071447 +0.694611 0.072060 +0.692582 0.072672 +0.690735 0.073262 +0.688888 0.073875 +0.686836 0.074487 +0.685012 0.075100 +0.683370 0.075713 +0.681546 0.076326 +0.679699 0.076938 +0.678057 0.077551 +0.676438 0.077936 +0.674797 0.078549 +0.673360 0.078958 +0.671741 0.079571 +0.670099 0.080184 +0.668868 0.080592 +0.667660 0.081001 +0.666223 0.081409 +0.664992 0.082022 +0.663555 0.082431 +0.662552 0.082839 +0.661298 0.083225 +0.660294 0.083634 +0.659268 0.084043 +0.658037 0.084451 +0.657216 0.084655 +0.656190 0.085064 +0.655186 0.085472 +0.654160 0.085881 +0.653339 0.086085 +0.652336 0.086494 +0.651515 0.086698 +0.650694 0.087107 +0.649668 0.087311 +0.648847 0.087720 +0.648027 0.087924 +0.647228 0.088310 +0.646408 0.088514 +0.645382 0.088718 +0.644561 0.089127 +0.642919 0.089534 +0.642121 0.089944 +0.639658 0.090555 +0.638837 0.090964 +0.637196 0.091372 +0.636398 0.091576 +0.635759 0.091986 +0.634961 0.092190 +0.632499 0.092801 +0.631678 0.093188 +0.630880 0.093392 +0.629238 0.093800 +0.628623 0.094004 +0.627802 0.094413 +0.626981 0.094617 +0.626183 0.094821 +0.623721 0.095433 +0.623105 0.095637 +0.622284 0.096046 +0.621463 0.096250 +0.620665 0.096454 +0.617382 0.097270 +0.616766 0.097474 +0.615968 0.097678 +0.614327 0.098086 +0.613506 0.098267 +0.611865 0.098675 +0.611067 0.098879 +0.610451 0.099083 +0.607168 0.099899 +0.606370 0.100103 +0.605549 0.100307 +0.604934 0.100511 +0.601650 0.101327 +0.600852 0.101530 +0.600009 0.101734 +0.599416 0.101939 +0.596954 0.102550 +0.596156 0.102754 +0.594514 0.103162 +0.593693 0.103343 +0.593078 0.103343 +0.591437 0.103750 +0.590639 0.103954 +0.589795 0.104158 +0.588997 0.104157 +0.585714 0.104973 +0.584916 0.105177 +0.584096 0.105176 +0.583480 0.105380 +0.581018 0.105992 +0.580220 0.106196 +0.577758 0.106808 +0.577142 0.107012 +0.575500 0.107420 +0.574702 0.107624 +0.573061 0.108032 +0.572240 0.108030 +0.571625 0.108235 +0.570804 0.108416 +0.570006 0.108620 +0.569185 0.108824 +0.568365 0.108823 +0.567544 0.109026 +0.566724 0.109025 +0.565903 0.109229 +0.565105 0.109228 +0.564262 0.109432 +0.563464 0.109431 +0.562643 0.109635 +0.561823 0.109634 +0.561002 0.109838 +0.560181 0.109836 +0.559383 0.110040 +0.558563 0.110244 +0.557742 0.110243 +0.556921 0.110447 +0.556306 0.110651 +0.555485 0.110855 +0.554687 0.111059 +0.553046 0.111467 +0.552430 0.111671 +0.550788 0.112079 +0.549967 0.112488 +0.549169 0.112692 +0.548349 0.112896 +0.547733 0.113100 +0.546912 0.113304 +0.546091 0.113486 +0.545271 0.113689 +0.544473 0.113893 +0.543652 0.114097 +0.542831 0.114096 +0.541190 0.114504 +0.540369 0.114503 +0.539571 0.114707 +0.537930 0.114705 +0.537110 0.114908 +0.535469 0.114906 +0.534648 0.115110 +0.531389 0.115105 +0.530568 0.115309 +0.528129 0.115306 +0.527309 0.115510 +0.526693 0.115509 +0.525873 0.115713 +0.525052 0.115712 +0.524254 0.115916 +0.523411 0.115914 +0.522613 0.116118 +0.519330 0.116934 +0.518737 0.117138 +0.514633 0.118158 +0.514040 0.118362 +0.513197 0.118543 +0.512399 0.118747 +0.511578 0.118746 +0.509937 0.119154 +0.509116 0.119153 +0.508318 0.119357 +0.506677 0.119355 +0.505857 0.119559 +0.505036 0.119557 +0.504238 0.119761 +0.501777 0.119758 +0.500956 0.119962 +0.497697 0.119957 +0.496876 0.120161 +0.492774 0.120155 +0.491976 0.120359 +0.489514 0.120356 +0.488693 0.120559 +0.487075 0.120557 +0.486460 0.120761 +0.484819 0.120759 +0.483998 0.120963 +0.483200 0.120962 +0.482380 0.121166 +0.481559 0.121165 +0.480738 0.121369 +0.479918 0.121367 +0.479097 0.121571 +0.478299 0.121570 +0.477456 0.121774 +0.476658 0.121773 +0.475017 0.122181 +0.474196 0.122180 +0.473375 0.122384 +0.472782 0.122588 +0.471962 0.122587 +0.468679 0.123402 +0.467881 0.123401 +0.467061 0.123582 +0.465419 0.123990 +0.464803 0.124195 +0.463983 0.124193 +0.463162 0.124397 +0.462364 0.124601 +0.461543 0.124805 +0.460723 0.124804 +0.459902 0.125008 +0.459082 0.125007 +0.458284 0.125211 +0.457463 0.125210 +0.456642 0.125414 +0.455001 0.125411 +0.454181 0.125615 +0.450101 0.125609 +0.449281 0.125403 +0.446820 0.125399 +0.446022 0.125193 +0.445202 0.125192 +0.444381 0.124986 +0.442741 0.124983 +0.441943 0.124777 +0.441123 0.124776 +0.440302 0.124570 +0.428861 0.124553 +0.428041 0.124757 +0.426400 0.124755 +0.425602 0.124959 +0.423961 0.124956 +0.423140 0.125160 +0.422320 0.125159 +0.421522 0.125363 +0.419881 0.125361 +0.419265 0.125565 +0.418445 0.125564 +0.417624 0.125768 +0.416826 0.125767 +0.416005 0.125971 +0.415185 0.125969 +0.414364 0.126173 +0.413544 0.126172 +0.412723 0.126376 +0.411925 0.126375 +0.411082 0.126579 +0.409463 0.126576 +0.408643 0.126780 +0.407822 0.126779 +0.407001 0.126983 +0.405383 0.126981 +0.404562 0.127185 +0.401303 0.127180 +0.400483 0.127384 +0.384962 0.127362 +0.384142 0.127155 +0.379242 0.127148 +0.378422 0.126942 +0.373522 0.126935 +0.372701 0.126729 +0.366160 0.126719 +0.365363 0.126513 +0.358822 0.126504 +0.358002 0.126297 +0.354743 0.126293 +0.353922 0.126086 +0.350458 0.126082 +0.349638 0.125875 +0.347177 0.125872 +0.346356 0.125665 +0.343713 0.125662 +0.342893 0.125455 +0.339428 0.125450 +0.338403 0.125244 +0.335759 0.125240 +0.334734 0.125033 +0.331862 0.125029 +0.330837 0.124823 +0.328809 0.124820 +0.327783 0.124613 +0.325550 0.124610 +0.324525 0.124403 +0.322063 0.124400 +0.320833 0.124193 +0.319420 0.124191 +0.317984 0.123984 +0.316753 0.123982 +0.315341 0.123775 +0.313700 0.123772 +0.312059 0.123565 +0.310418 0.123563 +0.308800 0.123355 +0.307159 0.123353 +0.305313 0.123168 +0.303491 0.122960 +0.301645 0.122752 +0.299799 0.122750 +0.297976 0.122542 +0.295925 0.122334 +0.294102 0.122126 +0.290000 0.121710 +0.287972 0.121502 +0.285921 0.121294 +0.283893 0.121086 +0.281842 0.120878 +0.279609 0.120669 +0.277558 0.120461 +0.275507 0.120048 +0.273251 0.119840 +0.271223 0.119632 +0.269172 0.119424 +0.266939 0.119215 +0.264889 0.118802 +0.262655 0.118594 +0.260604 0.118386 +0.258372 0.117995 +0.256321 0.117787 +0.254087 0.117579 +0.252037 0.117166 +0.249781 0.116957 +0.247730 0.116544 +0.245497 0.116336 +0.243469 0.115923 +0.241213 0.115714 +0.239163 0.115301 +0.236929 0.115093 +0.234879 0.114680 +0.232646 0.114266 +0.230595 0.114058 +0.228339 0.113645 +0.226311 0.113231 +0.224055 0.113023 +0.222028 0.112633 +0.219772 0.112219 +0.217744 0.111806 +0.215693 0.111393 +0.213437 0.111185 +0.211410 0.110771 +0.209154 0.110358 +0.207126 0.109945 +0.205076 0.109532 +0.202820 0.109118 +0.200792 0.108705 +0.198741 0.108292 +0.196509 0.107696 +0.194458 0.107283 +0.192430 0.106870 +0.190175 0.106456 +0.188124 0.106043 +0.186096 0.105630 +0.183841 0.105011 +0.181813 0.104598 +0.179762 0.104185 +0.177530 0.103566 +0.173429 0.102740 +0.171401 0.102145 +0.169145 0.101731 +0.167095 0.101113 +0.165067 0.100700 +0.160967 0.099463 +0.158939 0.099050 +0.156706 0.098431 +0.154656 0.098018 +0.152605 0.097423 +0.150578 0.096804 +0.148527 0.096186 +0.146500 0.095773 +0.142399 0.094536 +0.140372 0.093918 +0.138321 0.093300 +0.136294 0.092682 +0.134243 0.092086 +0.132193 0.091468 +0.130166 0.090849 +0.128115 0.090231 +0.126088 0.089613 +0.124243 0.088995 +0.120142 0.087758 +0.118115 0.086958 +0.116292 0.086340 +0.114242 0.085721 +0.112192 0.084898 +0.110370 0.084280 +0.108320 0.083457 +0.106474 0.082839 +0.104447 0.082038 +0.102602 0.081420 +0.100575 0.080597 +0.098730 0.079979 +0.096885 0.079155 +0.094858 0.078332 +0.093013 0.077509 +0.091168 0.076709 +0.089141 0.075885 +0.085451 0.074239 +0.083629 0.073416 +0.081784 0.072593 +0.079962 0.071792 +0.076272 0.070146 +0.074450 0.069323 +0.072605 0.068295 +0.070760 0.067472 +0.068938 0.066671 +0.067094 0.065643 +0.065454 0.064820 +0.063632 0.063792 +0.061787 0.062969 +0.060170 0.061941 +0.058326 0.060936 +0.056686 0.060113 +0.054841 0.059085 +0.053225 0.058057 +0.051585 0.057029 +0.049968 0.056229 +0.045050 0.053145 +0.043433 0.052117 +0.041794 0.051112 +0.040360 0.049879 +0.038743 0.048851 +0.037309 0.047823 +0.035669 0.046796 +0.034257 0.045791 +0.032823 0.044558 +0.029955 0.042503 +0.028543 0.041475 +0.027109 0.040265 +0.025880 0.039238 +0.024469 0.038005 +0.023216 0.036978 +0.022010 0.035973 +0.020781 0.034741 +0.019552 0.033713 +0.018346 0.032481 +0.017322 0.031454 +0.016297 0.030449 +0.015068 0.029422 +0.014044 0.028190 +0.013020 0.027163 +0.012224 0.025931 +0.011405 0.024927 +0.010381 0.023900 +0.009562 0.022873 +0.008766 0.021641 +0.008152 0.020638 +0.007333 0.019611 +0.005492 0.016531 +0.004878 0.015528 +0.004264 0.014706 +0.003855 0.013680 +0.003264 0.012654 +0.002832 0.011627 +0.002446 0.010806 +0.002242 0.009803 +0.001424 0.008161 +0.001220 0.007135 +0.000813 0.005494 +0.000609 0.004696 +0.000405 0.003875 +0.000406 0.003055 +0.000202 0.002234 +0.000204 0.000798 +0.000000 0.000000 +0.000206 -0.000615 +0.000209 -0.002666 +0.000827 -0.004511 +0.001033 -0.005104 +0.001239 -0.005719 +0.001650 -0.006128 +0.001856 -0.006743 +0.002267 -0.007153 +0.002472 -0.007563 +0.002860 -0.007973 +0.003294 -0.008382 +0.004116 -0.009202 +0.004503 -0.009406 +0.005119 -0.009816 +0.005530 -0.009997 +0.005940 -0.010202 +0.006556 -0.010406 +0.006967 -0.010816 +0.007582 -0.011020 +0.007970 -0.011019 +0.008608 -0.011224 +0.008996 -0.011428 +0.010227 -0.011837 +0.010843 -0.011836 +0.011253 -0.012040 +0.012074 -0.012244 +0.012689 -0.012243 +0.013305 -0.012448 +0.013920 -0.012447 +0.014513 -0.012651 +0.015949 -0.012649 +0.016770 -0.012853 +0.018183 -0.012851 +0.019026 -0.013055 +0.020439 -0.013053 +0.021260 -0.013257 +0.024724 -0.013252 +0.025750 -0.013455 +0.040245 -0.013434 +0.041271 -0.013228 +0.045966 -0.013221 +0.047196 -0.013014 +0.050660 -0.013009 +0.051891 -0.012802 +0.055560 -0.012797 +0.056790 -0.012590 +0.059252 -0.012587 +0.060459 -0.012380 +0.061690 -0.012378 +0.062921 -0.012171 +0.065382 -0.012168 +0.066795 -0.011961 +0.069233 -0.011957 +0.070487 -0.011750 +0.071695 -0.011748 +0.072925 -0.011541 +0.075591 -0.011538 +0.076799 -0.011331 +0.078030 -0.011329 +0.079443 -0.011122 +0.080696 -0.011120 +0.081904 -0.010913 +0.084547 -0.010909 +0.085801 -0.010703 +0.087009 -0.010701 +0.088239 -0.010494 +0.089652 -0.010492 +0.090905 -0.010285 +0.092113 -0.010283 +0.093344 -0.010076 +0.096010 -0.010073 +0.097218 -0.009866 +0.098448 -0.009864 +0.099861 -0.009680 +0.101115 -0.009678 +0.102322 -0.009471 +0.103758 -0.009469 +0.104966 -0.009262 +0.107427 -0.009258 +0.108863 -0.009051 +0.110071 -0.009050 +0.111324 -0.008843 +0.112737 -0.008841 +0.113967 -0.008634 +0.116429 -0.008630 +0.117841 -0.008423 +0.119072 -0.008421 +0.120280 -0.008214 +0.121533 -0.008213 +0.122946 -0.008005 +0.125385 -0.008002 +0.126638 -0.007795 +0.129282 -0.007791 +0.130489 -0.007584 +0.131743 -0.007583 +0.133156 -0.007375 +0.135594 -0.007372 +0.136847 -0.007165 +0.139491 -0.007161 +0.140699 -0.006954 +0.144596 -0.006949 +0.145804 -0.006742 +0.148470 -0.006738 +0.149701 -0.006531 +0.153575 -0.006526 +0.154805 -0.006319 +0.158475 -0.006313 +0.159910 -0.006106 +0.165015 -0.006099 +0.166223 -0.005892 +0.172582 -0.005883 +0.173789 -0.005676 +0.184000 -0.005661 +0.185435 -0.005454 +0.200751 -0.005432 +0.201958 -0.005225 +0.239336 -0.005172 +0.240771 -0.004965 +0.268963 -0.004924 +0.270376 -0.004717 +0.285692 -0.004695 +0.287127 -0.004488 +0.297338 -0.004473 +0.298568 -0.004289 +0.306317 -0.004278 +0.307547 -0.004071 +0.313883 -0.004062 +0.315296 -0.003855 +0.320401 -0.003847 +0.321632 -0.003641 +0.326737 -0.003633 +0.327967 -0.003426 +0.331842 -0.003421 +0.333072 -0.003214 +0.336947 -0.003208 +0.338382 -0.003001 +0.342051 -0.002996 +0.343487 -0.002789 +0.345926 -0.002785 +0.347361 -0.002578 +0.351030 -0.002573 +0.352466 -0.002366 +0.354927 -0.002362 +0.356363 -0.002155 +0.358802 -0.002151 +0.360032 -0.001944 +0.363906 -0.001939 +0.365319 -0.001732 +0.367781 -0.001728 +0.369216 -0.001521 +0.371678 -0.001518 +0.372885 -0.001311 +0.375529 -0.001307 +0.376782 -0.001100 +0.379426 -0.001096 +0.380633 -0.000889 +0.383300 -0.000885 +0.384530 -0.000679 +0.387174 -0.000675 +0.388405 -0.000468 +0.391071 -0.000464 +0.392279 -0.000257 +0.394945 -0.000253 +0.396176 -0.000047 +0.398819 -0.000043 +0.400050 0.000164 +0.402694 0.000168 +0.403924 0.000375 +0.406591 0.000379 +0.407798 0.000586 +0.410465 0.000589 +0.411695 0.000796 +0.414134 0.000800 +0.415569 0.000984 +0.418008 0.000988 +0.419444 0.001195 +0.421905 0.001198 +0.423318 0.001405 +0.425779 0.001409 +0.427215 0.001616 +0.429653 0.001620 +0.431089 0.001827 +0.433527 0.001830 +0.434963 0.002038 +0.437424 0.002041 +0.438837 0.002248 +0.442529 0.002254 +0.443942 0.002461 +0.446403 0.002464 +0.447839 0.002671 +0.450278 0.002675 +0.451713 0.002882 +0.454152 0.002886 +0.455587 0.003093 +0.458049 0.003096 +0.459461 0.003303 +0.461923 0.003307 +0.463153 0.003514 +0.467028 0.003519 +0.468441 0.003727 +0.470902 0.003730 +0.472337 0.003937 +0.474776 0.003941 +0.476007 0.004148 +0.479881 0.004153 +0.481317 0.004360 +0.483755 0.004364 +0.485191 0.004571 +0.488860 0.004576 +0.490296 0.004784 +0.492757 0.004787 +0.494193 0.004994 +0.498044 0.005000 +0.499297 0.005207 +0.503149 0.005212 +0.504402 0.005419 +0.508254 0.005425 +0.509507 0.005632 +0.513359 0.005637 +0.514612 0.005844 +0.519717 0.005851 +0.521130 0.006059 +0.526235 0.006066 +0.527466 0.006250 +0.532571 0.006257 +0.534006 0.006464 +0.540319 0.006474 +0.541550 0.006680 +0.549321 0.006692 +0.550529 0.006898 +0.558301 0.006910 +0.559736 0.007117 +0.569947 0.007131 +0.571154 0.007338 +0.581570 0.007353 +0.582800 0.007560 +0.594446 0.007577 +0.595677 0.007784 +0.606092 0.007799 +0.607300 0.008006 +0.617715 0.008021 +0.618946 0.008227 +0.627925 0.008240 +0.629361 0.008447 +0.636905 0.008458 +0.638340 0.008665 +0.647343 0.008678 +0.648550 0.008885 +0.656299 0.008896 +0.657735 0.009104 +0.666737 0.009116 +0.667945 0.009323 +0.679591 0.009340 +0.680821 0.009547 +0.701242 0.009576 +0.702678 0.009783 +0.719201 0.009807 +0.720637 0.009604 +0.741058 0.009633 +0.742289 0.009430 +0.753935 0.009447 +0.755143 0.009243 +0.764351 0.009257 +0.765559 0.009053 +0.773331 0.009064 +0.774562 0.008861 +0.783541 0.008874 +0.784772 0.008671 +0.793957 0.008684 +0.795165 0.008480 +0.806811 0.008497 +0.808042 0.008294 +0.823563 0.008316 +0.824771 0.008113 +0.875025 0.008185 +0.876256 0.007981 +0.903195 0.008020 +0.904426 0.007817 +0.914637 0.007831 +0.915868 0.007628 +0.922203 0.007637 +0.923412 0.007434 +0.927309 0.007439 +0.928517 0.007236 +0.932414 0.007242 +0.933623 0.007038 +0.936084 0.007042 +0.937315 0.006838 +0.939754 0.006842 +0.940985 0.006661 +0.943628 0.006665 +0.944859 0.006462 +0.946090 0.006464 +0.947298 0.006260 +0.948552 0.006262 +0.949760 0.006059 +0.950991 0.006060 +0.952222 0.005857 +0.953430 0.005859 +0.954661 0.005655 +0.955891 0.005657 +0.957122 0.005454 +0.958353 0.005456 +0.959561 0.005252 +0.960792 0.005254 +0.963254 0.004847 +0.964462 0.004849 +0.965488 0.004645 +0.966719 0.004442 +0.967949 0.004444 +0.969158 0.004240 +0.970389 0.004037 +0.971414 0.004039 +0.972645 0.003835 +0.973854 0.003632 +0.974879 0.003633 +0.976110 0.003430 +0.977136 0.003226 +0.978367 0.003023 +0.979370 0.003024 +0.980396 0.002821 +0.981627 0.002617 +0.982653 0.002414 +0.983678 0.002415 +0.984681 0.002212 +0.985707 0.002008 +0.986733 0.002009 +0.987759 0.001806 +0.988579 0.001625 +0.989582 0.001626 +0.990608 0.001422 +0.991429 0.001218 +0.992454 0.001220 +0.993252 0.001016 +0.994096 0.000812 +0.994894 0.000813 +0.995920 0.000609 +0.996740 0.000406 +0.997561 0.000407 +0.998359 0.000203 +0.999202 0.000204 +1.000000 0.000000 \ No newline at end of file diff --git a/benchmarking/daedalus_optimization.py b/benchmarking/daedalus_optimization.py new file mode 100644 index 0000000..bb5c2e1 --- /dev/null +++ b/benchmarking/daedalus_optimization.py @@ -0,0 +1,145 @@ +import aerosandbox as asb +import aerosandbox.numpy as np + + +CL_multipoint_targets = np.array([0.8, 1.0, 1.2, 1.4, 1.5, 1.6]) +CL_multipoint_weights = np.array([5, 6, 7, 8, 9, 10]) + +Re = 500e3 * (CL_multipoint_targets / 1.25) ** -0.5 +mach = 0.03 + +initial_guess_airfoil = asb.KulfanAirfoil("naca0012") +initial_guess_airfoil.name = "Initial Guess (NACA0012)" + +opti = asb.Opti() + +optimized_airfoil = asb.KulfanAirfoil( + name="Optimized", + lower_weights=opti.variable( + init_guess=initial_guess_airfoil.lower_weights, + lower_bound=-0.5, + upper_bound=0.25, + ), + upper_weights=opti.variable( + init_guess=initial_guess_airfoil.upper_weights, + lower_bound=-0.25, + upper_bound=0.5, + ), + leading_edge_weight=opti.variable( + init_guess=initial_guess_airfoil.leading_edge_weight, + lower_bound=-1, + upper_bound=1, + ), + TE_thickness=0, +) + +alpha = opti.variable( + init_guess=np.degrees(CL_multipoint_targets / (2 * np.pi)), + lower_bound=-5, + upper_bound=18 +) + +aero = optimized_airfoil.get_aero_from_neuralfoil( + alpha=alpha, + Re=Re, + mach=mach, + model_size="xxxlarge", +) + +opti.subject_to([ + aero["analysis_confidence"] > 0.90, + aero["CL"] == CL_multipoint_targets, + np.diff(alpha) > 0, + aero["CM"] >= -0.133, + optimized_airfoil.local_thickness(x_over_c=0.33) >= 0.128, + optimized_airfoil.local_thickness(x_over_c=0.90) >= 0.014, + optimized_airfoil.TE_angle() >= 6.03, # Modified from Drela's 6.25 to match DAE-11 case + optimized_airfoil.lower_weights[0] < -0.05, + optimized_airfoil.upper_weights[0] > 0.05, + optimized_airfoil.local_thickness() > 0 +]) + +get_wiggliness = lambda af: sum([ + np.sum(np.diff(np.diff(array)) ** 2) + for array in [af.lower_weights, af.upper_weights] +]) + +opti.subject_to( + get_wiggliness(optimized_airfoil) < 2 * get_wiggliness(initial_guess_airfoil) +) + +opti.minimize(np.mean(aero["CD"] * CL_multipoint_weights)) + +sol = opti.solve( + behavior_on_failure="return_last", + options={ + "ipopt.mu_strategy": 'monotone', + "ipopt.start_with_resto": 'yes' + } +) + +optimized_airfoil = sol(optimized_airfoil) +aero = sol(aero) + + +import matplotlib.pyplot as plt +import aerosandbox.tools.pretty_plots as p + +Re_plot = 500e3 + +fig, ax = plt.subplots(2, 1, figsize=(7, 8)) + +airfoils_and_colors = { + "Initial Guess" : (initial_guess_airfoil, "dimgray"), + "NeuralFoil-Optimized" : (optimized_airfoil, "blue"), + "XFoil-Optimized" : + (asb.Airfoil(coordinates=f"./assets/drela_opt6_90_dof.dat").to_kulfan_airfoil(), "darkgreen"), + "Expert-Designed (DAE-11)": (asb.Airfoil("dae11"), "red"), +} + +for i, (name, (af, color)) in enumerate(airfoils_and_colors.items()): + color = p.adjust_lightness(color, 1) + ax[0].fill( + af.x(), af.y(), + facecolor=(*color, 0.09), + edgecolor=(*color, 0.6), + linewidth=1, + label=name, + linestyle=(3 * i, (7, 2)), + zorder=4 if "NeuralFoil" in name else 3, + ) + # aero = af.get_aero_from_neuralfoil( + # alpha=np.linspace(0, 15, 500), + # Re=Re, + # mach=mach, + # ) + + aero = asb.XFoil( + airfoil=af, + Re=Re_plot, + mach=mach, + timeout=30, + ).alpha(np.linspace(0, 15, 101), start_at=0) + ax[1].plot( + aero["CD"], aero["CL"], # "--", + color=color, alpha=0.7, + label=name, + zorder=4 if "NeuralFoil" in name else 3, + ) +ax[0].legend(fontsize=11, loc="lower right", ncol=len(airfoils_and_colors) // 2) +ax[0].set_title("Airfoil Shapes") +ax[0].set_xlabel("$x/c$") +ax[0].set_ylabel("$y/c$") +ax[0].axis('equal') + +ax[1].legend(fontsize=11, loc="lower right", ncol=len(airfoils_and_colors) // 2) +ax[1].set_title(f"Aerodynamic Polars (analyzed with XFoil, $\\mathrm{{Re}}=500\\mathrm{{k}}$)") +ax[1].set_xlabel("Drag Coefficient $C_D$") +ax[1].set_ylabel("Lift\nCoefficient\n$C_L$") +ax[1].set_xlim(0, 0.02) +ax[1].set_ylim(0, 1.8) +p.show_plot( + "Comparison of NeuralFoil-Optimized-, XFoil-Optimized-,\nand Expert-Designed-Airfoils", + savefig="daedalus_optimization.svg", + legend=False +) \ No newline at end of file diff --git a/benchmarking/daedalus_optimization.svg b/benchmarking/daedalus_optimization.svg new file mode 100644 index 0000000..6ce3e0c --- /dev/null +++ b/benchmarking/daedalus_optimization.svg @@ -0,0 +1,4323 @@ + + + + + + + + 2024-03-15T00:23:56.394249 + image/svg+xml + + + Matplotlib v3.8.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +