diff --git a/.gitmodules b/.gitmodules index 5a76ddb87..49ebf7787 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "ROSCO"] path = ROSCO - url = https://github.com/NREL/ROSCO.git + url = https://github.com/NREL/ROSCO diff --git a/Examples/Cp_Ct_Cq.Ex03.txt b/Examples/Cp_Ct_Cq.Ex03.txt index 490a2bd91..71fdc76a8 100644 --- a/Examples/Cp_Ct_Cq.Ex03.txt +++ b/Examples/Cp_Ct_Cq.Ex03.txt @@ -1,165 +1,93 @@ # ----- Rotor performance tables for the NREL-5MW wind turbine ----- -# ------------ Written on Sep-28-20 using the ROSCO toolbox ------------ +# ------------ Written on Dec-17-20 using the ROSCO toolbox ------------ -# Pitch angle vector, 104 entries - x axis (matrix columns) (deg) --1.0 -0.75 -0.5 -0.25 0.0 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0 2.25 2.5 2.75 3.0 3.25 3.5 3.75 4.0 4.25 4.5 4.75 5.0 5.25 5.5 5.75 6.0 6.25 6.5 6.75 7.0 7.25 7.5 7.75 8.0 8.25 8.5 8.75 9.0 9.25 9.5 9.75 10.0 10.25 10.5 10.75 11.0 11.25 11.5 11.75 12.0 12.25 12.5 12.75 13.0 13.25 13.5 13.75 14.0 14.25 14.5 14.75 15.0 15.25 15.5 15.75 16.0 16.25 16.5 16.75 17.0 17.25 17.5 17.75 18.0 18.25 18.5 18.75 19.0 19.25 19.5 19.75 20.0 20.25 20.5 20.75 21.0 21.25 21.5 21.75 22.0 22.25 22.5 22.75 23.0 23.25 23.5 23.75 24.0 24.25 24.5 24.75 -# TSR vector, 48 entries - y axis (matrix rows) (-) -3.0 3.25 3.5 3.75 4.0 4.25 4.5 4.75 5.0 5.25 5.5 5.75 6.0 6.25 6.5 6.75 7.0 7.25 7.5 7.75 8.0 8.25 8.5 8.75 9.0 9.25 9.5 9.75 10.0 10.25 10.5 10.75 11.0 11.25 11.5 11.75 12.0 12.25 12.5 12.75 13.0 13.25 13.5 13.75 14.0 14.25 14.5 14.75 +# Pitch angle vector, 52 entries - x axis (matrix columns) (deg) +-1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 16.5 17.0 17.5 18.0 18.5 19.0 19.5 20.0 20.5 21.0 21.5 22.0 22.5 23.0 23.5 24.0 24.5 +# TSR vector, 24 entries - y axis (matrix rows) (-) +3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5 # Wind speed vector - z axis (m/s) 11.4 # Power coefficient -0.091629 0.094090 0.096514 0.098901 0.101250 0.103558 0.105826 0.108050 0.110232 0.112368 0.114459 0.116502 0.118497 0.120443 0.122338 0.124181 0.125970 0.127706 0.129385 0.131007 0.132570 0.134072 0.135514 0.136893 0.138207 0.139457 0.140640 0.141756 0.142804 0.143784 0.144696 0.145540 0.146319 0.147030 0.147676 0.148255 0.148769 0.149219 0.149605 0.149928 0.150188 0.150383 0.150515 0.150582 0.150587 0.150529 0.150409 0.150227 0.149981 0.149673 0.149302 0.148871 0.148380 0.147828 0.147217 0.146545 0.145811 0.145012 0.144149 0.143217 0.142214 0.141136 0.139979 0.138743 0.137424 0.136025 0.134547 0.132992 0.131362 0.129656 0.127872 0.126011 0.124072 0.122058 0.119971 0.117813 0.115588 0.113295 0.110934 0.108508 0.106015 0.103458 0.100837 0.098154 0.095410 0.092608 0.089752 0.086846 0.083892 0.080893 0.077851 0.074769 0.071649 0.068492 0.065301 0.062077 0.058822 0.055539 0.052227 0.048890 0.045528 0.042142 0.038734 0.035304 -0.116951 0.119633 0.122262 0.124837 0.127357 0.129822 0.132229 0.134577 0.136866 0.139093 0.141257 0.143357 0.145391 0.147359 0.149256 0.151083 0.152836 0.154515 0.156117 0.157641 0.159088 0.160454 0.161741 0.162950 0.164079 0.165130 0.166105 0.167003 0.167825 0.168571 0.169242 0.169838 0.170360 0.170805 0.171174 0.171466 0.171682 0.171819 0.171879 0.171861 0.171764 0.171588 0.171336 0.171008 0.170606 0.170128 0.169575 0.168945 0.168237 0.167448 0.166576 0.165617 0.164569 0.163426 0.162185 0.160846 0.159410 0.157879 0.156255 0.154538 0.152730 0.150828 0.148831 0.146743 0.144564 0.142300 0.139952 0.137521 0.135007 0.132410 0.129730 0.126968 0.124126 0.121205 0.118210 0.115142 0.112008 0.108810 0.105552 0.102237 0.098867 0.095445 0.091974 0.088456 0.084893 0.081287 0.077641 0.073957 0.070235 0.066479 0.062689 0.058868 0.055017 0.051137 0.047230 0.043296 0.039337 0.035354 0.031348 0.027320 0.023271 0.019201 0.015112 0.011004 -0.143862 0.146710 0.149490 0.152200 0.154839 0.157404 0.159895 0.162309 0.164643 0.166896 0.169066 0.171151 0.173150 0.175060 0.176880 0.178611 0.180251 0.181803 0.183265 0.184640 0.185928 0.187129 0.188241 0.189267 0.190205 0.191056 0.191818 0.192491 0.193072 0.193560 0.193953 0.194251 0.194452 0.194558 0.194569 0.194485 0.194306 0.194033 0.193665 0.193202 0.192641 0.191981 0.191217 0.190345 0.189362 0.188264 0.187047 0.185711 0.184260 0.182697 0.181024 0.179239 0.177341 0.175330 0.173207 0.170975 0.168638 0.166200 0.163663 0.161026 0.158290 0.155454 0.152519 0.149487 0.146359 0.143140 0.139836 0.136450 0.132987 0.129450 0.125842 0.122168 0.118428 0.114626 0.110765 0.106847 0.102873 0.098848 0.094773 0.090650 0.086481 0.082269 0.078015 0.073720 0.069388 0.065019 0.060615 0.056178 0.051708 0.047209 0.042680 0.038124 0.033540 0.028930 0.024295 0.019636 0.014953 0.010246 0.005517 0.000766 -0.004006 -0.008797 -0.013605 -0.018429 -0.171932 0.174905 0.177790 0.180588 0.183294 0.185908 0.188427 0.190850 0.193175 0.195403 0.197534 0.199566 0.201501 0.203338 0.205076 0.206715 0.208255 0.209695 0.211037 0.212277 0.213415 0.214446 0.215369 0.216180 0.216879 0.217463 0.217933 0.218287 0.218522 0.218640 0.218638 0.218516 0.218273 0.217907 0.217414 0.216790 0.216030 0.215131 0.214090 0.212908 0.211586 0.210129 0.208538 0.206813 0.204952 0.202955 0.200823 0.198564 0.196182 0.193680 0.191059 0.188319 0.185457 0.182475 0.179375 0.176161 0.172837 0.169410 0.165885 0.162267 0.158560 0.154765 0.150886 0.146927 0.142889 0.138777 0.134591 0.130336 0.126013 0.121624 0.117173 0.112661 0.108090 0.103464 0.098783 0.094050 0.089268 0.084438 0.079562 0.074642 0.069681 0.064680 0.059641 0.054566 0.049456 0.044313 0.039138 0.033932 0.028696 0.023431 0.018137 0.012815 0.007466 0.002088 -0.003316 -0.008748 -0.014204 -0.019684 -0.025186 -0.030707 -0.036245 -0.041797 -0.047359 -0.052929 -0.200838 0.203909 0.206880 0.209749 0.212515 0.215177 0.217734 0.220184 0.222527 0.224762 0.226889 0.228905 0.230809 0.232599 0.234272 0.235824 0.237251 0.238552 0.239722 0.240758 0.241657 0.242415 0.243028 0.243492 0.243808 0.243972 0.243980 0.243829 0.243513 0.243029 0.242372 0.241542 0.240542 0.239376 0.238048 0.236558 0.234906 0.233091 0.231115 0.228985 0.226706 0.224284 0.221720 0.219013 0.216162 0.213169 0.210037 0.206769 0.203372 0.199853 0.196218 0.192471 0.188618 0.184663 0.180611 0.176464 0.172226 0.167902 0.163490 0.158992 0.154412 0.149750 0.145010 0.140193 0.135302 0.130339 0.125305 0.120204 0.115036 0.109806 0.104515 0.099166 0.093761 0.088304 0.082795 0.077238 0.071634 0.065985 0.060294 0.054562 0.048792 0.042985 0.037141 0.031263 0.025350 0.019404 0.013425 0.007413 0.001367 -0.004712 -0.010825 -0.016971 -0.023149 -0.029358 -0.035596 -0.041859 -0.048144 -0.054447 -0.060765 -0.067093 -0.073427 -0.079763 -0.086097 -0.092426 -0.230641 0.233863 0.236973 0.239972 0.242855 0.245621 0.248266 0.250787 0.253179 0.255440 0.257564 0.259547 0.261384 0.263068 0.264592 0.265950 0.267134 0.268139 0.268962 0.269596 0.270033 0.270266 0.270291 0.270103 0.269702 0.269091 0.268276 0.267262 0.266050 0.264640 0.263035 0.261238 0.259259 0.257104 0.254781 0.252291 0.249631 0.246804 0.243811 0.240656 0.237346 0.233888 0.230290 0.226559 0.222701 0.218721 0.214623 0.210414 0.206096 0.201671 0.197143 0.192516 0.187792 0.182972 0.178060 0.173059 0.167965 0.162781 0.157510 0.152152 0.146709 0.141185 0.135580 0.129898 0.124142 0.118313 0.112415 0.106451 0.100424 0.094335 0.088188 0.081986 0.075731 0.069425 0.063071 0.056670 0.050224 0.043736 0.037206 0.030636 0.024026 0.017376 0.010688 0.003960 -0.002807 -0.009616 -0.016466 -0.023356 -0.030288 -0.037259 -0.044268 -0.051312 -0.058387 -0.065489 -0.072612 -0.079752 -0.086902 -0.094058 -0.101212 -0.108359 -0.115495 -0.122615 -0.129714 -0.136785 -0.261843 0.265283 0.268590 0.271760 0.274786 0.277662 0.280380 0.282931 0.285305 0.287491 0.289480 0.291263 0.292831 0.294173 0.295276 0.296129 0.296725 0.297061 0.297136 0.296955 0.296523 0.295844 0.294921 0.293755 0.292352 0.290723 0.288880 0.286834 0.284588 0.282145 0.279505 0.276672 0.273653 0.270456 0.267088 0.263559 0.259875 0.256045 0.252073 0.247964 0.243724 0.239357 0.234867 0.230258 0.225534 0.220697 0.215750 0.210693 0.205528 0.200257 0.194884 0.189409 0.183835 0.178163 0.172392 0.166522 0.160556 0.154496 0.148345 0.142104 0.135777 0.129367 0.122876 0.116308 0.109666 0.102954 0.096173 0.089328 0.082421 0.075455 0.068432 0.061354 0.054224 0.047043 0.039813 0.032535 0.025211 0.017841 0.010424 0.002961 -0.004550 -0.012108 -0.019716 -0.027374 -0.035082 -0.042840 -0.050648 -0.058502 -0.066401 -0.074338 -0.082309 -0.090307 -0.098326 -0.106357 -0.114392 -0.122424 -0.130445 -0.138446 -0.146420 -0.154363 -0.162266 -0.170124 -0.177931 -0.185684 -0.294863 0.298505 0.301962 0.305222 0.308270 0.311094 0.313679 0.316009 0.318064 0.319831 0.321297 0.322455 0.323302 0.323836 0.324063 0.323982 0.323596 0.322909 0.321931 0.320676 0.319159 0.317394 0.315387 0.313144 0.310673 0.307981 0.305081 0.301981 0.298693 0.295227 0.291589 0.287788 0.283829 0.279718 0.275460 0.271060 0.266521 0.261847 0.257041 0.252105 0.247043 0.241857 0.236549 0.231120 0.225572 0.219908 0.214126 0.208228 0.202218 0.196097 0.189865 0.183527 0.177082 0.170528 0.163868 0.157105 0.150242 0.143280 0.136225 0.129078 0.121843 0.114525 0.107126 0.099649 0.092099 0.084478 0.076788 0.069034 0.061217 0.053339 0.045403 0.037410 0.029361 0.021257 0.013099 0.004887 -0.003381 -0.011704 -0.020085 -0.028525 -0.037025 -0.045586 -0.054207 -0.062889 -0.071630 -0.080425 -0.089270 -0.098159 -0.107085 -0.116037 -0.125006 -0.133983 -0.142955 -0.151912 -0.160842 -0.169738 -0.178589 -0.187388 -0.196127 -0.204800 -0.213403 -0.221937 -0.230401 -0.238803 -0.329311 0.332920 0.336237 0.339238 0.341909 0.344236 0.346210 0.347822 0.349067 0.349940 0.350441 0.350569 0.350333 0.349747 0.348830 0.347600 0.346067 0.344242 0.342138 0.339774 0.337166 0.334331 0.331285 0.328038 0.324600 0.320979 0.317182 0.313216 0.309084 0.304793 0.300346 0.295746 0.290998 0.286104 0.281067 0.275889 0.270572 0.265117 0.259527 0.253801 0.247942 0.241952 0.235830 0.229580 0.223202 0.216695 0.210063 0.203309 0.196432 0.189437 0.182326 0.175094 0.167744 0.160280 0.152703 0.145017 0.137227 0.129335 0.121345 0.113263 0.105091 0.096832 0.088492 0.080073 0.071578 0.063009 0.054370 0.045662 0.036887 0.028047 0.019143 0.010175 0.001142 -0.007954 -0.017117 -0.026347 -0.035646 -0.045015 -0.054458 -0.063973 -0.073561 -0.083220 -0.092948 -0.102741 -0.112590 -0.122488 -0.132424 -0.142387 -0.152364 -0.162340 -0.172302 -0.182233 -0.192122 -0.201958 -0.211729 -0.221427 -0.231043 -0.240572 -0.250012 -0.259364 -0.268632 -0.277826 -0.286960 -0.296054 -0.363235 0.366309 0.368978 0.371230 0.373053 0.374438 0.375380 0.375886 0.375969 0.375647 0.374938 0.373855 0.372418 0.370650 0.368578 0.366227 0.363623 0.360786 0.357731 0.354468 0.351009 0.347359 0.343525 0.339511 0.335322 0.330963 0.326436 0.321744 0.316891 0.311880 0.306713 0.301391 0.295917 0.290292 0.284516 0.278591 0.272516 0.266292 0.259921 0.253403 0.246740 0.239933 0.232985 0.225896 0.218665 0.211296 0.203791 0.196152 0.188381 0.180479 0.172444 0.164280 0.155989 0.147575 0.139044 0.130399 0.121644 0.112784 0.103824 0.094766 0.085616 0.076376 0.067050 0.057641 0.048151 0.038582 0.028937 0.019216 0.009421 -0.000449 -0.010394 -0.020416 -0.030515 -0.040694 -0.050955 -0.061300 -0.071731 -0.082249 -0.092853 -0.103541 -0.114309 -0.125152 -0.136059 -0.147022 -0.158026 -0.169057 -0.180098 -0.191131 -0.202138 -0.213101 -0.224004 -0.234835 -0.245580 -0.256230 -0.266776 -0.277212 -0.287537 -0.297755 -0.307874 -0.317905 -0.327870 -0.337795 -0.347709 -0.357642 -0.393962 0.396077 0.397689 0.398800 0.399420 0.399559 0.399240 0.398486 0.397328 0.395802 0.393945 0.391789 0.389360 0.386683 0.383774 0.380647 0.377313 0.373778 0.370046 0.366123 0.362012 0.357717 0.353240 0.348584 0.343753 0.338749 0.333573 0.328229 0.322716 0.317037 0.311193 0.305182 0.299007 0.292666 0.286159 0.279488 0.272652 0.265651 0.258486 0.251160 0.243673 0.236029 0.228225 0.220263 0.212146 0.203878 0.195460 0.186895 0.178183 0.169323 0.160320 0.151179 0.141904 0.132499 0.122971 0.113323 0.103560 0.093687 0.083709 0.073628 0.063449 0.053174 0.042807 0.032350 0.021805 0.011172 0.000453 -0.010353 -0.021246 -0.032228 -0.043302 -0.054469 -0.065733 -0.077096 -0.088560 -0.100124 -0.111789 -0.123553 -0.135410 -0.147353 -0.159372 -0.171452 -0.183580 -0.195737 -0.207902 -0.220052 -0.232167 -0.244227 -0.256210 -0.268101 -0.279885 -0.291552 -0.303089 -0.314492 -0.325762 -0.336902 -0.347923 -0.358842 -0.369684 -0.380484 -0.391278 -0.402103 -0.412991 -0.423967 -0.419194 0.420039 0.420355 0.420180 0.419555 0.418521 0.417118 0.415382 0.413345 0.411031 0.408460 0.405652 0.402619 0.399371 0.395912 0.392247 0.388378 0.384308 0.380041 0.375578 0.370923 0.366078 0.361044 0.355823 0.350417 0.344827 0.339054 0.333098 0.326958 0.320635 0.314128 0.307437 0.300561 0.293499 0.286251 0.278817 0.271197 0.263392 0.255405 0.247236 0.238888 0.230363 0.221658 0.212780 0.203732 0.194516 0.185138 0.175593 0.165886 0.156022 0.146004 0.135840 0.125533 0.115090 0.104515 0.093815 0.082993 0.072054 0.061003 0.049843 0.038577 0.027208 0.015736 0.004165 -0.007507 -0.019278 -0.031151 -0.043126 -0.055208 -0.067399 -0.079703 -0.092120 -0.104654 -0.117306 -0.130073 -0.142955 -0.155944 -0.169035 -0.182214 -0.195465 -0.208771 -0.222111 -0.235461 -0.248795 -0.262088 -0.275316 -0.288455 -0.301482 -0.314380 -0.327137 -0.339740 -0.352183 -0.364465 -0.376593 -0.388579 -0.400441 -0.412214 -0.423936 -0.435651 -0.447406 -0.459243 -0.471199 -0.483306 -0.495571 -0.437423 0.437176 0.436516 0.435476 0.434091 0.432395 0.430412 0.428161 0.425657 0.422916 0.419946 0.416750 0.413330 0.409691 0.405833 0.401760 0.397474 0.392976 0.388269 0.383354 0.378233 0.372907 0.367377 0.361643 0.355706 0.349564 0.343216 0.336663 0.329903 0.322934 0.315756 0.308369 0.300770 0.292959 0.284938 0.276705 0.268262 0.259612 0.250758 0.241700 0.232443 0.222985 0.213331 0.203487 0.193456 0.183244 0.172847 0.162270 0.151518 0.140598 0.129515 0.118276 0.106886 0.095352 0.083678 0.071871 0.059936 0.047875 0.035692 0.023391 0.010972 -0.001561 -0.014209 -0.026972 -0.039851 -0.052848 -0.065967 -0.079212 -0.092586 -0.106091 -0.119730 -0.133502 -0.147408 -0.161445 -0.175607 -0.189887 -0.204271 -0.218742 -0.233279 -0.247858 -0.262456 -0.277042 -0.291587 -0.306062 -0.320439 -0.334687 -0.348785 -0.362718 -0.376472 -0.390038 -0.403415 -0.416608 -0.429630 -0.442505 -0.455267 -0.467964 -0.480646 -0.493367 -0.506184 -0.519146 -0.532289 -0.545639 -0.559196 -0.572935 -0.449635 0.448872 0.447774 0.446370 0.444682 0.442721 0.440504 0.438043 0.435343 0.432398 0.429211 0.425783 0.422115 0.418209 0.414065 0.409687 0.405076 0.400234 0.395161 0.389858 0.384326 0.378564 0.372570 0.366346 0.359888 0.353197 0.346271 0.339108 0.331709 0.324070 0.316192 0.308074 0.299715 0.291116 0.282278 0.273201 0.263890 0.254348 0.244576 0.234579 0.224357 0.213915 0.203260 0.192396 0.181331 0.170062 0.158593 0.146932 0.135084 0.123056 0.110855 0.098488 0.085961 0.073281 0.060453 0.047482 0.034371 0.021124 0.007743 -0.005769 -0.019413 -0.033188 -0.047095 -0.061137 -0.075318 -0.089641 -0.104112 -0.118732 -0.133503 -0.148426 -0.163501 -0.178725 -0.194094 -0.209599 -0.225229 -0.240964 -0.256782 -0.272657 -0.288562 -0.304467 -0.320339 -0.336142 -0.351843 -0.367406 -0.382800 -0.398006 -0.413009 -0.427795 -0.442359 -0.456708 -0.470854 -0.484819 -0.498643 -0.512377 -0.526079 -0.539810 -0.553635 -0.567614 -0.581800 -0.596234 -0.610936 -0.625898 -0.641097 -0.656502 -0.457427 0.456594 0.455471 0.454064 0.452386 0.450446 0.448246 0.445777 0.443042 0.440044 0.436776 0.433240 0.429436 0.425363 0.421024 0.416420 0.411552 0.406421 0.401026 0.395368 0.389445 0.383258 0.376804 0.370084 0.363096 0.355839 0.348312 0.340514 0.332443 0.324100 0.315483 0.306594 0.297431 0.287998 0.278295 0.268327 0.258096 0.247607 0.236866 0.225871 0.214631 0.203153 0.191444 0.179511 0.167353 0.154974 0.142380 0.129581 0.116582 0.103393 0.090019 0.076469 0.062750 0.048865 0.034821 0.020621 0.006268 -0.008236 -0.022889 -0.037691 -0.052643 -0.067747 -0.083007 -0.098429 -0.114016 -0.129772 -0.145699 -0.161797 -0.178066 -0.194504 -0.211108 -0.227870 -0.244779 -0.261817 -0.278960 -0.296180 -0.313449 -0.330735 -0.348004 -0.365216 -0.382329 -0.399304 -0.416100 -0.432687 -0.449045 -0.465160 -0.481021 -0.496631 -0.512001 -0.527154 -0.542126 -0.556972 -0.571758 -0.586551 -0.601417 -0.616429 -0.631659 -0.647164 -0.662990 -0.679160 -0.695662 -0.712473 -0.729558 -0.746859 -0.461928 0.461363 0.460509 0.459366 0.457935 0.456203 0.454171 0.451844 0.449213 0.446274 0.443035 0.439487 0.435630 0.431464 0.426989 0.422207 0.417118 0.411723 0.406022 0.400015 0.393703 0.387085 0.380160 0.372928 0.365388 0.357540 0.349382 0.340913 0.332135 0.323046 0.313648 0.303941 0.293928 0.283611 0.272993 0.262080 0.250876 0.239388 0.227620 0.215575 0.203267 0.190702 0.177889 0.164828 0.151522 0.137979 0.124207 0.110214 0.096010 0.081603 0.067000 0.052208 0.037233 0.022079 0.006751 -0.008749 -0.024418 -0.040256 -0.056263 -0.072441 -0.088793 -0.105326 -0.122045 -0.138952 -0.156051 -0.173343 -0.190826 -0.208500 -0.226361 -0.244405 -0.262620 -0.280991 -0.299496 -0.318104 -0.336786 -0.355510 -0.374239 -0.392931 -0.411543 -0.430025 -0.448329 -0.466412 -0.484244 -0.501807 -0.519087 -0.536080 -0.552793 -0.569246 -0.585472 -0.601525 -0.617475 -0.633392 -0.649350 -0.665429 -0.681709 -0.698271 -0.715189 -0.732518 -0.750277 -0.768459 -0.787034 -0.805946 -0.825118 -0.844455 -0.464002 0.463921 0.463533 0.462824 0.461776 0.460391 0.458663 0.456580 0.454149 0.451369 0.448229 0.444736 0.440884 0.436671 0.432098 0.427164 0.421872 0.416224 0.410221 0.403864 0.397155 0.390093 0.382678 0.374911 0.366792 0.358320 0.349496 0.340319 0.330791 0.320913 0.310688 0.300117 0.289203 0.277951 0.266366 0.254456 0.242226 0.229685 0.216837 0.203695 0.190268 0.176567 0.162592 0.148345 0.133836 0.119073 0.104065 0.088823 0.073356 0.057672 0.041777 0.025679 0.009381 -0.007113 -0.023798 -0.040674 -0.057740 -0.074997 -0.092448 -0.110100 -0.127957 -0.146025 -0.164307 -0.182803 -0.201515 -0.220440 -0.239576 -0.258920 -0.278462 -0.298189 -0.318081 -0.338111 -0.358246 -0.378453 -0.398696 -0.418932 -0.439115 -0.459191 -0.479105 -0.498801 -0.518234 -0.537374 -0.556205 -0.574716 -0.592907 -0.610792 -0.628401 -0.645778 -0.662994 -0.680122 -0.697242 -0.714440 -0.731801 -0.749419 -0.767400 -0.785827 -0.804762 -0.824230 -0.844213 -0.864674 -0.885547 -0.906738 -0.928132 -0.949605 -0.464264 0.464773 0.464946 0.464759 0.464203 0.463261 0.461918 0.460178 0.458024 0.455459 0.452487 0.449094 0.445288 0.441062 0.436414 0.431347 0.425863 0.419966 0.413659 0.406944 0.399824 0.392300 0.384374 0.376045 0.367315 0.358186 0.348658 0.338733 0.328413 0.317702 0.306603 0.295119 0.283254 0.271016 0.258412 0.245452 0.232146 0.218500 0.204524 0.190234 0.175637 0.160741 0.145544 0.130056 0.114287 0.098246 0.081946 0.065395 0.048603 0.031578 0.014326 -0.003150 -0.020843 -0.038751 -0.056873 -0.075208 -0.093758 -0.112530 -0.131528 -0.150760 -0.170228 -0.189934 -0.209881 -0.230066 -0.250488 -0.271143 -0.292025 -0.313123 -0.334420 -0.355892 -0.377509 -0.399236 -0.421035 -0.442864 -0.464677 -0.486419 -0.508031 -0.529447 -0.550606 -0.571460 -0.591983 -0.612157 -0.631976 -0.651444 -0.670582 -0.689427 -0.708040 -0.726493 -0.744873 -0.763268 -0.781768 -0.800475 -0.819510 -0.838986 -0.859005 -0.879638 -0.900905 -0.922792 -0.945261 -0.968236 -0.991609 -1.015243 -1.038978 -1.062628 -0.463046 0.464200 0.464996 0.465404 0.465395 0.464956 0.464077 0.462731 0.460922 0.458632 0.455862 0.452617 0.448884 0.444671 0.439969 0.434783 0.429114 0.422969 0.416353 0.409270 0.401724 0.393718 0.385254 0.376335 0.366963 0.357141 0.346870 0.336156 0.325002 0.313412 0.301390 0.288943 0.276077 0.262802 0.249129 0.235069 0.220636 0.205834 0.190683 0.175190 0.159369 0.143216 0.126740 0.109952 0.092864 0.075487 0.057832 0.039910 0.021728 0.003293 -0.015390 -0.034315 -0.053481 -0.072885 -0.092529 -0.112415 -0.132550 -0.152940 -0.173592 -0.194507 -0.215688 -0.237134 -0.258846 -0.280819 -0.303047 -0.325524 -0.348234 -0.371158 -0.394271 -0.417539 -0.440923 -0.464381 -0.487868 -0.511330 -0.534706 -0.557929 -0.580924 -0.603625 -0.625986 -0.647976 -0.669582 -0.690797 -0.711631 -0.732110 -0.752282 -0.772211 -0.791981 -0.811683 -0.831411 -0.851275 -0.871399 -0.891912 -0.912951 -0.934627 -0.957022 -0.980170 -1.004064 -1.028667 -1.053895 -1.079618 -1.105667 -1.131842 -1.157913 -1.183645 -0.460587 0.462421 0.463862 0.464896 0.465485 0.465598 0.465208 0.464315 0.462883 0.460916 0.458395 0.455320 0.451696 0.447514 0.442778 0.437485 0.431638 0.425245 0.418314 0.410851 0.402863 0.394353 0.385326 0.375786 0.365738 0.355185 0.344134 0.332589 0.320555 0.308039 0.295047 0.281588 0.267670 0.253309 0.238517 0.223311 0.207697 0.191690 0.175306 0.158559 0.141449 0.123981 0.106167 0.088019 0.069552 0.050776 0.031704 0.012342 -0.007300 -0.027218 -0.047407 -0.067862 -0.088584 -0.109572 -0.130832 -0.152372 -0.174196 -0.196311 -0.218718 -0.241420 -0.264416 -0.287703 -0.311279 -0.335134 -0.359259 -0.383638 -0.408249 -0.433063 -0.458046 -0.483154 -0.508342 -0.533558 -0.558744 -0.583833 -0.608747 -0.633407 -0.657743 -0.681704 -0.705259 -0.728393 -0.751103 -0.773401 -0.795321 -0.816909 -0.838240 -0.859400 -0.880486 -0.901612 -0.922904 -0.944499 -0.966547 -0.989194 -1.012573 -1.036792 -1.061899 -1.087901 -1.114763 -1.142385 -1.170611 -1.199238 -1.228017 -1.256684 -1.284967 -1.312625 -0.457049 0.459585 0.461697 0.463365 0.464561 0.465247 0.465393 0.464961 0.463952 0.462331 0.460098 0.457230 0.453734 0.449609 0.444852 0.439464 0.433446 0.426804 0.419551 0.411695 0.403245 0.394208 0.384591 0.374400 0.363641 0.352322 0.340449 0.328030 0.315071 0.301582 0.287571 0.273051 0.258033 0.242538 0.226579 0.210172 0.193326 0.176062 0.158392 0.140328 0.121868 0.103024 0.083811 0.064242 0.044332 0.024092 0.003532 -0.017340 -0.038518 -0.059996 -0.081771 -0.103841 -0.126208 -0.148878 -0.171859 -0.195156 -0.218775 -0.242718 -0.266985 -0.291576 -0.316488 -0.341715 -0.367249 -0.393077 -0.419179 -0.445534 -0.472111 -0.498872 -0.525772 -0.552760 -0.579781 -0.606769 -0.633651 -0.660344 -0.686764 -0.712835 -0.738500 -0.763727 -0.788498 -0.812811 -0.836683 -0.860143 -0.883244 -0.906059 -0.928680 -0.951219 -0.973806 -0.996580 -1.019698 -1.043319 -1.067611 -1.092736 -1.118832 -1.145972 -1.174175 -1.203402 -1.233535 -1.264398 -1.295748 -1.327293 -1.358730 -1.389759 -1.420113 -1.449579 -0.452619 0.455817 0.458597 0.460904 0.462712 0.463978 0.464661 0.464733 0.464154 0.462914 0.460984 0.458358 0.455015 0.450966 0.446202 0.440730 0.434544 0.427653 0.420069 0.411806 0.402876 0.393288 0.383052 0.372177 0.360674 0.348550 0.335815 0.322477 0.308548 0.294039 0.278962 0.263332 0.247168 0.230488 0.213313 0.195650 0.177520 0.158940 0.139928 0.120481 0.100609 0.080328 0.059654 0.038600 0.017180 -0.004594 -0.026715 -0.049174 -0.071965 -0.095084 -0.118531 -0.142308 -0.166421 -0.190877 -0.215684 -0.240844 -0.266361 -0.292235 -0.318466 -0.345048 -0.371976 -0.399239 -0.426820 -0.454700 -0.482856 -0.511256 -0.539859 -0.568618 -0.597478 -0.626378 -0.655248 -0.684009 -0.712575 -0.740856 -0.768770 -0.796253 -0.823267 -0.849792 -0.875827 -0.901387 -0.926496 -0.951206 -0.975589 -0.999748 -1.023811 -1.047918 -1.072227 -1.096907 -1.122135 -1.148105 -1.175016 -1.203037 -1.232271 -1.262743 -1.294412 -1.327152 -1.360760 -1.394967 -1.429432 -1.463821 -1.497797 -1.531066 -1.563394 -1.594607 -0.447482 0.451276 0.454675 0.457605 0.460010 0.461858 0.463089 0.463658 0.463536 0.462687 0.461086 0.458715 0.455554 0.451592 0.446839 0.441287 0.434938 0.427795 0.419872 0.411187 0.401756 0.391593 0.380710 0.369120 0.356836 0.343868 0.330228 0.315929 0.300984 0.285408 0.269218 0.252432 0.235072 0.217157 0.198709 0.179736 0.160267 0.140315 0.119894 0.099002 0.077657 0.055875 0.033673 0.011066 -0.011934 -0.035317 -0.059074 -0.083198 -0.107685 -0.132533 -0.157747 -0.183331 -0.209294 -0.235642 -0.262379 -0.289507 -0.317027 -0.344938 -0.373234 -0.401909 -0.430948 -0.460333 -0.490044 -0.520057 -0.550338 -0.580846 -0.611531 -0.642334 -0.673189 -0.704021 -0.734751 -0.765287 -0.795535 -0.825407 -0.854828 -0.883752 -0.912158 -0.940042 -0.967409 -0.994281 -1.020699 -1.046743 -1.072524 -1.098182 -1.123869 -1.149758 -1.176037 -1.202907 -1.230591 -1.259322 -1.289304 -1.320669 -1.353451 -1.387614 -1.423024 -1.459467 -1.496646 -1.534181 -1.571699 -1.608829 -1.645241 -1.680674 -1.714926 -1.747917 -0.441854 0.446133 0.450067 0.453568 0.456548 0.458950 0.460725 0.461801 0.462131 0.461684 0.460426 0.458320 0.455356 0.451504 0.446766 0.441141 0.434630 0.427233 0.418962 0.409840 0.399888 0.389125 0.377566 0.365228 0.352126 0.338274 0.323688 0.308383 0.292377 0.275689 0.258338 0.240347 0.221739 0.202538 0.182759 0.162423 0.141553 0.120171 0.098273 0.075873 0.052990 0.029641 0.005844 -0.018388 -0.043043 -0.068110 -0.093583 -0.119455 -0.145727 -0.172401 -0.199482 -0.226978 -0.254897 -0.283241 -0.312014 -0.341217 -0.370846 -0.400897 -0.431360 -0.462221 -0.493459 -0.525052 -0.556975 -0.589195 -0.621670 -0.654345 -0.687161 -0.720047 -0.752926 -0.785715 -0.818321 -0.850646 -0.882592 -0.914076 -0.945042 -0.975465 -1.005328 -1.034630 -1.063382 -1.091620 -1.119425 -1.146918 -1.174244 -1.201571 -1.229089 -1.257008 -1.285556 -1.314987 -1.345565 -1.377526 -1.411034 -1.446143 -1.482821 -1.520940 -1.560279 -1.600526 -1.641269 -1.682086 -1.722577 -1.762364 -1.801152 -1.838708 -1.874922 -1.909798 -0.435870 0.440553 0.444924 0.448911 0.452413 0.455339 0.457625 0.459202 0.459988 0.459939 0.459024 0.457198 0.454431 0.450704 0.445989 0.440298 0.433624 0.425968 0.417341 0.407767 0.397274 0.385885 0.373620 0.360500 0.346542 0.331766 0.316191 0.299837 0.282726 0.264878 0.246318 0.227070 0.207161 0.186617 0.165451 0.143694 0.121367 0.098484 0.075046 0.051073 0.026585 0.001601 -0.023864 -0.049795 -0.076180 -0.103013 -0.130286 -0.157997 -0.186150 -0.214749 -0.243802 -0.273317 -0.303297 -0.333745 -0.364661 -0.396044 -0.427887 -0.460180 -0.492905 -0.526041 -0.559566 -0.593452 -0.627666 -0.662165 -0.696895 -0.731792 -0.766784 -0.801793 -0.836733 -0.871508 -0.906019 -0.940158 -0.973835 -1.006981 -1.039561 -1.071542 -1.102913 -1.133673 -1.163852 -1.193529 -1.222828 -1.251903 -1.280935 -1.310135 -1.339739 -1.370005 -1.401215 -1.433657 -1.467600 -1.503242 -1.540668 -1.579854 -1.620692 -1.662964 -1.706349 -1.750414 -1.794689 -1.838736 -1.882129 -1.924527 -1.965661 -2.005378 -2.043663 -2.080572 -0.429533 0.434623 0.439367 0.443756 0.447703 0.451101 0.453860 0.455904 0.457139 0.457489 0.456906 0.455362 0.452797 0.449195 0.444517 0.438758 0.431921 0.424002 0.415009 0.404968 0.393913 0.381872 0.368870 0.354932 0.340081 0.324341 0.307736 0.290289 0.272025 0.252970 0.233149 0.212592 0.191327 0.169381 0.146773 0.123533 0.099687 0.075235 0.050192 0.024579 -0.001583 -0.028274 -0.055480 -0.083187 -0.111385 -0.140068 -0.169232 -0.198878 -0.229012 -0.259642 -0.290774 -0.322413 -0.354562 -0.387221 -0.420389 -0.454058 -0.488216 -0.522846 -0.557924 -0.593427 -0.629325 -0.665586 -0.702167 -0.739012 -0.776058 -0.813230 -0.850449 -0.887629 -0.924673 -0.961476 -0.997929 -1.033928 -1.069396 -1.104275 -1.138522 -1.172104 -1.205011 -1.237262 -1.268932 -1.300143 -1.331056 -1.361868 -1.392813 -1.424152 -1.456175 -1.489191 -1.523510 -1.559427 -1.597177 -1.636885 -1.678550 -1.722088 -1.767296 -1.813857 -1.861330 -1.909200 -1.956980 -2.004203 -2.050465 -2.095456 -2.138970 -2.180957 -2.221453 -2.260556 -0.422832 0.428331 0.433453 0.438186 0.442509 0.446310 0.449495 0.451965 0.453622 0.454358 0.454109 0.452826 0.450472 0.446988 0.442350 0.436526 0.429522 0.421335 0.411966 0.401442 0.389802 0.377082 0.363311 0.348521 0.332740 0.315996 0.298317 0.279732 0.260268 0.239955 0.218821 0.196901 0.174226 0.150817 0.126708 0.101926 0.076491 0.050405 0.023689 -0.003633 -0.031541 -0.060014 -0.089039 -0.118604 -0.148700 -0.179323 -0.210474 -0.242156 -0.274376 -0.307143 -0.340461 -0.374333 -0.408760 -0.443739 -0.479264 -0.515322 -0.551892 -0.588953 -0.626477 -0.664435 -0.702794 -0.741510 -0.780529 -0.819786 -0.859209 -0.898717 -0.938224 -0.977631 -1.016832 -1.055714 -1.094167 -1.132097 -1.169424 -1.206086 -1.242030 -1.277234 -1.311701 -1.345498 -1.378738 -1.411592 -1.444271 -1.477032 -1.510164 -1.543988 -1.578834 -1.615036 -1.652911 -1.692732 -1.734670 -1.778763 -1.824954 -1.873069 -1.922807 -1.973734 -2.025303 -2.076971 -2.128228 -2.178604 -2.227729 -2.275344 -2.321343 -2.365735 -2.408598 -2.450069 -0.415755 0.421667 0.427172 0.432250 0.436890 0.441042 0.444589 0.447439 0.449477 0.450575 0.450649 0.449620 0.447458 0.444092 0.439489 0.433603 0.426429 0.417965 0.408210 0.397186 0.384939 0.371511 0.356941 0.341264 0.324514 0.306725 0.287929 0.268160 0.247447 0.225823 0.203323 0.179983 0.155839 0.130910 0.105239 0.078852 0.051758 0.023969 -0.004489 -0.033592 -0.063319 -0.093652 -0.124578 -0.156086 -0.188171 -0.220831 -0.254068 -0.287890 -0.322304 -0.357316 -0.392928 -0.429143 -0.465957 -0.503363 -0.541349 -0.579894 -0.618973 -0.658559 -0.698622 -0.739125 -0.780028 -0.821276 -0.862806 -0.904546 -0.946417 -0.988332 -1.030193 -1.071892 -1.113316 -1.154349 -1.194880 -1.234803 -1.274036 -1.312503 -1.350163 -1.387003 -1.423071 -1.458476 -1.493391 -1.528038 -1.562697 -1.597688 -1.633357 -1.670059 -1.708149 -1.747966 -1.789817 -1.833920 -1.880370 -1.929140 -1.980099 -2.032976 -2.087358 -2.142688 -2.198366 -2.253833 -2.308555 -2.362089 -2.414109 -2.464442 -2.513056 -2.560003 -2.605403 -2.649422 -0.408284 0.414623 0.420510 0.425938 0.430885 0.435336 0.439197 0.442372 0.444743 0.446179 0.446539 0.445768 0.443769 0.440521 0.435939 0.429991 0.422639 0.413890 0.403737 0.392197 0.379320 0.365157 0.349754 0.333154 0.315397 0.296522 0.276565 0.255563 0.233551 0.210564 0.186643 0.161827 0.136151 0.109645 0.082347 0.054287 0.025465 -0.004095 -0.034366 -0.065324 -0.096950 -0.129224 -0.162137 -0.195679 -0.229847 -0.264643 -0.300072 -0.336140 -0.372856 -0.410222 -0.448240 -0.486907 -0.526216 -0.566155 -0.606702 -0.647833 -0.689518 -0.731725 -0.774418 -0.817555 -0.861084 -0.904943 -0.949062 -0.993365 -1.037765 -1.082165 -1.126457 -1.170529 -1.214260 -1.257525 -1.300193 -1.342154 -1.383312 -1.423597 -1.462979 -1.501482 -1.539203 -1.576314 -1.613047 -1.649703 -1.686627 -1.724193 -1.762780 -1.802766 -1.844512 -1.888350 -1.934549 -1.983266 -2.034523 -2.088232 -2.144169 -2.201961 -2.261060 -2.320826 -2.380642 -2.439914 -2.498115 -2.554841 -2.609839 -2.663016 -2.714390 -2.764055 -2.812170 -2.858919 -0.400403 0.407186 0.413458 0.419238 0.424496 0.429216 0.433353 0.436803 0.439465 0.441185 0.441818 0.441268 0.439435 0.436274 0.431709 0.425686 0.418153 0.409107 0.398542 0.386468 0.372938 0.358013 0.341746 0.324188 0.305384 0.285380 0.264215 0.241932 0.218567 0.194163 0.168765 0.142415 0.115147 0.087001 0.058015 0.028209 -0.002410 -0.033813 -0.065972 -0.098864 -0.132469 -0.166770 -0.201759 -0.237430 -0.273781 -0.310816 -0.348543 -0.386967 -0.426095 -0.465925 -0.506459 -0.547688 -0.589600 -0.632173 -0.675383 -0.719199 -0.763588 -0.808511 -0.853927 -0.899784 -0.946024 -0.992581 -1.039378 -1.086333 -1.133349 -1.180323 -1.227139 -1.273679 -1.319803 -1.365361 -1.410210 -1.454227 -1.497317 -1.539421 -1.580537 -1.620743 -1.660207 -1.699164 -1.737929 -1.776876 -1.816401 -1.856909 -1.898803 -1.942468 -1.988259 -2.036486 -2.087375 -2.141008 -2.197347 -2.256229 -2.317334 -2.380153 -2.444030 -2.508283 -2.572268 -2.635368 -2.697090 -2.757082 -2.815175 -2.871337 -2.925625 -2.978184 -3.029194 -3.078860 -0.392097 0.399338 0.406008 0.412136 0.417708 0.422695 0.427069 0.430763 0.433664 0.435625 0.436506 0.436135 0.434464 0.431357 0.426801 0.420686 0.412967 0.403612 0.392621 0.379996 0.365790 0.350074 0.332911 0.314358 0.294468 0.273290 0.250870 0.227254 0.202485 0.176608 0.149674 0.121730 0.092808 0.062959 0.032219 0.000595 -0.031893 -0.065213 -0.099338 -0.134244 -0.169913 -0.206331 -0.243491 -0.281388 -0.320024 -0.359405 -0.399539 -0.440429 -0.482079 -0.524486 -0.567646 -0.611546 -0.656165 -0.701477 -0.747452 -0.794054 -0.841245 -0.888980 -0.937210 -0.985878 -1.034923 -1.084272 -1.133845 -1.183548 -1.233281 -1.282932 -1.332379 -1.381480 -1.430062 -1.477954 -1.525003 -1.571081 -1.616098 -1.660019 -1.702901 -1.744892 -1.786232 -1.827242 -1.868317 -1.909877 -1.952354 -1.996178 -2.041758 -2.089475 -2.139674 -2.192636 -2.248524 -2.307356 -2.369037 -2.433312 -2.499742 -2.567683 -2.636407 -2.705209 -2.773400 -2.840379 -2.905686 -2.969052 -3.030375 -3.089669 -3.147044 -3.202674 -3.256766 -3.309539 -0.383352 0.391065 0.398145 0.404621 0.410507 0.415763 0.420357 0.424259 0.427360 0.429536 0.430603 0.430404 0.428849 0.425797 0.421216 0.414996 0.407077 0.397401 0.385969 0.372776 0.357871 0.341335 0.323242 0.303657 0.282639 0.260242 0.236519 0.211518 0.185289 0.157883 0.129355 0.099755 0.069119 0.037500 0.004933 -0.028581 -0.063011 -0.098325 -0.134496 -0.171501 -0.209323 -0.247951 -0.287378 -0.327603 -0.368631 -0.410466 -0.453117 -0.496584 -0.540869 -0.585966 -0.631863 -0.678541 -0.725974 -0.774129 -0.822971 -0.872460 -0.922551 -0.973194 -1.024334 -1.075913 -1.127864 -1.180109 -1.232562 -1.285124 -1.337688 -1.390133 -1.442312 -1.494044 -1.545127 -1.595377 -1.644629 -1.692757 -1.739691 -1.785453 -1.830170 -1.874073 -1.917485 -1.960814 -2.004504 -2.049014 -2.094802 -2.142305 -2.191932 -2.244057 -2.299008 -2.357027 -2.418204 -2.482513 -2.549780 -2.619651 -2.691536 -2.764695 -2.838353 -2.911765 -2.984220 -3.055140 -3.124129 -3.190996 -3.255694 -3.318284 -3.378922 -3.437809 -3.495171 -3.551246 -0.374154 0.382353 0.389853 0.396686 0.402881 0.408406 0.413217 0.417296 0.420576 0.422918 0.424138 0.424083 0.422602 0.419598 0.414956 0.408619 0.400480 0.390471 0.378581 0.364801 0.349173 0.331789 0.312733 0.292077 0.269888 0.246226 0.221149 0.194711 0.166967 0.137974 0.107793 0.076472 0.044060 0.010605 -0.023865 -0.059343 -0.095792 -0.133180 -0.171481 -0.210673 -0.250740 -0.291674 -0.333469 -0.376128 -0.419654 -0.464055 -0.509335 -0.555493 -0.602526 -0.650424 -0.699169 -0.748733 -0.799085 -0.850188 -0.902002 -0.954480 -1.007571 -1.061222 -1.115376 -1.169972 -1.224939 -1.280194 -1.335645 -1.391190 -1.446710 -1.502059 -1.557049 -1.611460 -1.665071 -1.717682 -1.769124 -1.819285 -1.868150 -1.915811 -1.962481 -2.008478 -2.054215 -2.100153 -2.146779 -2.194582 -2.244029 -2.295562 -2.349584 -2.406457 -2.466489 -2.529862 -2.596617 -2.666671 -2.739763 -2.815402 -2.892871 -2.971353 -3.050038 -3.128128 -3.204918 -3.279861 -3.352653 -3.423161 -3.491390 -3.557451 -3.621535 -3.683867 -3.744692 -3.804264 -0.364492 0.373187 0.381118 0.388316 0.394817 0.400611 0.405640 0.409879 0.413307 0.415782 0.417130 0.417170 0.415746 0.412752 0.408030 0.401552 0.393170 0.382818 0.370451 0.356066 0.339692 0.321431 0.301376 0.279609 0.256205 0.231230 0.204748 0.176819 0.147502 0.116865 0.084969 0.051863 0.017607 -0.017752 -0.054202 -0.091719 -0.130266 -0.169812 -0.210329 -0.251799 -0.294208 -0.337546 -0.381814 -0.427012 -0.473149 -0.520228 -0.568250 -0.617214 -0.667110 -0.717922 -0.769623 -0.822182 -0.875562 -0.929720 -0.984609 -1.040179 -1.096374 -1.153140 -1.210420 -1.268149 -1.326251 -1.384641 -1.443223 -1.501883 -1.560478 -1.618821 -1.676679 -1.733801 -1.789947 -1.844903 -1.898513 -1.950715 -2.001558 -2.051222 -2.100014 -2.148341 -2.196673 -2.245525 -2.295415 -2.346847 -2.400295 -2.456198 -2.514948 -2.576899 -2.642320 -2.711340 -2.783961 -2.860023 -2.939160 -3.020729 -3.103913 -3.187836 -3.271639 -3.354486 -3.435684 -3.514764 -3.591493 -3.665795 -3.737723 -3.807435 -3.875154 -3.941124 -4.005605 -4.068877 -0.354353 0.363556 0.371928 0.379498 0.386306 0.392366 0.397613 0.402002 0.405549 0.408136 0.409576 0.409678 0.408285 0.405261 0.400450 0.393792 0.385148 0.374437 0.361576 0.346564 0.329420 0.310251 0.289162 0.266244 0.241580 0.215243 0.187303 0.157827 0.126881 0.094538 0.060864 0.025910 -0.010260 -0.047599 -0.086103 -0.125738 -0.166465 -0.208254 -0.251079 -0.294921 -0.339768 -0.385615 -0.432461 -0.480311 -0.529170 -0.579041 -0.629922 -0.681806 -0.734679 -0.788517 -0.843286 -0.898950 -0.955465 -1.012785 -1.070857 -1.129625 -1.189033 -1.249031 -1.309557 -1.370543 -1.431911 -1.493576 -1.555428 -1.617334 -1.679107 -1.740511 -1.801275 -1.861120 -1.919785 -1.977064 -2.032844 -2.087120 -2.140030 -2.191853 -2.242984 -2.293891 -2.345106 -2.397184 -2.450664 -2.506057 -2.563840 -2.624441 -2.688244 -2.755585 -2.826695 -2.901659 -2.980428 -3.062757 -3.148138 -3.235801 -3.324840 -3.414328 -3.503337 -3.591023 -3.676727 -3.760075 -3.840889 -3.919147 -3.994951 -4.068504 -4.140049 -4.209849 -4.278187 -4.345372 -0.343727 0.353447 0.362268 0.370218 0.377337 0.383658 0.389121 0.393659 0.397304 0.399980 0.401479 0.401621 0.400217 0.397135 0.392211 0.385341 0.376416 0.365321 0.351948 0.336290 0.318351 0.298242 0.276081 0.251971 0.226000 0.198252 0.168801 0.137722 0.105087 0.070976 0.035460 -0.001409 -0.039561 -0.078959 -0.119596 -0.161430 -0.204423 -0.248544 -0.293769 -0.340080 -0.387468 -0.435928 -0.485462 -0.536075 -0.587772 -0.640552 -0.694408 -0.749330 -0.805294 -0.862270 -0.920218 -0.979097 -1.038859 -1.099450 -1.160813 -1.222891 -1.285632 -1.348985 -1.412884 -1.477263 -1.542044 -1.607130 -1.672394 -1.737658 -1.802688 -1.867203 -1.930893 -1.993447 -2.054608 -2.114207 -2.172181 -2.228606 -2.283722 -2.337901 -2.391600 -2.445355 -2.499753 -2.555372 -2.612763 -2.672444 -2.734886 -2.800503 -2.869671 -2.942710 -3.019810 -3.101016 -3.186213 -3.275054 -3.366875 -3.460799 -3.555840 -3.651007 -3.745316 -3.837929 -3.928265 -4.016023 -4.101081 -4.183466 -4.263334 -4.340920 -4.416484 -4.490313 -4.562718 -4.634037 -0.332607 0.342848 0.352126 0.360463 0.367899 0.374477 0.380153 0.384839 0.388568 0.391306 0.392844 0.392996 0.391547 0.388384 0.383308 0.376207 0.366973 0.355467 0.341565 0.325237 0.306477 0.285396 0.262126 0.236779 0.209455 0.180244 0.149228 0.116488 0.082105 0.046164 0.008736 -0.030115 -0.070322 -0.111861 -0.154710 -0.198827 -0.244173 -0.290719 -0.338439 -0.387320 -0.437352 -0.488534 -0.540869 -0.594361 -0.649012 -0.704818 -0.761767 -0.819842 -0.879012 -0.939239 -1.000480 -1.062688 -1.125807 -1.189780 -1.254547 -1.320056 -1.386258 -1.453095 -1.520509 -1.588431 -1.656777 -1.725433 -1.794233 -1.862950 -1.931299 -1.998953 -2.065561 -2.130804 -2.194455 -2.256392 -2.316617 -2.375312 -2.432813 -2.489558 -2.546072 -2.602960 -2.660843 -2.720315 -2.781937 -2.846228 -2.913641 -2.984580 -3.059422 -3.138465 -3.221856 -3.309603 -3.401509 -3.497091 -3.595553 -3.695909 -3.797100 -3.898055 -3.997759 -4.095408 -4.190517 -4.282840 -4.372309 -4.459004 -4.543129 -4.624941 -4.704723 -4.782787 -4.859478 -4.935166 -0.320994 0.331751 0.341491 0.350220 0.357977 0.364810 0.370697 0.375529 0.379330 0.382107 0.383669 0.383798 0.382283 0.379004 0.373746 0.366392 0.356813 0.344871 0.330421 0.313399 0.293790 0.271704 0.247285 0.220658 0.191933 0.161206 0.128569 0.094109 0.057916 0.020080 -0.019328 -0.060234 -0.102571 -0.146331 -0.191476 -0.237962 -0.285752 -0.334815 -0.385130 -0.436683 -0.489467 -0.543483 -0.598734 -0.655223 -0.712946 -0.771896 -0.832057 -0.893402 -0.955892 -1.019485 -1.084134 -1.149783 -1.216373 -1.283843 -1.352137 -1.421206 -1.491000 -1.561466 -1.632546 -1.704169 -1.776237 -1.848601 -1.921046 -1.993289 -2.065000 -2.135797 -2.205302 -2.273226 -2.339382 -2.403699 -2.466276 -2.527404 -2.587483 -2.647018 -2.706613 -2.766925 -2.828594 -2.892231 -2.958402 -3.027611 -3.100296 -3.176862 -3.257686 -3.343036 -3.433026 -3.527613 -3.626500 -3.729056 -3.834361 -3.941322 -4.048802 -4.155652 -4.260855 -4.363673 -4.463705 -4.560758 -4.654815 -4.746014 -4.834592 -4.920827 -5.005030 -5.087546 -5.168751 -5.249057 -0.308907 0.320154 0.330353 0.339478 0.347560 0.354647 0.360741 0.365717 0.369583 0.372381 0.373946 0.374025 0.372423 0.368991 0.363529 0.355889 0.345939 0.333531 0.318510 0.300767 0.280282 0.257156 0.231549 0.203597 0.173420 0.141124 0.106809 0.070569 0.032502 -0.007295 -0.048753 -0.091786 -0.136336 -0.182397 -0.229923 -0.278868 -0.329195 -0.380874 -0.433885 -0.488216 -0.543864 -0.600828 -0.659112 -0.718714 -0.779630 -0.841844 -0.905335 -0.970065 -1.035992 -1.103068 -1.171240 -1.240447 -1.310624 -1.381714 -1.453664 -1.526428 -1.599959 -1.674207 -1.749115 -1.824602 -1.900542 -1.976737 -2.052913 -2.128742 -2.203832 -2.277754 -2.350149 -2.420766 -2.489458 -2.556237 -2.621314 -2.685048 -2.747908 -2.810477 -2.873430 -2.937455 -3.003216 -3.071330 -3.142358 -3.216782 -3.295034 -3.377531 -3.464645 -3.556611 -3.653513 -3.755240 -3.861375 -3.971139 -4.083488 -4.197225 -4.311124 -4.423980 -4.534801 -4.642939 -4.748055 -4.850012 -4.948846 -5.044744 -5.137972 -5.228834 -5.317672 -5.404864 -5.490826 -5.576020 -0.296369 0.308064 0.318705 0.328226 0.336635 0.343977 0.350275 0.355392 0.359318 0.362123 0.363669 0.363678 0.361965 0.358347 0.352656 0.344696 0.334348 0.321442 0.305825 0.287334 0.265945 0.241743 0.214906 0.185582 0.153903 0.119985 0.083933 0.045851 0.005845 -0.035983 -0.079560 -0.124796 -0.171644 -0.220091 -0.270085 -0.321581 -0.374540 -0.428935 -0.484747 -0.541966 -0.600589 -0.660619 -0.722054 -0.784891 -0.849119 -0.914718 -0.981655 -1.049889 -1.119372 -1.190049 -1.261862 -1.334744 -1.408632 -1.483471 -1.559213 -1.635816 -1.713239 -1.791434 -1.870337 -1.949849 -2.029796 -2.109923 -2.189906 -2.269356 -2.347816 -2.424855 -2.500150 -2.573486 -2.644782 -2.714148 -2.781884 -2.848409 -2.914271 -2.980131 -3.046720 -3.114756 -3.184913 -3.257812 -3.333991 -3.413919 -3.498035 -3.586769 -3.680480 -3.779376 -3.883507 -3.992675 -4.106325 -4.223533 -4.343123 -4.463801 -4.584244 -4.703224 -4.819802 -4.933423 -5.043795 -5.150839 -5.254645 -5.355443 -5.453524 -5.549223 -5.642917 -5.735022 -5.826004 -5.916370 -0.283382 0.295505 0.306548 0.316454 0.325191 0.332790 0.339287 0.344543 0.348526 0.351324 0.352833 0.352757 0.350906 0.347077 0.341129 0.332815 0.322042 0.308603 0.292359 0.273093 0.250768 0.225455 0.197345 0.166604 0.133371 0.097773 0.059924 0.019937 -0.022074 -0.066006 -0.111775 -0.159292 -0.208523 -0.259442 -0.311995 -0.366135 -0.421825 -0.479039 -0.537760 -0.597979 -0.659695 -0.722907 -0.787614 -0.853806 -0.921468 -0.990571 -1.061075 -1.132932 -1.206090 -1.280489 -1.356061 -1.432742 -1.510470 -1.589195 -1.668874 -1.749471 -1.830951 -1.913262 -1.996329 -2.080014 -2.164086 -2.248235 -2.332080 -2.415157 -2.496979 -2.577144 -2.655364 -2.731474 -2.805478 -2.877578 -2.948140 -3.017655 -3.086751 -3.156169 -3.226682 -3.299026 -3.373883 -3.451861 -3.533476 -3.619194 -3.709472 -3.804751 -3.905372 -4.011522 -4.123204 -4.240113 -4.361543 -4.486428 -4.613455 -4.741227 -4.868342 -4.993578 -5.116071 -5.235342 -5.351154 -5.463476 -5.572455 -5.678355 -5.781499 -5.882255 -5.981036 -6.078306 -6.174586 -6.270425 -0.269955 0.282485 0.293898 0.304159 0.313219 0.321075 0.327767 0.333161 0.337197 0.339978 0.341429 0.341255 0.339239 0.335182 0.328940 0.320247 0.309016 0.295009 0.278105 0.258035 0.234743 0.208281 0.178856 0.146648 0.111808 0.074473 0.034766 -0.007192 -0.051278 -0.097385 -0.145423 -0.195302 -0.247003 -0.300483 -0.355688 -0.412569 -0.471091 -0.531230 -0.592970 -0.656304 -0.721230 -0.787745 -0.855845 -0.925515 -0.996732 -1.069459 -1.143650 -1.219252 -1.296207 -1.374448 -1.453904 -1.534512 -1.616217 -1.698970 -1.782740 -1.867498 -1.953204 -2.039804 -2.127197 -2.215190 -2.303492 -2.391736 -2.479470 -2.566169 -2.651361 -2.734678 -2.815869 -2.894839 -2.971683 -3.046672 -3.120237 -3.192952 -3.265529 -3.338780 -3.413506 -3.490456 -3.570310 -3.653650 -3.740979 -3.832777 -3.929519 -4.031652 -4.139503 -4.253238 -4.372796 -4.497747 -4.627226 -4.760014 -4.894666 -5.029680 -5.163602 -5.295240 -5.423821 -5.548922 -5.670362 -5.788162 -5.902518 -6.013729 -6.122152 -6.228191 -6.332304 -6.435010 -6.536883 -6.638505 -0.256105 0.269002 0.280772 0.291346 0.300711 0.308823 0.315707 0.321235 0.325320 0.328075 0.329453 0.329166 0.326959 0.322656 0.316084 0.306991 0.295265 0.280657 0.263054 0.242152 0.217860 0.190211 0.159427 0.125702 0.089200 0.050068 0.008440 -0.035556 -0.081786 -0.130145 -0.180530 -0.232857 -0.287114 -0.343246 -0.401197 -0.460919 -0.522379 -0.585552 -0.650423 -0.716988 -0.785243 -0.855183 -0.926798 -1.000068 -1.074962 -1.151436 -1.229437 -1.308908 -1.389782 -1.471988 -1.555457 -1.640129 -1.725952 -1.812887 -1.900912 -1.989999 -2.080107 -2.171169 -2.263038 -2.355458 -2.448081 -2.540472 -2.632099 -2.722429 -2.811016 -2.897524 -2.981761 -3.063712 -3.143534 -3.221571 -3.298330 -3.374466 -3.450785 -3.528149 -3.607380 -3.689230 -3.774364 -3.863341 -3.956665 -4.054834 -4.158343 -4.267647 -4.383059 -4.504718 -4.632480 -4.765773 -4.903566 -5.044475 -5.186934 -5.329340 -5.470211 -5.608416 -5.743265 -5.874385 -6.001649 -6.125131 -6.245074 -6.361812 -6.475738 -6.587299 -6.697004 -6.805432 -6.913203 -7.020931 -0.241875 0.255074 0.267166 0.278031 0.287666 0.296025 0.303097 0.308757 0.312888 0.315606 0.316900 0.316482 0.314064 0.309492 0.302560 0.293039 0.280782 0.265544 0.247203 0.225436 0.200110 0.171234 0.139045 0.103751 0.065532 0.024543 -0.019073 -0.065174 -0.113621 -0.164308 -0.217119 -0.271984 -0.328887 -0.387765 -0.448560 -0.511226 -0.575728 -0.642046 -0.710165 -0.780079 -0.851784 -0.925271 -1.000525 -1.077519 -1.156213 -1.236556 -1.318492 -1.401956 -1.486875 -1.573176 -1.660792 -1.749669 -1.839760 -1.931039 -2.023488 -2.117080 -2.211768 -2.307456 -2.403937 -2.500891 -2.597908 -2.694470 -2.790001 -2.883987 -2.976008 -3.065773 -3.153161 -3.238219 -3.321166 -3.402422 -3.482572 -3.562367 -3.642696 -3.724458 -3.808482 -3.895521 -3.986209 -4.081093 -4.180694 -4.285529 -4.396115 -4.512912 -4.636226 -4.766155 -4.902453 -5.044386 -5.190750 -5.339994 -5.490435 -5.640387 -5.788366 -5.933316 -6.074620 -6.211957 -6.345247 -6.474620 -6.600364 -6.722852 -6.842515 -6.959849 -7.075423 -7.189871 -7.303858 -7.418027 -0.227327 0.240729 0.253085 0.264225 0.274089 0.282675 0.289930 0.295718 0.299890 0.302566 0.303764 0.303196 0.300553 0.295683 0.288368 0.278385 0.265560 0.249664 0.230543 0.207879 0.181481 0.151339 0.117697 0.080782 0.040787 -0.002122 -0.047791 -0.096069 -0.146809 -0.199899 -0.255220 -0.312714 -0.372354 -0.434074 -0.497813 -0.563526 -0.631182 -0.700757 -0.772241 -0.845624 -0.920902 -0.998060 -1.077077 -1.157919 -1.240537 -1.324876 -1.410873 -1.498456 -1.587548 -1.678077 -1.769982 -1.863210 -1.957727 -2.053518 -2.150567 -2.248842 -2.348288 -2.448755 -2.549969 -2.651552 -2.753013 -2.853760 -2.953222 -3.050903 -3.146415 -3.239530 -3.330191 -3.418488 -3.504713 -3.589367 -3.673119 -3.756823 -3.841439 -3.927881 -4.016987 -4.109489 -4.205998 -4.307064 -4.413226 -4.525025 -4.643004 -4.767627 -4.899191 -5.037745 -5.182911 -5.333779 -5.488962 -5.646752 -5.805349 -5.963005 -6.118265 -6.270151 -6.418106 -6.561861 -6.701385 -6.836863 -6.968631 -7.097099 -7.222743 -7.346117 -7.467850 -7.588630 -7.709162 -7.830114 -0.212501 0.226016 0.238552 0.249921 0.259996 0.268770 0.276197 0.282109 0.286319 0.288945 0.290036 0.289301 0.286418 0.281223 0.273504 0.263023 0.249600 0.233009 0.213068 0.189471 0.161964 0.130513 0.095369 0.056780 0.014949 -0.029944 -0.077736 -0.128262 -0.181371 -0.236945 -0.294861 -0.355076 -0.417548 -0.482207 -0.548993 -0.617861 -0.688780 -0.761729 -0.836696 -0.913671 -0.992644 -1.073599 -1.156504 -1.241319 -1.327988 -1.416451 -1.506636 -1.598467 -1.691864 -1.786760 -1.883098 -1.980832 -2.079942 -2.180420 -2.282246 -2.385388 -2.489758 -2.595143 -2.701204 -2.807491 -2.913426 -3.018387 -3.121819 -3.223248 -3.322333 -3.418913 -3.512970 -3.604644 -3.694311 -3.782549 -3.870126 -3.958004 -4.047182 -4.138588 -4.233056 -4.331290 -4.433884 -4.541406 -4.654418 -4.773484 -4.899179 -5.031974 -5.172148 -5.319683 -5.474048 -5.634140 -5.798384 -5.964926 -6.131856 -6.297384 -6.460110 -6.619132 -6.773942 -6.924321 -7.070291 -7.212097 -7.350118 -7.484805 -7.616688 -7.746383 -7.874577 -8.002011 -8.129426 -8.257511 -0.197408 0.210977 0.223602 0.235125 0.245393 0.254316 0.261894 0.267923 0.272164 0.274736 0.275709 0.274789 0.271652 0.266105 0.257960 0.246948 0.232897 0.215572 0.194769 0.170202 0.141547 0.108743 0.072049 0.031728 -0.012000 -0.058943 -0.108927 -0.161776 -0.217334 -0.275474 -0.336073 -0.399102 -0.464502 -0.532200 -0.602137 -0.674269 -0.748565 -0.825005 -0.903575 -0.984265 -1.067060 -1.151936 -1.238857 -1.327772 -1.418620 -1.511335 -1.605839 -1.702048 -1.799888 -1.899295 -2.000217 -2.102620 -2.206495 -2.311836 -2.418623 -2.526812 -2.636263 -2.746695 -2.857702 -2.968747 -3.079186 -3.188402 -3.295857 -3.401106 -3.503871 -3.604040 -3.701618 -3.796816 -3.890093 -3.982111 -4.073755 -4.166075 -4.260094 -4.356744 -4.456845 -4.561069 -4.670016 -4.784274 -4.904426 -5.031069 -5.164813 -5.306135 -5.455291 -5.612166 -5.776055 -5.945654 -6.119196 -6.294693 -6.470137 -6.643719 -6.814109 -6.980472 -7.142346 -7.299560 -7.452197 -7.600560 -7.745069 -7.886226 -8.024620 -8.160928 -8.295897 -8.430319 -8.564965 -8.700531 -0.182005 0.195633 0.208280 0.219865 0.230273 0.239324 0.247017 0.253151 0.257419 0.259930 0.260774 0.259653 0.256247 0.250324 0.241730 0.230153 0.215444 0.197347 0.175639 0.150061 0.120218 0.086017 0.047719 0.005609 -0.040078 -0.089138 -0.141386 -0.196635 -0.254722 -0.315512 -0.378887 -0.444823 -0.513248 -0.584088 -0.657283 -0.732790 -0.810578 -0.890628 -0.972924 -1.057454 -1.144197 -1.233122 -1.324185 -1.417329 -1.512487 -1.609584 -1.708537 -1.809261 -1.911686 -2.015753 -2.121416 -2.228657 -2.337474 -2.447860 -2.559794 -2.673202 -2.787879 -2.903478 -3.019513 -3.135357 -3.250341 -3.363867 -3.475412 -3.584576 -3.691144 -3.795024 -3.896254 -3.995129 -4.092190 -4.188198 -4.284165 -4.381198 -4.480333 -4.582505 -4.688499 -4.798973 -4.914543 -5.035819 -5.163404 -5.297944 -5.440081 -5.590296 -5.748815 -5.915389 -6.089120 -6.268501 -6.451577 -6.636233 -6.820376 -7.002209 -7.180469 -7.354383 -7.523535 -7.687802 -7.847333 -8.002489 -8.153732 -8.301621 -8.446810 -8.590036 -8.732106 -8.873857 -9.016086 -9.159479 +0.091686 0.096575 0.101314 0.105894 0.110305 0.114538 0.118583 0.122431 0.126073 0.129497 0.132692 0.135647 0.138350 0.140792 0.142964 0.144862 0.146489 0.147849 0.148944 0.149780 0.150362 0.150689 0.150761 0.150584 0.150158 0.149481 0.148560 0.147399 0.145993 0.144332 0.142397 0.140162 0.137607 0.134728 0.131540 0.128046 0.124241 0.120135 0.115747 0.111088 0.106162 0.100977 0.095542 0.089878 0.084011 0.077963 0.071754 0.065400 0.058916 0.052316 0.045611 0.038813 +0.143960 0.149596 0.154953 0.160020 0.164780 0.169215 0.173312 0.177055 0.180438 0.183463 0.186134 0.188453 0.190421 0.192038 0.193294 0.194177 0.194678 0.194796 0.194534 0.193895 0.192872 0.191448 0.189595 0.187279 0.184490 0.181249 0.177562 0.173422 0.168848 0.163866 0.158486 0.152708 0.146540 0.140009 0.133154 0.126003 0.118581 0.110911 0.103012 0.094905 0.086606 0.078132 0.069499 0.060720 0.051807 0.042773 0.033628 0.024379 0.015033 0.005593 -0.003935 -0.013542 +0.200999 0.207057 0.212709 0.217944 0.222753 0.227130 0.231064 0.234540 0.237530 0.240009 0.241950 0.243324 0.244105 0.244277 0.243810 0.242667 0.240834 0.238334 0.235185 0.231387 0.226970 0.221974 0.216406 0.210270 0.203596 0.196433 0.188826 0.180813 0.172423 0.163680 0.154596 0.145188 0.135473 0.125468 0.115192 0.104662 0.093900 0.082925 0.071756 0.060409 0.048901 0.037244 0.025448 0.013520 0.001458 -0.010738 -0.023067 -0.035520 -0.048079 -0.060714 -0.073394 -0.086081 +0.262109 0.268883 0.275108 0.280728 0.285675 0.289866 0.293225 0.295673 0.297120 0.297523 0.296898 0.295282 0.292698 0.289211 0.284905 0.279806 0.273940 0.267362 0.260137 0.252325 0.243968 0.235104 0.225765 0.215975 0.205747 0.195099 0.184044 0.172594 0.160751 0.148531 0.135955 0.123045 0.109826 0.096324 0.082563 0.068565 0.054349 0.039931 0.025323 0.010531 -0.004446 -0.019615 -0.034984 -0.050555 -0.066317 -0.082239 -0.098275 -0.114365 -0.130442 -0.146438 -0.162296 -0.177964 +0.329812 0.336766 0.342452 0.346750 0.349588 0.350936 0.350796 0.349261 0.346468 0.342512 0.337517 0.331617 0.324917 0.317486 0.309376 0.300628 0.291272 0.281333 0.270832 0.259781 0.248190 0.236072 0.223439 0.210294 0.196656 0.182542 0.167952 0.152901 0.137415 0.121524 0.105259 0.088650 0.071726 0.054509 0.037018 0.019268 0.001262 -0.017001 -0.035533 -0.054348 -0.073456 -0.092852 -0.112507 -0.132362 -0.152329 -0.172296 -0.192145 -0.211771 -0.231094 -0.250061 -0.268667 -0.286970 +0.394666 0.398340 0.400011 0.399772 0.397807 0.394382 0.389766 0.384156 0.377676 0.370393 0.362345 0.353560 0.344063 0.333874 0.323009 0.311479 0.299287 0.286434 0.272921 0.258750 0.243930 0.228475 0.212388 0.195693 0.178407 0.160534 0.142107 0.123163 0.103741 0.083878 0.063607 0.042956 0.021945 0.000587 -0.021117 -0.043176 -0.065611 -0.088442 -0.111678 -0.135309 -0.159287 -0.183520 -0.207873 -0.232173 -0.256248 -0.279945 -0.303158 -0.325827 -0.347971 -0.369705 -0.391262 -0.412935 +0.438041 0.437071 0.434596 0.430880 0.426094 0.420359 0.413722 0.406207 0.397833 0.388615 0.378568 0.367703 0.356023 0.343527 0.330207 0.316055 0.301063 0.285225 0.268542 0.251030 0.232706 0.213585 0.193700 0.173080 0.151740 0.129725 0.107083 0.083863 0.060108 0.035853 0.011125 -0.014063 -0.039710 -0.065831 -0.092454 -0.119604 -0.147289 -0.175499 -0.204180 -0.233212 -0.262421 -0.291590 -0.320480 -0.348856 -0.376558 -0.403501 -0.429701 -0.455310 -0.480649 -0.506137 -0.532192 -0.559071 +0.457967 0.455979 0.452866 0.448704 0.443478 0.437192 0.429833 0.421406 0.411921 0.401383 0.389793 0.377143 0.363427 0.348637 0.332762 0.315796 0.297737 0.278593 0.258384 0.237143 0.214897 0.191699 0.167596 0.142611 0.116800 0.090223 0.062939 0.034999 0.006435 -0.022730 -0.052490 -0.082859 -0.113873 -0.145563 -0.177938 -0.210991 -0.244676 -0.278878 -0.313397 -0.347990 -0.382360 -0.416171 -0.449143 -0.481129 -0.512100 -0.542199 -0.571792 -0.601400 -0.631581 -0.662858 -0.695509 -0.729432 +0.464498 0.464022 0.462253 0.459125 0.454597 0.448659 0.441298 0.432496 0.422256 0.410593 0.397517 0.383032 0.367139 0.349836 0.331124 0.311013 0.289519 0.266671 0.242518 0.217117 0.190536 0.162847 0.134077 0.104292 0.073568 0.041975 0.009566 -0.023623 -0.057573 -0.092287 -0.127803 -0.164159 -0.201376 -0.239448 -0.278345 -0.317981 -0.358171 -0.398656 -0.439117 -0.479156 -0.518328 -0.556326 -0.593032 -0.628509 -0.663068 -0.697272 -0.731776 -0.767305 -0.804602 -0.844026 -0.885395 -0.928069 +0.463490 0.465456 0.465861 0.464541 0.461379 0.456308 0.449315 0.440385 0.429515 0.416742 0.402103 0.385624 0.367325 0.347224 0.325347 0.301724 0.276400 0.249437 0.220931 0.190965 0.159637 0.126994 0.093102 0.058054 0.021935 -0.015195 -0.053297 -0.092353 -0.132381 -0.173430 -0.215535 -0.258703 -0.302917 -0.348116 -0.394172 -0.440851 -0.487834 -0.534719 -0.580989 -0.626097 -0.669719 -0.711769 -0.752399 -0.792065 -0.831452 -0.871377 -0.912845 -0.956832 -1.003839 -1.053712 -1.105589 -1.157942 +0.457445 0.462118 0.465005 0.465848 0.464411 0.460553 0.454181 0.445286 0.433864 0.419956 0.403639 0.384976 0.364016 0.340815 0.315425 0.287912 0.258360 0.226890 0.193623 0.158676 0.122136 0.084062 0.044567 0.003751 -0.038313 -0.081577 -0.126023 -0.171682 -0.218606 -0.266826 -0.316340 -0.367115 -0.419059 -0.472010 -0.525699 -0.579747 -0.633667 -0.686835 -0.738622 -0.788647 -0.836834 -0.883378 -0.928785 -0.973867 -1.019688 -1.067499 -1.118620 -1.173918 -1.233318 -1.295643 -1.358741 -1.420196 +0.447852 0.455065 0.460425 0.463528 0.463989 0.461544 0.456010 0.447287 0.435373 0.420293 0.402165 0.381108 0.357222 0.330602 0.301344 0.269564 0.235402 0.199023 0.160566 0.120178 0.077923 0.033922 -0.011703 -0.058857 -0.107479 -0.157552 -0.209107 -0.262202 -0.316861 -0.373081 -0.430808 -0.489920 -0.550233 -0.611454 -0.673151 -0.734763 -0.795604 -0.854950 -0.912315 -0.967576 -1.020857 -1.072658 -1.123956 -1.176043 -1.230487 -1.289087 -1.353172 -1.422769 -1.496497 -1.571675 -1.645302 -1.715018 +0.436246 0.445302 0.452807 0.458044 0.460431 0.459481 0.454894 0.446450 0.434075 0.417776 0.397696 0.374029 0.346937 0.316572 0.283092 0.246669 0.207494 0.165768 0.121668 0.075329 0.026850 -0.023617 -0.075950 -0.130068 -0.185943 -0.243605 -0.303110 -0.364486 -0.427726 -0.492758 -0.559435 -0.627554 -0.696810 -0.766737 -0.836734 -0.906076 -0.973950 -1.039720 -1.103096 -1.164038 -1.222996 -1.281053 -1.339770 -1.401135 -1.467400 -1.540381 -1.620400 -1.706144 -1.794614 -1.882156 -1.965735 -2.043742 +0.423215 0.433838 0.442899 0.449901 0.454053 0.454561 0.450936 0.442819 0.429986 0.412415 0.390235 0.363729 0.333142 0.298704 0.260640 0.219175 0.174562 0.127028 0.076794 0.023972 -0.031277 -0.088793 -0.148468 -0.210254 -0.274167 -0.340263 -0.408575 -0.479093 -0.551737 -0.626339 -0.702675 -0.780434 -0.859149 -0.938209 -1.016871 -1.094266 -1.169580 -1.242227 -1.311915 -1.378939 -1.444423 -1.510230 -1.578792 -1.652747 -1.734397 -1.824636 -1.922541 -2.025159 -2.128205 -2.227776 -2.321411 -2.408660 +0.408674 0.420901 0.431280 0.439602 0.445167 0.446986 0.444233 0.436413 0.423112 0.404196 0.379761 0.350179 0.315806 0.276958 0.233927 0.187001 0.136491 0.082669 0.025768 -0.034083 -0.096686 -0.161889 -0.229613 -0.299849 -0.372646 -0.448043 -0.526034 -0.606537 -0.689370 -0.774290 -0.860978 -0.948986 -1.037730 -1.126473 -1.214335 -1.300336 -1.383513 -1.463216 -1.539437 -1.613237 -1.686737 -1.762787 -1.844401 -1.934314 -2.034203 -2.143851 -2.260837 -2.380548 -2.498120 -2.609888 -2.714447 -2.812213 +0.392491 0.406405 0.418111 0.427478 0.434088 0.436949 0.434927 0.427276 0.413446 0.393090 0.366239 0.333342 0.294883 0.251269 0.202866 0.150036 0.093151 0.032543 -0.031589 -0.099055 -0.169648 -0.243241 -0.319787 -0.399315 -0.481868 -0.567451 -0.655988 -0.747293 -0.841105 -0.937092 -1.034831 -1.133787 -1.233270 -1.332426 -1.430180 -1.525198 -1.616348 -1.703164 -1.786462 -1.868477 -1.952417 -2.041710 -2.139500 -2.248231 -2.368690 -2.499440 -2.636225 -2.773342 -2.905702 -3.030419 -3.147086 -3.256787 +0.374551 0.390255 0.403289 0.413633 0.421002 0.424581 0.423063 0.415431 0.400961 0.379056 0.349628 0.313171 0.270309 0.221553 0.167352 0.108158 0.044405 -0.023539 -0.095487 -0.171196 -0.250473 -0.333217 -0.419415 -0.509110 -0.602317 -0.698977 -0.798913 -0.901850 -1.007440 -1.115268 -1.224860 -1.335606 -1.446724 -1.557133 -1.665242 -1.769373 -1.868434 -1.962750 -2.054428 -2.146905 -2.244050 -2.349485 -2.466255 -2.596280 -2.739406 -2.892593 -3.049892 -3.204882 -3.352672 -3.491425 -3.621561 -3.744691 +0.354752 0.372334 0.386719 0.398034 0.405978 0.410020 0.408744 0.400923 0.385629 0.362055 0.329881 0.289605 0.242007 0.187713 0.127271 0.061233 -0.009910 -0.085775 -0.166158 -0.250791 -0.339498 -0.432205 -0.528928 -0.629697 -0.734472 -0.843099 -0.955298 -1.070713 -1.188911 -1.309458 -1.431845 -1.555409 -1.679152 -1.801410 -1.920015 -2.033135 -2.140330 -2.243249 -2.345296 -2.450757 -2.563821 -2.688095 -2.826409 -2.980057 -3.147779 -3.324589 -3.503220 -3.676702 -3.840906 -3.994974 -4.140058 -4.278165 +0.333003 0.352535 0.368316 0.380579 0.389001 0.393289 0.392004 0.383778 0.367452 0.342047 0.306944 0.262575 0.209888 0.149643 0.082498 0.009108 -0.069969 -0.154379 -0.243863 -0.338148 -0.437077 -0.540610 -0.648769 -0.761543 -0.878808 -1.000297 -1.125646 -1.254409 -1.386141 -1.520417 -1.656724 -1.794237 -1.931386 -2.065753 -2.194733 -2.316934 -2.433122 -2.546326 -2.661010 -2.782001 -2.913585 -3.059222 -3.221522 -3.401112 -3.595200 -3.796876 -3.997663 -4.190496 -4.372318 -4.543140 -4.704715 -4.859431 +0.309270 0.330763 0.347981 0.361170 0.370019 0.374392 0.372880 0.363997 0.346417 0.318994 0.280755 0.232004 0.173858 0.107229 0.032901 -0.048376 -0.135979 -0.229588 -0.328881 -0.433590 -0.543585 -0.658850 -0.779386 -0.905111 -1.035790 -1.171061 -1.310469 -1.453531 -1.599847 -1.749032 -1.900506 -2.052951 -2.203972 -2.350395 -2.489774 -2.621652 -2.748220 -2.873670 -3.003362 -3.142397 -3.294941 -3.464396 -3.653136 -3.860958 -4.083147 -4.310923 -4.534716 -4.748034 -4.948847 -5.137970 -5.317645 -5.490751 +0.283675 0.306945 0.325613 0.339718 0.348964 0.353279 0.351362 0.341596 0.322521 0.292845 0.251245 0.197806 0.133815 0.060349 -0.021672 -0.111393 -0.208162 -0.311656 -0.421508 -0.537461 -0.659413 -0.787350 -0.921225 -1.060853 -1.205892 -1.355887 -1.510319 -1.668744 -1.830843 -1.996256 -2.164074 -2.332161 -2.497172 -2.655653 -2.805822 -2.948494 -3.087060 -3.226908 -3.374013 -3.533490 -3.709339 -3.905075 -4.122787 -4.361112 -4.613131 -4.868160 -5.115993 -5.351129 -5.572447 -5.781483 -5.980987 -6.174479 +0.256313 0.281113 0.301131 0.316140 0.325760 0.329900 0.327415 0.316551 0.295744 0.263542 0.218342 0.159893 0.089649 0.008870 -0.081378 -0.180142 -0.286748 -0.400854 -0.522056 -0.650120 -0.784958 -0.926532 -1.074719 -1.229217 -1.389587 -1.555287 -1.725804 -1.900784 -2.080005 -2.262980 -2.448103 -2.632228 -2.811255 -2.982086 -3.143907 -3.298695 -3.451088 -3.607597 -3.774480 -3.956652 -4.158169 -4.382714 -4.632027 -4.903130 -5.186626 -5.470040 -5.743189 -6.001619 -6.245055 -6.475706 -6.696930 -6.913061 +0.227413 0.253359 0.274487 0.290363 0.300332 0.304212 0.301010 0.288835 0.266040 0.231032 0.181968 0.118169 0.041242 -0.047355 -0.146395 -0.254826 -0.371984 -0.497465 -0.630855 -0.771933 -0.920613 -1.076810 -1.240294 -1.410655 -1.587356 -1.769814 -1.957580 -2.150441 -2.348192 -2.549934 -2.753074 -2.953396 -3.146694 -3.330549 -3.505110 -3.673491 -3.841738 -4.017198 -4.206100 -4.413187 -4.642786 -4.898798 -5.182427 -5.488527 -5.805056 -6.118101 -6.418029 -6.701347 -6.968601 -7.222692 -7.467747 -7.708985 +0.197326 0.223779 0.245733 0.262323 0.272607 0.276159 0.272110 0.258429 0.233378 0.195259 0.142039 0.072526 -0.011538 -0.108485 -0.216915 -0.335674 -0.464126 -0.601784 -0.748233 -0.903263 -1.066769 -1.238589 -1.418378 -1.605623 -1.799699 -2.000051 -2.206350 -2.418500 -2.636179 -2.857697 -3.079288 -3.296071 -3.504186 -3.702011 -3.890511 -4.074130 -4.260392 -4.457052 -4.670103 -4.904358 -5.164549 -5.454851 -5.775547 -6.118766 -6.469853 -6.813950 -7.142266 -7.452152 -7.745026 -8.024547 -8.295764 -8.564753 # Thrust coefficient -0.234686 0.234877 0.235022 0.235122 0.235174 0.235179 0.235135 0.235043 0.234902 0.234712 0.234472 0.234184 0.233847 0.233461 0.233026 0.232545 0.232016 0.231442 0.230822 0.230158 0.229451 0.228701 0.227911 0.227080 0.226211 0.225304 0.224361 0.223382 0.222371 0.221328 0.220256 0.219158 0.218035 0.216890 0.215723 0.214537 0.213333 0.212113 0.210877 0.209627 0.208361 0.207078 0.205778 0.204458 0.203119 0.201761 0.200380 0.198974 0.197541 0.196078 0.194583 0.193057 0.191497 0.189901 0.188267 0.186593 0.184875 0.183111 0.181299 0.179433 0.177510 0.175523 0.173470 0.171347 0.169153 0.166888 0.164555 0.162158 0.159699 0.157177 0.154591 0.151941 0.149230 0.146460 0.143632 0.140753 0.137823 0.134845 0.131820 0.128748 0.125630 0.122469 0.119264 0.116016 0.112727 0.109399 0.106036 0.102641 0.099217 0.095766 0.092289 0.088789 0.085268 0.081727 0.078168 0.074593 0.071003 0.067399 0.063784 0.060158 0.056522 0.052879 0.049229 0.045573 -0.267586 0.267493 0.267339 0.267124 0.266848 0.266511 0.266114 0.265658 0.265144 0.264572 0.263944 0.263261 0.262524 0.261734 0.260894 0.260003 0.259064 0.258079 0.257049 0.255977 0.254865 0.253715 0.252531 0.251316 0.250073 0.248806 0.247516 0.246208 0.244882 0.243541 0.242185 0.240815 0.239431 0.238033 0.236617 0.235184 0.233730 0.232256 0.230759 0.229234 0.227681 0.226094 0.224474 0.222817 0.221122 0.219386 0.217604 0.215774 0.213891 0.211950 0.209945 0.207873 0.205728 0.203502 0.201191 0.198793 0.196310 0.193744 0.191098 0.188375 0.185574 0.182696 0.179740 0.176710 0.173608 0.170441 0.167210 0.163918 0.160565 0.157152 0.153680 0.150149 0.146562 0.142920 0.139226 0.135484 0.131697 0.127870 0.124005 0.120105 0.116172 0.112209 0.108218 0.104201 0.100159 0.096096 0.092011 0.087908 0.083787 0.079651 0.075500 0.071336 0.067161 0.062975 0.058781 0.054579 0.050370 0.046155 0.041936 0.037714 0.033489 0.029262 0.025034 0.020807 -0.301090 0.300607 0.300054 0.299432 0.298742 0.297986 0.297165 0.296280 0.295333 0.294327 0.293264 0.292147 0.290979 0.289762 0.288502 0.287200 0.285863 0.284495 0.283101 0.281685 0.280250 0.278798 0.277332 0.275853 0.274361 0.272858 0.271342 0.269811 0.268263 0.266695 0.265106 0.263491 0.261849 0.260176 0.258468 0.256723 0.254938 0.253109 0.251232 0.249301 0.247311 0.245256 0.243126 0.240914 0.238612 0.236212 0.233708 0.231099 0.228388 0.225580 0.222677 0.219678 0.216584 0.213393 0.210108 0.206732 0.203272 0.199736 0.196124 0.192439 0.188680 0.184849 0.180946 0.176973 0.172930 0.168823 0.164657 0.160436 0.156164 0.151846 0.147484 0.143081 0.138640 0.134163 0.129653 0.125112 0.120542 0.115945 0.111323 0.106678 0.102011 0.097324 0.092618 0.087896 0.083158 0.078406 0.073642 0.068865 0.064079 0.059284 0.054482 0.049674 0.044860 0.040043 0.035222 0.030400 0.025577 0.020753 0.015930 0.011109 0.006289 0.001472 -0.003341 -0.008148 -0.334730 0.333794 0.332785 0.331705 0.330557 0.329344 0.328072 0.326744 0.325366 0.323943 0.322481 0.320988 0.319467 0.317924 0.316364 0.314787 0.313199 0.311600 0.309991 0.308374 0.306745 0.305102 0.303441 0.301761 0.300058 0.298329 0.296570 0.294778 0.292947 0.291074 0.289154 0.287181 0.285150 0.283051 0.280874 0.278609 0.276244 0.273768 0.271174 0.268458 0.265621 0.262664 0.259592 0.256402 0.253091 0.249660 0.246113 0.242458 0.238703 0.234852 0.230909 0.226876 0.222749 0.218530 0.214222 0.209831 0.205360 0.200815 0.196204 0.191531 0.186800 0.182012 0.177171 0.172280 0.167343 0.162363 0.157341 0.152282 0.147186 0.142056 0.136895 0.131705 0.126486 0.121242 0.115973 0.110682 0.105369 0.100037 0.094687 0.089320 0.083938 0.078543 0.073135 0.067717 0.062290 0.056855 0.051413 0.045966 0.040516 0.035063 0.029608 0.024152 0.018697 0.013242 0.007789 0.002338 -0.003110 -0.008553 -0.013990 -0.019420 -0.024842 -0.030253 -0.035651 -0.041034 -0.368288 0.366893 0.365440 0.363936 0.362387 0.360800 0.359181 0.357538 0.355875 0.354198 0.352510 0.350813 0.349109 0.347399 0.345680 0.343949 0.342204 0.340442 0.338658 0.336849 0.335010 0.333135 0.331219 0.329255 0.327238 0.325161 0.323013 0.320781 0.318451 0.316009 0.313442 0.310741 0.307902 0.304925 0.301810 0.298555 0.295157 0.291613 0.287925 0.284100 0.280146 0.276072 0.271881 0.267574 0.263152 0.258615 0.253970 0.249221 0.244374 0.239438 0.234418 0.229320 0.224149 0.218913 0.213616 0.208261 0.202852 0.197395 0.191886 0.186330 0.180727 0.175082 0.169396 0.163672 0.157911 0.152117 0.146291 0.140434 0.134548 0.128636 0.122698 0.116737 0.110755 0.104752 0.098730 0.092692 0.086639 0.080571 0.074492 0.068402 0.062304 0.056198 0.050087 0.043971 0.037852 0.031731 0.025609 0.019486 0.013364 0.007242 0.001123 -0.004994 -0.011106 -0.017213 -0.023313 -0.029405 -0.035487 -0.041556 -0.047609 -0.053645 -0.059660 -0.065650 -0.071614 -0.077545 -0.402146 0.400435 0.398701 0.396950 0.395188 0.393418 0.391644 0.389866 0.388084 0.386297 0.384500 0.382690 0.380864 0.379014 0.377134 0.375219 0.373261 0.371253 0.369187 0.367055 0.364840 0.362525 0.360095 0.357534 0.354830 0.351976 0.348968 0.345804 0.342478 0.338983 0.335315 0.331477 0.327475 0.323319 0.319018 0.314573 0.309984 0.305253 0.300383 0.295379 0.290249 0.285001 0.279645 0.274188 0.268641 0.263009 0.257298 0.251515 0.245665 0.239748 0.233770 0.227737 0.221650 0.215514 0.209331 0.203103 0.196830 0.190512 0.184151 0.177750 0.171311 0.164836 0.158326 0.151784 0.145211 0.138610 0.131982 0.125329 0.118653 0.111955 0.105238 0.098503 0.091752 0.084986 0.078208 0.071420 0.064622 0.057817 0.051006 0.044190 0.037371 0.030550 0.023727 0.016903 0.010080 0.003257 -0.003564 -0.010382 -0.017197 -0.024006 -0.030808 -0.037601 -0.044384 -0.051152 -0.057904 -0.064636 -0.071346 -0.078029 -0.084682 -0.091299 -0.097875 -0.104406 -0.110884 -0.117304 -0.437429 0.435609 0.433792 0.431976 0.430158 0.428335 0.426502 0.424652 0.422777 0.420868 0.418919 0.416920 0.414863 0.412733 0.410514 0.408184 0.405727 0.403128 0.400374 0.397457 0.394372 0.391110 0.387660 0.384014 0.380168 0.376127 0.371898 0.367492 0.362912 0.358158 0.353230 0.348132 0.342872 0.337459 0.331902 0.326212 0.320399 0.314473 0.308440 0.302308 0.296084 0.289774 0.283385 0.276923 0.270392 0.263796 0.257143 0.250430 0.243660 0.236839 0.229970 0.223053 0.216093 0.209092 0.202045 0.194956 0.187824 0.180653 0.173445 0.166202 0.158925 0.151617 0.144280 0.136916 0.129527 0.122114 0.114680 0.107226 0.099754 0.092266 0.084765 0.077251 0.069727 0.062194 0.054654 0.047108 0.039559 0.032006 0.024450 0.016893 0.009335 0.001777 -0.005780 -0.013335 -0.020888 -0.028436 -0.035977 -0.043511 -0.051034 -0.058544 -0.066037 -0.073511 -0.080962 -0.088385 -0.095775 -0.103128 -0.110438 -0.117699 -0.124902 -0.132043 -0.139113 -0.146104 -0.153010 -0.159822 -0.475295 0.473479 0.471648 0.469792 0.467903 0.465968 0.463979 0.461919 0.459765 0.457498 0.455100 0.452555 0.449850 0.446974 0.443917 0.440667 0.437209 0.433530 0.429626 0.425499 0.421157 0.416606 0.411845 0.406876 0.401699 0.396323 0.390757 0.385012 0.379102 0.373039 0.366834 0.360496 0.354035 0.347459 0.340774 0.333989 0.327108 0.320138 0.313085 0.305953 0.298747 0.291473 0.284136 0.276737 0.269283 0.261775 0.254211 0.246595 0.238934 0.231226 0.223476 0.215686 0.207854 0.199978 0.192062 0.184106 0.176113 0.168086 0.160026 0.151936 0.143817 0.135671 0.127501 0.119309 0.111096 0.102864 0.094616 0.086353 0.078077 0.069791 0.061495 0.053192 0.044882 0.036568 0.028250 0.019929 0.011606 0.003281 -0.005044 -0.013369 -0.021694 -0.030015 -0.038332 -0.046643 -0.054945 -0.063236 -0.071512 -0.079770 -0.088006 -0.096216 -0.104393 -0.112533 -0.120630 -0.128675 -0.136662 -0.144584 -0.152431 -0.160197 -0.167872 -0.175450 -0.182922 -0.190279 -0.197511 -0.204609 -0.516120 0.514190 0.512175 0.510047 0.507792 0.505393 0.502836 0.500106 0.497192 0.494076 0.490742 0.487172 0.483355 0.479288 0.474974 0.470418 0.465616 0.460565 0.455268 0.449735 0.443977 0.438009 0.431845 0.425501 0.418989 0.412321 0.405506 0.398555 0.391476 0.384276 0.376964 0.369546 0.362027 0.354414 0.346712 0.338926 0.331060 0.323117 0.315103 0.307021 0.298875 0.290670 0.282407 0.274093 0.265727 0.257307 0.248840 0.240330 0.231776 0.223184 0.214553 0.205879 0.197164 0.188409 0.179617 0.170789 0.161929 0.153038 0.144118 0.135171 0.126200 0.117206 0.108192 0.099159 0.090111 0.081047 0.071972 0.062886 0.053791 0.044689 0.035581 0.026468 0.017351 0.008230 -0.000893 -0.010018 -0.019145 -0.028271 -0.037395 -0.046516 -0.055632 -0.064740 -0.073837 -0.082919 -0.091982 -0.101021 -0.110032 -0.119007 -0.127941 -0.136826 -0.145654 -0.154416 -0.163104 -0.171709 -0.180223 -0.188637 -0.196943 -0.205132 -0.213194 -0.221121 -0.228901 -0.236525 -0.243978 -0.251247 -0.558741 0.556248 0.553578 0.550711 0.547629 0.544312 0.540740 0.536900 0.532786 0.528398 0.523730 0.518775 0.513532 0.508006 0.502211 0.496164 0.489884 0.483387 0.476688 0.469800 0.462736 0.455508 0.448126 0.440600 0.432938 0.425147 0.417236 0.409211 0.401078 0.392844 0.384512 0.376089 0.367578 0.358984 0.350311 0.341562 0.332740 0.323848 0.314890 0.305870 0.296795 0.287663 0.278483 0.269253 0.259972 0.250646 0.241278 0.231869 0.222424 0.212939 0.203411 0.193841 0.184233 0.174588 0.164909 0.155197 0.145456 0.135687 0.125892 0.116075 0.106236 0.096377 0.086503 0.076613 0.066711 0.056798 0.046876 0.036946 0.027009 0.017066 0.007118 -0.002834 -0.012789 -0.022748 -0.032708 -0.042668 -0.052627 -0.062583 -0.072532 -0.082472 -0.092398 -0.102305 -0.112190 -0.122044 -0.131862 -0.141636 -0.151357 -0.161016 -0.170604 -0.180112 -0.189531 -0.198850 -0.208062 -0.217156 -0.226123 -0.234955 -0.243640 -0.252170 -0.260532 -0.268716 -0.276706 -0.284486 -0.292038 -0.299343 -0.600917 0.597455 0.593713 0.589681 0.585346 0.580696 0.575720 0.570416 0.564791 0.558860 0.552645 0.546168 0.539446 0.532495 0.525330 0.517964 0.510410 0.502680 0.494784 0.486731 0.478531 0.470192 0.461721 0.453126 0.444412 0.435586 0.426654 0.417621 0.408491 0.399269 0.389959 0.380565 0.371089 0.361534 0.351905 0.342204 0.332434 0.322599 0.312702 0.302751 0.292746 0.282692 0.272590 0.262436 0.252239 0.242002 0.231724 0.221411 0.211055 0.200655 0.190214 0.179734 0.169217 0.158666 0.148082 0.137470 0.126829 0.116164 0.105476 0.094768 0.084042 0.073300 0.062544 0.051776 0.040998 0.030210 0.019415 0.008612 -0.002197 -0.013012 -0.023832 -0.034656 -0.045483 -0.056312 -0.067140 -0.077964 -0.088782 -0.099588 -0.110379 -0.121147 -0.131887 -0.142591 -0.153251 -0.163857 -0.174398 -0.184866 -0.195250 -0.205539 -0.215723 -0.225794 -0.235740 -0.245552 -0.255220 -0.264732 -0.274080 -0.283253 -0.292238 -0.301024 -0.309593 -0.317928 -0.326010 -0.333818 -0.341330 -0.348521 -0.640702 0.635845 0.630626 0.625052 0.619137 0.612902 0.606371 0.599562 0.592496 0.585184 0.577642 0.569882 0.561919 0.553762 0.545423 0.536911 0.528237 0.519408 0.510433 0.501320 0.492075 0.482704 0.473215 0.463613 0.453903 0.444089 0.434177 0.424170 0.414071 0.403884 0.393612 0.383259 0.372826 0.362318 0.351737 0.341086 0.330368 0.319589 0.308753 0.297863 0.286924 0.275936 0.264897 0.253814 0.242690 0.231526 0.220327 0.209081 0.197791 0.186459 0.175086 0.163676 0.152231 0.140754 0.129246 0.117710 0.106150 0.094567 0.082964 0.071344 0.059708 0.048058 0.036395 0.024722 0.013038 0.001345 -0.010356 -0.022065 -0.033780 -0.045502 -0.057228 -0.068958 -0.080688 -0.092415 -0.104136 -0.115844 -0.127533 -0.139198 -0.150830 -0.162420 -0.173958 -0.185433 -0.196834 -0.208148 -0.219366 -0.230477 -0.241469 -0.252333 -0.263056 -0.273629 -0.284039 -0.294278 -0.304334 -0.314195 -0.323850 -0.333285 -0.342483 -0.351426 -0.360092 -0.368459 -0.376502 -0.384198 -0.391518 -0.398436 -0.676156 0.669722 0.662980 0.655946 0.648637 0.641070 0.633261 0.625218 0.616951 0.608472 0.599791 0.590917 0.581860 0.572629 0.563232 0.553679 0.543975 0.534130 0.524149 0.514039 0.503806 0.493456 0.482993 0.472422 0.461747 0.450972 0.440099 0.429132 0.418075 0.406930 0.395700 0.384388 0.372998 0.361532 0.349993 0.338384 0.326711 0.314978 0.303190 0.291351 0.279463 0.267522 0.255536 0.243508 0.231439 0.219334 0.207180 0.194979 0.182734 0.170447 0.158122 0.145759 0.133363 0.120936 0.108481 0.096000 0.083496 0.070972 0.058430 0.045871 0.033297 0.020710 0.008110 -0.004501 -0.017123 -0.029755 -0.042396 -0.055046 -0.067704 -0.080367 -0.093032 -0.105695 -0.118352 -0.130996 -0.143621 -0.156218 -0.168780 -0.181294 -0.193749 -0.206133 -0.218433 -0.230637 -0.242733 -0.254709 -0.266554 -0.278256 -0.289804 -0.301185 -0.312388 -0.323403 -0.334216 -0.344818 -0.355195 -0.365333 -0.375214 -0.384821 -0.394130 -0.403119 -0.411763 -0.420035 -0.427908 -0.435355 -0.442347 -0.448851 -0.707280 0.699577 0.691612 0.683400 0.674953 0.666274 0.657374 0.648264 0.638953 0.629444 0.619746 0.609869 0.599819 0.589603 0.579230 0.568705 0.558038 0.547233 0.536296 0.525234 0.514051 0.502751 0.491339 0.479817 0.468189 0.456459 0.444630 0.432704 0.420687 0.408579 0.396384 0.384106 0.371748 0.359312 0.346802 0.334223 0.321580 0.308880 0.296125 0.283321 0.270461 0.257553 0.244603 0.231610 0.218578 0.205495 0.192363 0.179183 0.165959 0.152694 0.139391 0.126052 0.112681 0.099280 0.085853 0.072402 0.058930 0.045437 0.031927 0.018399 0.004857 -0.008701 -0.022271 -0.035855 -0.049451 -0.063059 -0.076677 -0.090304 -0.103936 -0.117567 -0.131194 -0.144809 -0.158404 -0.171971 -0.185499 -0.198976 -0.212390 -0.225725 -0.238968 -0.252106 -0.265126 -0.278016 -0.290762 -0.303353 -0.315776 -0.328018 -0.340067 -0.351910 -0.363537 -0.374935 -0.386090 -0.396988 -0.407612 -0.417945 -0.427963 -0.437642 -0.446959 -0.455886 -0.464396 -0.472462 -0.480055 -0.487140 -0.493683 -0.499641 -0.735139 0.726403 0.717433 0.708230 0.698802 0.689160 0.679311 0.669257 0.659007 0.648572 0.637953 0.627156 0.616189 0.605056 0.593765 0.582323 0.570735 0.559008 0.547146 0.535155 0.523037 0.510799 0.498442 0.485971 0.473391 0.460703 0.447912 0.435020 0.422032 0.408951 0.395779 0.382521 0.369180 0.355759 0.342263 0.328697 0.315070 0.301383 0.287645 0.273850 0.260001 0.246109 0.232170 0.218192 0.204160 0.190074 0.175938 0.161755 0.147528 0.133260 0.118954 0.104614 0.090242 0.075843 0.061417 0.046968 0.032496 0.018005 0.003494 -0.011035 -0.025581 -0.040143 -0.054721 -0.069314 -0.083922 -0.098542 -0.113170 -0.127801 -0.142429 -0.157048 -0.171648 -0.186220 -0.200753 -0.215234 -0.229646 -0.243976 -0.258208 -0.272328 -0.286321 -0.300174 -0.313874 -0.327407 -0.340759 -0.353917 -0.366868 -0.379599 -0.392097 -0.404350 -0.416344 -0.428064 -0.439495 -0.450619 -0.461414 -0.471856 -0.481921 -0.491584 -0.500818 -0.509596 -0.517887 -0.525656 -0.532866 -0.539475 -0.545438 -0.550714 -0.760442 0.750839 0.741007 0.730951 0.720679 0.710190 0.699492 0.688596 0.677502 0.666215 0.654744 0.643092 0.631261 0.619260 0.607092 0.594763 0.582280 0.569648 0.556872 0.543958 0.530910 0.517732 0.504430 0.491006 0.477465 0.463811 0.450047 0.436178 0.422206 0.408137 0.393972 0.379718 0.365376 0.350952 0.336451 0.321881 0.307249 0.292559 0.277811 0.263003 0.248149 0.233245 0.218299 0.203297 0.188238 0.173124 0.157960 0.142747 0.127491 0.112194 0.096860 0.081493 0.066094 0.050667 0.035213 0.019734 0.004231 -0.011293 -0.026838 -0.042403 -0.057989 -0.073593 -0.089217 -0.104857 -0.120509 -0.136169 -0.151830 -0.167484 -0.183123 -0.198736 -0.214311 -0.229833 -0.245287 -0.260656 -0.275923 -0.291072 -0.306089 -0.320959 -0.335665 -0.350195 -0.364532 -0.378665 -0.392577 -0.406256 -0.419688 -0.432859 -0.445756 -0.458364 -0.470669 -0.482651 -0.494293 -0.505571 -0.516462 -0.526943 -0.536987 -0.546568 -0.555653 -0.564207 -0.572192 -0.579566 -0.586282 -0.592293 -0.597556 -0.602030 -0.783707 0.773348 0.762767 0.751967 0.740943 0.729701 0.718245 0.706574 0.694699 0.682624 0.670349 0.657884 0.645229 0.632388 0.619366 0.606168 0.592801 0.579272 0.565587 0.551751 0.537770 0.523649 0.509394 0.495008 0.480497 0.465864 0.451115 0.436253 0.421282 0.406208 0.391033 0.375763 0.360402 0.344955 0.329429 0.313835 0.298176 0.282459 0.266675 0.250839 0.234951 0.219016 0.203027 0.186973 0.170861 0.154693 0.138473 0.122205 0.105894 0.089542 0.073152 0.056728 0.040272 0.023786 0.007271 -0.009270 -0.025837 -0.042429 -0.059045 -0.075685 -0.092349 -0.109034 -0.125737 -0.142452 -0.159174 -0.175894 -0.192602 -0.209289 -0.225941 -0.242544 -0.259079 -0.275530 -0.291879 -0.308107 -0.324198 -0.340136 -0.355905 -0.371489 -0.386871 -0.402037 -0.416972 -0.431661 -0.446091 -0.460246 -0.474114 -0.487679 -0.500926 -0.513839 -0.526398 -0.538586 -0.550382 -0.561761 -0.572699 -0.583171 -0.593142 -0.602579 -0.611443 -0.619691 -0.627277 -0.634152 -0.640264 -0.645565 -0.650009 -0.653563 -0.805354 0.794305 0.783045 0.771562 0.759858 0.747928 0.735768 0.723387 0.710780 0.697954 0.684918 0.671666 0.658211 0.644551 0.630690 0.616634 0.602391 0.587968 0.573373 0.558613 0.543695 0.528624 0.513407 0.498048 0.482554 0.466929 0.451179 0.435307 0.419320 0.403221 0.387017 0.370710 0.354308 0.337817 0.321247 0.304605 0.287901 0.271127 0.254290 0.237399 0.220456 0.203458 0.186392 0.169261 0.152069 0.134820 0.117519 0.100169 0.082774 0.065338 0.047863 0.030352 0.012806 -0.004772 -0.022381 -0.040020 -0.057688 -0.075385 -0.093111 -0.110864 -0.128641 -0.146437 -0.164245 -0.182057 -0.199864 -0.217656 -0.235418 -0.253136 -0.270793 -0.288368 -0.305842 -0.323196 -0.340413 -0.357473 -0.374359 -0.391054 -0.407541 -0.423802 -0.439823 -0.455587 -0.471079 -0.486287 -0.501194 -0.515787 -0.530049 -0.543964 -0.557517 -0.570689 -0.583463 -0.595819 -0.607733 -0.619178 -0.630124 -0.640536 -0.650376 -0.659603 -0.668170 -0.676027 -0.683119 -0.689388 -0.694781 -0.699250 -0.702760 -0.705291 -0.825686 0.813979 0.802074 0.789956 0.777609 0.765028 0.752214 0.739153 0.725857 0.712315 0.698535 0.684527 0.670286 0.655822 0.641135 0.626231 0.611117 0.595803 0.580297 0.564609 0.548747 0.532717 0.516527 0.500184 0.483692 0.467059 0.450291 0.433392 0.416368 0.399226 0.381969 0.364606 0.347141 0.329584 0.311948 0.294238 0.276460 0.258606 0.240695 0.222724 0.204699 0.186602 0.168433 0.150197 0.131898 0.113541 0.095131 0.076670 0.058163 0.039612 0.021019 0.002388 -0.016281 -0.034986 -0.053725 -0.072498 -0.091305 -0.110146 -0.129018 -0.147915 -0.166833 -0.185762 -0.204694 -0.223617 -0.242520 -0.261387 -0.280199 -0.298937 -0.317579 -0.336105 -0.354495 -0.372728 -0.390787 -0.408651 -0.426301 -0.443721 -0.460891 -0.477795 -0.494418 -0.510746 -0.526764 -0.542456 -0.557807 -0.572800 -0.587421 -0.601653 -0.615481 -0.628889 -0.641854 -0.654353 -0.666355 -0.677829 -0.688737 -0.699040 -0.708691 -0.717638 -0.725827 -0.733195 -0.739682 -0.745230 -0.749786 -0.753315 -0.755795 -0.757214 -0.844926 0.832581 0.820040 0.807299 0.794335 0.781132 0.767675 0.753971 0.740000 0.725772 0.711277 0.696523 0.681519 0.666261 0.650760 0.635016 0.619036 0.602831 0.586413 0.569792 0.552978 0.535979 0.518805 0.501462 0.483958 0.466300 0.448495 0.430549 0.412469 0.394261 0.375932 0.357489 0.338939 0.320297 0.301570 0.282770 0.263889 0.244937 0.225923 0.206850 0.187706 0.168481 0.149182 0.129813 0.110380 0.090887 0.071338 0.051736 0.032084 0.012386 -0.007357 -0.027143 -0.046969 -0.066836 -0.086742 -0.106688 -0.126672 -0.146690 -0.166737 -0.186804 -0.206883 -0.226964 -0.247033 -0.267076 -0.287075 -0.307010 -0.326859 -0.346598 -0.366207 -0.385663 -0.404946 -0.424034 -0.442908 -0.461547 -0.479931 -0.498042 -0.515864 -0.533382 -0.550581 -0.567445 -0.583959 -0.600106 -0.615871 -0.631240 -0.646198 -0.660732 -0.674823 -0.688451 -0.701588 -0.714203 -0.726262 -0.737728 -0.748556 -0.758694 -0.768085 -0.776668 -0.784378 -0.791150 -0.796921 -0.801636 -0.805256 -0.807757 -0.809125 -0.809360 -0.863234 0.850259 0.837090 0.823722 0.810140 0.796321 0.782247 0.767899 0.753282 0.738376 0.723191 0.707713 0.691955 0.675920 0.659612 0.643035 0.626194 0.609099 0.591766 0.574206 0.556431 0.538453 0.520281 0.501924 0.483391 0.464691 0.445830 0.426818 0.407660 0.388366 0.368941 0.349395 0.329739 0.309987 0.290148 0.270229 0.250223 0.230150 0.210008 0.189799 0.169503 0.149124 0.128667 0.108137 0.087541 0.066882 0.046163 0.025388 0.004559 -0.016320 -0.037247 -0.058221 -0.079242 -0.100308 -0.121419 -0.142574 -0.163766 -0.184988 -0.206233 -0.227491 -0.248748 -0.269991 -0.291204 -0.312366 -0.333453 -0.354444 -0.375313 -0.396037 -0.416594 -0.436960 -0.457113 -0.477031 -0.496693 -0.516077 -0.535165 -0.553943 -0.572394 -0.590503 -0.608254 -0.625630 -0.642617 -0.659199 -0.675365 -0.691101 -0.706392 -0.721221 -0.735565 -0.749397 -0.762684 -0.775391 -0.787478 -0.798895 -0.809585 -0.819486 -0.828531 -0.836652 -0.843782 -0.849853 -0.854805 -0.858595 -0.861196 -0.862593 -0.862784 -0.861782 -0.880774 0.867136 0.853331 0.839329 0.825121 0.810684 0.795987 0.781017 0.765752 0.750191 0.734319 0.718140 0.701641 0.684839 0.667733 0.650330 0.632631 0.614648 0.596395 0.577890 0.559145 0.540176 0.520992 0.501606 0.482028 0.462266 0.442331 0.422231 0.401975 0.381571 0.361028 0.340357 0.319571 0.298686 0.277712 0.256644 0.235494 0.214269 0.192977 0.171594 0.150118 0.128556 0.106912 0.085193 0.063404 0.041546 0.019626 -0.002355 -0.024393 -0.046486 -0.068632 -0.090832 -0.113084 -0.135386 -0.157737 -0.180129 -0.202555 -0.225005 -0.247468 -0.269931 -0.292378 -0.314790 -0.337144 -0.359416 -0.381581 -0.403614 -0.425488 -0.447181 -0.468666 -0.489921 -0.510920 -0.531642 -0.552065 -0.572171 -0.591945 -0.611371 -0.630433 -0.649113 -0.667398 -0.685272 -0.702723 -0.719737 -0.736303 -0.752406 -0.768028 -0.783147 -0.797733 -0.811754 -0.825174 -0.837946 -0.850017 -0.861326 -0.871803 -0.881382 -0.889990 -0.897556 -0.904008 -0.909283 -0.913330 -0.916119 -0.917631 -0.917861 -0.916821 -0.914544 -0.897708 0.883350 0.868868 0.854215 0.839361 0.824294 0.808976 0.793375 0.777476 0.761260 0.744716 0.727838 0.710619 0.693055 0.675161 0.656934 0.638382 0.619511 0.600336 0.580878 0.561155 0.541182 0.520973 0.500541 0.479899 0.459058 0.438027 0.416819 0.395441 0.373905 0.352221 0.330401 0.308464 0.286421 0.264284 0.242045 0.219725 0.197326 0.174843 0.152257 0.129574 0.106800 0.083941 0.061002 0.037987 0.014901 -0.008253 -0.031473 -0.054754 -0.078097 -0.101499 -0.124961 -0.148479 -0.172051 -0.195669 -0.219324 -0.243006 -0.266703 -0.290400 -0.314080 -0.337721 -0.361299 -0.384789 -0.408163 -0.431394 -0.454455 -0.477320 -0.499963 -0.522357 -0.544477 -0.566300 -0.587803 -0.608970 -0.629784 -0.650230 -0.670289 -0.689947 -0.709189 -0.728002 -0.746373 -0.764291 -0.781743 -0.798715 -0.815188 -0.831140 -0.846542 -0.861361 -0.875556 -0.889078 -0.901869 -0.913864 -0.924991 -0.935178 -0.944352 -0.952437 -0.959357 -0.965044 -0.969441 -0.972511 -0.974232 -0.974593 -0.973604 -0.971297 -0.967729 -0.914214 0.899051 0.883822 0.868475 0.852954 0.837228 0.821275 0.805043 0.788501 0.771633 0.754424 0.736851 0.718918 0.700607 0.681927 0.662883 0.643479 0.623719 0.603619 0.583202 0.562490 0.541501 0.520252 0.498758 0.477034 0.455093 0.432947 0.410608 0.388086 0.365395 0.342545 0.319553 0.296440 0.273218 0.249887 0.226456 0.202937 0.179337 0.155629 0.131811 0.107892 0.083877 0.059771 0.035581 0.011310 -0.013038 -0.037459 -0.061951 -0.086511 -0.111140 -0.135834 -0.160591 -0.185408 -0.210276 -0.235186 -0.260127 -0.285085 -0.310044 -0.334987 -0.359888 -0.384722 -0.409462 -0.434080 -0.458546 -0.482831 -0.506908 -0.530747 -0.554322 -0.577605 -0.600571 -0.623200 -0.645473 -0.667373 -0.688885 -0.709991 -0.730676 -0.750928 -0.770732 -0.790079 -0.808957 -0.827352 -0.845250 -0.862634 -0.879481 -0.895761 -0.911440 -0.926475 -0.940811 -0.954390 -0.967141 -0.978992 -0.989866 -0.999687 -1.008376 -1.015854 -1.022048 -1.026893 -1.030345 -1.032374 -1.032964 -1.032122 -1.029875 -1.026279 -1.021422 -0.930433 0.914389 0.898330 0.882216 0.865982 0.849571 0.832949 0.816074 0.798886 0.781360 0.763480 0.745222 0.726571 0.707523 0.688062 0.668204 0.647949 0.627302 0.606273 0.584890 0.563178 0.541160 0.518855 0.496283 0.473459 0.450398 0.427114 0.403622 0.379934 0.356063 0.332024 0.307837 0.283522 0.259094 0.234545 0.209898 0.185156 0.160315 0.135352 0.110275 0.085090 0.059803 0.034421 0.008947 -0.016612 -0.042254 -0.067976 -0.093775 -0.119650 -0.145599 -0.171618 -0.197703 -0.223845 -0.250035 -0.276260 -0.302506 -0.328756 -0.354990 -0.381183 -0.407305 -0.433330 -0.459227 -0.484965 -0.510513 -0.535841 -0.560918 -0.585715 -0.610205 -0.634361 -0.658161 -0.681587 -0.704622 -0.727250 -0.749453 -0.771219 -0.792534 -0.813386 -0.833765 -0.853660 -0.873057 -0.891941 -0.910295 -0.928098 -0.945319 -0.961921 -0.977858 -0.993075 -1.007509 -1.021089 -1.033739 -1.045381 -1.055933 -1.065314 -1.073443 -1.080240 -1.085636 -1.089573 -1.092016 -1.092941 -1.092349 -1.090262 -1.086730 -1.081840 -1.075700 -0.946416 0.929465 0.912509 0.895552 0.878539 0.861396 0.844072 0.826522 0.808678 0.790489 0.771927 0.752982 0.733616 0.713829 0.693597 0.672925 0.651819 0.630283 0.608323 0.585966 0.563244 0.540184 0.516808 0.493139 0.469195 0.444994 0.420551 0.395883 0.371004 0.345930 0.320677 0.295273 0.269732 0.244068 0.218279 0.192386 0.166395 0.140279 0.114033 0.087667 0.061186 0.034596 0.007905 -0.018883 -0.045764 -0.072734 -0.099791 -0.126932 -0.154156 -0.181458 -0.208833 -0.236272 -0.263766 -0.291301 -0.318861 -0.346430 -0.373985 -0.401499 -0.428943 -0.456286 -0.483499 -0.510547 -0.537397 -0.564017 -0.590374 -0.616438 -0.642179 -0.667571 -0.692592 -0.717221 -0.741441 -0.765236 -0.788590 -0.811490 -0.833924 -0.855880 -0.877349 -0.898319 -0.918777 -0.938707 -0.958094 -0.976913 -0.995137 -1.012725 -1.029629 -1.045792 -1.061151 -1.075633 -1.089159 -1.101648 -1.113016 -1.123179 -1.132053 -1.139554 -1.145603 -1.150134 -1.153101 -1.154473 -1.154241 -1.152421 -1.149057 -1.144229 -1.138045 -1.130634 -0.962199 0.944317 0.926442 0.908577 0.890718 0.872784 0.854714 0.836451 0.817925 0.799059 0.779815 0.760164 0.740088 0.719555 0.698555 0.677070 0.655114 0.632686 0.609791 0.586454 0.562711 0.538594 0.514132 0.489348 0.464264 0.438901 0.413277 0.387410 0.361316 0.335014 0.308525 0.281877 0.255089 0.228160 0.201108 0.173944 0.146666 0.119245 0.091688 0.064001 0.036193 0.008271 -0.019761 -0.047896 -0.076132 -0.104464 -0.132891 -0.161408 -0.190013 -0.218699 -0.247458 -0.276278 -0.305147 -0.334048 -0.362963 -0.391867 -0.420733 -0.449530 -0.478227 -0.506790 -0.535186 -0.563378 -0.591331 -0.619012 -0.646388 -0.673429 -0.700106 -0.726396 -0.752278 -0.777736 -0.802752 -0.827311 -0.851402 -0.875011 -0.898129 -0.920745 -0.942849 -0.964427 -0.985465 -1.005944 -1.025843 -1.045131 -1.063768 -1.081703 -1.098879 -1.115231 -1.130688 -1.145167 -1.158585 -1.170855 -1.181891 -1.191604 -1.199907 -1.206715 -1.211951 -1.215556 -1.217491 -1.217737 -1.216300 -1.213216 -1.208556 -1.202425 -1.194953 -1.186290 -0.977811 0.958973 0.940157 0.921361 0.902591 0.883811 0.864940 0.845921 0.826677 0.807113 0.787173 0.766811 0.746010 0.724731 0.702958 0.680665 0.657856 0.634532 0.610698 0.586373 0.561598 0.536411 0.510845 0.484928 0.458685 0.432139 0.405311 0.378221 0.350889 0.323335 0.295585 0.267668 0.239605 0.211387 0.183046 0.154586 0.125985 0.097229 0.068329 0.039293 0.010128 -0.019160 -0.048564 -0.078080 -0.107704 -0.137433 -0.167262 -0.197189 -0.227206 -0.257305 -0.287474 -0.317700 -0.347966 -0.378252 -0.408534 -0.438781 -0.468963 -0.499047 -0.528998 -0.558779 -0.588353 -0.617682 -0.646731 -0.675465 -0.703852 -0.731864 -0.759474 -0.786663 -0.813411 -0.839703 -0.865524 -0.890861 -0.915703 -0.940039 -0.963861 -0.987158 -1.009917 -1.032123 -1.053757 -1.074796 -1.095211 -1.114959 -1.133989 -1.152245 -1.169661 -1.186164 -1.201673 -1.216101 -1.229358 -1.241357 -1.252004 -1.261209 -1.268880 -1.274932 -1.279293 -1.281913 -1.282760 -1.281830 -1.279146 -1.274772 -1.268805 -1.261371 -1.252622 -1.242728 -0.993273 0.973460 0.953676 0.933930 0.914217 0.894535 0.874813 0.854988 0.834983 0.814700 0.794034 0.772960 0.751412 0.729387 0.706830 0.683729 0.660063 0.635842 0.611064 0.585743 0.559924 0.533653 0.506967 0.479897 0.452474 0.424724 0.396669 0.368333 0.339738 0.310907 0.281874 0.252665 0.223296 0.193769 0.164110 0.134320 0.104364 0.074245 0.043973 0.013556 -0.016999 -0.047683 -0.078493 -0.109423 -0.140470 -0.171628 -0.202893 -0.234259 -0.265718 -0.297256 -0.328861 -0.360515 -0.392198 -0.423884 -0.455543 -0.487141 -0.518645 -0.550018 -0.581222 -0.612218 -0.642965 -0.673426 -0.703565 -0.733348 -0.762745 -0.791728 -0.820276 -0.848369 -0.875993 -0.903131 -0.929772 -0.955903 -0.981517 -1.006604 -1.031153 -1.055152 -1.078587 -1.101437 -1.123679 -1.145282 -1.166205 -1.186395 -1.205797 -1.224345 -1.241967 -1.258581 -1.274098 -1.288428 -1.301477 -1.313153 -1.323358 -1.331997 -1.338977 -1.344212 -1.347640 -1.349216 -1.348923 -1.346771 -1.342810 -1.337128 -1.329847 -1.321116 -1.311104 -1.300001 -1.008599 0.987799 0.967022 0.946302 0.925629 0.905001 0.884383 0.863705 0.842899 0.821849 0.800448 0.778631 0.756337 0.733541 0.710199 0.686281 0.661757 0.636632 0.610904 0.584580 0.557707 0.530337 0.502513 0.474272 0.445649 0.416671 0.387367 0.357760 0.327878 0.297747 0.267406 0.236881 0.206178 0.175319 0.144316 0.113159 0.081818 0.050305 0.018630 -0.013200 -0.045175 -0.077289 -0.109538 -0.141916 -0.174418 -0.207038 -0.239770 -0.272605 -0.305533 -0.338537 -0.371602 -0.404704 -0.437820 -0.470918 -0.503962 -0.536918 -0.569748 -0.602412 -0.634869 -0.667076 -0.698994 -0.730584 -0.761812 -0.792645 -0.823053 -0.853014 -0.882509 -0.911520 -0.940033 -0.968034 -0.995514 -1.022463 -1.048872 -1.074732 -1.100032 -1.124756 -1.148884 -1.172391 -1.195245 -1.217405 -1.238821 -1.259435 -1.279184 -1.297996 -1.315789 -1.332474 -1.347958 -1.362146 -1.374941 -1.386244 -1.395954 -1.403971 -1.410199 -1.414561 -1.416998 -1.417477 -1.415995 -1.412585 -1.407323 -1.400322 -1.391726 -1.381704 -1.370446 -1.358156 -1.023807 1.002002 0.980216 0.958494 0.936842 0.915246 0.893686 0.872117 0.850461 0.828607 0.806445 0.783852 0.760808 0.737218 0.713085 0.688338 0.662955 0.636920 0.610235 0.582900 0.554961 0.526477 0.497499 0.468068 0.438223 0.407996 0.377419 0.346519 0.315325 0.283870 0.252195 0.220328 0.188267 0.156046 0.123672 0.091112 0.058357 0.025420 -0.007690 -0.040963 -0.074391 -0.107969 -0.141690 -0.175548 -0.209537 -0.243650 -0.277879 -0.312213 -0.346635 -0.381130 -0.415676 -0.450246 -0.484808 -0.519328 -0.553767 -0.588087 -0.622247 -0.656203 -0.689912 -0.723331 -0.756420 -0.789141 -0.821460 -0.853347 -0.884775 -0.915726 -0.946181 -0.976125 -1.005545 -1.034431 -1.062773 -1.090564 -1.117795 -1.144455 -1.170529 -1.195995 -1.220829 -1.244997 -1.268459 -1.291164 -1.313057 -1.334074 -1.354145 -1.373190 -1.391119 -1.407838 -1.423250 -1.437256 -1.449751 -1.460632 -1.469794 -1.477132 -1.482553 -1.485983 -1.487374 -1.486707 -1.483995 -1.479297 -1.472717 -1.464389 -1.454479 -1.443176 -1.430686 -1.417233 -1.038908 1.016083 0.993272 0.970524 0.947870 0.925288 0.902756 0.880253 0.857705 0.835018 0.812045 0.788669 0.764839 0.740454 0.715507 0.689923 0.663674 0.636722 0.609072 0.580719 0.551702 0.522090 0.491939 0.461299 0.430211 0.398713 0.366839 0.334621 0.302091 0.269288 0.236254 0.203017 0.169576 0.135966 0.102185 0.068191 0.033992 -0.000401 -0.034976 -0.069725 -0.104640 -0.139713 -0.174939 -0.210309 -0.245816 -0.281453 -0.317208 -0.353067 -0.389011 -0.425020 -0.461066 -0.497119 -0.533140 -0.569093 -0.604935 -0.640624 -0.676118 -0.711369 -0.746332 -0.780964 -0.815228 -0.849084 -0.882501 -0.915451 -0.947914 -0.979870 -1.011302 -1.042198 -1.072548 -1.102342 -1.131574 -1.160234 -1.188313 -1.215796 -1.242662 -1.268885 -1.294430 -1.319257 -1.343317 -1.366555 -1.388908 -1.410307 -1.430674 -1.449921 -1.467953 -1.484672 -1.499975 -1.513757 -1.525908 -1.536318 -1.544879 -1.551482 -1.556039 -1.558483 -1.558778 -1.556918 -1.552942 -1.546935 -1.539023 -1.529363 -1.518141 -1.505566 -1.491862 -1.477265 -1.053915 1.030053 1.006200 0.982410 0.958727 0.935139 0.911614 0.888138 0.864671 0.841106 0.817290 0.793107 0.768456 0.743272 0.717484 0.691057 0.663928 0.636054 0.607431 0.578051 0.547944 0.517188 0.485848 0.453978 0.421626 0.388834 0.355640 0.322079 0.288188 0.254014 0.219598 0.184960 0.150116 0.115089 0.079862 0.044405 0.008731 -0.027148 -0.063221 -0.099478 -0.135911 -0.172513 -0.209274 -0.246188 -0.283245 -0.320436 -0.357745 -0.395156 -0.432646 -0.470190 -0.507755 -0.545304 -0.582796 -0.620191 -0.657444 -0.694510 -0.731342 -0.767891 -0.804113 -0.839965 -0.875409 -0.910409 -0.944934 -0.978964 -1.012476 -1.045455 -1.077886 -1.109757 -1.141062 -1.171792 -1.201941 -1.231499 -1.260450 -1.288776 -1.316449 -1.343435 -1.369691 -1.395169 -1.419818 -1.443573 -1.466369 -1.488127 -1.508764 -1.528185 -1.546291 -1.562976 -1.578134 -1.591651 -1.603411 -1.613302 -1.621208 -1.627022 -1.630661 -1.632068 -1.631219 -1.628127 -1.622858 -1.615522 -1.606268 -1.595273 -1.582744 -1.568906 -1.554002 -1.538283 -1.068839 1.043923 1.019012 0.994161 0.969424 0.944811 0.920276 0.895799 0.871375 0.846895 0.822211 0.797181 0.771694 0.745684 0.719039 0.691756 0.663731 0.634931 0.605324 0.574907 0.543700 0.511785 0.479236 0.446117 0.412480 0.378370 0.343832 0.308904 0.273628 0.238057 0.202234 0.166168 0.129892 0.093420 0.056713 0.019762 -0.017418 -0.054814 -0.092416 -0.130213 -0.168197 -0.206358 -0.244687 -0.283176 -0.321814 -0.360588 -0.399480 -0.438468 -0.477527 -0.516625 -0.555724 -0.594783 -0.633759 -0.672606 -0.711279 -0.749728 -0.787904 -0.825758 -0.863246 -0.900326 -0.936959 -0.973114 -1.008765 -1.043890 -1.078472 -1.112495 -1.145948 -1.178821 -1.211109 -1.242804 -1.273898 -1.304378 -1.334224 -1.363408 -1.391896 -1.419645 -1.446608 -1.472732 -1.497957 -1.522215 -1.545434 -1.567531 -1.588413 -1.607982 -1.626131 -1.642751 -1.657726 -1.670936 -1.682262 -1.691584 -1.698782 -1.703753 -1.706423 -1.706744 -1.704706 -1.700349 -1.693764 -1.685084 -1.674478 -1.662146 -1.648313 -1.633222 -1.617132 -1.600314 -1.083687 1.057701 1.031715 1.005787 0.979975 0.954313 0.928752 0.903250 0.877833 0.852413 0.826826 0.800919 0.774574 0.747706 0.720200 0.692031 0.663100 0.633364 0.602765 0.571302 0.538981 0.505891 0.472117 0.437728 0.402782 0.367333 0.331426 0.295106 0.258420 0.221427 0.184169 0.146651 0.108915 0.070962 0.032745 -0.005729 -0.044446 -0.083391 -0.122554 -0.161923 -0.201489 -0.241241 -0.281170 -0.321265 -0.361514 -0.401900 -0.442401 -0.482991 -0.523640 -0.564311 -0.604959 -0.645542 -0.686013 -0.726324 -0.766425 -0.806265 -0.845793 -0.884961 -0.923724 -0.962042 -0.999878 -1.037204 -1.073999 -1.110241 -1.145914 -1.181005 -1.215506 -1.249409 -1.282709 -1.315399 -1.347466 -1.378889 -1.409645 -1.439698 -1.469004 -1.497515 -1.525180 -1.551940 -1.577730 -1.602476 -1.626100 -1.648515 -1.669620 -1.689311 -1.707475 -1.723996 -1.738751 -1.751613 -1.762459 -1.771161 -1.777600 -1.781678 -1.783329 -1.782518 -1.779253 -1.773602 -1.765680 -1.755641 -1.743676 -1.730005 -1.714872 -1.698537 -1.681276 -1.663384 -1.098464 1.071394 1.044317 1.017295 0.990392 0.963657 0.937050 0.910507 0.884068 0.857677 0.831154 0.804348 0.777113 0.749364 0.720979 0.691902 0.662054 0.631366 0.599765 0.567244 0.533799 0.499518 0.464499 0.428819 0.392544 0.355730 0.318430 0.280693 0.242573 0.204132 0.165411 0.126420 0.087194 0.047724 0.007967 -0.032062 -0.072346 -0.112872 -0.153628 -0.194600 -0.235780 -0.277155 -0.318715 -0.360448 -0.402338 -0.444363 -0.486499 -0.528715 -0.570974 -0.613233 -0.655447 -0.697567 -0.739546 -0.781331 -0.822872 -0.864112 -0.905002 -0.945494 -0.985544 -1.025113 -1.064169 -1.102687 -1.140645 -1.178025 -1.214814 -1.251000 -1.286578 -1.321542 -1.355885 -1.389596 -1.422657 -1.455044 -1.486721 -1.517647 -1.547772 -1.577043 -1.605404 -1.632791 -1.659132 -1.684352 -1.708366 -1.731078 -1.752384 -1.772172 -1.790323 -1.806711 -1.821207 -1.833680 -1.844000 -1.852034 -1.857663 -1.860800 -1.861385 -1.859398 -1.854872 -1.847903 -1.838624 -1.827213 -1.813882 -1.798872 -1.782442 -1.764872 -1.746459 -1.727520 -1.113168 1.085007 1.056825 1.028693 1.000681 0.972851 0.945179 0.917580 0.890093 0.862700 0.835218 0.807485 0.779329 0.750680 0.721389 0.691389 0.660605 0.628948 0.596335 0.562746 0.528162 0.492675 0.456393 0.419401 0.381773 0.343572 0.304854 0.265675 0.226096 0.186183 0.145970 0.105477 0.064736 0.023712 -0.017616 -0.059230 -0.101113 -0.143251 -0.185630 -0.228238 -0.271063 -0.314094 -0.357317 -0.400719 -0.444278 -0.487970 -0.531766 -0.575629 -0.619516 -0.663381 -0.707175 -0.750848 -0.794347 -0.837620 -0.880609 -0.923262 -0.965526 -1.007355 -1.048706 -1.089544 -1.129839 -1.169570 -1.208714 -1.247257 -1.285188 -1.322498 -1.359183 -1.395237 -1.430651 -1.465408 -1.499484 -1.532846 -1.565453 -1.597255 -1.628198 -1.658226 -1.687276 -1.715279 -1.742161 -1.767841 -1.792229 -1.815220 -1.836706 -1.856565 -1.874673 -1.890895 -1.905095 -1.917138 -1.926885 -1.934201 -1.938973 -1.941121 -1.940595 -1.937393 -1.931579 -1.923266 -1.912613 -1.899819 -1.885117 -1.868765 -1.851041 -1.832247 -1.812705 -1.792749 -1.127789 1.098540 1.069243 1.039986 1.010849 0.981903 0.953146 0.924476 0.895919 0.867495 0.839034 0.810341 0.781244 0.751667 0.721446 0.690507 0.658764 0.626122 0.592488 0.557815 0.522081 0.485372 0.447806 0.409481 0.370477 0.330864 0.290704 0.250058 0.208997 0.167587 0.125852 0.083830 0.041541 -0.001067 -0.043996 -0.087225 -0.130739 -0.174520 -0.218556 -0.262831 -0.307334 -0.352052 -0.396971 -0.442070 -0.487327 -0.532713 -0.578192 -0.623723 -0.669257 -0.714745 -0.760135 -0.805375 -0.850409 -0.895181 -0.939633 -0.983710 -1.027362 -1.070543 -1.113212 -1.155339 -1.196896 -1.237860 -1.278215 -1.317948 -1.357049 -1.395514 -1.433338 -1.470512 -1.507022 -1.542845 -1.577952 -1.612299 -1.645840 -1.678520 -1.710280 -1.741060 -1.770792 -1.799403 -1.826815 -1.852943 -1.877688 -1.900941 -1.922585 -1.942491 -1.960525 -1.976547 -1.990414 -2.001984 -2.011112 -2.017663 -2.021532 -2.022644 -2.020965 -2.016515 -2.009383 -1.999706 -1.987663 -1.973475 -1.957395 -1.939699 -1.920687 -1.900684 -1.880036 -1.859099 -1.142290 1.111987 1.081574 1.051180 1.020902 0.990821 0.960961 0.931201 0.901556 0.872075 0.842609 0.812929 0.782872 0.752335 0.721167 0.689265 0.656545 0.622899 0.588232 0.552461 0.515564 0.477614 0.438747 0.399067 0.358665 0.317616 0.275989 0.233850 0.191281 0.148347 0.105066 0.061487 0.017615 -0.026608 -0.071168 -0.116045 -0.161220 -0.206676 -0.252400 -0.298375 -0.344589 -0.391026 -0.437671 -0.484498 -0.531481 -0.578585 -0.625770 -0.672987 -0.720187 -0.767315 -0.814319 -0.861142 -0.907725 -0.954009 -0.999937 -1.045454 -1.090509 -1.135060 -1.179068 -1.222505 -1.265346 -1.307569 -1.349162 -1.390112 -1.430414 -1.470065 -1.509057 -1.547377 -1.585006 -1.621914 -1.658062 -1.693402 -1.727881 -1.761439 -1.794015 -1.825542 -1.855948 -1.885160 -1.913093 -1.939656 -1.964745 -1.988241 -2.010021 -2.029948 -2.047879 -2.063666 -2.077162 -2.088217 -2.096681 -2.102422 -2.105342 -2.105375 -2.102502 -2.096773 -2.088299 -2.077236 -2.063787 -2.048196 -2.030731 -2.011690 -1.991398 -1.970205 -1.948479 -1.926603 -1.156634 1.125326 1.093814 1.062277 1.030845 0.999613 0.968628 0.937764 0.907013 0.876452 0.845955 0.815265 0.784224 0.752698 0.720564 0.687674 0.653960 0.619289 0.583575 0.546693 0.508618 0.469412 0.429222 0.388166 0.346342 0.303833 0.260713 0.217058 0.172955 0.128469 0.083619 0.038456 -0.007036 -0.052905 -0.099127 -0.145682 -0.192550 -0.239714 -0.287158 -0.334866 -0.382823 -0.431013 -0.479413 -0.527997 -0.576732 -0.625579 -0.674491 -0.723415 -0.772299 -0.821086 -0.869720 -0.918141 -0.966288 -1.014101 -1.061521 -1.108493 -1.154970 -1.200910 -1.246280 -1.291049 -1.335197 -1.378706 -1.421564 -1.463762 -1.505297 -1.546164 -1.586352 -1.625843 -1.664610 -1.702616 -1.739816 -1.776154 -1.811574 -1.846011 -1.879399 -1.911668 -1.942744 -1.972548 -2.000994 -2.027981 -2.053398 -2.077120 -2.099014 -2.118936 -2.136734 -2.152253 -2.165339 -2.175836 -2.183591 -2.188478 -2.190404 -2.189316 -2.185215 -2.178178 -2.168335 -2.155868 -2.141000 -2.123994 -2.105138 -2.084755 -2.063194 -2.040831 -2.018064 -1.995297 -1.170815 1.138518 1.105954 1.073277 1.040681 1.008284 0.976154 0.944169 0.912297 0.880633 0.849081 0.817362 0.785311 0.752775 0.719650 0.685748 0.651019 0.615303 0.578523 0.540517 0.501250 0.460771 0.419239 0.376785 0.333516 0.289522 0.244885 0.199688 0.154026 0.107960 0.061516 0.014739 -0.032408 -0.079953 -0.127868 -0.176133 -0.224727 -0.273631 -0.322828 -0.372301 -0.422034 -0.472007 -0.522194 -0.572562 -0.623076 -0.673688 -0.724348 -0.774999 -0.825587 -0.876052 -0.926333 -0.976369 -1.026097 -1.075454 -1.124382 -1.172828 -1.220747 -1.268099 -1.314851 -1.360978 -1.406460 -1.451282 -1.495434 -1.538911 -1.581711 -1.623823 -1.665233 -1.705915 -1.745837 -1.784953 -1.823211 -1.860554 -1.896917 -1.932232 -1.966430 -1.999437 -2.031178 -2.061569 -2.090517 -2.117917 -2.143649 -2.167578 -2.189565 -2.209455 -2.227088 -2.242305 -2.254943 -2.264839 -2.271842 -2.275832 -2.276721 -2.274471 -2.269110 -2.260737 -2.249504 -2.235614 -2.219313 -2.200880 -2.180630 -2.158909 -2.136093 -2.112588 -2.088820 -2.065216 -1.184818 1.151549 1.117963 1.084177 1.050413 1.016837 0.983545 0.950422 0.917412 0.884626 0.851992 0.819227 0.786139 0.752576 0.718433 0.683499 0.647734 0.610950 0.573085 0.533940 0.493467 0.451697 0.408804 0.364930 0.320192 0.274689 0.228510 0.181747 0.134500 0.086826 0.038759 -0.009662 -0.058497 -0.107748 -0.157389 -0.207396 -0.257747 -0.308423 -0.359406 -0.410678 -0.462220 -0.514007 -0.566008 -0.618189 -0.670505 -0.722906 -0.775335 -0.827735 -0.880046 -0.932207 -0.984154 -1.035822 -1.087147 -1.138066 -1.188521 -1.238462 -1.287845 -1.336630 -1.384790 -1.432299 -1.479142 -1.525305 -1.570783 -1.615572 -1.659666 -1.703050 -1.745704 -1.787597 -1.828687 -1.868923 -1.908248 -1.946599 -1.983907 -2.020099 -2.055104 -2.088848 -2.121248 -2.152220 -2.181664 -2.209466 -2.235496 -2.259616 -2.281672 -2.301504 -2.318943 -2.333822 -2.345972 -2.355226 -2.361435 -2.364484 -2.364295 -2.360848 -2.354196 -2.344460 -2.331816 -2.316486 -2.298735 -2.278867 -2.257221 -2.234169 -2.210118 -2.185504 -2.160782 -2.136392 -1.198617 1.164417 1.129814 1.094961 1.060039 1.025276 0.990804 0.956527 0.922364 0.888435 0.854698 0.820866 0.786718 0.752110 0.716919 0.680938 0.644112 0.606241 0.567268 0.526970 0.485276 0.442198 0.397923 0.352607 0.306376 0.259340 0.211594 0.163240 0.114384 0.065072 0.015355 -0.034747 -0.085299 -0.136288 -0.187685 -0.239466 -0.291608 -0.344090 -0.396892 -0.449996 -0.503377 -0.557008 -0.610853 -0.664872 -0.719016 -0.773227 -0.827447 -0.881617 -0.935672 -0.989549 -1.043179 -1.096498 -1.149439 -1.201938 -1.253941 -1.305399 -1.356267 -1.406510 -1.456101 -1.505020 -1.553252 -1.600788 -1.647624 -1.693756 -1.739171 -1.783852 -1.827772 -1.870890 -1.913161 -1.954526 -1.994925 -2.034287 -2.072541 -2.109610 -2.145422 -2.179898 -2.212956 -2.244504 -2.274435 -2.302626 -2.328942 -2.353232 -2.375336 -2.395082 -2.412295 -2.426801 -2.438425 -2.446996 -2.452370 -2.454436 -2.453129 -2.448451 -2.440479 -2.429356 -2.415279 -2.398491 -2.379277 -2.357966 -2.334924 -2.310552 -2.285291 -2.259608 -2.233981 -2.208859 -1.212153 1.177098 1.141508 1.105601 1.069553 1.033600 0.997936 0.962489 0.927156 0.892066 0.857207 0.822287 0.787056 0.751382 0.715118 0.678071 0.640157 0.601184 0.561079 0.519613 0.476682 0.432279 0.386601 0.339820 0.292074 0.243479 0.194141 0.144171 0.093679 0.042703 -0.008693 -0.060510 -0.112812 -0.165570 -0.218756 -0.272344 -0.326309 -0.380629 -0.435284 -0.490251 -0.545503 -0.601008 -0.656725 -0.712608 -0.768602 -0.824647 -0.880682 -0.936642 -0.992462 -1.048073 -1.103407 -1.158395 -1.212971 -1.267072 -1.320645 -1.373640 -1.426017 -1.477742 -1.528792 -1.579149 -1.628800 -1.677740 -1.725966 -1.773469 -1.820233 -1.866233 -1.911436 -1.955795 -1.999258 -2.041761 -2.083239 -2.123616 -2.162816 -2.200763 -2.237381 -2.272589 -2.306301 -2.338419 -2.368829 -2.397399 -2.423985 -2.448427 -2.470555 -2.490188 -2.507144 -2.521242 -2.532300 -2.540149 -2.544646 -2.545689 -2.543228 -2.537287 -2.527967 -2.515434 -2.499903 -2.481638 -2.460949 -2.438190 -2.413755 -2.388080 -2.361639 -2.334929 -2.308447 -2.282649 -1.225352 1.189553 1.153035 1.116081 1.078942 1.041810 1.004942 0.968311 0.931793 0.895524 0.859524 0.823495 0.787164 0.750397 0.713042 0.674903 0.635880 0.595786 0.554527 0.511876 0.467692 0.421945 0.374844 0.326576 0.277291 0.227113 0.176156 0.124545 0.072388 0.019724 -0.033379 -0.086950 -0.141032 -0.195592 -0.250599 -0.306026 -0.361847 -0.418039 -0.474580 -0.531442 -0.588596 -0.646003 -0.703620 -0.761392 -0.819261 -0.877164 -0.935035 -0.992808 -1.050413 -1.107778 -1.164835 -1.221513 -1.277744 -1.333469 -1.388633 -1.443190 -1.497100 -1.550334 -1.602870 -1.654693 -1.705795 -1.756172 -1.805818 -1.854719 -1.902856 -1.950196 -1.996699 -2.042312 -2.086977 -2.130626 -2.173188 -2.214583 -2.254731 -2.293556 -2.330981 -2.366920 -2.401284 -2.433968 -2.464848 -2.493785 -2.520626 -2.545201 -2.567329 -2.586821 -2.603488 -2.617142 -2.627597 -2.634683 -2.638264 -2.638246 -2.634595 -2.627361 -2.616668 -2.602701 -2.585694 -2.565935 -2.543759 -2.519550 -2.493731 -2.466774 -2.439187 -2.411495 -2.384210 -2.357789 -1.238167 1.201721 1.164366 1.126403 1.088181 1.049901 1.011824 0.973996 0.936278 0.898814 0.861655 0.824494 0.787046 0.749163 0.710699 0.671442 0.631288 0.590053 0.547617 0.503764 0.458309 0.411202 0.362657 0.312880 0.262030 0.210243 0.157643 0.104364 0.050514 -0.003864 -0.058707 -0.114065 -0.169959 -0.226352 -0.283212 -0.340511 -0.398222 -0.456319 -0.514778 -0.573567 -0.632652 -0.691992 -0.751534 -0.811221 -0.870989 -0.930773 -0.990504 -1.050111 -1.109521 -1.168663 -1.227463 -1.285851 -1.343760 -1.401131 -1.457910 -1.514052 -1.569520 -1.624289 -1.678340 -1.731660 -1.784245 -1.836090 -1.887185 -1.937511 -1.987043 -2.035742 -2.083559 -2.130439 -2.176317 -2.221120 -2.264770 -2.307185 -2.348285 -2.387991 -2.426222 -2.462891 -2.497905 -2.531150 -2.562492 -2.591785 -2.618865 -2.643553 -2.665658 -2.684980 -2.701325 -2.714500 -2.724314 -2.730599 -2.733225 -2.732108 -2.727235 -2.718680 -2.706588 -2.691163 -2.672659 -2.651390 -2.627720 -2.602059 -2.574869 -2.546657 -2.517962 -2.489334 -2.461298 -2.434307 -1.250594 1.213552 1.175454 1.136559 1.097258 1.057860 1.018583 0.979546 0.940614 0.901940 0.863604 0.825289 0.786708 0.747685 0.708095 0.667696 0.626392 0.583991 0.540355 0.495283 0.448540 0.400053 0.350045 0.298734 0.246296 0.192875 0.138606 0.083633 0.028061 -0.028060 -0.084675 -0.141853 -0.199590 -0.257849 -0.316595 -0.375800 -0.435433 -0.495468 -0.555876 -0.616624 -0.677671 -0.738970 -0.800464 -0.862092 -0.923784 -0.985473 -1.047086 -1.108549 -1.169787 -1.230726 -1.291291 -1.351411 -1.411020 -1.470060 -1.528478 -1.586229 -1.643283 -1.699615 -1.755210 -1.810059 -1.864159 -1.917502 -1.970073 -2.021849 -2.072797 -2.122871 -2.172018 -2.220176 -2.267276 -2.313240 -2.357983 -2.401423 -2.443476 -2.484065 -2.523104 -2.560505 -2.596166 -2.629964 -2.661760 -2.691397 -2.718702 -2.743483 -2.765538 -2.784662 -2.800654 -2.813314 -2.822451 -2.827898 -2.829531 -2.827280 -2.821154 -2.811250 -2.797733 -2.780826 -2.760806 -2.738013 -2.712841 -2.685733 -2.657189 -2.627751 -2.597988 -2.568474 -2.539737 -2.512225 -1.262696 1.225028 1.186248 1.146513 1.106177 1.065668 1.025216 0.984964 0.944803 0.904905 0.865373 0.825885 0.786155 0.745968 0.705234 0.663670 0.621196 0.577608 0.532747 0.486438 0.438389 0.388505 0.337010 0.284144 0.230092 0.175012 0.119047 0.062354 0.005032 -0.052861 -0.111283 -0.170312 -0.229924 -0.290081 -0.350747 -0.411889 -0.473478 -0.535484 -0.597874 -0.660611 -0.723649 -0.786936 -0.850409 -0.914002 -0.977644 -1.041261 -1.104780 -1.168121 -1.231208 -1.293966 -1.356318 -1.418193 -1.479526 -1.540258 -1.600339 -1.659726 -1.718392 -1.776317 -1.833487 -1.889898 -1.945544 -2.000413 -2.054487 -2.107735 -2.160117 -2.211583 -2.262074 -2.311523 -2.359853 -2.406984 -2.452826 -2.497294 -2.540305 -2.581779 -2.621628 -2.659761 -2.696066 -2.730413 -2.762654 -2.792624 -2.820136 -2.844988 -2.866969 -2.885866 -2.901472 -2.913584 -2.922007 -2.926579 -2.927183 -2.923764 -2.916356 -2.905076 -2.890109 -2.871695 -2.850140 -2.825812 -2.799135 -2.770588 -2.740711 -2.710079 -2.679291 -2.648939 -2.619550 -2.591557 +0.234756 0.235098 0.235255 0.235221 0.234993 0.234569 0.233948 0.233132 0.232126 0.230935 0.229565 0.228026 0.226326 0.224475 0.222484 0.220367 0.218143 0.215830 0.213440 0.210985 0.208473 0.205897 0.203249 0.200520 0.197693 0.194748 0.191672 0.188451 0.185067 0.181496 0.177711 0.173674 0.169360 0.164764 0.159907 0.154797 0.149434 0.143835 0.138024 0.132018 0.125825 0.119455 0.112914 0.106220 0.099398 0.092467 0.085443 0.078340 0.071172 0.063949 0.056685 0.049388 +0.301210 0.300178 0.298869 0.297294 0.295464 0.293395 0.291107 0.288627 0.285985 0.283218 0.280362 0.277443 0.274473 0.271460 0.268391 0.265247 0.262007 0.258643 0.255130 0.251439 0.247532 0.243356 0.238852 0.233954 0.228637 0.222926 0.216830 0.210353 0.203516 0.196365 0.188917 0.181179 0.173159 0.164881 0.156385 0.147701 0.138854 0.129865 0.120751 0.111530 0.102214 0.092819 0.083356 0.073836 0.064271 0.054670 0.045044 0.035403 0.025754 0.016104 0.006460 -0.003173 +0.368432 0.365580 0.362520 0.359307 0.355993 0.352622 0.349221 0.345797 0.342334 0.338808 0.335182 0.331415 0.327457 0.323254 0.318711 0.313719 0.308189 0.302102 0.295450 0.288217 0.280436 0.272167 0.263431 0.254243 0.244639 0.234678 0.224405 0.213869 0.203103 0.192134 0.180973 0.169639 0.158152 0.146528 0.134784 0.122931 0.110984 0.098957 0.086862 0.074712 0.062520 0.050300 0.038061 0.025814 0.013566 0.001323 -0.010909 -0.023120 -0.035298 -0.047426 -0.059484 -0.071448 +0.437544 0.433904 0.430278 0.426640 0.422940 0.419113 0.415089 0.410773 0.406018 0.400690 0.394702 0.387999 0.380509 0.372237 0.363246 0.353556 0.343190 0.332211 0.320701 0.308737 0.296376 0.283672 0.270674 0.257422 0.243937 0.230244 0.216365 0.202316 0.188092 0.173710 0.159188 0.144540 0.129783 0.114933 0.100004 0.085011 0.069970 0.054894 0.039795 0.024683 0.009565 -0.005552 -0.020663 -0.035756 -0.050818 -0.065828 -0.080761 -0.095585 -0.110260 -0.124736 -0.138960 -0.152872 +0.516328 0.512429 0.508094 0.503177 0.497562 0.491132 0.483752 0.475370 0.466005 0.455647 0.444344 0.432201 0.419336 0.405845 0.391808 0.377291 0.362349 0.347030 0.331374 0.315414 0.299182 0.282710 0.266026 0.249137 0.232071 0.214846 0.197454 0.179904 0.162213 0.144399 0.126478 0.108467 0.090382 0.072240 0.054055 0.035842 0.017608 -0.000638 -0.018892 -0.037145 -0.055386 -0.073597 -0.091750 -0.109810 -0.127731 -0.145456 -0.162918 -0.180051 -0.196784 -0.213050 -0.228774 -0.243872 +0.601387 0.594193 0.585824 0.576185 0.565236 0.553073 0.539859 0.525730 0.510799 0.495162 0.478901 0.462084 0.444769 0.427006 0.408839 0.390303 0.371429 0.352242 0.332767 0.313031 0.293070 0.272910 0.252557 0.232040 0.211368 0.190524 0.169524 0.148386 0.127130 0.105773 0.084335 0.062833 0.041284 0.019697 -0.001917 -0.023554 -0.045208 -0.066868 -0.088516 -0.110121 -0.131639 -0.153015 -0.174175 -0.195039 -0.215526 -0.235556 -0.255049 -0.273925 -0.292101 -0.309478 -0.325924 -0.341278 +0.676693 0.663493 0.649128 0.633734 0.617406 0.600231 0.582286 0.563646 0.544379 0.524544 0.504195 0.483376 0.462125 0.440472 0.418443 0.396064 0.373358 0.350349 0.327062 0.303536 0.279804 0.255874 0.231775 0.207513 0.183064 0.158448 0.133686 0.108799 0.083811 0.058741 0.033605 0.008415 -0.016820 -0.042096 -0.067406 -0.092739 -0.118066 -0.143344 -0.168514 -0.193496 -0.218193 -0.242505 -0.266339 -0.289603 -0.312201 -0.334045 -0.355042 -0.375084 -0.394026 -0.411691 -0.427876 -0.442359 +0.735696 0.717971 0.699319 0.679810 0.659490 0.638420 0.616641 0.594205 0.571164 0.547566 0.523450 0.498848 0.473790 0.448305 0.422421 0.396163 0.369559 0.342637 0.315437 0.288007 0.260360 0.232526 0.204512 0.176287 0.147873 0.119295 0.090579 0.061750 0.032826 0.003821 -0.025256 -0.054398 -0.083602 -0.112854 -0.142121 -0.171350 -0.200467 -0.229372 -0.257947 -0.286074 -0.313640 -0.340537 -0.366661 -0.391907 -0.416171 -0.439342 -0.461284 -0.481820 -0.500752 -0.517862 -0.532889 -0.545514 +0.784285 0.763334 0.741493 0.718779 0.695217 0.670850 0.645715 0.619836 0.593258 0.566032 0.538206 0.509821 0.480917 0.451528 0.421690 0.391435 0.360798 0.329819 0.298558 0.267054 0.235326 0.203399 0.171229 0.138837 0.106253 0.073508 0.040624 0.007621 -0.025491 -0.058700 -0.092007 -0.125399 -0.158843 -0.192280 -0.225631 -0.258782 -0.291594 -0.323928 -0.355648 -0.386628 -0.416743 -0.445877 -0.473917 -0.500747 -0.526240 -0.550247 -0.572594 -0.593073 -0.611418 -0.627302 -0.640346 -0.650149 +0.826266 0.802658 0.778188 0.752782 0.726411 0.699073 0.670805 0.641636 0.611601 0.580767 0.549205 0.516976 0.484132 0.450723 0.416794 0.382388 0.347553 0.312353 0.276858 0.241089 0.205091 0.168820 0.132281 0.095509 0.058537 0.021390 -0.015913 -0.053359 -0.090942 -0.128658 -0.166478 -0.204347 -0.242184 -0.279875 -0.317269 -0.354198 -0.390504 -0.426033 -0.460636 -0.494179 -0.526540 -0.557600 -0.587232 -0.615312 -0.641708 -0.666239 -0.688659 -0.708659 -0.725848 -0.739762 -0.749926 -0.755987 +0.863809 0.837677 0.810735 0.782840 0.753864 0.723759 0.692505 0.660143 0.626704 0.592259 0.556910 0.520749 0.483849 0.446280 0.408103 0.369376 0.330166 0.290566 0.250636 0.210419 0.169909 0.129068 0.087938 0.046556 0.004949 -0.036860 -0.078857 -0.121038 -0.163388 -0.205862 -0.248386 -0.290853 -0.333115 -0.374988 -0.416283 -0.456817 -0.496411 -0.534898 -0.572141 -0.608017 -0.642397 -0.675163 -0.706208 -0.735403 -0.762552 -0.787386 -0.809541 -0.828540 -0.843850 -0.854935 -0.861381 -0.863009 +0.898284 0.869454 0.839959 0.809582 0.778078 0.745308 0.711195 0.675718 0.638918 0.600851 0.561654 0.521459 0.480375 0.438494 0.395899 0.352671 0.308904 0.264717 0.220154 0.175268 0.129994 0.084356 0.038399 -0.007845 -0.054349 -0.101097 -0.148080 -0.195274 -0.242618 -0.290022 -0.337354 -0.384434 -0.431053 -0.476994 -0.522046 -0.566004 -0.608688 -0.649962 -0.689695 -0.727766 -0.764072 -0.798514 -0.830961 -0.861212 -0.888968 -0.913802 -0.935169 -0.952485 -0.965155 -0.972683 -0.974811 -0.971542 +0.931027 0.898924 0.866582 0.833560 0.799502 0.764091 0.727171 0.688643 0.648509 0.606810 0.563696 0.519359 0.473951 0.427596 0.380407 0.332488 0.283976 0.234992 0.185599 0.135791 0.085524 0.034851 -0.016186 -0.067553 -0.119230 -0.171200 -0.223433 -0.275854 -0.328360 -0.380798 -0.432958 -0.484607 -0.535499 -0.585388 -0.634048 -0.681289 -0.726965 -0.770950 -0.813132 -0.853422 -0.891721 -0.927900 -0.961752 -0.992944 -1.021004 -1.045347 -1.065338 -1.080327 -1.089724 -1.093146 -1.090502 -1.082097 +0.962814 0.927055 0.891330 0.855331 0.818549 0.780439 0.740704 0.699156 0.655695 0.610347 0.563246 0.514652 0.464772 0.413774 0.361803 0.309002 0.255555 0.201569 0.147124 0.092140 0.036641 -0.019316 -0.075690 -0.132453 -0.189578 -0.247028 -0.304724 -0.362549 -0.420330 -0.477836 -0.534810 -0.590971 -0.646043 -0.699775 -0.751962 -0.802449 -0.851114 -0.897856 -0.942592 -0.985226 -1.025625 -1.063577 -1.098723 -1.130576 -1.158523 -1.181885 -1.199963 -1.212073 -1.217675 -1.216529 -1.208810 -1.195215 +0.993908 0.954307 0.914846 0.875441 0.835616 0.794668 0.752042 0.707449 0.660663 0.611639 0.560476 0.507502 0.452996 0.397179 0.340238 0.282362 0.223775 0.164585 0.104835 0.044439 -0.016537 -0.078034 -0.140014 -0.202441 -0.265270 -0.328420 -0.391766 -0.455121 -0.518236 -0.580827 -0.642586 -0.703201 -0.762395 -0.819940 -0.875671 -0.929464 -0.981224 -1.030875 -1.078327 -1.123440 -1.165991 -1.205616 -1.241827 -1.274006 -1.301438 -1.323379 -1.339064 -1.347795 -1.349133 -1.343056 -1.330112 -1.311369 +1.024461 0.980866 0.937489 0.894329 0.851104 0.807089 0.761450 0.713718 0.663572 0.610828 0.555529 0.498048 0.438759 0.377943 0.315838 0.252695 0.188759 0.124161 0.058841 -0.007210 -0.073915 -0.141218 -0.209068 -0.277414 -0.346176 -0.415225 -0.484368 -0.553339 -0.621832 -0.689513 -0.756036 -0.821091 -0.884420 -0.945840 -1.005217 -1.062459 -1.117496 -1.170247 -1.220568 -1.268222 -1.312850 -1.353975 -1.390993 -1.423175 -1.449734 -1.469842 -1.482671 -1.487557 -1.484225 -1.472977 -1.454750 -1.430950 +1.054590 1.006869 0.959390 0.912273 0.865327 0.817945 0.769108 0.718128 0.664559 0.608041 0.548527 0.486411 0.422175 0.356176 0.288713 0.220109 0.150621 0.080364 0.009228 -0.062727 -0.135421 -0.208788 -0.282763 -0.357268 -0.432177 -0.507295 -0.582348 -0.657008 -0.730921 -0.803708 -0.875019 -0.944558 -1.012114 -1.077537 -1.140727 -1.201620 -1.260146 -1.316165 -1.369430 -1.419584 -1.466168 -1.508604 -1.546178 -1.578077 -1.603417 -1.621283 -1.630806 -1.631424 -1.623105 -1.606538 -1.583019 -1.554263 +1.084384 1.032402 0.980656 0.929428 0.878503 0.827493 0.775237 0.720856 0.663743 0.603390 0.539578 0.472693 0.403344 0.331975 0.258956 0.184692 0.109434 0.033260 -0.043935 -0.122047 -0.200986 -0.280670 -0.361019 -0.441912 -0.523161 -0.604491 -0.685556 -0.765983 -0.845366 -0.923312 -0.999480 -1.073615 -1.145544 -1.215149 -1.282366 -1.347138 -1.409337 -1.468718 -1.524920 -1.577499 -1.625906 -1.669470 -1.707377 -1.738711 -1.762486 -1.777700 -1.783498 -1.779477 -1.765941 -1.743955 -1.715150 -1.681534 +1.113896 1.057533 1.001379 0.945871 0.890777 0.835898 0.780002 0.722055 0.661259 0.596974 0.528773 0.456982 0.382346 0.305415 0.226642 0.146505 0.065268 -0.017088 -0.100589 -0.185110 -0.270547 -0.356805 -0.443771 -0.531267 -0.619028 -0.706698 -0.793883 -0.880160 -0.965092 -1.048286 -1.129434 -1.208322 -1.284809 -1.358817 -1.430301 -1.499152 -1.565142 -1.627912 -1.687017 -1.741935 -1.792041 -1.836566 -1.874588 -1.905074 -1.926934 -1.939097 -1.940785 -1.931820 -1.912886 -1.885403 -1.851321 -1.812957 +1.143093 1.082307 1.021619 0.961668 0.902254 0.843302 0.783557 0.721843 0.657210 0.588882 0.516187 0.439348 0.359250 0.276561 0.191837 0.105614 0.018160 -0.070628 -0.160683 -0.251867 -0.344060 -0.437146 -0.530963 -0.625261 -0.719689 -0.813833 -0.907253 -0.999480 -1.090067 -1.178640 -1.264932 -1.348761 -1.430027 -1.508684 -1.584649 -1.657726 -1.727568 -1.793728 -1.855690 -1.912870 -1.964564 -2.009891 -2.047808 -2.077158 -2.096752 -2.105488 -2.102712 -2.088554 -2.064071 -2.031023 -1.991678 -1.948723 +1.171736 1.106731 1.041419 0.976878 0.913010 0.849786 0.786007 0.720337 0.651695 0.579184 0.501886 0.419852 0.334113 0.245468 0.154593 0.062077 -0.031851 -0.127315 -0.224178 -0.322282 -0.421492 -0.521657 -0.622547 -0.723829 -0.825079 -0.925839 -1.025616 -1.123916 -1.220296 -1.314414 -1.406037 -1.495024 -1.581314 -1.664852 -1.745475 -1.822871 -1.896602 -1.966142 -2.030921 -2.090297 -2.143474 -2.189445 -2.227031 -2.254956 -2.271933 -2.276886 -2.269336 -2.249773 -2.219606 -2.180927 -2.136371 -2.089055 +1.199665 1.130687 1.060803 0.991545 0.923092 0.855416 0.787425 0.717615 0.644798 0.567939 0.485924 0.398547 0.306984 0.212187 0.114961 0.015928 -0.084730 -0.187120 -0.291046 -0.396334 -0.502823 -0.610306 -0.718477 -0.826919 -0.935156 -1.042676 -1.148950 -1.253467 -1.355807 -1.455655 -1.552820 -1.647205 -1.738766 -1.827384 -1.912794 -1.994581 -2.072223 -2.145133 -2.212699 -2.274218 -2.328774 -2.375226 -2.412252 -2.438456 -2.452480 -2.453312 -2.440720 -2.415560 -2.379579 -2.335224 -2.285564 -2.234206 +1.226569 1.154008 1.079755 1.005702 0.932536 0.860255 0.787882 0.713750 0.636575 0.555208 0.468351 0.375479 0.277909 0.176760 0.072976 -0.032793 -0.140450 -0.250021 -0.361273 -0.474009 -0.588030 -0.703061 -0.818712 -0.934497 -1.049886 -1.164323 -1.277246 -1.388150 -1.496631 -1.602414 -1.705352 -1.805389 -1.902443 -1.996305 -2.086605 -2.172841 -2.254411 -2.330690 -2.401028 -2.464635 -2.520465 -2.567230 -2.603459 -2.627645 -2.638392 -2.634795 -2.616924 -2.585987 -2.544069 -2.494031 -2.439454 -2.384425 +1.252024 1.176555 1.098156 1.019368 0.941373 0.864347 0.787439 0.708813 0.627098 0.541045 0.449210 0.350690 0.246925 0.139220 0.028662 -0.084077 -0.198996 -0.316005 -0.434846 -0.555293 -0.677094 -0.799895 -0.923225 -1.046538 -1.169251 -1.290769 -1.410513 -1.527985 -1.642804 -1.754744 -1.863707 -1.969636 -2.072377 -2.171618 -2.266900 -2.357633 -2.443154 -2.522812 -2.595911 -2.661551 -2.718548 -2.765449 -2.800637 -2.822515 -2.829676 -2.821369 -2.798002 -2.761109 -2.713156 -2.657489 -2.598249 -2.539943 # Torque coefficient -0.030572 0.031393 0.032202 0.032999 0.033782 0.034552 0.035309 0.036051 0.036779 0.037492 0.038189 0.038871 0.039537 0.040186 0.040818 0.041433 0.042030 0.042609 0.043169 0.043710 0.044232 0.044733 0.045214 0.045674 0.046113 0.046530 0.046925 0.047297 0.047647 0.047974 0.048278 0.048560 0.048819 0.049057 0.049272 0.049465 0.049637 0.049787 0.049916 0.050024 0.050110 0.050176 0.050219 0.050242 0.050243 0.050224 0.050184 0.050123 0.050041 0.049938 0.049815 0.049671 0.049507 0.049323 0.049119 0.048895 0.048650 0.048384 0.048095 0.047785 0.047450 0.047090 0.046704 0.046292 0.045852 0.045385 0.044892 0.044373 0.043829 0.043260 0.042665 0.042044 0.041397 0.040725 0.040028 0.039308 0.038566 0.037801 0.037013 0.036204 0.035372 0.034519 0.033645 0.032749 0.031834 0.030899 0.029946 0.028976 0.027991 0.026990 0.025975 0.024947 0.023906 0.022852 0.021788 0.020712 0.019626 0.018531 0.017426 0.016312 0.015190 0.014061 0.012924 0.011779 -0.036019 0.036845 0.037655 0.038448 0.039224 0.039983 0.040724 0.041448 0.042153 0.042839 0.043505 0.044152 0.044778 0.045384 0.045969 0.046531 0.047071 0.047588 0.048082 0.048551 0.048997 0.049418 0.049814 0.050186 0.050534 0.050858 0.051158 0.051434 0.051688 0.051917 0.052124 0.052308 0.052468 0.052606 0.052719 0.052809 0.052875 0.052918 0.052936 0.052931 0.052901 0.052847 0.052769 0.052668 0.052544 0.052397 0.052227 0.052033 0.051815 0.051572 0.051303 0.051008 0.050685 0.050333 0.049951 0.049538 0.049096 0.048624 0.048124 0.047596 0.047039 0.046453 0.045838 0.045195 0.044524 0.043826 0.043103 0.042355 0.041580 0.040780 0.039955 0.039104 0.038229 0.037330 0.036407 0.035462 0.034497 0.033512 0.032508 0.031487 0.030450 0.029396 0.028327 0.027243 0.026146 0.025035 0.023912 0.022778 0.021631 0.020475 0.019307 0.018131 0.016944 0.015749 0.014546 0.013335 0.012115 0.010889 0.009655 0.008414 0.007167 0.005914 0.004654 0.003389 -0.041143 0.041957 0.042752 0.043527 0.044282 0.045016 0.045728 0.046418 0.047086 0.047730 0.048351 0.048947 0.049518 0.050065 0.050585 0.051080 0.051549 0.051993 0.052411 0.052805 0.053173 0.053516 0.053834 0.054128 0.054396 0.054639 0.054857 0.055050 0.055216 0.055355 0.055468 0.055553 0.055611 0.055641 0.055644 0.055620 0.055569 0.055491 0.055386 0.055253 0.055093 0.054904 0.054685 0.054436 0.054155 0.053841 0.053493 0.053111 0.052696 0.052249 0.051770 0.051260 0.050717 0.050142 0.049535 0.048897 0.048228 0.047531 0.046805 0.046051 0.045269 0.044458 0.043618 0.042751 0.041857 0.040936 0.039991 0.039023 0.038032 0.037021 0.035989 0.034938 0.033869 0.032782 0.031677 0.030557 0.029420 0.028269 0.027104 0.025925 0.024732 0.023528 0.022311 0.021083 0.019844 0.018595 0.017335 0.016066 0.014788 0.013501 0.012206 0.010903 0.009592 0.008274 0.006948 0.005616 0.004276 0.002930 0.001578 0.000219 -0.001146 -0.002516 -0.003891 -0.005271 -0.045892 0.046686 0.047456 0.048203 0.048925 0.049623 0.050295 0.050942 0.051562 0.052157 0.052726 0.053268 0.053785 0.054275 0.054739 0.055176 0.055587 0.055972 0.056330 0.056661 0.056965 0.057240 0.057486 0.057703 0.057889 0.058045 0.058171 0.058265 0.058328 0.058359 0.058359 0.058326 0.058262 0.058164 0.058032 0.057866 0.057663 0.057423 0.057145 0.056830 0.056477 0.056088 0.055663 0.055203 0.054706 0.054173 0.053604 0.053001 0.052365 0.051697 0.050998 0.050266 0.049502 0.048706 0.047879 0.047021 0.046134 0.045219 0.044278 0.043312 0.042323 0.041310 0.040275 0.039218 0.038140 0.037042 0.035925 0.034789 0.033635 0.032464 0.031276 0.030072 0.028852 0.027617 0.026367 0.025104 0.023827 0.022538 0.021237 0.019924 0.018599 0.017264 0.015919 0.014565 0.013201 0.011828 0.010447 0.009057 0.007659 0.006254 0.004841 0.003421 0.001993 0.000557 -0.000885 -0.002335 -0.003791 -0.005254 -0.006723 -0.008196 -0.009675 -0.011156 -0.012641 -0.014128 -0.050257 0.051026 0.051769 0.052487 0.053179 0.053846 0.054485 0.055099 0.055685 0.056244 0.056776 0.057281 0.057757 0.058205 0.058624 0.059012 0.059369 0.059695 0.059988 0.060247 0.060472 0.060661 0.060815 0.060931 0.061010 0.061051 0.061053 0.061015 0.060936 0.060815 0.060651 0.060443 0.060193 0.059901 0.059569 0.059196 0.058782 0.058328 0.057834 0.057301 0.056731 0.056124 0.055483 0.054805 0.054092 0.053343 0.052559 0.051742 0.050891 0.050011 0.049101 0.048164 0.047199 0.046210 0.045196 0.044158 0.043098 0.042015 0.040911 0.039786 0.038640 0.037473 0.036287 0.035082 0.033858 0.032616 0.031356 0.030080 0.028787 0.027478 0.026154 0.024815 0.023463 0.022097 0.020718 0.019328 0.017925 0.016512 0.015088 0.013654 0.012210 0.010756 0.009294 0.007823 0.006344 0.004856 0.003360 0.001855 0.000342 -0.001179 -0.002709 -0.004247 -0.005793 -0.007347 -0.008907 -0.010475 -0.012047 -0.013625 -0.015206 -0.016789 -0.018374 -0.019960 -0.021545 -0.023129 -0.054320 0.055079 0.055812 0.056518 0.057197 0.057848 0.058471 0.059065 0.059628 0.060161 0.060661 0.061128 0.061561 0.061957 0.062316 0.062636 0.062915 0.063152 0.063345 0.063495 0.063598 0.063653 0.063658 0.063614 0.063520 0.063376 0.063184 0.062945 0.062660 0.062328 0.061950 0.061526 0.061060 0.060553 0.060006 0.059419 0.058793 0.058127 0.057422 0.056679 0.055899 0.055085 0.054238 0.053359 0.052450 0.051513 0.050548 0.049556 0.048539 0.047497 0.046431 0.045341 0.044228 0.043093 0.041936 0.040758 0.039559 0.038338 0.037096 0.035835 0.034553 0.033252 0.031932 0.030593 0.029238 0.027865 0.026476 0.025071 0.023652 0.022218 0.020770 0.019309 0.017836 0.016351 0.014854 0.013347 0.011829 0.010301 0.008763 0.007215 0.005658 0.004092 0.002517 0.000933 -0.000661 -0.002265 -0.003878 -0.005501 -0.007133 -0.008775 -0.010426 -0.012085 -0.013751 -0.015424 -0.017101 -0.018783 -0.020467 -0.022152 -0.023837 -0.025521 -0.027201 -0.028878 -0.030550 -0.032215 -0.058243 0.059008 0.059744 0.060449 0.061122 0.061761 0.062366 0.062933 0.063462 0.063948 0.064390 0.064787 0.065136 0.065434 0.065679 0.065869 0.066002 0.066076 0.066093 0.066053 0.065957 0.065806 0.065600 0.065341 0.065029 0.064667 0.064257 0.063802 0.063302 0.062759 0.062171 0.061541 0.060870 0.060159 0.059409 0.058624 0.057805 0.056953 0.056070 0.055156 0.054212 0.053241 0.052242 0.051217 0.050166 0.049090 0.047990 0.046865 0.045716 0.044544 0.043349 0.042131 0.040891 0.039629 0.038346 0.037040 0.035713 0.034365 0.032997 0.031609 0.030201 0.028776 0.027332 0.025871 0.024393 0.022900 0.021392 0.019870 0.018333 0.016784 0.015222 0.013647 0.012061 0.010464 0.008856 0.007237 0.005608 0.003968 0.002319 0.000659 -0.001012 -0.002693 -0.004385 -0.006089 -0.007803 -0.009529 -0.011266 -0.013013 -0.014770 -0.016535 -0.018308 -0.020087 -0.021871 -0.023657 -0.025445 -0.027231 -0.029015 -0.030795 -0.032569 -0.034336 -0.036094 -0.037841 -0.039578 -0.041302 -0.062135 0.062903 0.063632 0.064318 0.064961 0.065556 0.066101 0.066592 0.067025 0.067397 0.067706 0.067950 0.068128 0.068241 0.068289 0.068272 0.068190 0.068046 0.067840 0.067575 0.067255 0.066883 0.066461 0.065988 0.065467 0.064900 0.064289 0.063635 0.062943 0.062212 0.061446 0.060645 0.059810 0.058944 0.058047 0.057120 0.056163 0.055178 0.054165 0.053125 0.052059 0.050966 0.049847 0.048703 0.047534 0.046341 0.045122 0.043879 0.042613 0.041323 0.040010 0.038674 0.037316 0.035935 0.034531 0.033106 0.031660 0.030193 0.028706 0.027200 0.025676 0.024133 0.022574 0.020999 0.019408 0.017802 0.016181 0.014547 0.012900 0.011240 0.009568 0.007883 0.006187 0.004479 0.002760 0.001030 -0.000712 -0.002466 -0.004232 -0.006011 -0.007802 -0.009606 -0.011423 -0.013253 -0.015094 -0.016948 -0.018812 -0.020685 -0.022566 -0.024452 -0.026342 -0.028234 -0.030125 -0.032012 -0.033894 -0.035768 -0.037634 -0.039488 -0.041329 -0.043157 -0.044970 -0.046768 -0.048552 -0.050322 -0.065925 0.066647 0.067311 0.067912 0.068447 0.068913 0.069308 0.069631 0.069880 0.070055 0.070155 0.070181 0.070133 0.070016 0.069833 0.069586 0.069279 0.068914 0.068493 0.068019 0.067497 0.066930 0.066320 0.065670 0.064982 0.064257 0.063497 0.062703 0.061876 0.061017 0.060126 0.059206 0.058255 0.057275 0.056267 0.055230 0.054166 0.053074 0.051955 0.050809 0.049636 0.048436 0.047211 0.045960 0.044683 0.043380 0.042053 0.040700 0.039324 0.037924 0.036500 0.035052 0.033581 0.032086 0.030570 0.029031 0.027471 0.025892 0.024292 0.022674 0.021038 0.019385 0.017715 0.016030 0.014329 0.012614 0.010884 0.009141 0.007384 0.005615 0.003832 0.002037 0.000229 -0.001592 -0.003427 -0.005274 -0.007136 -0.009012 -0.010902 -0.012807 -0.014726 -0.016660 -0.018607 -0.020568 -0.022539 -0.024521 -0.026510 -0.028505 -0.030502 -0.032499 -0.034493 -0.036481 -0.038461 -0.040430 -0.042386 -0.044328 -0.046253 -0.048160 -0.050050 -0.051922 -0.053778 -0.055618 -0.057447 -0.059267 -0.069254 0.069840 0.070349 0.070778 0.071125 0.071389 0.071569 0.071666 0.071681 0.071620 0.071485 0.071278 0.071004 0.070667 0.070272 0.069824 0.069328 0.068787 0.068204 0.067582 0.066923 0.066227 0.065496 0.064730 0.063932 0.063101 0.062237 0.061343 0.060418 0.059462 0.058477 0.057463 0.056419 0.055346 0.054245 0.053115 0.051957 0.050771 0.049556 0.048313 0.047043 0.045745 0.044420 0.043069 0.041690 0.040285 0.038854 0.037398 0.035916 0.034410 0.032878 0.031321 0.029740 0.028136 0.026510 0.024861 0.023192 0.021503 0.019795 0.018068 0.016323 0.014562 0.012784 0.010990 0.009180 0.007356 0.005517 0.003664 0.001796 -0.000086 -0.001982 -0.003892 -0.005818 -0.007759 -0.009715 -0.011687 -0.013676 -0.015681 -0.017703 -0.019741 -0.021794 -0.023861 -0.025941 -0.028031 -0.030129 -0.032232 -0.034337 -0.036441 -0.038539 -0.040629 -0.042708 -0.044773 -0.046822 -0.048852 -0.050863 -0.052853 -0.054821 -0.056769 -0.058698 -0.060611 -0.062511 -0.064403 -0.066293 -0.068187 -0.071698 0.072083 0.072376 0.072578 0.072691 0.072716 0.072658 0.072521 0.072310 0.072033 0.071695 0.071302 0.070860 0.070373 0.069844 0.069275 0.068668 0.068024 0.067345 0.066631 0.065883 0.065101 0.064287 0.063439 0.062560 0.061649 0.060707 0.059735 0.058732 0.057698 0.056634 0.055541 0.054417 0.053263 0.052079 0.050864 0.049620 0.048346 0.047042 0.045709 0.044346 0.042955 0.041535 0.040086 0.038609 0.037104 0.035572 0.034013 0.032428 0.030815 0.029177 0.027513 0.025825 0.024114 0.022380 0.020624 0.018847 0.017050 0.015234 0.013400 0.011547 0.009677 0.007791 0.005887 0.003968 0.002033 0.000082 -0.001884 -0.003867 -0.005865 -0.007881 -0.009913 -0.011963 -0.014031 -0.016117 -0.018222 -0.020345 -0.022486 -0.024643 -0.026817 -0.029004 -0.031203 -0.033410 -0.035622 -0.037836 -0.040048 -0.042252 -0.044447 -0.046628 -0.048792 -0.050937 -0.053060 -0.055160 -0.057235 -0.059286 -0.061313 -0.063319 -0.065306 -0.067279 -0.069245 -0.071209 -0.073179 -0.075161 -0.077158 -0.072973 0.073120 0.073175 0.073144 0.073036 0.072856 0.072611 0.072309 0.071955 0.071552 0.071104 0.070615 0.070087 0.069522 0.068920 0.068282 0.067608 0.066900 0.066157 0.065380 0.064570 0.063726 0.062850 0.061941 0.061000 0.060027 0.059022 0.057985 0.056916 0.055816 0.054683 0.053518 0.052321 0.051092 0.049830 0.048536 0.047210 0.045851 0.044461 0.043039 0.041585 0.040101 0.038586 0.037040 0.035465 0.033861 0.032229 0.030567 0.028877 0.027160 0.025416 0.023647 0.021853 0.020035 0.018194 0.016331 0.014447 0.012543 0.010619 0.008677 0.006715 0.004736 0.002739 0.000725 -0.001307 -0.003356 -0.005423 -0.007507 -0.009611 -0.011733 -0.013875 -0.016036 -0.018218 -0.020420 -0.022643 -0.024885 -0.027147 -0.029425 -0.031720 -0.034026 -0.036343 -0.038665 -0.040989 -0.043310 -0.045624 -0.047927 -0.050214 -0.052482 -0.054727 -0.056948 -0.059142 -0.061308 -0.063446 -0.065557 -0.067643 -0.069708 -0.071758 -0.073798 -0.075838 -0.077884 -0.079944 -0.082026 -0.084133 -0.086268 -0.072973 0.072932 0.072822 0.072648 0.072417 0.072134 0.071804 0.071428 0.071010 0.070553 0.070058 0.069524 0.068954 0.068347 0.067703 0.067024 0.066309 0.065558 0.064773 0.063953 0.063099 0.062210 0.061288 0.060331 0.059341 0.058316 0.057257 0.056164 0.055036 0.053874 0.052676 0.051444 0.050176 0.048873 0.047535 0.046161 0.044753 0.043310 0.041833 0.040322 0.038777 0.037200 0.035589 0.033947 0.032273 0.030570 0.028835 0.027071 0.025277 0.023455 0.021606 0.019731 0.017831 0.015907 0.013960 0.011990 0.009999 0.007987 0.005954 0.003902 0.001830 -0.000260 -0.002370 -0.004500 -0.006648 -0.008816 -0.011005 -0.013215 -0.015446 -0.017699 -0.019974 -0.022272 -0.024591 -0.026933 -0.029296 -0.031678 -0.034078 -0.036492 -0.038917 -0.041349 -0.043784 -0.046218 -0.048644 -0.051059 -0.053457 -0.055834 -0.058186 -0.060511 -0.062805 -0.065068 -0.067300 -0.069501 -0.071673 -0.073821 -0.075950 -0.078068 -0.080184 -0.082306 -0.084444 -0.086607 -0.088799 -0.091027 -0.093288 -0.095580 -0.072010 0.071888 0.071712 0.071487 0.071217 0.070903 0.070548 0.070154 0.069721 0.069250 0.068739 0.068190 0.067603 0.066977 0.066314 0.065612 0.064874 0.064098 0.063286 0.062437 0.061551 0.060628 0.059668 0.058671 0.057637 0.056565 0.055456 0.054309 0.053124 0.051901 0.050639 0.049339 0.048000 0.046623 0.045207 0.043754 0.042263 0.040734 0.039169 0.037568 0.035931 0.034259 0.032553 0.030813 0.029041 0.027236 0.025399 0.023531 0.021634 0.019708 0.017754 0.015773 0.013767 0.011736 0.009682 0.007604 0.005505 0.003383 0.001240 -0.000924 -0.003109 -0.005315 -0.007542 -0.009791 -0.012062 -0.014356 -0.016674 -0.019015 -0.021381 -0.023771 -0.026185 -0.028623 -0.031085 -0.033568 -0.036071 -0.038591 -0.041124 -0.043667 -0.046214 -0.048761 -0.051303 -0.053834 -0.056349 -0.058841 -0.061306 -0.063742 -0.066144 -0.068512 -0.070845 -0.073143 -0.075408 -0.077645 -0.079859 -0.082058 -0.084253 -0.086452 -0.088666 -0.090905 -0.093177 -0.095488 -0.097843 -0.100239 -0.102673 -0.105140 -0.070440 0.070312 0.070139 0.069923 0.069664 0.069365 0.069027 0.068646 0.068225 0.067764 0.067260 0.066716 0.066130 0.065503 0.064835 0.064126 0.063376 0.062586 0.061755 0.060884 0.059972 0.059019 0.058025 0.056990 0.055914 0.054797 0.053637 0.052437 0.051194 0.049909 0.048582 0.047213 0.045802 0.044350 0.042855 0.041320 0.039745 0.038130 0.036476 0.034783 0.033052 0.031284 0.029481 0.027643 0.025771 0.023865 0.021926 0.019955 0.017953 0.015922 0.013862 0.011776 0.009663 0.007525 0.005362 0.003175 0.000965 -0.001268 -0.003525 -0.005804 -0.008107 -0.010432 -0.012782 -0.015157 -0.017558 -0.019984 -0.022437 -0.024916 -0.027421 -0.029952 -0.032509 -0.035090 -0.037694 -0.040318 -0.042958 -0.045610 -0.048269 -0.050931 -0.053590 -0.056241 -0.058876 -0.061490 -0.064076 -0.066631 -0.069150 -0.071631 -0.074074 -0.076478 -0.078844 -0.081178 -0.083483 -0.085770 -0.088047 -0.090325 -0.092614 -0.094926 -0.097271 -0.099659 -0.102096 -0.104586 -0.107127 -0.109716 -0.112347 -0.115011 -0.068499 0.068415 0.068289 0.068119 0.067907 0.067650 0.067349 0.067004 0.066613 0.066178 0.065697 0.065171 0.064599 0.063982 0.063318 0.062609 0.061854 0.061054 0.060209 0.059318 0.058382 0.057401 0.056374 0.055301 0.054183 0.053019 0.051810 0.050554 0.049252 0.047904 0.046511 0.045071 0.043586 0.042056 0.040482 0.038864 0.037202 0.035499 0.033754 0.031967 0.030142 0.028279 0.026379 0.024442 0.022469 0.020461 0.018418 0.016344 0.014237 0.012101 0.009935 0.007742 0.005521 0.003274 0.001001 -0.001297 -0.003621 -0.005970 -0.008343 -0.010742 -0.013167 -0.015619 -0.018098 -0.020605 -0.023141 -0.025705 -0.028297 -0.030918 -0.033567 -0.036243 -0.038944 -0.041668 -0.044412 -0.047171 -0.049942 -0.052718 -0.055496 -0.058267 -0.061027 -0.063768 -0.066482 -0.069164 -0.071808 -0.074413 -0.076975 -0.079495 -0.081973 -0.084413 -0.086819 -0.089200 -0.091565 -0.093925 -0.096292 -0.098676 -0.101090 -0.103546 -0.106055 -0.108625 -0.111258 -0.113954 -0.116709 -0.119513 -0.122356 -0.125224 -0.066349 0.066338 0.066282 0.066181 0.066031 0.065833 0.065586 0.065288 0.064940 0.064543 0.064094 0.063594 0.063044 0.062441 0.061787 0.061082 0.060325 0.059517 0.058659 0.057750 0.056790 0.055781 0.054720 0.053610 0.052449 0.051237 0.049976 0.048663 0.047301 0.045888 0.044426 0.042915 0.041354 0.039745 0.038089 0.036385 0.034637 0.032843 0.031006 0.029127 0.027207 0.025248 0.023250 0.021212 0.019138 0.017027 0.014881 0.012701 0.010489 0.008247 0.005974 0.003672 0.001341 -0.001017 -0.003403 -0.005816 -0.008256 -0.010724 -0.013219 -0.015743 -0.018297 -0.020881 -0.023495 -0.026140 -0.028815 -0.031521 -0.034258 -0.037024 -0.039818 -0.042639 -0.045483 -0.048348 -0.051227 -0.054116 -0.057011 -0.059904 -0.062790 -0.065661 -0.068509 -0.071325 -0.074104 -0.076841 -0.079534 -0.082181 -0.084782 -0.087339 -0.089857 -0.092342 -0.094804 -0.097253 -0.099701 -0.102160 -0.104643 -0.107162 -0.109733 -0.112368 -0.115076 -0.117859 -0.120717 -0.123643 -0.126627 -0.129657 -0.132717 -0.135787 -0.064097 0.064168 0.064192 0.064166 0.064089 0.063959 0.063774 0.063533 0.063236 0.062882 0.062471 0.062003 0.061478 0.060894 0.060252 0.059553 0.058796 0.057982 0.057111 0.056184 0.055201 0.054162 0.053068 0.051918 0.050712 0.049452 0.048137 0.046766 0.045342 0.043863 0.042330 0.040745 0.039107 0.037417 0.035677 0.033888 0.032051 0.030167 0.028237 0.026264 0.024249 0.022192 0.020094 0.017956 0.015779 0.013564 0.011314 0.009029 0.006710 0.004360 0.001978 -0.000435 -0.002878 -0.005350 -0.007852 -0.010383 -0.012945 -0.015536 -0.018159 -0.020814 -0.023502 -0.026223 -0.028977 -0.031763 -0.034583 -0.037435 -0.040318 -0.043231 -0.046171 -0.049135 -0.052120 -0.055119 -0.058129 -0.061143 -0.064154 -0.067156 -0.070140 -0.073097 -0.076018 -0.078897 -0.081731 -0.084516 -0.087252 -0.089940 -0.092582 -0.095184 -0.097754 -0.100301 -0.102839 -0.105379 -0.107933 -0.110516 -0.113144 -0.115832 -0.118596 -0.121445 -0.124381 -0.127403 -0.130505 -0.133677 -0.136904 -0.140167 -0.143444 -0.146709 -0.061798 0.061952 0.062058 0.062113 0.062112 0.062053 0.061936 0.061756 0.061515 0.061209 0.060840 0.060406 0.059908 0.059346 0.058718 0.058026 0.057270 0.056450 0.055567 0.054621 0.053614 0.052546 0.051416 0.050226 0.048975 0.047664 0.046293 0.044864 0.043375 0.041828 0.040224 0.038562 0.036845 0.035074 0.033249 0.031372 0.029446 0.027471 0.025449 0.023381 0.021269 0.019114 0.016915 0.014674 0.012394 0.010074 0.007718 0.005326 0.002900 0.000440 -0.002054 -0.004580 -0.007138 -0.009727 -0.012349 -0.015003 -0.017690 -0.020411 -0.023168 -0.025959 -0.028786 -0.031648 -0.034546 -0.037478 -0.040445 -0.043444 -0.046475 -0.049535 -0.052620 -0.055725 -0.058846 -0.061977 -0.065111 -0.068242 -0.071362 -0.074461 -0.077530 -0.080560 -0.083544 -0.086479 -0.089363 -0.092194 -0.094974 -0.097708 -0.100400 -0.103060 -0.105698 -0.108327 -0.110960 -0.113612 -0.116297 -0.119035 -0.121843 -0.124736 -0.127725 -0.130814 -0.134003 -0.137286 -0.140653 -0.144086 -0.147563 -0.151056 -0.154536 -0.157970 -0.059487 0.059724 0.059910 0.060044 0.060120 0.060134 0.060084 0.059969 0.059784 0.059530 0.059204 0.058807 0.058339 0.057799 0.057187 0.056503 0.055748 0.054923 0.054027 0.053064 0.052032 0.050933 0.049767 0.048535 0.047237 0.045874 0.044447 0.042956 0.041401 0.039785 0.038107 0.036369 0.034571 0.032716 0.030806 0.028842 0.026825 0.024758 0.022642 0.020479 0.018269 0.016013 0.013712 0.011368 0.008983 0.006558 0.004095 0.001594 -0.000943 -0.003515 -0.006123 -0.008765 -0.011441 -0.014152 -0.016898 -0.019680 -0.022498 -0.025355 -0.028249 -0.031181 -0.034151 -0.037158 -0.040203 -0.043284 -0.046400 -0.049549 -0.052727 -0.055932 -0.059159 -0.062402 -0.065655 -0.068912 -0.072165 -0.075405 -0.078623 -0.081808 -0.084951 -0.088046 -0.091088 -0.094076 -0.097009 -0.099889 -0.102720 -0.105508 -0.108263 -0.110996 -0.113719 -0.116448 -0.119198 -0.121987 -0.124835 -0.127760 -0.130779 -0.133907 -0.137150 -0.140508 -0.143977 -0.147545 -0.151190 -0.154888 -0.158605 -0.162307 -0.165960 -0.169532 -0.057186 0.057503 0.057767 0.057976 0.058125 0.058211 0.058229 0.058176 0.058049 0.057846 0.057567 0.057208 0.056771 0.056255 0.055660 0.054985 0.054232 0.053401 0.052494 0.051511 0.050454 0.049323 0.048120 0.046845 0.045498 0.044082 0.042597 0.041043 0.039421 0.037734 0.035981 0.034164 0.032285 0.030346 0.028349 0.026297 0.024189 0.022029 0.019818 0.017558 0.015248 0.012890 0.010486 0.008038 0.005547 0.003014 0.000442 -0.002170 -0.004819 -0.007507 -0.010231 -0.012992 -0.015791 -0.018628 -0.021503 -0.024418 -0.027373 -0.030369 -0.033405 -0.036482 -0.039599 -0.042755 -0.045950 -0.049181 -0.052447 -0.055745 -0.059070 -0.062418 -0.065784 -0.069161 -0.072542 -0.075918 -0.079282 -0.082622 -0.085927 -0.089189 -0.092401 -0.095557 -0.098656 -0.101698 -0.104685 -0.107620 -0.110511 -0.113365 -0.116196 -0.119016 -0.121842 -0.124691 -0.127584 -0.130539 -0.133578 -0.136722 -0.139987 -0.143383 -0.146912 -0.150569 -0.154339 -0.158200 -0.162123 -0.166070 -0.170003 -0.173885 -0.177683 -0.181370 -0.054915 0.055303 0.055641 0.055920 0.056140 0.056293 0.056376 0.056385 0.056315 0.056164 0.055930 0.055612 0.055206 0.054715 0.054137 0.053473 0.052722 0.051886 0.050966 0.049963 0.048880 0.047717 0.046475 0.045155 0.043760 0.042289 0.040744 0.039125 0.037435 0.035675 0.033846 0.031949 0.029988 0.027965 0.025881 0.023738 0.021538 0.019284 0.016977 0.014618 0.012207 0.009746 0.007238 0.004683 0.002084 -0.000557 -0.003241 -0.005966 -0.008731 -0.011536 -0.014381 -0.017266 -0.020191 -0.023159 -0.026168 -0.029221 -0.032317 -0.035456 -0.038639 -0.041864 -0.045131 -0.048439 -0.051785 -0.055168 -0.058584 -0.062029 -0.065500 -0.068989 -0.072491 -0.075997 -0.079500 -0.082989 -0.086455 -0.089886 -0.093273 -0.096608 -0.099885 -0.103103 -0.106262 -0.109363 -0.112410 -0.115408 -0.118366 -0.121297 -0.124217 -0.127141 -0.130091 -0.133085 -0.136146 -0.139297 -0.142562 -0.145962 -0.149509 -0.153206 -0.157048 -0.161020 -0.165098 -0.169248 -0.173430 -0.177602 -0.181724 -0.185761 -0.189683 -0.193470 -0.052695 0.053142 0.053542 0.053887 0.054170 0.054388 0.054533 0.054600 0.054586 0.054486 0.054297 0.054018 0.053646 0.053179 0.052619 0.051966 0.051218 0.050377 0.049444 0.048421 0.047310 0.046114 0.044832 0.043467 0.042021 0.040494 0.038887 0.037204 0.035444 0.033609 0.031703 0.029726 0.027682 0.025572 0.023400 0.021166 0.018873 0.016523 0.014119 0.011658 0.009145 0.006580 0.003965 0.001303 -0.001405 -0.004159 -0.006956 -0.009797 -0.012681 -0.015607 -0.018576 -0.021589 -0.024646 -0.027749 -0.030898 -0.034092 -0.037333 -0.040620 -0.043952 -0.047328 -0.050748 -0.054208 -0.057707 -0.061241 -0.064807 -0.068400 -0.072013 -0.075641 -0.079274 -0.082905 -0.086524 -0.090120 -0.093682 -0.097199 -0.100664 -0.104070 -0.107415 -0.110699 -0.113921 -0.117086 -0.120197 -0.123264 -0.126299 -0.129321 -0.132346 -0.135395 -0.138489 -0.141653 -0.144913 -0.148297 -0.151827 -0.155521 -0.159381 -0.163404 -0.167574 -0.171866 -0.176244 -0.180664 -0.185082 -0.189454 -0.193742 -0.197915 -0.201948 -0.205833 -0.050546 0.051035 0.051485 0.051886 0.052227 0.052501 0.052704 0.052828 0.052865 0.052814 0.052670 0.052429 0.052090 0.051650 0.051108 0.050464 0.049719 0.048873 0.047927 0.046884 0.045745 0.044514 0.043192 0.041780 0.040281 0.038697 0.037028 0.035277 0.033446 0.031537 0.029553 0.027494 0.025366 0.023169 0.020907 0.018580 0.016193 0.013747 0.011242 0.008679 0.006062 0.003391 0.000668 -0.002104 -0.004924 -0.007791 -0.010705 -0.013665 -0.016670 -0.019722 -0.022820 -0.025965 -0.029159 -0.032401 -0.035693 -0.039033 -0.042423 -0.045860 -0.049345 -0.052876 -0.056449 -0.060063 -0.063715 -0.067401 -0.071116 -0.074854 -0.078608 -0.082369 -0.086131 -0.089882 -0.093611 -0.097309 -0.100964 -0.104565 -0.108108 -0.111588 -0.115004 -0.118356 -0.121645 -0.124875 -0.128056 -0.131201 -0.134327 -0.137453 -0.140601 -0.143795 -0.147061 -0.150427 -0.153925 -0.157582 -0.161415 -0.165431 -0.169627 -0.173987 -0.178487 -0.183092 -0.187752 -0.192422 -0.197053 -0.201605 -0.206042 -0.210338 -0.214481 -0.218471 -0.048476 0.048997 0.049483 0.049927 0.050316 0.050641 0.050896 0.051071 0.051158 0.051153 0.051051 0.050848 0.050540 0.050126 0.049602 0.048969 0.048226 0.047375 0.046415 0.045351 0.044184 0.042917 0.041553 0.040094 0.038541 0.036898 0.035166 0.033347 0.031444 0.029459 0.027395 0.025254 0.023040 0.020755 0.018401 0.015981 0.013498 0.010953 0.008346 0.005680 0.002957 0.000178 -0.002654 -0.005538 -0.008473 -0.011457 -0.014490 -0.017572 -0.020703 -0.023884 -0.027115 -0.030397 -0.033732 -0.037118 -0.040557 -0.044047 -0.047588 -0.051180 -0.054819 -0.058505 -0.062233 -0.066002 -0.069807 -0.073644 -0.077507 -0.081388 -0.085279 -0.089173 -0.093059 -0.096927 -0.100765 -0.104562 -0.108307 -0.111993 -0.115617 -0.119174 -0.122663 -0.126084 -0.129440 -0.132741 -0.135999 -0.139233 -0.142462 -0.145709 -0.149002 -0.152368 -0.155839 -0.159447 -0.163222 -0.167186 -0.171348 -0.175707 -0.180248 -0.184950 -0.189775 -0.194676 -0.199600 -0.204499 -0.209325 -0.214040 -0.218615 -0.223032 -0.227290 -0.231395 -0.046480 0.047031 0.047544 0.048019 0.048446 0.048814 0.049113 0.049334 0.049468 0.049505 0.049442 0.049275 0.048998 0.048608 0.048102 0.047479 0.046739 0.045882 0.044909 0.043822 0.042626 0.041323 0.039916 0.038408 0.036801 0.035097 0.033300 0.031412 0.029436 0.027374 0.025229 0.023005 0.020704 0.018329 0.015882 0.013368 0.010787 0.008141 0.005431 0.002660 -0.000171 -0.003060 -0.006004 -0.009002 -0.012053 -0.015157 -0.018313 -0.021521 -0.024782 -0.028096 -0.031465 -0.034889 -0.038368 -0.041902 -0.045491 -0.049134 -0.052830 -0.056578 -0.060374 -0.064215 -0.068100 -0.072024 -0.075982 -0.079969 -0.083978 -0.088000 -0.092028 -0.096051 -0.100060 -0.104042 -0.107987 -0.111883 -0.115721 -0.119495 -0.123201 -0.126835 -0.130396 -0.133885 -0.137313 -0.140690 -0.144035 -0.147369 -0.150718 -0.154109 -0.157574 -0.161147 -0.164861 -0.168747 -0.172832 -0.177129 -0.181638 -0.186349 -0.191241 -0.196279 -0.201417 -0.206597 -0.211767 -0.216877 -0.221883 -0.226752 -0.231460 -0.236004 -0.240386 -0.244617 -0.044551 0.045130 0.045670 0.046169 0.046624 0.047025 0.047360 0.047621 0.047795 0.047873 0.047846 0.047711 0.047463 0.047096 0.046608 0.045994 0.045256 0.044393 0.043406 0.042297 0.041071 0.039731 0.038280 0.036721 0.035059 0.033294 0.031432 0.029474 0.027423 0.025282 0.023056 0.020746 0.018357 0.015891 0.013350 0.010739 0.008059 0.005311 0.002496 -0.000383 -0.003323 -0.006323 -0.009381 -0.012496 -0.015668 -0.018894 -0.022176 -0.025514 -0.028909 -0.032362 -0.035872 -0.039441 -0.043068 -0.046754 -0.050497 -0.054296 -0.058149 -0.062054 -0.066008 -0.070007 -0.074049 -0.078128 -0.082239 -0.086376 -0.090529 -0.094692 -0.098855 -0.103007 -0.107137 -0.111234 -0.115285 -0.119282 -0.123215 -0.127077 -0.130865 -0.134574 -0.138205 -0.141766 -0.145269 -0.148730 -0.152173 -0.155625 -0.159116 -0.162680 -0.166351 -0.170166 -0.174156 -0.178352 -0.182771 -0.187417 -0.192283 -0.197353 -0.202594 -0.207959 -0.213393 -0.218837 -0.224237 -0.229545 -0.234721 -0.239738 -0.244585 -0.249262 -0.253778 -0.258148 -0.042682 0.043289 0.043854 0.044376 0.044852 0.045278 0.045642 0.045935 0.046144 0.046257 0.046264 0.046159 0.045937 0.045591 0.045119 0.044515 0.043778 0.042909 0.041908 0.040776 0.039519 0.038140 0.036644 0.035035 0.033315 0.031489 0.029559 0.027530 0.025403 0.023183 0.020874 0.018477 0.015999 0.013439 0.010804 0.008095 0.005314 0.002461 -0.000461 -0.003449 -0.006500 -0.009614 -0.012789 -0.016024 -0.019318 -0.022671 -0.026083 -0.029555 -0.033088 -0.036683 -0.040339 -0.044057 -0.047836 -0.051676 -0.055576 -0.059533 -0.063545 -0.067609 -0.071722 -0.075880 -0.080079 -0.084314 -0.088577 -0.092862 -0.097161 -0.101464 -0.105762 -0.110042 -0.114295 -0.118508 -0.122669 -0.126767 -0.130795 -0.134744 -0.138610 -0.142392 -0.146095 -0.149730 -0.153314 -0.156871 -0.160429 -0.164022 -0.167683 -0.171451 -0.175362 -0.179449 -0.183746 -0.188274 -0.193042 -0.198049 -0.203281 -0.208709 -0.214292 -0.219972 -0.225688 -0.231383 -0.237000 -0.242496 -0.247837 -0.253004 -0.257995 -0.262815 -0.267475 -0.271994 -0.040867 0.041502 0.042091 0.042634 0.043130 0.043575 0.043962 0.044279 0.044517 0.044660 0.044696 0.044619 0.044419 0.044094 0.043635 0.043040 0.042304 0.041428 0.040412 0.039257 0.037968 0.036550 0.035009 0.033347 0.031570 0.029680 0.027683 0.025581 0.023377 0.021076 0.018682 0.016198 0.013628 0.010975 0.008243 0.005434 0.002549 -0.000410 -0.003440 -0.006539 -0.009704 -0.012935 -0.016229 -0.019587 -0.023007 -0.026490 -0.030036 -0.033646 -0.037321 -0.041061 -0.044867 -0.048737 -0.052672 -0.056669 -0.060728 -0.064845 -0.069017 -0.073242 -0.077516 -0.081833 -0.086190 -0.090580 -0.094997 -0.099431 -0.103875 -0.108320 -0.112753 -0.117164 -0.121542 -0.125872 -0.130143 -0.134343 -0.138463 -0.142495 -0.146437 -0.150291 -0.154067 -0.157782 -0.161458 -0.165127 -0.168823 -0.172584 -0.176446 -0.180448 -0.184627 -0.189015 -0.193639 -0.198516 -0.203646 -0.209022 -0.214621 -0.220406 -0.226321 -0.232304 -0.238291 -0.244224 -0.250049 -0.255728 -0.261233 -0.266555 -0.271698 -0.276669 -0.281485 -0.286164 -0.039101 0.039763 0.040376 0.040940 0.041454 0.041915 0.042319 0.042656 0.042915 0.043083 0.043145 0.043092 0.042913 0.042604 0.042158 0.041570 0.040834 0.039951 0.038919 0.037740 0.036419 0.034961 0.033373 0.031658 0.029822 0.027868 0.025802 0.023626 0.021344 0.018961 0.016481 0.013907 0.011245 0.008496 0.005665 0.002755 -0.000235 -0.003302 -0.006442 -0.009654 -0.012936 -0.016286 -0.019703 -0.023186 -0.026736 -0.030352 -0.034037 -0.037789 -0.041610 -0.045499 -0.049458 -0.053484 -0.057577 -0.061734 -0.065954 -0.070233 -0.074567 -0.078954 -0.083389 -0.087867 -0.092383 -0.096929 -0.101499 -0.106085 -0.110676 -0.115263 -0.119835 -0.124380 -0.128884 -0.133333 -0.137713 -0.142011 -0.146219 -0.150330 -0.154346 -0.158272 -0.162126 -0.165930 -0.169716 -0.173519 -0.177379 -0.181334 -0.185426 -0.189690 -0.194161 -0.198871 -0.203840 -0.209078 -0.214580 -0.220330 -0.226297 -0.232431 -0.238669 -0.244944 -0.251192 -0.257354 -0.263381 -0.269240 -0.274913 -0.280397 -0.285699 -0.290831 -0.295813 -0.300663 -0.037378 0.038068 0.038704 0.039288 0.039820 0.040295 0.040712 0.041064 0.041341 0.041528 0.041612 0.041576 0.041417 0.041121 0.040686 0.040103 0.039368 0.038476 0.037428 0.036225 0.034870 0.033372 0.031736 0.029967 0.028071 0.026052 0.023915 0.021664 0.019303 0.016836 0.014268 0.011604 0.008847 0.006002 0.003071 0.000057 -0.003040 -0.006217 -0.009470 -0.012797 -0.016198 -0.019669 -0.023212 -0.026824 -0.030508 -0.034262 -0.038088 -0.041986 -0.045956 -0.049999 -0.054113 -0.058298 -0.062551 -0.066871 -0.071254 -0.075696 -0.080195 -0.084745 -0.089343 -0.093983 -0.098658 -0.103362 -0.108088 -0.112826 -0.117567 -0.122300 -0.127014 -0.131695 -0.136326 -0.140892 -0.145377 -0.149769 -0.154061 -0.158248 -0.162336 -0.166339 -0.170279 -0.174189 -0.178104 -0.182066 -0.186116 -0.190293 -0.194638 -0.199187 -0.203973 -0.209021 -0.214349 -0.219958 -0.225838 -0.231965 -0.238297 -0.244774 -0.251326 -0.257884 -0.264385 -0.270770 -0.276996 -0.283036 -0.288882 -0.294535 -0.300004 -0.305307 -0.310464 -0.315495 -0.035695 0.036413 0.037072 0.037675 0.038223 0.038712 0.039140 0.039504 0.039792 0.039995 0.040094 0.040076 0.039931 0.039647 0.039220 0.038641 0.037904 0.037003 0.035938 0.034710 0.033322 0.031782 0.030098 0.028274 0.026317 0.024232 0.022023 0.019695 0.017253 0.014701 0.012045 0.009288 0.006436 0.003492 0.000459 -0.002661 -0.005867 -0.009155 -0.012523 -0.015969 -0.019490 -0.023087 -0.026758 -0.030504 -0.034324 -0.038219 -0.042191 -0.046238 -0.050361 -0.054560 -0.058834 -0.063180 -0.067597 -0.072081 -0.076628 -0.081236 -0.085900 -0.090616 -0.095378 -0.100180 -0.105017 -0.109882 -0.114766 -0.119660 -0.124555 -0.129438 -0.134296 -0.139113 -0.143870 -0.148549 -0.153135 -0.157616 -0.161986 -0.166247 -0.170411 -0.174498 -0.178541 -0.182575 -0.186643 -0.190788 -0.195051 -0.199474 -0.204095 -0.208948 -0.214065 -0.219467 -0.225164 -0.231151 -0.237415 -0.243921 -0.250614 -0.257426 -0.264284 -0.271120 -0.277866 -0.284470 -0.290894 -0.297120 -0.303144 -0.308972 -0.314618 -0.320101 -0.325442 -0.330663 -0.034046 0.034792 0.035475 0.036097 0.036660 0.037163 0.037601 0.037972 0.038271 0.038484 0.038595 0.038590 0.038455 0.038182 0.037759 0.037183 0.036442 0.035531 0.034449 0.033195 0.031773 0.030191 0.028457 0.026578 0.024559 0.022406 0.020124 0.017718 0.015193 0.012555 0.009809 0.006959 0.004009 0.000965 -0.002172 -0.005400 -0.008717 -0.012119 -0.015604 -0.019170 -0.022816 -0.026541 -0.030344 -0.034226 -0.038187 -0.042227 -0.046347 -0.050547 -0.054827 -0.059186 -0.063621 -0.068131 -0.072713 -0.077363 -0.082078 -0.086854 -0.091685 -0.096567 -0.101494 -0.106462 -0.111464 -0.116492 -0.121538 -0.126592 -0.131644 -0.136681 -0.141685 -0.146636 -0.151514 -0.156302 -0.160983 -0.165547 -0.169994 -0.174331 -0.178577 -0.182763 -0.186925 -0.191105 -0.195348 -0.199698 -0.204197 -0.208886 -0.213802 -0.218977 -0.224440 -0.230207 -0.236281 -0.242656 -0.249307 -0.256190 -0.263239 -0.270380 -0.277540 -0.284646 -0.291634 -0.298453 -0.305077 -0.311493 -0.317701 -0.323713 -0.329544 -0.335216 -0.340751 -0.346172 -0.032430 0.033204 0.033909 0.034550 0.035128 0.035644 0.036091 0.036468 0.036773 0.036994 0.037114 0.037117 0.036990 0.036724 0.036304 0.035727 0.034982 0.034061 0.032960 0.031680 0.030224 0.028599 0.026814 0.024878 0.022795 0.020573 0.018217 0.015732 0.013124 0.010398 0.007560 0.004614 0.001567 -0.001579 -0.004823 -0.008161 -0.011590 -0.015109 -0.018714 -0.022403 -0.026177 -0.030033 -0.033971 -0.037993 -0.042098 -0.046287 -0.050559 -0.054916 -0.059355 -0.063876 -0.068476 -0.073152 -0.077902 -0.082720 -0.087604 -0.092548 -0.097548 -0.102599 -0.107695 -0.112832 -0.118001 -0.123196 -0.128409 -0.133628 -0.138841 -0.144032 -0.149180 -0.154262 -0.159258 -0.164148 -0.168918 -0.173562 -0.178086 -0.182505 -0.186846 -0.191146 -0.195446 -0.199792 -0.204231 -0.208807 -0.213563 -0.218537 -0.223764 -0.229276 -0.235097 -0.241238 -0.247699 -0.254466 -0.261508 -0.268765 -0.276166 -0.283633 -0.291089 -0.298461 -0.305685 -0.312721 -0.319548 -0.326159 -0.332559 -0.338761 -0.344786 -0.350656 -0.356393 -0.362023 -0.030843 0.031644 0.032372 0.033031 0.033624 0.034151 0.034608 0.034990 0.035299 0.035524 0.035649 0.035658 0.035537 0.035274 0.034855 0.034275 0.033523 0.032591 0.031471 0.030165 0.028673 0.027004 0.025168 0.023174 0.021027 0.018735 0.016303 0.013737 0.011044 0.008228 0.005298 0.002255 -0.000893 -0.004143 -0.007494 -0.010944 -0.014489 -0.018126 -0.021854 -0.025670 -0.029573 -0.033564 -0.037641 -0.041806 -0.046059 -0.050399 -0.054828 -0.059344 -0.063946 -0.068632 -0.073399 -0.078244 -0.083163 -0.088152 -0.093207 -0.098322 -0.103493 -0.108715 -0.113983 -0.119291 -0.124633 -0.130000 -0.135383 -0.140772 -0.146148 -0.151493 -0.156782 -0.161991 -0.167097 -0.172082 -0.176937 -0.181662 -0.186267 -0.190778 -0.195228 -0.199659 -0.204117 -0.208649 -0.213304 -0.218126 -0.223155 -0.228430 -0.233983 -0.239844 -0.246034 -0.252559 -0.259415 -0.266580 -0.274012 -0.281642 -0.289392 -0.297181 -0.304928 -0.312560 -0.320020 -0.327275 -0.334309 -0.341120 -0.347718 -0.354120 -0.360347 -0.366423 -0.372371 -0.378218 -0.029281 0.030109 0.030861 0.031538 0.032144 0.032683 0.033148 0.033535 0.033845 0.034073 0.034201 0.034213 0.034094 0.033831 0.033411 0.032826 0.032066 0.031121 0.029982 0.028648 0.027120 0.025406 0.023519 0.021465 0.019252 0.016889 0.014380 0.011732 0.008952 0.006046 0.003021 -0.000120 -0.003370 -0.006726 -0.010188 -0.013752 -0.017414 -0.021173 -0.025025 -0.028971 -0.033007 -0.037136 -0.041355 -0.045667 -0.050071 -0.054567 -0.059155 -0.063833 -0.068601 -0.073455 -0.078391 -0.083407 -0.088498 -0.093659 -0.098887 -0.104175 -0.109520 -0.114917 -0.120360 -0.125844 -0.131363 -0.136907 -0.142467 -0.148027 -0.153566 -0.159062 -0.164488 -0.169817 -0.175027 -0.180104 -0.185043 -0.189849 -0.194545 -0.199160 -0.203734 -0.208314 -0.212948 -0.217686 -0.222575 -0.227659 -0.232978 -0.238568 -0.244460 -0.250682 -0.257250 -0.264168 -0.271425 -0.278994 -0.286816 -0.294817 -0.302913 -0.311020 -0.319054 -0.326943 -0.334639 -0.342115 -0.349361 -0.356379 -0.363183 -0.369792 -0.376229 -0.382518 -0.388686 -0.394762 -0.027744 0.028598 0.029372 0.030067 0.030687 0.031236 0.031710 0.032100 0.032412 0.032640 0.032768 0.032781 0.032660 0.032396 0.031973 0.031380 0.030610 0.029650 0.028491 0.027129 0.025564 0.023806 0.021865 0.019750 0.017471 0.015035 0.012448 0.009717 0.006849 0.003851 0.000729 -0.002512 -0.005866 -0.009331 -0.012905 -0.016585 -0.020367 -0.024250 -0.028230 -0.032307 -0.036481 -0.040750 -0.045115 -0.049577 -0.054136 -0.058791 -0.063541 -0.068385 -0.073321 -0.078344 -0.083453 -0.088642 -0.093907 -0.099243 -0.104645 -0.110109 -0.115632 -0.121207 -0.126830 -0.132495 -0.138196 -0.143923 -0.149662 -0.155394 -0.161095 -0.166738 -0.172294 -0.177736 -0.183045 -0.188212 -0.193235 -0.198131 -0.202928 -0.207661 -0.212375 -0.217120 -0.221948 -0.226909 -0.232049 -0.237412 -0.243035 -0.248952 -0.255195 -0.261788 -0.268744 -0.276063 -0.283729 -0.291702 -0.299915 -0.308286 -0.316726 -0.325147 -0.333464 -0.341609 -0.349542 -0.357243 -0.364706 -0.371938 -0.378955 -0.385779 -0.392434 -0.398945 -0.405342 -0.411656 -0.026229 0.027108 0.027903 0.028617 0.029250 0.029809 0.030290 0.030685 0.030995 0.031222 0.031350 0.031360 0.031236 0.030969 0.030539 0.029938 0.029155 0.028180 0.026999 0.025608 0.024006 0.022201 0.020206 0.018030 0.015683 0.013172 0.010505 0.007690 0.004732 0.001641 -0.001579 -0.004922 -0.008381 -0.011957 -0.015646 -0.019444 -0.023349 -0.027358 -0.031469 -0.035682 -0.039995 -0.044408 -0.048923 -0.053539 -0.058255 -0.063072 -0.067988 -0.073000 -0.078106 -0.083303 -0.088585 -0.093949 -0.099390 -0.104903 -0.110484 -0.116127 -0.121830 -0.127588 -0.133396 -0.139248 -0.145137 -0.151050 -0.156970 -0.162873 -0.168732 -0.174517 -0.180196 -0.185746 -0.191152 -0.196407 -0.201520 -0.206515 -0.211424 -0.216289 -0.221158 -0.226087 -0.231126 -0.236325 -0.241732 -0.247387 -0.253326 -0.259583 -0.266187 -0.273161 -0.280514 -0.288243 -0.296323 -0.304703 -0.313307 -0.322047 -0.330829 -0.339560 -0.348156 -0.356558 -0.364731 -0.372661 -0.380347 -0.387799 -0.395037 -0.402083 -0.408963 -0.415706 -0.422341 -0.428903 -0.024736 0.025637 0.026453 0.027184 0.027831 0.028399 0.028887 0.029285 0.029595 0.029819 0.029944 0.029950 0.029822 0.029547 0.029110 0.028498 0.027701 0.026708 0.025505 0.024084 0.022444 0.020592 0.018542 0.016303 0.013887 0.011301 0.008553 0.005651 0.002603 -0.000584 -0.003904 -0.007350 -0.010917 -0.014606 -0.018411 -0.022331 -0.026361 -0.030499 -0.034744 -0.039095 -0.043551 -0.048112 -0.052779 -0.057552 -0.062430 -0.067412 -0.072496 -0.077679 -0.082958 -0.088330 -0.093788 -0.099330 -0.104950 -0.110642 -0.116404 -0.122231 -0.128119 -0.134064 -0.140063 -0.146107 -0.152188 -0.158290 -0.164390 -0.170462 -0.176475 -0.182394 -0.188191 -0.193846 -0.199346 -0.204694 -0.209905 -0.215008 -0.220042 -0.225052 -0.230093 -0.235220 -0.240486 -0.245940 -0.251628 -0.257588 -0.263854 -0.270460 -0.277436 -0.284800 -0.292559 -0.300705 -0.309204 -0.317994 -0.326990 -0.336098 -0.345218 -0.354256 -0.363130 -0.371789 -0.380206 -0.388371 -0.396285 -0.403964 -0.411429 -0.418705 -0.425819 -0.432801 -0.439685 -0.446507 -0.023267 0.024185 0.025020 0.025768 0.026428 0.027004 0.027499 0.027900 0.028209 0.028429 0.028550 0.028551 0.028416 0.028132 0.027686 0.027061 0.026248 0.025235 0.024009 0.022557 0.020878 0.018978 0.016871 0.014569 0.012082 0.009420 0.006589 0.003600 0.000459 -0.002825 -0.006246 -0.009797 -0.013475 -0.017278 -0.021203 -0.025246 -0.029404 -0.033674 -0.038056 -0.042548 -0.047150 -0.051863 -0.056686 -0.061619 -0.066661 -0.071811 -0.077066 -0.082423 -0.087877 -0.093426 -0.099064 -0.104786 -0.110586 -0.116462 -0.122408 -0.128422 -0.134500 -0.140639 -0.146833 -0.153075 -0.159351 -0.165642 -0.171921 -0.178158 -0.184318 -0.190366 -0.196277 -0.202034 -0.207631 -0.213077 -0.218395 -0.223617 -0.228788 -0.233958 -0.239186 -0.244527 -0.250035 -0.255758 -0.261739 -0.268013 -0.274617 -0.281583 -0.288940 -0.296704 -0.304879 -0.313449 -0.322372 -0.331573 -0.340962 -0.350436 -0.359891 -0.369232 -0.378384 -0.387304 -0.395969 -0.404372 -0.412522 -0.420435 -0.428135 -0.435648 -0.443003 -0.450234 -0.457377 -0.464471 -0.021819 0.022753 0.023603 0.024366 0.025039 0.025624 0.026124 0.026529 0.026835 0.027051 0.027167 0.027161 0.027018 0.026724 0.026266 0.025626 0.024796 0.023761 0.022511 0.021027 0.019308 0.017359 0.015195 0.012828 0.010269 0.007528 0.004614 0.001535 -0.001700 -0.005082 -0.008606 -0.012265 -0.016056 -0.019976 -0.024023 -0.028191 -0.032479 -0.036884 -0.041406 -0.046042 -0.050794 -0.055661 -0.060643 -0.065740 -0.070950 -0.076270 -0.081699 -0.087232 -0.092865 -0.098593 -0.104412 -0.110316 -0.116301 -0.122362 -0.128497 -0.134703 -0.140977 -0.147314 -0.153710 -0.160154 -0.166627 -0.173106 -0.179562 -0.185958 -0.192258 -0.198431 -0.204453 -0.210314 -0.216012 -0.221563 -0.226996 -0.232348 -0.237669 -0.243014 -0.248443 -0.254013 -0.259777 -0.265781 -0.272065 -0.278665 -0.285616 -0.292952 -0.300699 -0.308873 -0.317472 -0.326473 -0.335823 -0.345439 -0.355219 -0.365057 -0.374845 -0.384487 -0.393919 -0.403102 -0.412019 -0.420668 -0.429059 -0.437213 -0.445154 -0.452912 -0.460518 -0.468007 -0.475421 -0.482800 -0.020393 0.021340 0.022202 0.022977 0.023662 0.024255 0.024761 0.025168 0.025473 0.025683 0.025793 0.025780 0.025627 0.025321 0.024849 0.024193 0.023344 0.022286 0.021009 0.019493 0.017733 0.015734 0.013511 0.011078 0.008446 0.005626 0.002626 -0.000543 -0.003874 -0.007357 -0.010986 -0.014754 -0.018660 -0.022700 -0.026870 -0.031167 -0.035588 -0.040131 -0.044795 -0.049580 -0.054484 -0.059509 -0.064654 -0.069917 -0.075297 -0.080791 -0.086395 -0.092107 -0.097920 -0.103831 -0.109833 -0.115923 -0.122095 -0.128346 -0.134675 -0.141078 -0.147552 -0.154094 -0.160696 -0.167343 -0.174014 -0.180680 -0.187308 -0.193858 -0.200293 -0.206587 -0.212721 -0.218687 -0.224492 -0.230157 -0.235714 -0.241207 -0.246690 -0.252223 -0.257869 -0.263682 -0.269714 -0.276010 -0.282607 -0.289542 -0.296850 -0.304566 -0.312713 -0.321305 -0.330337 -0.339776 -0.349557 -0.359589 -0.369761 -0.379960 -0.390077 -0.400021 -0.409735 -0.419186 -0.428360 -0.437259 -0.445897 -0.454299 -0.462489 -0.470500 -0.478365 -0.486124 -0.493820 -0.501497 -0.018989 0.019945 0.020818 0.021602 0.022296 0.022898 0.023408 0.023818 0.024121 0.024325 0.024427 0.024406 0.024242 0.023923 0.023436 0.022762 0.021892 0.020809 0.019504 0.017954 0.016153 0.014103 0.011821 0.009320 0.006614 0.003712 0.000626 -0.002636 -0.006064 -0.009650 -0.013385 -0.017265 -0.021288 -0.025450 -0.029747 -0.034175 -0.038732 -0.043416 -0.048225 -0.053161 -0.058222 -0.063407 -0.068717 -0.074150 -0.079703 -0.085373 -0.091156 -0.097048 -0.103045 -0.109140 -0.115329 -0.121607 -0.127970 -0.134416 -0.140942 -0.147548 -0.154229 -0.160981 -0.167792 -0.174645 -0.181512 -0.188362 -0.195156 -0.201854 -0.208422 -0.214836 -0.221082 -0.227158 -0.233076 -0.238862 -0.244553 -0.250199 -0.255857 -0.261593 -0.267468 -0.273537 -0.279849 -0.286446 -0.293366 -0.300644 -0.308319 -0.316423 -0.324980 -0.334001 -0.343474 -0.353357 -0.363573 -0.374021 -0.384583 -0.395142 -0.405587 -0.415834 -0.425832 -0.435554 -0.444990 -0.454146 -0.463039 -0.471694 -0.480141 -0.488413 -0.496547 -0.504586 -0.512577 -0.520564 -0.017608 0.018569 0.019449 0.020240 0.020941 0.021550 0.022064 0.022476 0.022777 0.022975 0.023069 0.023039 0.022863 0.022530 0.022025 0.021332 0.020440 0.019331 0.017996 0.016411 0.014567 0.012465 0.010122 0.007553 0.004770 0.001787 -0.001388 -0.004744 -0.008271 -0.011961 -0.015806 -0.019799 -0.023942 -0.028228 -0.032654 -0.037215 -0.041911 -0.046739 -0.051698 -0.056787 -0.062007 -0.067357 -0.072835 -0.078440 -0.084168 -0.090017 -0.095982 -0.102058 -0.108239 -0.114522 -0.120900 -0.127370 -0.133928 -0.140573 -0.147303 -0.154116 -0.161009 -0.167975 -0.174998 -0.182056 -0.189119 -0.196148 -0.203102 -0.209944 -0.216643 -0.223178 -0.229539 -0.235731 -0.241769 -0.247685 -0.253519 -0.259328 -0.265176 -0.271128 -0.277244 -0.283581 -0.290182 -0.297090 -0.304340 -0.311972 -0.320022 -0.328524 -0.337501 -0.346960 -0.356882 -0.367214 -0.377869 -0.388733 -0.399685 -0.410601 -0.421373 -0.431925 -0.442211 -0.452209 -0.461912 -0.471330 -0.480484 -0.489400 -0.498112 -0.506653 -0.515066 -0.523398 -0.531696 -0.540007 -0.016253 0.017211 0.018095 0.018891 0.019596 0.020210 0.020729 0.021143 0.021441 0.021632 0.021718 0.021677 0.021489 0.021140 0.020617 0.019904 0.018987 0.017850 0.016483 0.014863 0.012975 0.010820 0.008415 0.005776 0.002916 -0.000152 -0.003417 -0.006869 -0.010496 -0.014292 -0.018247 -0.022358 -0.026622 -0.031035 -0.035592 -0.040290 -0.045127 -0.050102 -0.055213 -0.060459 -0.065841 -0.071358 -0.077007 -0.082787 -0.088694 -0.094724 -0.100873 -0.107135 -0.113504 -0.119977 -0.126548 -0.133213 -0.139971 -0.146820 -0.153758 -0.160785 -0.167895 -0.175078 -0.182314 -0.189577 -0.196831 -0.204034 -0.211145 -0.218129 -0.224958 -0.231615 -0.238097 -0.244410 -0.250575 -0.256628 -0.262616 -0.268600 -0.274650 -0.280830 -0.287201 -0.293815 -0.300715 -0.307940 -0.315531 -0.323524 -0.331959 -0.340869 -0.350276 -0.360182 -0.370561 -0.381347 -0.392442 -0.403724 -0.415063 -0.426335 -0.437435 -0.448295 -0.458873 -0.469151 -0.479126 -0.488813 -0.498234 -0.507419 -0.516402 -0.525223 -0.533926 -0.542561 -0.551179 -0.559827 -0.014927 0.015876 0.016756 0.017555 0.018263 0.018879 0.019401 0.019816 0.020112 0.020296 0.020373 0.020321 0.020119 0.019754 0.019212 0.018475 0.017532 0.016367 0.014966 0.013309 0.011377 0.009168 0.006699 0.003988 0.001050 -0.002103 -0.005460 -0.009009 -0.012740 -0.016644 -0.020712 -0.024941 -0.029330 -0.033871 -0.038563 -0.043400 -0.048381 -0.053506 -0.058771 -0.064178 -0.069726 -0.075412 -0.081236 -0.087193 -0.093281 -0.099495 -0.105830 -0.112280 -0.118840 -0.125506 -0.132273 -0.139138 -0.146100 -0.153158 -0.160310 -0.167555 -0.174886 -0.182289 -0.189739 -0.197205 -0.204646 -0.212018 -0.219284 -0.226408 -0.233368 -0.240152 -0.246759 -0.253198 -0.259497 -0.265695 -0.271847 -0.278019 -0.284283 -0.290704 -0.297340 -0.304240 -0.311446 -0.318999 -0.326937 -0.335300 -0.344130 -0.353457 -0.363304 -0.373667 -0.384510 -0.395755 -0.407292 -0.418990 -0.430716 -0.442343 -0.453773 -0.464943 -0.475817 -0.486380 -0.496633 -0.506594 -0.516289 -0.525750 -0.535014 -0.544124 -0.553128 -0.562080 -0.571030 -0.580027 -0.013627 0.014564 0.015436 0.016231 0.016940 0.017556 0.018079 0.018495 0.018788 0.018965 0.019033 0.018969 0.018752 0.018370 0.017807 0.017047 0.016077 0.014881 0.013445 0.011749 0.009771 0.007507 0.004974 0.002190 -0.000828 -0.004069 -0.007519 -0.011168 -0.015003 -0.019016 -0.023200 -0.027551 -0.032065 -0.036738 -0.041566 -0.046546 -0.051674 -0.056951 -0.062375 -0.067945 -0.073660 -0.079520 -0.085520 -0.091658 -0.097929 -0.104329 -0.110853 -0.117494 -0.124248 -0.131111 -0.138077 -0.145146 -0.152317 -0.159589 -0.166961 -0.174429 -0.181984 -0.189608 -0.197271 -0.204936 -0.212560 -0.220099 -0.227517 -0.234782 -0.241876 -0.248791 -0.255527 -0.262099 -0.268538 -0.274890 -0.281216 -0.287589 -0.294079 -0.300751 -0.307661 -0.314856 -0.322377 -0.330264 -0.338559 -0.347301 -0.356533 -0.366289 -0.376585 -0.387415 -0.398728 -0.410436 -0.422416 -0.434530 -0.446641 -0.458624 -0.470386 -0.481870 -0.493045 -0.503898 -0.514434 -0.524676 -0.534652 -0.544396 -0.553949 -0.563359 -0.572676 -0.581955 -0.591250 -0.600608 -0.012351 0.013276 0.014134 0.014920 0.015627 0.016241 0.016763 0.017179 0.017469 0.017639 0.017696 0.017620 0.017389 0.016987 0.016404 0.015618 0.014620 0.013392 0.011919 0.010183 0.008158 0.005837 0.003238 0.000381 -0.002720 -0.006049 -0.009595 -0.013344 -0.017286 -0.021411 -0.025712 -0.030186 -0.034830 -0.039637 -0.044604 -0.049728 -0.055007 -0.060439 -0.066024 -0.071760 -0.077647 -0.083681 -0.089861 -0.096182 -0.102639 -0.109228 -0.115943 -0.122779 -0.129729 -0.136791 -0.143962 -0.151239 -0.158624 -0.166115 -0.173711 -0.181407 -0.189189 -0.197034 -0.204908 -0.212769 -0.220572 -0.228276 -0.235846 -0.243254 -0.250485 -0.257535 -0.264404 -0.271114 -0.277701 -0.284216 -0.290729 -0.297313 -0.304041 -0.310974 -0.318167 -0.325664 -0.333507 -0.341737 -0.350395 -0.359525 -0.369170 -0.379364 -0.390121 -0.401425 -0.413215 -0.425388 -0.437812 -0.450343 -0.462839 -0.475178 -0.487275 -0.499077 -0.510556 -0.521703 -0.532529 -0.543058 -0.553322 -0.563358 -0.573211 -0.582930 -0.592571 -0.602191 -0.611842 -0.621573 +0.030591 0.032222 0.033804 0.035332 0.036803 0.038216 0.039565 0.040849 0.042064 0.043207 0.044273 0.045259 0.046161 0.046975 0.047700 0.048333 0.048876 0.049330 0.049695 0.049974 0.050168 0.050278 0.050302 0.050243 0.050100 0.049874 0.049567 0.049180 0.048711 0.048156 0.047511 0.046765 0.045913 0.044952 0.043888 0.042723 0.041453 0.040083 0.038619 0.037065 0.035421 0.033691 0.031878 0.029988 0.028030 0.026013 0.023941 0.021821 0.019658 0.017455 0.015218 0.012950 +0.041171 0.042782 0.044314 0.045764 0.047125 0.048393 0.049565 0.050635 0.051603 0.052468 0.053232 0.053895 0.054458 0.054920 0.055280 0.055532 0.055675 0.055709 0.055634 0.055451 0.055159 0.054751 0.054221 0.053559 0.052762 0.051835 0.050780 0.049596 0.048288 0.046864 0.045325 0.043672 0.041909 0.040041 0.038080 0.036035 0.033913 0.031719 0.029460 0.027141 0.024768 0.022345 0.019876 0.017365 0.014816 0.012233 0.009617 0.006972 0.004299 0.001599 -0.001125 -0.003873 +0.050298 0.051814 0.053228 0.054538 0.055741 0.056837 0.057821 0.058691 0.059439 0.060059 0.060545 0.060889 0.061084 0.061127 0.061010 0.060725 0.060266 0.059640 0.058852 0.057902 0.056797 0.055546 0.054153 0.052618 0.050947 0.049155 0.047252 0.045246 0.043147 0.040959 0.038686 0.036331 0.033900 0.031397 0.028825 0.026190 0.023497 0.020751 0.017956 0.015117 0.012237 0.009320 0.006368 0.003383 0.000365 -0.002687 -0.005772 -0.008888 -0.012031 -0.015193 -0.018366 -0.021541 +0.058302 0.059809 0.061193 0.062443 0.063544 0.064476 0.065223 0.065768 0.066090 0.066179 0.066040 0.065681 0.065106 0.064330 0.063373 0.062238 0.060934 0.059470 0.057863 0.056126 0.054267 0.052295 0.050218 0.048040 0.045765 0.043397 0.040938 0.038391 0.035756 0.033038 0.030241 0.027369 0.024429 0.021426 0.018365 0.015251 0.012089 0.008882 0.005633 0.002343 -0.000989 -0.004363 -0.007782 -0.011245 -0.014751 -0.018293 -0.021860 -0.025439 -0.029015 -0.032573 -0.036100 -0.039585 +0.066025 0.067417 0.068556 0.069416 0.069984 0.070254 0.070226 0.069919 0.069360 0.068568 0.067568 0.066387 0.065045 0.063558 0.061934 0.060183 0.058310 0.056320 0.054218 0.052006 0.049685 0.047259 0.044730 0.042099 0.039369 0.036543 0.033622 0.030609 0.027509 0.024328 0.021072 0.017747 0.014359 0.010912 0.007411 0.003857 0.000253 -0.003403 -0.007113 -0.010880 -0.014705 -0.018588 -0.022523 -0.026498 -0.030495 -0.034492 -0.038466 -0.042395 -0.046263 -0.050060 -0.053785 -0.057449 +0.071826 0.072494 0.072799 0.072755 0.072397 0.071774 0.070934 0.069913 0.068734 0.067408 0.065944 0.064345 0.062616 0.060762 0.058785 0.056686 0.054468 0.052129 0.049669 0.047090 0.044393 0.041580 0.038653 0.035614 0.032469 0.029216 0.025862 0.022415 0.018880 0.015265 0.011576 0.007818 0.003994 0.000107 -0.003843 -0.007858 -0.011941 -0.016096 -0.020324 -0.024625 -0.028989 -0.033399 -0.037831 -0.042254 -0.046635 -0.050948 -0.055172 -0.059298 -0.063328 -0.067283 -0.071206 -0.075151 +0.073076 0.072915 0.072502 0.071882 0.071083 0.070127 0.069019 0.067766 0.066369 0.064831 0.063155 0.061342 0.059394 0.057309 0.055087 0.052726 0.050225 0.047583 0.044800 0.041878 0.038821 0.035631 0.032314 0.028874 0.025314 0.021641 0.017864 0.013990 0.010027 0.005981 0.001856 -0.002346 -0.006625 -0.010982 -0.015424 -0.019953 -0.024572 -0.029278 -0.034062 -0.038906 -0.043778 -0.048645 -0.053464 -0.058198 -0.062820 -0.067314 -0.071685 -0.075957 -0.080185 -0.084436 -0.088783 -0.093267 +0.070524 0.070217 0.069738 0.069097 0.068292 0.067324 0.066191 0.064893 0.063433 0.061810 0.060025 0.058077 0.055965 0.053688 0.051243 0.048630 0.045849 0.042901 0.039789 0.036518 0.033093 0.029520 0.025809 0.021961 0.017986 0.013894 0.009692 0.005390 0.000991 -0.003500 -0.008083 -0.012760 -0.017536 -0.022416 -0.027401 -0.032491 -0.037678 -0.042945 -0.048261 -0.053588 -0.058881 -0.064087 -0.069165 -0.074090 -0.078860 -0.083495 -0.088052 -0.092611 -0.097259 -0.102075 -0.107103 -0.112327 +0.066420 0.066352 0.066099 0.065652 0.065004 0.064155 0.063103 0.061844 0.060380 0.058712 0.056842 0.054771 0.052498 0.050024 0.047348 0.044473 0.041399 0.038132 0.034678 0.031046 0.027245 0.023286 0.019172 0.014913 0.010520 0.006002 0.001368 -0.003378 -0.008233 -0.013196 -0.018275 -0.023474 -0.028795 -0.034239 -0.039801 -0.045469 -0.051216 -0.057005 -0.062791 -0.068516 -0.074117 -0.079551 -0.084800 -0.089872 -0.094814 -0.099705 -0.104639 -0.109719 -0.115053 -0.120690 -0.126605 -0.132708 +0.061858 0.062120 0.062174 0.061998 0.061576 0.060899 0.059966 0.058774 0.057323 0.055618 0.053665 0.051466 0.049023 0.046341 0.043421 0.040268 0.036888 0.033290 0.029486 0.025486 0.021305 0.016949 0.012425 0.007748 0.002927 -0.002028 -0.007113 -0.012325 -0.017668 -0.023146 -0.028765 -0.034527 -0.040427 -0.046460 -0.052606 -0.058836 -0.065106 -0.071364 -0.077539 -0.083559 -0.089381 -0.094993 -0.100415 -0.105709 -0.110966 -0.116294 -0.121829 -0.127699 -0.133973 -0.140629 -0.147552 -0.154539 +0.057235 0.057820 0.058181 0.058287 0.058107 0.057624 0.056827 0.055714 0.054285 0.052544 0.050503 0.048168 0.045545 0.042642 0.039466 0.036023 0.032326 0.028388 0.024226 0.019853 0.015282 0.010518 0.005576 0.000469 -0.004794 -0.010207 -0.015768 -0.021481 -0.027352 -0.033385 -0.039580 -0.045933 -0.052432 -0.059057 -0.065775 -0.072537 -0.079284 -0.085936 -0.092416 -0.098675 -0.104704 -0.110527 -0.116209 -0.121849 -0.127582 -0.133565 -0.139961 -0.146880 -0.154312 -0.162110 -0.170004 -0.177694 +0.052739 0.053588 0.054219 0.054585 0.054639 0.054351 0.053699 0.052672 0.051269 0.049493 0.047359 0.044879 0.042066 0.038931 0.035486 0.031744 0.027721 0.023437 0.018908 0.014152 0.009176 0.003995 -0.001378 -0.006931 -0.012657 -0.018553 -0.024624 -0.030877 -0.037313 -0.043934 -0.050732 -0.057693 -0.064795 -0.072004 -0.079270 -0.086525 -0.093690 -0.100678 -0.107433 -0.113941 -0.120215 -0.126315 -0.132356 -0.138490 -0.144901 -0.151802 -0.159348 -0.167544 -0.176226 -0.185079 -0.193749 -0.201959 +0.048518 0.049525 0.050360 0.050942 0.051208 0.051102 0.050592 0.049653 0.048277 0.046464 0.044231 0.041598 0.038585 0.035208 0.031485 0.027434 0.023077 0.018436 0.013532 0.008378 0.002986 -0.002627 -0.008447 -0.014466 -0.020680 -0.027093 -0.033711 -0.040537 -0.047570 -0.054803 -0.062219 -0.069795 -0.077497 -0.085274 -0.093059 -0.100771 -0.108320 -0.115635 -0.122683 -0.129461 -0.136018 -0.142475 -0.149005 -0.155830 -0.163200 -0.171317 -0.180216 -0.189752 -0.199592 -0.209328 -0.218623 -0.227299 +0.044591 0.045711 0.046665 0.047403 0.047841 0.047894 0.047512 0.046657 0.045305 0.043453 0.041116 0.038324 0.035101 0.031472 0.027462 0.023093 0.018392 0.013384 0.008091 0.002526 -0.003295 -0.009356 -0.015643 -0.022153 -0.028887 -0.035851 -0.043049 -0.050479 -0.058133 -0.065993 -0.074036 -0.082229 -0.090523 -0.098853 -0.107141 -0.115296 -0.123231 -0.130885 -0.138228 -0.145290 -0.152189 -0.159123 -0.166347 -0.174139 -0.182742 -0.192250 -0.202566 -0.213378 -0.224235 -0.234726 -0.244592 -0.253785 +0.040906 0.042130 0.043169 0.044002 0.044559 0.044741 0.044466 0.043683 0.042352 0.040458 0.038012 0.035051 0.031611 0.027722 0.023415 0.018718 0.013662 0.008275 0.002579 -0.003412 -0.009678 -0.016204 -0.022983 -0.030014 -0.037300 -0.044847 -0.052654 -0.060712 -0.069003 -0.077503 -0.086180 -0.094989 -0.103872 -0.112755 -0.121549 -0.130157 -0.138483 -0.146461 -0.154090 -0.161477 -0.168834 -0.176447 -0.184616 -0.193616 -0.203614 -0.214589 -0.226299 -0.238282 -0.250050 -0.261237 -0.271703 -0.281489 +0.037416 0.038742 0.039858 0.040751 0.041381 0.041654 0.041461 0.040732 0.039413 0.037473 0.034913 0.031777 0.028111 0.023953 0.019339 0.014303 0.008880 0.003102 -0.003011 -0.009443 -0.016172 -0.023188 -0.030485 -0.038066 -0.045936 -0.054094 -0.062535 -0.071239 -0.080182 -0.089332 -0.098649 -0.108083 -0.117566 -0.127019 -0.136337 -0.145395 -0.154085 -0.162361 -0.170301 -0.178120 -0.186122 -0.194634 -0.203956 -0.214321 -0.225804 -0.238269 -0.251308 -0.264379 -0.276997 -0.288886 -0.300008 -0.310466 +0.034082 0.035512 0.036698 0.037639 0.038309 0.038635 0.038497 0.037802 0.036486 0.034492 0.031815 0.028497 0.024597 0.020160 0.015228 0.009842 0.004041 -0.002142 -0.008689 -0.015578 -0.022792 -0.030321 -0.038165 -0.046327 -0.054808 -0.063604 -0.072698 -0.082064 -0.091673 -0.101485 -0.111457 -0.121534 -0.131646 -0.141692 -0.151530 -0.161005 -0.170019 -0.178602 -0.186944 -0.195359 -0.204199 -0.213793 -0.224419 -0.236250 -0.249274 -0.263214 -0.277527 -0.291630 -0.305079 -0.317705 -0.329546 -0.340751 +0.030877 0.032408 0.033660 0.034645 0.035336 0.035688 0.035577 0.034896 0.033565 0.031513 0.028713 0.025207 0.021064 0.016338 0.011078 0.005330 -0.000863 -0.007466 -0.014462 -0.021829 -0.029550 -0.037619 -0.046038 -0.054808 -0.063928 -0.073383 -0.083149 -0.093194 -0.103482 -0.113974 -0.124627 -0.135382 -0.146152 -0.156794 -0.167117 -0.176963 -0.186293 -0.195251 -0.204133 -0.213312 -0.223153 -0.233970 -0.246009 -0.259382 -0.273981 -0.289370 -0.304918 -0.320018 -0.334310 -0.347720 -0.360348 -0.372369 +0.027777 0.029406 0.030722 0.031745 0.032448 0.032805 0.032698 0.032012 0.030650 0.028531 0.025603 0.021902 0.017507 0.012482 0.006881 0.000760 -0.005836 -0.012877 -0.020341 -0.028206 -0.036458 -0.045094 -0.054116 -0.063522 -0.073304 -0.083437 -0.093893 -0.104634 -0.115622 -0.126822 -0.138192 -0.149662 -0.161102 -0.172310 -0.183069 -0.193262 -0.202953 -0.212396 -0.221962 -0.232054 -0.243030 -0.255178 -0.268716 -0.283696 -0.299885 -0.316708 -0.333456 -0.349541 -0.364707 -0.378956 -0.392433 -0.405338 +0.024765 0.026486 0.027865 0.028921 0.029630 0.029980 0.029859 0.029148 0.027740 0.025544 0.022482 0.018578 0.013922 0.008586 0.002635 -0.003874 -0.010889 -0.018385 -0.026336 -0.034720 -0.043528 -0.052758 -0.062410 -0.072478 -0.082942 -0.093774 -0.104937 -0.116393 -0.128110 -0.140056 -0.152185 -0.164393 -0.176486 -0.188211 -0.199372 -0.209932 -0.220067 -0.230113 -0.240498 -0.251631 -0.263846 -0.277416 -0.292529 -0.309171 -0.326963 -0.345202 -0.363123 -0.380205 -0.396285 -0.411429 -0.425817 -0.439679 +0.021842 0.023634 0.025071 0.026157 0.026869 0.027201 0.027054 0.026302 0.024833 0.022548 0.019345 0.015230 0.010303 0.004647 -0.001669 -0.008577 -0.016028 -0.023996 -0.032455 -0.041383 -0.050772 -0.060623 -0.070931 -0.081682 -0.092849 -0.104398 -0.116289 -0.128487 -0.140968 -0.153704 -0.166626 -0.179568 -0.192273 -0.204476 -0.216038 -0.227023 -0.237692 -0.248460 -0.259787 -0.272066 -0.285606 -0.300677 -0.317440 -0.335790 -0.355194 -0.374831 -0.393913 -0.412017 -0.429058 -0.445153 -0.460514 -0.475412 +0.019004 0.020843 0.022327 0.023440 0.024153 0.024460 0.024276 0.023471 0.021928 0.019540 0.016189 0.011855 0.006647 0.000658 -0.006034 -0.013357 -0.021261 -0.029721 -0.038708 -0.048203 -0.058200 -0.068697 -0.079685 -0.091140 -0.103030 -0.115316 -0.127959 -0.140933 -0.154221 -0.167788 -0.181514 -0.195166 -0.208440 -0.221106 -0.233104 -0.244581 -0.255880 -0.267484 -0.279857 -0.293365 -0.308306 -0.324955 -0.343440 -0.363541 -0.384561 -0.405574 -0.425827 -0.444988 -0.463037 -0.480139 -0.496541 -0.512566 +0.016259 0.018114 0.019625 0.020760 0.021473 0.021750 0.021521 0.020651 0.019021 0.016518 0.013010 0.008449 0.002949 -0.003386 -0.010467 -0.018219 -0.026596 -0.035567 -0.045104 -0.055191 -0.065821 -0.076988 -0.088677 -0.100857 -0.113491 -0.126536 -0.139960 -0.153749 -0.167888 -0.182312 -0.196836 -0.211158 -0.224978 -0.238123 -0.250604 -0.262642 -0.274671 -0.287216 -0.300722 -0.315528 -0.331943 -0.350247 -0.370526 -0.392411 -0.415042 -0.437424 -0.458867 -0.479124 -0.498231 -0.516398 -0.533919 -0.551166 +0.013622 0.015448 0.016963 0.018108 0.018818 0.019064 0.018784 0.017840 0.016110 0.013479 0.009805 0.005007 -0.000797 -0.007489 -0.014974 -0.023172 -0.032039 -0.041542 -0.051651 -0.062353 -0.073640 -0.085501 -0.097912 -0.110838 -0.124235 -0.138066 -0.152307 -0.166952 -0.181979 -0.197270 -0.212567 -0.227532 -0.241898 -0.255554 -0.268567 -0.281242 -0.294100 -0.307676 -0.322383 -0.338554 -0.356515 -0.376555 -0.398693 -0.422386 -0.446622 -0.470375 -0.493039 -0.514431 -0.534649 -0.553944 -0.572667 -0.591235 diff --git a/Examples/DISCON.IN b/Examples/DISCON.IN index 24ca733bf..523448349 100644 --- a/Examples/DISCON.IN +++ b/Examples/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the NREL-5MW wind turbine -! - File written using ROSCO Controller tuning logic on 09/28/20 +! - File written using ROSCO Controller tuning logic on 12/17/20 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file} @@ -28,12 +28,12 @@ 0.00000 1.00000 ! F_FlpCornerFreq - Corner frequency and damping in the second order low pass filter of the blade root bending moment for flap control [rad/s, -]. !------- BLADE PITCH CONTROL ---------------------------------------------- -27 ! PC_GS_n - Amount of gain-scheduling table entries -0.059999 0.087088 0.108614 0.127859 0.144840 0.161163 0.175942 0.190159 0.204314 0.216979 0.229469 0.242120 0.254317 0.265260 0.276444 0.287914 0.299653 0.309477 0.319290 0.329399 0.339820 0.350541 0.361041 0.369471 0.378187 0.387196 0.396499 ! PC_GS_angles - Gain-schedule table: pitch angles --0.014412 -0.012578 -0.011083 -0.009842 -0.008794 -0.007898 -0.007123 -0.006446 -0.005850 -0.005320 -0.004847 -0.004422 -0.004037 -0.003688 -0.003370 -0.003078 -0.002810 -0.002562 -0.002333 -0.002120 -0.001923 -0.001738 -0.001565 -0.001404 -0.001252 -0.001109 -0.000974 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.005329 -0.004786 -0.004343 -0.003975 -0.003665 -0.003400 -0.003170 -0.002970 -0.002793 -0.002636 -0.002496 -0.002370 -0.002256 -0.002153 -0.002058 -0.001972 -0.001892 -0.001819 -0.001751 -0.001688 -0.001630 -0.001575 -0.001524 -0.001476 -0.001431 -0.001389 -0.001349 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +28 ! PC_GS_n - Amount of gain-scheduling table entries +0.000000 0.055534 0.083631 0.106008 0.125390 0.142939 0.159177 0.174442 0.188870 0.202686 0.215959 0.228773 0.241173 0.253254 0.264982 0.276438 0.287644 0.298587 0.309327 0.319883 0.330260 0.340461 0.350473 0.360332 0.370046 0.379623 0.389066 0.398385 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.019261 -0.016189 -0.013852 -0.012014 -0.010531 -0.009308 -0.008284 -0.007413 -0.006663 -0.006010 -0.005437 -0.004931 -0.004479 -0.004074 -0.003709 -0.003378 -0.003077 -0.002801 -0.002549 -0.002316 -0.002100 -0.001901 -0.001715 -0.001542 -0.001381 -0.001230 -0.001088 -0.000954 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.006968 -0.006022 -0.005302 -0.004736 -0.004279 -0.003903 -0.003587 -0.003319 -0.003088 -0.002887 -0.002710 -0.002554 -0.002415 -0.002290 -0.002178 -0.002076 -0.001983 -0.001898 -0.001820 -0.001749 -0.001682 -0.001621 -0.001564 -0.001510 -0.001461 -0.001414 -0.001370 -0.001329 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570800000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. -0.00873000000 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.174500000000 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. @@ -43,9 +43,9 @@ 0.017450000000 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.1 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0e+00 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0e+00 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. 0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ @@ -60,7 +60,7 @@ 43093.51876000 ! VS_RtTq - Rated torque, [Nm]. 122.9096700000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --999.026780000 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-998.986000000 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) -185.790360000 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 7.51 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. @@ -78,9 +78,9 @@ 1.225 ! WE_RhoAir - Air density, [kg m^-3] "Cp_Ct_Cq.NREL5MW.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) 52 24 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -44 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.00 11.90 12.40 12.90 13.40 13.90 14.40 14.90 15.40 15.90 16.40 16.90 17.40 17.90 18.40 18.90 19.40 19.90 20.40 20.90 21.40 21.90 22.40 22.90 23.40 23.90 24.40 24.90 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.01770358 -0.02065417 -0.02360477 -0.02655536 -0.02950596 -0.03245656 -0.03540715 -0.03835775 -0.04130834 -0.04425894 -0.04720953 -0.05016013 -0.05311073 -0.05606132 -0.05901192 -0.06196251 -0.06491311 -0.05663600 -0.06760328 -0.07958282 -0.09338576 -0.10660375 -0.12219164 -0.13633634 -0.15187319 -0.16971407 -0.18449677 -0.20097910 -0.21989102 -0.23853320 -0.25398015 -0.27191112 -0.29238174 -0.31524365 -0.33079361 -0.34730696 -0.36620087 -0.38763778 -0.41161251 -0.43863651 -0.46960731 -0.50322805 -0.53955583 -0.57860701 ! WE_FOPoles - First order system poles +45 ! WE_FOPoles_N - Number of first-order system poles used in EKF +3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.00 11.40 11.90 12.40 12.90 13.40 13.90 14.40 14.90 15.40 15.90 16.40 16.90 17.40 17.90 18.40 18.90 19.40 19.90 20.40 20.90 21.40 21.90 22.40 22.90 23.40 23.90 24.40 24.90 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.01770597 -0.02065697 -0.02360796 -0.02655896 -0.02950995 -0.03246095 -0.03541194 -0.03836294 -0.04131393 -0.04426493 -0.04721592 -0.05016692 -0.05311791 -0.05606891 -0.05901990 -0.06197090 -0.06492189 -0.05552595 -0.05550495 -0.06612150 -0.07823391 -0.09181547 -0.10541082 -0.12063288 -0.13526687 -0.15098364 -0.16805193 -0.18381181 -0.20083198 -0.21911394 -0.23737327 -0.25461250 -0.27320900 -0.29297106 -0.31361831 -0.33167820 -0.35038172 -0.37015848 -0.39096899 -0.41270837 -0.43763254 -0.47283160 -0.50939485 -0.54727356 -0.58644343 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ 0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] @@ -101,9 +101,9 @@ 0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- MINIMUM PITCH SATURATION ------------------------------------------- -44 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) -3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.00 11.90 12.40 12.90 13.40 13.90 14.40 14.90 15.40 15.90 16.40 16.90 17.40 17.90 18.40 18.90 19.40 19.90 20.40 20.90 21.40 21.90 22.40 22.90 23.40 23.90 24.40 24.90 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +45 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) +3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.00 11.40 11.90 12.40 12.90 13.40 13.90 14.40 14.90 15.40 15.90 16.40 16.90 17.40 17.90 18.40 18.90 19.40 19.90 20.40 20.90 21.40 21.90 22.40 22.90 23.40 23.90 24.40 24.90 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 ! PS_BldPitchMin - Minimum blade pitch angles [rad] !------- SHUTDOWN ----------------------------------------------------------- 0.436300000000 ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad] diff --git a/Examples/README.md b/Examples/README.md index 1e79a7c0b..057bcc374 100644 --- a/Examples/README.md +++ b/Examples/README.md @@ -11,4 +11,5 @@ Examples: 7. Load saved turbine, tune controller, plot minimum pitch schedule. 8. Plot some OpenFAST output data. 9. Run turbsim to compile binary. -10. Tune a controller for distributed aerodynamic control. \ No newline at end of file +10. Tune a controller for distributed aerodynamic control. +11. Generate simplified linear models, save the parameters to a file. \ No newline at end of file diff --git a/Examples/ROSCO_walkthrough.ipynb b/Examples/ROSCO_walkthrough.ipynb index a69bafa37..d6b13ab47 100644 --- a/Examples/ROSCO_walkthrough.ipynb +++ b/Examples/ROSCO_walkthrough.ipynb @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 28, "metadata": { "slideshow": { "slide_type": "subslide" @@ -43,7 +43,8 @@ "from ROSCO_toolbox import sim as ROSCO_sim\n", "from ROSCO_toolbox import utilities as ROSCO_utilities\n", "from ROSCO_toolbox import controller as ROSCO_controller\n", - "from ROSCO_toolbox import control_interface as ROSCO_ci" + "from ROSCO_toolbox import control_interface as ROSCO_ci\n", + "from ofTools.fast_io.output_processing import output_processing\n" ] }, { @@ -99,12 +100,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'bld_edgewise_freq': 6.2831853,\n", + "{'TSR_operational': None,\n", + " 'bld_edgewise_freq': 6.2831853,\n", + " 'bld_flapwise_freq': 0.0,\n", " 'max_pitch_rate': 0.1745,\n", " 'max_torque_rate': 1500000.0,\n", + " 'ptfm_freq': 0.2325,\n", " 'rated_power': 5000000.0,\n", " 'rated_rotor_speed': 1.26711,\n", " 'rotor_inertia': 38677040.613,\n", + " 'twr_freq': 0.4499,\n", " 'v_max': 25.0,\n", " 'v_min': 3.0,\n", " 'v_rated': 11.4}\n" @@ -163,7 +168,8 @@ "-----------------------------------------------------------------------------\n", "Loading wind turbine data for NREL's ROSCO tuning and simulation processeses\n", "-----------------------------------------------------------------------------\n", - "Loading FAST model: 5MW_Land.fst \n", + "Loading FAST model: NREL-5MW.fst \n", + "Loading rotor performace data from text file: /Users/dzalkind/Tools/ROSCO_toolbox/Test_Cases/NREL-5MW/Cp_Ct_Cq.NREL5MW.txt\n", "Loading rotor performace data from text file: Cp_Ct_Cq.NREL5MW.txt\n" ] } @@ -187,7 +193,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "slideshow": { "slide_type": "subslide" @@ -199,7 +205,7 @@ "output_type": "stream", "text": [ "-------------- Turbine Info --------------\n", - "Turbine Name: 5MW_Land\n", + "Turbine Name: NREL-5MW\n", "Rated Power: 5000000.0 [W]\n", "Total Inertia: 43702538.1 [kg m^2]\n", "Rotor Radius: 63.0 [m]\n", @@ -211,9 +217,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEXCAYAAACjyo8UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydd3hUVfrHP2dKZiaZ9F5IbzTpKCoWQHEVOyoi1nXVn3V1de2Kve26trX3iqLIooi9iyAgiGAo6SSk9zJ9zu+PmcQA6Zlkktz5PM88M3Puuee+3znJO3dOeV8hpcSHDx8+fIxeVN42wIcPHz58DC4+R+/Dhw8foxyfo/fhw4ePUY7P0fvw4cPHKMfn6H348OFjlONz9D58+PAxyvE5eh8+vIwQYpoQ4ichRIsQQgohVrrLU4UQnwkhGtzlW4QQye7XUghxQS/b7/M5PkYXPkfvo88IIb7t4DikEMIhhCgVQnwkhDjU2/YNBCGETghxrRDiZ7eDNQkhdgshXhJCjB2ky74EHAoIYAOw013+KHAs4A9sBLYCFmC9+1HVy/b7c06fEEK86v5bKByM9n0MDI23DfAxorECmwEdMAFYABwnhDhMSvmLVy3rAiGEBnDITnYKCiFCga+AKe6iZmA3MAa4CPgdyBkEs8a7n/8rpbyhk/KVUsozOpQf0pfGpZRlfT3Hx+jCd0fvYyCUSSkPkVJOAU5xl2mAxW0VhBAnCSF+EEI0CyHMQojfhBD/J4QQ7uNL3XeCeR3O2eAuu939fnyHXw/T3GWBQohHhRAFQgirEKJMCPGsECKkQzvtd5lCiAuEEAW4vpyCu9DzFH86+X8BYVLKg6SUocAcXI6+re3DOwyrWIQQO4UQtwohtB3qCCHEFW7NJnfdVUKIce7jRwkhJH/ecF3vtvdVd3m6u3xhh/JOh2GEEOlCiDfdn4NVCLFXCPGc+1hX52QKIZYJISrd5+wWQtwghFB1qFPoPu91IcRd7vbr3NcKbKsDnO8+JanDtY7q4nP2MdRIKX0P36NPD+BbQAKFHcoWuMsk8Ji7bEmHsgqgoMP7B9x1jupQFgMEADb3+8/ddS51v6/HdXPiB2xyl1mA33DdfUt3udZ93qvuMivgwDUkUg6EdKIpuMN1twCiG/1Hdahb5263TcM7Heo92aH8D/e123SkAlOBdR3qlLjf3+5+trjLqzqUJ3eof4H7OuluO6RbZ467rUL38Z7OqXN/hg73+yc7aCjs8Bk2Avkd2rrPXedDt41t/bHO/Zjq7b9V38Pdj942wPcYeQ/+dPRt/9SbOzg+G3Cwu16Ru2wDoMc1Bv1OB8cRhmvYx+QuWwjMdb9ucDsWNfCmu2yVu93zOlxrvLssCbC7y89xl73awSld6i4TdOLEgRkd6j7Zg/7v3PWKgVB32YMdzp/odq5O9/tL3HV0wDZ32Qsd2ms7b+l+12lzsq92KOvMab/c4fM4okPdqb04ZycQ6C47hz+/LMbsZ0MjEI/ri3aDu2xdh2u1fdaF3v779D0OfPiGbnwMBD/gYOAgXHd0q4EjpZTrhRBRQKK73odSSrN0eYR33GVaYJKUsu3LAuAw4HD362eAQGASMNtd9o37+WD3swbY5h7mKMT1pQAHjkebgBcApJtOtIgOr3uK9DfD/fyplLLO/frtDsenu+u0tfmc20Yzf467e3LMvO3z+FFK+X1boZTy116ckwk0uu17012mAmbuV/9rKWWplNLJn5PF0QMz28dQ4ZuM9TEQiqSUyb2o15Pj/AbXcMjhuIY1ioBlwI24xvvbvjC+dT+3OVAb0Jkzq9jvfaXbQXXHTly/CDTA4UII0cUXQke6O97xi+M3XE6+I3t7aHuwabOvBsjt5Lhpv/f1HV7b92vDxzDHd0fvY1CQUlbiGtoAOE0IoXdPwC5yl9lwOUD404FPBmYBP+JaStiAa3we/hxHBmhb0aMB/i5dE8KH4PqiuIs/70z7Ym8D8J777RTgfvcKHQCEEEcIIea4325wP//FvVIHOkxA41oK2Ta8Aa5x+0M62HkFrsleT7He/Xy4EOKwDjZP7uacts+wBTixg23HAs9IKT/pow2t7mf/tol2H8MHn6P3MZjc6n6ejmtoJR842132byllrfv1Olx3kBpck7E/ue/AfwaM7jrfd7grfwf3hCmwVgixXQiRg+uL4RNcY9L94Upc8w0ANwG1QoitQohqXOPyB7mP3YnrrnYMkC+E2Inr1wfAMinl71LKAuBZd9mDQogi9+qbWlxfBMf208bOuB/XHbcG+F4I8YcQohjXJGl35zTg+rVUJITYLITIx3WH/2o/bNjhfo4Edggh1gkhDP1ox8cg4HP0PgYNKeWbwMnAT7jG22Nx3alfDtzSoZ4VWNvh1B/dzz90KPu2Q30LrqGeR3F9gWTgcjDbgXtxTXj2x946XBuX/sGfd7yZQBPwGvC5u963wNHu9yogBdiFa1XMeR2avBK4GtcvkSh3vTJc8w8f9MfGLuzOxTUn8DauuZIMXE7/827O2YVrnH4ZLn3jcU0Wfwv8vR9mvIxLUwOuz+xg/pwz8eFlRM/DkD58+PDhYyTju6P34cOHj1GOz9H78OHDxyjH5+h9+PDhY5Tjc/Q+fPjwMcrxOXofPnz4GOWM6J2xERERMjk5uU/n2O12NJoRLbtPFOeUIJ2SpPFjAOXp74iStYOy9StB+6ZNm6qllJGdHRvRypOTk9m4cWOfzsnJyWHs2MHKHzH8+OL173j4gqd48IHbmHbMJMXp74iStYOy9StBuxCiqKtjihu68ff397YJQ8qRZx1KaHQwKx5fDShPf0eUrB2UrV/J2kGBjj4pKcnbJgwpfjotJ/7ffH75ZDN7dpYqTn9HlKwdlK1fydpBgY4+J2cwMsENbxZcdixaPw0fPrFGkfrbULJ2ULZ+JWuHIXb0QogrhRAb3anXXu2izp3uNGTzhtK20UxoVDBzFs/mi9e+pbVh/+izPnz4GO0M9R39XlxBp17u7KAQIg1XlqGyoTRKCZx6zfGYWy38vGKTt03x4cPHEDOkjl5KuUJKuRJXKNTOeApXuFfrYNkw2mfeuyJtUjITZ4/llxW/4XT2lINjdKLUvm9DyfqVrB2G0Ri9EOIMwNqPhAd9oqioyxVIo56TLp9PWX4FG9Zs7rnyKETJfQ/K1q9k7TBM1tELIYy4EiH0mIxBCHEJcAlAQkJC+yRLVFQUer2e4mJXUiOj0UhCQgI7drjyIahUKrKysqirq6O11ZUMJyUlhcbGRmpqXD8woqOj0Wq1lJSUABAUFERMTAy7du0CQKPRkJGRQX5+PhaLBYC0tDRqa2upq3OlDo2NjUWlUlFaWgpAcHAwkZGR5Oa6srVptVrS09PJzc3FZrMBkJ6eTlVVFQ0NDQDEx8fjdDopK3ONYIWGhhIWFkZeXh4AOp2O1NRUdu/ejd3uyuqWmZlJeXk5jY2NtH02NpuNigpXVr3w8HCm/WUSgRFG3nzwfaLHh5OcnMzOnTvb7/Czs7MpKSmhubkZgMTERMxmM5WVlQBERERgNBopLCwEXEvWkpKS9pnoGjt2LEVFRe2fcXJyMs3NzVRXV/epnwoLCzGZTB7tp4aGhnZbh3M/BQUFUVBQAIDBYPBYP9XW1rb3y3Dup8H4f2psbGzv++HeTwP5f+oKr8SjF0LcCyRIKS9wv/830CClvNv9vhC4WEr5ZXftTJ8+Xfo2TPWNx655htVPfs1LfzxGYna8t80ZUpTe90rWrwTtQohNUsrpnR0bLkM3c4GrhRDlQohyXCna3hNC3NjDeX2mryETRhtnXXcaWj8NK59c421Thhyl972S9StZOwz98kqNEEKPK8WY2p0wWoPL0U/AlRx6Mq7VOZcC//W0DW0/o5SKxl/FUWcfxhevf0tzfYu3zRlSlN73StavZO0w9Hf0t+FKAn0TsMT9+jYpZY2UsrztATiAOimlx3unbWxLqVRXV3PqVcdjbrHw2SvfeNucIcXX98rVr2TtMPTLK5dKKcV+j6Wd1EvuaXzeR//JmJrKhMOzWfnUGhwOh7fN8eHDxyAzXMboh4yoqChvm+BV2vSfctXxlBdUsn71r162aOjw9b1y9StZOwyT5ZVDiV6vH9D5DVYTG6r2sL6yiNLWBqL0gcT6BxLrH0SMIYgY/0CiDYHo1MPzo23Tf/ipM4lMCGflk2s49KQZXrZqaBho3490lKxfydpBgY6+uLi4T8usTHYbG6qKWVtZyNqKQv6oK0cCfio1CQEhrK0opMlm2ecctRCcmTqZayccSbg+wMMKBkabfrVGzUmXz+elW96mYFsxKRMSvW3aoNPXvh9tKFm/krWDAh19b2mwmnht1wZe2bWBRpsZrUrF1PAErh4/m0OikpkUHtd+195ss1BuaqK8tZHy1iY215TyXv4WVhfncPWE2SxJn4ZWpfayogM5/m/zePOe9/ng0Y+5/uXLvW2ODx8+BgnFOXqj0djt8TpLK6/s+oXXdm+k2WbhmPhMzk6byozIMfhr/DpvU6sjXasjPSgCgIWpk7ggcwb3bfmSezd/wTu5v3LblGM4IjbN43r6Skf9QeGBHHvB0Xz60ldcdP/ZhMWEetGywaenvh/tKFm/krWDl3bGeor+7IyVUiKEOKC8xtzCy7t+4Y3dG2m1WzkuIZsrxh3O2NDoftsnpeTrvbu5b8uXFDXXMScundunHEui0XsOdX/9JbvLuCj7Gs6++VQuvPdsr9k1FHTV90pByfqVoH0k7IwdMtpidbThcDp5aed6jlr9X57LWcucuAw+Oe4Snjrs9AE5eQAhBHPjM1lz3CXcOGkOv1QWc/bXb7C3tXFA7Q6E/fUnZMQy66TpfPzcF5hbLV2cNTrYX7vSULJ+JWsHBTr6/cltrOah377ikKgkPvvLpTw26xQygztNpN5vdGoNl2TP4t2559Fss3DRd8totJo9eo2BcPq1C2isaeLLN773tik+fPgYBBTh6DsOT6lU+0rOColi1bF/5fnDzyTNPcY+WGSHRPP04QspaKrhsp/ex+KwD+r1OmN//QATZ48lY1oqKx77eFTHqu9Mu5JQsn4la4dR7OjrLaZ2B99xbC4rK+uAutkh0UM2fndYdAoPzVzA+soi/vnLRziHeI6kM/1CCBZeu4A9O/ey4dMtQ2rPUNKZdiWhZP1K1g6j1NG/uXsji75+g0t+fI9rf15Jc4d17m2xn73JKckTueGgo/m4+A8e2Tq08Wa60n/EGbOIiA/jg/98PKT2DCXDoe+9iZL1K1k7jEJHv2ZPDo9v/4Fbp8zjgoyZ7G6s4h/rV7G1di9Ae5IEb3Np9izOSZvK8zt+5o3dfVs5NBC60q/Rajj5yr+w+avfyfutcMjsGUqGS997CyXrV7J2GIWOvrCpllOSJjA7JpXDYlJ4Z855WBx23svfQmFTrbfNa0cIwZ1T5zM3LoN7Nn/OD+X53jaJEy6Zh8Go571H/udtU3z48OFBRp2j91NrWFtRiN09qRio1XHzpLlsrdnL9+V5pKSkMFz2DqhVKh495GTSgyK5eu2HVJsHPz58SkpKl8cCQ40suPQYvl32E2X5FYNuy1DTnXYloGT9StYOo8DRFzXXUdRc1/7+sOhkov0DeSfvz6iMWSFRXJA5kye3/0hFXc2w2jhh1Op48tBTabFbeGLb4C9vbMuB2RWnXbsAtUbN8n+tGnRbhpqetI92lKxfydphhDv61iPHc+43b3Hx9+9yxU8f8FnJDrJDopkUFscvVcV8vXc3AE4pOSYhi4SAYP4o3+Nlqw8kLSiCxWnTeCd/M7saqgb1Wm2Jm7siIi6MY847kk9f+Yba8rpu6440etI+2lGyfiVrhxHu6G0ZcXww7wKen30G8QHBvJ37K6uKtvG37EMI0up5N38Ln+7ZgUoIdtRXYLLbCVBpvW12p1w9YTYBGj8e/O0rb5vCmf88GYfNzorHVnvbFB8+fHiAEe3o1ZUNRBqMpASGc0n2LI6MTeP13RvZ3VDFtROPYEJoDNevX8WlP7zHhd8tY1HaFCaMGZ5jdWE6f64YdzjfleUN6sRsdHTPYR3i02OZvfAQPnr2c1oaRk9e2d5oH80oWb+StcMId/SOiKD21xH6AOYnZDMlPJ43cjdhUPtx1fjZLJ97PhdnH8LyuedzQeYMtNrheUcPcF7GdMYEhHD/li9xDNIO1d7qX3TjqbQ2mlj19OeDYoc3GM59PxQoWb+StcMId/SoVdz965+OKD4gmFnRyRQ21dJqtwIwNjSaGZGJ7QHKSkpKvGJqb9CpNdw4aQ67GqpYXvDboFyjt/rTp6Qw47jJrHh8NRbT6Ah2Npz7fihQsn4la4cR7uj9P9/MZyU7WJ7/57b9OXEZ1FlM+6zEGUkcl5DNtIgEHv39u3129HqDs248hfrKBta89LVX7fDhw8fAGNGOXlNUxRXjDuPWjZ/wfv5vlLY08H1ZHgCRhs4TDQQFBXVaPlwQQnDL5HnUWFp4Ycc6j7ffF/0HHTGOcYdm8d4j/8NmtXnclqFmuPf9YKNk/UrWDiPc0TuD/VmcPo2lU4/j9dyNXLtuJTdt+Ji/TzyCpC6Se8TExAyxlX1ncng8x48Zy0s711NhavJo233RL4TgnFtPp2pPDV+8PvJDGI+Evh9MlKxfydphhDv6pkWzMdltLE6fykuzz+LRQ05m1bF/5cTE8V2es2vXriG0sP/ccNDR2KWDx37/zqPt9lX/jOMmkzEtlWUPfojD7vCoLUPNSOn7wULJ+pWsHUa4oxcWG++6x+cj9AEkBIQQoR8duSETjaEsSZ/O+4VbB30TVXe03dWX5VfwzbKfvGaHDx8++s/IdvRWe/sQTW/DGmg0Iycf+hXjDkOv1vD8jp891mZ/9M86aTopExN5+/4VOBwj965+JPX9YKBk/UrWDiPc0Uudljj/vk2yZGRkDJI1nidU58/ClEl8XLzdY2P1/dGvUqlYfMtp7NlRyo8rfvGIHd5gJPX9YKBk/UrWDkPs6IUQVwohNgohLEKIVzuUHyKE+EIIUSuEqBJCLBdCxPbUXsCnv5IVEtUnG/LzvR8OuC9ckDkTu9PpsZj1/dU/e+EhjMmK4+37Phg20T/7ykjre0+jZP1K1g5Df0e/F7gXeHm/8lDgeSAZSAKagFd6akxT1ve18hbLyNr8k2QM5Zj4LN7J29y+CWwg9Fe/Wq3m7JtPI39rET9/NHSJUjzJSOt7T6Nk/UrWDkPs6KWUK6SUK4Ga/crXSCmXSykbpZStwFPAYUNp23Dmr1kHU2818WHh7161Y87iw4lJieKte0fuXb0PH0pkuM5QHAFs7+yAEOIS4BKAhIQEcnJyAIiKikKv11NcXAyA0WgkISGBHTt2AK5x5qysLPz8/NrPSUlJobGxsT2EaXR0NFqttn27dFBQEDExMe1LszQaDRkZGeTn57ffIaSlpVFbW0tdnevXRWxsLCqVitLSUgCCg4OJjIwkNzcXcMXcSE9PJzc3F5vNtQkpPT2dqqoqGhoaAIiPj8fpdFJWVuZ6HxLCxNAYnv39RyZbDRj0elJTU9m9ezd2ux2AzMxMysvL2+NuJyQkYLPZqKhwJRAJDw8nKCgIKSU5OTkYDAaSk5PZuXMnTndcnezsbEpKSmhubgYgMTERs9lMZWUlABERESy8fgFPXfEyHzy/ihnHTSYpKan98wQYO3YsRUVFtLa2ApCcnExzczPV1dV96qfCwsL29G+e6qegoKB2Wwejn0JDQwkLCyMvz7VpT6fT9bufCgoKAPrdT0ajsT1Pqr+/P0lJSe19P9z7aTD+nyIjI9u1D/d+Gsj/U1cIb9yZCSHuBRKklBd0cuwg4FvgZCnlD921M336dLlxY9+GEcrLy0fk5onVxX9w9c8f8uzhCzkmvv8Z7Qeq326zc2H2NQSFB/LU+geGVRKXnhipfe8plKxfCdqFEJuklNM7OzasVt0IIdKBNcA1PTn5/tJ2pzDSmJ+QTUJAMC/uWD+gdgaqX6PVcM6tp7NrY96IG6sfqX3vKZSsX8naYRg5eiFEEvAlcI+U8g1v2zPc0KhUXJA5k43Ve9hcXepVW+adewRx6TG8dse77T9TffjwMXwZ6uWVGiGEHlADaiGE3l0WD3wN/FdK+exg2hAb2+OqzWHLGSmTCNLqeWln/4OdeUK/RqvhvDvPJH9rEd8v99xmrsFmJPe9J1CyfiVrh6G/o78NMAE3AUvcr28DLgZSgTuFEM1tj8EwQKUaNj9i+oxRq2Nx+lQ+K91JcT/DMHtK/1GLDiV5whheu/PdERMDZyT3vSdQsn4la4ehX165VEop9nsslVLe5X5t7PgYDBvaZu9HKudlTEctBK/s6t8OVU/pV6vVXHD3Ikp2lfHF654NvDZYjPS+HyhK1q9k7TCMxuh99I5oQyAnJU5gef5v1FtMXrXl0JNnkDUjjTfuXo7VMvLj1fvwMVpRnKMPDg72tgkD5q9ZB2Ny2Hg779c+n+tJ/UIILrz3bCqLq/nkhS891u5gMRr6fiAoWb+StYMCHX1kZKS3TRgwWSFRHB6dwlu5m7D3cdWLp/VPnXcQBx05jrfu/YDWJu/+wuiJ0dD3A0HJ+pWsHRTo6Nt21I10FqdPpdzUxPfleX06z9P6hRBc/OAS6isbeP/fH3m0bU8zWvq+vyhZv5K1gwId/WhhTlwGkfoAluVt9rYpjD04g9kLD2H5v1dRW67sjSk+fAxHFOfotVqtR9qxOa1YHN4bqtCq1CxMmcQ3ZbmUtTb2/jwP6d+fi+5bjM1i5427lg9K+55gsLSPFJSsX8nawUuxbjxFf2Ld9JV6axV7TQXUWPdSYymn1lpOjaWMBpsrqFCcIY2MwMmkGycxxj8TjWro/qCKm+s4evXT/H3CEVw1fvaQXbcrnrzyRT5+7gte3PYoY7LivW2ODx+KortYN4pz9Lm5uaSnp3dbx+q0sL3hZzbVfk1By7b2cn91IOG6GML8Ygn3i0ECec2/UdK6GydO/FR6UgImkBk4hWlhc9CqdP2R1SfO//Zt8ppq+O6EK1D3YlNIb/T3l7rKBs5Pv5KpxxzE0g9uGJRrDITB1D4SULJ+JWjvztEP1zDFg0ZbKNP9kVJSYsplU+1XbK3/EYuzlTC/aOZFLyYjcBLhfrEYNAfu4ZrHIsyOFvKbt7G7eQt5TVvZ2bSRLfXfsiT5ZoyakEHVsyhtCleuXcH35fkcHdfzH3JX+j1BaFQwZ/3zFF69Yxm/fbedSUeOH7Rr9YfB1D4SULJ+JWsHBTr6/XFKB7/X/8R3VSuoMBejFX5MCDmUaaFzSQoYi0r0fJesVwcwLvhgxgUfDMD2hnUsL36MZ3ffxHkptxKlHzNo9s+NyyRcF8C7+Zt75egHm4X/WMDqF77guX+8xlO/PKj4rec+fAwHFPdf2PbzTUrJ9oZ1PLnrOt7b8xggOCX+/7hp3MssHHM1KcbxvXLynTE++BAuTrsHm7TyXO7N5DVt9aCCffFTq1mYchBf793dqwTig/3zVWfQcfED57D714JhFxphtP907wkl61eydlCgo6+qqiKvaSvP5P6Tt4sexomTRYn/4MqMfzMj/Bj0an+PXCfBP4PL0h8kSBvOa4X3sqNx8CaNz0ydjENK3svf0mPdqqqqQbOjjaPPPpyxh2Tw8i1vD6tNVEOhfTijZP1K1g4Kc/RlpgI+qPkPLxcspcXewOkJV3J15mNMDDms33fv3RHqF8Ul6fcTrU/i7aKH2dXU95AFvSE5MIzDo1NYlre5x52ybenVBhMhBJc/diG15fW8dc/7g3693jIU2oczStavZO2gEEdvcZhYs/dVnt59A3WyjONjL+TvWU8xNWwOaqEe1Gsb1AFcmHIHUboxvFX40KAN47TtlP2mbPegtN9XsmdmcNyFR7Pi8dXs2ansyIE+fHibUe/ocxo38Piua/ixehXTwuZx2ZhHOCzyRLQqvyGzwV8TyEWpSwnzi2H5nicGZaPV3LhMYgyBvJXb/a+G+PihW99+0QPn4Gfw45lrX2U4LOMdSu3DESXrV7J2GMWOvsFazduFD/Nm4QPo1f5cknY/pyRchp8weMUef00gpyZcTpO9lm8rPT+coVGpOCt1Mj+U51PUTVKSoUz9FxoVzPlLz2LDp1uGRX5Zpac9VLJ+JWuHUejondLJz9WreWzX1exq+pX5MUu4IuNfJAVkA1BWVtan9uxOC43WMqrMuyhp2URe03f8Ub+azbXL2Fa/CrOj55UubSQGZDEl9Gh+qv6IasvePtnRG85MnYxaCN7pJnxxX/UPlJOumE/SuASeve41rGbrkF57f4Za+3BDyfqVrB1G2Tr6WmsFK/Y8RUHLdjKMkzkp/hLCdDF9bsfmNFPUso7cxm8oalmHQ3btoNZWPk1G0DwmhJxMpD6jx7bnxyzhj4Z1rN77Mucl34oQos/2dUWMfxDz4jN5P/83rp1wJDq197tXo9Vw+eMXceMxd7P83x9xzq2ne9skHz4Uh/c9gQeQUrKx9ks+KXsFgeC0hCuYGjqnUycaGhraaRt2p5XilvXkNn1LYfNa7NKMQR3K2ODjidJnoVMZ0akD8XM/69RGGq172Va/kl2NX5HTsJpo/Xgmhp5MmvFI1F3MAQRqQ5kTfRZryl5lR9NGxgbN8OhnsThtKp+V7OTz0p2cmHjgztSu9A8mU+dOZPbpB7PsgQ855twjiEr0Tmxwb2gfTihZv5K1wyiIdfP1z5/zYcnT7Gr6lVTjRE5LuIJQv6guz7Farfj5/emETfZ6ttQtZ3v9/7A6W9Crg0k1HkFG0NHEGg5C1YtVORZHMzsaPmVb/f9osJVgUIdybNztxPtP6bS+Q9p5ctd1OKSNqzMf9+jEsFNK5qx+mviAYN46eskBx/fXP1RUFlfx13HXMmXeRO5eeeOQXx+8p324oGT9StDeXaybET1Gb3I088Suv1PQvI0FcRdzYcqd3Tp5gLw8V6IOs6OBn6ue5438s9lc+w5jAmawIOFhLkj7gKNiriPef0qvnDyATm1kUthCFqe8xoKEh9Grg1hdcgvV5s6THaiFhhPjLqbWWsHP1R/3TXQPqITgjNRJrKssoqCp9oDjbfqHmqjESM5beiY/r9rIDyvWe6ZgsvkAACAASURBVMUGb2kfLihZv5K1wwh39GZHKxG6WK7MfJRZEcf3atOTjVbWV7/MG3lns7l2GSnGQzk7+VXmx91JYsCMXjv3zhBCRWLADE4a8290aiOf7r0Ds6PzWPFpgQeRGTiV76tWYna09PuanbEwZRJqIXi/4DePtjtQTvv7CaRNTuapq16iud6zmn348NE1I9rRh/hF8re0+4jQxfVY1+G08mvNO6xT3c6mmjdIDJjJouSXOCbudkJ1iR61K0ATzvy4u2i2VfHF3ntwSken9eZFn43J0cxPHr6rjzYEcnRsOu8X/IbNue+1dbrBD53cFWqNmuteuIz6inpevOmtIb++N7UPB5SsX8naYYQ7eoFALXqeTy5u+YV3Cy9mXfXzxAdM4sykF5gfv5QwXcqg2RZjGMcR0dewp3Uj66tf7rROvH8a44MO4aeqj2i1936ZZm84K20K1eYWvt67707Z1NRUj16nr2ROS+PUa05g9fNf8PsPOUN6bW9r9zZK1q9k7TDCHX1PNFrLWFN6Ox+X3IhEckL8g2SaLiJCPzSR7MaFLGBc8AI2175NXlPnkRznxpyF1Wnix6r/efTaR8SkEW0wHhDobPdu74dIOP/us4hJjuQ/lz43pGvrh4N2b6Jk/UrWDqPU0dudFjZUv8Y7hRewp2Ujh0T8jUXJL5FkPBi73T6ktsyOuopo/Ti+KnuQWkvBAcej9UlMDDmctdWrMXlwrF6jUrEwZRLfl+ezt0NO2aHW3xmGAD1XP3MJe3aU8vb9K4bsusNBuzdRsn4la4chdvRCiCuFEBuFEBYhxKv7HZsrhNghhGgVQnwjhEjqzzVKWjaxrPAiNtS8SorxMBanvM7U8MVdrmsfbNQqP46Lvws/lT9rSm/H4mg+oM7hESdhkxZ2ejiU8Zmpk5FS8sEwm5QFmDF/MnOXzObdh1ZSuH2Pt83x4WNUM6Tr6IUQpwFOYD5gkFJe4C6PAPKAi4GPgHuA2VLKQ7prr2POWIujmbVVz5DT8AnB2oT2JZL743A4UKsHN2JlZ5S1/s6uxi85POqKTr90KsxFROv79d3WLed/+zb5TTV8684p6y39nVFf1cBfx11LQmYs//nhnkHPRjWctHsDJetXgvZ+5YwVQuT38TpSSpnWQ4UV7ranAwkdDp0GbJdSLncfXwpUCyGypZQ7erpwQdOPfFfxGCZHHVPCzmZG+PloukjMXV5e3qtIdi22EqpM66gy/YJTWtGpw9Cpw92PUHTqcIzaJPSa3u3yjPWfSKz/xC6PD4aTB9ek7FVrV/BjRQFHxqb1Wv9QEBIZzGWPns/D5z/Fqv9+xilX/WVQrzectHsDJetXsnboPgRCMiCB3gZjGchPg/FA+/iClLJFCJHnLu/S0UscfL73HnKbviZcl8bxCfcRpc/q9kKNjY2ddrjdaaLatIFK009Utq6lxe4aTjCoY9Cqg6iz/I7FUYfrB4kLgYbZca8Sqp/QN7VDyLy4TMJ0/rybv5kjY9O61O8t5i05gm/e+ZEXb3qT6fMnkZDZ81LZ/jLctA81StavZO3Qc6ybUuClXrRzMTCQ/1AjsH+urwYgcP+KQohLgEsAxmSFkNf4HSlyAdONS/B3GMnJcS3ZMxqNJCQksGOH63tCpVKRlZWFxWJpr5OSkkJl/S7ym96gUfUtUthQocfgGEekcy7R/rNIip3WPmOv1giSUqPIK/qNVmslFlUx/iKD8vJy6upcoYFjY2NRqVSUlrqSbQQHBxMZGUlurmuXrFarJT09ndzc3PbM9Onp6VRVVbVnwYmPj8fpdLZH3AsNDSUsLKx9d59OpyM1NZXdu3e3TzJlZmZSXl5OY6Nr4jUhIQGbzUZFRQVHBsazqnQXJfU1mM1mcnJyMBgMJCcns3PnzvYQrtnZ2ZSUlNDc7JpHSExMxGw2U1lZCUBERARGo5HCwkIA/P39SUpKav88AcaOHUtRURGtra0AJCcn09zcTHV1NQBRUVHo9XqKi4vb++na5y/j4gnXsvTMR7jurb8xbvw4CgsLMZlM7f3U2NhITU0NANHR0Wi1WkpKSgAICgoiJiaGXbt2AaDRaMjIyCA/Px+LxQJAWloaNput3dbh2E8A4eHhBAUFUVDgmrj3ZD+19X1/+6mz/6fB6Kfa2lqP/z/Z7fZ27cO9nwby/9QVXY7RCyGcwDop5aHdtuCquw6YIaXs1SCYEOJeIKHDGP3jgFZKeXmHOr8DS6WUH3TVzuRpE+WXP33Yp+WSTU1NBAYG0mjNY3f9K5Q2rwEEYwJPJD5gPuGGqaiF92NiSCk7DcrWVXl35DVWc+ya5/jnQXNYnDCBwMADvj+9zjfLfuL+xY9x/l1nseT2hYNyjba+VypK1q8E7f0aoweuBXobxPlRILavhnVgO3B+2xshRACQ5i7vEo3Q9XlNfK3pd3Ja3qes9WvUQk9q8GLSgpdg0ET3x+5+s7/DdkoHTulA4qDVXkuwX3yHcicSJ032esL8+m5nWlAEMyLH8F7+FhZGZXpMgyc5etFhrF21gTfveZ+Zx08hc1q30z39ou2OT6koWb+StUM3jl5K+XhvG5FSvtebekIIjfuaakAthNADduBD4BEhxOnAauAOYGtvJmJ7S5M1n+21/6Gi9Qe0qiCyQi4hJfhsdOrBDV/qlDaabYVUmzZSZVqPnzqUpMBTCNGNQ6AFYEfDpxS3bKDctJ0WexXhulTSAo/CLoMpat1NcctOGmzVROuTOCjkMKaGzsGoDemTHWelTuH69av4Mn87Z4UfMRhSB8xVT/2V37//gwfPfZJnNj2EzuDZbesVFRWEhYV5tM2RhJL1K1k79GMdvRBihXuitD/cBpiAm4Al7te3SSmrgNOB+4A64GBgUT+vsQ8WRy1bqx/gm5IzqDFtJsK+iGMS15AddnmvnLxT2vud77TWvIX15dewtuxyChqX46+JRS382Fp9P4WN71PQ9COv5i7k56rn0amNHBF9DRemryTWfzY/Vb3JT1Uv4KcycEL8X7l53CvMizmbXU1b+hUb5y8J2QRp9XxWW9gvLUNBUFggN7xyBXt2lPLSzW972xwfPkYN/Uk8EotrRU6fkVIuBZZ2cexLILs/7XaGQ1opaHiHnfUv4HCaSA5aSFbopTTU2NGqAjo9x+5sodm6g2ZrDk3W7TRZc2ix5qJRBRKqn0mIfiah+oPx16b1OE5e0vwJ22r+RYz/kUwIv4FAvz/j6lS0/sCWqntBM4txIScwM+LC9mMt9gZKTBUkBcyhxb6NUxIuaz+WHTQdtVCzeu/LzI89MNZ8d+g1Wk5OmsC7+Zups7QSqvPv0/lDxbRjJnHyFcfx4ROfcMiJ05k6t+slqX0lPDzcY22NRJSsX8naYZRkmOqIlJKylq/YXvsfWu2lRPvPZnzYtQT6uYIaBQWZ96lvddSwt2k55S2raLXl07ZKVKsKxeg3jjFB52J11FBnXk9l66fuY2GE6mcS4X8M0QEnHOD0rY4G9jZ/SXrwBaSHnHeAjQI1Ok0MpZZdzI9fus+xGks5ZaZcpoSkE6E7ZJ+x/FZ7E9sb1pEZOLVfk7KL0ibzRu5GVhZu48KsmX06dyi5+KEl/PrlVv514X95fuu/MYZ0/sXcV4KCgjzSzkhFyfqVrB365+g9l+TUw7TaStla/QAVph8J8stgVswzRPnP2qdOQUEB2dnZNFq2UNL0FpUtnyKxEaKfSXTA8QT6jcPoNw6dOnofRyqlxGwvoc68nnrzL9SZ11Nr+olQ/Qx0+03kqoQfNebNTIm6a9/zHRVUmTaQU/sEqcHnsqPlTRqsezFqIjA5GjA7Gmm1F+F0FlNpdnJU9PU02etotTdSaSkht+k3ysyFnJZweb9yzWaHRJNpCOXd/M1ckDnDo/lqPYneX8eNr1/F1YfeylNXvcRNb1ztkXYLCgoYO3asR9oaiShZv5K1Q/8c/d2Ad5J+doGUDvIb3yGn9ilAMCH8elKCFqHaL4SxU1ppVX/DxrJbabJuRy2MxAcuIj7wbAL8ul/lIYTAoB2DQTuGuMCFSOnEZC86wMkDaFQGArRj2FX3AhGGGW4nX0WDdQcmWxnpweeRFnIuTQ4tn5TegkalJ9wvBZOjAZuzhThDKuUWGytKXiZan0izvQGLs5UIXTwLx1w5oF20x4Wn8ETJr2yqLmF65Jh+tzPYZM1IZ8ntC3l96XtMnjOR4y482tsm+fAxYumzo5dSfjIYhvSXZmsRm6vupNayhWj/I5gUcQsGTcw+daSU1Ji+YXftQ5j8CgmQ6WSFLSXaeBKaLsbre0IIFf7aruPZT468k4LGZWytfpAgv0wc0oy/JpaU4LOJNLiGTaaEnUViwAya7BXUWYqI10whxjCeQG0M5eYi6qyVVFlKSDGOY4x/Vq8SrPTEsTHpvFy+jXfztwxrRw+w+NbT2Prddp668kWyZ6aTPH5g9hoMBg9ZNjJRsn4la4fuN0zlA79KKXvcvSKEWAFM6inWjaeZOCVV3r8iErXQMTH8RhKMxx8wHNFizWV37QPUmn/EX5tKeug/CTccNSTDFq4VOw6abYUYNDH4qYN7fa4nN0ztz+0b1/BB4VZ+Pulqgv2G9z9ATVkd/zf1BgLDjDz1y4MYAvTeNsmHj2FJf5ODJ9P7sAb9XokzEJzSRpRhFnMSPmBM4L6TojZHPbtq7uWXvSfRaN1KRtitzIxbRc2euCFx8lJKVEKDxVFDsC4LP3UwUjqR+6UVXFF8FU22csCV7rAt7eALebfSaHMl97Y7be3lA7V9586dLEqbgsVhZ2XhtgG1NRSEx4Zy05vXsGfHXp688sUBtbVz504PWTUyUbJ+JWuHnoduDhZCdJ7wdBhg0EQxM/o/+02aOihtWkZ+/RPYnY3EBy4iJeQq/NSuzRJtcSi6QkonDtmMw9mIw9mEw9mEQZuJRt23DUpCCKpMv7C1ainjwy6n2boDs70UvSaWMUEXotNEIqVkXPCC9pALHcMXTwubC+5fWxqVdp+2ndLR7yTmTqeT8aExTAyNZVn+Zs7LmD5sJ2XbmDp3IktuX8gbdy9n0pHjmX9B/8bre+r70Y6S9StZO/Ts6PviAYYusH07Yh8n1WTJYUfN7TRZfydUfwgZYbdg9Os6mqWUklbbNmpaPqTe9DV2Rw0O2cz+UtQikJigy4gOvAi1qndDHXWmdRTV/weVcw8F9Y+j14zBoImn2bqL7VXXkRZ6LcH6qWQHzwfA6mglp+ETnDgYG3w8E0Nm4afyx+IwsanuK6SUTAubg0qo8VMNfPji7LQp3LLxEzbXlDI1IqHnE7zMObefzu8//MGTV7xI1oyBj9f78KEkuhujP7/TA90gpXxtwBb1gbbEI3ZnCwX1T1HS+BoaVQiZYbcSFXDgeL3bRqyOUmpa/kdNy4eY7bkItATpj0CnGYNGFYS6w0MldFQ1v0296Qu06mjig68lImAhopuk5FZHLbtq7kKjCiYl5Ap0mmj2Nn/Bhsp/khh4Ck3mH9Cpw0gOuYYATQJGvySabOW8kb+YSaFnUG7ahlEbRZQuE60qmGV7XuKwiJMobPmDMF0M8YZUovVJZARO7vNn1jbG32KzMmvV48xPyOaRg0/sczveoLa8jsum9H+83hPzGyMZJetXgvZ+BTUbaqfdX6pbv2Fnzd1YHHuJM55FWug/0HYy6SmlkzrTpxRXP48NV8Jso24GSYH3EeZ/QrdDMyGGo2kyb2BP/QMU1t5EedNLjI1+H42q88nVGtN3WBwVjI14GLU7AUqANhE/VQiZIReTX2eixZZDQeO7+GviqbdsIzP0b0TpsxgTMI3Dov6PanMuuU3fYnI0EKuzoFc1c1n6g5Sa8tjWsJampi18XfEu08LmMj1sXq8/r5KSEsaMGUOA1o+TksazovB3bpsyb9hPygKExbjG62869h6evPJF/vnKlX06v027UlGyfiVrhxGeHNxsL2Vr5WVoVP5MjXmb7Ii7D3DyUkrqTV/zR/kC8qovx+6sJD74HxwU9wNjo5cTFXhOr8bfA/UzGBv9AekRzxKkm9WlkwfQq2Ox2CvbnbyUDgK0cRg0oeTV/Zt683ekhlxNRsiF1Fu2U2fZRnnLN8QaJlDYvNZ1DpJgbRx7Tb8haKGg+UeEEKiFmmj9GApbctjTuott9Wv79Jm1xcYGODttKhaHnf8VDf9J2Tamzp3IuXecwRevfcdHz37ep3M7alciStavZO0wwkMgqFX+pIZcS2LwRag6iSHfZNnInrr7abH+ik6TSEr4f6gsziAuuX8ZoYQQhPofR6j/cd3WC9ZPw+iXxca9ZxCsn4afOgybowGdcFBjWkuA30Q2VN2JlA7iAo5hcuTtaFWRbKl7jx0Nn5PX9D1mRwMhfmNI8J+BVpXNtsZfeeCPi2ixNxKui2Vc0ExOTbicGEP/N0+1Tcq+k7eZc9OH/6RsG4tvO40dG3bz36tfJnFsPJOOHO9tk3z4GNYMaXJwT9MxOXhHLPYSSuoforb1I7TqaOKCryEi4AxUQktLSwsBAZ6JndIdVkc15c2rsDjKMdvLabTm0mKvweI0EaY/lMzQi9o3TkkpeW7XMejUgZgcDcyJ+SfZwcdhd9pYum0R/upAWh1NLBxzNZNDjzzgWn0Zf9xf/zt5v3LbxjWsmHcBk8JHTqq1loYWrpp1K43VjTz1y4PEJEf1fM4Q9f1wRcn6laC9v+voRxxSOihvfJFtZfOoM31OXNDVTIz9hijjYlTCtUTRbDb30Ipn8FNHkBh8Eakh/2Bi1BP4+81gbPgdhBtmkRV6cbuTd0grIDk/7QMuTP+Q6eHnEmNw/eJQCRU3jn2BW8a/yqERxxOld21rcO63Fl8I0etQyvvrX5A4Hr1aw3v5v3VxxvAkIDiAu1f+E7vNwZ2nPoypped+Haq+H64oWb+StYMHHL0QQttzrcHHZN1FTsXp7Km/l0DdoUyM/Zr4kOtQq/YNx9uWr3GwaTBvIb/uMdQqHVI6mBx5BwnG45gScQ9+6tB2x+xaQy8waFxj/tPDz8OocYUSEqgI1IZhcTQTqG5le917VJr3sLnuWz4seZoX8+7gq4p3abTV9vqOfn/9gVodfxkzlo+Lt9Nis3ruAxgCEjLjuPWdv1P4ezH/uujpHr/shqrvhytK1q9k7TAARy+E8BdCXAcUeNCePuOUVkobHmd7+QlY7MWkhj9ORuRL6DS9H4aw2UtpNn2Fzd7bzIk9o1EF4pQuxymEGiHUgECrDqK46X+sr7iaLVV3U9L8CeWt3+FwWqk07aDZXoVGpdtnOEanNhJlmM7uph94PvcGvq9aidnRQnrgQVSYi3ij8AFa7I39tnVR6hSa7VZW7/nDE9KHlBnHTeHiB5fw/fKfefv+Fd42x4ePYUm3k7FCCB3wCHAkUARcL6XcJYS4FrgF8GpuLqc08Uf5SZhsOwjzP4nE0DvRqrtPMBAeHo7Vlk+rZR0my3pMlnXYHHvaj2s1qfjrDidAfxgG3aFoemgPXENGFnsRrbZdOJx1CPzQa5NJDbnabacNm6MWrToUjUqP2V6B1VFPdugV5De8jVZlpLDxPfa0bAJVMFmhlzAueAFa4Von3mitZm31F+hUocyJmsuhURfvc/0X8m5ja/0PzIo4oUdbIyIiDiibFpFARlAEy/I2c2Zq39fme5uF/ziRvK2FvHr7MlImJnLoSTM6rdeZdiWhZP1K1g49r7p5CLgS11bRCUCaEOI74FL+3DXrtSASNkcldmcgGREvEuLf/Vpyq72QuqYXaLR+TF15FQBqVTgG3SGE6v6GTjsOs20breYfaWpdQUPL6wD4accSHnQNQf4nddquw9lEUe0d1JnW4KeOQ6uOxCmtmO0FqISelLAHyW94hUbLVhICz0OrDiLKfxaFjSsI0WUzJXIpTbZ89jZ/QbUlD4ezghrTNlY2fMHE0FNJNc5mU923qIWGRONkjNoDv1vD/WKxOi29+syMRuMBZUIIzkqbwr2bvyCnroKxoUObKH2gCCG49rlL2bNjLw8ueYInfr6/052znWlXEkrWr2Tt0MOqG3du2GRcwzMCSMHl9AWwCXgQWCG9tHRn2vTJcv0v36NRdZ09xmTZQG3TszSbPgU0SNthxEQdj0F3MH6a9C52z9oxW7fSavmJptZVWGw7iI94CaPh2APqFtTcgFNaSAy9Da1635UfVc3LqWx+Hakag06TSJjhMKpavsDsKKPatIHogNNQiQBa7HsRQk2zrZYWp5X5Cf+lsPkXfqt7H7XQYnLYaLSV4a/WcVriU/hrwjE7WqiylLKp9itym3/jr6l3E66LOcC+/cnJyek0AUO9xcSsVY9zVupklk7rfvnocKW6tIYrZtyExk/D42vvIyJu3y/FrrQrBSXrV4L2gay6SQDKgSz3o9xdfpuUcoaU8gNvOXkAgaZTJy+lg6bWjymqOJHiypNptfxMWOBVpMX9grTcTohxCTptRpcTmEJoMOimEh50FYlRK9H7TWRvzWWYLBsOqNts+ZWIgIUHOHkpnUQaz8DpbMFfk0CzNYdww2yijWegVicjVGFUtrxLdev7hOkPIj3kfA6OeZhScwVaVSAZQXNZmPQMWUHzCfeLwy4D0KonsanuB9ZWf8w3lcv5rvID7NLK+Sm39srJd0eIzsDxY8byYdE2THbbgNryFhHx4dz78c001TZzy1/uo7m+xdsm+fAxLOjJ0WuBYimlQ0ppxzVOD65x+2FJi/l7CsqPZG/NJTgc1USF3Eda7EYiQ25Co47G379vSbFVqgDiI95Ao46jpOo8LLbd+xw3aLNoNP+I3VGHlBIpHUjpQAgVLZatCKHF6DeWFls+5c0fUdTwX2paPkQ4KwAHAZoxpAafQ6huPP6aMEL9Eqm1/Dm/PS7kBObH387CxPvRa0KotpRS1JKDXdqYGno0J8Rd1KeMU93pX5Q2hWabhdXFI29Sto2Mqanc+cH17NlRyp2nPozV8ueXVl/7frShZP1K1g49D904gSpgtbtoARAOdIyDI6WUfx00C7uh44YppzRTXX8/dc0votWkEhl8M0bDce7VLgPHZt9DYfk8jIa/EBv+WHu51V7O7uq/4XA2YfSbikYdhpR2LPZCGi0/g0ig2VGJU9rxU0cQop9BoN9EIgyzabFXEuV/KC22Uuot2zA7qmi116NTB5ESdDpaVQCt9lqqLbm02uswqINRCR2xhgmuMMjmEmqs5ehUBvw1gcTqUwa0u1VKyfw1zxHkp+f9eRd44FPzHl+//QMPLHmCo846lJvfugaValRtGfHh4wD6FdSsAxHA/pEs93/vFUffhsWaw97aK7DadhBivJDI4NtQdRFOuL9jdVrNGAIMc2kxf+W+Y3d9gfhpYhgf8xENpm9psmzC4axHCC3BhiNJCruXOvOvBGjT2FV7L2mh/yBE/2c/BPilU9S0kmrTehxOC0KosDjqkDipMv1EmP/JlLZuweY0AdBir6bRVkawXxZ2GYnFaUUADbYaGm01TA+bx7GxS7rV0Z1+IQSL0qZw35Yv2VFfQXbIyJqU7cicxbOpKqnlxZveJDIhnEseOU8R47TdoWT9StYOvXP0wzoASm3T81TX349KFUx8xJsYDXMG7VpG/TE0ta7EbN2MQfenw5ZSEmw4imDDUfuUAcQYXbHex0bcj1r8OfPvlHb+qH2cGtN6QnRZjAk6kSC/DPSaSGxOE2uK5lNmriLe+BdiDOMI1sZhUEeyYs8TlJt+JFo/k+lhxxPmF02ELg6Ls5Vnc28iKWAsWUHT+q3xtOSDeGTrN7yTt5m7RuikbBtn3nASlcVVLP/3R0QlRpI1L9nbJvnw4RW6/T0rpVT15jFUxu6PzV5EVf1S/PVHkhzz1aA6eYAAw9GAmmbTl+1lTeZfMNvz2lMElje+xB/lp7Ct7BgKa2/Gaq9ASgc6daw7q5STRss2tlZeQWXz22ipx2zdTJT/oejdWafKTL8j0ZNqnM6syL+RYjyMMF0KBc3bMUsLKQEzidKHMi54JjGGJNRCQ4AmmARDBkUtOQPS2DYpu7JoG632kbVTdn+EEFz++IUcevIMnv77K/z25cide/DhYyCM6IFLlSqY6NCHiI94FY26dxsiBvLzTa0KwaCbSbP5i/ay4rq7sNpLEULN3oYnqW1dRaRxMclh92F31lJUdwd/VF1Pk9UVClgIFRpVAPXmDfipExkbfjcm+x6sjlr3cUF+w7uAmbGhF+2zrb+odQcGFVid9aQaj2gvF0JQ1LKDJns9mT3czfdG/9lpU2m2Wfh4BE/KtqFWq7n5rWvImpnO6//8gI2fj6yYPp5EyUMXStYO/XD0QojjhRDPCSEeEULMHAyjeotaFUKI8dw+TUAWFRX1XKkbjPp5WG052OwlANid9Wjc+WhrWz8iMfROIo1nYtTNJCPyecy23dSZf0SrcsW8d0or/toU/NThNNvLcAodAdo0SppWkFP7NN+XnovFto0Wh44Kcz52p5Wy1t/ZXLuMRuvP1Jl/QC0CiTaMp7hlJz9W/Y+X85fySv5dxOgTSfLPHrD+tp2y7+T9OqDParig99dx38c3E50SwZ2nPMTmr3/3tkleYaB/+yMZJWuHHhy9EOJlIYRDCHGG+/0C4CPgYuA64AchxF88ZYwQIlkI8YkQok4IUS6EeEp0l7OvH7S2tg7ofKPhGACaTa67er02lRaL6y5RrQrBIfdt3ynN6DWxNFldQyptcfMDtKlE6qeyo/YZ6ix5FNQ/T4utmHjjcRwe9xKTI/7Oppq3eSXvZL6reJRK0w5SjbPIDjmPYrOZ+7afx8rSZyhu3UmSfzaXpT/AgviLe/zS641+16TsVLbWlrG9rrzH+iOBoPBA/u+F84hLi+H2Ex/kt++2e9ukIWegf/sjGSVrh54nYycBNv5cXnkdrslZO2AGjMCNwBoP2fM0UAnEAiHAF8DlwBMDbVhKM1bLL2g1v+OwB6HuQ9CzjvhpBhYdrQAAIABJREFU09FqUmkxf0lo4IUkBN9Afs112ByVhPkvYE/dfbT4L0CvTaGy6XUCdFNQqTOpbFmDQZuITh1JSeNb2By1jI98FCfQYN6KUzYR7n80fupQ1MKPcSEJJAbMRAiBw+laC27QhKBVGZgcWo4KFU4cCAQBmmB0aoNH82KemjyBh7d+zTt5v3Lv9OM90qa3CQwL4OEv7+D6OUu5bcEDPLDmViYcruyf9D6UQU/r6CuBBillhhBCD9Tj2kR1DvA5UAg4pZQ95+LrjTFC5AD/kFJ+4n7/CBAkpby0s/pdJR5pw+GowdT6PhbLd1gs63B9N7lQq8fgp5uFTncYBsNpfVpvX1m3lPrmV0mP345KFYDJlktp/aM0mn/AiRWkA7UqhDD/E4gPuQ4pnRQ3vsqextfal1dGB5xArPHULq/RldMeqDM3mUwYDL3LD3vD+o/4rGQHa0+6GqNW1+9rDhfatNeW13H90UupLq3lwc9uY9ysLG+bNiT0pe9HG0rQ3t06+p4cvRnYLqWc5h6PX4frbj5EStkqhNgETJBSesQLCCEuAw4FLgNCgc+A26WUH3aocwlwCUBCQsK0zz935Q2NiopCr9dTXFwMWAk0foxa/RpSNuNw/H975x0eVZX+8c+Z3jLpjQQIkAABpCOIumIXe6/rou6q67qusq7r7s+u69p2LbuWtZddu2IXewOlCILUAElIQkJ6n2T6nN8fdxICpJMyyb2f57nPZO49997zzZl559z3nPO+owgG55CSejpFRU3o9Rsx6DdgMm1BympcTQ8QDM4kOTkZo9FIcbHif3c6naSkpLB9+3YADAYDWVlZ5O58lqDhFkLNjzFuzEnU1NRQW1ur1CPFgV5noHR3HQDR0dEkJiayIzeHoKgGYznjRh3C7kIffr8fSYiszPFUVlZSX18PQFpaGqFQiNJSJWxybGwscXFx5OXlAWA2mxk7diw7duwgEAgAMH78eMrKymhoUMIVp6en4/f7KS8vB5SonU6nkx07dmAwGLBarWRkZLBt2zZCoRAAEydOpLi4uDW/Zm2UkYu/f53fp83ghPgxJCQk4HA4KCgoAJTVhqNHj2br1j0zfbKzsyksLGx9VM7IyMDlclFVVdVOOynBptLT08nJyQFAp9MxYcIECgoKcLuV9QNjxoyhoaGB6upqgG63U35+Pl6vEuxt3Lhx7Nq1C59PmUlkxsrtp/6D2vI6rnn+UqYckk1iYiK5ubkAGI1GMjMzyc3Nxe9XnqgyMzMHrJ127lRWR3ennUaNGoXH42mNud5RO23cuBGDwRDx7dT2+5SamopOp6OkpATY833qaTvV1ta2ao30durt92nSpEkdGvrwsv32N5SQB00ogc3uB0LA6jbHdwMlnV2jJxuQjRIsLYASPO0Fwj9G7W2zZs2S++LzbZdlpYfKkuJUWVX1K+nzbZOhkEc2u16XleVHy12Fh8tQKCillNLvL5QlxamyyfXqftfpjKr6R2VOUaoMBGs7LNPgXiUDwcZ2j7m8ubKk4Q2ZV/OIzK99TJY0vCEbPJt7VIfesmXLlm6XDYVC8oSlT8ozPnuuH2s0cOyrvbyoUl6UcZU8M+FSmfdzwSDVauDoSdsPN9SgHVgjO7CVXc26WQ5YgTzg+rDxfRdACJEEpNBHiUeEEDqUHvwSwI6yIjcWJVRyt/B4vqGq8hSkbCAu/lViYx7E61lKZdlc6uuuIxSswqDPxedbAYA+HIgsGOzZgKPPvw2DPhW9LoZAqIFAqD68KX8D7Ky+nmZ/zl7TI0MywK6Gl8ive4hq9zK8wTKa/XkUNTzHjpp7KHN90KN69DdCCM4dO52fa3azrW74ZehJGpnA/V/cisli5E9H3sa2H3MHu0oaGv1CV4b+VmAXygCsQIk9/0j42CXh12/6qC5xwEjgUSmlV0pZDTwPdGsksMn1HDXVF6PXpxMb+x+8nqVUlM/B1XAfBuNkYuNfJTH5B8CBu+kNAISwoNPFEgz1zNB7/VsxG5VpjBt2/4J1xdNZXzyLdcUzWFc8nR+LxuANlrCt/ALW7BqLP1iBlJK82vsprH+KWMs8RkdfzrjYPzE58Z/MS1vKiKhz2Vn3aLfuH5QBan0V++WO7Q5JSV0n0W7L6aOnYNLpeSN/fY/vFWm0p33EuBQe/O5O7DF2/nzMnWxcdmALziKZnrb9cELN2qHrlbF5KAlHFgInATOllC2xX78M7++edeoCKWUVytPBVUIIgxAiBiWmTqcrXKQMUFf3V+rrb8ZkXoDVcjy11Rfgbnodq/VM4pO+Ji7hZcyWIxA6G0bTSXg9HxIKKX4znS6FUA969FIG8PlzMYUNfaz1BBzm2WQlvcC0tBVMT1vNrPStmPSpZCU+w7QRKzDoEnAHdlHjXsGc1HdId/6S7XUvs6r8+tbr2oyjkXJPpMV1Na/xxLajCcr9QwavrfmKf+T8lkZ/bbfr3YLFYulR+VizjWPSxvNu4Sa8wUCP7xdJdKQ9dUwyD313J/Fpcfz1hL+x9vPhuaiqp20/nFCzduh6Hv2twDlSyk+llEullK3TVqSUa8P7+3Ki9ZnACSgRM3NRfPWLOy4epLr6IpqbXsRqOx9CVTS5HsJiPZHElNVEx/4Do3HvGRXVtYcipRuPW3GT6PUpPXLd+AI7kXhbe/Rj4u8lLXoxu2r/Rnnj84Aenc6CQIdRn4jJkIIQOqyGNNyBInThZQG+UD1K5Gdo8ueTX/sIac4LkVIZyNGhRxIi0E7mKGc4y1S9v7rb9W6hZXCtJ5w3djp1Pjefl2zv8bmRRGfaE9Li+ec3d5CWlcotp9zLD+/vn3tgqNObth8uqFk7dO26uR1lcdSAIKVcL6VcIKWMlVImSCnPkVJ26BwOBHbi867AajkZb/M7BINFRMc+gcV6El7PF3g93+D3byMUamj1lQeDk9AbxuFufh1oMfTl3a6j16882rcYegCnZT5TUj9BJ8zklJ9LvWc5IQLAnimbQuiJtx7B1qqbKKp/Fp9/O6FgEWtLL+Cn0gvQ6Syk2E9FGaoAfXhhVVDuH28m2qjksW0I1HS73gfC/OQxpNmih4X7pjNik6J54KvbGDc9gzvO+gdfv/b9YFdJQ6NP6NNVpwONTheP0TAar+dDzJYTsNovoanhfvz+/ZfuC2FHp0/BGTULq+1cXA33EAjsRKdPJhSqRMoA3VmE6/PnAHpMxqz9jqVFX0eC/SwKam7CHyzb73qTEu6npPE1KpqXEpKNGHSxJNtPIcYyC4dp7ycPg06Zsdp+jz5s6HvRo+9N7kydEJwzdhoPb/qOXa46Rjr6ZNnEgNMd7c64KO797BZuOfVe7rnoEdyNbk68vPN8xEMFNedNVbN26F6sG7MQYqQQYlRHW7/XsgNCoVpCwVKcMQ+g06dRV31huFf/CAnJK4lLeIfo2MeJct6C1XYhOl0cevEGRtMsQIe7+Q30+lQgRChU2a17ev05mAxj0In2fX5mw0gmJL3EzPQtWI3j9jqm11kYFX0Js1NfJ0QSNtNBpEWd12rk287QaenRB+T+ht6mj8IgjDT4e96jT09P7/E5AGdlTEUAb+0cuv7r7mq3O238/eObmH38NB668kmev/nVvdpmqNLbth8OqFk7dM/QT0dZAbuzgy2/vyrXFXp9OgnJXyFD9bibnkUIG7Hx/8NqOweDYRQm81ws1pMwmeejN4ykRa7X/TlC2PB6vsHj/hQA2Y6LZF+CoTrc3lWYTZO7rls48Yk3ULKfkQiFgvhkPUZ97F4rctuueNWF94fk/gOgQggchpheDca2LHjpKSPs0RyeMpa3CzYQGqJGryfaLTYzd753Iwt/fTSv/H0JD1z2GAH/0B6M7m3bDwfUrB2677qJ0OQjXrzuzzBbzyQYrKC56SWqK0/GZD4Ug3Eift8G/P51EB5D1ulH4A9k09z0NDpdEoFgKSH/ZpzRd2AwdJ13tbLubwRDDcRFXd3tGm4uPYFpaT+gF1Gt+xr8O/CHGokzT+vwvEa/Mm7gMHY8Layv4tp0l7PGTOPaFe+woqKAQ5PHDOi9BwOD0cDip64kaVQCL972Og1Vjdz8+h+x2IZ+OAgNddEdQ18CPNvfFekNoVAdDfV/RTTci9V+AXEJb+Nxv4nH/TE+7/cYjVOw2S5C6OIIBcvw+b7HaNiK3jAJf2Aben0qCYnvYjLN7PJezZ4V1De9QlzU77CYpux3XMogkiAgEOgAHUIIpqR+gV4XtVfZSreyYCvROrfD+9X7SzDrHFj0znaPB2UAfS8Cex5I7tRj08YTZTSzZOfGIWnoe6NdCMEvbzmbmKRo/n3109x47J3c9cFfcMZFdX1yhKHmvLlq1g7dM/TFUso7+r0mvUCvH0lcwuM0Nz1Ls+tpml1PYbacgDP238hQPT7vN3jc74f97waMptlgtOH3b8JiOZ6Y2IfQ6boeWAxJD2W1N2DUjybe+cf9jjf5NlLT9AFu/w5CsgmdsGExjiPOdip209T9yle6VxJlzMRiSOzwng2+3ThNHUfY7K2hnzCh9wG8zHoDJ42cxHuFm7jDf/yQC3R2INpPvvJYohOd3HPhw/zxF7dyzyc3k5ge34e1638ORP9QR83aYYhnmIIgRtNBxMQ9SWLySuyOq/B5f6Cu+jzqa6/A434fo+kQ7FHXYrIch9f3Ez5fDs7oO4iNe65bRh6gpuFf+AP5JMfdi05n2+tYVdMStlVcTCBUQ7R1AQmO84m2HkUo1ExOxXmsKp6LN7Bn+mYw5KHas44k27xO71nv3020cUTHyntp6FsCKPWWM8dMxR3080nx0PN5Hqj2w8+cyz2f3ExlcTXXzr+JbWvy+qZiA8SB6h/KqFk7dN2jLwJKB6IivSEYLKd0dzZG01TMpoMxmeaS4LgUn3cloMMfKMDd/CZuz/sIEY3dfhFl5YeRlt79XCleXw7VDY/itJ2N3XLEfseL6+5nQuJL2M3799xrvNvRBX7GoItt3VftWUdI+ki0dmzogzJAo7+MrKiOc+D21tC3RBrsLTPj0xjtiGVJwUbOHtPxGEMkcqDaAaYtmMyD397Jrafdx+LDb+HaJy7n+EuO7IPa9T99oX+oombt0IWhl1JmDFA9eoVOF43DcRFe3ypcrqdR8paA3jCWYKAICGAyzSXKuRir9SSEsLK7tPuxTBSXzR/R65wkxtzWfplQEyZD6n77PYFS6nybcOoEOrHnwanSvQIdRuItHed2dfnLkYRwmjrr0Qd7ZegPFCEEZ2QcxMObvqO4qY50+9CcU38gjJuWweNr7uPuCx7mH5c9zvY1efz2wUUYTcbBrpqGRrsMadeNEHac0TeTmPgBqSNyiE9YQpTzRgyGcdgdvyYx6VsSEt/BZjsbIZTpjmPGdG8QUUpJec2f8fjWkxx7HwZ9+/7YGNtxFNT8lSbfRoIhNyHpJST9FNc/j0X4cZjn0XaFbIV7JXGWaRh0HSdBqPeHY2934LoJySCSUK8MfXf1d8aZGcrTy5KdGw74WgNJX2hvITrByT1Lb+Kc60/h/cc/5c/H3ElNWc+nuw4kfal/qKFm7TDEDX1bhLBiNs8jKupa4uNfJDr6NoztrF5tSSTQFTWNj9LQ/BbxzhuIsp3UYbmM2Lsx6BLIKT+X9SUz+LnkUNYVT6Wm6WmMujgyEx9tnQbpCVTT4NtOovWQTu/d4NsNQHQHg7HB8Nx6Qy8MfXf1d0ZaeE796/nrCYSTLAwF+kJ7W/QGPVc88Cv+75XryP1pJ7+bfSNbVkZuPKC+1j+UULN2GEaGvru0ZL/piECwkrKaP1FVfw9RtjOId17XaXmdzsKY+HuZNXIrk1M+YXzSC6RG34IrZGREzA0YdNGtZUubvwQgsYuB2CpvPgZhwdbBU4QvpKwL0Iueuwq60t9dLhg3gzJ3I8vKhs6AZF9p35cjzz+UR364G5PFxPVH3MrHz3zZL/c5UPpL/1BAzdpBhYa+I0LSS3XDY+wsPZT6pjeIdVxJStw/91uUpGRsab8XazFmIISTvLp/YTdOIMV+Wuux5kApW2seI848jRjTpA7r4Qs1s6PxS8Y4DutwQdSu5h0ApFozeqiy7zgyNYtok4UPi4Zv/PaeMHbqaB5dfQ/TjpzCQ1f8h4evfBKfd/8Q0xoag4HqDH1ycvJe7wPBcmoanqCgdAFV9XdjNc9jTMrXJMXetl88m2Coifzqayiuf6Dda7v9u1hX9itAMiXpEfQ65fyQ9LOm/EakDDAj6c5OV7Ruq/8Uf6iZqbFndlimoGkLemFgpG18N1XvYV/9vcWk13Nc2gS+2L19yMSp7yvtHeGMi+Luj/7K+TeezkdPf8H1C26jsjhyepL9rT+SUbN2UKGhNxqNhKSHhub3Ka78JXm7Z1FZfxd6fQLpia+QnvgSpn2CkQF4/PlsLT+DmuaPMej2X63qCexmXfkigrKZ6ckvYDeObT22pebf1Ho3MD3xVhzGjkMtSBliQ+0Ski3ZJFuzOyyX79rESNt4jLqeL1gyGvtuZsjCkdm4/F6Wlw1auKMe0ZfaO0Kv1/Prey7i1jevp3DzLn43+0Z+/nZzv9+3OwyE/khFzdpBJYZeSok/UILL/SklldeTVzKD0urf4vVvJS7qasakfMfo5A+wWxa0e35t82dsKTsNf7CK8Ukvkeq8aq/jnkAZP5X9ikCwgenJzxFl3mOkS5u+Ia/+JTKc55LmOL7TehY1/Ui9v5iDOunNe4LNlLrzGWPvOrBaexQXF/fqvPaYn5xBtMnCx7uGhvumL7V3xeFnzePfK/+OI8bGn4+5kyWPfDToETAHUn+koWbtMMTj0UMQf2CXEmNGBpAEkTKAlH78gXw8/k14fZvx+jcRDIWnvhnM2K0nEW0/F5v50L2iR+539ZCL3fX/oqzxKWymqWQmPIHZsPdMGG+gnHVli/AHa5mR8jxO8544OM3+EtZV3kK0KZsp8X/qUs3GuiXY9PGMi9p/YVYLhU05hAj12tD3JUadnuPTJvDxrq14gwHM+iH+cepjRk8ayaOr7uG+RY/yxOIX2LJiG394/PIhGSdHY2gzpL+ZgWA5+aUdBwYTmDAZJ+KwLsRsnIzFNIXqylhGxGd2et2Q9FPleo2S+ocJhKpJdFzAqHZ89t5AJevKFuELVjA9+TmcbVbHhqSfHytuRErJnOT7W+PLd0Str4iiptUcHH9pp7NpCpo2K/55e+9idzid7QdJ6y0LR2bzxs6f+a4sj2PTIjueSF9r7w72aDu3L7mB1+97jxdve52Ny3K4/pmrOHjhjAGvy2DojxTUrB2GuKHX6WJIib0VhAGBPpzRSY8Qegz6kZiNWYh9jGZqarDD60kpqXV/SnHdfXgDO4kyH0x6zLM4zNP3K+sLVrO+/BI8wTKmJz9DtGXvL+7m6oeo825iTtI/sBtHdqllU+276ISRSTEnd1puZ9Mm0q2ZmHrhnwdISUnp1XkdcUhyBjEmK0t35US8oe9r7d1Fp9NxwV/PYPbx07h/0aPcdNLfOenyY7jyn7/C6uh44VxfM1j6IwE1a4ch7qPXCRvRjvOJtp+N034GUbZTiLKdiMN6PBbTpP2MPMD27e0vaGn0rmFr+VnkVf0WgZ6sxGeZkPR6u0a+zrOWH3efiTtQzLSkJ4mxzN7r+O6mr8hveIUxzgsY4eg6DZ036CKn/hOyoo7EZojrpJybkuY8Mhy9d9t0pL+3GHV6jksbzxcl2/EEIns6YV9r7ylZM8fy2I/3cu6fTuXjZ77kiml/YuOygRvfGGz9g4matcMQN/S9xR+sod79HaX1j5NbdTUbdh9BTvnZ+ILFZMTdy5TUT4ixHr3fNMgG7wa2VP6ZdWUXI4SRWSmvENsmpnxIBihoeIt1FbcQY57M5PjFXdZFSsnqqufwS3eng7AAO1zrI8Y/35YTR02iKeBjWfnQmH0zmJgsJi6//2L++c0dCCG4fsFtPPt/rwz57FUakc2Qdt1I6aPRs6rNnhbDLAmEGgiEqvEHq5QtVEkgWE2TLY/1JXvyw5r1I7GZppAcdRkJ9nPQ7xOGOBjyUNH0McWNL9Po24Re2EiLupCxsddiCCcUkVJS7l7G5uqHcfnzibPMYFbS37v0y4dkkO/KH2JL/UdMiTmNJEvHrg9v0M3S3S+QYE47IENvMPR9k89NHI1Vb+T7soKIdt/0h/bectDh2Ty5/gEev+4FXrv3HdZ+/jM3vnQNo7P7L7dpJOkfaNSsHUAM9pSvA2HqjDT57Htdz4/ViyiM+kQM+gRM+lTspinYTJOxmSbvFaKghWZ/ETXuZdS4l1PrWUlQNmM3ZpIWdSEpjtMw6PZklK/z5rC5+kGqPKuxG0cxOe46UmxHdpnmLxjy8Xnp3eS7vmNW/MUcHH9pp+d8WPIsK6o/4vJxd5Nh73iO/WBxybevUtbcwCcLrxzsqgw5li1ZxcNXPomnycOv77mI069ZqPqMSBo9RwixVko5u71jQ/pnzqiLY0LSk+F3e36wJDJs3BMw6uP3mi2Tn59Pytg9i5mkDOEJluLy5VDj/p4a93LcgUIALIZ0UhynkWRbSIzl4L0MsctXyPa6Z9jl+hCTLpqD4m8kw3k2um7En/GFmvmk5BaKm3/i0MSrmRZ3dqfli5q2sbL6Y+bGLzxgI5+fn8/YNvr7inlJo3lgw9dUeVwkWBxdnzAI9Jf2A+XwM+cyef54Hrz8Pzyx+AVWfriWPz33O5JGJvTpfSJV/0CgZu0wxA29ECbsplnohBEh9u8BSRkiKJvxBcsIhBoJhhqp869jZ91Smv35NPnzafbvJCSVpAQ6YSXWMpeRzl8RZz0Mq2H0XsbdH2qkxPUpuxo/oMb7MzqMZEYvYnzMZRg7yO26L+5APR+V/IVKz3aOSvkLE6M7X0QVCPl5p/hxnMZ4jk/5ZQ/+O+3j9XoP+BrtMS9JWfG7sqKIk0d1HMtnMOkv7X1BXEosd73/F5Y+8yVP/PEFrph6Pdc8+huOurDjmEc9JZL19zdq1g5D3NB7A+V8W6TMXRcY0AkTQpjQCSOhkIeAdNG2pw+AGerqwGJIw2YcS6zlYGzGcdiNY3Gap6Lbx68uZZBK9yqKGt+ntPlrQtKLwziWSXHXku44Cashqdv1bfRX8EHxDTT6y1iYdhcZjvldnvNtxdtUeHfxq4ybMOsHbipeT5kSm4rDYGJlRUHEGvpIRwjBiZcfw/SjpnDfoke59+J/8fVry/ndw5cyYpy6pwdqHBhD2kc/Y2a2fOerxUh8hOTem16YMeiiMOii0OuiMOgcGHRRiFA00dYs9B0k/ghJP3XerdR41lHtWUeNZz2+UB1GnZM0xwmMcpxKjHlyj3pZUkpyG79iecWjBKWfE9PuZoSt6zR8O12beX7nHUyJPoRzR3U9g6c7+Hw+TKbOB4l7y2++e50CVw1fnHhV14UHgf7U3tcEg0HeeeRjXrr9DQL+IOfecCrn/+UMLLbeJ2QfSvr7GjVoH1I+eiHE+cBtwCigDLhESrmsvbJ6nZ2MmCt6dP2ysjL0ditB6cMdKMMdKKXZX0pToIgaz8/UejcRkspjnt04ihTbESTbDiPZfkSXs2jao8FXyncVD1PUtJoky0SOSvkzceaus91UeIr5X+G9xJqSOXnEb3p8346oqanpt8Uj85JG83VpLuXuRpKtkbfMvz+19zV6vZ6z/3gKC84/lKdueImX//Y2X/7vO3774CXMP21Or9w5Q0l/X6Nm7RBhhl4IcSxwH3AesBrYPxlrG7zBKr4uPgeDsGHQ2THobErPXdgASUj6CYZT+7X09OubyllfWIc3WEVbt47AQLR5AmOc5xBnmUGceToWQ/uJP7pDSAbZUPs2q6ueRyA4LOkapsSchq6T2DotNPpreXHnXRiEkUVjbsZm6DujWVtb26+GHmBleSGnZUzpovTA05/a+4uEEXH838vXcdLlx/LoNc9y+5kPMOeE6fzukctIz+r067EfQ1F/X6Fm7RBhhh64A7hTSrky/L6ks8JCGLAZ0gmEmvCF6mkOlBIIuQiEmkEI9MKETpjRCSP68KvARJJ1PlZjKjbDCGyGVKyGEVgNSd2aMdMZUkoa/LspbFrFlrqPqPHlk2Gfz+HJ1xJl7J4vf7d7J2/t+hdNgQZ+M+4u4kxDJ452dkwyTqOFlRUFEWnohzLTFkzmiZ/u571HP+Gl29/g8imLOeMPJ3LxbecMaBgFjaFJxPjohRJG0g3cCvwGsADvAjdIGZ4Wo5S7ArgCID09fdZnn30GQFJSEhaLhaKiIgAcDgfp6enk5OQASryRCRMmsH37doJBJd7NmDFjaGhoaE0zlpycjNFobA1p6nQ6SUlJaV0+bTAYyMrKIj8/v3UUPzUjjh2VyyluXksN2/CKGgDscgQZ8kQynQtISkoiNzcXUOJiZ2Zmkpubi9+vhAzIzMxkV3khy+reZkdoNVadgxPjL8dSpzxRxMbGEhcXR16ekrbPbDYzduxYduzYQSCgrKgcP348ZWVlrbkx09PT8fv9lJeXAxAfH4/T6SQ3Nxe9Xo/VaiUjI4Nt27YRCud9nThxIsXFxbhcLgBGjRqFx+OhoqICgISEBBwOBwUFBQDYbDZGjx7N1q17lvHfUrIKXSDEHaOVvLgZGRm4XC6qqqp61E4FBQW43e4+a6dx48ZRUlKCx6OkYUxNTUWn01FSEk7EHh1NYmJil+1UWVlJfX09AGlpaYRCIUpLS/u8nXbu3AnQbjslxaTw2B+fZdnrq4hNiea3Dy1i2jGTumynTZs2odcrT5TZ2dkUFhbS3Nwcce1UU1NDbW1tn7ZTY2Nj6/98oNqpL75PPWmnSZMmdeijjyRDPwKlB78WOAXwA+8B30gpb2rvnNmzZ8s1a9b06D4NDQ29imQnpcQVqKDWV0iNt4AaXwEV7hxqfEpDm3UO0mwzSLfNJN0+ixhT14HMAJoDjayp+YJlle/hDrqYF38CRyefj9XQP3PRe6u/uyyxQ2bwAAAfm0lEQVT65hWaAj7eOuaSfrtHb+lv7QPNpu9zeOSqpyjYtIv5p83h6kcuJWlUYoflh5v+nqAG7UNlMLal1/5vKWUpgBDiQeBmoF1D7w8183PNm5j1Ucqma3l1YNBZ0AsjemFEoGsdvCopKcHpdCKlJESAoPQTDPkJSC+eYB3NgVrcwVrcgVqag7U0B2qp9xdT6y3Ev+fBAqs+lnjzOMY7jyHdPosEc2a3/O8tlLkLWFH9MetrvyMgfYxzTGVh6iJSrV0P1B4ILfr7C7vRRLnb1W/XPxD6W/tAM+XQiTyx9n7efugj/nvHG/x60mIuvu0cTv/DiZjM+7shh5v+nqBm7RBBhl5KWSuEKGa/ie8d4w26+L7y8W6UFOiFQZlfL0J8tz1IUHYdadEgLFgNMTiNqUyMPoFYcwZxpgzizKOx6PcPndAVQRkkp+FHVlR9xM6mzRiFiRmxRzAv/kRSrB2nGBxK2A1mXAF1L04ZSAxGA+f9+TSOOPcQHvvDczx94//44D+fcdndF3LEuYdooRQ0gAgy9GGeB64RQnyC4rq5Dviwo8IOYxKXZb6PN9iIN9SIN+gKvzYSkF5CMkBQBsKzbwKEpI9Gl4voqBj0wohOmFp7/QZhwqKPwWaIxaqPwWaIw9jBXPue0BSoZ0fj+vC2jqZgAzHGRE5I/RWzYo/u0xk13SE6uuc/UD0hymim0R+Zhr6/tQ8mKRlJ3Pnejaz5dD3P/OVl/n7hw7z5z/e5/L5fMuOog4Dhrb8r1KwdIs/Q3wUkANsBD/AGcHdnJ1j0UVj03TeW/lh/vyYK9gbdlHkK2NH4M9sbf2K3Ow+JxKZ3khU1nSnR85nonNUjN09fkpjYsQ+3L4gymmnyewlJia6Plu73Ff2tfbARQjDnhBnMPHYqX/5vGS/c+hp/PuZO5iycweX3XkT6xBGDXcVBY7i3fVdElKGXUvqB34W3LvGG3CyvfI8oQxxOYxxRxlicxjhMOkuH5+Tm5pKdfeDRH30hL3W+Cso8hZR7isJbITU+ZVReoGOkLYujks9jfNQMRljHoWsnHs9A01f6OyLKaEYCTX4vUaaO22Ew6G/tkYJer+e4RQs44txDeO/RT3jl70u4cvoNzFw4hd/edykZk7s3UWA4oZa274iIMvQ9xRNsYmnpi/vtt+hs2AxOrHo7Vr0Dq96ORe/AqnfQEHRRXbkdvTDstwVlgID0Ewj5CUg/QenHH/LjDjbiCtTR6K/DFVA2b2jPwKwOHfHmEaRZxzEz9iiSLaPJsGcPuFsmEogyKkv0GyPQ0KsNs9XMuTecxgm/PorX732Xdx/7hCumXs9hZx7MhTedReb07g38Syn7LLCaxuAwpA19tDGBWyb/lwZ/LQ3+ahoDNa1/NwdduIMuPEEXdb5K3EEX7mATIYKsL+3ZfSx6O1GGGByGWNKs43AYo3EYYok2xpNkGUWiOQ2jbmjE0ehPtxXQatwj0U/f39ojFWdcFJfffzFzzp7Kuve38O6jS1n29ioOOXU21zz6GxLTO18B7vP48Db7cMYP3Y6LWtu+hSFt6EExwha9nSRL15l5pJQEpJ+QDLb23oOtA7ZBdEKPQZgw6AwYwgO0emEYVr2ZzMzMfr1+XoOykCPGHHmrNftbe6Qz/eBpTD94Guf86VTe/fdSvnplGfZoW6fnfPbiN/z0xQY2fLuFxFEJ/PGpKxk9aei5ftTe9oPvNB5AhBAU5hdh1luxGaJwGuOINSWRYB5BkmUkCeYRxJgScBhisOjtGHTGYWXkgdYVhf2By+/lpR1rODxlbEQGNetP7UOBFv2OGDu/vOVsnt70ILaojn+Qt67awePXPU/G5JE89uO9ZM/N4t1/Lx2S+W3V3vaqMvRA6zJptdKf+l/Y/iM13mYWT/lFv93jQNDafm/9LeEQ2sPr9vLsX19mwbnzOf8vZxCbHMP80+aw/J3V+L1D7/+o9rZXnaHX6B/qvG6e2baSY9LGMy0+bbCro3GA5KzKpWhrMb+87ZzWfa66JiYdMp6qkpp2z2msjcwV0RrDwEffU9Tuq+sv/U9vW4nL7+WPU47ol+v3BVrbd1//N69/z7jpGSSMiAMg4A9QXlBJwB8gNjkGUJKj6PV6XHVNfPjk56z/ehNFW4u58P/O4uQrj42o2Tpqb3vV9egrKysHuwqDSn/or3S7eHH7j5wyajITYrqfWnGg0dq++/p/+nIjxy06svV9SW4Z237MJWPSSBwx9lYjL6XkuZte5bu3VnD67xdy/TNX8cF/PmXT8q0RY+RBa3vVGfqW0KVqpT/0P7H1B3yhANdGqG++Ba3tu6ff3eQhc8YYakprW/et/ugn6qsaOOZipY2DASUU71evLCfv5wJ+c89FzDt5FrOOncao7HTWf725NVwvQH1VQx8q6Tlqb3vVuW40+pbdTfW8mvcTZ4+ZRkZU3GBXR6MPsNotzDpmKu8+upRRk9LZvDyHH97/kTP+cCJjDhpNMBhsjY750VOfM/Pog8iel9V6fnR8FEU5xeh0OuqrGvjy5WV8/+5qKndVc8YfTuSMP5w4WNJUi+oMfVqaugcK+1J/IBTi/g1fA/D7yYf32XX7C63tu69/4W+Oxu3y8MTiFzjosIn8+p6LmHviTGDPbJ0dP+XT1NDMrGOn7pXl6ts3fuB3j1wGwOPXPc/uvHLOXnwy9hg7/73zTbJmjmHKYQMbjkDtba86Q9/2cVKN9IV+KSUrKgq5a91nbK+v5Krs+YywRX6sb63tu69fCMFZi0/mrMUn4/f5MZqMVJVU8+Jtb3D1vy7DYjNTml9OWmYKMeHBWYAf3v8Rvy/AvFNmsfmHbXz35gqe2vBPRk5QDO3bD33Aig/W7mXom+qbsEfb+05oO6i97VVn6EtLS4mJiem64DDlQPT7gkE+3rWFF7b/yMbaUtJs0Tx+6Fkclzahj2vZP2ht3zv9RpPipjHbzMQkRWO2KuE+kkYlsGXFdmKTlRDAPo+Pl25/g5OvPBar3cKnz3/NnIUzWo18MBAkdWwKFru5dUbOs//3Cjs3FpL/cyHn/OlUTr9mIUCfD+Sqve1VZ+g1ek6Vp4lX837i5dy1VHqaGBsVz52zTuDMjKlYDeqOIaImomId/PrvF7a+TxmTRMaUUbz776XMPm4abz34AcFAkEV3nofP62f5kpXc9vYNreV355XRWNNI+vhUQsEQr97zDp8+/xU3vbYYT5OX5256hYlzs8iem9Xe7TUOgCFt6IMyhMvvxRGOmNgdYmNj+7FGkU939XuDAVZXFvFh0WbeL9yMLxTk8JSx3Df+YA5PGRtxsea7g9b2fas/JjGaRXecxxOLn+e7t1ZwyMmzOWvxyRhNRn78dD06vY5pCya3ls/fUER5YSWX3X0hKz9cS87qHfzu4UuZdoRSZtWHa/n46S/6xdCrve2HtKGvcLuYtuQfxJvtjHLEMNoRy6jwNtIewwh7NMkWB/o26dTi4tQ9M6Qz/btcdXxbmsu3ZXmsKC/EHfRj1Rs5e8w0Fo2fQ6YzYQBr2vdobd/3+rPnZvGvH/5OU0MzdueeAGlBf5C08SOoq6wnJjGaopwS1nyyjqyZY0kdm8x/73qT9PEjODg8wAtQtbuGpJHKZywUCvVpGkS1t/2QNvTRJgvXTj2SQlctha5aVlcW8V7hpr2SzuqFIMXqJM0ezQhbNGa3j8kjx5BsjSLZGkWqLYo4s31I9lB7Q15eHtnZ2bgDfrbVV7CltpytdeWsqigkr7EagFGOWM4eM40FI8YxL3E0lmHinmnRrlb6U7/dadtrJezMYw7irQc/YMnDH3HCZUfxwKWPkZaVwpmLT6ZwazGNNS5mHTOtNahaQ00j5YWVHPurBQB9nutW7W0/pA29zWDiyuz5e+3zBgOUNNVT3FRHSXM9JU317G5uoKSpnlWVhZQ3N/B6xba9zjHqdCRaHCRY7CRaHMRb7CRY7CSYldc4s41Ys5UYk5VYsw2zfmj82wKhEBUeF7ub6tndXE9xUz0/FuVSsvNbdrpqCEnlJ9FptDAtfgQXZM5kQWomY7T58Bq9oO0Aqsli4vL7fsnji19g7ecbGD9rLIvuPI+YxGi2r82jrryeSfPHt5b/+tXviUuJIXVM5K6sHsoMDYvVA8x6A2Od8Yx1tp9MYUdeLlGpSZS7GylzN1LubqTc7aKsuZFqbxO7m+vZULObGm8zQSnbvYZVbyTGbCXGZCHKaCHKaG7dHEYzUUYLNoMRq96IxWDEZjBi0SuvJp0eo06PQafHqNMpfwsdBp0OKUGGn0ckyjRGCfhCQbzBAL5gAE/QjzcYxBsK4PJ7qfd5qPe5qfN5qPO5qfe5qfE2s7upgTJ3w34akk12DkpM4+RRk8iOTWZSTAojbM6IWq7eX5jN3R/LGY4MtP4JczJ5ZPnfcLvcWOyW1s+Yp8lLSW4ZKRl7jPqH//mMYy4+grSslH6pi9rbXsgOjNlQYPbs2XLNmjX9cu2QlNR6m6nyNFHrc1PnVQxoXfjv2rBRbfR7afR7wq/KFhqE/6lJpyfGZCXaZCHWbGOEzUmqbY/LKs0eTarVid04NDJhaQxf3C439/zyX4yeNJJDTp3Ne48uJW99AQ8tu4uoWMdeZT3NXv5x2WPMP+1gDj19Dmarug12Zwgh1kopZ7d3bNj16Ltix44dZGV1PaqvE4J4i514S88WckgpcQf9NAf8eIJ+3IHwFt7nCwUIhEL4Q0HlVQbxh4IEQxIECAQtfWsRfm/S6bHojZj1Bsx6Pebw33aDMWzcrVj03cuE1V39wxE1a4fI0W91WLno5rN5+s//ZeUHa5h/2hzOveG0/Yw8wO7cMjYtz+HbN1bgiLFz9EWHs/A3RzNuWkaP7hkp2gcL1Rn6QKB/s+MIIbAZTNgMkdlz7m/9kYyatUNk6Z8wexz/+Op2mhvdnWa5Gjt1NK8U/YcN325h6bNf8vEzX/LeY58wdtpojrnoFxx5waEkpHWe8xYiS/tgoLrolRoaGpFDZ0a+BZ1Ox/Qjp/DX/13La8VPcvUjl2EyG3nqz//lwlFXceNxd/LZi9/Q1NA8ADUemqjOR98SR1utqFm/mrXD8NNfvH03X768jC9fXkZpfjkmi5G5J8/i8DPnMfekmXv9iAw37e3RmY9edYa+pKRE1ZHs1Kxfzdph+OqXUrJ15Xa++N8yli9ZSW15PUazkVnHTuWwM+dyyKmzaXQ3DEvtbdEGY9vQ0DD8G7wz1Kxfzdph+OoXQjDpkAlMOmQCV//rUrb8sJ3lS1axbMlKVn64Fr1BT+ac0Rx17i+Ye9JM0jJTB7vKA07EGXohRBawEXhLSvnLwa6PhobG0EGv13PQ4dkcdHg2v31wEdvX5LF8ySq+fnM5Tyx+gScWv0D6+FTmnjiTg0+axUGHT2yNzjmciTjXjRDiM8AKFHZl6HvjumlsbCQqKuoAaji0UbN+NWsHdetvbGzEVdnMqo9+YtXHa/n5my34vX5sUVamHTmZmcdMZdaxU0kfP2LILh4cMq4bIcT5QB3wA9Avadv9fn9/XHbIoGb9atYO6tbv9/tJHZvM6dcs5PRrFuJu8rDuy42s/ngdP32xgRXvKx3GxJHxzDx6KjOPncrs46bhjB8eP4wRY+iFEE7gTuBo4Nf9dZ/y8nJVR7JTs341awd1699Xu9VuYf6pc5h/6hwASvPLWfv5Bn764md+eG81n77wNTq9jqlHTOLQ0w9m/mlzWiNrDkUixnUjhHgE2C2lvE8IcTuQ2Z7rRghxBXAFQHp6+qzPPvsMgKSkJCwWC0VFRQA4HA7S09PJyckBlLm4EyZMYP369a1xL8aMGUNDQwPV1UrUxuTkZIxGI8XFxQA4nU5SUlLYvn07AAaDgaysLPLz8/F6vQCMGzeOmpoaamtrAUhNTUWn01FSUgJAdHQ0iYmJ5ObmAmA0GsnMzCQ3N7e1h5WZmUllZWVrpvq0tDRCoRClpaWAEks7Li6OvLw8QInbMXbsWHbs2NG6EGT8+PGUlZXR0NBA+H+D3++nvLwcgPj4eJxOJ1u3bsVisWC1WsnIyGDbtm2tadYmTpxIcXExLpcLgFGjRuHxeKioqAAgISEBh8NBQUEBADabjdGjR7N169bW9snOzqawsJDmZmVOc0ZGBi6Xi6qqqh61U0FBAW63u0/bKScnB6PROCTaaefOnQB92k7r1q3DYrFEfDv1x/epsLAQg8HQrXYKBUOIRgOfv/otP368nvL8SgDGTh/NpCMymXr0JCbNmUB0dHS/tFNvv0+TJk2K7OmVQojpwMvADCmlrzND35be+OgrKipISlJvhDw161ezdlC3/gPRvmtbCd+/s5rv311NzmrlByYlI5E5J8xg9gnTmXHUlL2Sow8WET+PXghxHXA30Bje5QD0wFYp5cyOzuuNofd4PK29GjWiZv1q1g7q1t9X2iuLq1n54Vp+/GQd677ciKfJi9FkYMrh2cw5YQazjp1KxpSRfR5PvzsMBUNvA5xtdv0JyACuklJWdnRebwz91q1bVZ2AQM361awd1K2/P7T7vH42f5/Dj0vX8eMn6ynYvAuAmEQn046czPQjD2LG0VMYMS5lQGbyRPysGyllM9AaqEII4QI8nRl5DQ0NjcHEZDYy46iDmHHUQVzxwK+o2FXF+q82sf7rTaz7ciPfvrECUGbyTFswmYMOy2bK4dmMnDDwUzgjwtDvi5Ty9v66ttU6+L60wUTN+tWsHdStfyC0J41M4LhFCzhu0QKklJTklrHuy42s+2ojaz79mS/++x0A0QlRTDlsIlMOy2bKYRMZNz2j3xdtRYTrprf0Z+IRDQ0Njb5CSknJjlI2LtvKpu9z2LRsK7vzlJlWJouRrFljyZ47nux5WWTPG09ietehl/cl4n30vaU3hn7btm1MmDChn2oU+ahZv5q1g7r1R6L2qt01bP5+GzmrdrB11Xa2r8nH71WmiCakxTHh4EwmzM5kwpxxjJ89DkdM50mQIt5HP5C0zHFVK2rWr2btoG79kag9YUQcR5xzCEeccwgAfp+f/J8L2bpSMfw5q3P5/p3VAOh0gvGzxzHj6IOYecxUsudl9SitouoMvYaGhkYkYjQZmTAnkwlzMjn9moUANNa62L4mj03Lc/jpy428fv97vHrPOxhNBibOy2LqLyYxbcFkJh0yvtNrq851I6UcskGL+gI161ezdlC3/uGivam+iU3Lc/j5m838/O0Wcn/KJxSSGE0Glnpf01w3LRQXFzNy5MjBrsagoWb9atYO6tY/XLTbo+3MPWkWc0+aBYQN//fb2PDNZpY+8FqH56kuZ2xL3Am1omb9atYO6tY/XLXbo+3MPXEml99/caflVGfoNTQ0NNSG6gz9qFGjBrsKg4qa9atZO6hbv5q1gwoNvcfjGewqDCpq1q9m7aBu/WrWDio09C2xoNWKmvWrWTuoW7+atYMKDb2GhoaG2hjS8+iFEJVAYQ9PSwCq+qE6QwU161ezdlC3fjVoHy2lTGzvwJA29L1BCLGmo0UFakDN+tWsHdStX83aQXPdaGhoaAx7NEOvoaGhMcxRo6F/arArMMioWb+atYO69atZu/p89BoaGhpqQ409eg0NDQ1VoRl6DQ0NjWGOagy9ECJOCPGOEKJJCFEohLhwsOs0kAghvhFCeIQQrvC2bbDr1F8IIX4vhFgjhPAKIV7Y59jRQogcIUSzEOJrIcToQapmv9CRdiFEhhBCtml/lxDilkGsar8ghDALIZ4Nf8cbhRDrhBAL2xwf1u3fEaox9MBjgA9IBi4CnhBCTB7cKg04v5dSOsJbZCXQ7Ft2A38Dnmu7UwiRACwBbgHigDXA6wNeu/6lXe1tiGnzGbhrAOs1UBiAXcARQDRKW78R/qFTQ/u3iyoSjwgh7MBZwBQppQtYLoR4H7gY+MugVk6jz5FSLgEQQswG0tscOhPYLKV8M3z8dqBKCDFRSpkz4BXtBzrRrgqklE3A7W12fSiE2AnMAuIZ5u3fEWrp0Y8HglLK7W32/QyorUd/jxCiSgjxvRBiwWBXZhCYjNLuQKtRyENdn4NCIUSxEOL5cA93WCOESEb5/m9Gxe2vFkPvAOr32VcPRA1CXQaLG4GxQBrKnOIPhBDjBrdKA46aPwdVwBxgNErvNgp4eVBr1M8IIYwoGl8M99hV2/5qMfQuwLnPPifQOAh1GRSklKuklI1SSq+U8kXge+DEwa7XAKPaz4GU0iWlXCOlDEgpy4HfA8cJIfb9fwwLhBA64L8o43K/D+9WbfurxdBvBwxCiKw2+6ahPM6pFQmIwa7EALMZpd2B1rGbcajzc9CyUnLYfQaEEAJ4FmXixVlSSn/4kGrbXxWGPuyLWwLcKYSwCyEOBU5D+cUf9gghYoQQxwshLEIIgxDiIuAXwKeDXbf+IKzRAugBfYtu4B1gihDirPDxW4ENw2kgriPtQoi5QogJQgidECIe+BfwjZRyX1fGcOAJIBs4RUrpbrN/2Ld/h0gpVbGhTKd6F2gCioALB7tOA6g9EfgR5RG1DlgJHDvY9epHvbej9FjbbreHjx0D5ABu4BsgY7DrOxDagQuAneHPfynwEpAy2PXtB/2jw5o9KK6alu0iNbR/R5sW60ZDQ0NjmKMK142GhoaGmtEMvYaGhsYwRzP0GhoaGsMczdBraGhoDHM0Q6+hoaExzNEMvYaGhsYwRzP0Gv2KEOKFcBz0gj66ngxvt/fF9QYCIcSCNvVe0AfXk/tsHV5TCHFJm3IZB3rvdq5/+r716et7aBw4mqHX6BXhRCZtv+BBIUSJEOIDIcT8NkXzgFXAujbn9qnx7ylCiCfb1Ls0vGp2KJKP8r9tGMQ61ITrkD+IddDoAs3QaxwoPpQv+gYgCTgZ+FYIcTCAlPIuKeU8KeUZg1jHVoQQVuC8NrtSgBMGqToHSsv/9qfBqoCU8jsp5TxgOCYxGTZohl7jQCkNG5sZwOnhfQbgQti/9x5+XRQuN3pf94MQIlkI8R8hRJEQwieEqBBCfNDOfU1CiAfD8fUrhBCPdLNnfgZK5qEgsD6879K2BfZxtVwihPgwnHpupxDi1/uUPUwo6eo84dfDuuteEkLMCV+7Riip/zYKIS7t7JwurieEELeF/x+NQoj/hrW2V/Y4IcRXQogGIYRbCLFKCHHKPmUmCyGWhbXlCCHOEEIUhLW90Nt6agw8Q/WRVSMy6U4kxHWAHUhAeRpocek0hINtrUKJVwKQi/IZPbmd61yHEq/EjRJj/w/AJuDpLu7fYkg/Bd4AXgBOEUIkSCmr2in/FFAC+IEM4CkhxPdSyhyhJLVYihLn3AOYgY+7uD8AYffW14AJqAhrnQI8J4SIk1L+szvX2Yer2JNdqRQ4EuWHbd97n42iXQDF4bofDLwnhDhXSvlWOOjXUmAkEABCKLHdtc7hEERrNI0DJVUIsVIIsQ4lOiAohuHV9gqHXTgfhd+2PA20uB+uZo+Rv0hKmSWlHAPMbudSZSiJVDJR8qQCHN1ZRYUQo4Cjwm9fAt4GmgEjSh7h9ng/fJ/Dw+91wILw31ejGHkJHC6lnATc0Fkd2vA3FCP/HZAupZwM3Bw+dlvY0PaUG8Ovq1F+lDJQgtnty/0oRv4VYJSUMgt4JrzvnnCZC1GMPMD5YW1noPyYaQwxNEOvcaCYgLnAVKASxYgfIaVc1YtrzQ2/FkgpX2nZKaVc207Z96WU9VJKD0pURlDij3fGIpTPfD3wnlTyB78bPnZJB+f8TyqR/7a02ddynynh11wp5Zrw3+3+wLVDi9ZfAL7wbJW/hfdF0cP0dkJJIDIq/PZdKaVPShlACc/dtlwiMCb89kIgFL73b8L7MsNPVi3afC3XkFJ+CtT2pF4akYHmutE4UAqllBmDcN+6Nn8Hwq9duY5axgYcQJkQAvb0UKcLIaZLKdfvc04dgJQyEC7f3n0OZErhbmBXO/tDB3DNtuxb17bvd6K4jfbF2OZvKbUQt0MerUevMRg0h19too31RPHPA2QIIc5t2SmEmMYBIoT4BUo2IVCSckSHt7Yukp4OhG4Mv2a2qeMF3Ty3xaWyGzi6xYUFnAI8LKVc1/Gp+yOlbGDPD8apQghTeHD69H3KVQAF4bebUFxOLfc+F7hHSlnWRpu5ZZBWCHE8ENuTemlEBpqh1xgMWjL6JAI5YR+/FXgMKAwfe10IsUMIkUebOfgHQIsRrwGMUkrRsqGknQO4SAhh6sE1H0NJaqEDVgghNgP/6Oa5N6MM8M4GSsMzdopQxh7u7UEd2nJ/+HUeSm99JzC/nXJ/Cb+e0ubeu1F+ABaHj72KkqAH4O2wtncBby/rpjGIaIZeYzB4DmUgtB4Yj+Kv1kspq1GM1JMovdMMlOTN3ZrJ0hFCyQ16dvjtB2HfdVveDr/Goxi/bhHuHS8EfkZ5SggA57cp4m7vvPC5y1EGeD8MnzcpfOgj4Jbu1mEfHgPuBKqAGJRMYje1c+/Xw/X+CmWMJRtl5s2bhH+owmMfJwLLUVxTJuBi9iTS7lCbRuShZZjS0DgAhBDjpZTb27y/GGVGD8DxUsrP+uGeLV/afJQB8N/1x6IpIUQWykCzDL//BfBt+PCVUsqnwvvuR3k6GwsQfkrSiCC0wVgNjQPjjfBUyG0oTwQtrpJvgM/7+d5jw5uzn67/AMog9UaUtQ8tU0y3Av8L/x3HnhlEGhGKZug1NA6MpcA5wHHh91tQFiM90F+zVQawx/w1imvtKBRbUYCyruBvUsrmcF3epXsL5TQGEc11o6GhoTHM0QZjNTQ0NIY5mqHX0NDQGOZohl5DQ0NjmKMZeg0NDY1hjmboNTQ0NIY5mqHX0NDQGOb8P8PG7uzbCWo0AAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAEeCAYAAABsaamyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABCtUlEQVR4nO2debgdVZmv3985JycJGSAQQAyRMAQRvIDI4BVUEEWgFRqcwAlsvTRquhu52tIXVBy6G9S2tZUW0hpxaBtRAWMTBFtBRBtNaMIQSCCEQEKAEAiZk5Nzznf/qLWTyk7t2lV71x7P9z5PPXvXqrVWrTrD+tX3fWuQmeE4juOMTHpa3QDHcRyndbgIOI7jjGBcBBzHcUYwLgKO4zgjGBcBx3GcEYyLgOM4zgjGRcBxypD0akm/l7RBkkm6KaQfIOlWSWtC+nxJ08J3k3R+xvpzl3GcRuEi0AVIuiPWqZikIUlPSfqFpNe2un31IGm0pI9L+u/Q+W6S9Kik70h6RYNu+x3gtYCAucCikP5V4BRgF2AecD+wBfhjOJ7LWH8tZXIh6drwt7C0EfU73UNfqxvgFMoAcC8wGngl8FbgVEnHm9mfWtqyCkjqA4YsYdaipEnAr4FXhaT1wKPAVOAvgAeAhxvQrMPC51Vm9smE9JvM7J2x9NfkqdzMns5bxnEahVsC3cXTZvYaM3sV8OchrQ94TymDpDMk/U7SekmbJd0n6SOSFK5fHt4gH4uVmRvSPh3OD4tZHa8OaRMkfVXS45IGJD0t6WpJu8Xq2fZ2Kul8SY8TCdeuFZ7nm2wXgK8Au5vZ4WY2CXgjkQiU6j4h5qrZImmRpEsljYrlkaSPhWfeFPLOlnRouH6iJGP7y9EnQnuvDekHhfR3xNITXTuSDpL0w/BzGJC0QtI14VqlMgdLuk7SylDmUUmflNQTy7M0lPu+pM+F+leHe00o5QHOC0X2i93rxAo/Z2ckY2Z+dPgB3AEYsDSW9taQZsDXQtr7YmnPAo/Hzv8x5DkxlvYSYBywNZzfFvL8ZTh/kehFoh+4J6RtAe4jemu3kD4qlLs2pA0AQ0RulmeA3RKeadfYfecDSnn+E2N5V4d6S8/wH7F834ilPxTuXXqOA4CjgLtjeZaH80+Hzy0h/blY+rRY/vPDfQ4K7bDwnA+HupaG69XKrA4/w6Fw/o3YMyyN/QzXAktidf19yHNjaGPp93F3OI5q9d+qH+13tLwBfhTwS9wuAqV/+HtjneJW4LiQ74mQNhcYQ+Tz/o9Yp7I7kStpU0h7B3By+L4mdDq9wA9D2uxQ7wdi9zospO0HDIb094a0a2Md1l+GNJHQwQPHxPJ+o8rz/zbkexKYFNKuiJX/X6HjHQ7nF4Q8o4EHQ9q/xeorlbu87D6lDvjaWFpShz4r9vN4fSzvURnKLAImhLT3sl1Ippa1YS0whUiE54a0u2P3Kv2sl7b679OP9j7cHdRd9APHAYcTvQneDLzBzP4oaS/gZSHfjWa22cyMSAQARgFHmFlJSACOB04I378FTACOAF4X0m4Pn8eFzz7gweA6WUokGLCz/3sT8G8AFkh4FsW+V1vl8Jjw+UszWx2+/yh2/eiQp1TnNaGNm9nu5y/SR1/6edxlZneWEs3sfzKUORhYG9r3w5DWAxxblv83ZvaUmQ2zPXC9d33NdkYiHhjuLp4ws2kZ8lXrVG8ncrGcQOQqeQK4DvgUUXyhJCZ3hM9S57oVSOroni07Xxk6rzQWEVkSfcAJklRBLOKkXY+Lyn1EAhBnRZW6G02pfc8DixOubyo7fzH2fbCsDsfJjFsCIwQzW0nkLgE4W9KYEAw+J6RtJeocYXvnfiTwv4G7iIZDriGKB8B2vzVAaeRRH3CRRcHp1xCJyOfY/kabp71rgOvD6auAfwgjiQCQ9HpJbwync8PnaWFEEcSC4UTDOUsuE4jiBK+JtfNjRIHnovhj+DxB0vGxNh+ZUqb0M9wAvC3WtlOAb5nZnJxt2Bg+dykF/R0nCReBkcWl4fNoInfNEuDckPZPZvZC+H430ZtnH1Fg+Pfhzf2/gfEhz52xt/n/IARvgT9IWiDpYSLRmEPkA6+FGUTxDYBLgBck3S9pFVEc4PBw7bNEb8NTgSWSFhFZLQDXmdkDZvY4cHVIu0LSE2GU0AtEInFKjW1M4h+I3tT7gDslPSTpSaKAbVqZNURW1hOS7pW0hMgyuLaGNiwMn3sCCyXdLWlsDfU4XY6LwAjCzH4InAn8nsi/vw/RG/5Hgf8XyzcA/CFW9K7w+btY2h2x/FuI3EdfJRKX6USdzwLgi0TB11rau5po0tb/Zfub8sHAOuB7wG0h3x3ASeG8B9gfeIRo9M4HYlXOAP6ayILZK+R7mije8bNa2lih3YuJYhA/IorNTCcShNtSyjxCFBe4juj5DiMKXN8BXFRDM2YRPdMaop/ZcWyP0TjONlTdzeo4juN0K24JOI7jjGBcBBzHcUYwLgKO4zgjGBcBx3GcEUxHTxbrGzvORu22e+I1S5E3a8IYCQ0lpA0nXy997xmyWJqh0vlgyDAUzQma/qr9i2yq44wI7rnnnlVmtmc9dbzppDH2/AvV5jlGzL9/661mdmo992sGHS0Co3bbnQPOu3in9K3jEzIHBidm+wUWQd/aHZVo1Podr/evK31u7/xHr4k6/FFrtkafq6OJolq9juHno2H8t877fiOa6zhdjaQn6q3j+ReGuf2WbKtzTJqyfHK992sGXecOKloAhsYP7XQU3baBCdkmdPbskWz1OI7j1EpXiUBRAlCtw88qCNXuOTBh57Qtu0a+qq27jtr5YuAt4z5Q8ZrjOE4eukoEKpFVAGp5069Wpvzeea2BrZOimf42KUExHMdx6qRrRKBS55pFAOp185TqqESRcQh3CTmOUyRdIQL1CkBRZK0r3t4sLqGSNRDHXUKO4xRBU0VA0gxJ88IesNdWyPPZsB/qm7LUWasAFPH2X6neWtoD1QPE7hJyHKdomm0JrCBaVXJW0kVJBxJtafh0lsoqzQXIIgCNJEv9aUHsarhLyHGcomiqCJjZDWZ2E9Ea6Ul8k2gd+IFa79FqAUi7T6W2uUvIcUYmkk6VtEjSYkmXpOQ7RtKQpHfE0pZKekDSfEnzYuk/DmnzQ575aW1om8likt4JDJjZnLSNkCRdAFwA0LfrpIr5kmiWAGRl6/idJ5ANTNAOk8fKsUkT0Op1DW6Z4ziNRlIvcBXwZmA5MFfSbDN7KCHflcCtCdWcZGar4glm9u5Y2X8i2lOiIm0hApLGE+2sVHV3JzObCcwEGDNl6g69ZZoVUIsAjBqfbpBsXd+fen1o/BC963dco2Jw4vBOM4khsgb6c/TtPXvsvm0GseM4HcmxwGIzWwIg6TqiTZ8eKsv3V0QbBB2Tp/Kwrei7gDem5WsLESDah/YHYQvAmihKAKp1/El508QgSQiysmXXXkavGWLrrqMYtWYrWyeN3baMRIm3jPsAt27wZSQcpxlsNvHoYOb/58lxNw0wM7zElpgCLIudLyfaAW4bkqYAZxF15OUiYMBtkgy4pqxugNcBz5rZo2mNbBcROBnYV9JHw/mewPWSrjSzK6sVLkIA8nT+SWXzCEHcGnCXkON0LavM7OiU60l+7/J//K8BnzKzoQQ3+fFmtkLSXsCvJC00sztj188l2v87laaKgKS+cM9eoFfSGKINwk8G4uskzAUuBm6pVmerBaC8jmouojTcJeQ4I4rlwNTY+b5EIyjjHA1cFwRgMnC6pEEzu8nMVgCY2UpJNxK5l+6EbX3t2cCrqzWi2UNELwM2AZcA7wvfLzOz583smdIBDAGrzWx9Sl2pZBGAUeMHChGA8jqztCfrLGIfJeQ4XctcYLqk/SX1A+cAs+MZzGx/M5tmZtOAnwIfNbObJI2TNAFA0jiieOqDsaJvAhaa2fJqjWiqJWBmlwOXZ8g3LVN9FVxzWQWgUVRzD5UTdwmVrAF3CTlOd2Nmg5JmEI366QVmmdkCSReG61enFN8buDFYCH3Aj8zsl7Hr55DBFVQq3FW0WgDSqCdIXAl3CTlO52Jmc4A5ZWmJnb+ZnR/7vgQ4IqXe8ytdK6cr1g4qUU0AGuH+SbtXNeIuoaQZxKVlJNwl5DhOo+gqEUijFW//SffMYqkkzSBOwtcSchynXrpGBNI611oFYNcJm1KPIihimenSWkJuDTiOk5euEIEiBSBPJ58lX5771+sSchzHyUvHi0BRAlDP231eIWiES8hXFnUcpxY6WwR6Kg+hzCsA9VJPHdUCxHlwl5DjOHnouiGikF0AivLrl9e3Zt3OrpryuQN5houW5gxUWkvI5ww4TnMYsD6WDOyZMfcTDW1LUXS2JZBAqwSgEWR1CZVwl5DjOHnpKhHIIgBFjuxJu0cSabEBdwk5jtMKukoEqtHMt/+i71VtlJDPGXAcpxa6RgSqWQGtcP8k3TOtnUlzBtwl5DhOI+kKEWhHAchKpeGiWVxCJWsgCXcJOY6ThY4fHdQoAdhrXLZVrFduSO+td52waafRQnlXGS1RPkqohI8SchynVjraElBv5XkCkF8A9hq3ftuRp0w1qrWjUoC4hLuEHMdpFB0tAmnUIgC1Uk/ZNNwl5DjdjaRTJS2StFjSJSn5jpE0JOkd1cpK+rGk+eFYKml+Whu6UgTyCEDeN/9a6ylvU62L2pWPEipRPkrIrQHHaW8k9QJXAacBhwLnSjq0Qr4riTafqVrWzN5tZkea2ZHAz4Ab0trRdSKQVQCK6vyT6q2Fol1CJdwacJy25VhgsZktMbMB4DrgzIR8f0XUma/MU1bRtmPvosoOYx0fGI6TRwBaQXmQOEuAOL71ZDmVlpFwHKcxbB4exeIte2fNPlnSvNj5TDObGTufAiyLnS8HjotXIGkKcBbwRuCYPGWB1wHPmtmjaY3sGhFoJwHYa9z6qqOG6iHr/sO+9aTjtJRVZnZ0ynUlpJX/Y38N+JSZDYX9hPOUPZcM+wx3hQhkEYBmv/3XIgTxReUGJw7Tt3ZHb11pE/q8vGXcB7h1w/fzF3Qcp5EsB6bGzvcFVpTlORq4LgjAZOB0SYPVykrqA84GXl2tER0fE2hHAUijlgBx2ighX0bCcTqWucB0SftL6gfOAWbHM5jZ/mY2zcymAT8FPmpmN2Uo+yZgoZktr9aIjhaB3p7qWzO2UgBquXeWDWdg+yihavjWk47TnpjZIDCDaNTPw8D1ZrZA0oWSLqylbCzLOWRwBUGXuIMqUYQATN3lxR3Ol23cLXcbyt1CWQPERbqEHMdpP8xsDjCnLO3qCnnPr1a2Ut40ulYEahWA8k6/2vW8olArtYwS8mUkHMepRke7gypRiwBM3eXFqgJQqVwt7UmLZbhLyHGcZtF1IlCrANRDveWhcoC4yIljjuM45TRVBCTNkDRP0hZJ18bSXyPpV5JekPScpJ9I2idv/XkFoNa3/1rqKiI+Uc8oIV9GwnGcJJptCawAvgjMKkufBMwEpgH7AeuA7+apOE8nW2Tnn1R3VupxCZWsgawuoRLuEnIcJ05TRcDMbghjXJ8vS7/FzH5iZmvNbCPwTeD4rPXmFYBWUa2deVxCaficAcdxstKuo4NeDyyomov2FICpu7zYsFFDSaOEKm02U05pGQmfQew4tTFgfTyxaY9WN6NQ2i4wLOlw4DPAJytcvyDEFeYNr9uQqc5Gun/S7plEuWgV4RJyHMeplbYSAUkHAbcAf2Nmv0vKY2YzzexoMzu6f7exSVl2oJXun1potEvIA8SO48RpGxGQtB/wX8AXzOwHRdTZagHIev+8u6AljRKqtNlMJTxA7DgONH+IaJ+kMUAv0CtpTEibAvwGuKrSlOm8tFoA0sgTx3CXkOM4jaTZlsBlwCbgEuB94ftlwIeBA4DPSlpfOmq9SRECsN/Y51OPRralXpdQ1jkDbg04jtPU0UFmdjlweYXLnyviHvUIQJ7OvZQ3y0iBpNFC5QvLlS8qV420UUKO4zhZaZuYQBHUKgB53+7LyzaaelxCbg04Tvsi6VRJiyQtlnRJwvUzJd0vaX4YFXlC7NpSSQ+UrpWV+6tQ7wJJX0prQ7vOE8hNLQJQVAe+39jnCx87nGd56SSqzRlwHKe1SOoFrgLeTLRT2FxJs83soVi2XwOzzczC8PnrgUNi108ys1Vl9Z5EtOn84Wa2RdJeae3oeEugljkA9bz5p9WZRlIb88wZSCJtlJDjOG3PscBiM1tiZgPAdUSd9zbMbL2ZlXy849h5H+EkPgJcYWZbQh0r0zJ3tAj09+R/022k+6aRdbtLyHG6jinAstj58pC2A5LOkrQQuBn4i9glA26TdI+kC2LpBwOvk/RHSb+VdExaI7rGHVSNZvjuS/ep5BrKu5xEFpdQPctIOI6Tj4Hh3jz/w5PLfPUzzWxm7DzJbN/pTd/MbgRulPR64AtE+wcDHG9mK4K751eSFprZnUT9+iTgNcAxwPWSDohZFDvQ0ZZAVpolALVQr0soL24NOE7TWFVa3SAcM8uuLwemxs73JVppOZHQwR8oaXI4XxE+VwI3ErmXSvXeYBF/AoaByZXq7XoRaIUANOqetbiEyucMOI7TNswFpkvaX1I/0ebws+MZJB0kSeH7UUA/8LykcZImhPRxwCnAg6HYTcAbw7WDQ5kdgsdxuloEWmkBVLp33iB2loljtQaI3RpwnNZhZoPADOBW4GHgejNbIOlCSReGbG8HHpQ0n2gk0buDW2dv4C5J9wF/Am42s1+GMrOAAyQ9SBRsPq+SKwi6NCbQzu6fJOqdOJaV8o3oHcdpLWY2B5hTlnZ17PuVwJUJ5ZYAR1Soc4BoRYZMdJ0l0E4CUJQ1EKcel5DjOE45XSUCjRKAg0Y/25B6s9IIl5AHiB3HgS5yBxUhAGmdffza4i17Z64z62ziIl1CAxOgf13ytZJLyHEcB7rEEqhXAA4a/Wyut/28+ZMoyiWUd2XRJNwacJyRS8eLQD0CUG9nnrVsEVZKJZdQnKwuofIZxI7jjFw6WgT6NVhz2aL8/EXGC4qcOFZrgNitAccZWXS0CNRCEa6cpDproVkuoTwBYsdxRhZdExiuRqNH+Bw0+tnUgHERy01XWksoTtJaQnFK6wmlBYh79tid4edf4C3jPsCtG75fT5Mdp6sYHOrZYQBHNzAiLIFWD/HMQ6NdQkm4NeA4I5euF4FmCkAt92qlSyhtPSGPDTjOyKBrRaARvv+s961EK0YJZQ0QuzXgOCOTrhSBTnL/JNGo5aXzWgMl3BpwnO6l60SgHQQgrzXQCJdQ0pyBOHkmjzmO0710lQi0gwA0gywuoTh5A8RJuDXgON1JV4hAq/z/adTbnnKXUFFkdQm5NeA4jUfSqZIWSVos6ZKE62dKul/SfEnzJJ1QraykyyU9FcrMl3R6Whs6XgTarfPPQi0uobS4QBaXUN4AcRJuDThOcUjqJdoo5jTgUOBcSYeWZfs1cISZHUm0yfy3M5b9ZzM7MhxzSKGjJ4uN6Sl2NcwD+p+reG3JwJ6F3qteskwcq0RpI/o4SZPHbNIEtHrdtsljjuMUyrHA4rBBDJKuA84EHiplMLO4S2Ac2zeir1o2Kx1vCRTBAf3PpQpA1jzltKtLKI5bA47TMCYHF07puKDs+hRgWex8eUjbAUlnSVoI3ExkDWQpOyO4kWZJmpTWyBErAqVOPW/Hnjd/JdrFJRQny+QxxxnJDA33sGbd2EwHsMrMjo4dM8uqS1rUa6e9gM3sRjM7BPhz4AsZyn4LOBA4Enga+Ke0Z2qqCEiaERRxi6Rry66dLGmhpI2Sbpe0X6PaUW9Hnqd8I2MWeUcJxYkHiPNOHnNrwHEKYTkwNXa+L7CiUmYzuxM4UNLktLJm9qyZDZnZMPBvRK6jijTbElgBfBGYFU8MD3UD8Glgd2Ae8OOib17Lm38z6moEeeYMxHFrwHGaxlxguqT9JfUD5wCz4xkkHSRJ4ftRQD/wfFpZSfvEqjgLeDCtEU0VATO7wcxuInqIOGcDC8zsJ2a2GbgcOELSIUXct9UddiVrIMsyEnlmD1fbhB52dAmlLTENbg04TiMxs0FgBnAr8DBwvZktkHShpAtDtrcDD0qaTzQa6N0WkVg2lPmSpAck3Q+cBHw8rR0VRwdJWpL/mezAnGVKHAbcF6tog6THQvrCsnZdAFwAMPml1UfHNLrzP6D/uUJHDk3d5UWWbdwtc/56RgnFKS0xXQ0fKeQ4xRGGb84pS7s69v1K4MqsZUP6+/O0IW2I6DSiQEP662Ls3nluXMZ4oLy3XgPs9AoagiszAQ78X+NS79nO7ppmMDhxmL61kbEX32cgvhF93uGicXy/AcfpfKrNE3gK+E6Gej4MvLSOdqwHJpalTQTWJeStSrM7/6KtgXL2Grd+h40sdp2wqTT6YCeGxg/Ru776NpJJJFkDWyeNZdTqyAXl8wYcp/uoJgLLzexz1SqRdBr1icAC4LxYfeOIhjgtqFiiAu369l9p57GkHcca5RKqtuvYDnlTdh6L49aA43Q2aYHhjwNfy1jPV4GLq2WS1CdpDNAL9EoaI6kPuBF4paS3h+ufAe43s4Vp9ZXTSgFoV/GptNlMpQBxtcljvqaQ43QXFUXAzL5uZtdnqcTMrjezr2fIehmwCbgEeF/4fpmZPUcUBf97YDVwHNGQp0y0evRPMyh6lFAWqu014LuPOU7nk3uIqKQbwsid3JjZ5WamsuPycO2/zOwQMxtrZiea2dIsdbZT51+tLe0wcazSDOJarIE4LgSO05nUMk9gH6KRQy2nX4OtbkIhFL3RDOTbfziNrNaA44wEbEhsXd+f6egURuzaQY2inSyTSmSxBhLLuTXgOF1HLSKQdd6AUzDV4gJpLqG81kDcJeTWgON0L7WIwOfZvpypk5NmboJTS4DYrQHHGVnkFgEzm2Nm32tEY7qFWlxCjYgLpJFlielK1kDSfgNuDThOZ1JRBCQtkfTTLJXUM2KolUzvG6p4tCvNdAllwa0Bx+ls0iyBaWSfBdw2I4aykKWjb3cxyEqaSyjvcNE81oALgeN0BtXcQcdJGqp2UGXTgnahlo69EUKQJy5QtEuo0daAu4Ucp7OoJgLKcbQt9b7V11K2qLhAFvK4hNIowhqI49aA46Qj6VRJiyQtlnRJwvX3hr2C75f0B0lHxK4tDfsGzJc0L6HsJyRZ2LSrImkLyH0w19O0IUW+xU/vG+LRwdpW5yya8lVFq5G2smieReXSiC817auMOk51JPUSbRTzZqLtIudKmm1mD8WyPQ68wcxWh4U6ZxItq1PiJDNblVD31FDvk9XaUVEEOn0EUCPcOO0kBPUQ32egnEp7DcSXmY6vMJq01HQcX2XUcSpyLLDYzJYASLoOOBPYJgJm9odY/ruJ9hLOwj8Dfwv8vFrGrpsx3CkB3TxbTmaJC9TjEsqzB3FWPEjsOEyWNC92XFB2fQqwLHa+PKRV4kPALbFzA26TdE+8bklnAE+Z2X3lFSRRbT+BjqIZnX8ea6CRm83U6xJKswbi1GMNuFvI6TqGlWfTplVmdnTK9aRYauJuiZJOIhKBE2LJx5vZCkl7Ab+StBCYB1wKnJK1kV1jCXTC23+nUGnyWDnVlpOI49aA4+zEcmBq7HxfYEV5JkmHA98GzjSzba4CM1sRPlcS7clyLNFmXPsD90laGur8H0kvqdSIrhABF4CIai6hrHMGyqm2zDRUXk7C3UKOU5G5wHRJ+0vqJ9pDZXY8g6SXATcA7zezR2Lp4yRNKH0nevN/0MweMLO9zGyamU0jEpqjzOyZSo2oWwQkZX8dbACtEIBW3LMRS0ikzRmoxRqotq6Q4zjbMbNBYAZwK/AwcL2ZLZB0oaQLQ7bPAHsA/1o2FHRv4C5J9wF/Am42s1/W0o6aYwKSdgEuJNpWMmvEulDGKNF91jHk2Xc4ibxxgWqkDRetFBvIQjw24KOFHGc7ZjYHmFOWdnXs+4eBDyeUWwIcUZ6ekG9atTyploCk0ZL+RdJ9kmZLOjikfxx4Avgy0ZIRI46s1kCr9xeo5hJqljXgbiHHaU+qWQJXEpkrBrwSOFDSb4G/ZHtke1HjmufkZdcJm1izLn0mbxqNsgYcx2lPqsUE3kYkAI8DS4FXsF0A7gHeCRzawPY5MYqKC+TZZyDNGsiynIRbA47T3lQTgX2BZ4CXh6MUYb7MzI4xs5+ZWWc75uugHUYllS8tnUS1iWPlLqGsI4XScCFwnM6gmgiMAp40s6EQyX4ipH+5sc0aOeSZOZyV8qGi9VKLNeA4TmeQZYjoAZJmSZpFNBEB4JpSmqTvNLB9ToOoFiCu1Rpwt5DjdBZZhohOBs4rSys//1AxzelOilw+YuouL7Js4247pGUZKjpq/ABb1/fXfN/4wnLlZA0SV1pSwoeNOp2Chsi03EonkeVpOnovgZFK0S6hcmqxBspxi8BxWk+qCJhZT5ajWY116iPvnIFyl1DW2EA5PpPYcdoX78DbmHqCw80gqzVQjscHHKd9yC0Ckk6XdI2kL0vqiL2FRwJJQ0WzuITqtQbSFpdzt5DjtD/Vlo2YFTaTf2c4fyvwC6K1LC4Gfhe2PCsESdMkzZG0WtIzkr4pqav2PCiCeiaN1br/cFaKcAu5EDhO86hmCRwBbAVuDucXEwWCh4ANRPMIPlVge/4VWEm0HtGRwBuAjxZYf1tSaa5Aq6jHGiinFreQ4zjNo9pb9lRgmZltlDQGeC3RMhIfAG4jWkriyALbsz/wTTPbDDwj6ZfAYQXW35aMW7aF8//m94xdM8Azr9iVn19xJMOjkvV5zPoBPveun/O7E6bzrYtOBODIe5bxoW/dxdCQ2DSmn89e/FaWv3R33vDfj/CRH/yWrdbLUG8PXzzvdO45ZL+d6kzbiL4WyoeMVtqFDHzYqOO0mmqWwERgbfh+ONBPZAXMNrMXgEeB2lcr25mvA+dI2kXSFOA0YIc1siVdUNqzc9XzlVfA7CQO//Jy/vT+/fnWnJPYPHEUR/5sWcW8Z149n0eO2nH56Y999Xa+dNlbuOi75/DLEw/jw9f9HoA/HTmNc676MGd86WNccuFZ/MM1NwHZXEL1WgNZ3ULleHzAGUlIOlXSIkmLJV2ScP29ku4Pxx8kHVGtrKQvhPzzJd0m6aVpbagmAs8Ch0iaBrwjpM03s43h+z7AqgzPmpXfEr35ryXaEWcecFM8g5nNNLOjzezoyXvkH9zUs2yQCa9/hrGfeIEJb3yGXWY8T9+dmxl/5komHP8MvfdGHWTvvQOMP2Ml4095lvFnrKRncfQmO/qadYy9OHpb7Xl4K4e9eQU9m+oQIzP2vnsdD58S7f52/5n7cvBvtm8CFB8h9LKHn2fiC5t56Liy36lgl41Ru8dv2MJzu0c99Kax/aCoc95ly0Dy5qWBPIvK1UJWt1A5LgROtyKpF7iK6GX3UOBcSeULcj4OvMHMDge+AMzMUPbLZna4mR0J/CfRxjQVqeYOugs4F3gsnBuhUw6bG78E+EOVOjIhqYdoh51riNxO44FZRMtZ/20R9yjRs3SQLdfswaYv9TH+9JWMumkj62/ak77bNjPmG2vZMGsyQwf1sf6GPaFP9N25mTFXrmXjv+3Blv8znvHveI5Rt2xi9L+s5dF/2J3hsTuK0ZjHtnLgjB33EThoeCUAt//7y9k6cfuPvX/1IAMTerG+qI61e49hwsrNO7VZw8Y7vzaPWZ87gUPmPs2Evi3brn3tkyfz+U/NZmB0L2vHjOH8fz5/27WT/rCIj8z6LXus2cD/ueR9df3cypeZLp9FHF9qGopxC4G7hpyu5VhgcdggBknXAWcCD5UymFm8f72b7Rt4VSxrZmtjZcZRYfP6EtVE4DNEu9uXNkNeSOSyATg/fN5RpY6s7B7u800z2wJskfRd4IsULALDU/sYfkX0Zjp88CgGTxgDEsOHjKJnWdRpae0wYy96kd7HB6NQ+NZQuEds/OfdmfCmZ9nyvnGsP2bMTvVvPnAUC27Z8W290rIRiZujaedA64k/XcSDx09h9UvG7XTtrJ/M5zNXnsGiQ1/CW773IBfP/C++cNGfAXD7a1/O7a99OQf/8Vku+vGvOe/THwSyLSMxOHG46hT5tOUkqlEuBHHKhcBxOpDJse0gAWaa2czY+RQg7vtdDhyXUt+HgFuylJX090Sx2zXASWmNTBUBM3tM0iuJ3sx7gNtD0Bbg10SmyH1pdWTFzFZJehz4iKSvEFkC5xVV/w6Mjn3vIYp0lL4PRb3y2C+vZfC1o9n4ncn0LBtk/Du2v9n3PD6IjRM9zya7UPJYAlt276N/3RAaHMb6epj47GbW7Tmacg64/zmmz3+WN/x0EWM2DtI7OMwHR/2eG979Kg547DkWHRq5k/7n1P044//u/CObe+g0XvavLzBp7QZWT9xZSCBbgDht0xnIZw3AjkIQtwbAA8VO+6Hh9L//MlaZ2dFp1SWkJb61SzqJSAROyFLWzC4FLpX0d0Qbg322UiNSRUDSZ4DlZjZrp7uZ3ZNWtkbOBr5GNOx0CLgd+HgD7lOddcPYS6IOsf/6DdvT1w4z9jMvsv5nezL2sheZdPMGVv/Zjp1qHksAiZXHTeAVtz3DQ6e/lMN/vpxH37jzvsPf+eLrtn3/379YzLSHn+e7f3k8PYPD7LJhgCnLVvPU1Em8at6TPD51MgD7rniB5ftMAonDlqxg1OAQqyfskuvHUIs1UE0I0igXgjguBE6XsZztXhaIXD0ryjNJOhz4NnCamT2fpyzwI6Ih/rWJAHA5kR9qJxFoBGY2HzixGfeqxpaPTGCXi1YzeuZ6Bo/f/mY+9vIX2XLeOIYPHMXGr0xi33euYt1xYxicXPsQy/s+uS/H/c0S3vCNRTz7ionMPzv63e7z4Iscdf2T/OvfVbbmhvt6+JdPnMyln56D9Yj1E0Zz2V+dAcDJv1/En/36AQb7etjSP4q/uejdO7iaklxCRVgD1UizBsDjA86IYS4wXdL+wFPAOcB74hkkvQy4AXi/mT2Spayk6Wb2aMh3BpEbvyJK2xhM0jBwt5m9NseDNY1XHdFvt9+y81tznFE3bGDMFWvpWTHE8Et72XzJRLaenewOqYVHB7N1/tWWkl68pfJzPLFpj4rXypeVBiouK52093BSXCBJBMqtgSQRKI8NxK0BYCdrIC4EwE7xgbhFUB4fcCFw8iLpnirumaqM3WeqHXDexZnyPnTlxVXvJ+l0Iu9HLzDLzP5e0oUAZna1pG8Db2f7hl6DpTqTyob0nxHtBDkcyl1oZk9VakOWJRlGS5pKypLRZvZkhnqazqgbNrDL376INkWdUe9TQ+zyty+yEQoVgnYjy/4C9VKLNVAtPpCGWwRON2Jmc4A5ZWlXx75/mGiZnkxlQ/rb87Qhy0D7I4lmBj9e4ViS54bNZMwVa7cJQAltMsZcsbZCifakqNVEkxaUS5o4ljRnoHzyWBJ5lpNIonwSWfn8gfKlJXwOgePUT9bZVh25qUzPiuRgZKV0Jx9pW1CWqDaTuHwSWV4hcBynPrK4g54COnIf4eGX9tL71M4d/vBLi1knJ2s8oN3JGiAuat5AnmGj4COGHKeRZBGB5Wb2uYa3pAFsvmTiDjEBABsrNl8ysYWtag7NiAtAcmyg2pDRTPX6iCHHaQpdvbPY1rPHsfFLuzE0pRcTDE3pZeOXdiskKNwuVkDevQXq3Xs4S2wgibxuoWp4fMBxiqGaCDwJPN2MhjSKrWePY92f9mHN8n1Z96d9WjIqqNrw0HYga4A4iaTYQNp+xCWKjg+4EDhOfqptND8t73Ajx6lEltFCLgROO6OhyNWZ5egUutod1CjaxRVUK3lcQlmHi2a1BvLsO7CtbhcCx2kYLgJdTNLm82nUu/9wliGjSWSJD7gQOE5jcBFwqlLr5DHIZg1AbYFiFwLHqR8XgZzkdQV1QlC4SGp1CyXWVSU+AC4EjlMvLgI56PRYQJxKcYE8LqFah4tWIik+4ELgOI3FRaANSFtBtF3IswdxPdZALYHiJFwIHCcbLgIZqcUKaAdXUN7gcF7yWANFxgeqBYrBhcBxsuAikIF2dwPlnTVcjUouoXqtgXpwIXC6EUmnSlokabGkSxKuHyLpvyVtkfSJsmtLJT0gaX58L2NJX5a0UNL9km6UtFtaG1wEqlCrALSDFVCNepeQKNEMawBcCJzuQlIvcBXRXu2HAudKOrQs2wvAXwNfqVDNSWZ2ZNnmNb8CXmlmhwOPAH+X1g4XgRTa3QJoBY2yBlwInBHIscBiM1tiZgPAdcCZ8QxmttLM5gLZdl+KytxmZoPh9G6i/Ycr4iJQgXoEII8V0K5B4bwTxypZA7WuK1TChcDpYCZLmhc7Lii7PgVYFjtfHtKyYsBtku5JqLvEXwC3pFWSZSnpEUU7vv2n7THcqSTtO5BnyeksW1Mm7UOQtAw1+J7FTjaitYMyL4u+qsoew0mTZfKsuX68ma2QtBfwK0kLzezObZVLlwKDwL+nVeKWQIwiBKAdYwFpI4RqiQtUcgnlsQYqUeuwUcg2hwCSdydzq8BpAcuBqbHzfYEVWQub2YrwuRK4kci9BICk84C3Au81s1RhcREg6vxbIQDt6goqUe9aQtWo5BYqMj4ALgRO2zIXmC5pf0n9wDnA7CwFJY2TNKH0HTgFeDCcnwp8CjjDzDZWq2tEikCp0y+q84f2tAAaSVHWQDPiA+BC4LQfIXg7A7gVeBi43swWSLpQ0oUAkl4iaTlwMXCZpOWSJgJ7A3dJug/4E3Czmf0yVP1NYAKRi2i+pKvT2tH1MYFm+PhrEYCsVkCWeMCyjbvlvn8rSNqKshKV4gPl+xNDcnygfHtKyBYjAN+u0mkeZjYHmFOWdnXs+zMkj+5ZCxxRoc6D8rShoy2Bzaad3uob8ZafRrdbALW4hPKuKZTHLVQJtwgcpzY6WgRaTa0C0G6xgFonjeWZM1Air1soT6A4jxAkLTqXNITUxcDpdlwEamDJwJ5NEYBOHhpa9Aqj5dQrBOBWgeNAG4qApHMkPSxpg6THJL2u1W2KU4/7p90sgCJolTUALgSOUwRtJQKS3gxcCXyQKLr9emBJSxsVqOftv9OpdahomjXQKiGoN07gYuB0G20lAsDngM+b2d1mNmxmT5nZU61sUFGdf14roJNdQfXSSCGAfAFjtwqcbqdtRCCsqHc0sGdYVnW5pG9KGluW74LSWhwvvpDfFZGFUsdf1Jt/N7qB4qS5hGqxBtJothCAu4ec7fQMGaPXDGU6OoV2miewNzAKeAfwOqJV834OXAZcWspkZjOBmQCvOHx0nnU2dqLR7p1aO/88VkCnzBHIS9LaQtVImkMAldcZqjSXAMg8nwB83SGns2knESj9N37DzJ4GkPRVykQgzoD1ta2fvhkCkJWVG+rf4WXU+AG2ru+vqezgxGH61iYbnWkTyCoJQdpCc0UIAWSfWAY+uczpbNrGHWRmq4kWVKrr7b7VLN6yd9MEoJ2sgFpGCZUo0i0ExbiGwOMEzsigbUQg8F3gryTtJWkScBHwn61tUnVKHX89vv9uDwTXOm8gbW2hVgkB+Oghp3toNxH4AtHKeo8QLah0L/D3LW1RBYro+EvUIgDtZAUUQZo1UKsQVLxXA4UA3CpwOot2iglgZluBj4aj7WjEKJ9GC0AR8YCsDI0fond95fWa0mID1UgLFOdZbK5ELTECSA4YAx40djqWthKBvGweHpXaMR80+tlc9TV7KGenuYDqCQ5nIc8qo+UULQRA5oAxeNDY6Vw6WgSq0a7j8+vp/NvdDVSvNVDLaKHt1ysLAZBr1BDkGzkEbhU4+QkbwHwd6AW+bWZXlF0/hChWehRwqZl9pVpZSV8G3gYMAI8BHzSzFyu1od1iAl3NE5v26GoBaAZ5NqEpJy1YXEucwGMFTj2ECbJXAacBhwLnSjq0LNsLwF8DX8lR9lfAK83scKL46t+ltcNFoAnU2/lDbQLQzHhAHqqNFKo2ZLSeQHHafsV5hQDSg8Y+gsipwrHAYjNbYmYDwHXAmfEMZrbSzOYSTZ7NVNbMbgu7lgHcTfKmNNtwESiYUocfP+qlmwSgGdQyYqhEmhDkHT0EbhWMcCaXlrgJxwVl16cAy2Lny0NaFrKW/QvglrSKOjomMGB9VTvZ/cY+X/h9mxXQrdX9k1cA1qyr/KbbKqoFiWuND0B6sBhqjxPAzqOHID1oDB4r6CQ0ZBX/NhJYZWZHp1WXkJZ1smzVspIuBQaBf0+rqKNFIAudNgIHOt/3Xy04DNmGizZaCCA5WAy1CQHkDxqDi8EIZjkwNXa+L7CiiLKSzgPeCpxsZqnC4u6gNmHZxt22HbWycsP4hloBjRweWivVAsWNiBFA9ThB3lgBuItoBDIXmC5pf0n9wDnA7HrLhlFDnwLOMLON1SrqekugnSnyjb8TYwBFWANQn0UAtc0lgPT5BFDZKgB3ETlgZoOSZgC3Eg3znGVmCyRdGK5fLeklwDxgIjAs6SLgUDNbm1Q2VP1NYDTwK0kAd5vZhZXa0dEiMDDcW7EjnbrLi01tSxYa5eapVQDaMRbQKOoVAqBm9xBUjhWAu4hGMmY2B5hTlnZ17PszVBjdk1Q2pB+Upw0dLQJpZO1wGyEWzfTpd6IFEKdZ1kCUp3YhgMZaBeBi4LSGrhWBrHRqELbezr/RVkCW4HAeOkEIoHarAFwMnNbggeEOo5bg70giy4zieoLFkD7DGNLnFEB64Bgqzy0An2zmFE9HWwKDQz2JHeJe42pchawNKbrDr9UCyDsyqEgrYFsb6lhgLi/VLAKozyqA2l1E4AvTOcXR0SJQiWodZzuKRKPf7utx/7Tj0NA0inALQfOEANJdRGlCAO4icuqjK0WgGvV0uHkEpB3cNvX6/msRgEZYAXlpNyGAykFjqN8qABcDpzY6WgSGhntYs24su06o/M9VNO3QsVejqKBvsyyAPJvNFO0SyioEUHl2MVQfRgrFWAXgYtBKNGSpv8NOpKNFoESlTq+Z4tBqih7t02kuoCSyWANRvupCAM21CsDFwGkOXSEClUjrGDtdIBo5xLMeAWiGKyiPNdCOQgD1u4jAxcAphq4WgTSydqKtFotmz+rtBgugnFYJAaS7h6B+FxFkFwNwQXB2pqNFwIa0rdMaNX6gIfcYKUsrdFrn36jhonmEANLjBJA9VgD1uYiguhiAWwfOznS0CMSp1Ik1Shy6hSI7/3YYFVSJrNZAlDebEEA2qwCKdRGBi4FTHF0jApVI6+RGokA06o2/nQWgRCcIAVR3EYGLgVMcXS8CaWTpEDtZKJrh4imi8886PLTZtFoIIN0qgOLFAFwQRhqdLQLD2qkTGhpf/R8xD3k70maJRqt9+EW9+berAJRolBBA9aAxZLMKoPpIIsgmBuDWQTMJG8B8nWhPgG+b2RVl1xWunw5sBM43s/8J15YC64AhYLC0laWkdwKXA68AjjWzeWlt6GwRSKBS51S0OFSi1Z1zIyna5dMKAcjjEqqFrEIArbEKwMWgXZDUC1wFvJlou8i5kmab2UOxbKcB08NxHPCt8FniJDNbVVb1g8DZwDVZ2tF1IlCJtA6sWQLRiTTK19/uFkCcPNYA5BcCyG4VQPFiAO4qahHHAovNbAmApOuAM4G4CJwJfD/sE3y3pN0k7WNmT1eq1MweDvVlakRHi4AK6rtdILbTjABvEQJQz/DQWqyBWoQAqg8hLZHVKoD8YgBuHRTG4FDVn2WMyZLirpiZZjYzdj4FWBY7X86Ob/mV8kwBngYMuE2SAdeU1Z2ZthMBSdOBB4Cfmtn7quVP6lAGJw4X1p48nWInCUarRvN0kgVQTl4hgMZZBZBdDMCtgxaxquSnr0DSq3r5H1hanuPNbIWkvYj2E15oZnfmbWTbiQCRj2xuPRVU6miKFIckiuhYaxGSThie2W6df62xgVqFAPJZBdBaMYD81gG4IORkOTA1dr4vsCJrHjMrfa6UdCORe6mzRUDSOcCLwB+AXJslZyGtI2q0QGSlEzr0PLRb518EtQgB5LMKoDliAMVZB+CCkJO5wHRJ+wNPAecA7ynLMxuYEeIFxwFrzOxpSeOAHjNbF76fAny+lka0jQhImkj0ECcDH0rJdwFwAcCoiZMYtT5aQqBeOkEgOolu7PzjNEsIIF+8ALIPKy2RZXhpiazWAbggVMPMBiXNAG4lGiI6y8wWSLowXL8amEM0PHQx0RDRD4biewM3huBvH/AjM/slgKSzgG8AewI3S5pvZm+p1I62EQHgC8B3zGxZWlQ7BD9mAozdZ6pBcpCwCGEokaVDG8lC0cwOv1nbSzaSZgkBZLMKIJ+bCPKJAXhAuRJmNoeoo4+nXR37bsDHEsotAY6oUOeNwI1Z29AWIiDpSOBNwKuKqrNSZ1GkOMTJ0xF2mmC0w1t90Z1/EXMFarUGoHYhgOzuIahdDCBf3ADcOuhU2kIEgBOBacCTwQoYD/RKOtTMjiryRs0WhyTaoVPtFLrhzb8StQgB5LcKIL8YQPOsA3BBaCXtIgIzgeti558gEoWPpBXSUPRGNzAhLVc2qnU2zRSJkU6jO/5GzhjOSz1CAPmsAmiuGIALQifQFiJgZhuJgh4ASFoPbDaz57KUr/RPXYQ4lHCRaBzNfNsvWgDqcQmVqFUIoDarAOoTA3BB6CbaQgTKMbPLi6inGeJQIktH5kIR0SoXTztZAOXUKwSQ3yqA2sQA8lsH4ILQrrSlCDSaZopDnFo6v04Ujnb04zdSAIqwBiD/pLJyihADaLx1APULArgoFEVHi0AUEzAGJmRbKKkaaR1FowWiEu3YoXYa7WwBJFGPVQD1iQHUbx1A7YIAbS4KQ4OZ29cpdLQIlKj0FlaUOET3SL/eKpFw0uk0AShRrxBA68QAahcEyD/KqIS7jmqjK0SgEs0Qh+33Sr/uItE8mt3xF+EKaiS1Bo+3la9DDKC2+AHU5jIq4YKQna4WgUok/dM2Qhh2vGe2fC4W2WmHt/x2F4AS9QoBtE4MoDhBcHZmRIpAEmn/zI0WiB3bkS9/t4tGO3T0SXRK5x+nCCGA4sQAmi8Izs50tAj0DFmi37Q0yqIo2kUgkmhEJ1mksLRrJ14PnSgAJYoSAqhfDKA+6wBcEIqgo0WgEs0QhhLVOoRWi0QtdGPHXS+t6PiLCA4nUW/AeKf6ChQDKEYQwEUhK10pAklU+mdqlDiUyNJ5dKJQjBQ6+a2/Gu0oBlCMIIBbCVkZ8SuZjV4zVPFoFv3rLNPhNJ6R+DMviUFh9U0au+2oF5s0YYejVsqthHZB0qmSFklaLOmShOuS9C/h+v2SjqpWVtLukn4l6dHwOSmtDR1tCWjIGLVma+F/xCXShKDRFkQSeTsltzDSGSmdfBaKtgq21VvjTORKFGUltAOSeom2030z0TaScyXNNrOHYtlOA6aH4zjgW8BxVcpeAvzazK4I4nAJ8KlK7ehoEShR6Q+3UeIA1af2t0Ikyqmnk+sWAfGOPh+NEgNwQUjgWGBx2CCGsIXkmUBcBM4Evh82l7lb0m6S9iFaZblS2TOJlucH+B5wB90qAuvWr1j1m99e+kTG7JOBVY1sT5PptucBf6ZOoJOfZ796K1g7/MKtt238weSM2cdImhc7nxl2RiwxBVgWO19O9LZPlTxTqpTd28yeBgj7Ee+V1siOFgEz2zNrXknzzOzoRranmXTb84A/UyfQbc+TFzM7tcDqksztctO1Up4sZTMx4gPDjuM4LWI5MDV2vi+wImOetLLPBpcR4XNlWiNcBBzHcVrDXGC6pP0l9QPnALPL8swGPhBGCb0GWBNcPWllZwPnhe/nAT9Pa0RHu4NyMrN6lo6i254H/Jk6gW57npZhZoOSZgC3Ar3ALDNbIOnCcP1qYA5wOrCYaPfFD6aVDVVfAVwv6UPAk8A709qhKOjsOI7jjETcHeQ4jjOCcRFwHMcZwbgIOI7jjGC6XgTCOho3Stog6QlJ72l1m+pF0h2SNktaH45FrW5THiTNkDRP0hZJ15ZdO1nSQkkbJd0uqe4JPo2m0vNImibJYr+n9ZI+3cKmZkLSaEnfCf8v6yTdK+m02PWO+x05lel6ESBaX2MA2Bt4L/AtSYe1tkmFMMPMxofj5a1uTE5WAF8EZsUTJU0GbgA+DewOzAN+3PTW5SfxeWLsFvtdfaGJ7aqVPqLZqG8AdiX6fVwfRK1Tf0dOBbp6iKikccDbgVea2XrgLkmzgfcTLarktAAzuwFA0tFEk1xKnA0sMLOfhOuXA6skHWJmC5ve0IykPE9HYmYbgMtjSf8p6XHg1cAedODvyKlMt1sCBwNDZvZILO0+oBssgX+UtErS7yWd2OrGFMRhRL8fYFtn9Bid//t6QtJySd8Nb9IdhaS9if6XFtC9v6MRS7eLwHhgTVnaGqDTd+b9FHAA0SJSM4FfSDqwtU0qhG77fa0CjiFauOzVRM/x7y1tUU4kjSJq8/fCm363/Y5GPN0uAuuBiWVpE4GOXHe2hJn90czWmdkWM/se8HuiWYWdTlf9vsxsvZnNM7NBM3sWmAGcIqn8GdsSST3AD4hiajNCclf9jpzuF4FHgD5J02NpRxCZtd1EpVUFO40FRL8fYFtM50C65/dVmp7f9r8rSQK+QzSg4u1mVtpgoNt/RyOOrhaB4K+8Afi8pHGSjifacOEHrW1Z7YRNJd4iaYykPknvBV5PtIZIRxDaPYZozZPe0rMANwKvlPT2cP0zwP3tHnCs9DySjpP0ckk9kvYA/gW4w8zK3SntyLeAVwBvM7P4DjAd+TtyUjCzrj6IhrHdBGwgWkzpPa1uU53PsyfRCoLrgBeBu4E3t7pdOZ/hcqK34vhxebj2JmAhsIloR6RprW5vrc8DnAs8Hv72nga+D7yk1e3N8Dz7hWfYTOT+KR3v7dTfkR+VD19AznEcZwTT1e4gx3EcJx0XAcdxnBGMi4DjOM4IxkXAcRxnBOMi4DiOM4JxEXAcxxnBuAiMMCRdG9a4X1pQfRaOy4uorxlIOjHW7hMLqM/Kjop1Sjo/lm9avfdOqP/Py9tT9D2c7sJFoEsIG83E//mHJD0l6ReSXhvL+hjwR+DeWNlChSEvkq6JtfvpMHu4E1lC9LNd28I2vBDasKSFbXA6CBeB7mOAqBO4H9gLeCvwW0nHApjZF8zsNWZ2VgvbuA1JY4F3x5JeApzaoubUS+ln+z+taoCZ3WlmrwE6YfMapw1wEeg+ng4d0auAPw9pfcB7YOe3/vB5Xsi3X7lLQ9Lekq6W9KSkAUkrJf0i4b79kr4a9jhYKenrGd/ozyLavWoImB/SPhjPUOa+OV/Sf4atDR+X9KGyvCco2g5xc/g8IavLStIxoe4XFG0V+YCkD6aVqVKfJH02/DzWSfpBeNakvKdI+o2ktZI2SfqjpLeV5TlM0u/Csy2UdJakpeHZrq21nc7IplPNbicbWVarvBcYB0wmsiJKbqK1YdGzPxKtJQOwmOhv5q0J9VxEtJbMJqJ9Dv4aeBD4tyr3L3WytwLXA9cCb5M02cxWJeSfCTwFbAWmATMl/d7MFira/OQWojXvNwOjgTlV7g9AcJndDvQDK4me9ZXALEm7m9k/ZamnjI+wfYeup4GTiESv/N7vIHp2ActD248Ffi7pXWb207BY2y3AVGAQGCZa599f5Jy68D+g7mMfSXdLupdoxUeIOo3/SMoc3EI3h9OSFVFyaXyM7QLwXjObbmb7A0cnVPUM0UY3BxHtuQtwclpDJb0MeGM4/T7wM2AjMIpoP+gkZof7vC6c9wAnhu8fIxIAA15nZocCn0xrQ4wvEgnAncC+ZnYYcFm49tnQCeflU+HzT0SCNY1o8b9yvkQkAD8CXmZm04Fvh7R/DHneQyQAAOeEZzuLSOgcp2ZcBLqPfuA44HDgOaIO/g1m9sca6joufC41sx+VEs3snoS8s81sjZltJlo5E6K16NM4j+hvcA3wc4v2gb4pXDu/QpkfWrTq4UOxtNJ9Xhk+F5vZvPA9UfwSKD3r64GBMKrmiyFtAjm3T1S0cczLwulNZjZgZoNES5vH8+0J7B9O3wMMh3t/OKQdFCyy0rMNlOows1uB1Xna5TjluDuo+3jCzKa14L4vxr4Phs9q7qhSLGI88Iwk2P5me6SkI81sftJ9zGww5E+6Tz3DIlcAyxLSh+uoM055W+PnjxO5osoZFftu5kv/OgXiloADkQsGYBfFelaieADANEnvKiVKOoI6kfR6oh2pINqMZddwxN0ueYOyD4TPg2JtPDdj2ZKbZgVwcsktBrwN+JqZ3Vu56M6Y2Vq2i8kZkvpDoPzPy/KtBJaG0weJ3File78L+Eczeyb2bKNLAWNJbwEm5WmX45TjIuBAtEEIRBvWLAwxhbHAVcAT4dqPJT0q6TFicwzqoNTBvwCMMjOVDqJtDQHeK6k/R51XEW1+0gP8t6QFwFcylr2MKNh8NPB0GFn0JFGs44ocbYjzpfD5GqK3/MeB1ybkuyR8vi127xVE4vDxcO0/iDZFAvhZeLabgC01ts1xABcBJ2IWUVB2DXAwkX+818yeJ+rAriF6q51GtKl4phE3lVC0L+07wukvgq88zs/C5x5EHWMmwlv1acB9RNbFIHBOLMumpHKh7F1Eweb/DOUODZduBj6dtQ1lXAV8HlgF7Ea0C9ylCff+cWj3b4hiOq8gGiH0E4KIhVjL6cBdRO6ufuD9bN/gveKzOU4avrOY01VIOtjMHomdv59o5BHAW8zstgbcs/RPtIQoGP/RRkwYkzSdKOht4fz1wG/D5b80s5kh7UtEVt0BAMG6cpxEPDDsdBvXh+Gci4gsiZL75Q7gVw2+9wHhmNig+r9MFDB/gGhuR2mY7MPAD8P33dk+0slxquIi4HQbtwDvBE4J5w8RTcT6cqNG1TTxTft2InfdG4n+d5cSzZv4opltDG25iWyTBB0HcHeQ4zjOiMYDw47jOCMYFwHHcZwRjIuA4zjOCMZFwHEcZwTjIuA4jjOC+f+95G0w6jDvnQAAAABJRU5ErkJggg==\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -225,7 +231,7 @@ "source": [ "print(turbine)\n", "# Plot rotor performance information\n", - "turbine.Cp.plot_performance(turbine.Cp_table, turbine.pitch_initial_rad, turbine.TSR_initial)\n", + "turbine.Cp.plot_performance()\n", "plt.show()" ] }, @@ -243,7 +249,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "slideshow": { "slide_type": "subslide" @@ -256,7 +262,6 @@ "text": [ "-----------------------------------------------------------------------------\n", " Tuning a reference wind turbine controller using NREL's ROSCO toolbox \n", - " Developed by Nikhar J. Abbas for collaborotave research purposes. \n", "-----------------------------------------------------------------------------\n" ] } @@ -282,7 +287,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": { "slideshow": { "slide_type": "subslide" @@ -291,7 +296,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -318,7 +323,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": { "slideshow": { "slide_type": "slide" @@ -335,9 +340,8 @@ ], "source": [ "# Write parameter input file\n", - "file_processing = ROSCO_utilities.FileProcessing()\n", "param_file = 'DISCON.IN' # This must be named DISCON.IN to be seen by the compiled controller binary. \n", - "file_processing.write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename'])" + "ROSCO_utilities.write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename'])" ] }, { @@ -357,7 +361,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": { "slideshow": { "slide_type": "subslide" @@ -370,13 +374,12 @@ "text": [ "-----------------------------------------------------------------------------\n", " Tuning a reference wind turbine controller using NREL's ROSCO toolbox \n", - " Developed by Nikhar J. Abbas for collaborotave research purposes. \n", "-----------------------------------------------------------------------------\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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NpZWrVqxbdu2S/ZTVV588UWaNGlCly5dOHToEEeOHLlkvwULFrBgwQKaN29OixYt2L59O7t27brkWJ6u7nFf37p1a2rVqkVgYCD9+vXj999/T/e1AejTp0/K31u2bOHaa68lJCSEqVOnsnXr1ksez92OHTuoWbMm9erVA6B///4sX748Zfudd94JQMuWLdm3b1+6xzLGF2LizvPo1LUMm7KOSiULMWd4B0bedA2FgwJ9/th5/k5qdy/3aOSXxw0MDKRTp0506tSJkJAQJk2adMmHtqrStWtXvvnmm4vWnzt3jkcffZSwsDCqVavG6NGjOXfuXJoftgBFixala9euzJ49m+nTp6dZ4bZ48eLceeed3HnnnQQEBDB//nzuuuuui/aZOnUq0dHRrF27lqCgIIKDgz1e36+qvPDCCzz88MNpvg6NGjVi/fr1JCcnExDgfDdJTk5m48aNNGjQgMjIyEuek4ik+dpcUKxYsZS/BwwYwKxZs2jatCkTJ05k6dKlacZzIe70FCpUCHD+DRMTs34Q0Ji0qCpzNkYxes5WTp9P4h83XcPQ62oRFJh9FZKsFpOP7dix46Jv0hs2bKBGjRoAlChRglOnTgHQtm1bVqxYQUREBOBcZbRz586UD+Py5csTFxfH9987J1mlS5emVKlS/P7774DzQe5u8ODBPP7447Rq1YqyZcteEteKFSv4+++/AYiPjyc8PJwaNWpcFBM4Vx1VrFiRoKAglixZkvLNPfV+N910ExMmTCAuLg6AQ4cOcfSo+60tUKdOHZo3b87rr7+esu7111+nRYsW1KlTB4DVq1ezd+9ekpOTmTZtGh07dkzztfHk1KlTVK5cmYSEhItek9TxXlC/fn327duXcuyvvvoq5azMGH85evIcQ79ayxPfbqBGuWLMe7wjj3Wuk63JAfLZGYQ/xMXFMWLECI4fP06BAgWoU6cO48aNA2Do0KF0796dypUrs2TJEiZOnEi/fv04f/484Hx41qtXjyFDhhASEkJwcDCtWrVKOfaXX37JQw89RNGiRbnpppsuetyWLVtSsmRJBg4c6DGu3bt388gjj6CqJCcnc+utt3LXXXchInTo0IHGjRvTvXt3nnvuOXr06EFoaCjNmjWjfv36AJQrV+6i/d599122bdtGu3btAOfsZMqUKVSsWPGixx0/fjwjRoygTp06qCrt2rVj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\n", "text/plain": [ "
" ] @@ -418,7 +421,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": { "slideshow": { "slide_type": "subslide" @@ -429,12 +432,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "Running simulation for 5MW_Land wind turbine.\n" + "Running simulation for NREL-5MW wind turbine.\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -498,7 +501,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 29, "metadata": { "slideshow": { "slide_type": "subslide" @@ -506,39 +509,26 @@ }, "outputs": [ { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "ename": "AssertionError", + "evalue": "File, ../Test_Cases/5MW_Step/5MW_Step.outb, does not exists", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;31m# Load output info and data\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mallinfo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malldata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_fast_out\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilenames\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# Define Plot cases\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Users/dzalkind/Tools/ROSCO_toolbox/ofTools/fast_io/output_processing.py\u001b[0m in \u001b[0;36mload_fast_out\u001b[0;34m(self, filenames, tmin, tmax, verbose)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfastout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilenames\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 71\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"File, %s, does not exists\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 72\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mAssertionError\u001b[0m: File, ../Test_Cases/5MW_Step/5MW_Step.outb, does not exists" + ] } ], "source": [ - "# Instantiate FAST_IO\n", - "fast_io = ROSCO_utilities.FAST_IO()\n", + "op = output_processing()\n", "\n", "# Define openfast output filenames\n", "filenames = [\"../Test_Cases/5MW_Step/5MW_Step.outb\"]\n", "\n", "# Load output info and data\n", - "allinfo, alldata = fast_io.load_output(filenames)\n", + "allinfo, alldata = op.load_fast_out(filenames)\n", "\n", "# Define Plot cases \n", "cases = {}\n", @@ -639,9 +629,9 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python 3", + "display_name": "test-env", "language": "python", - "name": "python3" + "name": "test-env" }, "language_info": { "codemirror_mode": { @@ -653,9 +643,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.7.8" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/Examples/example_01.py b/Examples/example_01.py index c9e9ee453..2433be296 100644 --- a/Examples/example_01.py +++ b/Examples/example_01.py @@ -13,22 +13,28 @@ ''' # Python Modules -import yaml +import yaml, os # ROSCO Modules from ROSCO_toolbox import turbine as ROSCO_turbine # Load yaml file -parameter_filename = 'NREL5MW_example.yaml' +parameter_filename = os.path.join(os.path.dirname(__file__),'NREL5MW_example.yaml') inps = yaml.safe_load(open(parameter_filename)) path_params = inps['path_params'] turbine_params = inps['turbine_params'] # Load turbine data from openfast model turbine = ROSCO_turbine.Turbine(turbine_params) -turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='txt',txt_filename=path_params['rotor_performance_filename']) + +turbine.load_from_fast( + path_params['FAST_InputFile'], + os.path.join(os.path.dirname(__file__),path_params['FAST_directory']), + dev_branch=True, + rot_source='txt',txt_filename=os.path.join(os.path.dirname(__file__),path_params['rotor_performance_filename']) + ) # Print some basic turbine info print(turbine) # Save the turbine model -turbine.save('NREL5MW_saved.p') \ No newline at end of file +turbine.save(os.path.join(os.path.dirname(__file__),'NREL5MW_saved.p')) \ No newline at end of file diff --git a/Examples/example_02.py b/Examples/example_02.py index 88ef38f5d..12c1db70a 100644 --- a/Examples/example_02.py +++ b/Examples/example_02.py @@ -9,6 +9,7 @@ ''' # Python modules +import os import matplotlib.pyplot as plt # ROSCO toolbox modules from ROSCO_toolbox import turbine as ROSCO_turbine @@ -18,7 +19,7 @@ turbine = ROSCO_turbine.Turbine # Load quick from python pickle -turbine = turbine.load('NREL5MW_saved.p') +turbine = turbine.load(os.path.join(os.path.dirname(__file__),'NREL5MW_saved.p')) # plot rotor performance print('Plotting Cp data') diff --git a/Examples/example_03.py b/Examples/example_03.py index b9e5ca6bd..8a352da34 100644 --- a/Examples/example_03.py +++ b/Examples/example_03.py @@ -10,16 +10,16 @@ - Write a text file with rotor performance properties ''' # Python modules -import yaml +import yaml, os # ROSCO toolbox modules from ROSCO_toolbox import turbine as ROSCO_turbine -from ROSCO_toolbox import utilities as ROSCO_utilities +from ROSCO_toolbox.utilities import write_rotor_performance # Initialize parameter dictionaries turbine_params = {} control_params = {} # Load yaml file -parameter_filename = '../Tune_Cases/NREL5MW.yaml' +parameter_filename = os.path.join(os.path.dirname(__file__),'NREL5MW_example.yaml') inps = yaml.safe_load(open(parameter_filename)) path_params = inps['path_params'] turbine_params = inps['turbine_params'] @@ -27,9 +27,13 @@ # Load turbine data from openfast model turbine = ROSCO_turbine.Turbine(turbine_params) -turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='cc-blade',txt_filename=None) +turbine.load_from_fast( + path_params['FAST_InputFile'], + os.path.join(os.path.dirname(__file__),path_params['FAST_directory']), + dev_branch=True, + rot_source='cc-blade', + txt_filename=None) # Write rotor performance text file -txt_filename = 'Cp_Ct_Cq.Ex03.txt' -file_processing = ROSCO_utilities.FileProcessing() -file_processing.write_rotor_performance(turbine,txt_filename=txt_filename) +txt_filename = os.path.join(os.path.dirname(__file__),'Cp_Ct_Cq.Ex03.txt') +write_rotor_performance(turbine,txt_filename=txt_filename) diff --git a/Examples/example_04.py b/Examples/example_04.py index c2ecae37c..431749eb1 100644 --- a/Examples/example_04.py +++ b/Examples/example_04.py @@ -12,15 +12,15 @@ ''' # Python modules import matplotlib.pyplot as plt -import yaml +import yaml, os # ROSCO toolbox modules from ROSCO_toolbox import controller as ROSCO_controller from ROSCO_toolbox import turbine as ROSCO_turbine from ROSCO_toolbox import sim as ROSCO_sim -from ROSCO_toolbox import utilities as ROSCO_utilities +from ROSCO_toolbox.utilities import write_DISCON # Load yaml file -parameter_filename = 'NREL5MW_example.yaml' +parameter_filename = os.path.join(os.path.dirname(__file__),'NREL5MW_example.yaml') inps = yaml.safe_load(open(parameter_filename)) path_params = inps['path_params'] turbine_params = inps['turbine_params'] @@ -29,17 +29,21 @@ # Instantiate turbine, controller, and file processing classes turbine = ROSCO_turbine.Turbine(turbine_params) controller = ROSCO_controller.Controller(controller_params) -file_processing = ROSCO_utilities.FileProcessing() # Load turbine data from OpenFAST and rotor performance text file -turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='txt',txt_filename=path_params['rotor_performance_filename']) +turbine.load_from_fast( + path_params['FAST_InputFile'], + os.path.join(os.path.dirname(__file__),path_params['FAST_directory']), + dev_branch=True, + rot_source='txt',txt_filename=os.path.join(os.path.dirname(__file__),path_params['rotor_performance_filename']) + ) # Tune controller controller.tune_controller(turbine) # Write parameter input file param_file = 'DISCON.IN' -file_processing.write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename']) +write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename']) # Plot gain schedule fig, ax = plt.subplots(1,2,constrained_layout=True) diff --git a/Examples/example_05.py b/Examples/example_05.py index 155e29f9b..c97dc472f 100644 --- a/Examples/example_05.py +++ b/Examples/example_05.py @@ -17,21 +17,21 @@ # Python modules import matplotlib.pyplot as plt import numpy as np -import yaml +import yaml, os # ROSCO toolbox modules from ROSCO_toolbox import controller as ROSCO_controller from ROSCO_toolbox import turbine as ROSCO_turbine from ROSCO_toolbox import sim as ROSCO_sim -from ROSCO_toolbox import utilities as ROSCO_utilities from ROSCO_toolbox import control_interface as ROSCO_ci # Specify controller dynamic library path and name -lib_name = '../ROSCO/build/libdiscon.dylib' -param_filename = 'DISCON.IN' +this_dir = os.path.dirname(__file__) +lib_name = os.path.join(this_dir,'../ROSCO/build/libdiscon.dylib') +param_filename = os.path.join(this_dir,'DISCON.IN') # Load turbine model from saved pickle turbine = ROSCO_turbine.Turbine -turbine = turbine.load('NREL5MW_saved.p') +turbine = turbine.load(os.path.join(this_dir,'NREL5MW_saved.p')) # Load controller library controller_int = ROSCO_ci.ControllerInterface(lib_name,param_filename=param_filename) diff --git a/Examples/example_06.py b/Examples/example_06.py index a4e804499..9731c2353 100644 --- a/Examples/example_06.py +++ b/Examples/example_06.py @@ -12,14 +12,17 @@ ''' # Python Modules import yaml +import os # ROSCO toolbox modules from ROSCO_toolbox import controller as ROSCO_controller from ROSCO_toolbox import turbine as ROSCO_turbine +from ROSCO_toolbox.utilities import write_DISCON, run_openfast from ROSCO_toolbox import sim as ROSCO_sim -from ROSCO_toolbox import utilities as ROSCO_utilities + +this_dir = os.path.dirname(__file__) # Load yaml file -parameter_filename = 'NREL5MW_example.yaml' +parameter_filename = os.path.join(this_dir,'NREL5MW_example.yaml') inps = yaml.safe_load(open(parameter_filename)) path_params = inps['path_params'] turbine_params = inps['turbine_params'] @@ -28,8 +31,6 @@ # Instantiate turbine, controller, and file processing classes turbine = ROSCO_turbine.Turbine(turbine_params) controller = ROSCO_controller.Controller(controller_params) -file_processing = ROSCO_utilities.FileProcessing() -fast_io = ROSCO_utilities.FAST_IO() # Load turbine data from OpenFAST and rotor performance text file turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='txt',txt_filename=path_params['rotor_performance_filename']) @@ -38,12 +39,12 @@ controller.tune_controller(turbine) # Write parameter input file -param_file = 'DISCON.IN' # This must be named DISCON.IN to be seen by the compiled controller binary. -file_processing.write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename']) +param_file = os.path.join(this_dir,'DISCON.IN') # This must be named DISCON.IN to be seen by the compiled controller binary. +write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename']) # Run OpenFAST # --- May need to change fastcall if you use a non-standard command to call openfast -fast_io.run_openfast(path_params['FAST_directory'], fastcall='openfast', fastfile=path_params['FAST_InputFile'],chdir=True) +run_openfast(path_params['FAST_directory'], fastcall='openfast_sdev', fastfile=path_params['FAST_InputFile'], chdir=True) diff --git a/Examples/example_07.py b/Examples/example_07.py index 89d38797f..8046f5928 100644 --- a/Examples/example_07.py +++ b/Examples/example_07.py @@ -12,15 +12,16 @@ # Python modules import matplotlib.pyplot as plt -import yaml +import yaml, os # ROSCO toolbox modules from ROSCO_toolbox import controller as ROSCO_controller from ROSCO_toolbox import turbine as ROSCO_turbine from ROSCO_toolbox import sim as ROSCO_sim -from ROSCO_toolbox import utilities as ROSCO_utilities + +this_dir = os.path.dirname(__file__) # Load yaml file -parameter_filename = 'NREL5MW_example.yaml' +parameter_filename = os.path.join(this_dir,'NREL5MW_example.yaml') inps = yaml.safe_load(open(parameter_filename)) path_params = inps['path_params'] turbine_params = inps['turbine_params'] @@ -33,7 +34,6 @@ # Instantiate turbine, controller, and file processing classes turbine = ROSCO_turbine.Turbine(turbine_params) controller = ROSCO_controller.Controller(controller_params) -file_processing = ROSCO_utilities.FileProcessing() # Load turbine data from OpenFAST and rotor performance text file turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='txt',txt_filename=path_params['rotor_performance_filename']) diff --git a/Examples/example_08.py b/Examples/example_08.py index 3c8065396..dbc27ab49 100644 --- a/Examples/example_08.py +++ b/Examples/example_08.py @@ -16,21 +16,18 @@ import matplotlib.pyplot as plt # ROSCO toolbox modules from ROSCO_toolbox import utilities as ROSCO_utilities +from ofTools.fast_io import output_processing +import os -# Instantiate fast_IO -fast_io = ROSCO_utilities.FAST_IO() -fast_pl = ROSCO_utilities.FAST_Plots() +this_dir = os.path.dirname(__file__) # Define openfast output filenames filenames = ["../Test_Cases/NREL-5MW/NREL-5MW.outb"] - -# ---- Note: Could plot multiple cases, textfiles, and binaries... +# ---- Note: Could load and plot multiple cases, textfiles, and binaries... # filenames = ["../Test_Cases/NREL-5MW/NREL-5MW.outb", # "../Test_Cases/NREL-5MW/NREL-5MW_ex8.outb"] -# Load output info and data -fastout = fast_io.load_fast_out(filenames, tmin=10) - +filenames = [os.path.join(this_dir,file) for file in filenames] # Define Plot cases # --- Comment,uncomment, create, and change these as desired... @@ -38,5 +35,12 @@ cases['Baseline'] = ['Wind1VelX', 'BldPitch1', 'GenTq', 'RotSpeed'] cases['Rotor'] = ['BldPitch1', 'GenTq', 'GenPwr'] -# Plot, woohoo! -fast_pl.plot_fast_out(cases, fastout, showplot=True) +# Instantiate fast_IO +fast_out = output_processing.output_processing() +# Can also do: +# fast_out = output_processing.output_processing(filenames=filenames, cases=cases) +# fast_out.plot_fast_out() + +# Load and plot +fastout = fast_out.load_fast_out(filenames, tmin=10) +fast_out.plot_fast_out(cases=cases) diff --git a/Examples/example_09.py b/Examples/example_09.py index 5fc959dc1..3065450f8 100644 --- a/Examples/example_09.py +++ b/Examples/example_09.py @@ -11,14 +11,14 @@ import numpy as np import matplotlib.pyplot as plt # ROSCO toolbox modules -from ROSCO_toolbox import utilities as ROSCO_utilities +from ROSCO_toolbox.utilities import run_openfast +import os -# Instantiate fast_IO -fast_io = ROSCO_utilities.FAST_IO() +this_dir = os.path.dirname(__file__) # Define openfast output filenames -wind_directory = '../Test_Cases/Wind/' +wind_directory = os.path.join(this_dir,'../Test_Cases/Wind/') turbsim_infile = '90m_12mps_twr.inp' -fast_io.run_openfast(wind_directory, fastcall='turbsim', fastfile=turbsim_infile, chdir=False) +run_openfast(wind_directory, fastcall='turbsim_sdev', fastfile=turbsim_infile, chdir=False) diff --git a/Examples/example_10.py b/Examples/example_10.py index a1ad3f0d3..ed98aa481 100644 --- a/Examples/example_10.py +++ b/Examples/example_10.py @@ -16,13 +16,15 @@ ''' # Python Modules -import yaml +import yaml, os # ROSCO Modules from ROSCO_toolbox import turbine as ROSCO_turbine from ROSCO_toolbox import controller as ROSCO_controller +rt_dir = os.path.dirname(os.path.dirname(__file__)) + # Load yaml file -parameter_filename = '../Tune_Cases/BAR.yaml' +parameter_filename = os.path.join(rt_dir,'Tune_Cases/BAR.yaml') inps = yaml.safe_load(open(parameter_filename)) path_params = inps['path_params'] turbine_params = inps['turbine_params'] @@ -30,9 +32,9 @@ # Load turbine data from openfast model turbine = ROSCO_turbine.Turbine(turbine_params) -turbine = ROSCO_turbine.Turbine(turbine_params) # turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='txt',txt_filename=path_params['rotor_performance_filename']) -turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True) +turbine.load_from_fast(path_params['FAST_InputFile'], \ + os.path.join(rt_dir,path_params['FAST_directory']),dev_branch=True) # Tune controller controller = ROSCO_controller.Controller(controller_params) diff --git a/Examples/example_11.py b/Examples/example_11.py index 0169b7108..6a6db53d5 100644 --- a/Examples/example_11.py +++ b/Examples/example_11.py @@ -16,7 +16,6 @@ from ROSCO_toolbox import controller as ROSCO_controller from ROSCO_toolbox import turbine as ROSCO_turbine from ROSCO_toolbox import sim as ROSCO_sim -from ROSCO_toolbox import utilities as ROSCO_utilities import numpy as np @@ -34,8 +33,6 @@ # Instantiate turbine, controller, and file processing classes turbine = ROSCO_turbine.Turbine(turbine_params) controller = ROSCO_controller.Controller(controller_params) -file_processing = ROSCO_utilities.FileProcessing() -fast_io = ROSCO_utilities.FAST_IO() # Load turbine data from OpenFAST and rotor performance text file turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source=None,txt_filename=path_params['rotor_performance_filename']) @@ -71,15 +68,3 @@ print('Tower Height = {} m'.format(turbine.hubHt)) print('Platform Freq. = {} rad/s'.format(turbine.ptfm_freq)) - -# Write parameter input file -# param_file = 'DISCON.IN' # This must be named DISCON.IN to be seen by the compiled controller binary. -# file_processing.write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename']) - -# Run OpenFAST -# --- May need to change fastcall if you use a non-standard command to call openfast -# fast_io.run_openfast(path_params['FAST_directory'], fastcall='openfast', fastfile=path_params['FAST_InputFile'],chdir=True) - - - - diff --git a/README.md b/README.md index 9deb16fdf..5f4dd9d18 100644 --- a/README.md +++ b/README.md @@ -14,84 +14,43 @@ The NREL Reference OpenSource Controller (ROSCO) provides an open, modular and f * [Tune_Cases](https://github.com/NREL/ROSCO_toolbox/tree/master/Tune_Cases) - example generic tuning scripts for a number of open-source reference turbines. * [Test_Cases](https://github.com/NREL/ROSCO_toolbox/tree/master/Test_Cases) - numerous NREL 5MW bases cases to run for controller updates and comparisons. A "test-suite", if you will... * [Matlab_Toolbox](https://github.com/NREL/ROSCO_toolbox/tree/master/Matlab_Toolbox) - MATLAB scripts to parse and plot simulation output data. +* [ofTools](https://github.com/NREL/ROSCO_toolbox/tree/master/ofTools) - A number of scripts to facilitate usage of OpenFAST and manage OpenFAST input and output files. ## Using the ROSCO Toolbox -There is a short (but _hopefully_ sweet) installation and run process for basic controller tuning... +Here is a short (but _hopefully_ sweet) installation and run process for basic controller tuning... ### Installing the complete ROSCO Toolbox -If you would like to use the ROSCO toolbox, you will need to install the ROSCO toolbox. For the tuning (and a few other) capabilities, you will additionally need to install WISDEM. - -If you do not have WISDEM or the ROSCO toolbox installed and would like to install WISDEM, the ROSCO toolbox, and compile the controller on your unix machine please do the following: open your terminal, navigate to the folder of your choosing, and copy and paste the below text into the command line. This code block is broken up in a piece-wise description in the following sections. -``` -# -- Install WISDEM -- -conda config --add channels conda-forge -conda create -y --name wisdem-env python=3.7 -conda activate wisdem-env -conda install -y wisdem -# -- Clone and install the ROSCO toolbox -- -git clone https://github.com/NREL/ROSCO_toolbox.git -cd ROSCO_toolbox -git submodule init -git submodule update -python setup.py install -# -- Compile the ROSCO controller -- -cd ROSCO -mkdir build -cd build -cmake .. -make -``` -# -- Install WEIS --- -Get clone weis from (weis link) and install using instructions there -``` -conda activate weis-env -``` -Navigate to weis directory and enter -``` -export weis_dir=$(pwd) # maybe? -``` - -#### WISDEM Dependencies -The ROSCO toolbox uses two NREL tools that are distributed as a part of the WISDEM packages. AerolasticSE and CCBlade are currently used, with future dependencies or support possible. As such, it is necessary to install WISDEM. This can be done fairly easily by following the [WISDEM installation instructions](https://github.com/wisdem/wisdem). A brief overview of the _user_ steps is provided here, for more detail, especially if you would like to contribute to the development of WISDEM, see the [WISDEM github page](https://github.com/wisdem/wisdem). - -We recommend creating and activating the same Anaconda environment for both WISDEM and ROSCO: - -1. Setup and active this environment form the command prompt (Anaconda3 Power Shell on Windows or Terminal.app on Mac) -``` -conda config --add channels conda-forge -conda create -y --name wisdem-env python=3.7 -conda activate wisdem-env -``` -2. Install WISDEM and it's dependencies -``` -conda install -y wisdem -``` - -If you wish to use the generic controller tuning capabilities for distributed aerodynamic control that are available in the ROSCO toolbox, you will need to install the `IEAontology4all` branch of WISDEM. For this, please follow the "for developers" instructions on downloading and compiling WISDEM, and be sure to `git checkout IEAontology4all` before `python setup.py develop`. - -#### Installing ROSCO -You should first be sure that you are still in the `wisdem-env` environment that you installed wisdem in. - -If you would like to take a deeper dive into the source-code, see example tuning cases, or contribute to the toolbox, you should: - -1. clone the git repository and initiate the ROSCO submodule: -``` -git clone https://github.com/NREL/ROSCO_toolbox.git -cd ROSCO_toolbox -git submodule init -git submodule update -``` -2. Install ROSCO from the cloned home directory -``` -python setup.py develop -``` -or -``` -pip install -e ROSCO_toolbox -``` +In order to fully leverage the controller tuning capabilities, [WISDEM](https://github.com/WISDEM/WISDEM) is used. This is made available through installation via [Anaconda](https://www.anaconda.com/). If you do not already have Anaconda installed on your machine, it is recommended that you install it to install WISDEM. Alternatively, you can install wisdem following the ``for developer'' instructions on the WISDEM home page and skip to step 2 here. + +If you do not have WISDEM or the ROSCO toolbox installed and would like to install WISDEM, the ROSCO toolbox, and compile the controller please do the following: open your terminal or command prompt, navigate to the folder of your choosing, and enter the below text into the command line. This code block is broken up in a piece-wise description in the following sections. +1. #### Install WISDEM + ``` + conda config --add channels conda-forge + conda create -y --name rosco-env python=3.8 + conda activate rosco-env + conda install -y wisdem + ``` + +2. #### Clone and Install the ROSCO toolbox + ``` + git clone https://github.com/NREL/ROSCO_toolbox.git + cd ROSCO_toolbox + git submodule init + git submodule update + conda install compilers # (Mac/Linux only) + conda install m2w64-toolchain libpython # (Windows only) + python setup.py install + ``` + +### Alternatively... +If you wish to write your own scripts to leverage the ROSCO toolbox tools, but do not necessarily need the source code or to run any of the examples, the ROSCO toolbox is available via PyPi: +``` +pip install rosco_toolbox +``` +Note that if you do choose to install the ROSCO Toolbox this way, you will not have the source code. Additionally, you will need to download WISDEM and the ROSCO controller separately if you wish to use any of the ROSCO toolbox functionalities that need those software packages. #### Compiling ROSCO -The controller itself is installed as a submodule in the ROSCO toolbox. For further information on compiling and running ROSCO itself, especially if you are on a Windows machine, we point you to the [ROSCO github page](https://github.com/NREL/ROSCO_toolbox.git). For Unix systems, (or Unix shells on Windows), cmake makes it easy to compile. In order to compile the controller, you should run the following commands from the ROSCO_toolbox folder. +The controller itself is installed as a submodule in the ROSCO toolbox. For further information on compiling and running ROSCO itself, or to download the release binaries directly, we point you to the [ROSCO github page](https://github.com/NREL/ROSCO_toolbox.git). If you wish to re-compile the ROSOCO toolbox, cmake provides easy to compiling on Unix based systems. In order to compile the controller, you should run the following commands from the ROSCO_toolbox folder. ``` cd ROSCO mkdir build @@ -99,6 +58,8 @@ cd build cmake .. make ``` +Those familiar with mingw on windows can also compile ROSCO similarly. + These commands will compile a binary titled `libdiscon.*` in the build folder, which is the binary necessary run the controller. This should only need to be compiled once. The extension should be `.dll`, `.so`, or `.dylib`, depending on the user operating system. ### Running ROSCO with Generic Tuning @@ -154,6 +115,6 @@ Additionally, if you have extensively used the [ROSCO](https://github.com/NREL/R ## Additional Contributors and Acknowledgments -Primary contributions to the ROSCO Toolbox have been provided by researchers the National Renewable Energy Laboratory (Nikhar J. Abbas, Alan Wright, and Paul Fleming) and the University of Colorado Boulder (Lucy Pao). Much of the intellect behind these contributions has been inspired or derived from an extensive amount of work in the literature. The bulk of this has been cited through the primary publications about this work. +Primary contributions to the ROSCO Toolbox have been provided by researchers the National Renewable Energy Laboratory (Nikhar J. Abbas, Daniel Zalkind, Alan Wright, and Paul Fleming) and the University of Colorado Boulder (Lucy Pao). Much of the intellect behind these contributions has been inspired or derived from an extensive amount of work in the literature. The bulk of this has been cited through the primary publications about this work. There have been a number of contributors to the logic of the ROSCO controller itself. Please see the [ROSCO github page](https://github.com/NREL/ROSCO) for more information on who these contributors have been. \ No newline at end of file diff --git a/ROSCO_testing/ROSCO_testing.py b/ROSCO_testing/ROSCO_testing.py index 43408fcf2..15e4a366e 100644 --- a/ROSCO_testing/ROSCO_testing.py +++ b/ROSCO_testing/ROSCO_testing.py @@ -17,13 +17,11 @@ import glob import multiprocessing as mp -from weis.aeroelasticse.FAST_reader import InputReader_Common, InputReader_OpenFAST, InputReader_FAST7 -from weis.aeroelasticse.FAST_writer import InputWriter_Common, InputWriter_OpenFAST, InputWriter_FAST7 -from weis.aeroelasticse.runFAST_pywrapper import runFAST_pywrapper_batch -from weis.aeroelasticse.CaseGen_General import CaseGen_General -from weis.aeroelasticse.CaseGen_IEC import CaseGen_IEC -from pCrunch import pdTools -from pCrunch import Processing, Analysis +import ofTools.fast_io.read_fast_input as fast_io +from ofTools.fast_io.FAST_reader import InputReader_OpenFAST +from ofTools.case_gen.CaseGen_IEC import CaseGen_IEC +from ofTools.case_gen.runFAST_pywrapper import runFAST_pywrapper_batch + class ROSCO_testing(): diff --git a/ROSCO_testing/run_Testing.py b/ROSCO_testing/run_Testing.py index ca3221ad2..b528ba0d6 100644 --- a/ROSCO_testing/run_Testing.py +++ b/ROSCO_testing/run_Testing.py @@ -7,10 +7,6 @@ import ROSCO_testing import importlib -from weis.aeroelasticse.Util import FileTools -from pCrunch import pdTools -from pCrunch import Processing, Analysis - def run_testing(turbine2test, testtype, rosco_binaries=[], discon_files=[], **kwargs): ''' @@ -54,12 +50,12 @@ def run_testing(turbine2test, testtype, rosco_binaries=[], discon_files=[], **kw if turbine2test == 'NREL-5MW': rt.Turbine_Class = 'I' rt.Turbulence_Class = 'A' - rt.FAST_directory = os.path.join(os.getcwd(), '../Test_Cases/NREL-5MW') + rt.FAST_directory = os.path.join(os.path.dirname(__file__), '../Test_Cases/NREL-5MW') rt.FAST_InputFile = 'NREL-5MW.fst' elif turbine2test == 'IEA-15MW': rt.Turbine_Class = 'I' rt.Turbulence_Class = 'B' - rt.FAST_directory = os.path.join(os.getcwd(), '../Test_Cases/IEA-15-240-RWT-UMaineSemi') + rt.FAST_directory = os.path.join(os.path.dirname(__file__), '../Test_Cases/IEA-15-240-RWT-UMaineSemi') rt.FAST_InputFile = 'IEA-15-240-RWT-UMaineSemi.fst' else: raise ValueError('{} is not an available turbine to test!'.format(turbine2test)) @@ -79,134 +75,25 @@ def run_testing(turbine2test, testtype, rosco_binaries=[], discon_files=[], **kw raise ValueError('{} is an invalid test type!'.format(testtype)) - - # ----------- Post process ---------- - - # Set up pCrunch - # Initialize processing classes - fp = Processing.FAST_Processing() - - if testtype.lower() in ['lite', 'heavy']: - # Load generated .yaml for outfile names - case_info = FileTools.load_yaml(os.path.join(rt.runDir,'case_matrix.yaml'), package=1) - casenames = case_info['Case_Name'] - if rt.outfile_fmt >= 2: - outFileNames = [os.path.join(rt.runDir,fname+'.outb') for fname in casenames] - else: - outFileNames = [os.path.join(rt.runDir,fname+'.out') for fname in casenames] - - # Set some processing parameters - fp.OpenFAST_outfile_list = outFileNames - fp.t0 = 100 - if rt.cores > 1: - fp.parallel_analysis = True - fp.results_dir = os.path.join(rt.runDir, 'stats') - fp.verbose = True - fp.save_LoadRanking = True - fp.save_SummaryStats = True - - # Define load ranking stats - fp.ranking_vars = [['RotSpeed'], - ['RootMyb1', 'RootMyb2', 'RootMyb3'], - ['TwrBsMyt']] - fp.ranking_stats = ['max', - 'max', - 'max'] - if turbine2test == 'IEA-15MW': - fp.ranking_vars += [['PtfmPitch']] - fp.ranking_stats += ['max'] - - # Load and save statistics and load rankings - if not os.path.exists(os.path.join(fp.results_dir, 'dataset1_LoadRanking.yaml')) or reCrunch: - stats, load_rankings = fp.batch_processing() - - # Print a summary - print('----------------------------------------') - print('\t\t{}'.format(turbine2test)) - print('----------------------------------------') - print('\t\t{}'.format('Test Outputs')) - for meas in load_rankings[0].keys(): - try: - print('Max {} \t{:1.3e}'.format(meas, load_rankings[0][meas]['max'][0])) - except: - print('{} is not in load rankings'.format(meas)) - print('----------------------------------------') - - else: - # Save each set of outputs in a list - allstats = [] - allrankings = [] - for i in range(max(len(discon_files), len(rosco_binaries))): - # Define output file folder - outputDir = os.path.join(os.getcwd(), rt.runDir,'controller_{}'.format(i)) # NJA - this is dependent on the hard-coded folder names in ROSCO_testing.py - - # Load output file paths using case matrices - case_info = FileTools.load_yaml(os.path.join(outputDir, 'case_matrix.yaml'), package=1) - casenames = case_info['Case_Name'] - if rt.outfile_fmt >= 2: - outFileNames = [os.path.join(outputDir, fname+'.outb') for fname in casenames] - else: - outFileNames = [os.path.join(outputDir, fname+'.out') for fname in casenames] - - # Set some processing parameters - fp.OpenFAST_outfile_list = outFileNames - fp.t0 = 100 - if rt.cores > 0: - fp.parallel_analysis = True - fp.results_dir = os.path.join(outputDir, 'stats') - fp.verbose = True - fp.save_LoadRanking = True - fp.save_SummaryStats = True - - # Define load ranking stats - fp.ranking_vars = [['RotSpeed'], - ['RootMyb1', 'RootMyb2', 'RootMyb3'], - ['TwrBsMyt']] - fp.ranking_stats = ['max', - 'max', - 'max'] - if turbine2test == 'IEA-15MW': - fp.ranking_vars += [['PtfmPitch']] - fp.ranking_stats += ['max'] - - # Load and save statistics and load rankings - if not os.path.exists(os.path.join(fp.results_dir, 'dataset1_LoadRanking.yaml')) or reCrunch: - stats, load_rankings = fp.batch_processing() - - # Save all outputs - allstats.append(stats) - allrankings.append(load_rankings[0]) - - # Print a summary - print('----------------------------------------') - print('\t\t{}'.format(turbine2test)) - print('----------------------------------------') - print('\t\t{}\t{}'.format('Controller1', 'Controller2')) - for meas in allrankings[0].keys(): - try: - print('Max {} \t{:1.3e}\t{:1.3e}'.format( - meas, allrankings[0][meas]['max'][0], allrankings[1][meas]['max'][0])) - except: - print('{} is not in load rankings'.format(meas)) - print('----------------------------------------') if __name__ == "__main__": # WEIS directory, for running openfast, etc. - weis_dir = os.environ.get('weis_dir') # works if we do `export weis_dir=$(pwd)` in WEIS directory in terminal - weis_dir = '/Users/dzalkind/Tools/WEIS' + # weis_dir = os.environ.get('weis_dir') # works if we do `export weis_dir=$(pwd)` in WEIS directory in terminal + weis_dir = '/Users/dzalkind/Tools/WEIS-3' + this_dir = os.path.dirname(__file__) # Setup ROSCO testing parameters rt_kwargs = {} - rt_kwargs['runDir'] = 'results/lite_testing' # directory for FAST simulations - rt_kwargs['namebase'] = 'ROSCO_lite_test' # Base name for FAST files + rt_kwargs['runDir'] = os.path.join(this_dir,'results/') # directory for FAST simulations + rt_kwargs['namebase'] = 'lite_test' # Base name for FAST files rt_kwargs['FAST_exe'] = os.path.join(weis_dir,'local','bin','openfast') # OpenFAST executable path rt_kwargs['Turbsim_exe']= os.path.join(weis_dir,'local','bin','turbsim') # Turbsim executable path rt_kwargs['FAST_ver'] = 'OpenFAST' # FAST version rt_kwargs['dev_branch'] = True # dev branch of Openfast? rt_kwargs['debug_level']= 2 # debug level. 0 - no outputs, 1 - minimal outputs, 2 - all outputs rt_kwargs['overwrite'] = False # overwite fast sims? - rt_kwargs['cores'] = 1 # number of cores if multiprocessing + rt_kwargs['cores'] = 4 # number of cores if multiprocessing rt_kwargs['mpi_run'] = False # run using mpi rt_kwargs['mpi_comm_map_down'] = [] # core mapping for MPI rt_kwargs['outfile_fmt'] = 2 # 1 = .txt, 2 = binary, 3 = both @@ -216,8 +103,7 @@ def run_testing(turbine2test, testtype, rosco_binaries=[], discon_files=[], **kw testtype = 'lite' # lite, heavy, binary-comp, discon-comp # Only fill one of these if comparing controllers - rosco_binaries = [os.path.join(os.getcwd(), glob.glob('../ROSCO/build/libdiscon*')[0]), - os.path.join(os.getcwd(), glob.glob('../ROSCO/build/libdiscon*')[0])] # Differently named libdiscons to compare + rosco_binaries = [glob.glob(os.path.join(this_dir,'../ROSCO/build/libdiscon*'))[0]] # Differently named libdiscons to compare discon_files = [] # Differently named DISCON.IN files to compare diff --git a/ROSCO_toolbox/controller.py b/ROSCO_toolbox/controller.py index fe746b438..ebafca715 100644 --- a/ROSCO_toolbox/controller.py +++ b/ROSCO_toolbox/controller.py @@ -12,7 +12,6 @@ import numpy as np import sys import datetime -from wisdem.ccblade import CCAirfoil, CCBlade from scipy import interpolate, gradient, integrate # Some useful constants @@ -160,12 +159,13 @@ def tune_controller(self, turbine): # separate wind speeds by operation regions v_below_rated = np.arange(turbine.v_min,turbine.v_rated,0.5) # below rated - v_above_rated = np.arange(turbine.v_rated+0.5,turbine.v_max,0.5) # above rated + v_above_rated = np.arange(turbine.v_rated,turbine.v_max,0.5) # above rated v = np.concatenate((v_below_rated, v_above_rated)) # separate TSRs by operations regions TSR_below_rated = np.ones(len(v_below_rated))*turbine.TSR_operational # below rated - TSR_above_rated = rated_rotor_speed*R/v_above_rated # above rated + TSR_above_rated = rated_rotor_speed*R/v_above_rated # above rated + # TSR_below_rated = np.minimum(np.max(TSR_above_rated), TSR_below_rated) TSR_op = np.concatenate((TSR_below_rated, TSR_above_rated)) # operational TSRs # Find expected operational Cp values @@ -280,7 +280,7 @@ def tune_controller(self, turbine): self.B_tau = B_tau self.B_wind = B_wind self.TSR_op = TSR_op - self.omega_op = TSR_op*v/R + self.omega_op = np.minimum(turbine.rated_rotor_speed, TSR_op*v/R) self.Pi_omega = Pi_omega self.Pi_beta = Pi_beta self.Pi_wind = Pi_wind @@ -478,7 +478,7 @@ def peak_shaving(self,controller, turbine): else: Ct_max[i] = np.minimum( np.max(Ct_tsr), Ct_max[i]) # Define minimum pitch angle - f_pitch_min = interpolate.interp1d(Ct_tsr, turbine.pitch_initial_rad, bounds_error=False, fill_value=(turbine.pitch_initial_rad[0],turbine.pitch_initial_rad[-1])) + f_pitch_min = interpolate.interp1d(Ct_tsr, turbine.pitch_initial_rad, kind='cubic', bounds_error=False, fill_value=(turbine.pitch_initial_rad[0],turbine.pitch_initial_rad[-1])) pitch_min[i] = max(controller.min_pitch, f_pitch_min(Ct_max[i])) controller.ps_min_bld_pitch = pitch_min diff --git a/ROSCO_toolbox/turbine.py b/ROSCO_toolbox/turbine.py index 0325552ae..1818d89f3 100644 --- a/ROSCO_toolbox/turbine.py +++ b/ROSCO_toolbox/turbine.py @@ -12,14 +12,13 @@ import os import numpy as np import datetime -from wisdem.ccblade import CCAirfoil, CCBlade from scipy import interpolate from numpy import gradient import pickle import matplotlib.pyplot as plt import pandas as pd -from ROSCO_toolbox import utilities as ROSCO_utilities +from ROSCO_toolbox.utilities import load_from_txt # Some useful constants now = datetime.datetime.now() @@ -160,7 +159,7 @@ def load_from_fast(self, FAST_InputFile,FAST_directory, FAST_ver='OpenFAST',dev_ txt_filename: str, optional filename for *.txt, only used if rot_source='txt' """ - from weis.aeroelasticse.FAST_reader import InputReader_OpenFAST + from ofTools.fast_io.FAST_reader import InputReader_OpenFAST print('Loading FAST model: %s ' % FAST_InputFile) self.TurbineName = FAST_InputFile.strip('.fst') @@ -208,8 +207,7 @@ def load_from_fast(self, FAST_InputFile,FAST_directory, FAST_ver='OpenFAST',dev_ if rot_source == 'cc-blade': # Use cc-blade self.load_from_ccblade() elif rot_source == 'txt': # Use specified text file - file_processing = ROSCO_utilities.FileProcessing() - self.pitch_initial_rad, self.TSR_initial, self.Cp_table, self.Ct_table, self.Cq_table = file_processing.load_from_txt( + self.pitch_initial_rad, self.TSR_initial, self.Cp_table, self.Ct_table, self.Cq_table = load_from_txt( txt_filename) else: # Use text file from DISCON.in if os.path.exists(os.path.join(FAST_directory, fast.fst_vt['ServoDyn']['DLL_InFile'])): @@ -250,6 +248,8 @@ def load_from_ccblade(self): Dictionary containing fast model details - defined using from InputReader_OpenFAST (distributed as a part of AeroelasticSE) ''' + from wisdem.ccblade.ccblade import CCAirfoil, CCBlade + print('Loading rotor performance data from CC-Blade.') # Load blade information if it isn't already @@ -274,10 +274,13 @@ def load_from_ccblade(self): # Get values from cc-blade print('Running CCBlade aerodynamic analysis, this may take a minute...') - outputs, derivs = self.cc_rotor.evaluate(ws_flat, omega_flat, pitch_flat, coefficients=True) - CP = outputs['CP'] - CT = outputs['CT'] - CQ = outputs['CQ'] + try: # wisde/master as of Nov 9, 2020 + _, _, _, _, CP, CT, CQ, CM = self.cc_rotor.evaluate(ws_flat, omega_flat, pitch_flat, coefficients=True) + except(ValueError): # wisdem/dev as of Nov 9, 2020 + outputs, derivs = self.cc_rotor.evaluate(ws_flat, omega_flat, pitch_flat, coefficients=True) + CP = outputs['CP'] + CT = outputs['CT'] + CQ = outputs['CQ'] print('CCBlade aerodynamic analysis run successfully.') # Reshape Cp, Ct and Cq @@ -313,10 +316,8 @@ def generate_rotperf_fast(self, openfast_path, FAST_runDirectory=None, run_BeamD 'serial' - run in serial, 'multi' - run using python multiprocessing tools, 'mpi' - run using mpi tools ''' - - # Load additional WEIS tools - from weis.aeroelasticse import runFAST_pywrapper, CaseGen_General - from weis.aeroelasticse.Util import FileTools + from ofTools.case_gen import runFAST_pywrapper, CaseGen_General + from ofTools.util import FileTools # Load pCrunch tools from pCrunch import pdTools, Processing @@ -498,7 +499,8 @@ def load_blade_info(self): ----------- self - note: needs to contain fast input file info provided by load_from_fast. ''' - from weis.aeroelasticse.FAST_reader import InputReader_OpenFAST + from ofTools.fast_io.FAST_reader import InputReader_OpenFAST + from wisdem.ccblade.ccblade import CCAirfoil, CCBlade # Create CC-Blade Rotor r0 = np.array(self.fast.fst_vt['AeroDynBlade']['BlSpn']) @@ -608,7 +610,8 @@ def interp_surface(self,pitch,TSR): ''' # Form the interpolant functions which can look up any arbitrary location on rotor performance surface - interp_fun = interpolate.interp2d(self.pitch_initial_rad, self.TSR_initial, self.performance_table, kind='linear') + interp_fun = interpolate.interp2d( + self.pitch_initial_rad, self.TSR_initial, self.performance_table, kind='cubic') return interp_fun(pitch,TSR) def interp_gradient(self,pitch,TSR): @@ -655,8 +658,8 @@ def plot_performance(self): plt.title('Power Coefficient', fontsize=14, fontweight='bold') plt.xlabel('Pitch Angle [deg]', fontsize=14, fontweight='bold') plt.ylabel('TSR [-]', fontsize=14, fontweight='bold') - plt.scatter(max_beta_id, max_tsr_id, color='red') + plt.scatter(max_beta_id * rad2deg, max_tsr_id, color='red') plt.annotate('max = {:<1.3f}'.format(np.max(self.performance_table)), (max_beta_id+0.2, max_tsr_id+0.2), color='red') plt.xticks(fontsize=12) - plt.yticks(fontsize=12) \ No newline at end of file + plt.yticks(fontsize=12) diff --git a/ROSCO_toolbox/utilities.py b/ROSCO_toolbox/utilities.py index 419dae8f2..3ee3b7213 100644 --- a/ROSCO_toolbox/utilities.py +++ b/ROSCO_toolbox/utilities.py @@ -8,7 +8,19 @@ # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR # CONDITIONS OF ANY KIND, either express or implied. See the License for the # specific language governing permissions and limitations under the License. - +""" +Class FileProcessing used to write out controller + parameter files need to run ROSCO + +Methods: +----------- +run_openfast +write_DISCON +read_DISCON +write_rotor_performance +load_from_txt +DISCON_dict +""" import datetime import os import numpy as np @@ -17,11 +29,7 @@ from itertools import takewhile, product import struct -try: - from weis.aeroelasticse.Util import spectral -except: - pass - +from ofTools.util import spectral # Some useful constants now = datetime.datetime.now() pi = np.pi @@ -30,1029 +38,462 @@ rpm2RadSec = 2.0*(np.pi)/60.0 RadSec2rpm = 60/(2.0 * np.pi) -class FAST_Plots(): - ''' - Some plotting utilities for OpenFAST data. +def write_DISCON(turbine, controller, param_file='DISCON.IN', txt_filename='Cp_Ct_Cq.txt'): + """ + Print the controller parameters to the DISCON.IN input file for the generic controller - Methods: - plot_fast_out - plot_spectral + Parameters: + ----------- + turbine: class + Turbine class containing turbine operation information (ref speeds, etc...) + controller: class + Controller class containing controller operation information (gains, etc...) + param_file: str, optional + filename for parameter input file, should be DISCON.IN + txt_filename: str, optional + filename of rotor performance file + """ + print('Writing new controller parameter file parameter file: %s.' % param_file) + # Should be obvious what's going on here... + file = open(param_file,'w') + file.write('! Controller parameter input file for the %s wind turbine\n' % turbine.TurbineName) + file.write('! - File written using ROSCO Controller tuning logic on %s\n' % now.strftime('%m/%d/%y')) + file.write('\n') + file.write('!------- DEBUG ------------------------------------------------------------\n') + file.write('{0:<12d} ! LoggingLevel - {{0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file}}\n'.format(int(controller.LoggingLevel))) + file.write('\n') + file.write('!------- CONTROLLER FLAGS -------------------------------------------------\n') + file.write('{0:<12d} ! F_LPFType - {{1: first-order low-pass filter, 2: second-order low-pass filter}}, [rad/s] (currently filters generator speed and pitch control signals\n'.format(int(controller.F_LPFType))) + file.write('{0:<12d} ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {{0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion}}\n'.format(int(controller.F_NotchType))) + file.write('{0:<12d} ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {{0: off, 1: 1P reductions, 2: 1P+2P reductions}}\n'.format(int(controller.IPC_ControlMode))) + file.write('{0:<12d} ! VS_ControlMode - Generator torque control mode in above rated conditions {{0: constant torque, 1: constant power, 2: TSR tracking PI control}}\n'.format(int(controller.VS_ControlMode))) + file.write('{0:<12d} ! PC_ControlMode - Blade pitch control mode {{0: No pitch, fix to fine pitch, 1: active PI blade pitch control}}\n'.format(int(controller.PC_ControlMode))) + file.write('{0:<12d} ! Y_ControlMode - Yaw control mode {{0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC}}\n'.format(int(controller.Y_ControlMode))) + file.write('{0:<12d} ! SS_Mode - Setpoint Smoother mode {{0: no setpoint smoothing, 1: introduce setpoint smoothing}}\n'.format(int(controller.SS_Mode))) + file.write('{0:<12d} ! WE_Mode - Wind speed estimator mode {{0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator, 2: Extended Kalman Filter}}\n'.format(int(controller.WE_Mode))) + file.write('{0:<12d} ! PS_Mode - Pitch saturation mode {{0: no pitch saturation, 1: implement pitch saturation}}\n'.format(int(controller.PS_Mode > 0))) + file.write('{0:<12d} ! SD_Mode - Shutdown mode {{0: no shutdown procedure, 1: pitch to max pitch at shutdown}}\n'.format(int(controller.SD_Mode))) + file.write('{0:<12d} ! Fl_Mode - Floating specific feedback mode {{0: no nacelle velocity feedback, 1: nacelle velocity feedback}}\n'.format(int(controller.Fl_Mode))) + file.write('{0:<12d} ! Flp_Mode - Flap control mode {{0: no flap control, 1: steady state flap angle, 2: Proportional flap control}}\n'.format(int(controller.Flp_Mode))) + file.write('\n') + file.write('!------- FILTERS ----------------------------------------------------------\n') + file.write('{:<13.5f} ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s]\n'.format(turbine.bld_edgewise_freq * 1/4)) + file.write('{:<13.5f} ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2]\n'.format(controller.F_LPFDamping)) + file.write('{:<13.5f} ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s]\n'.format(turbine.twr_freq)) + file.write('{:<10.5f}{:<9.5f} ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-]\n'.format(0.0,0.25)) + file.write('{:<014.5f} ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [rad/s].\n'.format(controller.ss_cornerfreq)) + file.write('{:<10.5f}{:<9.5f} ! F_FlCornerFreq - Natural frequency and damping in the second order low pass filter of the tower-top fore-aft motion for floating feedback control [rad/s, -].\n'.format(turbine.ptfm_freq, 1.0)) + file.write('{:<10.5f}{:<9.5f} ! F_FlpCornerFreq - Corner frequency and damping in the second order low pass filter of the blade root bending moment for flap control [rad/s, -].\n'.format(turbine.bld_flapwise_freq*1/3, 1.0)) + + file.write('\n') + file.write('!------- BLADE PITCH CONTROL ----------------------------------------------\n') + file.write('{:<11d} ! PC_GS_n - Amount of gain-scheduling table entries\n'.format(len(controller.pitch_op_pc))) + file.write('{} ! PC_GS_angles - Gain-schedule table: pitch angles\n'.format(''.join('{:<4.6f} '.format(controller.pitch_op_pc[i]) for i in range(len(controller.pitch_op_pc))))) + file.write('{} ! PC_GS_KP - Gain-schedule table: pitch controller kp gains\n'.format(''.join('{:<4.6f} '.format(controller.pc_gain_schedule.Kp[i]) for i in range(len(controller.pc_gain_schedule.Kp))))) + file.write('{} ! PC_GS_KI - Gain-schedule table: pitch controller ki gains\n'.format(''.join('{:<4.6f} '.format(controller.pc_gain_schedule.Ki[i]) for i in range(len(controller.pc_gain_schedule.Ki))))) + file.write('{} ! PC_GS_KD - Gain-schedule table: pitch controller kd gains\n'.format(''.join('{:<1.1f} '.format(0.0) for i in range(len(controller.pc_gain_schedule.Ki))))) + file.write('{} ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter)\n'.format(''.join('{:<1.1f} '.format(0.0) for i in range(len(controller.pc_gain_schedule.Ki))))) + file.write('{:<014.5f} ! PC_MaxPit - Maximum physical pitch limit, [rad].\n'.format(controller.max_pitch)) + file.write('{:<014.5f} ! PC_MinPit - Minimum physical pitch limit, [rad].\n'.format(controller.min_pitch)) + file.write('{:<014.5f} ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s].\n'.format(turbine.max_pitch_rate)) + file.write('{:<014.5f} ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s].\n'.format(turbine.min_pitch_rate)) + file.write('{:<014.5f} ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s].\n'.format(turbine.rated_rotor_speed*turbine.Ng)) + file.write('{:<014.5f} ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad]\n'.format(controller.min_pitch)) + file.write('{:<014.5f} ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad]\n'.format(1 * deg2rad)) + file.write('\n') + file.write('!------- INDIVIDUAL PITCH CONTROL -----------------------------------------\n') + file.write('{:<13.1f} ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad]\n'.format(0.087266)) # Hardcode to 5 degrees + file.write('{:<13.1e} {:<6.1f}! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-]\n'.format(controller.Ki_ipc1p,0.0)) + file.write('{:<13.1e} {:<6.1f}! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. \n'.format(0.0,0.0)) + file.write('{:<13.1f} ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {{0: Disable}}, [rad/s]\n'.format(0.0)) + file.write('\n') + file.write('!------- VS TORQUE CONTROL ------------------------------------------------\n') + file.write('{:<014.5f} ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%]\n'.format(turbine.GenEff)) + file.write('{:<014.5f} ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm]\n'.format(turbine.rated_torque)) + file.write('{:<014.5f} ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s].\n'.format(turbine.max_torque_rate)) + file.write('{:<014.5f} ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm].\n'.format(turbine.max_torque)) + file.write('{:<014.5f} ! VS_MinTq - Minimum generator (HSS side), [Nm].\n'.format(0.0)) + file.write('{:<014.5f} ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s]\n'.format(controller.vs_minspd)) + file.write('{:<014.5f} ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2]\n'.format(controller.vs_rgn2K)) + file.write('{:<014.5f} ! VS_RtPwr - Wind turbine rated power [W]\n'.format(turbine.rated_power)) + file.write('{:<014.5f} ! VS_RtTq - Rated torque, [Nm].\n'.format(turbine.rated_torque)) + file.write('{:<014.5f} ! VS_RefSpd - Rated generator speed [rad/s]\n'.format(controller.vs_refspd)) + file.write('{:<11d} ! VS_n - Number of generator PI torque controller gains\n'.format(1)) + file.write('{:<014.5f} ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n'.format(controller.vs_gain_schedule.Kp[-1])) + file.write('{:<014.5f} ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n'.format(controller.vs_gain_schedule.Ki[-1])) + file.write('{:<13.2f} ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad].\n'.format(turbine.TSR_operational)) + file.write('\n') + file.write('!------- SETPOINT SMOOTHER ---------------------------------------------\n') + file.write('{:<13.5f} ! SS_VSGain - Variable speed torque controller setpoint smoother gain, [-].\n'.format(controller.ss_vsgain)) + file.write('{:<13.5f} ! SS_PCGain - Collective pitch controller setpoint smoother gain, [-].\n'.format(controller.ss_pcgain)) + file.write('\n') + file.write('!------- WIND SPEED ESTIMATOR ---------------------------------------------\n') + file.write('{:<13.3f} ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m]\n'.format(turbine.rotor_radius)) + file.write('{:<11d} ! WE_CP_n - Amount of parameters in the Cp array\n'.format(1)) + file.write( '{} ! WE_CP - Parameters that define the parameterized CP(lambda) function\n'.format(''.join('{:<2.1f} '.format(0.0) for i in range(4)))) + file.write('{:<13.1f} ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad]\n'.format(0.0)) + file.write('{:<13.1f} ! WE_GearboxRatio - Gearbox ratio [>=1], [-]\n'.format(turbine.Ng)) + file.write('{:<014.5f} ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2]\n'.format(turbine.J)) + file.write('{:<13.3f} ! WE_RhoAir - Air density, [kg m^-3]\n'.format(turbine.rho)) + file.write( '"{}" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq)\n'.format(txt_filename)) + file.write('{:<7d} {:<10d} ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios\n'.format(len(turbine.Cp.pitch_initial_rad),len(turbine.Cp.TSR_initial))) + file.write('{:<11d} ! WE_FOPoles_N - Number of first-order system poles used in EKF\n'.format(len(controller.A))) + file.write('{} ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s]\n'.format(''.join('{:<4.2f} '.format(controller.v[i]) for i in range(len(controller.v))))) + file.write('{} ! WE_FOPoles - First order system poles\n'.format(''.join('{:<10.8f} '.format(controller.A[i]) for i in range(len(controller.A))))) + file.write('\n') + file.write('!------- YAW CONTROL ------------------------------------------------------\n') + file.write('{:<13.1f} ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s]\n'.format(0.0)) + file.write('{:<13.1f} ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad]\n'.format(0.0)) + file.write('{:<11d} ! Y_IPC_n - Number of controller gains (yaw-by-IPC)\n'.format(1)) + file.write('{:<13.1f} ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp\n'.format(0.0)) + file.write('{:<13.1f} ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki\n'.format(0.0)) + file.write('{:<13.1f} ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s].\n'.format(0.0)) + file.write('{:<13.1f} ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-].\n'.format(0.0)) + file.write('{:<13.1f} ! Y_MErrSet - Yaw alignment error, set point [rad]\n'.format(0.0)) + file.write('{:<13.1f} ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz]\n'.format(0.0)) + file.write('{:<13.1f} ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz]\n'.format(0.0)) + file.write('{:<13.1f} ! Y_Rate - Yaw rate [rad/s]\n'.format(0.0)) + file.write('\n') + file.write('!------- TOWER FORE-AFT DAMPING -------------------------------------------\n') + file.write('{:<11d} ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag\n'.format(-1)) + file.write('{:<13.1f} ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s]\n'.format(0.0)) + file.write('{:<13.1f} ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad]\n'.format(0.0)) + file.write('\n') + file.write('!------- MINIMUM PITCH SATURATION -------------------------------------------\n') + file.write('{:<11d} ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin)\n'.format(len(controller.ps_min_bld_pitch))) + file.write('{} ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s]\n'.format(''.join('{:<4.2f} '.format(controller.v[i]) for i in range(len(controller.v))))) + file.write('{} ! PS_BldPitchMin - Minimum blade pitch angles [rad]\n'.format(''.join('{:<10.8f} '.format(controller.ps_min_bld_pitch[i]) for i in range(len(controller.ps_min_bld_pitch))))) + file.write('\n') + file.write('!------- SHUTDOWN -----------------------------------------------------------\n') + file.write('{:<014.5f} ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad]\n'.format(controller.sd_maxpit)) + file.write('{:<014.5f} ! SD_CornerFreq - Cutoff Frequency for first order low-pass filter for blade pitch angle, [rad/s]\n'.format(controller.sd_cornerfreq)) + file.write('\n') + file.write('!------- Floating -----------------------------------------------------------\n') + file.write('{:<014.5f} ! Fl_Kp - Nacelle velocity proportional feedback gain [s]\n'.format(controller.Kp_float)) + file.write('\n') + file.write('!------- FLAP ACTUATION -----------------------------------------------------\n') + file.write('{:<014.5f} ! Flp_Angle - Initial or steady state flap angle [rad]\n'.format(controller.flp_angle)) + file.write('{:<014.8e} ! Flp_Kp - Blade root bending moment proportional gain for flap control [s]\n'.format(controller.Kp_flap[-1])) + file.write('{:<014.8e} ! Flp_Ki - Flap displacement integral gain for flap control [s]\n'.format(controller.Ki_flap[-1])) + file.write('{:<014.5f} ! Flp_MaxPit - Maximum (and minimum) flap pitch angle [rad]'.format(controller.flp_maxpit)) + file.close() + +def read_DISCON(DISCON_filename): ''' + Read the DISCON input file. - def __init__(self): - pass + Parameters: + ---------- + DISCON_filename: string + Name of DISCON input file to read - def plot_fast_out(self, cases, fast_dict, showplot=False, fignum=None, xlim=None): - ''' - Plots OpenFAST outputs for desired channels - - Parameters: - ----------- - cases : dict - Dictionary of lists containing desired outputs - fast_dict : dict - Dictionary of OpenFAST output information, output from load_fast_out - showplot: bool, optional - Show the plot - fignum: int, optional - Define figure number. Note: Should only be used when plotting a singular case. - - Returns: - -------- - figlist: list - list of figure handles - axeslist: list - list of axes handles - ''' - figlist = [] - axeslist = [] - # Plot cases - for case in cases.keys(): - # channels to plot - channels = cases[case] - # instantiate plot and legend - fig, axes = plt.subplots(len(channels), 1, sharex=True, num=fignum, constrained_layout=True) - myleg = [] - for fast_out in fast_dict: # Multiple channels - # write legend - Time = fast_out['Time'] - myleg.append(fast_out['meta']['name']) - if len(channels) > 1: # Multiple channels - for axj, channel in zip(axes, channels): - try: - # plot - axj.plot(Time, fast_out[channel]) - # label - unit_idx = fast_out['meta']['channels'].index(channel) - axj.set_ylabel('{:^} \n ({:^})'.format( - channel, - fast_out['meta']['attribute_units'][unit_idx])) - axj.grid(True) - except: - print('{} is not available as an output channel.'.format(channel)) - axes[0].set_title(case) - - else: # Single channel - try: - # plot - axes.plot(Time, fast_out[channel]) - # label - axes.set_ylabel('{:^} \n ({:^})'.format( - channel, - fast_out['meta']['attribute_units'][unit_idx])) - axes.grid(True) - axes.set_title(case) - except: - print('{} is not available as an output channel.'.format(channel)) - plt.legend(myleg, loc='upper center', bbox_to_anchor=( - 0.5, 0.0), borderaxespad=2, ncol=len(fast_dict)) - - figlist.append(fig) - axeslist.append(axes) - - if xlim: - plt.xlim(xlim) - - if showplot: - plt.show() - - return figlist, axeslist - - def plot_spectral(self, fast_dict, cases, - averaging='None', averaging_window='Hann', detrend=False, nExp=None, - show_RtSpeed=False, RtSpeed_idx=None, - add_freqs=None, add_freq_labels=None, - showplot=False, fignum=None): - ''' - Plots OpenFAST outputs for desired channels - - Parameters: - ----------- - fast_dict : dict - Dictionary of OpenFAST output information, output from load_fast_out - cases : list of tuples (str, int) - Dictionary of lists containing desired outputs. - Of the format (channel, case), i.e. [('RotSpeed', 0)] - averaging: str, optional - PSD averaging method. None, Welch - averaging_window: str, optional - PSD averaging window method. Hamming, Hann, Rectangular - detrend: bool, optional - Detrend data? - nExp: float, optional - Exponent for hamming windowing - show_RtSpeed: Bool, optional - Plot 1p and 3p rotor speeds for simulation cases plotted - RtSpeed_idx: ind, optional - Specify the index for the simulation case that the rotor speed is plotted from. - add_freqs: list, optional - List of floats containing additional frequencies to plot lines of - add_freq_labels: list, optional - List of strings to label add_freqs - showplot: bool, optional - Show the plot - fignum: int, optional - Define figure number. Note: Should only be used when plotting a singular case. - - Returns: - ------- - fig, ax - corresponds to generated figure - ''' - if averaging.lower() not in ['none', 'welch']: - raise ValueError('{} is not a supported averaging method.'.format(averaging)) - - if averaging_window.lower() not in ['hamming', 'hann', 'rectangular']: - raise ValueError('{} is not a supported averaging window.'.format(averaging_window)) - - fig, ax = plt.subplots(num=fignum) - - leg = [] - for channel, run in cases: - try: - # Find time - Time = fast_dict[run]['Time'] - # Load PSD - fq, y, info = spectral.fft_wrap( - Time, fast_dict[run][channel], averaging=averaging, averaging_window=averaging_window, detrend=detrend, nExp=nExp) - # Plot data - plt.loglog(fq, y, label='{}, run: {}'.format(channel, str(run))) - except: - print('{} is not an available channel in run {}'.format(channel, str(run))) - # Show rotor speed range (1P, 3P, 6P?) - if show_RtSpeed: - if not RtSpeed_idx: - RtSpeed_idx = [0] - print('No rotor speed run indices defined, plotting spectral range for the first run only.') - for rt_idx in RtSpeed_idx: - f_1P_min = min(fast_dict[rt_idx]['RotSpeed']) / 60. # Hz - f_1P_max = max(fast_dict[rt_idx]['RotSpeed']) / 60. - f_3P_min = f_1P_min*3 - f_3P_max = f_1P_max*3 - f_6P_min = f_1P_min*6 - f_6P_max = f_1P_max*6 - plt.axvspan(f_1P_min, f_1P_max, alpha=0.5, color=[0.7, 0.7, 0.7], label='1P') - plt.axvspan(f_3P_min, f_3P_max, alpha=0.5, color=[0.8, 0.8, 0.8], label='3P') - # if f_6P_min<1.: - # plt.axvspan(f_6P_min, f_6P_max, alpha=0.5, color=[0.9,0.9,0.9], label='6P') - - # Add specific frequencies if desired - if add_freqs: - co = np.linspace(0.3, 0.0, len(add_freqs)) - if add_freq_labels is None: - add_freq_labels = [None]*len(add_freqs) - for freq, flabel, c in zip(add_freqs, add_freq_labels, co): - plt.axvline(freq, color=[c, c, c]) # , label=flabel) - trans = transforms.blended_transform_factory(ax.transData, ax.transAxes) - plt.text(freq+(10**np.floor(np.log10(freq))/10), 0.01, flabel, transform=trans) - - # Formatting - plt.legend(loc='best') - if len(list(cases)) > 1: - plt.ylabel('PSD') - else: - unit_idx = fast_dict[run]['meta']['channels'].index(channel) - plt.ylabel( - 'PSD ({}$^2$/Hz)'.format(fast_dict[run]['meta']['attribute_units'][unit_idx])) - plt.xlabel('Frequency (Hz)') - plt.grid(True) - - if showplot: - plt.show() - - return fig, ax - -class FAST_IO(): - ''' - A collection of utilities that may be useful for using the tools made accessbile in this toolbox with OpenFAST - - A number of the file processing tools used here were provided by or modified from Emanual Branlard's weio library: https://github.com/ebranlard/weio. - - Methods: + Returns: -------- - run_openfast - load_fast_out - load_ascii_output - load_binary_output - trim_output - + DISCON_in: Dict + Dictionary containing input parameters from DISCON_in, organized by parameter name ''' - def __init__(self): - pass - - def run_openfast(self,fast_dir,fastcall='OpenFAST',fastfile=None,chdir=False): - ''' - Runs a openfast openfast simulation. - - ** Note ** - If running ROSCO, this function must be called from the same folder containing DISCON.IN, - or the chdir flag must be turned on. This is an artifact of OpenFAST looking for DISCON.IN - in the folder that it is called from. - - Parameters: - ------------ - fast_dir: string - Name of OpenFAST directory containing input files. - fast_file: string - Name of OpenFAST directory containing input files. - fastcall: string, optional - Line used to call openfast when executing from the terminal. - fastfile: string, optional - Filename for *.fst input file. Function will find *.fst if not provided. - chdir: bool, optional - Change directory to openfast model directory before running. - ''' - - # Define OpenFAST input filename - if not fastfile: - for file in os.listdir(fast_dir): - if file.endswith('.fst'): - fastfile = file - print('Using {} to run OpenFAST simulation'.format(fastfile)) - - if chdir: # Change cwd before calling OpenFAST -- note: This is an artifact of needing to call OpenFAST from the same directory as DISCON.IN - # save starting file path - original_path = os.getcwd() - # change path, run OpenFAST - os.chdir(fast_dir) - print('Running OpenFAST simulation for {} through the ROSCO toolbox...'.format(fastfile)) - os.system('{} {}'.format(fastcall, os.path.join(fastfile))) - print('OpenFAST simulation complete. ') - # return to original path - os.chdir(original_path) - else: - # Run OpenFAST - print('Running OpenFAST simulation for {} through the ROSCO toolbox...'.format(fastfile)) - os.system('{} {}'.format(fastcall, os.path.join(fast_dir,fastfile))) - print('OpenFAST simulation complete. ') - - - def load_fast_out(self, filenames, tmin=None, tmax=None, verbose=False): - """Load a FAST binary or ascii output file - - Parameters - ---------- - filenames : list - list of filenames - tmin : float, optional - initial time to trim output data to - tmax : float, optional - final data to trim output data to - verbose : bool, optional - Print updates - - Returns - ------- - fastout: list - List of dictionaries containing OpenFAST output data. - """ - if type(filenames) is str: - filenames = [filenames] - - # data = [] - # info = [] - fastout = [] - for i, filename in enumerate(filenames): - assert os.path.isfile(filename), "File, %s, does not exists" % filename - with open(filename, 'r') as f: - if verbose: - print('Loading data from {}'.format(filename)) - try: - f.readline() - except UnicodeDecodeError: - data, info = self.load_binary_output(filename) - else: - data, info = self.load_ascii_output(filename) - - # Build dictionary - fast_data = dict(zip(info['channels'],data.T)) - fast_data['meta'] = info - fast_data['meta']['filename'] = filename - fastout.append(fast_data) - - # Trim outputs - if (tmin) or (tmax): - self.trim_output(fastout, tmin=tmin, tmax=tmax, verbose=verbose) - - # return fastout - return fastout - - - def load_ascii_output(self, filename): - ''' - Load FAST ascii output file - - Parameters - ---------- - filename : str - filename - - Returns - ------- - data : ndarray - data values - info : dict - info containing: - - name: filename - - description: description of dataset - - channels: list of attribute names - - attribute_units: list of attribute units - ''' - with open(filename) as f: - info = {} - info['name'] = os.path.splitext(os.path.basename(filename))[0] - # Header is whatever is before the keyword `time` - in_header = True - header = [] - while in_header: - l = f.readline() - if not l: - raise Exception('Error finding the end of FAST out file header. Keyword Time missing.') - in_header= (l+' dummy').lower().split()[0] != 'time' - if in_header: - header.append(l) - else: - info['description'] = header - info['channels'] = l.split() - info['attribute_units'] = [unit[1:-1] for unit in f.readline().split()] - - # Data, up to end of file or empty line (potential comment line at the end) - data = np.array([l.strip().split() for l in takewhile(lambda x: len(x.strip())>0, f.readlines())]).astype(np.float) - return data, info - + + DISCON_in = {} + with open(DISCON_filename) as discon: + for line in discon: - def load_binary_output(self, filename, use_buffer=True): - """ + # Skip whitespace and comment lines + if (line[0] != '!') == (len(line.strip()) != 0): - Info about ReadFASTbinary.m: - - Original Author: Bonnie Jonkman, National Renewable Energy Laboratory - (c) 2012, National Renewable Energy Laboratory - Edited for FAST v7.02.00b-bjj 22-Oct-2012 - 03/09/15: Ported from ReadFASTbinary.m by Mads M Pedersen, DTU Wind - 10/24/18: Low memory/buffered version by E. Branlard, NREL - 18/01/19: New file format for exctended channels, by E. Branlard, NREL - 11/4/19: Implemented in ROSCO toolbox by N. Abbas, NREL - 8/6/20: Synced between rosco toolbox and weio by P Bortolotti, NREL - - Parameters - ---------- - filename : str - filename - Returns - ------- - data : ndarray - data values - info : dict - info containing: - - name: filename - - description: description of dataset - - channels: list of attribute names - - attribute_units: list of attribute units - """ - def fread(fid, n, type): - fmt, nbytes = {'uint8': ('B', 1), 'int16':('h', 2), 'int32':('i', 4), 'float32':('f', 4), 'float64':('d', 8)}[type] - return struct.unpack(fmt * n, fid.read(nbytes * n)) - - def freadRowOrderTableBuffered(fid, n, type_in, nCols, nOff=0, type_out='float64'): - """ - Reads of row-ordered table from a binary file. - Read `n` data of type `type_in`, assumed to be a row ordered table of `nCols` columns. - Memory usage is optimized by allocating the data only once. - Buffered reading is done for improved performances (in particular for 32bit python) - `nOff` allows for additional column space at the begining of the storage table. - Typically, `nOff=1`, provides a column at the beginning to store the time vector. - @author E.Branlard, NREL - """ - fmt, nbytes = {'uint8': ('B', 1), 'int16':('h', 2), 'int32':('i', 4), 'float32':('f', 4), 'float64':('d', 8)}[type_in] - nLines = int(n/nCols) - GoodBufferSize = 4096*40 - nLinesPerBuffer = int(GoodBufferSize/nCols) - BufferSize = nCols * nLinesPerBuffer - nBuffer = int(n/BufferSize) - # Allocation of data - data = np.zeros((nLines,nCols+nOff), dtype = type_out) - # Reading - try: - nIntRead = 0 - nLinesRead = 0 - while nIntRead len(fd['Time']): - raise ValueError('The initial time to trim {} to is after the end of the simulation.'.format(fd['meta']['name'])) - - # # Modify time - fd['Time'] = fd['Time'][T0ind:Tfind] - fd['Time'][T0ind] - - # Remove all vales in data where time is not in desired range - for key in fd.keys(): - if key.lower() not in ['time', 'meta']: - fd[key] = fd[key][T0ind:Tfind] - - - return fast_data - - -class FileProcessing(): - """ - Class FileProcessing used to write out controller - parameter files need to run ROSCO - - Methods: - ----------- - write_DISCON - read_DISCON - write_rotor_performance - load_from_txt - """ - - def __init__(self): - pass + if (line.split()[1] != '!'): # Array valued entries + array_length = line.split().index('!') + param = line.split()[array_length+1] + values = np.array( [float(x) for x in line.split()[:array_length]] ) + DISCON_in[param] = values + else: # All other entries + param = line.split()[2] + value = line.split()[0] + # Remove printed quotations if string is in quotes + if (value[0] == '"') or (value[0] == "'"): + value = value[1:-1] + else: + value = float(value) + # Some checks for variables that are generally passed as lists + if param.lower() == 'vs_kp': + value = [value] + if param.lower() == 'vs_ki': + value = [value] + if param.lower() == 'flp_kp': + value = [value] + if param.lower() == 'flp_ki': + value = [value] + DISCON_in[param] = value + + return DISCON_in + - def write_DISCON(self, turbine, controller, param_file='DISCON.IN', txt_filename='Cp_Ct_Cq.txt'): - """ - Print the controller parameters to the DISCON.IN input file for the generic controller +def write_rotor_performance(turbine,txt_filename='Cp_Ct_Cq.txt'): + ''' + Write text file containing rotor performance data - Parameters: - ----------- - turbine: class - Turbine class containing turbine operation information (ref speeds, etc...) - controller: class - Controller class containing controller operation information (gains, etc...) - param_file: str, optional - filename for parameter input file, should be DISCON.IN + Parameters: + ------------ txt_filename: str, optional - filename of rotor performance file - """ - print('Writing new controller parameter file parameter file: %s.' % param_file) - # Should be obvious what's going on here... - file = open(param_file,'w') - file.write('! Controller parameter input file for the %s wind turbine\n' % turbine.TurbineName) - file.write('! - File written using ROSCO Controller tuning logic on %s\n' % now.strftime('%m/%d/%y')) - file.write('\n') - file.write('!------- DEBUG ------------------------------------------------------------\n') - file.write('{0:<12d} ! LoggingLevel - {{0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file}}\n'.format(int(controller.LoggingLevel))) - file.write('\n') - file.write('!------- CONTROLLER FLAGS -------------------------------------------------\n') - file.write('{0:<12d} ! F_LPFType - {{1: first-order low-pass filter, 2: second-order low-pass filter}}, [rad/s] (currently filters generator speed and pitch control signals\n'.format(int(controller.F_LPFType))) - file.write('{0:<12d} ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {{0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion}}\n'.format(int(controller.F_NotchType))) - file.write('{0:<12d} ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {{0: off, 1: 1P reductions, 2: 1P+2P reductions}}\n'.format(int(controller.IPC_ControlMode))) - file.write('{0:<12d} ! VS_ControlMode - Generator torque control mode in above rated conditions {{0: constant torque, 1: constant power, 2: TSR tracking PI control}}\n'.format(int(controller.VS_ControlMode))) - file.write('{0:<12d} ! PC_ControlMode - Blade pitch control mode {{0: No pitch, fix to fine pitch, 1: active PI blade pitch control}}\n'.format(int(controller.PC_ControlMode))) - file.write('{0:<12d} ! Y_ControlMode - Yaw control mode {{0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC}}\n'.format(int(controller.Y_ControlMode))) - file.write('{0:<12d} ! SS_Mode - Setpoint Smoother mode {{0: no setpoint smoothing, 1: introduce setpoint smoothing}}\n'.format(int(controller.SS_Mode))) - file.write('{0:<12d} ! WE_Mode - Wind speed estimator mode {{0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator, 2: Extended Kalman Filter}}\n'.format(int(controller.WE_Mode))) - file.write('{0:<12d} ! PS_Mode - Pitch saturation mode {{0: no pitch saturation, 1: implement pitch saturation}}\n'.format(int(controller.PS_Mode > 0))) - file.write('{0:<12d} ! SD_Mode - Shutdown mode {{0: no shutdown procedure, 1: pitch to max pitch at shutdown}}\n'.format(int(controller.SD_Mode))) - file.write('{0:<12d} ! Fl_Mode - Floating specific feedback mode {{0: no nacelle velocity feedback, 1: nacelle velocity feedback}}\n'.format(int(controller.Fl_Mode))) - file.write('{0:<12d} ! Flp_Mode - Flap control mode {{0: no flap control, 1: steady state flap angle, 2: Proportional flap control}}\n'.format(int(controller.Flp_Mode))) - file.write('\n') - file.write('!------- FILTERS ----------------------------------------------------------\n') - file.write('{:<13.5f} ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s]\n'.format(turbine.bld_edgewise_freq * 1/4)) - file.write('{:<13.5f} ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2]\n'.format(controller.F_LPFDamping)) - file.write('{:<13.5f} ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s]\n'.format(turbine.twr_freq)) - file.write('{:<10.5f}{:<9.5f} ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-]\n'.format(0.0,0.25)) - file.write('{:<014.5f} ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [rad/s].\n'.format(controller.ss_cornerfreq)) - file.write('{:<10.5f}{:<9.5f} ! F_FlCornerFreq - Natural frequency and damping in the second order low pass filter of the tower-top fore-aft motion for floating feedback control [rad/s, -].\n'.format(turbine.ptfm_freq, 1.0)) - file.write('{:<10.5f}{:<9.5f} ! F_FlpCornerFreq - Corner frequency and damping in the second order low pass filter of the blade root bending moment for flap control [rad/s, -].\n'.format(turbine.bld_flapwise_freq*1/3, 1.0)) - - file.write('\n') - file.write('!------- BLADE PITCH CONTROL ----------------------------------------------\n') - file.write('{:<11d} ! PC_GS_n - Amount of gain-scheduling table entries\n'.format(len(controller.pitch_op_pc))) - file.write('{} ! PC_GS_angles - Gain-schedule table: pitch angles\n'.format(''.join('{:<4.6f} '.format(controller.pitch_op_pc[i]) for i in range(len(controller.pitch_op_pc))))) - file.write('{} ! PC_GS_KP - Gain-schedule table: pitch controller kp gains\n'.format(''.join('{:<4.6f} '.format(controller.pc_gain_schedule.Kp[i]) for i in range(len(controller.pc_gain_schedule.Kp))))) - file.write('{} ! PC_GS_KI - Gain-schedule table: pitch controller ki gains\n'.format(''.join('{:<4.6f} '.format(controller.pc_gain_schedule.Ki[i]) for i in range(len(controller.pc_gain_schedule.Ki))))) - file.write('{} ! PC_GS_KD - Gain-schedule table: pitch controller kd gains\n'.format(''.join('{:<1.1f} '.format(0.0) for i in range(len(controller.pc_gain_schedule.Ki))))) - file.write('{} ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter)\n'.format(''.join('{:<1.1f} '.format(0.0) for i in range(len(controller.pc_gain_schedule.Ki))))) - file.write('{:<014.5f} ! PC_MaxPit - Maximum physical pitch limit, [rad].\n'.format(controller.max_pitch)) - file.write('{:<014.5f} ! PC_MinPit - Minimum physical pitch limit, [rad].\n'.format(controller.min_pitch)) - file.write('{:<014.5f} ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s].\n'.format(turbine.max_pitch_rate)) - file.write('{:<014.5f} ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s].\n'.format(turbine.min_pitch_rate)) - file.write('{:<014.5f} ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s].\n'.format(turbine.rated_rotor_speed*turbine.Ng)) - file.write('{:<014.5f} ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad]\n'.format(controller.min_pitch)) - file.write('{:<014.5f} ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad]\n'.format(1 * deg2rad)) - file.write('\n') - file.write('!------- INDIVIDUAL PITCH CONTROL -----------------------------------------\n') - file.write('{:<13.1f} ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad]\n'.format(0.087266)) # Hardcode to 5 degrees - file.write('{:<13.1e} {:<6.1f}! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-]\n'.format(controller.Ki_ipc1p,0.0)) - file.write('{:<13.1e} {:<6.1f}! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. \n'.format(0.0,0.0)) - file.write('{:<13.1f} ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {{0: Disable}}, [rad/s]\n'.format(0.0)) - file.write('\n') - file.write('!------- VS TORQUE CONTROL ------------------------------------------------\n') - file.write('{:<014.5f} ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%]\n'.format(turbine.GenEff)) - file.write('{:<014.5f} ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm]\n'.format(turbine.rated_torque)) - file.write('{:<014.5f} ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s].\n'.format(turbine.max_torque_rate)) - file.write('{:<014.5f} ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm].\n'.format(turbine.max_torque)) - file.write('{:<014.5f} ! VS_MinTq - Minimum generator (HSS side), [Nm].\n'.format(0.0)) - file.write('{:<014.5f} ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s]\n'.format(controller.vs_minspd)) - file.write('{:<014.5f} ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2]\n'.format(controller.vs_rgn2K)) - file.write('{:<014.5f} ! VS_RtPwr - Wind turbine rated power [W]\n'.format(turbine.rated_power)) - file.write('{:<014.5f} ! VS_RtTq - Rated torque, [Nm].\n'.format(turbine.rated_torque)) - file.write('{:<014.5f} ! VS_RefSpd - Rated generator speed [rad/s]\n'.format(controller.vs_refspd)) - file.write('{:<11d} ! VS_n - Number of generator PI torque controller gains\n'.format(1)) - file.write('{:<014.5f} ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n'.format(controller.vs_gain_schedule.Kp[-1])) - file.write('{:<014.5f} ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n'.format(controller.vs_gain_schedule.Ki[-1])) - file.write('{:<13.2f} ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad].\n'.format(turbine.TSR_operational)) - file.write('\n') - file.write('!------- SETPOINT SMOOTHER ---------------------------------------------\n') - file.write('{:<13.5f} ! SS_VSGain - Variable speed torque controller setpoint smoother gain, [-].\n'.format(controller.ss_vsgain)) - file.write('{:<13.5f} ! SS_PCGain - Collective pitch controller setpoint smoother gain, [-].\n'.format(controller.ss_pcgain)) - file.write('\n') - file.write('!------- WIND SPEED ESTIMATOR ---------------------------------------------\n') - file.write('{:<13.3f} ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m]\n'.format(turbine.rotor_radius)) - file.write('{:<11d} ! WE_CP_n - Amount of parameters in the Cp array\n'.format(1)) - file.write( '{} ! WE_CP - Parameters that define the parameterized CP(lambda) function\n'.format(''.join('{:<2.1f} '.format(0.0) for i in range(4)))) - file.write('{:<13.1f} ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad]\n'.format(0.0)) - file.write('{:<13.1f} ! WE_GearboxRatio - Gearbox ratio [>=1], [-]\n'.format(turbine.Ng)) - file.write('{:<014.5f} ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2]\n'.format(turbine.J)) - file.write('{:<13.3f} ! WE_RhoAir - Air density, [kg m^-3]\n'.format(turbine.rho)) - file.write( '"{}" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq)\n'.format(txt_filename)) - file.write('{:<7d} {:<10d} ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios\n'.format(len(turbine.Cp.pitch_initial_rad),len(turbine.Cp.TSR_initial))) - file.write('{:<11d} ! WE_FOPoles_N - Number of first-order system poles used in EKF\n'.format(len(controller.A))) - file.write('{} ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s]\n'.format(''.join('{:<4.2f} '.format(controller.v[i]) for i in range(len(controller.v))))) - file.write('{} ! WE_FOPoles - First order system poles\n'.format(''.join('{:<10.8f} '.format(controller.A[i]) for i in range(len(controller.A))))) - file.write('\n') - file.write('!------- YAW CONTROL ------------------------------------------------------\n') - file.write('{:<13.1f} ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s]\n'.format(0.0)) - file.write('{:<13.1f} ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad]\n'.format(0.0)) - file.write('{:<11d} ! Y_IPC_n - Number of controller gains (yaw-by-IPC)\n'.format(1)) - file.write('{:<13.1f} ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp\n'.format(0.0)) - file.write('{:<13.1f} ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki\n'.format(0.0)) - file.write('{:<13.1f} ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s].\n'.format(0.0)) - file.write('{:<13.1f} ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-].\n'.format(0.0)) - file.write('{:<13.1f} ! Y_MErrSet - Yaw alignment error, set point [rad]\n'.format(0.0)) - file.write('{:<13.1f} ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz]\n'.format(0.0)) - file.write('{:<13.1f} ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz]\n'.format(0.0)) - file.write('{:<13.1f} ! Y_Rate - Yaw rate [rad/s]\n'.format(0.0)) - file.write('\n') - file.write('!------- TOWER FORE-AFT DAMPING -------------------------------------------\n') - file.write('{:<11d} ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag\n'.format(-1)) - file.write('{:<13.1f} ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s]\n'.format(0.0)) - file.write('{:<13.1f} ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad]\n'.format(0.0)) - file.write('\n') - file.write('!------- MINIMUM PITCH SATURATION -------------------------------------------\n') - file.write('{:<11d} ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin)\n'.format(len(controller.ps_min_bld_pitch))) - file.write('{} ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s]\n'.format(''.join('{:<4.2f} '.format(controller.v[i]) for i in range(len(controller.v))))) - file.write('{} ! PS_BldPitchMin - Minimum blade pitch angles [rad]\n'.format(''.join('{:<10.8f} '.format(controller.ps_min_bld_pitch[i]) for i in range(len(controller.ps_min_bld_pitch))))) - file.write('\n') - file.write('!------- SHUTDOWN -----------------------------------------------------------\n') - file.write('{:<014.5f} ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad]\n'.format(controller.sd_maxpit)) - file.write('{:<014.5f} ! SD_CornerFreq - Cutoff Frequency for first order low-pass filter for blade pitch angle, [rad/s]\n'.format(controller.sd_cornerfreq)) - file.write('\n') - file.write('!------- Floating -----------------------------------------------------------\n') - file.write('{:<014.5f} ! Fl_Kp - Nacelle velocity proportional feedback gain [s]\n'.format(controller.Kp_float)) - file.write('\n') - file.write('!------- FLAP ACTUATION -----------------------------------------------------\n') - file.write('{:<014.5f} ! Flp_Angle - Initial or steady state flap angle [rad]\n'.format(controller.flp_angle)) - file.write('{:<014.8e} ! Flp_Kp - Blade root bending moment proportional gain for flap control [s]\n'.format(controller.Kp_flap[-1])) - file.write('{:<014.8e} ! Flp_Ki - Flap displacement integral gain for flap control [s]\n'.format(controller.Ki_flap[-1])) - file.write('{:<014.5f} ! Flp_MaxPit - Maximum (and minimum) flap pitch angle [rad]'.format(controller.flp_maxpit)) - file.close() - - def read_DISCON(self, DISCON_filename): - ''' - Read the DISCON input file. - - Parameters: - ---------- - DISCON_filename: string - Name of DISCON input file to read - - Returns: - -------- - DISCON_in: Dict - Dictionary containing input parameters from DISCON_in, organized by parameter name - ''' - - DISCON_in = {} - with open(DISCON_filename) as discon: - for line in discon: - - # Skip whitespace and comment lines - if (line[0] != '!') == (len(line.strip()) != 0): - - if (line.split()[1] != '!'): # Array valued entries - array_length = line.split().index('!') - param = line.split()[array_length+1] - values = np.array( [float(x) for x in line.split()[:array_length]] ) - DISCON_in[param] = values - else: # All other entries - param = line.split()[2] - value = line.split()[0] - # Remove printed quotations if string is in quotes - if (value[0] == '"') or (value[0] == "'"): - value = value[1:-1] - else: - value = float(value) - # Some checks for variables that are generally passed as lists - if param.lower() == 'vs_kp': - value = [value] - if param.lower() == 'vs_ki': - value = [value] - if param.lower() == 'flp_kp': - value = [value] - if param.lower() == 'flp_ki': - value = [value] - DISCON_in[param] = value - - return DISCON_in + Desired output filename to print rotor performance data. Default is Cp_Ct_Cq.txt + ''' + print('Writing rotor performance text file: {}'.format(txt_filename)) + file = open(txt_filename,'w') + # Headerlines + file.write('# ----- Rotor performance tables for the {} wind turbine ----- \n'.format(turbine.TurbineName)) + file.write('# ------------ Written on {} using the ROSCO toolbox ------------ \n\n'.format(now.strftime('%b-%d-%y'))) + + # Pitch angles, TSR, and wind speed + file.write('# Pitch angle vector, {} entries - x axis (matrix columns) (deg)\n'.format(len(turbine.Cp.pitch_initial_rad))) + for i in range(len(turbine.Cp.pitch_initial_rad)): + file.write('{:0.4} '.format(turbine.Cp.pitch_initial_rad[i] * rad2deg)) + file.write('\n# TSR vector, {} entries - y axis (matrix rows) (-)\n'.format(len(turbine.TSR_initial))) + for i in range(len(turbine.TSR_initial)): + file.write('{:0.4} '.format(turbine.Cp.TSR_initial[i])) + file.write('\n# Wind speed vector - z axis (m/s)\n') + file.write('{:0.4} '.format(turbine.v_rated)) + file.write('\n') - def write_rotor_performance(self,turbine,txt_filename='Cp_Ct_Cq.txt'): - ''' - Write text file containing rotor performance data - - Parameters: - ------------ - txt_filename: str, optional - Desired output filename to print rotor performance data. Default is Cp_Ct_Cq.txt - ''' - print('Writing rotor performance text file: {}'.format(txt_filename)) - file = open(txt_filename,'w') - # Headerlines - file.write('# ----- Rotor performance tables for the {} wind turbine ----- \n'.format(turbine.TurbineName)) - file.write('# ------------ Written on {} using the ROSCO toolbox ------------ \n\n'.format(now.strftime('%b-%d-%y'))) - - # Pitch angles, TSR, and wind speed - file.write('# Pitch angle vector, {} entries - x axis (matrix columns) (deg)\n'.format(len(turbine.Cp.pitch_initial_rad))) - for i in range(len(turbine.Cp.pitch_initial_rad)): - file.write('{:0.4} '.format(turbine.Cp.pitch_initial_rad[i] * rad2deg)) - file.write('\n# TSR vector, {} entries - y axis (matrix rows) (-)\n'.format(len(turbine.TSR_initial))) - for i in range(len(turbine.TSR_initial)): - file.write('{:0.4} '.format(turbine.Cp.TSR_initial[i])) - file.write('\n# Wind speed vector - z axis (m/s)\n') - file.write('{:0.4} '.format(turbine.v_rated)) - file.write('\n') - - # Cp - file.write('\n# Power coefficient\n\n') - for i in range(len(turbine.Cp.TSR_initial)): - for j in range(len(turbine.Cp.pitch_initial_rad)): - file.write('{0:.6f} '.format(turbine.Cp_table[i,j])) - file.write('\n') + # Cp + file.write('\n# Power coefficient\n\n') + for i in range(len(turbine.Cp.TSR_initial)): + for j in range(len(turbine.Cp.pitch_initial_rad)): + file.write('{0:.6f} '.format(turbine.Cp_table[i,j])) file.write('\n') - - # Ct - file.write('\n# Thrust coefficient\n\n') - for i in range(len(turbine.Ct.TSR_initial)): - for j in range(len(turbine.Ct.pitch_initial_rad)): - file.write('{0:.6f} '.format(turbine.Ct_table[i,j])) - file.write('\n') + file.write('\n') + + # Ct + file.write('\n# Thrust coefficient\n\n') + for i in range(len(turbine.Ct.TSR_initial)): + for j in range(len(turbine.Ct.pitch_initial_rad)): + file.write('{0:.6f} '.format(turbine.Ct_table[i,j])) file.write('\n') - - # Cq - file.write('\n# Torque coefficient\n\n') - for i in range(len(turbine.Cq.TSR_initial)): - for j in range(len(turbine.Cq.pitch_initial_rad)): - file.write('{0:.6f} '.format(turbine.Cq_table[i,j])) - file.write('\n') + file.write('\n') + + # Cq + file.write('\n# Torque coefficient\n\n') + for i in range(len(turbine.Cq.TSR_initial)): + for j in range(len(turbine.Cq.pitch_initial_rad)): + file.write('{0:.6f} '.format(turbine.Cq_table[i,j])) file.write('\n') - file.close() + file.write('\n') + file.close() - def load_from_txt(self, txt_filename): - ''' - Load rotor performance data from a *.txt file. - Parameters: - ----------- - txt_filename: str - Filename of the text containing the Cp, Ct, and Cq data. This should be in the format printed by the write_rotorperformance function - ''' - print('Loading rotor performace data from text file:', txt_filename) - - with open(txt_filename) as pfile: - for line in pfile: - # Read Blade Pitch Angles (degrees) - if 'Pitch angle' in line: - pitch_initial = np.array([float(x) for x in pfile.readline().strip().split()]) - pitch_initial_rad = pitch_initial * deg2rad # degrees to rad -- should this be conditional? - - # Read Tip Speed Ratios (rad) - if 'TSR' in line: - TSR_initial = np.array([float(x) for x in pfile.readline().strip().split()]) - - # Read Power Coefficients - if 'Power' in line: - pfile.readline() - Cp = np.empty((len(TSR_initial),len(pitch_initial))) - for tsr_i in range(len(TSR_initial)): - Cp[tsr_i] = np.array([float(x) for x in pfile.readline().strip().split()]) - - # Read Thrust Coefficients - if 'Thrust' in line: - pfile.readline() - Ct = np.empty((len(TSR_initial),len(pitch_initial))) - for tsr_i in range(len(TSR_initial)): - Ct[tsr_i] = np.array([float(x) for x in pfile.readline().strip().split()]) - - # Read Torque Coefficients - if 'Torque' in line: - pfile.readline() - Cq = np.empty((len(TSR_initial),len(pitch_initial))) - for tsr_i in range(len(TSR_initial)): - Cq[tsr_i] = np.array([float(x) for x in pfile.readline().strip().split()]) - - # return pitch_initial_rad TSR_initial Cp Ct Cq - # Store necessary metrics for analysis and tuning - # self.pitch_initial_rad = pitch_initial_rad - # self.TSR_initial = TSR_initial - # self.Cp_table = Cp - # self.Ct_table = Ct - # self.Cq_table = Cq - return pitch_initial_rad, TSR_initial, Cp, Ct, Cq - -class DataProcessing(): - """ - Class DataProcessing used to process internal ROSCO toolbox data +def load_from_txt(txt_filename): + ''' + Load rotor performance data from a *.txt file. - Methods: + Parameters: ----------- - DISCON_dict - """ - def init(self): - pass - - def DISCON_dict(self, turbine, controller, txt_filename=None): - ''' - Convert the turbine and controller objects to a dictionary organized by the parameter names - that are defined in the DISCON.IN file. + txt_filename: str + Filename of the text containing the Cp, Ct, and Cq data. This should be in the format printed by the write_rotorperformance function + ''' + print('Loading rotor performace data from text file:', txt_filename) + + with open(txt_filename) as pfile: + for line in pfile: + # Read Blade Pitch Angles (degrees) + if 'Pitch angle' in line: + pitch_initial = np.array([float(x) for x in pfile.readline().strip().split()]) + pitch_initial_rad = pitch_initial * deg2rad # degrees to rad -- should this be conditional? + + # Read Tip Speed Ratios (rad) + if 'TSR' in line: + TSR_initial = np.array([float(x) for x in pfile.readline().strip().split()]) + + # Read Power Coefficients + if 'Power' in line: + pfile.readline() + Cp = np.empty((len(TSR_initial),len(pitch_initial))) + for tsr_i in range(len(TSR_initial)): + Cp[tsr_i] = np.array([float(x) for x in pfile.readline().strip().split()]) + + # Read Thrust Coefficients + if 'Thrust' in line: + pfile.readline() + Ct = np.empty((len(TSR_initial),len(pitch_initial))) + for tsr_i in range(len(TSR_initial)): + Ct[tsr_i] = np.array([float(x) for x in pfile.readline().strip().split()]) + + # Read Torque Coefficients + if 'Torque' in line: + pfile.readline() + Cq = np.empty((len(TSR_initial),len(pitch_initial))) + for tsr_i in range(len(TSR_initial)): + Cq[tsr_i] = np.array([float(x) for x in pfile.readline().strip().split()]) + + # return pitch_initial_rad TSR_initial Cp Ct Cq + # Store necessary metrics for analysis and tuning + # self.pitch_initial_rad = pitch_initial_rad + # self.TSR_initial = TSR_initial + # self.Cp_table = Cp + # self.Ct_table = Ct + # self.Cq_table = Cq + return pitch_initial_rad, TSR_initial, Cp, Ct, Cq + + +def DISCON_dict(turbine, controller, txt_filename=None): + ''' + Convert the turbine and controller objects to a dictionary organized by the parameter names + that are defined in the DISCON.IN file. + + Parameters + ---------- + turbine: obj + Turbine object output from the turbine class + controller: obj + Controller object output from the controller class + txt_filename: string, optional + Name of rotor performance filename + ''' + DISCON_dict = {} + # ------- DEBUG ------- + DISCON_dict['LoggingLevel'] = controller.LoggingLevel + # ------- CONTROLLER FLAGS ------- + DISCON_dict['F_LPFType'] = controller.F_LPFType + DISCON_dict['F_NotchType'] = controller.F_NotchType + DISCON_dict['IPC_ControlMode'] = controller.IPC_ControlMode + DISCON_dict['VS_ControlMode'] = controller.VS_ControlMode + DISCON_dict['PC_ControlMode'] = controller.PC_ControlMode + DISCON_dict['Y_ControlMode'] = controller.Y_ControlMode + DISCON_dict['SS_Mode'] = controller.SS_Mode + DISCON_dict['WE_Mode'] = controller.WE_Mode + DISCON_dict['PS_Mode'] = controller.PS_Mode + DISCON_dict['SD_Mode'] = controller.SD_Mode + DISCON_dict['Fl_Mode'] = controller.Fl_Mode + DISCON_dict['Flp_Mode'] = controller.Flp_Mode + # ------- FILTERS ------- + DISCON_dict['F_LPFCornerFreq'] = turbine.bld_edgewise_freq * 1/4 + DISCON_dict['F_LPFDamping'] = controller.F_LPFDamping + DISCON_dict['F_NotchCornerFreq'] = turbine.twr_freq + DISCON_dict['F_NotchBetaNumDen'] = [0.0, 0.25] + DISCON_dict['F_SSCornerFreq'] = controller.ss_cornerfreq + DISCON_dict['F_FlCornerFreq'] = [turbine.ptfm_freq, 1.0] + DISCON_dict['F_FlpCornerFreq'] = [turbine.bld_flapwise_freq*1/3, 1.0] + # ------- BLADE PITCH CONTROL ------- + DISCON_dict['PC_GS_n'] = len(controller.pitch_op_pc) + DISCON_dict['PC_GS_angles'] = controller.pitch_op_pc + DISCON_dict['PC_GS_KP'] = controller.pc_gain_schedule.Kp + DISCON_dict['PC_GS_KI'] = controller.pc_gain_schedule.Ki + DISCON_dict['PC_GS_KD'] = [0.0 for i in range(len(controller.pc_gain_schedule.Ki))] + DISCON_dict['PC_GS_TF'] = [0.0 for i in range(len(controller.pc_gain_schedule.Ki))] + DISCON_dict['PC_MaxPit'] = controller.max_pitch + DISCON_dict['PC_MinPit'] = controller.min_pitch + DISCON_dict['PC_MaxRat'] = turbine.max_pitch_rate + DISCON_dict['PC_MinRat'] = turbine.min_pitch_rate + DISCON_dict['PC_RefSpd'] = turbine.rated_rotor_speed*turbine.Ng + DISCON_dict['PC_FinePit'] = controller.min_pitch + DISCON_dict['PC_Switch'] = 1 * deg2rad + # ------- INDIVIDUAL PITCH CONTROL ------- + DISCON_dict['IPC_IntSat'] = 0.0 + DISCON_dict['IPC_KI'] = [0.0, 0.0] + DISCON_dict['IPC_aziOffset'] = [0.0, 0.0] + DISCON_dict['IPC_CornerFreqAct'] = 0.0 + # ------- VS TORQUE CONTROL ------- + DISCON_dict['VS_GenEff'] = turbine.GenEff + DISCON_dict['VS_ArSatTq'] = turbine.rated_torque + DISCON_dict['VS_MaxRat'] = turbine.max_torque_rate + DISCON_dict['VS_MaxTq'] = turbine.max_torque + DISCON_dict['VS_MinTq'] = 0.0 + DISCON_dict['VS_MinOMSpd'] = controller.vs_minspd + DISCON_dict['VS_Rgn2K'] = controller.vs_rgn2K + DISCON_dict['VS_RtPwr'] = turbine.rated_power + DISCON_dict['VS_RtTq'] = turbine.rated_torque + DISCON_dict['VS_RefSpd'] = controller.vs_refspd + DISCON_dict['VS_n'] = 1 + DISCON_dict['VS_KP'] = [controller.vs_gain_schedule.Kp[-1]] + DISCON_dict['VS_KI'] = [controller.vs_gain_schedule.Ki[-1]] + DISCON_dict['VS_TSRopt'] = turbine.TSR_operational + # ------- SETPOINT SMOOTHER ------- + DISCON_dict['SS_VSGain'] = controller.ss_vsgain + DISCON_dict['SS_PCGain'] = controller.ss_pcgain + # ------- WIND SPEED ESTIMATOR ------- + DISCON_dict['WE_BladeRadius'] = turbine.rotor_radius + DISCON_dict['WE_CP_n'] = 1 + DISCON_dict['WE_CP'] = [0.0 for i in range(4)] + DISCON_dict['WE_Gamma'] = 0.0 + DISCON_dict['WE_GearboxRatio'] = turbine.Ng + DISCON_dict['WE_Jtot'] = turbine.J + DISCON_dict['WE_RhoAir'] = turbine.rho + DISCON_dict['PerfFileName'] = txt_filename + DISCON_dict['PerfTableSize'] = [len(turbine.Cp.pitch_initial_rad),len(turbine.Cp.TSR_initial)] + DISCON_dict['WE_FOPoles_N'] = len(controller.A) + DISCON_dict['WE_FOPoles_v'] = controller.v + DISCON_dict['WE_FOPoles'] = controller.A + # ------- YAW CONTROL ------- + DISCON_dict['Y_ErrThresh'] = 0.0 + DISCON_dict['Y_IPC_IntSat'] = 0.0 + DISCON_dict['Y_IPC_n'] = 1 + DISCON_dict['Y_IPC_KP'] = 0.0 + DISCON_dict['Y_IPC_KI'] = 0.0 + DISCON_dict['Y_IPC_omegaLP'] = 0.0 + DISCON_dict['Y_IPC_zetaLP'] = 0.0 + DISCON_dict['Y_MErrSet'] = 0.0 + DISCON_dict['Y_omegaLPFast'] = 0.0 + DISCON_dict['Y_omegaLPSlow'] = 0.0 + DISCON_dict['Y_Rate'] = 0.0 + # ------- TOWER FORE-AFT DAMPING ------- + DISCON_dict['JA'] = -1 + DISCON_dict['FA_HPF_CornerFreq'] = 0.0 + DISCON_dict['FA_IntSat'] = 0.0 + # ------- MINIMUM PITCH SATURATION ------- + DISCON_dict['PS_BldPitchMin_N'] = len(controller.ps_min_bld_pitch) + DISCON_dict['PS_WindSpeeds'] = controller.v + DISCON_dict['PS_BldPitchMin'] = controller.ps_min_bld_pitch + # ------- SHUTDOWN ------- + DISCON_dict['SD_MaxPit'] = controller.sd_maxpit + DISCON_dict['SD_CornerFreq'] = controller.sd_cornerfreq + # ------- Floating ------- + DISCON_dict['Fl_Kp'] = controller.Kp_float + # ------- FLAP ACTUATION ------- + DISCON_dict['Flp_Angle'] = controller.flp_angle + DISCON_dict['Flp_Kp'] = [controller.Kp_flap[-1]] + DISCON_dict['Flp_Ki'] = [controller.Ki_flap[-1]] + DISCON_dict['Flp_MaxPit'] = controller.flp_maxpit + + return DISCON_dict + + +def run_openfast(fast_dir,fastcall='OpenFAST',fastfile=None,chdir=False): + ''' + Runs a openfast openfast simulation. + + NOTE: Enabling chdir can help reduce file path errors in the DISCON.IN file. + + Parameters: + ------------ + fast_dir: string + Name of OpenFAST directory containing input files. + fast_file: string + Name of OpenFAST directory containing input files. + fastcall: string, optional + Line used to call openfast when executing from the terminal. + fastfile: string, optional + Filename for *.fst input file. Function will find *.fst if not provided. + chdir: bool, optional + Change directory to openfast model directory before running. + ''' - Parameters - ---------- - turbine: obj - Turbine object output from the turbine class - controller: obj - Controller object output from the controller class - txt_filename: string, optional - Name of rotor performance filename - ''' - DISCON_dict = {} - # ------- DEBUG ------- - DISCON_dict['LoggingLevel'] = controller.LoggingLevel - # ------- CONTROLLER FLAGS ------- - DISCON_dict['F_LPFType'] = controller.F_LPFType - DISCON_dict['F_NotchType'] = controller.F_NotchType - DISCON_dict['IPC_ControlMode'] = controller.IPC_ControlMode - DISCON_dict['VS_ControlMode'] = controller.VS_ControlMode - DISCON_dict['PC_ControlMode'] = controller.PC_ControlMode - DISCON_dict['Y_ControlMode'] = controller.Y_ControlMode - DISCON_dict['SS_Mode'] = controller.SS_Mode - DISCON_dict['WE_Mode'] = controller.WE_Mode - DISCON_dict['PS_Mode'] = controller.PS_Mode - DISCON_dict['SD_Mode'] = controller.SD_Mode - DISCON_dict['Fl_Mode'] = controller.Fl_Mode - DISCON_dict['Flp_Mode'] = controller.Flp_Mode - # ------- FILTERS ------- - DISCON_dict['F_LPFCornerFreq'] = turbine.bld_edgewise_freq * 1/4 - DISCON_dict['F_LPFDamping'] = controller.F_LPFDamping - DISCON_dict['F_NotchCornerFreq'] = turbine.twr_freq - DISCON_dict['F_NotchBetaNumDen'] = [0.0, 0.25] - DISCON_dict['F_SSCornerFreq'] = controller.ss_cornerfreq - DISCON_dict['F_FlCornerFreq'] = [turbine.ptfm_freq, 1.0] - DISCON_dict['F_FlpCornerFreq'] = [turbine.bld_flapwise_freq*1/3, 1.0] - # ------- BLADE PITCH CONTROL ------- - DISCON_dict['PC_GS_n'] = len(controller.pitch_op_pc) - DISCON_dict['PC_GS_angles'] = controller.pitch_op_pc - DISCON_dict['PC_GS_KP'] = controller.pc_gain_schedule.Kp - DISCON_dict['PC_GS_KI'] = controller.pc_gain_schedule.Ki - DISCON_dict['PC_GS_KD'] = [0.0 for i in range(len(controller.pc_gain_schedule.Ki))] - DISCON_dict['PC_GS_TF'] = [0.0 for i in range(len(controller.pc_gain_schedule.Ki))] - DISCON_dict['PC_MaxPit'] = controller.max_pitch - DISCON_dict['PC_MinPit'] = controller.min_pitch - DISCON_dict['PC_MaxRat'] = turbine.max_pitch_rate - DISCON_dict['PC_MinRat'] = turbine.min_pitch_rate - DISCON_dict['PC_RefSpd'] = turbine.rated_rotor_speed*turbine.Ng - DISCON_dict['PC_FinePit'] = controller.min_pitch - DISCON_dict['PC_Switch'] = 1 * deg2rad - # ------- INDIVIDUAL PITCH CONTROL ------- - DISCON_dict['IPC_IntSat'] = 0.0 - DISCON_dict['IPC_KI'] = [0.0, 0.0] - DISCON_dict['IPC_aziOffset'] = [0.0, 0.0] - DISCON_dict['IPC_CornerFreqAct'] = 0.0 - # ------- VS TORQUE CONTROL ------- - DISCON_dict['VS_GenEff'] = turbine.GenEff - DISCON_dict['VS_ArSatTq'] = turbine.rated_torque - DISCON_dict['VS_MaxRat'] = turbine.max_torque_rate - DISCON_dict['VS_MaxTq'] = turbine.max_torque - DISCON_dict['VS_MinTq'] = 0.0 - DISCON_dict['VS_MinOMSpd'] = controller.vs_minspd - DISCON_dict['VS_Rgn2K'] = controller.vs_rgn2K - DISCON_dict['VS_RtPwr'] = turbine.rated_power - DISCON_dict['VS_RtTq'] = turbine.rated_torque - DISCON_dict['VS_RefSpd'] = controller.vs_refspd - DISCON_dict['VS_n'] = 1 - DISCON_dict['VS_KP'] = [controller.vs_gain_schedule.Kp[-1]] - DISCON_dict['VS_KI'] = [controller.vs_gain_schedule.Ki[-1]] - DISCON_dict['VS_TSRopt'] = turbine.TSR_operational - # ------- SETPOINT SMOOTHER ------- - DISCON_dict['SS_VSGain'] = controller.ss_vsgain - DISCON_dict['SS_PCGain'] = controller.ss_pcgain - # ------- WIND SPEED ESTIMATOR ------- - DISCON_dict['WE_BladeRadius'] = turbine.rotor_radius - DISCON_dict['WE_CP_n'] = 1 - DISCON_dict['WE_CP'] = [0.0 for i in range(4)] - DISCON_dict['WE_Gamma'] = 0.0 - DISCON_dict['WE_GearboxRatio'] = turbine.Ng - DISCON_dict['WE_Jtot'] = turbine.J - DISCON_dict['WE_RhoAir'] = turbine.rho - DISCON_dict['PerfFileName'] = txt_filename - DISCON_dict['PerfTableSize'] = [len(turbine.Cp.pitch_initial_rad),len(turbine.Cp.TSR_initial)] - DISCON_dict['WE_FOPoles_N'] = len(controller.A) - DISCON_dict['WE_FOPoles_v'] = controller.v - DISCON_dict['WE_FOPoles'] = controller.A - # ------- YAW CONTROL ------- - DISCON_dict['Y_ErrThresh'] = 0.0 - DISCON_dict['Y_IPC_IntSat'] = 0.0 - DISCON_dict['Y_IPC_n'] = 1 - DISCON_dict['Y_IPC_KP'] = 0.0 - DISCON_dict['Y_IPC_KI'] = 0.0 - DISCON_dict['Y_IPC_omegaLP'] = 0.0 - DISCON_dict['Y_IPC_zetaLP'] = 0.0 - DISCON_dict['Y_MErrSet'] = 0.0 - DISCON_dict['Y_omegaLPFast'] = 0.0 - DISCON_dict['Y_omegaLPSlow'] = 0.0 - DISCON_dict['Y_Rate'] = 0.0 - # ------- TOWER FORE-AFT DAMPING ------- - DISCON_dict['JA'] = -1 - DISCON_dict['FA_HPF_CornerFreq'] = 0.0 - DISCON_dict['FA_IntSat'] = 0.0 - # ------- MINIMUM PITCH SATURATION ------- - DISCON_dict['PS_BldPitchMin_N'] = len(controller.ps_min_bld_pitch) - DISCON_dict['PS_WindSpeeds'] = controller.v - DISCON_dict['PS_BldPitchMin'] = controller.ps_min_bld_pitch - # ------- SHUTDOWN ------- - DISCON_dict['SD_MaxPit'] = controller.sd_maxpit - DISCON_dict['SD_CornerFreq'] = controller.sd_cornerfreq - # ------- Floating ------- - DISCON_dict['Fl_Kp'] = controller.Kp_float - # ------- FLAP ACTUATION ------- - DISCON_dict['Flp_Angle'] = controller.flp_angle - DISCON_dict['Flp_Kp'] = [controller.Kp_flap[-1]] - DISCON_dict['Flp_Ki'] = [controller.Ki_flap[-1]] - DISCON_dict['Flp_MaxPit'] = controller.flp_maxpit + # Define OpenFAST input filename + if not fastfile: + for file in os.listdir(fast_dir): + if file.endswith('.fst'): + fastfile = file + print('Using {} to run OpenFAST simulation'.format(fastfile)) + + if chdir: # Change cwd before calling OpenFAST -- note: This is an artifact of needing to call OpenFAST from the same directory as DISCON.IN + # save starting file path + original_path = os.getcwd() + # change path, run OpenFAST + os.chdir(fast_dir) + print('Running OpenFAST simulation for {} through the ROSCO toolbox...'.format(fastfile)) + os.system('{} {}'.format(fastcall, os.path.join(fastfile))) + print('OpenFAST simulation complete. ') + # return to original path + os.chdir(original_path) + else: + # Run OpenFAST + print('Running OpenFAST simulation for {} through the ROSCO toolbox...'.format(fastfile)) + os.system('{} {}'.format(fastcall, os.path.join(fast_dir,fastfile))) + print('OpenFAST simulation complete. ') - return DISCON_dict diff --git a/Test_Cases/BAR_10/Airfoils/AF00_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF00_Coords.txt new file mode 100644 index 000000000..edb510676 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF00_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 1.000000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -5.22802287572510e-16 + 9.99429683992583e-01 -2.22597407115582e-02 + 9.98063017832965e-01 -4.44580348954677e-02 + 9.95573914266674e-01 -6.65618134473914e-02 + 9.92086309749559e-01 -8.85198205325816e-02 + 9.87686148675057e-01 -1.10275272231260e-01 + 9.82330525170639e-01 -1.31784370919739e-01 + 9.76011908335692e-01 -1.53006617635088e-01 + 9.68787467298381e-01 -1.73886802805474e-01 + 9.60674860259240e-01 -1.94379348489358e-01 + 9.51675358763677e-01 -2.14449685889897e-01 + 9.41827652746244e-01 -2.34058378730561e-01 + 9.31175295355131e-01 -2.53152975865307e-01 + 9.19730397431178e-01 -2.71705871524177e-01 + 9.07524559194720e-01 -2.89691038427374e-01 + 8.94610408070308e-01 -3.07057540313714e-01 + 8.81009696499435e-01 -3.23779496057417e-01 + 8.66747905197194e-01 -3.39839087916958e-01 + 8.51890258171205e-01 -3.55200475411866e-01 + 8.36469462621421e-01 -3.69843137468982e-01 + 8.20513485943698e-01 -3.83761493954297e-01 + 8.04073832217581e-01 -3.96914898117900e-01 + 7.87191529885653e-01 -4.09289340064311e-01 + 7.69897919101553e-01 -4.20894001702843e-01 + 7.52252341235159e-01 -4.31703640475796e-01 + 7.34291349178558e-01 -4.41704116420428e-01 + 7.16044924955764e-01 -4.50916295010545e-01 + 6.97571640033109e-01 -4.59311192391506e-01 + 6.78906186433687e-01 -4.66891833699312e-01 + 6.60080312620540e-01 -4.73693126862085e-01 + 6.41147517137212e-01 -4.79664129290007e-01 + 6.22137650968852e-01 -4.84843433471521e-01 + 6.03087998194415e-01 -4.89268924532069e-01 + 5.84045042118975e-01 -4.92877104400900e-01 + 5.65030897687003e-01 -4.95771017901343e-01 + 5.46088602779599e-01 -4.97906772720028e-01 + 5.27248673916899e-01 -4.99205230965369e-01 + 5.08535950506088e-01 -4.99900147123151e-01 + 4.89992355470388e-01 -4.99865122336167e-01 + 4.71632114506831e-01 -4.99152990523336e-01 + 4.53492503744348e-01 -4.97865574847876e-01 + 4.35593302897673e-01 -4.95849221396458e-01 + 4.17956065616942e-01 -4.93220204257438e-01 + 4.00609748442576e-01 -4.90034017714886e-01 + 3.83560931606009e-01 -4.86240654381211e-01 + 3.66843215733716e-01 -4.81953122075711e-01 + 3.50457316320503e-01 -4.77107036591688e-01 + 3.34434484008630e-01 -4.71801617147634e-01 + 3.18774100329315e-01 -4.65997503105357e-01 + 3.03499623121295e-01 -4.59771833639973e-01 + 2.88611293565648e-01 -4.53111012774598e-01 + 2.74124386665666e-01 -4.46071472676040e-01 + 2.60041455523719e-01 -4.38653996586565e-01 + 2.46374872015918e-01 -4.30897288076141e-01 + 2.33123443938833e-01 -4.22812892154316e-01 + 2.20293777810423e-01 -4.14442160590301e-01 + 2.07883282965331e-01 -4.05790731420267e-01 + 1.95902956391646e-01 -3.96897110059902e-01 + 1.84341253066628e-01 -3.87763028932806e-01 + 1.73213930954161e-01 -3.78432781857512e-01 + 1.62499176129638e-01 -3.68901685535316e-01 + 1.52214602777259e-01 -3.59220819204806e-01 + 1.42331759398971e-01 -3.49381794975500e-01 + 1.32872111539190e-01 -3.39428678290192e-01 + 1.23806439629760e-01 -3.29359452404754e-01 + 1.15147623386077e-01 -3.19202364510091e-01 + 1.06887208802748e-01 -3.08971834769009e-01 + 9.90071115215634e-02 -2.98675440643128e-01 + 9.15234043853440e-02 -2.88346537239591e-01 + 8.43970428172224e-02 -2.77979120522002e-01 + 7.76464790199521e-02 -2.67604205770439e-01 + 7.12479082120208e-02 -2.57229212452774e-01 + 6.51878662973747e-02 -2.46861090082763e-01 + 5.94874721274203e-02 -2.36524433012697e-01 + 5.41002464180900e-02 -2.26213901273871e-01 + 4.90378786701877e-02 -2.15949074862572e-01 + 4.43003497573340e-02 -2.05745246473815e-01 + 3.98423597346805e-02 -1.95597654428208e-01 + 3.56899752436130e-02 -1.85525503303304e-01 + 3.18292350050659e-02 -1.75535988753057e-01 + 2.82200072057900e-02 -1.65626936732462e-01 + 2.48925247792698e-02 -1.55815221490219e-01 + 2.18286683030035e-02 -1.46105621815703e-01 + 1.89846947131332e-02 -1.36495337998243e-01 + 1.63921917020335e-02 -1.26998300581103e-01 + 1.40446346341990e-02 -1.17620770590061e-01 + 1.18798249846349e-02 -1.08356847039080e-01 + 9.93094518736226e-03 -9.92166214620377e-02 + 8.21940795734749e-03 -9.02084101294225e-02 + 6.65838622137879e-03 -8.13254351098410e-02 + 5.26774192850643e-03 -7.25722234042700e-02 + 4.09515753852961e-03 -6.39564017315716e-02 + 3.09878859713642e-03 -5.54780130211000e-02 + 2.19660773551101e-03 -4.71320046999757e-02 + 1.46264176301869e-03 -3.89244052604170e-02 + 9.64484608297922e-04 -3.08606101713947e-02 + 5.99373867982851e-04 -2.29362359459691e-02 + 2.90086645599082e-04 -1.51487658773967e-02 + 7.80707788302466e-05 -7.50222207649338e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 7.80412061165972e-05 7.50073622069008e-03 + 2.89878724192004e-04 1.51427584868874e-02 + 5.98775316682048e-04 2.29225845614194e-02 + 9.63326351634835e-04 3.08361193977748e-02 + 1.45966821282819e-03 3.88857489711792e-02 + 2.19097636449990e-03 4.70758159906831e-02 + 3.08997841959778e-03 5.54008881281673e-02 + 4.08271112470316e-03 6.38548864368973e-02 + 5.24853124383664e-03 7.24426344646886e-02 + 6.63128223001261e-03 8.11642365969105e-02 + 8.18368429859057e-03 9.00120990085718e-02 + 9.88361416849065e-03 9.89814202866229e-02 + 1.18176401547236e-02 1.08079023747493e-01 + 1.39661993216830e-02 1.17296891553284e-01 + 1.62951420791042e-02 1.26624818507885e-01 + 1.88631937781153e-02 1.36068234819796e-01 + 2.16807137532775e-02 1.45621741073938e-01 + 2.47159162958630e-02 1.55271505652796e-01 + 2.80064400105864e-02 1.65019126539152e-01 + 3.15762558914965e-02 1.74861450420233e-01 + 3.53948396168776e-02 1.84781748500356e-01 + 3.94949825480075e-02 1.94780451150684e-01 + 4.38979282781582e-02 2.04852826049369e-01 + 4.85758075737765e-02 2.14979335736815e-01 + 5.35679916138118e-02 2.25163248876704e-01 + 5.88818211488708e-02 2.35392575398327e-01 + 6.45001629027313e-02 2.45645861854958e-01 + 7.04692046391145e-02 2.55928809695428e-01 + 7.67740309924709e-02 2.66220088966340e-01 + 8.34162127168367e-02 2.76507393790272e-01 + 9.04290195190656e-02 2.86789711779561e-01 + 9.77906533229447e-02 2.97034361595414e-01 + 1.05536187198748e-01 3.07245770330167e-01 + 1.13658760041779e-01 3.17397798197942e-01 + 1.22161483318940e-01 3.27472514118938e-01 + 1.31067498602735e-01 3.37467155091884e-01 + 1.40354649921884e-01 3.47346400530541e-01 + 1.50055110786138e-01 3.57117293892256e-01 + 1.60148962661562e-01 3.66736829146265e-01 + 1.70658187899640e-01 3.76209016178366e-01 + 1.81574957422924e-01 3.85495420277773e-01 + 1.92907571409635e-01 3.94583247665971e-01 + 2.04657634577812e-01 4.03452252859203e-01 + 2.16817353069424e-01 4.12073654675103e-01 + 2.29396483963478e-01 4.20441260405522e-01 + 2.42377800694080e-01 4.28515729124923e-01 + 2.55773624268338e-01 4.36297014051329e-01 + 2.69566785632899e-01 4.43730784236712e-01 + 2.83765797226135e-01 4.50825718973627e-01 + 2.98347982887804e-01 4.57529313046837e-01 + 3.13318978785268e-01 4.63848274999177e-01 + 3.28658461892810e-01 4.69727033948469e-01 + 3.44364941645546e-01 4.75166089488011e-01 + 3.60419773725681e-01 4.80124895665173e-01 + 3.76811233766957e-01 4.84580156948735e-01 + 3.93525251020729e-01 4.88538023799543e-01 + 4.10538642553571e-01 4.91916286871980e-01 + 4.27843232490823e-01 4.94793689772683e-01 + 4.45406663468198e-01 4.97001865465950e-01 + 4.63222254103030e-01 4.98694527925836e-01 + 4.81251545655716e-01 4.99575957461702e-01 + 4.99481026671737e-01 4.99999595958852e-01 + 5.17879583085697e-01 4.99609899963933e-01 + 5.36417631367010e-01 4.98719254404591e-01 + 5.55075704909560e-01 4.96947095459801e-01 + 5.73808427242608e-01 4.94546807361687e-01 + 5.92596731105059e-01 4.91342495584800e-01 + 6.11401377553511e-01 4.87427713678203e-01 + 6.30186430605241e-01 4.82763790791591e-01 + 6.48926781663159e-01 4.77299436027394e-01 + 6.67570206424973e-01 4.71090906382616e-01 + 6.86088429590952e-01 4.64085564448580e-01 + 7.04445389043917e-01 4.56285153530383e-01 + 7.22592093722966e-01 4.47721154132331e-01 + 7.40501800453524e-01 4.38357128523673e-01 + 7.58125457122835e-01 4.28212344239085e-01 + 7.75421014376153e-01 4.17302884275069e-01 + 7.92362373587600e-01 4.05613976111210e-01 + 8.08894546151696e-01 3.93173546991026e-01 + 8.24974633014891e-01 3.79990391949436e-01 + 8.40576952273409e-01 3.66062639074102e-01 + 8.55652758808818e-01 3.51433146523418e-01 + 8.70162898882712e-01 3.36117863695803e-01 + 8.84085033071272e-01 3.20125614835584e-01 + 8.97361214262371e-01 3.03490505958309e-01 + 9.09954680076662e-01 2.86240968660934e-01 + 9.21851471402547e-01 2.68396507929684e-01 + 9.33012836658427e-01 2.50001405518451e-01 + 9.43389278969050e-01 2.31088842332578e-01 + 9.52973153850559e-01 2.11684808241657e-01 + 9.61743130827061e-01 1.91832340326070e-01 + 9.69640690675464e-01 1.71577158818629e-01 + 9.76664215898664e-01 1.50951670528481e-01 + 9.82815077112014e-01 1.29995621032034e-01 + 9.88028440045103e-01 1.08765299158177e-01 + 9.92304836603751e-01 8.72999337504368e-02 + 9.95693518775914e-01 6.56397719044068e-02 + 9.98120489340015e-01 4.38394581414280e-02 + 9.99443037908705e-01 2.19496513968833e-02 + 1.00000000000000e+00 -5.26271734524464e-16 diff --git a/Test_Cases/BAR_10/Airfoils/AF01_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF01_Coords.txt new file mode 100644 index 000000000..f87d8bedc --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF01_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.990476 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -4.63811845989595e-04 + 9.98467173384520e-01 -2.21760738068291e-02 + 9.96201018922662e-01 -4.43513952227385e-02 + 9.92902676952926e-01 -6.63454604769131e-02 + 9.88692179153491e-01 -8.83512854067454e-02 + 9.83641700303067e-01 -1.10161869811814e-01 + 9.77693527019135e-01 -1.31666148816795e-01 + 9.70833239613756e-01 -1.52883920770357e-01 + 9.63105451938579e-01 -1.73759828760713e-01 + 9.54532118302001e-01 -1.94248463948316e-01 + 9.45094882727296e-01 -2.14314859896441e-01 + 9.34836513579595e-01 -2.33919713931875e-01 + 9.23792216562412e-01 -2.53010434817859e-01 + 9.11967873150151e-01 -2.71559258831712e-01 + 8.99404029386562e-01 -2.89525554649648e-01 + 8.86143985062391e-01 -3.06762575252512e-01 + 8.72213927313225e-01 -3.23333107879450e-01 + 8.57640501389098e-01 -3.39220821250027e-01 + 8.42491846313865e-01 -3.54394984467650e-01 + 8.26801765827613e-01 -3.68838943614104e-01 + 8.10594547929071e-01 -3.82536904061624e-01 + 7.93922734069153e-01 -3.95451851472937e-01 + 7.76832240180398e-01 -4.07584853374001e-01 + 7.59348245375681e-01 -4.18920680492845e-01 + 7.41537639398664e-01 -4.29464524942254e-01 + 7.23431205173309e-01 -4.39176330443068e-01 + 7.05064134628845e-01 -4.48097450178315e-01 + 6.86494807359063e-01 -4.56206293614626e-01 + 6.67756746882739e-01 -4.63496162904065e-01 + 6.48881685529692e-01 -4.69996405643457e-01 + 6.29923310131979e-01 -4.75686425380055e-01 + 6.10910760046060e-01 -4.80569674255008e-01 + 5.91880858868652e-01 -4.84708988209015e-01 + 5.72878595040472e-01 -4.88043247517881e-01 + 5.53926998478926e-01 -4.90667616306486e-01 + 5.35067694630088e-01 -4.92534530111945e-01 + 5.16331153245986e-01 -4.93576370712252e-01 + 4.97738196749123e-01 -4.94032265212218e-01 + 4.79333066607872e-01 -4.93764983148706e-01 + 4.61128599835402e-01 -4.92830809288116e-01 + 4.43159329129261e-01 -4.91334751859200e-01 + 4.25447685073387e-01 -4.89117524186293e-01 + 4.08009604092335e-01 -4.86308249725637e-01 + 3.90877722226945e-01 -4.82946970075117e-01 + 3.74054397877541e-01 -4.78996574443515e-01 + 3.57573783636804e-01 -4.74563077032901e-01 + 3.41438159255134e-01 -4.69582035254683e-01 + 3.25670763625722e-01 -4.64161440697908e-01 + 3.10279633534328e-01 -4.58249836476665e-01 + 2.95279350334722e-01 -4.51934150456433e-01 + 2.80675131682109e-01 -4.45194360507071e-01 + 2.66478904567385e-01 -4.38089379204009e-01 + 2.52689367611689e-01 -4.30624646937219e-01 + 2.39323804547598e-01 -4.22831494367369e-01 + 2.26372493249669e-01 -4.14730287085725e-01 + 2.13841625835948e-01 -4.06360546515313e-01 + 2.01729643906012e-01 -3.97726374924658e-01 + 1.90042704010088e-01 -3.88868473579673e-01 + 1.78780513919405e-01 -3.79779182945158e-01 + 1.67947192681302e-01 -3.70509813753492e-01 + 1.57515610471949e-01 -3.61059170210982e-01 + 1.47517579266600e-01 -3.51466589223711e-01 + 1.37917275227837e-01 -3.41728794152720e-01 + 1.28732633795518e-01 -3.31889896258725e-01 + 1.19932932731255e-01 -3.21948569622662e-01 + 1.11526316288301e-01 -3.11933756290855e-01 + 1.03512901818212e-01 -3.01854834406773e-01 + 9.58696771063740e-02 -2.91721185381983e-01 + 8.86102231091608e-02 -2.81565295096402e-01 + 8.16969927846540e-02 -2.71380568457067e-01 + 7.51535379192299e-02 -2.61194288411627e-01 + 6.89536742727614e-02 -2.51014500088289e-01 + 6.30839269619993e-02 -2.40847797573036e-01 + 5.75662813086175e-02 -2.30717139502777e-01 + 5.23545747043584e-02 -2.20617514185734e-01 + 4.74578722448400e-02 -2.10568128140777e-01 + 4.28767809860145e-02 -2.00583782077476e-01 + 3.85673548520822e-02 -1.90659108990543e-01 + 3.45508989870461e-02 -1.80813271070335e-01 + 3.08135992953402e-02 -1.71053006801669e-01 + 2.73208801795959e-02 -1.61375236688796e-01 + 2.41022177709867e-02 -1.51795914078691e-01 + 2.11376549083078e-02 -1.42319565684023e-01 + 1.83828796995872e-02 -1.32943691007437e-01 + 1.58701080776308e-02 -1.23681268646198e-01 + 1.35959362042828e-02 -1.14537805571299e-01 + 1.15005827952114e-02 -1.05507424592980e-01 + 9.61431827201228e-03 -9.65999124645635e-02 + 7.95705389158652e-03 -8.78233070485338e-02 + 6.44452897525567e-03 -7.91708916194909e-02 + 5.09808713093188e-03 -7.06468086154608e-02 + 3.96431543475112e-03 -6.22582071001831e-02 + 3.00040624761498e-03 -5.40051275796408e-02 + 2.12568347635070e-03 -4.58827391799288e-02 + 1.40900707786960e-03 -3.78968497806970e-02 + 9.23312828463650e-04 -3.00522420093858e-02 + 5.71943136982073e-04 -2.23443350038139e-02 + 2.75088165574594e-04 -1.47706965880121e-02 + 7.41662246608336e-05 -7.33496356332171e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 7.34744532437920e-05 7.25261189667483e-03 + 2.74565925733071e-04 1.46832352448732e-02 + 5.72888374195587e-04 2.22490324725082e-02 + 9.28885740530638e-04 2.99459827970760e-02 + 1.41357186264960e-03 3.77766553769849e-02 + 2.12212640969420e-03 4.57455921569896e-02 + 2.99108664144004e-03 5.38475927164301e-02 + 3.95033570388314e-03 6.20767427164216e-02 + 5.07854362937284e-03 7.04376769600014e-02 + 6.41959545686486e-03 7.89306141519324e-02 + 7.92402583375434e-03 8.75485630813470e-02 + 9.56914953634052e-03 9.62871505714605e-02 + 1.14400708553240e-02 1.05152947655810e-01 + 1.35210757122847e-02 1.14137951671131e-01 + 1.57806979588441e-02 1.23232447951075e-01 + 1.82720943177786e-02 1.32442200606248e-01 + 2.10015901787291e-02 1.41762521292719e-01 + 2.39396140414020e-02 1.51180030609490e-01 + 2.71253377196537e-02 1.60696044845788e-01 + 3.05837054207885e-02 1.70307717637822e-01 + 3.42826211343738e-02 1.79999386802779e-01 + 3.82500437522134e-02 1.89772413436745e-01 + 4.25061694594665e-02 1.99622495335337e-01 + 4.70284901462792e-02 2.09530414864229e-01 + 5.18573403869655e-02 2.19499444279854e-01 + 5.69971055718374e-02 2.29518703766839e-01 + 6.24343587209343e-02 2.39566712779751e-01 + 6.82153718834781e-02 2.49648595522160e-01 + 7.43257263211002e-02 2.59744263491853e-01 + 8.07667066805238e-02 2.69841889811891e-01 + 8.75709571443712e-02 2.79940497115807e-01 + 9.47158022855910e-02 2.90009623602212e-01 + 1.02231394176791e-01 3.00055389921522e-01 + 1.10115779679844e-01 3.10051188289367e-01 + 1.18373315622233e-01 3.19979395229765e-01 + 1.27024029512802e-01 3.29839038829936e-01 + 1.36042341896628e-01 3.39598428448450e-01 + 1.45468641173051e-01 3.49260445521317e-01 + 1.55284944658453e-01 3.58782968118255e-01 + 1.65511129088352e-01 3.68171058265180e-01 + 1.76139340882942e-01 3.77388276866219e-01 + 1.87176877657319e-01 3.86423511797831e-01 + 1.98626300833226e-01 3.95256867136936e-01 + 2.10486157445025e-01 4.03856745174583e-01 + 2.22764074168475e-01 4.12219050620619e-01 + 2.35440078090220e-01 4.20309048961732e-01 + 2.48530838968806e-01 4.28123115956114e-01 + 2.62021396159282e-01 4.35607383194544e-01 + 2.75922264161973e-01 4.42768550448182e-01 + 2.90211976398530e-01 4.49555452383198e-01 + 3.04898892491941e-01 4.55970856196091e-01 + 3.19961221496436e-01 4.61963896621665e-01 + 3.35398253775750e-01 4.67533173009330e-01 + 3.51195942869375e-01 4.72634944479514e-01 + 3.67338694010764e-01 4.77252063472136e-01 + 3.83816651102119e-01 4.81385020780556e-01 + 4.00608012623104e-01 4.84951790146688e-01 + 4.17703658773564e-01 4.88030680001881e-01 + 4.35072654998222e-01 4.90457736356606e-01 + 4.52710210573791e-01 4.92376417191462e-01 + 4.70579836946098e-01 4.93496580011988e-01 + 4.88669047461836e-01 4.94154620500415e-01 + 5.06945286122869e-01 4.94012577637723e-01 + 5.25379714974772e-01 4.93371302480660e-01 + 5.43953600587241e-01 4.91855649753766e-01 + 5.62621722688786e-01 4.89717207233783e-01 + 5.81366344599658e-01 4.86770773169825e-01 + 6.00147036291164e-01 4.83125304020070e-01 + 6.18929528832760e-01 4.78721922868112e-01 + 6.37688032874481e-01 4.73520204445490e-01 + 6.56371691980190e-01 4.67578443486814e-01 + 6.74950708118853e-01 4.60830053147655e-01 + 6.93391153244450e-01 4.53291236651978e-01 + 7.11643713475585e-01 4.44986120091238e-01 + 7.29681642246007e-01 4.35878894280235e-01 + 7.47455198579118e-01 4.25979095981452e-01 + 7.64924587578806e-01 4.15314690673653e-01 + 7.82061661820030e-01 4.03861380036064e-01 + 7.98812848987524e-01 3.91648881667760e-01 + 8.15133935766935e-01 3.78679958909595e-01 + 8.31000434150294e-01 3.64958176855944e-01 + 8.46369086870314e-01 3.50537049461121e-01 + 8.61193976074647e-01 3.35410498304080e-01 + 8.75458879755009e-01 3.19610226957525e-01 + 8.89098468392871e-01 3.03145216495924e-01 + 9.02083638654523e-01 2.86063339098563e-01 + 9.14393262754056e-01 2.68366757100427e-01 + 9.25990890620643e-01 2.50031431041309e-01 + 9.36832312659699e-01 2.31124469831119e-01 + 9.46902849012243e-01 2.11725871184046e-01 + 9.56182352236457e-01 1.91878704655915e-01 + 9.64615102433115e-01 1.71628715031826e-01 + 9.72199006376436e-01 1.51008308604788e-01 + 9.78926408642486e-01 1.30057054257934e-01 + 9.84740950335086e-01 1.08831368257721e-01 + 9.89647774065505e-01 8.73705446684260e-02 + 9.93682607508023e-01 6.57145799940790e-02 + 9.96776877341931e-01 4.39179785077319e-02 + 9.98774657041311e-01 2.22119245106569e-02 + 1.00000000000000e+00 3.03878429386526e-04 diff --git a/Test_Cases/BAR_10/Airfoils/AF02_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF02_Coords.txt new file mode 100644 index 000000000..7eca590a1 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF02_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.905836 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -3.84926541009057e-03 + 9.90631438946024e-01 -2.12435865991565e-02 + 9.80995553124424e-01 -4.24457781485798e-02 + 9.71000840610814e-01 -6.31090653400790e-02 + 9.60734786236882e-01 -8.48565160892434e-02 + 9.50179239191776e-01 -1.06526812560635e-01 + 9.39184596688208e-01 -1.27586109059819e-01 + 9.27799536878515e-01 -1.48391464571039e-01 + 9.15903827267602e-01 -1.68874388980267e-01 + 9.03514157324326e-01 -1.89003710341351e-01 + 8.90446861895154e-01 -2.08710153716595e-01 + 8.76780536044166e-01 -2.27965730658476e-01 + 8.62480586733117e-01 -2.46705592887750e-01 + 8.47500249910044e-01 -2.64888257556216e-01 + 8.31955465479905e-01 -2.82403390068267e-01 + 8.15810048318596e-01 -2.98534052530044e-01 + 7.99126947500892e-01 -3.13859847054715e-01 + 7.81941940306206e-01 -3.28371564319632e-01 + 7.64468206562080e-01 -3.42071417719003e-01 + 7.46697818259374e-01 -3.54967940406863e-01 + 7.28573905158469e-01 -3.66972905314512e-01 + 7.10153602165469e-01 -3.78073270944891e-01 + 6.91514360416783e-01 -3.88373600348541e-01 + 6.72638414615091e-01 -3.97687194401071e-01 + 6.53641255705360e-01 -4.06230577038577e-01 + 6.34513112907663e-01 -4.13781157264753e-01 + 6.15323229055061e-01 -4.20521442794311e-01 + 5.96126572356429e-01 -4.26482988470175e-01 + 5.76948072349831e-01 -4.31590656929712e-01 + 5.57818657957289e-01 -4.35832919726561e-01 + 5.38791386325359e-01 -4.39408574736611e-01 + 5.19889763879006e-01 -4.42067748281538e-01 + 5.01146234431663e-01 -4.44052569038971e-01 + 4.82593850676478e-01 -4.45322082434952e-01 + 4.64261197017911e-01 -4.45912039616476e-01 + 4.46178502024561e-01 -4.45750259131233e-01 + 4.28374696913817e-01 -4.44854788965956e-01 + 4.10842384036848e-01 -4.43501283841197e-01 + 3.93639531937710e-01 -4.41476000713409e-01 + 3.76768943278809e-01 -4.38860417965539e-01 + 3.60244645111310e-01 -4.35782365438811e-01 + 3.44105933842362e-01 -4.32043915089262e-01 + 3.28329482851241e-01 -4.27870002678317e-01 + 3.12971158613517e-01 -4.23183090062612e-01 + 2.98004103012404e-01 -4.18046034323109e-01 + 2.83464534926605e-01 -4.12509756661863e-01 + 2.69364938957160e-01 -4.06510982438416e-01 + 2.55672317743647e-01 -4.00224860072533e-01 + 2.42453173509832e-01 -3.93507124262477e-01 + 2.29660181720923e-01 -3.86520574476780e-01 + 2.17331885171709e-01 -3.79195664764977e-01 + 2.05456541021846e-01 -3.71610423628608e-01 + 1.94006233828022e-01 -3.63807823691238e-01 + 1.83030659344509e-01 -3.55760880030221e-01 + 1.72461927032183e-01 -3.47560782845731e-01 + 1.62302600938152e-01 -3.39233085246260e-01 + 1.52557869935403e-01 -3.30770341418764e-01 + 1.43199919496404e-01 -3.22231517453550e-01 + 1.34304609800798e-01 -3.13533606002316e-01 + 1.25795650988283e-01 -3.04784976001577e-01 + 1.17610321408994e-01 -2.96013608945875e-01 + 1.09874828301010e-01 -2.87163353431516e-01 + 1.02504359951391e-01 -2.78272989676042e-01 + 9.54913689207318e-02 -2.69387271460525e-01 + 8.87959360837987e-02 -2.60510982760897e-01 + 8.23928594350354e-02 -2.51679175498376e-01 + 7.63401275541796e-02 -2.42859895915847e-01 + 7.05815933280549e-02 -2.34077656792139e-01 + 6.51124331813904e-02 -2.25357957942612e-01 + 5.99060336805360e-02 -2.16689484714651e-01 + 5.50180841328135e-02 -2.08068618129370e-01 + 5.04070301789989e-02 -1.99508670719650e-01 + 4.60594727365491e-02 -1.91013348404033e-01 + 4.20013775234224e-02 -1.82592049086667e-01 + 3.81905206004199e-02 -1.74242527875964e-01 + 3.46182153984600e-02 -1.65980953738340e-01 + 3.12894548067187e-02 -1.57818093988588e-01 + 2.81704988481837e-02 -1.49743528364873e-01 + 2.52489889624470e-02 -1.41776127785570e-01 + 2.25124613718776e-02 -1.33918843091371e-01 + 1.99662512557588e-02 -1.26161019848506e-01 + 1.76320809733246e-02 -1.18510944909457e-01 + 1.54772176924024e-02 -1.10971032281251e-01 + 1.34552102152362e-02 -1.03541276215403e-01 + 1.15997971264851e-02 -9.62267100711436e-02 + 9.92820493321804e-03 -8.90265393999388e-02 + 8.40056410254184e-03 -8.19350728805271e-02 + 7.02619987105419e-03 -7.49595565556109e-02 + 5.81346278277251e-03 -6.81056925929680e-02 + 4.70017931710346e-03 -6.13672297356595e-02 + 3.71652906562121e-03 -5.47450601936601e-02 + 2.89907072816734e-03 -4.82422926618635e-02 + 2.20089414136385e-03 -4.18588318321564e-02 + 1.55424744004324e-03 -3.55914811305355e-02 + 9.88580836623855e-04 -2.94438515968252e-02 + 6.09136060410994e-04 -2.34150156186438e-02 + 3.65976395900646e-04 -1.74974093340861e-02 + 1.65611320396737e-04 -1.16854873382618e-02 + 4.56661185437167e-05 -5.96428512655295e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 4.01408290095136e-05 5.28142289938120e-03 + 1.62794808700466e-04 1.09452394407634e-02 + 3.78514994173202e-04 1.67220344953462e-02 + 6.62270414637527e-04 2.26086149697626e-02 + 1.04709805559684e-03 2.86088053713023e-02 + 1.56885184529293e-03 3.47283824182410e-02 + 2.19374334494808e-03 4.09640997843724e-02 + 2.88174668648516e-03 4.73116211297387e-02 + 3.70290976726350e-03 5.37741568135431e-02 + 4.69951065424633e-03 6.03527946546258e-02 + 5.80987444283859e-03 6.70451862847131e-02 + 7.00828001279427e-03 7.38502646877899e-02 + 8.36584180261431e-03 8.07726772190208e-02 + 9.89294543921457e-03 8.78052549767381e-02 + 1.15770107508940e-02 9.49534378595062e-02 + 1.34310065365463e-02 1.02223776835746e-01 + 1.54345376457935e-02 1.09608816629353e-01 + 1.75752588179257e-02 1.17098897625897e-01 + 1.99010096447389e-02 1.24692916217327e-01 + 2.24437858065027e-02 1.32390653600456e-01 + 2.51638486209851e-02 1.40185390776313e-01 + 2.80540693616929e-02 1.48086392921044e-01 + 3.11274984420448e-02 1.56092928686715e-01 + 3.44001157831561e-02 1.64188362217945e-01 + 3.79177187393005e-02 1.72375966143609e-01 + 4.16646849926560e-02 1.80654162843707e-01 + 4.56512537052023e-02 1.89000948691041e-01 + 4.99225892060245e-02 1.97416570450993e-01 + 5.44698338929829e-02 2.05891322671270e-01 + 5.92918260184144e-02 2.14417289457577e-01 + 6.44160145304295e-02 2.22993746612869e-01 + 6.98159305366404e-02 2.31608742846102e-01 + 7.54878946072518e-02 2.40282535319170e-01 + 8.14642469861167e-02 2.48984354681939e-01 + 8.77580663650495e-02 2.57698961018178e-01 + 9.43678607129927e-02 2.66440162142133e-01 + 1.01246780087472e-01 2.75206180039123e-01 + 1.08490022177519e-01 2.83964906400976e-01 + 1.16094471655063e-01 2.92681310459094e-01 + 1.24065109981758e-01 3.01368874810491e-01 + 1.32395477216784e-01 3.10007275220192e-01 + 1.41086500227574e-01 3.18598717815315e-01 + 1.50147685360540e-01 3.27125561431207e-01 + 1.59621813471988e-01 3.35532617575323e-01 + 1.69502615483911e-01 3.43832270567839e-01 + 1.79752884670896e-01 3.52026493373218e-01 + 1.90418524701595e-01 3.60081623718128e-01 + 2.01500731306256e-01 3.67946998824770e-01 + 2.13024116459116e-01 3.75612295691097e-01 + 2.24977027905824e-01 3.83036556214115e-01 + 2.37386119168703e-01 3.90190325131644e-01 + 2.50220827634352e-01 3.97059834375605e-01 + 2.63486157011178e-01 4.03627585417911e-01 + 2.77200405330121e-01 4.09824445672274e-01 + 2.91322697430726e-01 4.15680465143853e-01 + 3.05872605910807e-01 4.21150853714774e-01 + 3.20838907597003e-01 4.26155460523677e-01 + 3.36206428200857e-01 4.30767202676439e-01 + 3.51955537288292e-01 4.34857660971663e-01 + 3.68094511497588e-01 4.38488630096873e-01 + 3.84602031937858e-01 4.41417500753063e-01 + 4.01473023198605e-01 4.43845808781760e-01 + 4.18666628201559e-01 4.45574766722892e-01 + 4.36160411740342e-01 4.46812307429669e-01 + 4.53941459200437e-01 4.47232809497104e-01 + 4.71967776133713e-01 4.47068136231835e-01 + 4.90231457739822e-01 4.46069379281288e-01 + 5.08685834897930e-01 4.44456482998312e-01 + 5.27309559438622e-01 4.42024286304108e-01 + 5.46073336604010e-01 4.38813441604050e-01 + 5.64938107648805e-01 4.34896034528419e-01 + 5.83864931958030e-01 4.30106824376037e-01 + 6.02835924204160e-01 4.24566187175953e-01 + 6.21801894360890e-01 4.18245339430837e-01 + 6.40737199502083e-01 4.11114558542411e-01 + 6.59589712606247e-01 4.03114925242496e-01 + 6.78336739998343e-01 3.94358529711782e-01 + 6.96937311976513e-01 3.84755252630685e-01 + 7.15350034206202e-01 3.74347733775554e-01 + 7.33523605859302e-01 3.63097365254780e-01 + 7.51442711231865e-01 3.51046959412823e-01 + 7.69213023352731e-01 3.38322866183633e-01 + 7.86673608143560e-01 3.24767272213086e-01 + 8.03803831121976e-01 3.10569980957121e-01 + 8.20475637671686e-01 2.95566987664258e-01 + 8.36725152360722e-01 2.79939829280643e-01 + 8.52471066036111e-01 2.63572071639127e-01 + 8.67696779627424e-01 2.46049597991331e-01 + 8.82402647448648e-01 2.27645590182963e-01 + 8.96515428339963e-01 2.08736595956593e-01 + 9.10025325780221e-01 1.89368369583489e-01 + 9.22900217079228e-01 1.69588698487343e-01 + 9.35134284371534e-01 1.49429924244329e-01 + 9.46645669809542e-01 1.28916253842683e-01 + 9.57448473074938e-01 1.08115085964173e-01 + 9.67585688617566e-01 8.70715245075931e-02 + 9.76982084519279e-01 6.58040097161125e-02 + 9.85613807762152e-01 4.43560536360272e-02 + 9.93218519837813e-01 2.41263073697223e-02 + 1.00000000000000e+00 2.83048458791951e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF03_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF03_Coords.txt new file mode 100644 index 000000000..3f82700ef --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF03_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.769206 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -6.98202382025260e-03 + 9.80834767873997e-01 -1.90179796696239e-02 + 9.61852255995075e-01 -3.63320975852868e-02 + 9.43179923406491e-01 -5.36877118252843e-02 + 9.24862426611918e-01 -7.28708762653504e-02 + 9.06830024352140e-01 -9.23269778669899e-02 + 8.88898967585284e-01 -1.11344595003099e-01 + 8.71445133815634e-01 -1.30265182990860e-01 + 8.54030390754022e-01 -1.48964635615624e-01 + 8.36579911607686e-01 -1.67463300243394e-01 + 8.18715172626965e-01 -1.85558517347262e-01 + 8.00558588059527e-01 -2.03263972652651e-01 + 7.81990696703358e-01 -2.20465320063424e-01 + 7.62900258837957e-01 -2.37066753954676e-01 + 7.43489268171699e-01 -2.53007505111437e-01 + 7.23621982001952e-01 -2.67447995603641e-01 + 7.03401471629250e-01 -2.81035492867168e-01 + 6.82870920945903e-01 -2.93754981581194e-01 + 6.62659413294272e-01 -3.05625255844838e-01 + 6.42603436803160e-01 -3.16668504131802e-01 + 6.22445599393879e-01 -3.26736750714674e-01 + 6.02237927245465e-01 -3.35832044390424e-01 + 5.82074045301830e-01 -3.44132888770917e-01 + 5.61902816262487e-01 -3.51318625272659e-01 + 5.41864292867829e-01 -3.57763447299228e-01 + 5.21916087180451e-01 -3.63101938550744e-01 + 5.02146453843174e-01 -3.67616270180785e-01 + 4.82600885614970e-01 -3.71383446547663e-01 + 4.63296155779684e-01 -3.74276034943754e-01 + 4.44260295327034e-01 -3.76245786255899e-01 + 4.25539481482788e-01 -3.77679719167966e-01 + 4.07150629946174e-01 -3.78115119688558e-01 + 3.89118930840054e-01 -3.77942018693164e-01 + 3.71463172945256e-01 -3.77147468634087e-01 + 3.54213548396234e-01 -3.75707101747278e-01 + 3.37386323169806e-01 -3.73537342607892e-01 + 3.21005242971150e-01 -3.70735884238189e-01 + 3.05040255123410e-01 -3.67595619638427e-01 + 2.89551986560191e-01 -3.63849320841211e-01 + 2.74534274847162e-01 -3.59598967234815e-01 + 2.59980661147191e-01 -3.54987878379677e-01 + 2.45938245316830e-01 -3.49798350072441e-01 + 2.32352830187915e-01 -3.44338884739176e-01 + 2.19290381829316e-01 -3.38417445285175e-01 + 2.06702032291888e-01 -3.32200545930015e-01 + 1.94619745416480e-01 -3.25676732822888e-01 + 1.83061637509742e-01 -3.18791417919712e-01 + 1.71949720854458e-01 -3.11781885379420e-01 + 1.61389796054621e-01 -3.04414961232928e-01 + 1.51286319870893e-01 -2.96927391288313e-01 + 1.41699248754421e-01 -2.89201794472399e-01 + 1.32597349945184e-01 -2.81332951016320e-01 + 1.23932858424903e-01 -2.73405252575813e-01 + 1.15774651453393e-01 -2.65329203213303e-01 + 1.08013873663349e-01 -2.57272694488001e-01 + 1.00647836151640e-01 -2.49246591602447e-01 + 9.36854971186436e-02 -2.41232856256926e-01 + 8.70718808096661e-02 -2.33310595513123e-01 + 8.09345125302092e-02 -2.25316080579249e-01 + 7.51369795606793e-02 -2.17419693287365e-01 + 6.95937116255178e-02 -2.09684275279043e-01 + 6.44892396590563e-02 -2.01946283593729e-01 + 5.97085797722394e-02 -1.94292841323205e-01 + 5.52214962739281e-02 -1.86768340477630e-01 + 5.09851258310386e-02 -1.79385762300365e-01 + 4.69472390145918e-02 -1.72187008397421e-01 + 4.32046300386224e-02 -1.65093280777882e-01 + 3.96793968650294e-02 -1.58146830165969e-01 + 3.63490071387516e-02 -1.51364396707872e-01 + 3.31969737549639e-02 -1.44730424271832e-01 + 3.02927452406545e-02 -1.38205026309698e-01 + 2.75868226704900e-02 -1.31807443446382e-01 + 2.50663627066653e-02 -1.25537892187780e-01 + 2.27536484396346e-02 -1.19389259849038e-01 + 2.06152136827147e-02 -1.13362842939108e-01 + 1.86303581631895e-02 -1.07470249596798e-01 + 1.68075525647898e-02 -1.01716770723107e-01 + 1.51235191285546e-02 -9.60866571205020e-02 + 1.35381777652061e-02 -9.05976189850365e-02 + 1.20411814816391e-02 -8.52478189701745e-02 + 1.06727700566209e-02 -8.00178676683363e-02 + 9.44048443640100e-03 -7.49063583950823e-02 + 8.30177556170514e-03 -6.99132269285528e-02 + 7.21453700081914e-03 -6.50413524824005e-02 + 6.20429156948530e-03 -6.02859038233976e-02 + 5.30060360857870e-03 -5.56384361008840e-02 + 4.48915525471482e-03 -5.10934780038635e-02 + 3.76086455877768e-03 -4.66546949876180e-02 + 3.11149488797042e-03 -4.23245381106549e-02 + 2.50985213776697e-03 -3.80973672356250e-02 + 1.98807400513673e-03 -3.39698784735762e-02 + 1.56705124832960e-03 -2.99399244909708e-02 + 1.20527780877689e-03 -2.60069033042325e-02 + 8.56579862332938e-04 -2.21691627962166e-02 + 5.08610577325269e-04 -1.84266779364513e-02 + 2.75499442921919e-04 -1.47703253464587e-02 + 1.57332666739617e-04 -1.11863736495250e-02 + 6.43059853935636e-05 -7.65772302970741e-03 + 1.92933015966268e-05 -4.11556879379595e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 9.29527473328834e-06 2.95434877714909e-03 + 5.93664496143818e-05 6.28010646953659e-03 + 1.81620349366217e-04 9.68888033557113e-03 + 3.67709691016037e-04 1.31791406913218e-02 + 6.13686671064857e-04 1.67556168393727e-02 + 8.97482052673667e-04 2.04245384190009e-02 + 1.21863320380775e-03 2.41852885946218e-02 + 1.57129202187603e-03 2.80361742868549e-02 + 2.00618566935029e-03 3.19789408051321e-02 + 2.55810183069262e-03 3.60155891668271e-02 + 3.16582996391523e-03 4.01488347784166e-02 + 3.80418879048698e-03 4.43812368118026e-02 + 4.52096615289868e-03 4.87154041847280e-02 + 5.34443402439076e-03 5.31472113820503e-02 + 6.27728582842189e-03 5.77234023044089e-02 + 7.29674312536527e-03 6.24471558962956e-02 + 8.36624427428395e-03 6.72899860819755e-02 + 9.49272877530388e-03 7.22471885724737e-02 + 1.07241277676056e-02 7.73147520086543e-02 + 1.20987980416197e-02 8.24956018582034e-02 + 1.35819616882167e-02 8.77943486892065e-02 + 1.51346043181368e-02 9.32297362976709e-02 + 1.67647333988820e-02 9.88054370983273e-02 + 1.85219208930542e-02 1.04508227846923e-01 + 2.04520882353715e-02 1.10341185388252e-01 + 2.25260134588507e-02 1.16314023193951e-01 + 2.47651930233171e-02 1.22405338242859e-01 + 2.72083522874889e-02 1.28609270034401e-01 + 2.98578636229339e-02 1.34928907762102e-01 + 3.27091764283451e-02 1.41361535076705e-01 + 3.57829544191354e-02 1.47906594964687e-01 + 3.90574212533939e-02 1.54574814437998e-01 + 4.25041517383334e-02 1.61402325325386e-01 + 4.61824095172905e-02 1.68353881528897e-01 + 5.01121869405545e-02 1.75417314585576e-01 + 5.42758827853064e-02 1.82623120289581e-01 + 5.86186478406298e-02 1.90004734704429e-01 + 6.32702065526216e-02 1.97488132437165e-01 + 6.82435177240864e-02 2.05047419543061e-01 + 7.35312688771197e-02 2.12704695491662e-01 + 7.91332308641261e-02 2.20458126349631e-01 + 8.50474115501467e-02 2.28323817368810e-01 + 9.12896236565962e-02 2.36285806370059e-01 + 9.79371398061013e-02 2.44261728733127e-01 + 1.04976031179966e-01 2.52280170793524e-01 + 1.12361980655104e-01 2.60383283975909e-01 + 1.20160061430343e-01 2.68501504386642e-01 + 1.28386535215485e-01 2.76588410749449e-01 + 1.37077437889882e-01 2.84610939432931e-01 + 1.46233295199701e-01 2.92539354446157e-01 + 1.55892708154606e-01 3.00307320319761e-01 + 1.66023102535637e-01 3.07941633369421e-01 + 1.76634810401484e-01 3.15404580836057e-01 + 1.87772238500148e-01 3.22601079761431e-01 + 1.99380452093128e-01 3.29607261031190e-01 + 2.11502061360919e-01 3.36328488139877e-01 + 2.24137187764194e-01 3.42690274730282e-01 + 2.37267679522408e-01 3.48751713132321e-01 + 2.50887253556927e-01 3.54429374364281e-01 + 2.65013975431136e-01 3.59690865083901e-01 + 2.79643042549013e-01 3.64363260137539e-01 + 2.94776020796585e-01 3.68491569434143e-01 + 3.10371359619035e-01 3.72038019951494e-01 + 3.26415567242815e-01 3.75095397282888e-01 + 3.42902581681678e-01 3.77422434261883e-01 + 3.59799947346092e-01 3.79205417543800e-01 + 3.77109233596075e-01 3.80158164688475e-01 + 3.94785711787212e-01 3.80589509440625e-01 + 4.12822355024043e-01 3.80171543423317e-01 + 4.31191223629822e-01 3.79021810669647e-01 + 4.49869874044682e-01 3.77219870885478e-01 + 4.68817102451489e-01 3.74524445945872e-01 + 4.88031332191438e-01 3.71142852296784e-01 + 5.07471281260393e-01 3.67001348527123e-01 + 5.27115873722068e-01 3.62081041787531e-01 + 5.46919076822887e-01 3.56269428602734e-01 + 5.66876049939378e-01 3.49744818726614e-01 + 5.86940658459593e-01 3.42370112622580e-01 + 6.07088559455973e-01 3.34198400770173e-01 + 6.27269766671869e-01 3.25161608796345e-01 + 6.47478890681672e-01 3.15336683933397e-01 + 6.68210536487530e-01 3.04899568042315e-01 + 6.89049753996292e-01 2.93582791221168e-01 + 7.09856174838898e-01 2.81692192132175e-01 + 7.30428367404325e-01 2.68937514849536e-01 + 7.50882346146651e-01 2.55596741501902e-01 + 7.71065878525355e-01 2.41468804692806e-01 + 7.90987837217720e-01 2.26118664394260e-01 + 8.10702801874189e-01 2.09879086362628e-01 + 8.30069391308265e-01 1.93093574339908e-01 + 8.49090956874155e-01 1.75817058135692e-01 + 8.67765081515085e-01 1.58104454253349e-01 + 8.86081421836486e-01 1.39987639518947e-01 + 9.03873225582971e-01 1.21429843025707e-01 + 9.21238072395891e-01 1.02541028134966e-01 + 9.38260644661202e-01 8.33908662984106e-02 + 9.54737987566554e-01 6.39147028088521e-02 + 9.70698661556025e-01 4.41253142037537e-02 + 9.85768007051292e-01 2.58977979214173e-02 + 1.00000000000000e+00 6.34194566037652e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF04_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF04_Coords.txt new file mode 100644 index 000000000..721450653 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF04_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.624332 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -9.71642634064091e-03 + 9.74566262776006e-01 -1.72485125625020e-02 + 9.49501910410526e-01 -2.85971390937681e-02 + 9.25043722072566e-01 -4.12875308519712e-02 + 9.01207317357372e-01 -5.58070127686063e-02 + 8.77936813945588e-01 -7.10962018768138e-02 + 8.55088306995059e-01 -8.65960408789124e-02 + 8.33161663943745e-01 -1.02289815489111e-01 + 8.11633319301743e-01 -1.17970348476513e-01 + 7.90394432047789e-01 -1.33708814509592e-01 + 7.69036951536935e-01 -1.49138781474838e-01 + 7.47684266585925e-01 -1.64317598035691e-01 + 7.26188318253956e-01 -1.79064157731590e-01 + 7.04418995957783e-01 -1.93212758588249e-01 + 6.82578522102940e-01 -2.06832937338751e-01 + 6.60498196549559e-01 -2.19455024355080e-01 + 6.38278089170845e-01 -2.31324905853868e-01 + 6.15953529832116e-01 -2.42410466319655e-01 + 5.94261726928824e-01 -2.52721580204685e-01 + 5.72984268991286e-01 -2.62275234068403e-01 + 5.51801975248242e-01 -2.70910649505776e-01 + 5.30755311053496e-01 -2.78630961994022e-01 + 5.09930482348364e-01 -2.85615761972385e-01 + 4.89270524520615e-01 -2.91531513456085e-01 + 4.68903544133467e-01 -2.96759617622080e-01 + 4.48780101801765e-01 -3.00924999947518e-01 + 4.28982614333324e-01 -3.04300457412711e-01 + 4.09546530145736e-01 -3.06972407383597e-01 + 3.90485381399955e-01 -3.08815080229474e-01 + 3.71823897938260e-01 -3.09774063112961e-01 + 3.53599199260094e-01 -3.10265327675904e-01 + 3.35824329134662e-01 -3.09805881255561e-01 + 3.18518477795911e-01 -3.08793431060827e-01 + 3.01691810414072e-01 -3.07236761407972e-01 + 2.85371469931752e-01 -3.05086371325167e-01 + 2.69565006969955e-01 -3.02280405400480e-01 + 2.54290356693058e-01 -2.98932074758517e-01 + 2.39512618851791e-01 -2.95298049679837e-01 + 2.25283038756305e-01 -2.91138376739004e-01 + 2.11592453328895e-01 -2.86550852844685e-01 + 1.98425231746033e-01 -2.81665256560879e-01 + 1.85823317246575e-01 -2.76298856316761e-01 + 1.73726680427325e-01 -2.70749935746989e-01 + 1.62193274152271e-01 -2.64807436940072e-01 + 1.51171240700693e-01 -2.58665324617438e-01 + 1.40684595943995e-01 -2.52281346312100e-01 + 1.30749613954185e-01 -2.45620162140532e-01 + 1.21278865975265e-01 -2.38911216174241e-01 + 1.12377472655157e-01 -2.31920280291021e-01 + 1.03941333590383e-01 -2.24883486334143e-01 + 9.60286329095688e-02 -2.17683167131111e-01 + 8.86033870431468e-02 -2.10406419155257e-01 + 8.16153879468848e-02 -2.03145989840775e-01 + 7.51294789955145e-02 -1.95797912750509e-01 + 6.90348613931980e-02 -1.88541551386198e-01 + 6.33249372532557e-02 -1.81380962857463e-01 + 5.80075109452849e-02 -1.74297906948661e-01 + 5.30219267081224e-02 -1.67370399367911e-01 + 4.84954955836551e-02 -1.60425922213448e-01 + 4.42842110888514e-02 -1.53638667096364e-01 + 4.03044260933915e-02 -1.47080488694545e-01 + 3.67323777482895e-02 -1.40565084455230e-01 + 3.34575208988394e-02 -1.34189980722174e-01 + 3.04421107361446e-02 -1.27992394417725e-01 + 2.76479364420970e-02 -1.21988428406627e-01 + 2.50166795277680e-02 -1.16217266125412e-01 + 2.26443301337367e-02 -1.10591550927061e-01 + 2.04540977121363e-02 -1.05156321180620e-01 + 1.84161696820084e-02 -9.99218132149965e-02 + 1.65178308812297e-02 -9.48754266590668e-02 + 1.48171454789641e-02 -8.99679095631188e-02 + 1.32681441700483e-02 -8.52181835757083e-02 + 1.18586914774380e-02 -8.06246602233143e-02 + 1.06020975958007e-02 -7.61735639611402e-02 + 9.47342930429751e-03 -7.18679427909873e-02 + 8.45207809860316e-03 -6.77134773390175e-02 + 7.54720746694807e-03 -6.37105086552712e-02 + 6.74047819110253e-03 -5.98448548394365e-02 + 5.98504985754166e-03 -5.61298923522440e-02 + 5.27225740142187e-03 -5.25610978238243e-02 + 4.65321774881890e-03 -4.91181741309501e-02 + 4.12296895127314e-03 -4.57945900783847e-02 + 3.63738527083959e-03 -4.25898704705985e-02 + 3.16250400001630e-03 -3.95073034820089e-02 + 2.71085861084431e-03 -3.65377482009210e-02 + 2.30962665668815e-03 -3.36701978338879e-02 + 1.96134185426104e-03 -3.08993431004944e-02 + 1.65108860376271e-03 -2.82255060863577e-02 + 1.36800251329289e-03 -2.56483771099082e-02 + 1.10328325521382e-03 -2.31631118263908e-02 + 8.83376358736339e-04 -2.07642627126417e-02 + 7.16755602360983e-04 -1.84468649930584e-02 + 5.73421433174496e-04 -1.62097041978132e-02 + 4.25148171827372e-04 -1.40516775115431e-02 + 2.38556369747849e-04 -1.19705082094365e-02 + 1.09390787757801e-04 -9.95408898257298e-03 + 6.33346492546030e-05 -7.98740626268756e-03 + 2.88287343324208e-05 -6.04969939788004e-03 + 1.16600110814853e-05 -4.05519021832282e-03 + 2.16651674930287e-06 -1.57032896664849e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.31003235574355e-05 1.73106401320313e-03 + 9.30422041997530e-05 3.52428162599983e-03 + 2.11025576752647e-04 5.37966781911293e-03 + 3.57457374145506e-04 7.30202292439827e-03 + 4.85621425137141e-04 9.29703284684700e-03 + 6.13494894481413e-04 1.13659056790816e-02 + 7.54467541656376e-04 1.35091518972800e-02 + 9.40377671252660e-04 1.57278207291958e-02 + 1.19703182185915e-03 1.80243650039935e-02 + 1.47553559159636e-03 2.04041740815275e-02 + 1.75436593604378e-03 2.28717397255554e-02 + 2.06192565122798e-03 2.54286466830806e-02 + 2.42666484991166e-03 2.80742457498069e-02 + 2.85467837137232e-03 3.08702053786260e-02 + 3.31139231873606e-03 3.38176337365492e-02 + 3.76307464678309e-03 3.68817117719371e-02 + 4.22728338879208e-03 4.00617573577723e-02 + 4.74379758757201e-03 4.33534812545661e-02 + 5.35316830685410e-03 4.67601295322608e-02 + 6.03488368773558e-03 5.02918381665979e-02 + 6.73868300629939e-03 5.39689395585417e-02 + 7.47232010058160e-03 5.77970724053007e-02 + 8.29576045345060e-03 6.17661133650473e-02 + 9.24988088914002e-03 6.58785026423893e-02 + 1.03054798617071e-02 7.01475162399407e-02 + 1.14772498601048e-02 7.45597209637453e-02 + 1.27959342896978e-02 7.91068909815389e-02 + 1.42743593470540e-02 8.37971217667645e-02 + 1.59055536986715e-02 8.86321335789381e-02 + 1.77056178988397e-02 9.36111755258708e-02 + 1.96629878191332e-02 9.87537576347651e-02 + 2.17468160943067e-02 1.04096037528368e-01 + 2.40214045583360e-02 1.09605860186262e-01 + 2.65081198717637e-02 1.15274448761068e-01 + 2.91873021803491e-02 1.21134217110489e-01 + 3.20131918585522e-02 1.27229390019280e-01 + 3.51116269452738e-02 1.33476082120976e-01 + 3.85039306408837e-02 1.39856247104740e-01 + 4.21797599909819e-02 1.46391310310830e-01 + 4.61463022995018e-02 1.53085953007629e-01 + 5.04035533716038e-02 1.59957710988303e-01 + 5.49695451924866e-02 1.66992476727626e-01 + 5.99277179460879e-02 1.74105424050246e-01 + 6.52666637480402e-02 1.81323573247643e-01 + 7.09485466563533e-02 1.88699467773067e-01 + 7.70374253010350e-02 1.96155138002796e-01 + 8.35552789422337e-02 2.03652751749739e-01 + 9.05407145304067e-02 2.11147038443818e-01 + 9.80019794733488e-02 2.18615633050332e-01 + 1.05976971999220e-01 2.25983125583401e-01 + 1.14438673502782e-01 2.33290258661611e-01 + 1.23399438760242e-01 2.40491608500669e-01 + 1.32909430774217e-01 2.47492670111105e-01 + 1.42918126672730e-01 2.54373796272997e-01 + 1.53472366649652e-01 2.61027872323453e-01 + 1.64578093921241e-01 2.67393604642385e-01 + 1.76218760434861e-01 2.73509925205950e-01 + 1.88396023286940e-01 2.79327862327373e-01 + 2.01129207782938e-01 2.84769469612701e-01 + 2.14422207745004e-01 2.89727632879917e-01 + 2.28278833088294e-01 2.94159777803250e-01 + 2.42664489937494e-01 2.98115508635489e-01 + 2.57572126140852e-01 3.01609267024679e-01 + 2.72999741741614e-01 3.04493520228798e-01 + 2.88925191758171e-01 3.06888811630994e-01 + 3.05353954337606e-01 3.08543878145170e-01 + 3.22249985640645e-01 3.09757111271307e-01 + 3.39614021885289e-01 3.10195809544629e-01 + 3.57423374738509e-01 3.09996415126661e-01 + 3.75667657256502e-01 3.09229878389492e-01 + 3.94311222365979e-01 3.07659100625282e-01 + 4.13360064269987e-01 3.05497764905269e-01 + 4.32783885331201e-01 3.02664518298104e-01 + 4.52566967228083e-01 2.99151393335727e-01 + 4.72674112897351e-01 2.94841351168426e-01 + 4.93109209635198e-01 2.89914511814503e-01 + 5.13831120976063e-01 2.84237840990710e-01 + 5.34827809753671e-01 2.77863459423695e-01 + 5.56057906294380e-01 2.70722933994280e-01 + 5.77521194840359e-01 2.62901110366512e-01 + 5.99829836848439e-01 2.54566814530205e-01 + 6.22506724894467e-01 2.45450856688223e-01 + 6.45368780109707e-01 2.35863728828238e-01 + 6.68210612045621e-01 2.25506716426081e-01 + 6.91167368900116e-01 2.14661225392138e-01 + 7.14074465159764e-01 2.03120669039288e-01 + 7.36949747401070e-01 1.90789343474949e-01 + 7.59863188257323e-01 1.77885323044000e-01 + 7.82661057281483e-01 1.64420614784108e-01 + 8.05349546374517e-01 1.50457320180112e-01 + 8.27938878663187e-01 1.36056474082472e-01 + 8.50415014406182e-01 1.21248691507024e-01 + 8.72594077709478e-01 1.05918263948501e-01 + 8.94596087160469e-01 9.02269863959043e-02 + 9.16507559126626e-01 7.42811192647979e-02 + 9.38094451803533e-01 5.79162909147185e-02 + 9.59400181690374e-01 4.11464730221068e-02 + 9.80048776190998e-01 2.49856736599723e-02 + 1.00000000000000e+00 7.92932972700357e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF05_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF05_Coords.txt new file mode 100644 index 000000000..8da4cd38b --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF05_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.514955 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -9.48656396105095e-03 + 9.72840606941857e-01 -1.36962014395119e-02 + 9.46078665224233e-01 -2.02185876251446e-02 + 9.19973961945074e-01 -2.88930335152228e-02 + 8.94533747241678e-01 -3.92585512534973e-02 + 8.69716743818389e-01 -5.07892297260182e-02 + 8.45404217836100e-01 -6.30255076712842e-02 + 8.21654026778876e-01 -7.57485696970202e-02 + 7.98283759002696e-01 -8.86883432449780e-02 + 7.75329271831466e-01 -1.01920993318667e-01 + 7.52539198083009e-01 -1.15001548310258e-01 + 7.29987291768993e-01 -1.27996590385558e-01 + 7.07563153131069e-01 -1.40683661654938e-01 + 6.85172067955476e-01 -1.52858553348105e-01 + 6.62923118608620e-01 -1.64639628118153e-01 + 6.40696856369558e-01 -1.75757910469329e-01 + 6.18545748556321e-01 -1.86242016411641e-01 + 5.96484252981477e-01 -1.96048482251273e-01 + 5.74683405404730e-01 -2.05179026639309e-01 + 5.53125163387251e-01 -2.13645477907744e-01 + 5.31724611099582e-01 -2.21292516113910e-01 + 5.10517122428034e-01 -2.28126252972195e-01 + 4.89582770581606e-01 -2.34309546268750e-01 + 4.68866560995820e-01 -2.39540978444106e-01 + 4.48486943452684e-01 -2.44162019283317e-01 + 4.28395718624642e-01 -2.47841101667132e-01 + 4.08669551824791e-01 -2.50807626884326e-01 + 3.89340209808503e-01 -2.53140060000932e-01 + 3.70420787777419e-01 -2.54737273795713e-01 + 3.51934773713027e-01 -2.55557670336759e-01 + 3.33915721860308e-01 -2.55961471373511e-01 + 3.16375689552684e-01 -2.55547405184429e-01 + 2.99331902562281e-01 -2.54647667037423e-01 + 2.82792267925242e-01 -2.53280680768284e-01 + 2.66782150396537e-01 -2.51397266281235e-01 + 2.51306751701501e-01 -2.48971787278483e-01 + 2.36381833612861e-01 -2.46089570742273e-01 + 2.21973382558830e-01 -2.42944077496848e-01 + 2.08127509858231e-01 -2.39365589313426e-01 + 1.94834856183190e-01 -2.35432006167963e-01 + 1.82078171881656e-01 -2.31241602911384e-01 + 1.69895644064110e-01 -2.26675086937451e-01 + 1.58228842419297e-01 -2.21953512713920e-01 + 1.47130181454113e-01 -2.16921865203404e-01 + 1.36549534205897e-01 -2.11735251211314e-01 + 1.26507525625832e-01 -2.06351910874591e-01 + 1.17018668978727e-01 -2.00758508167666e-01 + 1.07997390224493e-01 -1.95120065868605e-01 + 9.95426775770732e-02 -1.89273174900195e-01 + 9.15532076887165e-02 -1.83389749548204e-01 + 8.40831145137000e-02 -1.77391482638144e-01 + 7.70968838491931e-02 -1.71337646506680e-01 + 7.05459965793911e-02 -1.65295981162507e-01 + 6.44904314851254e-02 -1.59193588217950e-01 + 5.88244415575596e-02 -1.53156952743919e-01 + 5.35402266907589e-02 -1.47189632159984e-01 + 4.86444527663975e-02 -1.41280880065564e-01 + 4.40775936791780e-02 -1.35485415259679e-01 + 3.99592418033938e-02 -1.29692193464287e-01 + 3.61504082127439e-02 -1.24020500681899e-01 + 3.25717835686950e-02 -1.18521608693003e-01 + 2.93868213439033e-02 -1.13074578595961e-01 + 2.64916645750274e-02 -1.07746384232412e-01 + 2.38481146170547e-02 -1.02560624542237e-01 + 2.14207461839876e-02 -9.75295414431916e-02 + 1.91521439569044e-02 -9.26791532952389e-02 + 1.71321754847284e-02 -8.79540863557655e-02 + 1.52878166162008e-02 -8.33854642817067e-02 + 1.35881831551108e-02 -7.89800667683451e-02 + 1.20209750328273e-02 -7.47347165268129e-02 + 1.06364748801299e-02 -7.06207339933677e-02 + 9.39166786225165e-03 -6.66500167144352e-02 + 8.27469446488970e-03 -6.28211335159306e-02 + 7.29487154836939e-03 -5.91252842403580e-02 + 6.43028927166542e-03 -5.55649226478585e-02 + 5.66215515607486e-03 -5.21393791996277e-02 + 4.99947061673955e-03 -4.88454504611924e-02 + 4.42485176677813e-03 -4.56775364268270e-02 + 3.89212428020704e-03 -4.26420451925948e-02 + 3.39316150120602e-03 -3.97344945180189e-02 + 2.97943724139447e-03 -3.69422503973742e-02 + 2.64175829490555e-03 -3.42595453950307e-02 + 2.33664786405139e-03 -3.16878039979117e-02 + 2.03361989981538e-03 -2.92280085103651e-02 + 1.73985196788776e-03 -2.68735275609913e-02 + 1.47949772083190e-03 -2.46167687741657e-02 + 1.25984553528219e-03 -2.24525233030876e-02 + 1.06574231195736e-03 -2.03787168318281e-02 + 8.84827443394758e-04 -1.83934134523332e-02 + 7.15057323509945e-04 -1.64927156977226e-02 + 5.79711662137675e-04 -1.46717766842614e-02 + 4.83295375722760e-04 -1.29261464602622e-02 + 4.00829409230448e-04 -1.12543243420230e-02 + 3.09982380589195e-04 -9.65516180280786e-03 + 1.72899641117143e-04 -8.12703150071411e-03 + 7.47233007435967e-05 -6.66261496907640e-03 + 4.67073999648873e-05 -5.25467075684921e-03 + 2.59725866882924e-05 -3.89819748976564e-03 + 1.18413004582549e-05 -2.57454395680847e-03 + 3.41684925894820e-06 -1.21348932597848e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.01581255597418e-05 1.26934702675038e-03 + 7.74240343158750e-05 2.59471512779070e-03 + 1.75366239773269e-04 3.97665508765237e-03 + 2.91930921968732e-04 5.41986986517538e-03 + 3.76475076359129e-04 6.92970379161549e-03 + 4.51388226666674e-04 8.50790013113433e-03 + 5.34750418488613e-04 1.01556938988918e-02 + 6.51697625229670e-04 1.18739982577044e-02 + 8.24599765875901e-04 1.36653599113785e-02 + 1.01071983881348e-03 1.55357739987462e-02 + 1.19030451650175e-03 1.74901750636768e-02 + 1.38539350995595e-03 1.95299304002510e-02 + 1.62189229558811e-03 2.16556997805338e-02 + 1.90536530357255e-03 2.38831765524217e-02 + 2.20054166615255e-03 2.62185856040360e-02 + 2.47750104487940e-03 2.86611036700787e-02 + 2.75632845646568e-03 3.12123784070689e-02 + 3.07266857768396e-03 3.38708853060449e-02 + 3.46724466895792e-03 3.66369415300308e-02 + 3.92602561753828e-03 3.95187586343816e-02 + 4.39776249690974e-03 4.25291596936223e-02 + 4.89082376677703e-03 4.56727927200617e-02 + 5.46548066273609e-03 4.89418848445653e-02 + 6.16004168099696e-03 5.23379836078377e-02 + 6.94731884833854e-03 5.58688557470242e-02 + 7.83690703832491e-03 5.95360043473819e-02 + 8.85646325223165e-03 6.33334786666512e-02 + 1.00224438912705e-02 6.72649794974707e-02 + 1.13271531282282e-02 7.13351522567059e-02 + 1.27853843157742e-02 7.55428135575574e-02 + 1.43900443702264e-02 7.98996571269729e-02 + 1.61127066078158e-02 8.44249851360024e-02 + 1.80162538012792e-02 8.90978257779467e-02 + 2.01217289294435e-02 9.39129149949648e-02 + 2.24108044095857e-02 9.88889126820983e-02 + 2.48434936999150e-02 1.04053593635371e-01 + 2.75385844110642e-02 1.09350087590414e-01 + 3.05192601932701e-02 1.14765946365004e-01 + 3.37754571042651e-02 1.20313140801160e-01 + 3.73171936504549e-02 1.25990202253645e-01 + 4.11459005110312e-02 1.31804448186211e-01 + 4.52798025665955e-02 1.37745201477958e-01 + 4.98003770024522e-02 1.43752224406034e-01 + 5.46986185546578e-02 1.49835139169270e-01 + 5.99410148867650e-02 1.56027655166371e-01 + 6.55882880596959e-02 1.62274915568705e-01 + 7.16630883072623e-02 1.68552257432057e-01 + 7.82036394917015e-02 1.74817326964403e-01 + 8.52202984753558e-02 1.81052099760509e-01 + 9.27488483454373e-02 1.87201792016966e-01 + 1.00765375168914e-01 1.93295668457135e-01 + 1.09282471328646e-01 1.99296163302621e-01 + 1.18349363752415e-01 2.05134049083067e-01 + 1.27919830762737e-01 2.10859496289749e-01 + 1.38039457348017e-01 2.16390064332880e-01 + 1.48715458535147e-01 2.21681961446068e-01 + 1.59932535544892e-01 2.26756173098125e-01 + 1.71694393140079e-01 2.31583212636952e-01 + 1.84019551500311e-01 2.36090365207779e-01 + 1.96913867605012e-01 2.40215730883121e-01 + 2.10381307451439e-01 2.43901057578372e-01 + 2.24390895912656e-01 2.47206899638110e-01 + 2.38937518680130e-01 2.50116017868114e-01 + 2.54020219747656e-01 2.52553361485421e-01 + 2.69620661051015e-01 2.54578775647179e-01 + 2.85744901067850e-01 2.56007928773343e-01 + 3.02361000288323e-01 2.57072371520650e-01 + 3.19471509633137e-01 2.57501174047499e-01 + 3.37056195715505e-01 2.57409757891637e-01 + 3.55108318760367e-01 2.56853784442449e-01 + 3.73595373999747e-01 2.55637156548633e-01 + 3.92524780409882e-01 2.53937128468356e-01 + 4.11870628080651e-01 2.51683355571096e-01 + 4.31619234237375e-01 2.48874345611787e-01 + 4.51739981557210e-01 2.45407449944367e-01 + 4.72238539511655e-01 2.41436040090003e-01 + 4.93077058996197e-01 2.36847910059503e-01 + 5.14247211700184e-01 2.31687679817155e-01 + 5.35711789990614e-01 2.25893544748172e-01 + 5.57471731239222e-01 2.19545113873324e-01 + 5.79666413016473e-01 2.12788432007717e-01 + 6.02131024227827e-01 2.05381668832976e-01 + 6.24879602371304e-01 1.97608597463204e-01 + 6.47780504771865e-01 1.89190691864424e-01 + 6.70915817859524e-01 1.80389766169745e-01 + 6.94174487203368e-01 1.71008917960904e-01 + 7.17562162071122e-01 1.61120523725830e-01 + 7.41118468038099e-01 1.50873451443005e-01 + 7.64738887738949e-01 1.40114013612391e-01 + 7.88419604133922e-01 1.28901365896917e-01 + 8.12162031228035e-01 1.17295368180232e-01 + 8.35949432508080e-01 1.05324952566986e-01 + 8.59653514757717e-01 9.28302114766856e-02 + 8.83347789105401e-01 7.99971257228012e-02 + 9.07079486599252e-01 6.69595219191380e-02 + 9.30687736079344e-01 5.35088089422941e-02 + 9.54189180336441e-01 3.97202506061085e-02 + 9.77314531562069e-01 2.54142880793791e-02 + 1.00000000000000e+00 1.04295559718988e-02 diff --git a/Test_Cases/BAR_10/Airfoils/AF06_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF06_Coords.txt new file mode 100644 index 000000000..5853433f8 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF06_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.456525 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -7.44666281695844e-03 + 9.72918183576513e-01 -9.15911270795245e-03 + 9.46204724671915e-01 -1.31258065284522e-02 + 9.20096606838603e-01 -1.96223411718914e-02 + 8.94598102350505e-01 -2.69678027350062e-02 + 8.69689142846133e-01 -3.57223687995956e-02 + 8.45277538320979e-01 -4.54873367994984e-02 + 8.21045993029977e-01 -5.60293976263381e-02 + 7.97099405799564e-01 -6.70330133870780e-02 + 7.73595262047240e-01 -7.85002288777819e-02 + 7.50424008797192e-01 -9.00334835633694e-02 + 7.27618272266431e-01 -1.01658543906398e-01 + 7.05107206637304e-01 -1.13150525351387e-01 + 6.82830630222312e-01 -1.24304859372436e-01 + 6.60817263963187e-01 -1.35172472737249e-01 + 6.38996329811344e-01 -1.45517949092287e-01 + 6.17379122441821e-01 -1.55338098029027e-01 + 5.95962965479850e-01 -1.64579144153592e-01 + 5.74445504101948e-01 -1.73229983166348e-01 + 5.52991453212559e-01 -1.81296040973140e-01 + 5.31719145055178e-01 -1.88646204234435e-01 + 5.10661561664686e-01 -1.95285030442107e-01 + 4.89890259123694e-01 -2.01335979732024e-01 + 4.69357011638984e-01 -2.06567330620587e-01 + 4.49165242659801e-01 -2.11234111775318e-01 + 4.29272866458520e-01 -2.15083680067765e-01 + 4.09744983879295e-01 -2.18270228853243e-01 + 3.90609504329963e-01 -2.20852501210896e-01 + 3.71879512704028e-01 -2.22767275159606e-01 + 3.53576721031948e-01 -2.23993670805267e-01 + 3.35731008344511e-01 -2.24797067600170e-01 + 3.18354049552223e-01 -2.24898602216213e-01 + 3.01461699192948e-01 -2.24538542474144e-01 + 2.85061996491912e-01 -2.23740400624396e-01 + 2.69177220385988e-01 -2.22464992847351e-01 + 2.53812657454027e-01 -2.20726772807021e-01 + 2.38982303292388e-01 -2.18563149481404e-01 + 2.24658748235927e-01 -2.16116021256186e-01 + 2.10880689008403e-01 -2.13286295711303e-01 + 1.97640635694906e-01 -2.10131359106842e-01 + 1.84924262326519e-01 -2.06723315320932e-01 + 1.72762836703387e-01 -2.02997071857664e-01 + 1.61107777173153e-01 -1.99099059190142e-01 + 1.50001668890566e-01 -1.94938237019285e-01 + 1.39402195204721e-01 -1.90623059785797e-01 + 1.29326910815726e-01 -1.86121134203991e-01 + 1.19786656077903e-01 -1.81435493825933e-01 + 1.10709621444830e-01 -1.76673367805738e-01 + 1.02177502231631e-01 -1.71737244735524e-01 + 9.41044537663916e-02 -1.66741661879130e-01 + 8.65344081881539e-02 -1.61644738738498e-01 + 7.94377825298346e-02 -1.56482093291066e-01 + 7.27731506755865e-02 -1.51298516496917e-01 + 6.65901803300577e-02 -1.46052663712660e-01 + 6.07993667197631e-02 -1.40823363862290e-01 + 5.53926305885527e-02 -1.35617222259988e-01 + 5.03743766212083e-02 -1.30431368528356e-01 + 4.56924664267667e-02 -1.25302991082614e-01 + 4.14457674928095e-02 -1.20174940569952e-01 + 3.75145962037611e-02 -1.15121576050927e-01 + 3.38292352685475e-02 -1.10176715716853e-01 + 3.05257334311454e-02 -1.05278560193776e-01 + 2.75145362686650e-02 -1.00467407177438e-01 + 2.47616168607021e-02 -9.57582988777447e-02 + 2.22349024253392e-02 -9.11603568425808e-02 + 1.98829744367168e-02 -8.66902922759082e-02 + 1.77810478456948e-02 -8.23203807800765e-02 + 1.58641362710728e-02 -7.80704779981982e-02 + 1.41033227051199e-02 -7.39463145813766e-02 + 1.24842987741253e-02 -6.99518686344176e-02 + 1.10465047823337e-02 -6.60774303726950e-02 + 9.75147528886917e-03 -6.23292119710380e-02 + 8.58742542718846e-03 -5.87064407007260e-02 + 7.56044970036918e-03 -5.52059209099082e-02 + 6.65009507030315e-03 -5.18290412371687e-02 + 5.84151681548893e-03 -4.85712655921788e-02 + 5.14289515023329e-03 -4.54272199284169e-02 + 4.53574899308539e-03 -4.23980825340783e-02 + 3.97897644143650e-03 -3.94851537092384e-02 + 3.46411553598449e-03 -3.66849413380139e-02 + 3.03721066710374e-03 -3.39909995394639e-02 + 2.68770620094912e-03 -3.13990019532669e-02 + 2.37415978187577e-03 -2.89123596155082e-02 + 2.06828255514918e-03 -2.65305863880516e-02 + 1.77419509841725e-03 -2.42505184863958e-02 + 1.51139036422737e-03 -2.20675063112932e-02 + 1.28704678107768e-03 -1.99754713218614e-02 + 1.08903507675156e-03 -1.79710461408103e-02 + 9.05363577754731e-04 -1.60542537960543e-02 + 7.35305360004500e-04 -1.42204469966738e-02 + 5.98708082308955e-04 -1.24650492347280e-02 + 4.97924683994502e-04 -1.07846625947853e-02 + 4.12986513439255e-04 -9.17747980492357e-03 + 3.24365225348288e-04 -7.64076045514536e-03 + 2.00298582881886e-04 -6.17350575755084e-03 + 1.08484161361560e-04 -4.77252215118873e-03 + 7.32134611271489e-05 -3.43552686594253e-03 + 4.45750428274423e-05 -2.16692250624479e-03 + 2.06142271739053e-05 -9.89815504250099e-04 + 0.00000000000000e+00 0.00000000000000e+00 + 1.19243921289759e-05 1.19235009019659e-03 + 4.42660824263230e-05 2.43780773648318e-03 + 1.06474872578050e-04 3.73860303757840e-03 + 2.01946608546350e-04 5.09566675952792e-03 + 3.13407035186741e-04 6.51322781031428e-03 + 4.01292894970305e-04 7.99588053523477e-03 + 4.83407318294483e-04 9.54542292558276e-03 + 5.74222093960781e-04 1.11634716539293e-02 + 6.93719421619902e-04 1.28511932337703e-02 + 8.61562042329241e-04 1.46109923325075e-02 + 1.04700564100886e-03 1.64482256745781e-02 + 1.23079542101172e-03 1.83673863580232e-02 + 1.43208260559862e-03 2.03701449234521e-02 + 1.66978424959742e-03 2.24584318010744e-02 + 1.94751992618770e-03 2.46295633885597e-02 + 2.23670922353670e-03 2.68889657645839e-02 + 2.51349976877511e-03 2.92480353920700e-02 + 2.79622563406443e-03 3.17098582528629e-02 + 3.11675175433700e-03 3.42752631143253e-02 + 3.51503887006770e-03 3.69425444480260e-02 + 3.98164003915116e-03 3.97176376315634e-02 + 4.46945233198346e-03 4.26076612726390e-02 + 4.98853685871343e-03 4.56161081056408e-02 + 5.59443420669318e-03 4.87360563952725e-02 + 6.32332271683438e-03 5.19686143099468e-02 + 7.15236255222750e-03 5.53166550733219e-02 + 8.08420524120440e-03 5.87913164680059e-02 + 9.14452619453818e-03 6.23889141952993e-02 + 1.03512157768270e-02 6.61088096149761e-02 + 1.16962653263744e-02 6.99570571559764e-02 + 1.31944459537348e-02 7.39321809428059e-02 + 1.48422742605095e-02 7.80381324116086e-02 + 1.66187207711196e-02 8.22813252225565e-02 + 1.85803180442001e-02 8.66483462919356e-02 + 2.07465168345008e-02 9.11357188155611e-02 + 2.31036419368361e-02 9.57510990742747e-02 + 2.56195653641862e-02 1.00507170898809e-01 + 2.83992551812904e-02 1.05369125546819e-01 + 3.14646123141802e-02 1.10326870906252e-01 + 3.48083603015221e-02 1.15385018363495e-01 + 3.84426066990471e-02 1.20535163880964e-01 + 4.23712770818638e-02 1.25775499994500e-01 + 4.66117282828826e-02 1.31096711701078e-01 + 5.12361351529372e-02 1.36457362619750e-01 + 5.62399719743125e-02 1.41852716896124e-01 + 6.15965010792471e-02 1.47297477897237e-01 + 6.73585289490389e-02 1.52755824676802e-01 + 7.35460208568981e-02 1.58210791423108e-01 + 8.01944636919578e-02 1.63623092819400e-01 + 8.73139166301490e-02 1.68974952179882e-01 + 9.49345892528160e-02 1.74230154816016e-01 + 1.03036569931407e-01 1.79403546734515e-01 + 1.11631368356651e-01 1.84464687242304e-01 + 1.20760767017095e-01 1.89364788733145e-01 + 1.30387067065589e-01 1.94124291950238e-01 + 1.40548657784852e-01 1.98684174217884e-01 + 1.51251334005625e-01 2.03011837640083e-01 + 1.62481865167226e-01 2.07115734578544e-01 + 1.74243095392085e-01 2.10972472450732e-01 + 1.86549936822126e-01 2.14526805943380e-01 + 1.99406494602004e-01 2.17739065180087e-01 + 2.12815064049577e-01 2.20566416424240e-01 + 2.26749338103204e-01 2.23050232962449e-01 + 2.41204411054016e-01 2.25170402860339e-01 + 2.56179003377426e-01 2.26894231988103e-01 + 2.71657376423970e-01 2.28238617467484e-01 + 2.87644196796496e-01 2.29085940429501e-01 + 3.04112426151963e-01 2.29592839174381e-01 + 3.21063756025906e-01 2.29565132136005e-01 + 3.38481117030930e-01 2.29087214396070e-01 + 3.56358877215204e-01 2.28200795131195e-01 + 3.74669393894032e-01 2.26762924608320e-01 + 3.93418815589418e-01 2.24900857846245e-01 + 4.12585443151354e-01 2.22564210483977e-01 + 4.32157914363941e-01 2.19756528829918e-01 + 4.52110377451321e-01 2.16404746797583e-01 + 4.72448018172309e-01 2.12622037123956e-01 + 4.93138622913983e-01 2.08329278119335e-01 + 5.14175676068252e-01 2.03563675700790e-01 + 5.35526654004571e-01 1.98278427410982e-01 + 5.57193257827532e-01 1.92543635368192e-01 + 5.78908672062220e-01 1.86468079174072e-01 + 6.00759249178532e-01 1.79873565468132e-01 + 6.22921996664506e-01 1.72981848265811e-01 + 6.45329083991430e-01 1.65577700050139e-01 + 6.68013466242704e-01 1.57874822811935e-01 + 6.90913301019967e-01 1.49716417966511e-01 + 7.14022312095261e-01 1.41161807209482e-01 + 7.37350536255154e-01 1.32329367423880e-01 + 7.60839588490974e-01 1.23097115055968e-01 + 7.84476882811741e-01 1.13509393194457e-01 + 8.08253430163786e-01 1.03614059914315e-01 + 8.32151360893646e-01 9.34385814437358e-02 + 8.56096542810510e-01 8.28486329784624e-02 + 8.80116131683543e-01 7.19968473930789e-02 + 9.04221770588781e-01 6.09938211095130e-02 + 9.28326519618316e-01 4.96767966744655e-02 + 9.52419342395575e-01 3.81085179320695e-02 + 9.76329682475433e-01 2.56661259786623e-02 + 1.00000000000000e+00 1.25664582857239e-02 diff --git a/Test_Cases/BAR_10/Airfoils/AF07_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF07_Coords.txt new file mode 100644 index 000000000..fe85fda39 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF07_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.408980 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -4.85159451126422e-03 + 9.73309380917004e-01 -4.84959949947912e-03 + 9.46858592089302e-01 -6.91235643693575e-03 + 9.20825981618500e-01 -1.13186841902196e-02 + 8.95212192807887e-01 -1.51831068212737e-02 + 8.70061373027891e-01 -2.06539624671566e-02 + 8.45363156470383e-01 -2.74895499420057e-02 + 8.20790226734386e-01 -3.54661862646197e-02 + 7.96512296579161e-01 -4.42344571899393e-02 + 7.72686728636225e-01 -5.36632459822535e-02 + 7.49293306603358e-01 -6.34936729181466e-02 + 7.26342116040612e-01 -7.36670532964673e-02 + 7.03787779724764e-01 -8.39754400362356e-02 + 6.81591032080193e-01 -9.42357462165422e-02 + 6.59729530944421e-01 -1.04365733729709e-01 + 6.38160114160434e-01 -1.14199725168424e-01 + 6.16866302094172e-01 -1.23676984707816e-01 + 5.95832577337106e-01 -1.32724911435365e-01 + 5.74685531732501e-01 -1.41302301603909e-01 + 5.53616836360150e-01 -1.49396013845594e-01 + 5.32779900031210e-01 -1.56922676058603e-01 + 5.12198439591530e-01 -1.63872421184230e-01 + 4.91919185575582e-01 -1.70289419252462e-01 + 4.71915362195043e-01 -1.76066570695066e-01 + 4.52249599351587e-01 -1.81298426859644e-01 + 4.32899099985838e-01 -1.85865749986205e-01 + 4.13900139347833e-01 -1.89798014953254e-01 + 3.95273074250163e-01 -1.93119981125627e-01 + 3.77032771798223e-01 -1.95825359895720e-01 + 3.59197724777155e-01 -1.97921190123952e-01 + 3.41789876340011e-01 -1.99528591058996e-01 + 3.24820902704489e-01 -2.00545880134864e-01 + 3.08304135455055e-01 -2.01083090384770e-01 + 2.92248600833338e-01 -2.01168897620133e-01 + 2.76669559064268e-01 -2.00783807177567e-01 + 2.61572993932054e-01 -1.99987258816546e-01 + 2.46968944317732e-01 -1.98755494552684e-01 + 2.32846323312265e-01 -1.97178583060853e-01 + 2.19225994186952e-01 -1.95237690927238e-01 + 2.06105168293674e-01 -1.92967937773231e-01 + 1.93476799554396e-01 -1.90416343581234e-01 + 1.81355503442748e-01 -1.87572681870866e-01 + 1.69716586127702e-01 -1.84508490397075e-01 + 1.58578962067930e-01 -1.81200754260308e-01 + 1.47919225974452e-01 -1.77710415637421e-01 + 1.37747211859131e-01 -1.74017647989986e-01 + 1.28064830224279e-01 -1.70140362866908e-01 + 1.18833627681392e-01 -1.66135011168736e-01 + 1.10092723910366e-01 -1.61964030311400e-01 + 1.01794135606676e-01 -1.57693042576576e-01 + 9.39565445025581e-02 -1.53312546197991e-01 + 8.65642615157191e-02 -1.48839028942707e-01 + 7.95931743705097e-02 -1.44300379608242e-01 + 7.30669817118828e-02 -1.39682140856443e-01 + 6.69362996106564e-02 -1.35027631961649e-01 + 6.11924370257341e-02 -1.30348764430859e-01 + 5.58341251341858e-02 -1.25650823625327e-01 + 5.08282496963548e-02 -1.20960773521168e-01 + 4.62206970754650e-02 -1.16261188922065e-01 + 4.19414067584563e-02 -1.11596429610056e-01 + 3.79460457357212e-02 -1.06990535499727e-01 + 3.42996423047284e-02 -1.02422988265626e-01 + 3.09496521637085e-02 -9.79169524225965e-02 + 2.78733277611279e-02 -9.34831430201732e-02 + 2.50479065880620e-02 -8.91298268835008e-02 + 2.24389002293010e-02 -8.48689782492070e-02 + 2.00823447728446e-02 -8.06910172039843e-02 + 1.79355190536009e-02 -7.66094114513584e-02 + 1.59756209974071e-02 -7.26298498782804e-02 + 1.41834580278498e-02 -6.87612211685062e-02 + 1.25689767171359e-02 -6.50059672789332e-02 + 1.11062640086769e-02 -6.13668431625477e-02 + 9.78388542524684e-03 -5.78436822196830e-02 + 8.59892219250287e-03 -5.44368922445213e-02 + 7.53473315851029e-03 -5.11471518754093e-02 + 6.58775937413843e-03 -4.79676120021955e-02 + 5.76387086098809e-03 -4.48914055441243e-02 + 5.04155258768735e-03 -4.19239954511248e-02 + 4.39534430777703e-03 -3.90633546901623e-02 + 3.81656599883501e-03 -3.63068445594570e-02 + 3.33459094925955e-03 -3.36516480725689e-02 + 2.93494014290017e-03 -3.10941205072368e-02 + 2.58264146770533e-03 -2.86390918243695e-02 + 2.25616360179137e-03 -2.62854713918015e-02 + 1.95007975371068e-03 -2.40324787868993e-02 + 1.66975546822764e-03 -2.18769970369960e-02 + 1.42185518802364e-03 -1.98118342620172e-02 + 1.20316147369981e-03 -1.78327461062408e-02 + 1.00363142068062e-03 -1.59425367874789e-02 + 8.25226410969262e-04 -1.41352083090243e-02 + 6.78096350945942e-04 -1.24058373643709e-02 + 5.60561048183998e-04 -1.07515579333527e-02 + 4.64923158697387e-04 -9.17003609390184e-03 + 3.77675511495613e-04 -7.65630285435462e-03 + 2.80249138701681e-04 -6.20885488783415e-03 + 1.99872679702178e-04 -4.82570090164880e-03 + 1.45783292341540e-04 -3.50424563367799e-03 + 9.69812113059711e-05 -2.24534634537837e-03 + 4.93212500755184e-05 -1.06044716844073e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 4.68080171024910e-05 1.15805735273806e-03 + 1.06358059987706e-04 2.36770690195183e-03 + 1.80162316978009e-04 3.63143936840199e-03 + 2.71167470543954e-04 4.95097641695383e-03 + 3.72199758289166e-04 6.32954164131736e-03 + 4.68730535093574e-04 7.77014501605300e-03 + 5.69683043557163e-04 9.27468352993449e-03 + 6.82018862750154e-04 1.08455621743656e-02 + 8.14885867953612e-04 1.24844908353071e-02 + 9.81580201758941e-04 1.41935689536761e-02 + 1.17543404183687e-03 1.59767754042383e-02 + 1.38038010179583e-03 1.78376497569122e-02 + 1.60924767712781e-03 1.97785147126152e-02 + 1.86303774706906e-03 2.18039611811155e-02 + 2.13753923616939e-03 2.39332080569058e-02 + 2.42211517303801e-03 2.61643442763881e-02 + 2.71114361501317e-03 2.84906496590112e-02 + 3.01888480701147e-03 3.09163049842099e-02 + 3.36614589995903e-03 3.34434929512031e-02 + 3.79029314728878e-03 3.60696405154952e-02 + 4.29602492825578e-03 3.87997170813552e-02 + 4.84944573367552e-03 4.16380356593711e-02 + 5.46516877455708e-03 4.45874142286969e-02 + 6.18323748728036e-03 4.76411053108423e-02 + 7.03320726500632e-03 5.07999757313392e-02 + 8.00480072800351e-03 5.40642061223600e-02 + 9.08086355557208e-03 5.74499797122995e-02 + 1.02818165611252e-02 6.09548164758601e-02 + 1.16295245673696e-02 6.45756966209489e-02 + 1.31155008687689e-02 6.83194421762183e-02 + 1.47545209718918e-02 7.21843356492841e-02 + 1.65530226999393e-02 7.61699530931618e-02 + 1.85102797209226e-02 8.02752599455142e-02 + 2.06646943818959e-02 8.44905691531668e-02 + 2.30311718958005e-02 8.88130223179644e-02 + 2.56086772705334e-02 9.32435749384105e-02 + 2.83860676431018e-02 9.77854393150017e-02 + 3.14300116263306e-02 1.02415604549342e-01 + 3.47588501498099e-02 1.07124723314092e-01 + 3.83728766707812e-02 1.11912331278629e-01 + 4.22892526444866e-02 1.16764555897487e-01 + 4.65180645599387e-02 1.21672404133307e-01 + 5.10739942805926e-02 1.26625631429923e-01 + 5.60043366546345e-02 1.31593173636958e-01 + 6.13160917935031e-02 1.36559270199703e-01 + 6.69996661127576e-02 1.41523086088128e-01 + 7.30871996157971e-02 1.46459159837827e-01 + 7.95918443586242e-02 1.51353528860649e-01 + 8.65416815310978e-02 1.56166575914850e-01 + 9.39459824793392e-02 1.60878024668895e-01 + 1.01821237593363e-01 1.65464086313044e-01 + 1.10157852602108e-01 1.69925790658968e-01 + 1.18964765093805e-01 1.74236005435399e-01 + 1.28265282731676e-01 1.78360817938716e-01 + 1.38043061937445e-01 1.82292517105492e-01 + 1.48318758077982e-01 1.85990218774408e-01 + 1.59094959291652e-01 1.89428904976488e-01 + 1.70363803933155e-01 1.92604527561124e-01 + 1.82126209118862e-01 1.95494215812208e-01 + 1.94388456846415e-01 1.98061903324207e-01 + 2.07150543110815e-01 2.00284050352637e-01 + 2.20410947233201e-01 2.02144888388322e-01 + 2.34154891252658e-01 2.03656137965840e-01 + 2.48378015848474e-01 2.04804413731338e-01 + 2.63078185672980e-01 2.05594214668608e-01 + 2.78245849474843e-01 2.06001981830608e-01 + 2.93881997752309e-01 2.05988447201777e-01 + 3.09971360476180e-01 2.05618998476449e-01 + 3.26513047799407e-01 2.04801722355272e-01 + 3.43497255016787e-01 2.03579161563867e-01 + 3.60920319839171e-01 2.01976568212135e-01 + 3.78766104004868e-01 1.99927812328602e-01 + 3.97036465298356e-01 1.97488671336336e-01 + 4.15719258245903e-01 1.94641630203937e-01 + 4.34807729952682e-01 1.91396268744466e-01 + 4.54287108478636e-01 1.87730518862873e-01 + 4.74159337473438e-01 1.83695221675517e-01 + 4.94405758497972e-01 1.79266236220430e-01 + 5.15022651852835e-01 1.74471685819280e-01 + 5.35989275432948e-01 1.69295658672502e-01 + 5.57307043179584e-01 1.63789511570748e-01 + 5.78644527435669e-01 1.57998179730918e-01 + 6.00128897463069e-01 1.51864357280905e-01 + 6.21935156727079e-01 1.45489687430695e-01 + 6.44034644504021e-01 1.38790108644606e-01 + 6.66431437536951e-01 1.31880076433518e-01 + 6.89095103251699e-01 1.24692510513927e-01 + 7.12013219558830e-01 1.17260120104760e-01 + 7.35177577436517e-01 1.09640073508755e-01 + 7.58560461023068e-01 1.01792784428720e-01 + 7.82144744909737e-01 9.37391742640990e-02 + 8.05915292253288e-01 8.55065349846297e-02 + 8.29854078685747e-01 7.71194567181178e-02 + 8.53925355068578e-01 6.85257223112231e-02 + 8.78125241785049e-01 5.97992604639274e-02 + 9.02440365652602e-01 5.09823452353293e-02 + 9.26837060866849e-01 4.20302324008195e-02 + 9.51284802710262e-01 3.29103393968540e-02 + 9.75687909933381e-01 2.31549607056393e-02 + 1.00000000000000e+00 1.29164393890095e-02 diff --git a/Test_Cases/BAR_10/Airfoils/AF08_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF08_Coords.txt new file mode 100644 index 000000000..535539780 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF08_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.373735 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.97618524124935e-03 + 9.73825407614017e-01 -2.60908840390298e-03 + 9.47702853648248e-01 -3.89237210313559e-03 + 9.21762918257606e-01 -6.11539767267407e-03 + 8.96008832006266e-01 -7.72568328173924e-03 + 8.70554172835548e-01 -1.09832326946313e-02 + 8.45479316843427e-01 -1.57763889031195e-02 + 8.20697381554741e-01 -2.18861488561223e-02 + 7.96297766661510e-01 -2.89820294105031e-02 + 7.72353078859788e-01 -3.68757873869287e-02 + 7.48876991952470e-01 -4.54048028889631e-02 + 7.25871712946984e-01 -5.44545587183979e-02 + 7.03301625635749e-01 -6.38254211420962e-02 + 6.81135224238599e-01 -7.33549607126713e-02 + 6.59330698328348e-01 -8.28895737596814e-02 + 6.37854737711693e-01 -9.23005742571863e-02 + 6.16679951008184e-01 -1.01488592945877e-01 + 5.95785531968435e-01 -1.10367090445470e-01 + 5.75005575147245e-01 -1.18870410065596e-01 + 5.54421516872008e-01 -1.26965002189116e-01 + 5.34096879720488e-01 -1.34593838455910e-01 + 5.14042570041973e-01 -1.41731263281505e-01 + 4.94279692214553e-01 -1.48371004084263e-01 + 4.74805722918891e-01 -1.54478002006135e-01 + 4.55645241871986e-01 -1.60051454355377e-01 + 4.36797123873133e-01 -1.65051275311659e-01 + 4.18274524930064e-01 -1.69442457606330e-01 + 4.00094851743900e-01 -1.73230740184490e-01 + 3.82277191734737e-01 -1.76438869907162e-01 + 3.64839315602776e-01 -1.79086608961391e-01 + 3.47798606168929e-01 -1.81212376139722e-01 + 3.31168180270517e-01 -1.82814892888311e-01 + 3.14960663667022e-01 -1.83929844502959e-01 + 2.99186759648512e-01 -1.84585928292902e-01 + 2.83857133135908e-01 -1.84781774748576e-01 + 2.68978940773013e-01 -1.84589057805549e-01 + 2.54559664859569e-01 -1.83963606436919e-01 + 2.40600951404856e-01 -1.82961896274887e-01 + 2.27110283758998e-01 -1.81607622806648e-01 + 2.14088641292337e-01 -1.79924358955617e-01 + 2.01534620857087e-01 -1.77942732292923e-01 + 1.89450389739085e-01 -1.75684226273554e-01 + 1.77829186036548e-01 -1.73176892554286e-01 + 1.66672193328823e-01 -1.70437124378758e-01 + 1.55970177945826e-01 -1.67497327850236e-01 + 1.45726564473879e-01 -1.64348439832012e-01 + 1.35936456051893e-01 -1.61015705068281e-01 + 1.26586368594442e-01 -1.57525698395053e-01 + 1.17682245538602e-01 -1.53878974002893e-01 + 1.09205052475844e-01 -1.50109648590292e-01 + 1.01153558709875e-01 -1.46228171495234e-01 + 9.35216831693230e-02 -1.42241394157030e-01 + 8.62985194317213e-02 -1.38165960193972e-01 + 7.94865365958448e-02 -1.34004506031676e-01 + 7.30677801994172e-02 -1.29777657770811e-01 + 6.70331356663578e-02 -1.25499900545011e-01 + 6.13767248267972e-02 -1.21180964358167e-01 + 5.60814887443505e-02 -1.16839871545264e-01 + 5.11489155395908e-02 -1.12485082932582e-01 + 4.65508109720967e-02 -1.08139649574304e-01 + 4.22654732637893e-02 -1.03820002667313e-01 + 3.82967957488131e-02 -9.95330107281408e-02 + 3.46240102852735e-02 -9.52899586362631e-02 + 3.12346367741297e-02 -9.10981097901415e-02 + 2.81149326226243e-02 -8.69647786898331e-02 + 2.52469519448632e-02 -8.28985812887406e-02 + 2.26312399380431e-02 -7.89023353997130e-02 + 2.02463934966333e-02 -7.49849067875946e-02 + 1.80762795010750e-02 -7.11520199809994e-02 + 1.60980619172970e-02 -6.74155572362641e-02 + 1.42940437529697e-02 -6.37851350066866e-02 + 1.26503097622773e-02 -6.02617266584231e-02 + 1.11559766347336e-02 -5.68454623293685e-02 + 9.79922469246799e-03 -5.35388686015844e-02 + 8.56688891820303e-03 -5.03426098992650e-02 + 7.46670539276862e-03 -4.72487447828875e-02 + 6.50229591258083e-03 -4.42503948303954e-02 + 5.64933564364652e-03 -4.13551921127769e-02 + 4.89946914258086e-03 -3.85600628338410e-02 + 4.24484590205425e-03 -3.58622994221961e-02 + 3.69676315700584e-03 -3.32615237836077e-02 + 3.23656064653586e-03 -3.07550751695675e-02 + 2.83661336193922e-03 -2.83479667070897e-02 + 2.48294762334463e-03 -2.60379045007073e-02 + 2.15924665183681e-03 -2.38246584186910e-02 + 1.85559231348670e-03 -2.17066582112688e-02 + 1.57815090806071e-03 -1.96776249455856e-02 + 1.33289007678549e-03 -1.77329786542217e-02 + 1.11283261290629e-03 -1.58724943056687e-02 + 9.21536388065541e-04 -1.40916138086238e-02 + 7.59505299034738e-04 -1.23863232632153e-02 + 6.23724257181289e-04 -1.07539304966239e-02 + 5.16150367692648e-04 -9.19190907427178e-03 + 4.26870475906104e-04 -7.69600953743998e-03 + 3.44343604464890e-04 -6.26434652284359e-03 + 2.67919533530791e-04 -4.89504051681874e-03 + 1.98885611783517e-04 -3.58519584179835e-03 + 1.34241914666748e-04 -2.33247967234522e-03 + 6.92402143883667e-05 -1.13625007010592e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 6.89498560349098e-05 1.13994749064570e-03 + 1.44907120957485e-04 2.33095668119468e-03 + 2.26005371037028e-04 3.57539561943774e-03 + 3.14938418238554e-04 4.87539768264237e-03 + 4.09547685083671e-04 6.23366313543544e-03 + 5.10795078686376e-04 7.65237718811431e-03 + 6.24858320195955e-04 9.13348836384558e-03 + 7.55375028380047e-04 1.06798120233903e-02 + 9.05690214932701e-04 1.22933409121313e-02 + 1.08446279816610e-03 1.39760155814711e-02 + 1.29528565343065e-03 1.57310976490701e-02 + 1.52776880532584e-03 1.75616303137001e-02 + 1.79074407515895e-03 1.94702757665905e-02 + 2.07012461597975e-03 2.14630098638555e-02 + 2.35079778676477e-03 2.35575477566767e-02 + 2.63825083983709e-03 2.57527113457411e-02 + 2.94636899130099e-03 2.80411971627098e-02 + 3.28680125767732e-03 3.04269286906521e-02 + 3.66880186243334e-03 3.29126296500793e-02 + 4.12660872440435e-03 3.54946411938501e-02 + 4.68075263018619e-03 3.81765812143362e-02 + 5.31222416915868e-03 4.09601748997799e-02 + 6.03979296984835e-03 4.38476633212113e-02 + 6.88545968861622e-03 4.68328377280349e-02 + 7.87133183275319e-03 4.99161144709892e-02 + 8.99988502436853e-03 5.30955731511335e-02 + 1.02340879499533e-02 5.63908597934510e-02 + 1.15895303191136e-02 5.98002357696410e-02 + 1.30920629517243e-02 6.33187774855435e-02 + 1.47332516250402e-02 6.69535159351584e-02 + 1.65278912268851e-02 7.07024827868727e-02 + 1.84919762184841e-02 7.45617600784008e-02 + 2.06438944693620e-02 7.85246818861404e-02 + 2.30040257263202e-02 8.25845602045535e-02 + 2.55827591061918e-02 8.67390181378277e-02 + 2.83907649881050e-02 9.09837953052885e-02 + 3.14360193878551e-02 9.53147006460626e-02 + 3.47484605776258e-02 9.97184659774327e-02 + 3.83431589120150e-02 1.04186295913763e-01 + 4.22273818507222e-02 1.08713746022149e-01 + 4.64222130676560e-02 1.13283475988344e-01 + 5.09426020508538e-02 1.17881688545221e-01 + 5.58003262546834e-02 1.22497888444534e-01 + 6.10202478812479e-02 1.27109696755521e-01 + 6.66191829666493e-02 1.31693799080823e-01 + 7.26017466383256e-02 1.36239070473761e-01 + 7.89820812315547e-02 1.40728327564222e-01 + 8.57678064464808e-02 1.45149744656162e-01 + 9.29802135377715e-02 1.49465887456863e-01 + 1.00628005807144e-01 1.53655719703272e-01 + 1.08716979642835e-01 1.57704371402300e-01 + 1.17246413986268e-01 1.61603623167355e-01 + 1.26223427271572e-01 1.65329382047130e-01 + 1.35656801654176e-01 1.68858956327897e-01 + 1.45547498521410e-01 1.72166877235152e-01 + 1.55902403822020e-01 1.75225881968654e-01 + 1.66722171384723e-01 1.78016180097450e-01 + 1.78003591713121e-01 1.80526934332034e-01 + 1.89746524491256e-01 1.82736249851258e-01 + 2.01950955050922e-01 1.84622378372324e-01 + 2.14614154351241e-01 1.86172856346081e-01 + 2.27732142787326e-01 1.87388805981691e-01 + 2.41299300856924e-01 1.88263172164558e-01 + 2.55311858348108e-01 1.88784473509342e-01 + 2.69766988573424e-01 1.88980367902761e-01 + 2.84659798485162e-01 1.88808086955917e-01 + 2.99988084262554e-01 1.88269172528180e-01 + 3.15745415798907e-01 1.87377780603644e-01 + 3.31928282643461e-01 1.86105668613264e-01 + 3.48531790522803e-01 1.84467113280650e-01 + 3.65552808778407e-01 1.82476838771998e-01 + 3.82983511654545e-01 1.80115911271059e-01 + 4.00820687544652e-01 1.77395660676825e-01 + 4.19058523005233e-01 1.74319933351419e-01 + 4.37692184355399e-01 1.70899791059030e-01 + 4.56714673936430e-01 1.67141295163591e-01 + 4.76122283612631e-01 1.63057690275563e-01 + 4.95906489443742e-01 1.58656948054895e-01 + 5.16063298781806e-01 1.53960208071697e-01 + 5.36581693759155e-01 1.48972521713154e-01 + 5.57459491190937e-01 1.43727059193168e-01 + 5.78548947609221e-01 1.38231901242751e-01 + 5.99899492906061e-01 1.32498805899517e-01 + 6.21574122061109e-01 1.26556144797323e-01 + 6.43558831993241e-01 1.20398056981372e-01 + 6.65847165542761e-01 1.14073517467126e-01 + 6.88420686394108e-01 1.07570849993507e-01 + 7.11264919117111e-01 1.00906883001595e-01 + 7.34364817313156e-01 9.41023304885013e-02 + 7.57704620960097e-01 8.71678485315673e-02 + 7.81265680940222e-01 8.01135146974176e-02 + 8.05030615518014e-01 7.29567741404831e-02 + 8.28981451750312e-01 6.57182075093321e-02 + 8.53097854436582e-01 5.84017877113382e-02 + 8.77363809397670e-01 5.10390737213522e-02 + 9.01755928642332e-01 4.36367467628533e-02 + 9.26262093243698e-01 3.62301685244016e-02 + 9.50843978450389e-01 2.86223156361692e-02 + 9.75436864458673e-01 2.08869983212791e-02 + 1.00000000000000e+00 1.30044059635709e-02 diff --git a/Test_Cases/BAR_10/Airfoils/AF09_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF09_Coords.txt new file mode 100644 index 000000000..d3a1330f6 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF09_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.352998 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 2.48061038191763e-04 + 9.74888220502883e-01 -2.01028232330309e-03 + 9.49015423462878e-01 -3.41957839182242e-03 + 9.23152045809511e-01 -4.01992929078983e-03 + 8.97310626219269e-01 -4.69682837716482e-03 + 8.71647903418896e-01 -6.97243363792520e-03 + 8.46301982401733e-01 -1.08061507319620e-02 + 8.21420299915528e-01 -1.59756592996583e-02 + 7.96999268734883e-01 -2.21908216431491e-02 + 7.73031107947208e-01 -2.92702252702325e-02 + 7.49534207316945e-01 -3.70863173955350e-02 + 7.26510504935559e-01 -4.55043941969219e-02 + 7.03926125938381e-01 -5.43230396396920e-02 + 6.81746668088969e-01 -6.33919158697763e-02 + 6.59928614259204e-01 -7.25476370274546e-02 + 6.38446104646272e-01 -8.16649860200445e-02 + 6.17270263482841e-01 -9.06304436565862e-02 + 5.96379600291404e-01 -9.93511273940338e-02 + 5.75827986089187e-01 -1.07748665023917e-01 + 5.55576606603798e-01 -1.15774879852622e-01 + 5.35590568230848e-01 -1.23377158076867e-01 + 5.15870726233096e-01 -1.30519012580667e-01 + 4.96422416168143e-01 -1.37178488847547e-01 + 4.77258830792150e-01 -1.43336908826799e-01 + 4.58383470427033e-01 -1.48969496840425e-01 + 4.39809337652208e-01 -1.54056979639579e-01 + 4.21539333280421e-01 -1.58557346097722e-01 + 4.03591465331196e-01 -1.62472664429506e-01 + 3.85988275115027e-01 -1.65828830294465e-01 + 3.68748186347049e-01 -1.68645348604158e-01 + 3.51887675128057e-01 -1.70940902761527e-01 + 3.35421319156291e-01 -1.72737735025162e-01 + 3.19362275639528e-01 -1.74053250147776e-01 + 3.03722507526723e-01 -1.74913124272557e-01 + 2.88511250956026e-01 -1.75327461080160e-01 + 2.73736553528376e-01 -1.75357223565863e-01 + 2.59405074857644e-01 -1.74968617567909e-01 + 2.45524051096479e-01 -1.74203498036458e-01 + 2.32095363521901e-01 -1.73094158607752e-01 + 2.19121712278638e-01 -1.71662014348671e-01 + 2.06604182732684e-01 -1.69930261269710e-01 + 1.94539816697309e-01 -1.67930512429913e-01 + 1.82929272633599e-01 -1.65676651004725e-01 + 1.71766451561329e-01 -1.63197242636470e-01 + 1.61048016481484e-01 -1.60514453357149e-01 + 1.50774087767873e-01 -1.57625962783373e-01 + 1.40936989292346e-01 -1.54558064981821e-01 + 1.31533461158410e-01 -1.51326490523078e-01 + 1.22554615362756e-01 -1.47948306962841e-01 + 1.13993959128613e-01 -1.44443152243104e-01 + 1.05841300630579e-01 -1.40829500637521e-01 + 9.80936354006880e-02 -1.37112288066848e-01 + 9.07456324758571e-02 -1.33302446875444e-01 + 8.37895776804123e-02 -1.29410184164433e-01 + 7.72212758629405e-02 -1.25445579925137e-01 + 7.10313518249290e-02 -1.21423272611475e-01 + 6.52116665448220e-02 -1.17354153918100e-01 + 5.97531018066651e-02 -1.13251840016912e-01 + 5.46353942609555e-02 -1.09137445932786e-01 + 4.98511712683262e-02 -1.05021550053923e-01 + 4.53907254298755e-02 -1.00915331096821e-01 + 4.12272089901885e-02 -9.68396031082804e-02 + 3.73558002365789e-02 -9.27989068566673e-02 + 3.37695707382537e-02 -8.87979407599199e-02 + 3.04599688938084e-02 -8.48429540681498e-02 + 2.74185864925877e-02 -8.09403669957617e-02 + 2.46270498630298e-02 -7.70997438489237e-02 + 2.20761575478650e-02 -7.33269498825884e-02 + 1.97541186935216e-02 -6.96275616201837e-02 + 1.76370638650487e-02 -6.60145613769166e-02 + 1.56928759447293e-02 -6.25004268033518e-02 + 1.39142481789697e-02 -5.90856487808063e-02 + 1.22909740583147e-02 -5.57703492348351e-02 + 1.08062691543130e-02 -5.25579792362337e-02 + 9.44873079807992e-03 -4.94496486211763e-02 + 8.23242049360405e-03 -4.64371729153473e-02 + 7.15934818787432e-03 -4.35145027189126e-02 + 6.20409975025544e-03 -4.06898857787373e-02 + 5.36874530029066e-03 -3.79606209007607e-02 + 4.64711175386642e-03 -3.53233693491343e-02 + 4.03853105288229e-03 -3.27792683096181e-02 + 3.52198923760857e-03 -3.03266954628450e-02 + 3.07509302726704e-03 -2.79701921533186e-02 + 2.68940992488248e-03 -2.57061820420778e-02 + 2.34175403639401e-03 -2.35340835500596e-02 + 2.01239456997948e-03 -2.14537679488122e-02 + 1.70647028168829e-03 -1.94607032077416e-02 + 1.43518964521262e-03 -1.75504393058518e-02 + 1.19562268453053e-03 -1.57174335416095e-02 + 9.90564945201558e-04 -1.39598189853252e-02 + 8.14446056729046e-04 -1.22749946246256e-02 + 6.65431708528688e-04 -1.06602978388128e-02 + 5.49050224954036e-04 -9.11326268860331e-03 + 4.55890725628336e-04 -7.63177549308738e-03 + 3.75425637479773e-04 -6.21386394700588e-03 + 2.97080983115585e-04 -4.85755598534743e-03 + 2.20920019618609e-04 -3.56047576571197e-03 + 1.48846072467159e-04 -2.31996404294462e-03 + 7.66563099925547e-05 -1.13385700773839e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 7.55054333478793e-05 1.13702763934339e-03 + 1.55552862340920e-04 2.32546329853345e-03 + 2.38742306403894e-04 3.56720207386229e-03 + 3.27721112828988e-04 4.86444419250844e-03 + 4.20595319027173e-04 6.21984015883977e-03 + 5.22558957084606e-04 7.63546501790074e-03 + 6.41502439755775e-04 9.11325626175506e-03 + 7.81389571666146e-04 1.06560881893515e-02 + 9.44966173446186e-04 1.22659058703683e-02 + 1.13955034513733e-03 1.39446045203712e-02 + 1.36732338454449e-03 1.56952706954415e-02 + 1.62306692173093e-03 1.75208960497749e-02 + 1.91466687488761e-03 1.94239326575343e-02 + 2.22130476975339e-03 2.14104835845357e-02 + 2.51883338071300e-03 2.34813147680863e-02 + 2.82236006657039e-03 2.56399769496423e-02 + 3.15783591318570e-03 2.78909664527995e-02 + 3.53606624760472e-03 3.02372278484257e-02 + 3.95886551322421e-03 3.26817033207692e-02 + 4.45726768317284e-03 3.52199692503773e-02 + 5.06182662677803e-03 3.78540771999170e-02 + 5.76376650651824e-03 4.05837419478085e-02 + 6.58357693342766e-03 4.34107774888809e-02 + 7.53069393067592e-03 4.63299237715426e-02 + 8.62241502539997e-03 4.93409079798199e-02 + 9.86880422111778e-03 5.24404953850972e-02 + 1.12226986041950e-02 5.56498873718373e-02 + 1.26970018760655e-02 5.89676602879369e-02 + 1.43192938673171e-02 6.23876670928141e-02 + 1.60821147237722e-02 6.59165369545641e-02 + 1.80000738407758e-02 6.95520995502303e-02 + 2.00942526010681e-02 7.32881262562761e-02 + 2.23928827200903e-02 7.71146574925435e-02 + 2.49057450575138e-02 8.10271279784082e-02 + 2.76405733735830e-02 8.50235434590121e-02 + 3.06142111587331e-02 8.90963900511376e-02 + 3.38448075699090e-02 9.32367610806183e-02 + 3.73412492039775e-02 9.74383882681805e-02 + 4.11168006302737e-02 1.01692884776180e-01 + 4.51825447409381e-02 1.05993305485273e-01 + 4.95607751667149e-02 1.10321196229790e-01 + 5.42683402307612e-02 1.14660728563699e-01 + 5.93151958926672e-02 1.19001872242936e-01 + 6.47140457644687e-02 1.23328652482698e-01 + 7.04864203598666e-02 1.27614103810868e-01 + 7.66435658397686e-02 1.31842666516123e-01 + 8.31905930158664e-02 1.36002698686025e-01 + 9.01328036785512e-02 1.40083600872371e-01 + 9.74873233851052e-02 1.44052075677816e-01 + 1.05262624385620e-01 1.47887940078332e-01 + 1.13460034486739e-01 1.51581243178166e-01 + 1.22083411113330e-01 1.55119616850268e-01 + 1.31139285067442e-01 1.58481365091498e-01 + 1.40629935469244e-01 1.61650604392798e-01 + 1.50564395152439e-01 1.64594962230267e-01 + 1.60943560838369e-01 1.67295103732916e-01 + 1.71767759617134e-01 1.69733945152278e-01 + 1.83036210797164e-01 1.71899149713265e-01 + 1.94748726595244e-01 1.73770325386936e-01 + 2.06902873910000e-01 1.75333240267182e-01 + 2.19495143984364e-01 1.76581572862854e-01 + 2.32520990881085e-01 1.77521146652105e-01 + 2.45979045709196e-01 1.78139047750035e-01 + 2.59866021235007e-01 1.78420466795492e-01 + 2.74178857063946e-01 1.78403222552608e-01 + 2.88914677764632e-01 1.78042578556875e-01 + 3.04069732382580e-01 1.77346586123841e-01 + 3.19641367382858e-01 1.76317104159216e-01 + 3.35624617679380e-01 1.74947518291934e-01 + 3.52016265507631e-01 1.73240134192051e-01 + 3.68812800583279e-01 1.71205682745952e-01 + 3.86009670506090e-01 1.68839983317779e-01 + 4.03600308432747e-01 1.66139770044316e-01 + 4.21581027356143e-01 1.63116606979152e-01 + 4.39946696978675e-01 1.59779783746914e-01 + 4.58693098836321e-01 1.56140222902312e-01 + 4.77811976596685e-01 1.52200487359720e-01 + 4.97298954678540e-01 1.47976361535507e-01 + 5.17148252403773e-01 1.43485336610889e-01 + 5.37353673036647e-01 1.38740540019913e-01 + 5.57908884990109e-01 1.33763047030158e-01 + 5.78863978761917e-01 1.28552409221029e-01 + 6.00186615394876e-01 1.23134751162234e-01 + 6.21833179209716e-01 1.17518339510895e-01 + 6.43791077311991e-01 1.11716308216631e-01 + 6.66052528065645e-01 1.05754880629726e-01 + 6.88600346792360e-01 9.96374989077188e-02 + 7.11419865244847e-01 9.33766752819991e-02 + 7.34495376298123e-01 8.69843142588373e-02 + 7.57812298668306e-01 8.04837626968323e-02 + 7.81352007776352e-01 7.38853180340924e-02 + 8.05097014221270e-01 6.72062477993141e-02 + 8.29029157250150e-01 6.04633890712668e-02 + 8.53129954140254e-01 5.36801869665703e-02 + 8.77382366134321e-01 4.68830207589720e-02 + 9.01762151848064e-01 4.00761473950002e-02 + 9.26259250084241e-01 3.33216267210782e-02 + 9.50835268732334e-01 2.65306704857977e-02 + 9.75429064108287e-01 1.97248207514523e-02 + 1.00000000000000e+00 1.29124909702894e-02 diff --git a/Test_Cases/BAR_10/Airfoils/AF10_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF10_Coords.txt new file mode 100644 index 000000000..51b8e5bec --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF10_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.338544 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 3.13249097119310e-03 + 9.79612966937030e-01 4.74247281428371e-04 + 9.53926711223824e-01 -1.92837231628334e-03 + 9.28161215018799e-01 -2.94531285290429e-03 + 9.02360332384349e-01 -3.06583740283057e-03 + 8.76684858390438e-01 -4.72555159752136e-03 + 8.51279882158663e-01 -7.95058389388302e-03 + 8.26338195045741e-01 -1.25087331894909e-02 + 8.01848680585923e-01 -1.81449480105232e-02 + 7.77796953729876e-01 -2.46929223983705e-02 + 7.54211743576379e-01 -3.20436292492763e-02 + 7.31097944161363e-01 -4.00486954414034e-02 + 7.08427203926638e-01 -4.85009114402807e-02 + 6.86145294614941e-01 -5.72605648255444e-02 + 6.64210411560422e-01 -6.61687364013712e-02 + 6.42634751504050e-01 -7.50952108867276e-02 + 6.21386799071898e-01 -8.39183933400414e-02 + 6.00443997008399e-01 -9.25417485332114e-02 + 5.79896871353346e-01 -1.00877157191786e-01 + 5.59678535707173e-01 -1.08863323635006e-01 + 5.39734923725844e-01 -1.16446812225989e-01 + 5.20061003017736e-01 -1.23581207537858e-01 + 5.00657748887573e-01 -1.30238664203244e-01 + 4.81540670215823e-01 -1.36401504799607e-01 + 4.62709137429060e-01 -1.42040686077021e-01 + 4.44179181139559e-01 -1.47141258731338e-01 + 4.25954544831562e-01 -1.51670846393275e-01 + 4.08052937905508e-01 -1.55632572765215e-01 + 3.90495480910991e-01 -1.59047618350776e-01 + 3.73299232641616e-01 -1.61930597792866e-01 + 3.56480628611041e-01 -1.64300388630770e-01 + 3.40053560139337e-01 -1.66177987369880e-01 + 3.24031255993613e-01 -1.67580689909661e-01 + 3.08425301416082e-01 -1.68529751229427e-01 + 2.93244772956679e-01 -1.69045602514142e-01 + 2.78497534541547e-01 -1.69168212750294e-01 + 2.64189791501019e-01 -1.68887051113779e-01 + 2.50329430599339e-01 -1.68236704841877e-01 + 2.36917114293389e-01 -1.67244609130108e-01 + 2.23955735575586e-01 -1.65933922788794e-01 + 2.11446892874224e-01 -1.64323931630257e-01 + 1.99386877030890e-01 -1.62446988521703e-01 + 1.87777320583502e-01 -1.60315771431518e-01 + 1.76611355523247e-01 -1.57958859051369e-01 + 1.65886733997320e-01 -1.55395921282743e-01 + 1.55601632659411e-01 -1.52630799294163e-01 + 1.45748708640623e-01 -1.49686681187924e-01 + 1.36325668442567e-01 -1.46579051379101e-01 + 1.27319934635910e-01 -1.43330812791753e-01 + 1.18727973017734e-01 -1.39956055024702e-01 + 1.10538017367804e-01 -1.36474417338691e-01 + 1.02745258488312e-01 -1.32894880901754e-01 + 9.53448781206225e-02 -1.29227002548930e-01 + 8.83264937663381e-02 -1.25482998715908e-01 + 8.16867019124359e-02 -1.21672462307680e-01 + 7.54153657803411e-02 -1.17810008167432e-01 + 6.95033190884691e-02 -1.13906431202836e-01 + 6.39429439463939e-02 -1.09972937762609e-01 + 5.87099521556087e-02 -1.06032704876325e-01 + 5.38017556461659e-02 -1.02091701017516e-01 + 4.92112876276521e-02 -9.81589161131693e-02 + 4.49074562019751e-02 -9.42563646723419e-02 + 4.08877879850751e-02 -9.03872358337688e-02 + 3.71464763161102e-02 -8.65549175507539e-02 + 3.36760140484092e-02 -8.27648600655986e-02 + 3.04695202667375e-02 -7.90230302121432e-02 + 2.75059664921746e-02 -7.53395908332130e-02 + 2.47790859600115e-02 -7.17189837840029e-02 + 2.22786446422786e-02 -6.81661759216119e-02 + 1.99837477984191e-02 -6.46923489539576e-02 + 1.78659622072418e-02 -6.13071808906333e-02 + 1.59179570877245e-02 -5.80124673134835e-02 + 1.41313019453405e-02 -5.48078466201801e-02 + 1.24899194392575e-02 -5.16965198884955e-02 + 1.09819863688143e-02 -4.86808511385834e-02 + 9.62033572185274e-03 -4.57533490588359e-02 + 8.40454339821233e-03 -4.29096267804584e-02 + 7.31207146609558e-03 -4.01569456019680e-02 + 6.34393289199166e-03 -3.74941826956487e-02 + 5.49858427949599e-03 -3.49166999840848e-02 + 4.76945944332740e-03 -3.24266654835102e-02 + 4.13681329292515e-03 -3.00235849081082e-02 + 3.58215285667079e-03 -2.77113408288052e-02 + 3.10256247058989e-03 -2.54855535586719e-02 + 2.67551140107673e-03 -2.33456074273328e-02 + 2.27831370473082e-03 -2.12931314436352e-02 + 1.91064939776443e-03 -1.93250554872123e-02 + 1.58264871989014e-03 -1.74378366297296e-02 + 1.30369644361468e-03 -1.56219718463816e-02 + 1.06865960488221e-03 -1.38783425376585e-02 + 8.68007244708906e-04 -1.22055285534230e-02 + 7.04148149509179e-04 -1.06009862880389e-02 + 5.77853471941324e-04 -9.06232361978178e-03 + 4.77303762964247e-04 -7.58903953007084e-03 + 3.92742437814276e-04 -6.17896243223957e-03 + 3.11457042001125e-04 -4.82995805432096e-03 + 2.31492123759219e-04 -3.54006356651276e-03 + 1.55511265188875e-04 -2.30661978935155e-03 + 7.99241156143345e-05 -1.12737946338571e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 7.78440095267187e-05 1.13176247201738e-03 + 1.59073250810363e-04 2.31577524437969e-03 + 2.42934048424672e-04 3.55271691677268e-03 + 3.32065740120736e-04 4.84492044886692e-03 + 4.24342785970085e-04 6.19507179285916e-03 + 5.26344598143085e-04 7.60508328578111e-03 + 6.47244432905084e-04 9.07677601440274e-03 + 7.91790284085639e-04 1.06131145947625e-02 + 9.64024243752007e-04 1.22154584560823e-02 + 1.17451577838800e-03 1.38855116897258e-02 + 1.42321857406582e-03 1.56256819354419e-02 + 1.70945490347127e-03 1.74389251727067e-02 + 2.04224868549796e-03 1.93259621921297e-02 + 2.40417492930517e-03 2.12927888694507e-02 + 2.76276056793978e-03 2.33387480704514e-02 + 3.14186252011939e-03 2.54654960785798e-02 + 3.56883224899584e-03 2.76799093627156e-02 + 4.05376765196089e-03 2.99833794851636e-02 + 4.59470535680256e-03 3.23796628492609e-02 + 5.21477966536096e-03 3.48657128522448e-02 + 5.94503803867964e-03 3.74411671455705e-02 + 6.78233388927098e-03 4.01053607901385e-02 + 7.74391955427661e-03 4.28598832100823e-02 + 8.83311473699918e-03 4.57018853270545e-02 + 1.00664771213545e-02 4.86291765295384e-02 + 1.14551430259009e-02 5.16389681761983e-02 + 1.29611378467704e-02 5.47486305628752e-02 + 1.45964882008138e-02 5.79561207503864e-02 + 1.63848324985998e-02 6.12556528787700e-02 + 1.83232367633801e-02 6.46514406900109e-02 + 2.04248965740288e-02 6.81411328673622e-02 + 2.27093659399768e-02 7.17184642679208e-02 + 2.52011885482345e-02 7.53750876458631e-02 + 2.79081307407937e-02 7.91065862010868e-02 + 3.08374182367552e-02 8.29108822521958e-02 + 3.40053312379741e-02 8.67805688830657e-02 + 3.74308733290526e-02 9.07059791321294e-02 + 4.11179034200775e-02 9.46828691728414e-02 + 4.50791708433891e-02 9.87024617331106e-02 + 4.93264881075959e-02 1.02757044522568e-01 + 5.38789532706701e-02 1.06831077000155e-01 + 5.87518034850715e-02 1.10910538910161e-01 + 6.39547383307549e-02 1.14985671186272e-01 + 6.94969929106669e-02 1.19043586463204e-01 + 7.53996540127028e-02 1.23058165191139e-01 + 8.16737127083965e-02 1.27016052234526e-01 + 8.83239535289910e-02 1.30905673375704e-01 + 9.53570709612264e-02 1.34714134077826e-01 + 1.02786300285487e-01 1.38415816642050e-01 + 1.10620010894362e-01 1.41992032107462e-01 + 1.18860482317225e-01 1.45432336710896e-01 + 1.27513032531479e-01 1.48723651813857e-01 + 1.36584684204393e-01 1.51844758605639e-01 + 1.46076639297082e-01 1.54782852900367e-01 + 1.55999199856299e-01 1.57506599259163e-01 + 1.66352664522653e-01 1.59999577668257e-01 + 1.77138313121526e-01 1.62244244380754e-01 + 1.88356215428518e-01 1.64230349435977e-01 + 2.00006995335110e-01 1.65937513648084e-01 + 2.12088352172573e-01 1.67355251160801e-01 + 2.24597375220454e-01 1.68480499855505e-01 + 2.37530604236495e-01 1.69317084532731e-01 + 2.50888000579516e-01 1.69853265514773e-01 + 2.64667131034568e-01 1.70066125224155e-01 + 2.78865486764011e-01 1.69998987066699e-01 + 2.93481010770839e-01 1.69614928766954e-01 + 3.08510254279355e-01 1.68911501143746e-01 + 3.23951828813675e-01 1.67896373753196e-01 + 3.39801253275448e-01 1.66568378546573e-01 + 3.56055681794820e-01 1.64922985969499e-01 + 3.72711912984455e-01 1.62969846701410e-01 + 3.89766230391811e-01 1.60707591042085e-01 + 4.07211765361513e-01 1.58129085402990e-01 + 4.25045671847805e-01 1.55249897824184e-01 + 4.43262625334770e-01 1.52075852633807e-01 + 4.61858375529608e-01 1.48615196767554e-01 + 4.80824151741208e-01 1.44869245305497e-01 + 5.00156041667374e-01 1.40853945233414e-01 + 5.19847774822214e-01 1.36585015294274e-01 + 5.39895004645840e-01 1.32081397720900e-01 + 5.60288736887267e-01 1.27353505887314e-01 + 5.81116135994904e-01 1.22400342674775e-01 + 6.02329382016993e-01 1.17248251207676e-01 + 6.23864539832199e-01 1.11899860700384e-01 + 6.45709359153453e-01 1.06371945867616e-01 + 6.67853685421805e-01 1.00679154805189e-01 + 6.90281207276496e-01 9.48300534525325e-02 + 7.12977169521804e-01 8.88363984956073e-02 + 7.35925714472575e-01 8.27083755915047e-02 + 7.59112594135585e-01 7.64723527308242e-02 + 7.82520220826294e-01 7.01418485366360e-02 + 8.06131757944563e-01 6.37361071798765e-02 + 8.29927773488037e-01 5.72668581096366e-02 + 8.53892156515441e-01 5.07673290228555e-02 + 8.78008689068085e-01 4.42660049173939e-02 + 9.02253899452512e-01 3.77694077511774e-02 + 9.26617442136765e-01 3.13423265251554e-02 + 9.51065534444578e-01 2.49350792349685e-02 + 9.75540925332314e-01 1.85490874973625e-02 + 1.00000000000000e+00 1.22040596741761e-02 diff --git a/Test_Cases/BAR_10/Airfoils/AF11_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF11_Coords.txt new file mode 100644 index 000000000..34b242c47 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF11_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.327170 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 5.69336792201568e-03 + 9.84620601284157e-01 2.69720248961982e-03 + 9.59065399386510e-01 -8.79344216441675e-04 + 9.33386197570883e-01 -2.20810323135139e-03 + 9.07659145163288e-01 -1.93564095862185e-03 + 8.82036041978663e-01 -3.15251769255177e-03 + 8.56651638560016e-01 -5.93335857940256e-03 + 8.31671512688058e-01 -1.00371681505028e-02 + 8.07107730056317e-01 -1.52371428448921e-02 + 7.82965378171687e-01 -2.13818904288080e-02 + 7.59284398847484e-01 -2.83759656741414e-02 + 7.36072891757484e-01 -3.60618149174326e-02 + 7.13308495212565e-01 -4.42275697271342e-02 + 6.90924902718564e-01 -5.27420171793917e-02 + 6.68884019769827e-01 -6.14531482067368e-02 + 6.47226689293567e-01 -7.02254657154337e-02 + 6.25919261398226e-01 -7.89320273245232e-02 + 6.04938173907827e-01 -8.74737025864495e-02 + 5.84341503185606e-01 -9.57549022527348e-02 + 5.64071626849668e-01 -1.03703647088951e-01 + 5.44086000156766e-01 -1.11264596912414e-01 + 5.24376298605181e-01 -1.18383136709414e-01 + 5.04943281336075e-01 -1.25028137575918e-01 + 4.85800003851434e-01 -1.31179543811238e-01 + 4.66947513735373e-01 -1.36808490588296e-01 + 4.48400668666893e-01 -1.41900084601979e-01 + 4.30167108477344e-01 -1.46433495197161e-01 + 4.12263869128100e-01 -1.50413820037241e-01 + 3.94709321567734e-01 -1.53856566994929e-01 + 3.77518687536779e-01 -1.56771185060586e-01 + 3.60708485169656e-01 -1.59181072640197e-01 + 3.44291290749080e-01 -1.61100572462646e-01 + 3.28280161031282e-01 -1.62550959579367e-01 + 3.12685827361769e-01 -1.63549465882354e-01 + 2.97517506175877e-01 -1.64125101981876e-01 + 2.82782530841641e-01 -1.64297278229780e-01 + 2.68486775699925e-01 -1.64078507490909e-01 + 2.54637222994282e-01 -1.63499080723388e-01 + 2.41234702893503e-01 -1.62578876533024e-01 + 2.28281805366243e-01 -1.61343489575949e-01 + 2.15779965139779e-01 -1.59809741111011e-01 + 2.03726052121001e-01 -1.58008120034056e-01 + 1.92120700543796e-01 -1.55953586410491e-01 + 1.80958231181713e-01 -1.53671414090044e-01 + 1.70235938018605e-01 -1.51181227851494e-01 + 1.59950762218221e-01 -1.48491968318999e-01 + 1.50096478412444e-01 -1.45623078024214e-01 + 1.40669035910879e-01 -1.42592680138281e-01 + 1.31655940920824e-01 -1.39425649359124e-01 + 1.23053433629565e-01 -1.36133835101256e-01 + 1.14850550576954e-01 -1.32735881878654e-01 + 1.07039581536730e-01 -1.29246021712396e-01 + 9.96147023403595e-02 -1.25673899864830e-01 + 9.25654679563174e-02 -1.22031822523506e-01 + 8.58853886156989e-02 -1.18332009129714e-01 + 7.95635370806907e-02 -1.14589044451459e-01 + 7.35902567533277e-02 -1.10813248410254e-01 + 6.79572521685144e-02 -1.07014776661475e-01 + 6.26421857905065e-02 -1.03215235430030e-01 + 5.76417484248830e-02 -9.94190677639432e-02 + 5.29482897447396e-02 -9.56343390696084e-02 + 4.85351767181931e-02 -9.18800761695897e-02 + 4.43978521931550e-02 -8.81599943208525e-02 + 4.05301067480184e-02 -8.44767538257560e-02 + 3.69240210767337e-02 -8.08352166570436e-02 + 3.35714898334532e-02 -7.72415524652259e-02 + 3.04542700498460e-02 -7.37044521503535e-02 + 2.75657265266557e-02 -7.02276039329598e-02 + 2.48960739600408e-02 -6.68152765350707e-02 + 2.24282407540937e-02 -6.34761016180643e-02 + 2.01426742608042e-02 -6.02154367267011e-02 + 1.80300011041470e-02 -5.70367645346805e-02 + 1.60836684974107e-02 -5.39391275559009e-02 + 1.42900945659792e-02 -5.09250795585743e-02 + 1.26364740457987e-02 -4.79983449948129e-02 + 1.11321233398698e-02 -4.51523289306889e-02 + 9.77421611002815e-03 -4.23843867951296e-02 + 8.54402118466260e-03 -3.97003874319875e-02 + 7.43796357392027e-03 -3.71009465991229e-02 + 6.45946670322659e-03 -3.45799990095788e-02 + 5.59884248083190e-03 -3.21404607845493e-02 + 4.83863217784094e-03 -2.97828961574185e-02 + 4.16333489624098e-03 -2.75105589566098e-02 + 3.57493966967781e-03 -2.53184925073617e-02 + 3.05417465933469e-03 -2.32061884994923e-02 + 2.57810998672207e-03 -2.11769951130669e-02 + 2.13970851989036e-03 -1.92293040750300e-02 + 1.74647654261495e-03 -1.73603357088644e-02 + 1.42200975960736e-03 -1.55575771567859e-02 + 1.15172744857049e-03 -1.38243304744549e-02 + 9.23058673046111e-04 -1.21602081644210e-02 + 7.43524045373698e-04 -1.05628380234778e-02 + 6.06646878973332e-04 -9.02995862580573e-03 + 4.97398738191423e-04 -7.56226270203808e-03 + 4.06838262026423e-04 -6.15742944984606e-03 + 3.22333833595366e-04 -4.81320403501897e-03 + 2.39367825123650e-04 -3.52789865306317e-03 + 1.60351249589298e-04 -2.29884037009012e-03 + 8.22572140724360e-05 -1.12371022273992e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 7.93648548043678e-05 1.12564765830548e-03 + 1.61298528595351e-04 2.30401412938293e-03 + 2.45582501801210e-04 3.53492818966296e-03 + 3.34852277955969e-04 4.82081782062548e-03 + 4.26754240543029e-04 6.16440118106341e-03 + 5.28730577610594e-04 7.56739352981899e-03 + 6.50959954812664e-04 9.03147815492261e-03 + 7.98972362011465e-04 1.05596893163522e-02 + 9.78524539191480e-04 1.21526180541280e-02 + 1.20476017799898e-03 1.38117621409321e-02 + 1.47530174636498e-03 1.55387655056450e-02 + 1.79337721007726e-03 1.73364554181073e-02 + 2.16951720916695e-03 1.92035143846667e-02 + 2.59218192151182e-03 2.11458736353822e-02 + 3.02195673423950e-03 2.31677607515355e-02 + 3.48997906827223e-03 2.52667622395002e-02 + 4.02144071583196e-03 2.74477301359007e-02 + 4.62560214996078e-03 2.97106113400051e-02 + 5.29836422373672e-03 3.20601157871403e-02 + 6.05438269969941e-03 3.44952280300735e-02 + 6.92220560284876e-03 3.70131025710533e-02 + 7.90200003109885e-03 3.96133182627422e-02 + 9.00664470648452e-03 4.22973556515885e-02 + 1.02363932364526e-02 4.50649445052375e-02 + 1.16084838469374e-02 4.79117938433549e-02 + 1.31328695206973e-02 5.08360902046805e-02 + 1.47856379149848e-02 5.38500475208718e-02 + 1.65785669750473e-02 5.69507944627139e-02 + 1.85300465458139e-02 6.01334274795992e-02 + 2.06419235875837e-02 6.33995525245037e-02 + 2.29257691250293e-02 6.67466839391281e-02 + 2.53977452447366e-02 7.01692917364201e-02 + 2.80750470377508e-02 7.36620445359320e-02 + 3.09663934161460e-02 7.72200039611156e-02 + 3.40792486273673e-02 8.08408647887733e-02 + 3.74273005840619e-02 8.45184442806582e-02 + 4.10273213538600e-02 8.82438038802738e-02 + 4.48838609818431e-02 9.20128283806165e-02 + 4.90095917278134e-02 9.58161688359739e-02 + 5.34159597295430e-02 9.96460708736210e-02 + 5.81180185796734e-02 1.03490774246530e-01 + 6.31285839354925e-02 1.07339036224211e-01 + 6.84576025389045e-02 1.11181289684913e-01 + 7.41140138012761e-02 1.15006180161605e-01 + 8.01168732798720e-02 1.18789872360603e-01 + 8.64749751934138e-02 1.22522881236948e-01 + 9.31954085379468e-02 1.26192020477939e-01 + 1.00287079162623e-01 1.29781495570832e-01 + 1.07760068929377e-01 1.33273211212168e-01 + 1.15622710522431e-01 1.36649918048608e-01 + 1.23879688344990e-01 1.39899054481151e-01 + 1.32536649780066e-01 1.43008014566659e-01 + 1.41601307978787e-01 1.45955544516331e-01 + 1.51075587381953e-01 1.48730250934572e-01 + 1.60968886893316e-01 1.51304097050534e-01 + 1.71282605351124e-01 1.53661589559882e-01 + 1.82019215010495e-01 1.55783899388368e-01 + 1.93179110254780e-01 1.57663437343566e-01 + 2.04763857840427e-01 1.59279519018170e-01 + 2.16772068637275e-01 1.60623575431052e-01 + 2.29201796305040e-01 1.61694196451598e-01 + 2.42051007927475e-01 1.62491715045021e-01 + 2.55319994347433e-01 1.63007018745350e-01 + 2.69007196656098e-01 1.63209401094451e-01 + 2.83110825543483e-01 1.63144877005613e-01 + 2.97629219837771e-01 1.62786173489962e-01 + 3.12559754908189e-01 1.62117016387532e-01 + 3.27901429459543e-01 1.61154940505470e-01 + 3.43650769786651e-01 1.59898973196472e-01 + 3.59804953006266e-01 1.58340475177757e-01 + 3.76361285857053e-01 1.56488682969994e-01 + 3.93316149295768e-01 1.54342005778594e-01 + 4.10663410315763e-01 1.51892593578889e-01 + 4.28400604354316e-01 1.49158289438080e-01 + 4.46522398615321e-01 1.46141757149557e-01 + 4.65023787958258e-01 1.42847496266119e-01 + 4.83896877995355e-01 1.39277734450101e-01 + 5.03137173141838e-01 1.35447156698743e-01 + 5.22738465078210e-01 1.31370336834894e-01 + 5.42697018290244e-01 1.27070490497805e-01 + 5.63002240509453e-01 1.22549613624422e-01 + 5.83716287174527e-01 1.17808013190969e-01 + 6.04801285715559e-01 1.12869469720195e-01 + 6.26205946877966e-01 1.07734808947152e-01 + 6.47918480481259e-01 1.02421211479229e-01 + 6.69926196234772e-01 9.69359737543055e-02 + 6.92213827215025e-01 9.12903036356305e-02 + 7.14766521894199e-01 8.54960130577446e-02 + 7.37568272336590e-01 7.95631587340104e-02 + 7.60605284119054e-01 7.35190328405060e-02 + 7.83861033663444e-01 6.73802166585215e-02 + 8.07319366409214e-01 6.11678753784510e-02 + 8.30959591999136e-01 5.48893100938650e-02 + 8.54767949078401e-01 4.85834926553776e-02 + 8.78729002645540e-01 4.22814096921099e-02 + 9.02820186813924e-01 3.59919207961481e-02 + 9.27030577963064e-01 2.97753162796367e-02 + 9.51331435874554e-01 2.35914057191823e-02 + 9.75670036001726e-01 1.74355142160662e-02 + 1.00000000000000e+00 1.13305441792048e-02 diff --git a/Test_Cases/BAR_10/Airfoils/AF12_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF12_Coords.txt new file mode 100644 index 000000000..479af822d --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF12_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.317813 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 7.53399021543371e-03 + 9.88447321254005e-01 4.67734185800920e-03 + 9.62976644769159e-01 7.88128996176324e-05 + 9.37359297796288e-01 -1.62027109368907e-03 + 9.11695899174437e-01 -1.06573567576380e-03 + 8.86128258794458e-01 -1.96346865900468e-03 + 8.60779068590012e-01 -4.41337564868719e-03 + 8.35775465356209e-01 -8.16926182893399e-03 + 8.11154533857147e-01 -1.30269280720949e-02 + 7.86942446612129e-01 -1.88490054114511e-02 + 7.63187773544180e-01 -2.55511304181551e-02 + 7.39901081044208e-01 -3.29710793657658e-02 + 7.17064616587740e-01 -4.08948070757871e-02 + 6.94615243953487e-01 -4.91970954922361e-02 + 6.72520174841924e-01 -5.77328039359905e-02 + 6.50825594423715e-01 -6.63626776417927e-02 + 6.29497173411078e-01 -7.49564815982119e-02 + 6.08510777379121e-01 -8.34130834049377e-02 + 5.87883391594654e-01 -9.16316292677886e-02 + 5.67573852468456e-01 -9.95322165413780e-02 + 5.47555695905706e-01 -1.07057418400161e-01 + 5.27818905250932e-01 -1.14146504358910e-01 + 5.08364873343409e-01 -1.20765966255466e-01 + 4.89203524943323e-01 -1.26892932048345e-01 + 4.70338499166890e-01 -1.32499493339052e-01 + 4.51782588495840e-01 -1.37569603120879e-01 + 4.33547074644344e-01 -1.42092084794569e-01 + 4.15648412302552e-01 -1.46073894805028e-01 + 3.98102597369225e-01 -1.49525769626354e-01 + 3.80923354050413e-01 -1.52453006842427e-01 + 3.64127256919118e-01 -1.54883558799880e-01 + 3.47725701378644e-01 -1.56825135770962e-01 + 3.31731528844377e-01 -1.58303118232072e-01 + 3.16154699232926e-01 -1.59331677752452e-01 + 3.01004567436448e-01 -1.59946314942106e-01 + 2.86287949794334e-01 -1.60149837614463e-01 + 2.72010477627343e-01 -1.59973388962916e-01 + 2.58178030968859e-01 -1.59444484408825e-01 + 2.44791872420330e-01 -1.58576211018659e-01 + 2.31854218702935e-01 -1.57396246295242e-01 + 2.19366180151881e-01 -1.55919703533797e-01 + 2.07325377576291e-01 -1.54174930733329e-01 + 1.95731195839207e-01 -1.52179414279513e-01 + 1.84579345289394e-01 -1.49954873531046e-01 + 1.73866359614011e-01 -1.47521526401835e-01 + 1.63588410658606e-01 -1.44892108819405e-01 + 1.53740254670431e-01 -1.42083001417992e-01 + 1.44315872768152e-01 -1.39114957691487e-01 + 1.35303757466351e-01 -1.36013511012956e-01 + 1.26699192463336e-01 -1.32789419978447e-01 + 1.18492398451154e-01 -1.29460002288214e-01 + 1.10673150923663e-01 -1.26044033011366e-01 + 1.03234491708610e-01 -1.22551489263217e-01 + 9.61665350365895e-02 -1.18994290838122e-01 + 8.94594886567696e-02 -1.15387437151096e-01 + 8.31018212236367e-02 -1.11745435132945e-01 + 7.70836500793790e-02 -1.08078047543276e-01 + 7.13956131403688e-02 -1.04394912429773e-01 + 6.60183844783860e-02 -1.00715450898995e-01 + 6.09468070186927e-02 -9.70434979154126e-02 + 5.61720533959526e-02 -9.33865810437469e-02 + 5.16730754392678e-02 -8.97603465789327e-02 + 4.74426778797826e-02 -8.61693141947842e-02 + 4.34739881000485e-02 -8.26156529212873e-02 + 3.97584243075226e-02 -7.91037816455680e-02 + 3.62862734911211e-02 -7.56401943360470e-02 + 3.30427865282554e-02 -7.22319012880135e-02 + 3.00203057080272e-02 -6.88820797560954e-02 + 2.72091696586112e-02 -6.55943832787604e-02 + 2.45955906350062e-02 -6.23751314248008e-02 + 2.21683110214094e-02 -5.92257207447943e-02 + 1.99159413726555e-02 -5.61510843807424e-02 + 1.78334599136174e-02 -5.31497240363592e-02 + 1.59097790117027e-02 -5.02235089497220e-02 + 1.41312489440865e-02 -4.73773210229186e-02 + 1.25037962337406e-02 -4.46053473056920e-02 + 1.10226346088608e-02 -4.19064488908327e-02 + 9.67237106235179e-03 -3.92852229569106e-02 + 8.44499466680568e-03 -3.67437597759058e-02 + 7.34806316840593e-03 -3.42746879880016e-02 + 6.36999357582068e-03 -3.18814794640320e-02 + 5.49542032418514e-03 -2.95656201651912e-02 + 4.71112675202531e-03 -2.73298299992128e-02 + 4.02309375531078e-03 -2.51686609278807e-02 + 3.41551930084007e-03 -2.30817134472649e-02 + 2.86597580291349e-03 -2.10738446344365e-02 + 2.36110880706177e-03 -1.91450168264060e-02 + 1.90633107654062e-03 -1.72927509095400e-02 + 1.53814049326291e-03 -1.55020705492779e-02 + 1.23364277108190e-03 -1.37782947659742e-02 + 9.77717182963374e-04 -1.21219844934885e-02 + 7.82804042759384e-04 -1.05309553361428e-02 + 6.35415545136859e-04 -9.00314481118856e-03 + 5.17451310013165e-04 -7.54019130885588e-03 + 4.20634785372771e-04 -6.13974409378915e-03 + 3.32799228293898e-04 -4.79950242424905e-03 + 2.46916077245682e-04 -3.51797522616801e-03 + 1.64977468946848e-04 -2.29248501501185e-03 + 8.44754203596316e-05 -1.12066946289231e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 8.08127659443316e-05 1.12030162378884e-03 + 1.63437907747725e-04 2.29319915395853e-03 + 2.48156035701073e-04 3.51838328757088e-03 + 3.37598368155749e-04 4.79829040817628e-03 + 4.29167510258424e-04 6.13565520873135e-03 + 5.31123838218165e-04 7.53201401305376e-03 + 6.54673131198146e-04 8.98892878136860e-03 + 8.06094876351586e-04 1.05094499249537e-02 + 9.92807522055285e-04 1.20934009082223e-02 + 1.23432283614669e-03 1.37421219997999e-02 + 1.52565650710560e-03 1.54566331525176e-02 + 1.87332962160819e-03 1.72395435119304e-02 + 2.28910532655630e-03 1.90877544846547e-02 + 2.76654483646247e-03 2.10072158129400e-02 + 3.26087624982416e-03 2.30074615240601e-02 + 3.80867866554852e-03 2.50823366133476e-02 + 4.43269239088611e-03 2.72338680463170e-02 + 5.14124097987164e-03 2.94609081857215e-02 + 5.92881730336429e-03 3.17690163344558e-02 + 6.80294651625406e-03 3.41590989814621e-02 + 7.78968511112772e-03 3.66261231527399e-02 + 8.89131771343515e-03 3.91700153456525e-02 + 1.01169432056134e-02 4.17922106475129e-02 + 1.14651149449687e-02 4.44946044015285e-02 + 1.29539286423854e-02 4.72711084644795e-02 + 1.45918514492731e-02 5.01208223862221e-02 + 1.63673195721051e-02 5.30514026039294e-02 + 1.82919960822145e-02 5.60592718920081e-02 + 2.03797234670364e-02 5.91404032626083e-02 + 2.26359818783310e-02 6.22943858926969e-02 + 2.50709784243907e-02 6.55186506648503e-02 + 2.76977565359158e-02 6.88084429400444e-02 + 3.05269036268222e-02 7.21611927649230e-02 + 3.35685283500064e-02 7.55714104546803e-02 + 3.68304480250105e-02 7.90365801657496e-02 + 4.03238203606772e-02 8.25517834478237e-02 + 4.40628572930530e-02 8.61090897459832e-02 + 4.80539340206627e-02 8.97041418304951e-02 + 5.23097239239540e-02 9.33271285063720e-02 + 5.68410942438791e-02 9.69704817143901e-02 + 6.16597460013316e-02 1.00625676892093e-01 + 6.67764134498756e-02 1.04283936480069e-01 + 7.22013130330015e-02 1.07935899269262e-01 + 7.79438832418193e-02 1.11571110225943e-01 + 8.40211190229150e-02 1.15168050637521e-01 + 9.04397342552752e-02 1.18720621938337e-01 + 9.72091617805768e-02 1.22214134708012e-01 + 1.04340128402828e-01 1.25630592137357e-01 + 1.11840504651810e-01 1.28957785840650e-01 + 1.19718629697114e-01 1.32179636970541e-01 + 1.27981408885023e-01 1.35281567458018e-01 + 1.36634508756534e-01 1.38251691719036e-01 + 1.45686186152139e-01 1.41068849496037e-01 + 1.55139425171161e-01 1.43722357064755e-01 + 1.65002432402569e-01 1.46187412072371e-01 + 1.75277920103588e-01 1.48448828369713e-01 + 1.85969380865946e-01 1.50486688131365e-01 + 1.97077423977580e-01 1.52295509240219e-01 + 2.08604402469976e-01 1.53854549115000e-01 + 2.20549910317070e-01 1.55156155966495e-01 + 2.32912922604033e-01 1.56199588558589e-01 + 2.45692643079649e-01 1.56982080067671e-01 + 2.58889428228184e-01 1.57496630278905e-01 + 2.72502447302336e-01 1.57706892865951e-01 + 2.86530525194616e-01 1.57659510713216e-01 + 3.00972239686189e-01 1.57335715497701e-01 + 3.15825735889361e-01 1.56706952931078e-01 + 3.31090112098917e-01 1.55799804396467e-01 + 3.46762788513565e-01 1.54611795145970e-01 + 3.62840916134619e-01 1.53132164685659e-01 + 3.79322220830654e-01 1.51369681308335e-01 + 3.96203033725419e-01 1.49322186304424e-01 + 4.13478040046737e-01 1.46981969296481e-01 + 4.31144919903268e-01 1.44367914972608e-01 + 4.49198406378572e-01 1.41480461966664e-01 + 4.67632777112920e-01 1.38321066881170e-01 + 4.86441096041027e-01 1.34892918322968e-01 + 5.05618235140475e-01 1.31209674224104e-01 + 5.25158115503637e-01 1.27284941126527e-01 + 5.45057087262315e-01 1.23144609848890e-01 + 5.65303631434259e-01 1.18784778924090e-01 + 5.85925763622387e-01 1.14207371491680e-01 + 6.06899355615888e-01 1.09433422782979e-01 + 6.28190795455530e-01 1.04463269127362e-01 + 6.49788764157821e-01 9.93139650898910e-02 + 6.71678669989080e-01 9.39881527216820e-02 + 6.93846178489856e-01 8.84987577342753e-02 + 7.16276361308197e-01 8.28577318089251e-02 + 7.38953112124997e-01 7.70753712057567e-02 + 7.61863107403147e-01 7.11794509929253e-02 + 7.84990562519770e-01 6.51887007959995e-02 + 8.08319813472157e-01 5.91257035819387e-02 + 8.31829360716132e-01 5.29947598434358e-02 + 8.55506956501216e-01 4.68378215278578e-02 + 8.79337626531292e-01 4.06876721194631e-02 + 9.03299595983998e-01 3.45552579090059e-02 + 9.27381139589052e-01 2.84949222422179e-02 + 9.51557455017228e-01 2.24680636332385e-02 + 9.75779704346168e-01 1.64683165900367e-02 + 1.00000000000000e+00 1.05190575047472e-02 diff --git a/Test_Cases/BAR_10/Airfoils/AF13_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF13_Coords.txt new file mode 100644 index 000000000..2ad33d5e7 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF13_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.309414 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 8.69038717860892e-03 + 9.90929734343671e-01 6.14470186569668e-03 + 9.65508842816965e-01 8.69572756731981e-04 + 9.39930300299106e-01 -1.07308545333864e-03 + 9.14310531354434e-01 -3.04361825038041e-04 + 8.88783858722989e-01 -9.61424811388733e-04 + 8.63463808546189e-01 -3.14802493023270e-03 + 8.38446880391390e-01 -6.61658750271185e-03 + 8.13788748574550e-01 -1.11820507226682e-02 + 7.89531267996497e-01 -1.67208304752840e-02 + 7.65728624936941e-01 -2.31588038127095e-02 + 7.42392991464482e-01 -3.03329419059750e-02 + 7.19509615330898e-01 -3.80296141022232e-02 + 6.97035144236241e-01 -4.61275255265012e-02 + 6.74943728776506e-01 -5.44879390034183e-02 + 6.53261288529983e-01 -6.29696181463451e-02 + 6.31954421177604e-01 -7.14405029768564e-02 + 6.10998905595977e-01 -7.97977331755729e-02 + 5.90380362846558e-01 -8.79368814376871e-02 + 5.70071648774303e-01 -9.57722983237331e-02 + 5.50058832405244e-01 -1.03244481557052e-01 + 5.30331242036491e-01 -1.10288257504735e-01 + 5.10890628672269e-01 -1.16867865877960e-01 + 4.91744339881573e-01 -1.22958028093730e-01 + 4.72897973802197e-01 -1.28531345865660e-01 + 4.54362416869652e-01 -1.33570456839779e-01 + 4.36151475335619e-01 -1.38071405735825e-01 + 4.18281227940485e-01 -1.42042667505321e-01 + 4.00766064897327e-01 -1.45491371903510e-01 + 3.83618705758744e-01 -1.48419780645054e-01 + 3.66855711422214e-01 -1.50859272273425e-01 + 3.50487603484938e-01 -1.52812358113143e-01 + 3.34527022214498e-01 -1.54307565555895e-01 + 3.18983371921453e-01 -1.55356897309927e-01 + 3.03866053096552e-01 -1.56000693000465e-01 + 2.89181466876606e-01 -1.56228986252587e-01 + 2.74935056375270e-01 -1.56087198008585e-01 + 2.61131804081077e-01 -1.55600819926075e-01 + 2.47773301076720e-01 -1.54777602033810e-01 + 2.34861445887843e-01 -1.53646755938972e-01 + 2.22397029461279e-01 -1.52222052977020e-01 + 2.10378240871527e-01 -1.50530093270655e-01 + 1.98803483319014e-01 -1.48590185738174e-01 + 1.87669539284749e-01 -1.46421077078929e-01 + 1.76972273816704e-01 -1.44043596860058e-01 + 1.66707391602430e-01 -1.41473221524659e-01 + 1.56870258356215e-01 -1.38724156739967e-01 + 1.47453411709020e-01 -1.35818973040867e-01 + 1.38446263731433e-01 -1.32783542597737e-01 + 1.29843229322105e-01 -1.29627807952859e-01 + 1.21635470325403e-01 -1.26367984314175e-01 + 1.13810947590922e-01 -1.23026370847675e-01 + 1.06361846389618e-01 -1.19613114656563e-01 + 9.92787850853937e-02 -1.16139768689264e-01 + 9.25494921237447e-02 -1.12623433649405e-01 + 8.61620389601117e-02 -1.09078476796648e-01 + 8.01064554423097e-02 -1.05514094391267e-01 + 7.43724872000220e-02 -1.01939591591646e-01 + 6.89433384294360e-02 -9.83725149441642e-02 + 6.38123152660711e-02 -9.48161788381434e-02 + 5.89696726386853e-02 -9.12776055589775e-02 + 5.43987927823265e-02 -8.77697621797237e-02 + 5.00904658464621e-02 -8.42977446962405e-02 + 4.60372976690258e-02 -8.08633042739318e-02 + 4.22301757911982e-02 -7.74705023605332e-02 + 3.86581197538553e-02 -7.41261102211607e-02 + 3.53091583414328e-02 -7.08357857033679e-02 + 3.21748302254733e-02 -6.76022464476393e-02 + 2.92455670218428e-02 -6.44286279925572e-02 + 2.65101014468196e-02 -6.13193490266031e-02 + 2.39635001829630e-02 -5.82725679173307e-02 + 2.15929423514262e-02 -5.52943305327296e-02 + 1.93945598105478e-02 -5.23826724051934e-02 + 1.73593096985732e-02 -4.95388238950838e-02 + 1.54730063585451e-02 -4.67686029846727e-02 + 1.37389059291824e-02 -4.40668140067054e-02 + 1.21506898370960e-02 -4.14335892274650e-02 + 1.06956038807191e-02 -3.88724657181515e-02 + 9.36230304173995e-03 -3.63867111969921e-02 + 8.16156882681513e-03 -3.39677662517710e-02 + 7.08042447918023e-03 -3.16195443916807e-02 + 6.10514088164219e-03 -2.93443589494460e-02 + 5.22433575437369e-03 -2.71444733658360e-02 + 4.44727698902523e-03 -2.50139517526201e-02 + 3.76123359692559e-03 -2.29524646917280e-02 + 3.14434200402611e-03 -2.09662158234916e-02 + 2.57748112458305e-03 -1.90569639734180e-02 + 2.06502166735817e-03 -1.72220191307053e-02 + 1.65484882526639e-03 -1.54441659073377e-02 + 1.31719156954749e-03 -1.37304618891462e-02 + 1.03453875607896e-03 -1.20824151305984e-02 + 8.24006876953105e-04 -1.04980429590574e-02 + 6.65812160246889e-04 -8.97555948076370e-03 + 5.39040931406989e-04 -7.51743269075485e-03 + 4.35917716129971e-04 -6.12141221912440e-03 + 3.44511751204536e-04 -4.78522799202408e-03 + 2.55382619318942e-04 -3.50754509922055e-03 + 1.70207299591277e-04 -2.28569727876537e-03 + 8.69873043567271e-05 -1.11730775768742e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 8.25236028099873e-05 1.11588655383515e-03 + 1.66021741056971e-04 2.28362597668154e-03 + 2.51294764312980e-04 3.50352822302514e-03 + 3.40967416501254e-04 4.77794313993345e-03 + 4.32163779991860e-04 6.10960445626786e-03 + 5.34126806915896e-04 7.49989323058478e-03 + 6.59267287846882e-04 8.95027070531079e-03 + 8.14617582193103e-04 1.04637445788995e-02 + 1.00914915722258e-03 1.20393880243091e-02 + 1.26629892438471e-03 1.36784405716962e-02 + 1.57801680856379e-03 1.53814643901288e-02 + 1.95375349685739e-03 1.71507573430007e-02 + 2.40611205611020e-03 1.89817591297339e-02 + 2.93224747115229e-03 2.08805285813118e-02 + 3.48323779291528e-03 2.28606506400724e-02 + 4.09961235654919e-03 2.49131418274061e-02 + 4.80233285794606e-03 2.70375009317762e-02 + 5.59865107888119e-03 2.92318230805624e-02 + 6.48193434916821e-03 3.15023899979130e-02 + 7.45403732761043e-03 3.38517883169548e-02 + 8.53938134092380e-03 3.62730628998688e-02 + 9.74176629000232e-03 3.87664310380280e-02 + 1.10674091438455e-02 4.13333204746166e-02 + 1.25137576614003e-02 4.39773464533063e-02 + 1.40995650137784e-02 4.66909583083294e-02 + 1.58320962491773e-02 4.94739687128687e-02 + 1.77091001288464e-02 5.23303986176488e-02 + 1.97420770611891e-02 5.52561460162075e-02 + 2.19413662449684e-02 5.82479314123918e-02 + 2.43147760989182e-02 6.13040109424482e-02 + 2.68714656785077e-02 6.44217751771879e-02 + 2.96221373486263e-02 6.75970842873646e-02 + 3.25725241750536e-02 7.08295075277130e-02 + 3.57337677493712e-02 7.41131567567633e-02 + 3.91139545411221e-02 7.74453621317129e-02 + 4.27223148484266e-02 8.08222227053766e-02 + 4.65709644555305e-02 8.42367298358635e-02 + 5.06677298735390e-02 8.76844356862555e-02 + 5.50252381498798e-02 9.11552364538705e-02 + 5.96538420726870e-02 9.46418057942724e-02 + 6.45628397521088e-02 9.81380760211736e-02 + 6.97614558856123e-02 1.01637166942292e-01 + 7.52600536752440e-02 1.05129978714653e-01 + 8.10685400244093e-02 1.08606732581277e-01 + 8.72022191369411e-02 1.12047924276982e-01 + 9.36663921761013e-02 1.15449883358404e-01 + 1.00472149681305e-01 1.18797022120804e-01 + 1.07631387143055e-01 1.22070083818768e-01 + 1.15150566272443e-01 1.25261100611468e-01 + 1.23038065022303e-01 1.28354914330180e-01 + 1.31302427774179e-01 1.31335478092610e-01 + 1.39949328992124e-01 1.34191585291707e-01 + 1.48987351954357e-01 1.36902504048459e-01 + 1.58420426187088e-01 1.39457979670606e-01 + 1.68255855630957e-01 1.41835802335413e-01 + 1.78497445454221e-01 1.44020996551946e-01 + 1.89149473665174e-01 1.45993010912742e-01 + 2.00212814095990e-01 1.47747712117822e-01 + 2.11690412860955e-01 1.49264708983825e-01 + 2.23582735076638e-01 1.50536679451624e-01 + 2.35889555610359e-01 1.51562896739928e-01 + 2.48611035562393e-01 1.52338298032685e-01 + 2.61747603179279e-01 1.52856994918483e-01 + 2.75299009029017e-01 1.53079247865810e-01 + 2.89264540803613e-01 1.53050723910089e-01 + 3.03642973358135e-01 1.52759616120711e-01 + 3.18433025447547e-01 1.52167407213946e-01 + 3.33633832807084e-01 1.51307884993672e-01 + 3.49243446507991e-01 1.50176608411425e-01 + 3.65259044167440e-01 1.48762149193328e-01 + 3.81678618156748e-01 1.47072492825549e-01 + 3.98498507753087e-01 1.45105450797732e-01 + 4.15714023249669e-01 1.42853484519385e-01 + 4.33322854742608e-01 1.40335615725955e-01 + 4.51319835864153e-01 1.37550994159579e-01 + 4.69698771760473e-01 1.34499090280930e-01 + 4.88453382059420e-01 1.31183454654915e-01 + 5.07578154813319e-01 1.27617422818740e-01 + 5.27067049177944e-01 1.23813592097465e-01 + 5.46916261240918e-01 1.19799201460929e-01 + 5.67113776043907e-01 1.15566509322830e-01 + 5.87660664317744e-01 1.11118923921024e-01 + 6.08543652636202e-01 1.06475269481141e-01 + 6.29743188001335e-01 1.01635733559822e-01 + 6.51248424695232e-01 9.66176447288442e-02 + 6.73043604043412e-01 9.14206856664382e-02 + 6.95115181639634e-01 8.60592685876705e-02 + 7.17448175289690e-01 8.05453300560952e-02 + 7.40026439133307e-01 7.48893528212630e-02 + 7.62837129405159e-01 6.91197664861873e-02 + 7.85864828950361e-01 6.32564862016049e-02 + 8.09094144371914e-01 5.73229858506420e-02 + 8.32503275596243e-01 5.13219464173951e-02 + 8.56080541612676e-01 4.52963641529483e-02 + 8.79811066457796e-01 3.92799139824121e-02 + 9.03673723953184e-01 3.32854123893765e-02 + 9.27655759732104e-01 2.73615000436672e-02 + 9.51735016886675e-01 2.14712676661412e-02 + 9.75865761107877e-01 1.56072475949721e-02 + 1.00000000000000e+00 9.79273602324471e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF14_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF14_Coords.txt new file mode 100644 index 000000000..097713270 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF14_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.300911 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 9.12346442822511e-03 + 9.91892115306478e-01 6.81205853683752e-03 + 9.66489359702096e-01 1.47282795405802e-03 + 9.40925559911540e-01 -4.71014742344108e-04 + 9.15323252134847e-01 4.70534787514400e-04 + 8.89813622820095e-01 3.28135105299921e-06 + 8.64506333192755e-01 -1.95563699526039e-03 + 8.39484684158474e-01 -5.16191465010933e-03 + 8.14812103732585e-01 -9.44816964670637e-03 + 7.90536991236776e-01 -1.47057925473263e-02 + 7.66715714886538e-01 -2.08716234707969e-02 + 7.43361070676252e-01 -2.77861007505572e-02 + 7.20459472058496e-01 -3.52392474654452e-02 + 6.98009877478413e-01 -4.31117332117441e-02 + 6.75995942689916e-01 -5.12709480689314e-02 + 6.54389321131990e-01 -5.95758075165391e-02 + 6.33159646050770e-01 -6.78937375065919e-02 + 6.12283221037997e-01 -7.61201665140944e-02 + 5.91733653095506e-01 -8.41485736500539e-02 + 5.71490702958855e-01 -9.18894175244443e-02 + 5.51545231246842e-01 -9.92810714435699e-02 + 5.31886807819054e-01 -1.06255361535393e-01 + 5.12516618167990e-01 -1.12773819644850e-01 + 4.93440571433753e-01 -1.18809528342404e-01 + 4.74664766353790e-01 -1.24334426554091e-01 + 4.56198799202595e-01 -1.29330109161935e-01 + 4.38057375436537e-01 -1.33797178459052e-01 + 4.20256478720703e-01 -1.37745214631020e-01 + 4.02809913981499e-01 -1.41179006246984e-01 + 3.85729997068686e-01 -1.44098942380834e-01 + 3.69033164822570e-01 -1.46538099389647e-01 + 3.52729461779897e-01 -1.48495883169726e-01 + 3.36831359538255e-01 -1.50002464262191e-01 + 3.21347996905409e-01 -1.51068543342801e-01 + 3.06288660705472e-01 -1.51737928860496e-01 + 2.91659475236440e-01 -1.51991419723505e-01 + 2.77465728428388e-01 -1.51884623898430e-01 + 2.63711901765649e-01 -1.51441335394727e-01 + 2.50399612763680e-01 -1.50665677892030e-01 + 2.37530551538265e-01 -1.49587748021289e-01 + 2.25105260774020e-01 -1.48220095862114e-01 + 2.13122127525479e-01 -1.46588276817277e-01 + 2.01579103535877e-01 -1.44712195177779e-01 + 1.90473460478933e-01 -1.42608546447243e-01 + 1.79800668000045e-01 -1.40298503681111e-01 + 1.69556202396190e-01 -1.37799362926391e-01 + 1.59735506759867e-01 -1.35124166652788e-01 + 1.50330599089946e-01 -1.32296020514942e-01 + 1.41331272167783e-01 -1.29341320234752e-01 + 1.32731557600197e-01 -1.26268979130550e-01 + 1.24522996853771e-01 -1.23094598285744e-01 + 1.16692609908945e-01 -1.19842879395261e-01 + 1.09232215479019e-01 -1.16523734180344e-01 + 1.02132538229598e-01 -1.13148614970243e-01 + 9.53801961561687e-02 -1.09735613449776e-01 + 8.89630937216318e-02 -1.06298863040435e-01 + 8.28712653490106e-02 -1.02846976110366e-01 + 7.70940129817730e-02 -9.93889307809873e-02 + 7.16158447345262e-02 -9.59411317440816e-02 + 6.64295726095133e-02 -9.25059808529296e-02 + 6.15252425964663e-02 -8.90897990154820e-02 + 5.68883731211483e-02 -8.57041088144156e-02 + 5.25089800888910e-02 -8.23540742819256e-02 + 4.83794982676107e-02 -7.90409943298640e-02 + 4.44906113690670e-02 -7.57686151817693e-02 + 4.08307789303964e-02 -7.25438582839476e-02 + 3.73893818364942e-02 -6.93716124048257e-02 + 3.41578351548110e-02 -6.62540554382943e-02 + 3.11267949168923e-02 -6.31938886158886e-02 + 2.82866692959651e-02 -6.01940696363999e-02 + 2.56362098287769e-02 -5.72503326022197e-02 + 2.31620642397395e-02 -5.43694609573574e-02 + 2.08611367775893e-02 -5.15490875422462e-02 + 1.87258036563554e-02 -4.87898528408322e-02 + 1.67417681864270e-02 -4.60983081611693e-02 + 1.49105982094868e-02 -4.34696976923831e-02 + 1.32248293836465e-02 -4.09052447120769e-02 + 1.16735849937682e-02 -3.84076467297752e-02 + 1.02437744436542e-02 -3.59810658101649e-02 + 8.94851671878122e-03 -3.36157994559790e-02 + 7.77353767003782e-03 -3.13161431499628e-02 + 6.70617843476607e-03 -2.90852136071099e-02 + 5.73663579634165e-03 -2.69248652149206e-02 + 4.87699031972460e-03 -2.48285937356289e-02 + 4.11701264940497e-03 -2.27960764791397e-02 + 3.43514798285879e-03 -2.08348023453631e-02 + 2.80679097359851e-03 -1.89488114883588e-02 + 2.23674880387239e-03 -1.71345378137889e-02 + 1.78326710077297e-03 -1.53724405185143e-02 + 1.41104988020183e-03 -1.36711878937051e-02 + 1.10001300340642e-03 -1.20333561045108e-02 + 8.72005254509542e-04 -1.04571961603090e-02 + 7.01566186705093e-04 -8.94132070834368e-03 + 5.65121089815701e-04 -7.48902642461081e-03 + 4.55229991159113e-04 -6.09833572031244e-03 + 3.59602652937286e-04 -4.76710573017405e-03 + 2.66337376360517e-04 -3.49414186713135e-03 + 1.77044600409837e-04 -2.27681276555637e-03 + 9.02845992817590e-05 -1.11276146294591e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 8.48774329569078e-05 1.11233177881055e-03 + 1.69646960040889e-04 2.27494438882157e-03 + 2.55727047105762e-04 3.48976182058631e-03 + 3.45731849258313e-04 4.75892052284940e-03 + 4.36431659841164e-04 6.08513093630474e-03 + 5.38446231778943e-04 7.46963800576870e-03 + 6.65791092836655e-04 8.91382136402448e-03 + 8.26336468116201e-04 1.04205681080783e-02 + 1.03057061861613e-03 1.19881701463180e-02 + 1.30550678909071e-03 1.36178313627402e-02 + 1.63912189067343e-03 1.53098352424776e-02 + 2.04372987782988e-03 1.70660278864756e-02 + 2.53230044875983e-03 1.88806903855313e-02 + 3.10364720042899e-03 2.07601135833556e-02 + 3.70561957659273e-03 2.27198168592410e-02 + 4.38139821903186e-03 2.47491881405807e-02 + 5.15136861592697e-03 2.68459558266327e-02 + 6.02144045799464e-03 2.90077987396272e-02 + 6.98386228155158e-03 3.12416131165879e-02 + 8.03619150209475e-03 3.35514359773337e-02 + 9.20258718880077e-03 3.59285391366355e-02 + 1.04880827814805e-02 3.83732970225396e-02 + 1.18970362763149e-02 4.08871618050415e-02 + 1.34259982108132e-02 4.34750495777369e-02 + 1.50939827342456e-02 4.61282517803761e-02 + 1.69076215703758e-02 4.88470338474772e-02 + 1.88703208412150e-02 5.16327825673378e-02 + 2.09932472864928e-02 5.44810805821531e-02 + 2.32844079146507e-02 5.73892322089148e-02 + 2.57524580534318e-02 6.03549332521773e-02 + 2.84058373200266e-02 6.33755788227367e-02 + 3.12539378016895e-02 6.64473886873759e-02 + 3.42999284054407e-02 6.95712877520514e-02 + 3.75551982650416e-02 7.27412428997904e-02 + 4.10279139726704e-02 7.59545083002287e-02 + 4.47262505919893e-02 7.92078260078531e-02 + 4.86610560555413e-02 8.24948788479330e-02 + 5.28404439198256e-02 8.58115916617703e-02 + 5.72768644927755e-02 8.91477832836491e-02 + 6.19803446804037e-02 9.24963609617635e-02 + 6.69588788827559e-02 9.58528394337464e-02 + 7.22208810909590e-02 9.92115604401410e-02 + 7.77766440020773e-02 1.02563796889202e-01 + 8.36360903119139e-02 1.05900455742620e-01 + 8.98133643949530e-02 1.09203660415150e-01 + 9.63133531506494e-02 1.12470941661951e-01 + 1.03147707953283e-01 1.15686747217358e-01 + 1.10328652237247e-01 1.18831736498270e-01 + 1.17862021972190e-01 1.21900522200726e-01 + 1.25756270289169e-01 1.24878648909765e-01 + 1.34020788764429e-01 1.27749391523664e-01 + 1.42661411049861e-01 1.30502068629793e-01 + 1.51686770872000e-01 1.33116931723918e-01 + 1.61101433467810e-01 1.35584079882724e-01 + 1.70912396366594e-01 1.37883010202475e-01 + 1.81124140509091e-01 1.39999145211234e-01 + 1.91741473460164e-01 1.41911943060891e-01 + 2.02765702923950e-01 1.43617695866842e-01 + 2.14200161664496e-01 1.45096978953155e-01 + 2.26046019983546e-01 1.46342340299059e-01 + 2.38303726655799e-01 1.47352454734269e-01 + 2.50974090172508e-01 1.48120978787231e-01 + 2.64057772126681e-01 1.48641744813769e-01 + 2.77554973004825e-01 1.48874125311894e-01 + 2.91465271791783e-01 1.48861038035621e-01 + 3.05787668773288e-01 1.48596110563348e-01 + 3.20521187070061e-01 1.48033289711212e-01 + 3.35665051305297e-01 1.47211360982780e-01 + 3.51217593215607e-01 1.46123870479626e-01 + 3.67176139175735e-01 1.44760138855079e-01 + 3.83538749469534e-01 1.43126780001510e-01 + 4.00301955345178e-01 1.41222712708621e-01 + 4.17461356942140e-01 1.39040170173669e-01 + 4.35014547792069e-01 1.36597405234885e-01 + 4.52956490602406e-01 1.33893310680887e-01 + 4.71280890545047e-01 1.30926686399366e-01 + 4.89981597476255e-01 1.27700391097043e-01 + 5.09053149540211e-01 1.24228525242004e-01 + 5.28489349069804e-01 1.20522423686815e-01 + 5.48286091514526e-01 1.16609320794879e-01 + 5.68431216393137e-01 1.12479566109187e-01 + 5.88914363066442e-01 1.08137771230006e-01 + 6.09726813841942e-01 1.03601412148276e-01 + 6.30855072835240e-01 9.88703943172278e-02 + 6.52288803608848e-01 9.39633402268071e-02 + 6.74011932463407e-01 8.88782398902885e-02 + 6.96011579685653e-01 8.36312126903529e-02 + 7.18272734629510e-01 7.82338591743809e-02 + 7.40779283977186e-01 7.26965678506254e-02 + 7.63518908881248e-01 6.70490211598320e-02 + 7.86476113059155e-01 6.13112205419889e-02 + 8.09635513037342e-01 5.55069505843513e-02 + 8.32975634010455e-01 4.96387922745465e-02 + 8.56484197315633e-01 4.37489758249200e-02 + 8.80145971322630e-01 3.78709305585929e-02 + 9.03940343129098e-01 3.20192512937754e-02 + 9.27853167297351e-01 2.62376386817059e-02 + 9.51863475038634e-01 2.04967762126698e-02 + 9.75927858680280e-01 1.47861864430773e-02 + 1.00000000000000e+00 9.12989418500093e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF15_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF15_Coords.txt new file mode 100644 index 000000000..4880ff277 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF15_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.292505 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 8.50896464741805e-03 + 9.91550253552748e-01 6.39041080389244e-03 + 9.66179636093077e-01 1.81806617164368e-03 + 9.40653755842390e-01 2.02348865478317e-04 + 9.15091150817845e-01 1.28183142984770e-03 + 8.89620104877892e-01 9.66285240702245e-04 + 8.64348844296127e-01 -7.89328655025752e-04 + 8.39359642790771e-01 -3.75280143430151e-03 + 8.14715625867621e-01 -7.77392018703684e-03 + 7.90465660460061e-01 -1.27610732725120e-02 + 7.66666397964075e-01 -1.86626851573429e-02 + 7.43331751275842e-01 -2.53257126288339e-02 + 7.20449169962195e-01 -3.25425387334974e-02 + 6.98057672080944e-01 -4.01913924243091e-02 + 6.76149595848206e-01 -4.81450520262084e-02 + 6.54643536117193e-01 -5.62638072595382e-02 + 6.33512620570101e-01 -6.44155438033845e-02 + 6.12733436701177e-01 -7.24932107017702e-02 + 5.92281301260964e-01 -8.03896943913105e-02 + 5.72137049406114e-01 -8.80139879141765e-02 + 5.52290569206161e-01 -9.53024594049600e-02 + 5.32732033191339e-01 -1.02185785372664e-01 + 5.13461365906844e-01 -1.08622447768664e-01 + 4.94484038452877e-01 -1.14584831902396e-01 + 4.75805895983015e-01 -1.20044244635781e-01 + 4.57435839036564e-01 -1.24981445451527e-01 + 4.39388210843805e-01 -1.29398496420536e-01 + 4.21679114694184e-01 -1.33306064783116e-01 + 4.04322411267548e-01 -1.36708019924285e-01 + 3.87330365814885e-01 -1.39604448810337e-01 + 3.70719129477388e-01 -1.42028288013636e-01 + 3.54498467574354e-01 -1.43977657677764e-01 + 3.38680702431393e-01 -1.45483410888708e-01 + 3.23274850049706e-01 -1.46556046273469e-01 + 3.08289920715525e-01 -1.47240854036164e-01 + 2.93731791161695e-01 -1.47515661216851e-01 + 2.79605579247698e-01 -1.47437492863723e-01 + 2.65915510884021e-01 -1.47032060272855e-01 + 2.52662929856151e-01 -1.46301215371351e-01 + 2.39849371054233e-01 -1.45274908922784e-01 + 2.27475109400441e-01 -1.43964967751722e-01 + 2.15538343971755e-01 -1.42396932260646e-01 + 2.04036963711895e-01 -1.40589780338206e-01 + 1.92968255634999e-01 -1.38558734230522e-01 + 1.82327357147090e-01 -1.36325869992171e-01 + 1.72109789854077e-01 -1.33908356809730e-01 + 1.62310451832892e-01 -1.31320060246975e-01 + 1.52921626141867e-01 -1.28582793869953e-01 + 1.43933180664841e-01 -1.25722785010102e-01 + 1.35338962881225e-01 -1.22748534125822e-01 + 1.27130445062706e-01 -1.19675373079822e-01 + 1.19294512952063e-01 -1.16528775884114e-01 + 1.11823035420871e-01 -1.13318013427924e-01 + 1.04706549465781e-01 -1.10054602233856e-01 + 9.79316902166607e-02 -1.06756515332188e-01 + 9.14864183156073e-02 -1.03437519933450e-01 + 8.53609009444392e-02 -1.00105558121029e-01 + 7.95442585092253e-02 -9.67696658088582e-02 + 7.40214773208711e-02 -9.34454601443270e-02 + 6.87856022794404e-02 -9.01343694867776e-02 + 6.38270075618874e-02 -8.68418881419333e-02 + 5.91315267590498e-02 -8.35793023163725e-02 + 5.46894306700109e-02 -8.03513321089259e-02 + 5.04932909960652e-02 -7.71588050085789e-02 + 4.65338300385953e-02 -7.40052473719810e-02 + 4.27994623525124e-02 -7.08977004708485e-02 + 3.92798456845334e-02 -6.78407981511254e-02 + 3.59668071443487e-02 -6.48361415070648e-02 + 3.28513214107142e-02 -6.18861040993046e-02 + 2.99246816256349e-02 -5.89927402079549e-02 + 2.71868886303783e-02 -5.61504770500001e-02 + 2.46248779489321e-02 -5.33663066069731e-02 + 2.22358339750828e-02 -5.06376650888417e-02 + 2.00130224130764e-02 -4.79646106235938e-02 + 1.79423921269795e-02 -4.53542070115999e-02 + 1.60247783054102e-02 -4.28018237219801e-02 + 1.42519560378818e-02 -4.03095210642782e-02 + 1.26140834960360e-02 -3.78795880675332e-02 + 1.10980432478088e-02 -3.55164508131300e-02 + 9.71829948885671e-03 -3.32092904362403e-02 + 8.45996683361968e-03 -3.09625517248026e-02 + 7.31107964596425e-03 -2.87799482890368e-02 + 6.26280859496779e-03 -2.66632676403073e-02 + 5.32893373186152e-03 -2.46054966488371e-02 + 4.50084622433778e-03 -2.26064291835175e-02 + 3.75732307466712e-03 -2.06743885641243e-02 + 3.06695628765387e-03 -1.88175702386652e-02 + 2.43976328324874e-03 -1.70286498586375e-02 + 1.94007458052673e-03 -1.52865356609419e-02 + 1.53047920384021e-03 -1.36008673786140e-02 + 1.18861109385208e-03 -1.19755274869119e-02 + 9.39156431843850e-04 -1.04092640702097e-02 + 7.52675146254327e-04 -8.90142768021255e-03 + 6.04615808629906e-04 -7.45597188427779e-03 + 4.85867602790407e-04 -6.07141514484997e-03 + 3.83261487072034e-04 -4.74600422733206e-03 + 2.83432160079666e-04 -3.47854766853278e-03 + 1.87874467997876e-04 -2.26648332845285e-03 + 9.54515270844496e-05 -1.10750682623995e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 8.90026852431613e-05 1.10881850828813e-03 + 1.76763959623567e-04 2.26644248443354e-03 + 2.65215754421233e-04 3.47635073308703e-03 + 3.57168673865721e-04 4.74044321002040e-03 + 4.49207766451613e-04 6.06140444830324e-03 + 5.53102436990360e-04 7.44038548264052e-03 + 6.84325602784950e-04 8.87871284573475e-03 + 8.51383764756208e-04 1.03791021831019e-02 + 1.06694049101112e-03 1.19390591917195e-02 + 1.36014921732376e-03 1.35597835886712e-02 + 1.71481228757834e-03 1.52415596858693e-02 + 2.14578253607423e-03 1.69855822624539e-02 + 2.66670655971520e-03 1.87852952598799e-02 + 3.27531522606869e-03 2.06474025181462e-02 + 3.91972236105087e-03 2.25870524609441e-02 + 4.64268372104516e-03 2.45937648467455e-02 + 5.46587740509501e-03 2.66635623211234e-02 + 6.39350854157630e-03 2.87942832082891e-02 + 7.41698976604518e-03 3.09932592363153e-02 + 8.53075728061245e-03 3.32659016722185e-02 + 9.76000559280302e-03 3.56016961449140e-02 + 1.11103777627257e-02 3.80011299940321e-02 + 1.25853553041228e-02 4.04656641998874e-02 + 1.41807962401883e-02 4.30010846230060e-02 + 1.59157161802808e-02 4.55977681002511e-02 + 1.77964804740978e-02 4.82561752255595e-02 + 1.98290884123152e-02 5.09759643525584e-02 + 2.20242671500186e-02 5.37526103558888e-02 + 2.43886932858294e-02 5.65838433252964e-02 + 2.69304462654634e-02 5.94678017993984e-02 + 2.96575837379344e-02 6.24018737250752e-02 + 3.25791334399062e-02 6.53822783333106e-02 + 3.56975975516474e-02 6.84105038054199e-02 + 3.90240075444053e-02 7.14805431064191e-02 + 4.25665480116922e-02 7.45894804521913e-02 + 4.63330121074724e-02 7.77343796618266e-02 + 5.03335599257963e-02 8.09095324338178e-02 + 5.45756786364553e-02 8.41116569164323e-02 + 5.90715654524994e-02 8.73306264407809e-02 + 6.38310520261276e-02 9.05595949641932e-02 + 6.88617231225144e-02 9.37947872630199e-02 + 7.41717288942228e-02 9.70311415832705e-02 + 7.97710699652714e-02 1.00260512542994e-01 + 8.56694286704658e-02 1.03474207564137e-01 + 9.18802044037425e-02 1.06655629819133e-01 + 9.84086187718677e-02 1.09802433855177e-01 + 1.05265912070400e-01 1.12900232318814e-01 + 1.12463994752271e-01 1.15930648991269e-01 + 1.20008623635263e-01 1.18889584647192e-01 + 1.27908471758721e-01 1.21762598587325e-01 + 1.36173273861632e-01 1.24532421754403e-01 + 1.44809031192907e-01 1.27189149033828e-01 + 1.53823725237214e-01 1.29716553955763e-01 + 1.63223056607368e-01 1.32101608923087e-01 + 1.73013762027381e-01 1.34326674408970e-01 + 1.83200630452916e-01 1.36377905727065e-01 + 1.93788834223760e-01 1.38235091177102e-01 + 2.04780308502997e-01 1.39893429342638e-01 + 2.16178628601512e-01 1.41334863134538e-01 + 2.27985264756297e-01 1.42553460296826e-01 + 2.40201300908132e-01 1.43546577108536e-01 + 2.52828022379211e-01 1.44306938747403e-01 + 2.65866467347209e-01 1.44826324175415e-01 + 2.79317211183440e-01 1.45064043697882e-01 + 2.93179930779261e-01 1.45063070978811e-01 + 3.07453878141947e-01 1.44819240333368e-01 + 3.22138239436868e-01 1.44278848581568e-01 + 3.37232391388765e-01 1.43488613602289e-01 + 3.52734627824135e-01 1.42434979894739e-01 + 3.68642602278242e-01 1.41112134135758e-01 + 3.84954292749502e-01 1.39524190381576e-01 + 4.01666590180247e-01 1.37672303142100e-01 + 4.18774930376559e-01 1.35545643855492e-01 + 4.36277091386817e-01 1.33164802128012e-01 + 4.54167833974376e-01 1.30525623607100e-01 + 4.72441409926097e-01 1.27630557446775e-01 + 4.91091069377548e-01 1.24477977598532e-01 + 5.10111612465437e-01 1.21083081849962e-01 + 5.29496955260333e-01 1.17458526962839e-01 + 5.49242357814709e-01 1.13628551371165e-01 + 5.69335737519714e-01 1.09583180512285e-01 + 5.89767072388652e-01 1.05328648108207e-01 + 6.10527471946622e-01 1.00881662141165e-01 + 6.31603475168256e-01 9.62417999205439e-02 + 6.52985096246001e-01 9.14290890152451e-02 + 6.74656587471945e-01 8.64414726398245e-02 + 6.96605777894489e-01 8.12976038276099e-02 + 7.18817317854327e-01 7.60073521589087e-02 + 7.41275394191686e-01 7.05817050259761e-02 + 7.63968064563808e-01 6.50516701061513e-02 + 7.86879402608655e-01 5.94361522702342e-02 + 8.09993805031990e-01 5.37585851055528e-02 + 8.33290574977576e-01 4.80231999525195e-02 + 8.56756094290491e-01 4.22694234471190e-02 + 8.80374421931158e-01 3.65291612378079e-02 + 9.04125388870888e-01 3.08187900633543e-02 + 9.27993038760116e-01 2.51768366250094e-02 + 9.51956361403159e-01 1.96677404824826e-02 + 9.75973176741349e-01 1.42489171845027e-02 + 1.00000000000000e+00 8.96279745923306e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF16_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF16_Coords.txt new file mode 100644 index 000000000..6cc8f66f6 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF16_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.284901 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 7.94173350589357e-03 + 9.90743855878082e-01 5.94348225628900e-03 + 9.65448981248435e-01 2.15475102495068e-03 + 9.40012287898997e-01 8.67241758177335e-04 + 9.14543068393817e-01 2.05201355837165e-03 + 8.89162889174754e-01 1.85966264303794e-03 + 8.63976604685497e-01 2.82638620513115e-04 + 8.39064085926057e-01 -2.46613729957473e-03 + 8.14487712403240e-01 -6.25268792521064e-03 + 7.90297372654573e-01 -1.10027283721336e-02 + 7.66550290922872e-01 -1.66753989793501e-02 + 7.43262880289433e-01 -2.31245685419376e-02 + 7.20424998042221e-01 -3.01413431915239e-02 + 6.98091072228881e-01 -3.75977933831785e-02 + 6.76258334508083e-01 -4.53711872611046e-02 + 6.54826248185139e-01 -5.33230936968644e-02 + 6.33770109296320e-01 -6.13222538889019e-02 + 6.13066035668339e-01 -6.92584429966013e-02 + 5.92690245402388e-01 -7.70249151250163e-02 + 5.72624327469678e-01 -8.45310851875827e-02 + 5.52857341420937e-01 -9.17115494636562e-02 + 5.33379885452241e-01 -9.84973124872208e-02 + 5.14190748104881e-01 -1.04844083611103e-01 + 4.95295153240466e-01 -1.10724031073443e-01 + 4.76699095767276e-01 -1.16108911394848e-01 + 4.58410903356526e-01 -1.20978490672112e-01 + 4.40444380637519e-01 -1.25334331593227e-01 + 4.22815747100326e-01 -1.29188388562141e-01 + 4.05538858367609e-01 -1.32544505112683e-01 + 3.88625879815350e-01 -1.35403631735208e-01 + 3.72092573792415e-01 -1.37797771029300e-01 + 3.55948352499245e-01 -1.39724366770574e-01 + 3.40205367850891e-01 -1.41214958381241e-01 + 3.24872446888169e-01 -1.42280724203973e-01 + 3.09958257334267e-01 -1.42966650021402e-01 + 2.95468349356457e-01 -1.43253132220087e-01 + 2.81407629345257e-01 -1.43190666069064e-01 + 2.67780006649578e-01 -1.42810940082093e-01 + 2.54586476160094e-01 -1.42114141324068e-01 + 2.41828373079829e-01 -1.41129306830789e-01 + 2.29505600383028e-01 -1.39868238635471e-01 + 2.17616033695908e-01 -1.38357058644179e-01 + 2.06157482520806e-01 -1.36613063070770e-01 + 1.95127172207853e-01 -1.34649990973972e-01 + 1.84519726903076e-01 -1.32491776320565e-01 + 1.74330894909361e-01 -1.30153578424062e-01 + 1.64554723819878e-01 -1.27651767751042e-01 + 1.55183891727093e-01 -1.25005729528019e-01 + 1.46208533100219e-01 -1.22240278293557e-01 + 1.37622058110764e-01 -1.19364638680292e-01 + 1.29415845074424e-01 -1.16393835988692e-01 + 1.21576955574433e-01 -1.13352864254193e-01 + 1.14097383262862e-01 -1.10250256801737e-01 + 1.06967551301300e-01 -1.07097466331688e-01 + 1.00174314679868e-01 -1.03911914897574e-01 + 9.37057961949852e-02 -1.00706916181294e-01 + 8.75524092750279e-02 -9.74896474100236e-02 + 8.17029971864737e-02 -9.42697610492528e-02 + 7.61431723808054e-02 -9.10618302674059e-02 + 7.08660588422042e-02 -8.78667643893232e-02 + 6.58623249320212e-02 -8.46893379904499e-02 + 6.11179686880128e-02 -8.15409949497782e-02 + 5.66236461179856e-02 -7.84258650204314e-02 + 5.23721053125515e-02 -7.53443732696739e-02 + 4.83540978332184e-02 -7.22999400857130e-02 + 4.45579892132965e-02 -6.92998004501571e-02 + 4.09736886464024e-02 -6.63484484262329e-02 + 3.75934151933739e-02 -6.34469906734812e-02 + 3.44084165765692e-02 -6.05975551780333e-02 + 3.14104950132167e-02 -5.78017071718568e-02 + 2.85999623319929e-02 -5.50534318821723e-02 + 2.59642889640646e-02 -5.23595241166533e-02 + 2.35005828054772e-02 -4.97174555998142e-02 + 2.12028187490086e-02 -4.71267040714200e-02 + 1.90572910801764e-02 -4.45946689045585e-02 + 1.70644987703944e-02 -4.21165822634697e-02 + 1.52157271391828e-02 -3.96950763079779e-02 + 1.35016400842241e-02 -3.73324507616654e-02 + 1.19099310073810e-02 -3.50327613101355e-02 + 1.04556972546519e-02 -3.27841555039833e-02 + 9.12447193061514e-03 -3.05909245174126e-02 + 7.90492667775185e-03 -2.84571040693701e-02 + 6.78853064673867e-03 -2.63848208104393e-02 + 5.78951076884953e-03 -2.43667242481866e-02 + 4.90021387052063e-03 -2.24028934178558e-02 + 4.10006407631228e-03 -2.05019131144357e-02 + 3.34933520164552e-03 -1.86779865074039e-02 + 2.66792120799977e-03 -1.69169537989362e-02 + 2.12100400023173e-03 -1.51973555543874e-02 + 1.67270597835253e-03 -1.35289378768075e-02 + 1.29913995292090e-03 -1.19170576098487e-02 + 1.02507082234250e-03 -1.03612497847719e-02 + 8.19065580650124e-04 -8.86193881614380e-03 + 6.57784965854435e-04 -7.42345260359699e-03 + 5.27851835257291e-04 -6.04500030674616e-03 + 4.15173553000492e-04 -4.72547437665341e-03 + 3.06383068358962e-04 -3.46351428705051e-03 + 2.02537496287356e-04 -2.25664998496068e-03 + 1.02384163930592e-04 -1.10264423265011e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 9.49587007206505e-05 1.10470745916784e-03 + 1.87749441811045e-04 2.25766758349776e-03 + 2.80569253299410e-04 3.46289531758225e-03 + 3.76702293491434e-04 4.72214328978248e-03 + 4.72872099140753e-04 6.03808390427323e-03 + 5.81255196312983e-04 7.41181497848571e-03 + 7.18141448952614e-04 8.84463427585359e-03 + 8.92300388217481e-04 1.03390701597755e-02 + 1.11948692602891e-03 1.18918671746595e-02 + 1.42917968393615e-03 1.35042243219154e-02 + 1.80174793851161e-03 1.51766540315226e-02 + 2.25403373382927e-03 1.69095577764332e-02 + 2.80113710293552e-03 1.86957824554318e-02 + 3.43774583544007e-03 2.05425788827205e-02 + 4.11627705267012e-03 2.24637214937470e-02 + 4.87594602414131e-03 2.44500801513523e-02 + 5.74098091575926e-03 2.64953465734184e-02 + 6.71371779385076e-03 2.85980097173372e-02 + 7.78522795057220e-03 3.07656718741834e-02 + 8.94746158364629e-03 3.30051320043935e-02 + 1.02270112074165e-02 3.53040793852666e-02 + 1.16293955835974e-02 3.76631748476640e-02 + 1.31576741029891e-02 4.00838611957890e-02 + 1.48073148593517e-02 4.25724928379435e-02 + 1.65973513802368e-02 4.51186805647275e-02 + 1.85338206867734e-02 4.77229592017408e-02 + 2.06242691839132e-02 5.03837284544556e-02 + 2.28790401760197e-02 5.30964585985689e-02 + 2.53038825614465e-02 5.58592264623218e-02 + 2.79056879944115e-02 5.86712736137254e-02 + 3.06923287233165e-02 6.15299269282851e-02 + 3.36728106591536e-02 6.44311802680207e-02 + 3.68494938982767e-02 6.73766929147834e-02 + 4.02330459443589e-02 7.03604789353234e-02 + 4.38317568321204e-02 7.33792967159008e-02 + 4.76531525697855e-02 7.64304404921403e-02 + 5.17067090949924e-02 7.95089140391573e-02 + 5.59993337904933e-02 8.26122603177880e-02 + 6.05430060398567e-02 8.57304086071640e-02 + 6.53473455627742e-02 8.88568043752485e-02 + 7.04197982530586e-02 9.19879361672062e-02 + 7.57683827203174e-02 9.51190699865826e-02 + 8.14027404283568e-02 9.82427744531001e-02 + 8.73324849445642e-02 1.01350320401396e-01 + 9.35703585330536e-02 1.04426253092229e-01 + 1.00121987584126e-01 1.07467984495218e-01 + 1.06997978421348e-01 1.10462828187581e-01 + 1.14209820931416e-01 1.13393735288803e-01 + 1.21763327743113e-01 1.16257385112258e-01 + 1.29667518302623e-01 1.19038715400305e-01 + 1.37932472188274e-01 1.21719516743299e-01 + 1.46564204449291e-01 1.24291058261860e-01 + 1.55569487457080e-01 1.26742902026025e-01 + 1.64955934449702e-01 1.29055129358450e-01 + 1.74729593826527e-01 1.31214769103646e-01 + 1.84895482418214e-01 1.33208816549036e-01 + 1.95459109160625e-01 1.35017280613685e-01 + 2.06423076693252e-01 1.36633237838459e-01 + 2.17791168126595e-01 1.38039962676508e-01 + 2.29564822149745e-01 1.39234995062385e-01 + 2.41745772240136e-01 1.40213949631861e-01 + 2.54335779115890e-01 1.40968347399395e-01 + 2.67336240920716e-01 1.41487010269366e-01 + 2.80748087018989e-01 1.41728535639621e-01 + 2.94570989743798e-01 1.41740086825161e-01 + 3.08804427693872e-01 1.41517030586782e-01 + 3.23447783582866e-01 1.40996622025823e-01 + 3.38500574201279e-01 1.40237955940364e-01 + 3.53960957294762e-01 1.39214860550002e-01 + 3.69826995438271e-01 1.37929944362633e-01 + 3.86096563094291e-01 1.36384117399084e-01 + 4.02766919934019e-01 1.34581018148656e-01 + 4.19833107109165e-01 1.32504174221311e-01 + 4.37293444881784e-01 1.30180348434000e-01 + 4.55142120852154e-01 1.27598739215267e-01 + 4.73374343681552e-01 1.24769172218968e-01 + 4.91982395987159e-01 1.21682328560134e-01 + 5.10961222394740e-01 1.18354039180871e-01 + 5.30305307128825e-01 1.14801290778034e-01 + 5.50008988168663e-01 1.11042916369071e-01 + 5.70060315596669e-01 1.07069291852208e-01 + 5.90449702766222e-01 1.02888915761121e-01 + 6.11168116951219e-01 9.85177228893270e-02 + 6.32202162833038e-01 9.39552132933947e-02 + 6.53541980967507e-01 8.92220511768609e-02 + 6.75172259863213e-01 8.43174394950472e-02 + 6.97081627227900e-01 7.92630946510655e-02 + 7.19254045930990e-01 7.40659548053748e-02 + 7.41674232623496e-01 6.87386295719377e-02 + 7.64330397184757e-01 6.33129955841028e-02 + 7.87206123946138e-01 5.78062658161921e-02 + 8.10285525640156e-01 5.22411549013359e-02 + 8.33548708965710e-01 4.66245509623988e-02 + 8.56980776578526e-01 4.09917924490585e-02 + 8.80565040769874e-01 3.53726154504622e-02 + 9.04281765794208e-01 2.97851408111988e-02 + 9.28113074920227e-01 2.42618170105272e-02 + 9.52037539860434e-01 1.89033103097013e-02 + 9.76013429933276e-01 1.36554070915883e-02 + 1.00000000000000e+00 8.56661972259960e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF17_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF17_Coords.txt new file mode 100644 index 000000000..0df790b18 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF17_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.277853 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 7.40293088030186e-03 + 9.89671379974747e-01 5.52312701646428e-03 + 9.64477131182153e-01 2.48535959199292e-03 + 9.39158624174899e-01 1.50473515887706e-03 + 9.13813162279310e-01 2.76632310473288e-03 + 8.88553591831403e-01 2.67289317456605e-03 + 8.63480304357990e-01 1.25212903431862e-03 + 8.38670008821752e-01 -1.30558063733301e-03 + 8.14184038980280e-01 -4.88132537219822e-03 + 7.90073507481042e-01 -9.41733442728799e-03 + 7.66396243180071e-01 -1.48824286806251e-02 + 7.43171762127060e-01 -2.11375614462018e-02 + 7.20393063763985e-01 -2.79720058036821e-02 + 6.98115514389012e-01 -3.52505652104797e-02 + 6.76338951051125e-01 -4.28545172802418e-02 + 6.54963698148296e-01 -5.06468535065558e-02 + 6.33966484340103e-01 -5.84975164629663e-02 + 6.13322712460925e-01 -6.62930528103014e-02 + 5.93009124541476e-01 -7.39276794968806e-02 + 5.73007900047194e-01 -8.13122377370243e-02 + 5.53307401144792e-01 -8.83796608479274e-02 + 5.33898576587071e-01 -9.50621639631644e-02 + 5.14779223154629e-01 -1.01312996030444e-01 + 4.95954396665602e-01 -1.07104315450230e-01 + 4.77430350386696e-01 -1.12408644224066e-01 + 4.59214886856257e-01 -1.17204581007605e-01 + 4.41321190252217e-01 -1.21492098858552e-01 + 4.23765543793179e-01 -1.25284369716559e-01 + 4.06561760993008e-01 -1.28585742506391e-01 + 3.89721882904375e-01 -1.31398677720742e-01 + 3.73261236217240e-01 -1.33753884336962e-01 + 3.57188855965126e-01 -1.35648590203785e-01 + 3.41516689450044e-01 -1.37114853045608e-01 + 3.26253343070801e-01 -1.38165142239116e-01 + 3.11407100100747e-01 -1.38843026632002e-01 + 2.96983147380361e-01 -1.39134253049587e-01 + 2.82986150094719e-01 -1.39079401993577e-01 + 2.69419666676137e-01 -1.38717378594186e-01 + 2.56284310763483e-01 -1.38047377841284e-01 + 2.43581181695766e-01 -1.37097182609024e-01 + 2.31309755891564e-01 -1.35878986181238e-01 + 2.19467527384275e-01 -1.34419669774399e-01 + 2.08052199943945e-01 -1.32734565881183e-01 + 1.97060878905940e-01 -1.30836024341106e-01 + 1.86487605109370e-01 -1.28750195729576e-01 + 1.76328427331090e-01 -1.26489260780352e-01 + 1.66576425927345e-01 -1.24072846261382e-01 + 1.57224710042703e-01 -1.21517422330090e-01 + 1.48263768632238e-01 -1.18845748716941e-01 + 1.39686465720747e-01 -1.16068315902589e-01 + 1.31484076933721e-01 -1.13199808713479e-01 + 1.23644002494218e-01 -1.10264064411865e-01 + 1.16158389148626e-01 -1.07268856271171e-01 + 1.09017608460481e-01 -1.04225445806672e-01 + 1.02208845279057e-01 -1.01150464979009e-01 + 9.57204441656418e-02 -9.80567235916097e-02 + 8.95431256675966e-02 -9.49505777251444e-02 + 8.36654273586364e-02 -9.18425702625302e-02 + 7.80736545281131e-02 -8.87461053661387e-02 + 7.27609142941316e-02 -8.56618586963429e-02 + 6.77181375640349e-02 -8.25939725469746e-02 + 6.29314267915325e-02 -7.95542155266183e-02 + 5.83918736326263e-02 -7.65460757142504e-02 + 5.40924087603125e-02 -7.35696428637186e-02 + 5.00238126094804e-02 -7.06282944642002e-02 + 4.61744194566202e-02 -6.77294750039665e-02 + 4.25343792761530e-02 -6.48775856834624e-02 + 3.90962763038171e-02 -6.20732990855308e-02 + 3.58516054447007e-02 -5.93185385599462e-02 + 3.27924500315299e-02 -5.66146352875974e-02 + 2.99188717479619e-02 -5.39556602195701e-02 + 2.72190044082920e-02 -5.13479767861748e-02 + 2.46896838543740e-02 -4.87892184809108e-02 + 2.23254525385638e-02 -4.62783210206995e-02 + 2.01130198509196e-02 -4.38228788319503e-02 + 1.80527586585474e-02 -4.14178634132421e-02 + 1.61356703170338e-02 -3.90662785024268e-02 + 1.43526037214418e-02 -3.67706864368368e-02 + 1.26925112458821e-02 -3.45344165274944e-02 + 1.11706366374529e-02 -3.23446888414334e-02 + 9.77352700565712e-03 -3.02054531089257e-02 + 8.49040361517659e-03 -2.81209420953160e-02 + 7.31269112385052e-03 -2.60938026465363e-02 + 6.25433551768215e-03 -2.41164241729582e-02 + 5.30829698548717e-03 -2.21892077859789e-02 + 4.45476327462913e-03 -2.03207332985441e-02 + 3.64530110445795e-03 -1.85320357914752e-02 + 2.91174185051685e-03 -1.68006712086556e-02 + 2.31718348065112e-03 -1.51053653630030e-02 + 1.82941121798937e-03 -1.34554413874920e-02 + 1.42352546318114e-03 -1.18578324134269e-02 + 1.12283938796851e-03 -1.03129812659207e-02 + 8.95185703762229e-04 -8.82257444647604e-03 + 7.19623688087765e-04 -7.39115890366439e-03 + 5.77020939120505e-04 -6.01882030127991e-03 + 4.52369924559997e-04 -4.70522667482128e-03 + 3.33108736652917e-04 -3.44876744129361e-03 + 2.19678789799849e-04 -2.24707655933577e-03 + 1.10470627512087e-04 -1.09799301605679e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.02143597426640e-04 1.10023219599336e-03 + 2.01309614692119e-04 2.24870546250850e-03 + 2.99835334696142e-04 3.44937608950232e-03 + 4.01625134276334e-04 4.70390215176617e-03 + 5.03744497735996e-04 6.01494732241436e-03 + 6.18346425662303e-04 7.38357349322562e-03 + 7.62162373651962e-04 8.81106326152953e-03 + 9.44028461513286e-04 1.02997209333177e-02 + 1.18336819581177e-03 1.18455136689331e-02 + 1.50884511188477e-03 1.34496657915282e-02 + 1.89788727592515e-03 1.51130431648560e-02 + 2.36899110997143e-03 1.68351583717724e-02 + 2.93906777320867e-03 1.86084448842534e-02 + 3.59867586435142e-03 2.04407835579661e-02 + 4.30670940618765e-03 2.23441086129425e-02 + 5.09720271325558e-03 2.43112044185002e-02 + 5.99752167084764e-03 2.63331705826819e-02 + 7.00809148016107e-03 2.84094077935519e-02 + 8.11991886289441e-03 3.05477003834154e-02 + 9.32294853441525e-03 3.27561716625509e-02 + 1.06452748433505e-02 3.50207995179131e-02 + 1.20919016758476e-02 3.73424285889777e-02 + 1.36657091050637e-02 3.97224937416051e-02 + 1.53619984984854e-02 4.21676966619203e-02 + 1.71997879098679e-02 4.46670282699767e-02 + 1.91847655820185e-02 4.72210237678420e-02 + 2.13253359844419e-02 4.98271817049964e-02 + 2.36315005758345e-02 5.24810278303086e-02 + 2.61083491713133e-02 5.51809326852122e-02 + 2.87612971194336e-02 5.79275640536155e-02 + 3.15981507017924e-02 6.07181563512188e-02 + 3.46280735398022e-02 6.35483803954030e-02 + 3.78535969542887e-02 6.64198323090761e-02 + 4.12850297637147e-02 6.93265564433727e-02 + 4.49307842744234e-02 7.22649573628829e-02 + 4.87981987096494e-02 7.52325003581984e-02 + 5.28961002593181e-02 7.82249292462606e-02 + 5.72308802904099e-02 8.12405827902420e-02 + 6.18143169001669e-02 8.42694699078538e-02 + 6.66558158361478e-02 8.73053509822511e-02 + 7.17628435388181e-02 9.03447243666059e-02 + 7.71433685208692e-02 9.33830270121848e-02 + 8.28066597109082e-02 9.64135695025354e-02 + 8.87623370313537e-02 9.94274158745211e-02 + 9.50225498149768e-02 1.02410179177287e-01 + 1.01593365906552e-01 1.05358816060489e-01 + 1.08484689743345e-01 1.08262503660961e-01 + 1.15707532058366e-01 1.11105723000675e-01 + 1.23267869284954e-01 1.13885507227664e-01 + 1.31175086465833e-01 1.16586005753054e-01 + 1.39439557403268e-01 1.19188064872780e-01 + 1.48067257045342e-01 1.21684204479217e-01 + 1.57063639519303e-01 1.24070184994036e-01 + 1.66438358327925e-01 1.26318433757590e-01 + 1.76196693213626e-01 1.28420877667203e-01 + 1.86343854246133e-01 1.30365302389596e-01 + 1.96885647258938e-01 1.32131955464750e-01 + 2.07825319991041e-01 1.33711507950338e-01 + 2.19166830204027e-01 1.35088568321992e-01 + 2.30911494004837e-01 1.36264392411050e-01 + 2.43061659957463e-01 1.37232695871242e-01 + 2.55619522433114e-01 1.37983858183860e-01 + 2.68586808602858e-01 1.38503519471763e-01 + 2.81964767633922e-01 1.38749726165751e-01 + 2.95753029530419e-01 1.38774454190077e-01 + 3.09951274377490e-01 1.38571813378443e-01 + 3.24559071166843e-01 1.38070228130810e-01 + 3.39576055104730e-01 1.37341676303649e-01 + 3.55000214209568e-01 1.36346328827212e-01 + 3.70830022781953e-01 1.35096013024744e-01 + 3.87063242925100e-01 1.33588344474677e-01 + 4.03697484944282e-01 1.31829441466863e-01 + 4.20727347071592e-01 1.29796793944684e-01 + 4.38151752431921e-01 1.27523927636752e-01 + 4.55964245711291e-01 1.24992848844895e-01 + 4.74161067405196e-01 1.22221528658444e-01 + 4.92733472564726e-01 1.19192379742703e-01 + 5.11676517362321e-01 1.15921793147290e-01 + 5.30985351170107e-01 1.12431666189537e-01 + 5.50653338799897e-01 1.08734797340211e-01 + 5.70668704030238e-01 1.04822354299143e-01 + 5.91022299396154e-01 1.00705182772293e-01 + 6.11704971014609e-01 9.63984808566061e-02 + 6.32703405878887e-01 9.19018382362305e-02 + 6.54007799159681e-01 8.72363637273782e-02 + 6.75603313526683e-01 8.24031641607094e-02 + 6.97479344035197e-01 7.74270176498144e-02 + 7.19619100665882e-01 7.23117551394136e-02 + 7.42007863814197e-01 6.70718571468711e-02 + 7.64633916307294e-01 6.17399746808587e-02 + 7.87480347506928e-01 5.63313661295179e-02 + 8.10530974553361e-01 5.08678682145718e-02 + 8.33766686857151e-01 4.53595048125649e-02 + 8.57171368568559e-01 3.98368383655974e-02 + 8.80727606307419e-01 3.43271534192858e-02 + 9.04416064906437e-01 2.88502243127447e-02 + 9.28217017828997e-01 2.34321631551572e-02 + 9.52108466170963e-01 1.81758216273790e-02 + 9.76048832000119e-01 1.30281580954275e-02 + 1.00000000000000e+00 8.03605801098970e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF18_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF18_Coords.txt new file mode 100644 index 000000000..69b35c6d4 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF18_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.271119 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 6.87333185662271e-03 + 9.88434823450365e-01 5.14609009479706e-03 + 9.63356446046041e-01 2.81208365521304e-03 + 9.38173619564503e-01 2.11141811751948e-03 + 9.12970244385348e-01 3.42423367943613e-03 + 8.87849405642405e-01 3.40884926697330e-03 + 8.62906378592580e-01 2.12515623860662e-03 + 8.38214272281028e-01 -2.60156862310043e-04 + 8.13833141258371e-01 -3.64211488015448e-03 + 7.89815325102566e-01 -7.97814033678704e-03 + 7.66219134256364e-01 -1.32457042040114e-02 + 7.43067357952682e-01 -1.93129878268803e-02 + 7.20356536253849e-01 -2.59687994996264e-02 + 6.98134548012667e-01 -3.30710900432173e-02 + 6.76402471318822e-01 -4.05049781049179e-02 + 6.55073244986546e-01 -4.81352000046419e-02 + 6.34124669433485e-01 -5.58332431128692e-02 + 6.13531493373959e-01 -6.34827297836513e-02 + 5.93270876422299e-01 -7.09792355720243e-02 + 5.73325529315891e-01 -7.82355222989936e-02 + 5.53683233550620e-01 -8.51828681870715e-02 + 5.34335281296692e-01 -9.17552483093195e-02 + 5.15278623986720e-01 -9.79037589748638e-02 + 4.96518157293315e-01 -1.03600588095675e-01 + 4.78060320415546e-01 -1.08818871076961e-01 + 4.59912384109534e-01 -1.13535831477346e-01 + 4.42086878662630e-01 -1.17749258293698e-01 + 4.24600066407942e-01 -1.21473314893506e-01 + 4.07465695037716e-01 -1.24713180393030e-01 + 3.90695670033356e-01 -1.27473183801776e-01 + 3.74304863413412e-01 -1.29782627395802e-01 + 3.58301934408156e-01 -1.31638900221172e-01 + 3.42698578938929e-01 -1.33074302635212e-01 + 3.27503168760362e-01 -1.34103073011823e-01 + 3.12723569075957e-01 -1.34766623556295e-01 + 2.98364586968963e-01 -1.35057239673737e-01 + 2.84430619527688e-01 -1.35004858750896e-01 + 2.70924850528441e-01 -1.34655187570127e-01 + 2.57847500571184e-01 -1.34007151242681e-01 + 2.45199397507050e-01 -1.33087181297245e-01 + 2.32979560074458e-01 -1.31908117302357e-01 + 2.21185084365922e-01 -1.30497527106408e-01 + 2.09813533497270e-01 -1.28868761218709e-01 + 1.98861842635883e-01 -1.27032922859771e-01 + 1.88323459147512e-01 -1.25018401802056e-01 + 1.78194744194262e-01 -1.22833939437254e-01 + 1.68467796421303e-01 -1.20502648999767e-01 + 1.59136139630694e-01 -1.18037954305813e-01 + 1.50190647154169e-01 -1.15460251403804e-01 + 1.41623608532141e-01 -1.12781494457352e-01 + 1.33426196381455e-01 -1.10015989854591e-01 + 1.25586228640792e-01 -1.07186069606159e-01 + 1.18096007086826e-01 -1.04298759744605e-01 + 1.10945907781890e-01 -1.01364996572767e-01 + 1.04123504724859e-01 -9.84004866230606e-02 + 9.76173995055390e-02 -9.54174998650553e-02 + 9.14186536449103e-02 -9.24215252035103e-02 + 8.55155078079580e-02 -8.94241100408036e-02 + 7.98949874898957e-02 -8.64374268215204e-02 + 7.45501205800592e-02 -8.34621006655180e-02 + 6.94720733150078e-02 -8.05017099758587e-02 + 6.46470501257109e-02 -7.75683803734192e-02 + 6.00665858943463e-02 -7.46649563912156e-02 + 5.57237817491085e-02 -7.17912555327383e-02 + 5.16094527530840e-02 -6.89506443840537e-02 + 4.77119337516286e-02 -6.61507592616996e-02 + 4.40216175405752e-02 -6.33959119417994e-02 + 4.05314270939593e-02 -6.06863826688969e-02 + 3.72330941343592e-02 -5.80239030404020e-02 + 3.41188464749468e-02 -5.54097281429925e-02 + 3.11881534742914e-02 -5.28383454187404e-02 + 2.84298791614678e-02 -5.03155481840879e-02 + 2.58404842438748e-02 -4.78391968337314e-02 + 2.34149657111378e-02 -4.54077398101864e-02 + 2.11405069860151e-02 -4.30288476542917e-02 + 1.90174508121535e-02 -4.06971888858776e-02 + 1.70366813355528e-02 -3.84159790490498e-02 + 1.51890372288594e-02 -3.61882003099317e-02 + 1.34649625900846e-02 -3.40162550191150e-02 + 1.18794910621038e-02 -3.18865463097217e-02 + 1.04205364858860e-02 -2.98025569053669e-02 + 9.07776719568583e-03 -2.77686861549310e-02 + 7.84242100648312e-03 -2.57881520863828e-02 + 6.72774251973354e-03 -2.38530996229818e-02 + 5.72716723605649e-03 -2.19642106999464e-02 + 4.82165121177274e-03 -2.01299808434633e-02 + 3.95424177898097e-03 -1.83785736791380e-02 + 3.16935000569759e-03 -1.66786809956424e-02 + 2.52639620614245e-03 -1.50093846420749e-02 + 1.99811184416990e-03 -1.33792463281819e-02 + 1.55893395647427e-03 -1.17968621911109e-02 + 1.22990672396420e-03 -1.02636132510113e-02 + 9.78952073225529e-04 -8.78256705002870e-03 + 7.88148284729661e-04 -7.35841387842651e-03 + 6.31690683654413e-04 -5.99231538847306e-03 + 4.93686258740774e-04 -4.68478037860689e-03 + 3.62804994714694e-04 -3.43391910188505e-03 + 2.38771698148283e-04 -2.23747641803903e-03 + 1.19479420338027e-04 -1.09337456357305e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.10321174589519e-04 1.09546269099130e-03 + 2.16906164519496e-04 2.23946984900915e-03 + 3.22184652133250e-04 3.43557490456148e-03 + 4.30758650597876e-04 4.68537119533055e-03 + 5.40173990700597e-04 5.99151040252835e-03 + 6.62314407225462e-04 7.35502084679004e-03 + 8.14141397960997e-04 8.77717692193804e-03 + 1.00446882871678e-03 1.02600041181118e-02 + 1.25682366595263e-03 1.17986373302085e-02 + 1.59829572394118e-03 1.33943679265839e-02 + 2.00367599264660e-03 1.50484847573330e-02 + 2.49293170730129e-03 1.67595290682567e-02 + 3.08491403652688e-03 1.85196682243619e-02 + 3.76542739099032e-03 2.03374758576320e-02 + 4.50099256386642e-03 2.22228799750539e-02 + 5.31963374802878e-03 2.41707731115428e-02 + 6.25208045463317e-03 2.61695867302739e-02 + 7.29685353610275e-03 2.82197695698085e-02 + 8.44504078911835e-03 3.03292481691990e-02 + 9.68494869360448e-03 3.25073755844532e-02 + 1.10461378178322e-02 3.47385411471952e-02 + 1.25329055444563e-02 3.70237545848791e-02 + 1.41480654426145e-02 3.93644770886677e-02 + 1.58869294415653e-02 4.17675854132117e-02 + 1.77684335115789e-02 4.42215907506642e-02 + 1.97979172858069e-02 4.67269824990666e-02 + 2.19841727607720e-02 4.92806419513063e-02 + 2.43368890125345e-02 5.18781856559690e-02 + 2.68606785680097e-02 5.45182441499371e-02 + 2.95593670387654e-02 5.72030511558344e-02 + 3.24407677888354e-02 5.99297292155450e-02 + 3.55142857426781e-02 6.26936016646692e-02 + 3.87828145080580e-02 6.54960595241809e-02 + 4.22563116847179e-02 6.83311964295137e-02 + 4.59432859178089e-02 7.11951106707690e-02 + 4.98509441546502e-02 7.40854003064441e-02 + 5.39875119370852e-02 7.69985411068951e-02 + 5.83589337042366e-02 7.99336109492309e-02 + 6.29767883508494e-02 8.28807382850050e-02 + 6.78502716860992e-02 8.58340136466882e-02 + 7.29869644719264e-02 8.87898059970332e-02 + 7.83948359815704e-02 9.17436354170804e-02 + 8.40827975351382e-02 9.46895277854482e-02 + 9.00604914070609e-02 9.76183320612743e-02 + 9.63395162599756e-02 1.00516708938602e-01 + 1.02926404556697e-01 1.03381031383471e-01 + 1.09830377243687e-01 1.06202297340617e-01 + 1.17061929501473e-01 1.08966647427619e-01 + 1.24627298343166e-01 1.11671089494397e-01 + 1.32536191104496e-01 1.14299100753382e-01 + 1.40799194511941e-01 1.16830815917659e-01 + 1.49422251018563e-01 1.19259897989241e-01 + 1.58409650287018e-01 1.21587634924223e-01 + 1.67772833186932e-01 1.23779816425051e-01 + 1.77516438296948e-01 1.25832570932972e-01 + 1.87645865159863e-01 1.27734334890828e-01 + 1.98167172601452e-01 1.29465698213079e-01 + 2.09084200153275e-01 1.31015073983779e-01 + 2.20401049637976e-01 1.32368451990526e-01 + 2.32118972480466e-01 1.33530018815809e-01 + 2.44240874782138e-01 1.34491569973558e-01 + 2.56769322197229e-01 1.35242605459084e-01 + 2.69706334760383e-01 1.35765737792613e-01 + 2.83053442433527e-01 1.36019141177471e-01 + 2.96810234613773e-01 1.36058074734146e-01 + 3.10976569989214e-01 1.35875762560950e-01 + 3.25552168028928e-01 1.35392908429916e-01 + 3.40536755624610e-01 1.34692571200887e-01 + 3.55928155022873e-01 1.33722844728788e-01 + 3.71725210574652e-01 1.32503972790571e-01 + 3.87925569165494e-01 1.31030526087552e-01 + 4.04527160971503e-01 1.29310974282623e-01 + 4.21524201215298e-01 1.27317671431799e-01 + 4.38916097629819e-01 1.25089540649102e-01 + 4.56695863063042e-01 1.22602678920012e-01 + 4.74860648367540e-01 1.19882227691706e-01 + 4.93400800353937e-01 1.16903295715389e-01 + 5.12311508474459e-01 1.13683017273048e-01 + 5.31588468861736e-01 1.10247321637009e-01 + 5.51224156397226e-01 1.06603370636363e-01 + 5.71207004694175e-01 1.02743442436236e-01 + 5.91528256669195e-01 9.86804919668250e-02 + 6.12178651212710e-01 9.44290338838600e-02 + 6.33144966913359e-01 8.99888675054024e-02 + 6.54417477809168e-01 8.53817232603523e-02 + 6.75981820839220e-01 8.06108822594959e-02 + 6.97828060094043e-01 7.57038888621295e-02 + 7.19938754776857e-01 7.06618937526197e-02 + 7.42299667393605e-01 6.55010379642679e-02 + 7.64899165670606e-01 6.02548921731358e-02 + 7.87719864954809e-01 5.49366721355569e-02 + 8.10745303939664e-01 4.95672929078033e-02 + 8.33957115294563e-01 4.41601187690546e-02 + 8.57338009245965e-01 3.87405354049058e-02 + 8.80869894765446e-01 3.33332803520711e-02 + 9.04533795368084e-01 2.79596789742807e-02 + 9.28308294915081e-01 2.26395581714179e-02 + 9.52170801101463e-01 1.74582950253048e-02 + 9.76079892651603e-01 1.23712180904869e-02 + 1.00000000000000e+00 7.41925380173894e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF19_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF19_Coords.txt new file mode 100644 index 000000000..d12513d6f --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF19_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.264456 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 6.33229901607505e-03 + 9.87081334229544e-01 4.81241498702647e-03 + 9.62129582690117e-01 3.13614601791142e-03 + 9.37094470343184e-01 2.68957935899340e-03 + 9.12045797626378e-01 4.02853160087375e-03 + 8.87076362858767e-01 4.07198701584806e-03 + 8.62275881147407e-01 2.90855876378841e-03 + 8.37713583441083e-01 6.81247850539094e-04 + 8.13448024469549e-01 -2.51787665073987e-03 + 7.89532636567111e-01 -6.65979234979207e-03 + 7.66025964965924e-01 -1.17296088312358e-02 + 7.42953968565464e-01 -1.76029623739729e-02 + 7.20316951285845e-01 -2.40711591232652e-02 + 6.98150634494781e-01 -3.09868286789303e-02 + 6.76456570092504e-01 -3.82390346556685e-02 + 6.55167002430428e-01 -4.56947693656514e-02 + 6.34260710233361e-01 -5.32274580200025e-02 + 6.13712080740280e-01 -6.07183684184537e-02 + 5.93498787906610e-01 -6.80647317147552e-02 + 5.73604095553235e-01 -7.51814042031584e-02 + 5.54015313547523e-01 -8.19979190942793e-02 + 5.34724126118857e-01 -8.84503788072742e-02 + 5.15726790164984e-01 -9.44880323473420e-02 + 4.97027993192822e-01 -1.00083011928683e-01 + 4.78634144945338e-01 -1.05208549718335e-01 + 4.60551928689110e-01 -1.09840224023830e-01 + 4.42793213012681e-01 -1.13973342210072e-01 + 4.25374122043668e-01 -1.17622704883454e-01 + 4.08308321122044e-01 -1.20794528685637e-01 + 3.91607576247676e-01 -1.23495206137929e-01 + 3.75286299521297e-01 -1.25752680146668e-01 + 3.59352790520676e-01 -1.27564851199552e-01 + 3.43818429860640e-01 -1.28963881796560e-01 + 3.28691349897258e-01 -1.29966221931967e-01 + 3.13978962026355e-01 -1.30610577031169e-01 + 2.99685686343629e-01 -1.30895932643136e-01 + 2.85815621217227e-01 -1.30842685972883e-01 + 2.72371553177183e-01 -1.30501712019061e-01 + 2.59353307640352e-01 -1.29872489377399e-01 + 2.46761399007916e-01 -1.28980161091842e-01 + 2.34594366474069e-01 -1.27838376578476e-01 + 2.22848917255343e-01 -1.26475127857013e-01 + 2.11522427255790e-01 -1.24901940203141e-01 + 2.00611610788770e-01 -1.23128847323822e-01 + 1.90109348918510e-01 -1.21186274061801e-01 + 1.80012284815715e-01 -1.19079364175727e-01 + 1.70311585391745e-01 -1.16834614163754e-01 + 1.61001136352535e-01 -1.14462491403373e-01 + 1.52072188544465e-01 -1.11980915770029e-01 + 1.43516480378864e-01 -1.09403276606324e-01 + 1.35325086245414e-01 -1.06743452449884e-01 + 1.27486269402043e-01 -1.04022121574267e-01 + 1.19992470549653e-01 -1.01245594253817e-01 + 1.12834126887980e-01 -9.84243259012080e-02 + 1.05999232474032e-01 -9.55730174309724e-02 + 9.94766690875347e-02 -9.27033638271587e-02 + 9.32578598720190e-02 -8.98199333143490e-02 + 8.73307829818102e-02 -8.69352929434084e-02 + 8.16831930960761e-02 -8.40603469211922e-02 + 7.63079954574401e-02 -8.11957909322454e-02 + 7.11965682908036e-02 -7.83446924046626e-02 + 6.63352607496957e-02 -7.55194705830906e-02 + 6.17160320575343e-02 -7.27223540652689e-02 + 5.73321286961334e-02 -6.99529504224582e-02 + 5.31744117895083e-02 -6.72146263550786e-02 + 4.92312622959260e-02 -6.45151675085651e-02 + 4.54933308950735e-02 -6.18587655486771e-02 + 4.19538550054843e-02 -5.92453347077270e-02 + 3.86048067359764e-02 -5.66764049714057e-02 + 3.54384808980859e-02 -5.41532526038409e-02 + 3.24535408248011e-02 -5.16709973774029e-02 + 2.96396158885320e-02 -4.92347767610431e-02 + 2.69927450817630e-02 -4.68427052931793e-02 + 2.45082841735599e-02 -4.44928102748943e-02 + 2.21739528146676e-02 -4.21927259251090e-02 + 1.99900806881140e-02 -3.99368297593953e-02 + 1.79475854979212e-02 -3.77284083065863e-02 + 1.60371784144214e-02 -3.55709681467615e-02 + 1.42509036334771e-02 -3.34658727042632e-02 + 1.26032922889183e-02 -3.13988219208841e-02 + 1.10838418128541e-02 -2.93727360631409e-02 + 9.68254987709575e-03 -2.73922223605603e-02 + 8.39046320280219e-03 -2.54610334071060e-02 + 7.21989214482021e-03 -2.35710363507186e-02 + 6.16475919330947e-03 -2.17230926109634e-02 + 5.20671801469632e-03 -1.99256690434379e-02 + 4.28083439102843e-03 -1.82140689110389e-02 + 3.44387501326249e-03 -1.65480385560782e-02 + 2.75082195641114e-03 -1.49069143383424e-02 + 2.18017026149188e-03 -1.32982632615207e-02 + 1.70594416029211e-03 -1.17324488061772e-02 + 1.34654321653177e-03 -1.02117661164425e-02 + 1.07054608891325e-03 -8.74075831811662e-03 + 8.63333057053315e-04 -7.32423911010448e-03 + 6.91778142940037e-04 -5.96468828103545e-03 + 5.39139550868863e-04 -4.66348777125278e-03 + 3.95509969958590e-04 -3.41847304239920e-03 + 2.59837225586840e-04 -2.22750494229331e-03 + 1.29433607029781e-04 -1.08859611882021e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.19506781627065e-04 1.09036440127183e-03 + 2.34514338102424e-04 2.22975140947842e-03 + 3.47552617939225e-04 3.42112233283956e-03 + 4.63961725735286e-04 4.66601993644780e-03 + 5.81875343732012e-04 5.96707509456817e-03 + 7.12777649744780e-04 7.32527326053272e-03 + 8.73757462829672e-04 8.74188304057033e-03 + 1.07359145773123e-03 1.02185739536581e-02 + 1.34032850547650e-03 1.17495484423769e-02 + 1.69892809386108e-03 1.33362233710223e-02 + 2.12169893841206e-03 1.49803492566321e-02 + 2.63001318573861e-03 1.66794035910534e-02 + 3.24465236451868e-03 1.84254173769457e-02 + 3.94627632718631e-03 2.02277188358896e-02 + 4.70960222158415e-03 2.20942527185228e-02 + 5.55628284684987e-03 2.40219742876134e-02 + 6.52042405862171e-03 2.59966715077993e-02 + 7.59866215866452e-03 2.80199079192950e-02 + 8.78222574259337e-03 3.00997478538361e-02 + 1.00580765794157e-02 3.22466625298674e-02 + 1.14571144876444e-02 3.44435956293975e-02 + 1.29828643403208e-02 3.66916813864773e-02 + 1.46380960437759e-02 3.89924634856355e-02 + 1.64182907401249e-02 4.13528454275210e-02 + 1.83422030595604e-02 4.37610010282006e-02 + 2.04148355472648e-02 4.62173440408200e-02 + 2.26450259803468e-02 4.87183844048648e-02 + 2.50421696437984e-02 5.12598502700410e-02 + 2.76105277909864e-02 5.38406134411775e-02 + 3.03523261566713e-02 5.64645057194012e-02 + 3.32754295577200e-02 5.91285243052471e-02 + 3.63895051476746e-02 6.18276700066854e-02 + 3.96979285555797e-02 6.45630417560034e-02 + 4.32103115055626e-02 6.73288113776484e-02 + 4.69351991315885e-02 7.01208767697289e-02 + 5.08797096611819e-02 7.29369447673647e-02 + 5.50515197106163e-02 7.57741959964523e-02 + 5.94562006296463e-02 7.86323737623926e-02 + 6.41051207688045e-02 8.15017835717856e-02 + 6.90072723751277e-02 8.43768607090915e-02 + 7.41704041650113e-02 8.72537789154516e-02 + 7.96025183155545e-02 9.01280993631450e-02 + 8.53122019518613e-02 9.29945013895646e-02 + 9.13090921809429e-02 9.58437310970915e-02 + 9.76042593291884e-02 9.86635296767619e-02 + 1.04204721373147e-01 1.01449603344050e-01 + 1.11119093233996e-01 1.04194590115919e-01 + 1.18357325183033e-01 1.06886397281573e-01 + 1.25926015273276e-01 1.09521627782897e-01 + 1.33835102082841e-01 1.12083421579183e-01 + 1.42095275666117e-01 1.14551628179305e-01 + 1.50712500980794e-01 1.16920809612509e-01 + 1.59690257697157e-01 1.19196291541071e-01 + 1.69041229169503e-01 1.21339614185576e-01 + 1.78769703066076e-01 1.23349690973948e-01 + 1.88881290350486e-01 1.25215395994401e-01 + 1.99382254885812e-01 1.26917844928793e-01 + 2.10276953632320e-01 1.28443655234158e-01 + 2.21569602854986e-01 1.29780301633724e-01 + 2.33261565784825e-01 1.30933293215832e-01 + 2.45356232622101e-01 1.31892562006616e-01 + 2.57856461112738e-01 1.32647156279786e-01 + 2.70764524386869e-01 1.33177080894113e-01 + 2.84082190483326e-01 1.33441776742077e-01 + 2.97809039800015e-01 1.33496508871844e-01 + 3.11945088611560e-01 1.33334898657958e-01 + 3.26490150123394e-01 1.32871731871370e-01 + 3.41444010991315e-01 1.32197553528432e-01 + 3.56804358690930e-01 1.31251959911943e-01 + 3.72570332848010e-01 1.30061617362692e-01 + 3.88739465104205e-01 1.28618545816397e-01 + 4.05309966282749e-01 1.26933360887972e-01 + 4.22275811999396e-01 1.24975192542141e-01 + 4.39636634583942e-01 1.22785441038015e-01 + 4.57385168084959e-01 1.20337019729572e-01 + 4.75519202191527e-01 1.17659931136218e-01 + 4.94028431602862e-01 1.14724120029175e-01 + 5.12908246369057e-01 1.11547869661605e-01 + 5.32154602085843e-01 1.08159115219521e-01 + 5.51759266146723e-01 1.04560531134564e-01 + 5.71710920433143e-01 1.00745774397718e-01 + 5.92001109602521e-01 9.67294308506059e-02 + 6.12620473680988e-01 9.25253939949003e-02 + 6.33555888557084e-01 8.81337706642073e-02 + 6.54797808160436e-01 8.35773968200542e-02 + 6.76332320899298e-01 7.88617648142848e-02 + 6.98150009731216e-01 7.40166727944726e-02 + 7.20233014622841e-01 6.90414849936353e-02 + 7.42567408660160e-01 6.39534427560541e-02 + 7.65141728474361e-01 5.87873906043413e-02 + 7.87938152619986e-01 5.35545131347905e-02 + 8.10939978546672e-01 4.82748323933119e-02 + 8.34129534324454e-01 4.29651092138647e-02 + 8.57488377632231e-01 3.76452684491864e-02 + 8.80997804297833e-01 3.23375066444632e-02 + 9.04639148292035e-01 2.70645989745590e-02 + 9.28389525946810e-01 2.18402996174146e-02 + 9.52225818446824e-01 1.67219478133929e-02 + 9.76106997606287e-01 1.16766143038253e-02 + 1.00000000000000e+00 6.73722307996705e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF20_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF20_Coords.txt new file mode 100644 index 000000000..f55b4551b --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF20_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.255499 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 5.57369485110911e-03 + 9.85184995690495e-01 4.43102866471162e-03 + 9.60410206961380e-01 3.54914818833722e-03 + 9.35580286467644e-01 3.39801369619355e-03 + 9.10746544326284e-01 4.72807621805629e-03 + 8.85988247455467e-01 4.81744210261023e-03 + 8.61387409314238e-01 3.78540445097878e-03 + 8.37007965349898e-01 1.74592882429857e-03 + 8.12906147995309e-01 -1.22412525722447e-03 + 7.89136365888312e-01 -5.11006859318454e-03 + 7.65756845055337e-01 -9.90524523475540e-03 + 7.42797069554030e-01 -1.54955487943591e-02 + 7.20262369367085e-01 -2.16832270716037e-02 + 6.98170364192929e-01 -2.83183965571911e-02 + 6.76522825992284e-01 -3.52958801482376e-02 + 6.55280899258628e-01 -4.24868043126723e-02 + 6.34424897718045e-01 -4.97678875546439e-02 + 6.13929612596008e-01 -5.70187371451792e-02 + 5.93773877926501e-01 -6.41391077915585e-02 + 5.73941845106950e-01 -7.10463881213420e-02 + 5.54420386654228e-01 -7.76675228536323e-02 + 5.35201871253711e-01 -8.39417455635086e-02 + 5.16281919429305e-01 -8.98164232100153e-02 + 4.97664775114426e-01 -9.52632704130320e-02 + 4.79356208541345e-01 -1.00254169786511e-01 + 4.61361961709187e-01 -1.04761982400226e-01 + 4.43693066318928e-01 -1.08778724954752e-01 + 4.26365209861901e-01 -1.12319209918891e-01 + 4.09391932658988e-01 -1.15391184881333e-01 + 3.92784823396056e-01 -1.18003818331215e-01 + 3.76557706427835e-01 -1.20183614227391e-01 + 3.60718463398691e-01 -1.21929709455107e-01 + 3.45277924807936e-01 -1.23273257478238e-01 + 3.30243916823857e-01 -1.24234311608507e-01 + 3.15623192840458e-01 -1.24847382994676e-01 + 3.01419669740022e-01 -1.25118866988299e-01 + 2.87636996688114e-01 -1.25061518463999e-01 + 2.74277404125533e-01 -1.24728188045413e-01 + 2.61340213132380e-01 -1.24120672938149e-01 + 2.48825445789913e-01 -1.23262796279575e-01 + 2.36730991833506e-01 -1.22169405834304e-01 + 2.25053106776327e-01 -1.20868290280947e-01 + 2.13788822601802e-01 -1.19369141859101e-01 + 2.02934476077552e-01 -1.17680961791204e-01 + 1.92482315375534e-01 -1.15836117711096e-01 + 1.82429232116859e-01 -1.13835258033214e-01 + 1.72765365872229e-01 -1.11708589807403e-01 + 1.63484925364123e-01 -1.09463227009496e-01 + 1.54579584295992e-01 -1.07113970695314e-01 + 1.46040483940237e-01 -1.04675677108395e-01 + 1.37858586860093e-01 -1.02161562103586e-01 + 1.30022704628691e-01 -9.95902014310208e-02 + 1.22525402741738e-01 -9.69670555259564e-02 + 1.15357297888210e-01 -9.43016463763316e-02 + 1.08506941608294e-01 -9.16073093103272e-02 + 1.01963602735506e-01 -8.88949287763980e-02 + 9.57191916285240e-02 -8.61677662033717e-02 + 8.97614441933820e-02 -8.34395899678708e-02 + 8.40790535242893e-02 -8.07196265266125e-02 + 7.86647188599356e-02 -7.80087773165134e-02 + 7.35100604802676e-02 -7.53095108212237e-02 + 6.86017621946143e-02 -7.26343681991605e-02 + 6.39322624273077e-02 -6.99848687667177e-02 + 5.94949331306036e-02 -6.73604536751595e-02 + 5.52807244412009e-02 -6.47644759565246e-02 + 5.12781785909308e-02 -6.22048028938083e-02 + 4.74783296406799e-02 -5.96853620854339e-02 + 4.38747863945965e-02 -5.72056117180270e-02 + 4.04598628842114e-02 -5.47667656082513e-02 + 3.72258993260459e-02 -5.23702018218380e-02 + 3.41703364909894e-02 -5.00120610687758e-02 + 3.12838140260184e-02 -4.76965586938912e-02 + 2.85618282188563e-02 -4.54221287972537e-02 + 2.60000631953736e-02 -4.31863823576739e-02 + 2.35870521628364e-02 -4.09967202159910e-02 + 2.13230132261971e-02 -3.88472464839443e-02 + 1.91991458134592e-02 -3.67411244382176e-02 + 1.72059127827905e-02 -3.46826447245777e-02 + 1.53374399515675e-02 -3.26717589820540e-02 + 1.36071932793286e-02 -3.06934528861555e-02 + 1.20069014980664e-02 -2.87497934570521e-02 + 1.05267627579236e-02 -2.68458443466462e-02 + 9.15778447802236e-03 -2.49858539650861e-02 + 7.91094674890632e-03 -2.31611918001785e-02 + 6.78106389287181e-03 -2.13726820349160e-02 + 5.75045796047090e-03 -1.96290636827020e-02 + 4.74526749047071e-03 -1.79745280838441e-02 + 3.83662979026008e-03 -1.63577897084931e-02 + 3.07371925100187e-03 -1.47579109871758e-02 + 2.44324559604896e-03 -1.31809192109331e-02 + 1.91897639506553e-03 -1.16396943906589e-02 + 1.51589965637508e-03 -1.01375969552030e-02 + 1.20403836135952e-03 -8.68122246595271e-03 + 9.73044779891345e-04 -7.27559875963324e-03 + 7.79526821944273e-04 -5.92541580346999e-03 + 6.05710376264230e-04 -4.63319998319022e-03 + 4.43506362801195e-04 -3.39648847538556e-03 + 2.90806997776278e-04 -2.21329955106070e-03 + 1.44111733044477e-04 -1.08177657591860e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.33278929264708e-04 1.08308205325968e-03 + 2.60967643425167e-04 2.21589480545815e-03 + 3.85828452403704e-04 3.40054051328408e-03 + 5.14177177530309e-04 4.63849600006058e-03 + 6.45053696760339e-04 5.93234085131709e-03 + 7.89375173063183e-04 7.28296999648911e-03 + 9.64388764736172e-04 8.69164154227275e-03 + 1.17891295160857e-03 1.01593904789532e-02 + 1.46760285924899e-03 1.16789560330545e-02 + 1.85198441100050e-03 1.32520472144950e-02 + 2.30116143918740e-03 1.48810359712666e-02 + 2.83841008015066e-03 1.65618344257651e-02 + 3.48679627447484e-03 1.82864943388655e-02 + 4.21995364910922e-03 2.00654352247555e-02 + 5.02337699609839e-03 2.19043510278909e-02 + 5.91050986401052e-03 2.38024333272953e-02 + 6.91955122729019e-03 2.57422214532573e-02 + 8.04473318603896e-03 2.77267408663540e-02 + 9.27743698862900e-03 2.97642838318545e-02 + 1.06032654271044e-02 3.18665594980045e-02 + 1.20545008048385e-02 3.40149057190122e-02 + 1.36337424188994e-02 3.62105139789181e-02 + 1.53436013277613e-02 3.84551681531873e-02 + 1.71800270341450e-02 4.07555854366467e-02 + 1.91613128494105e-02 4.30997512095160e-02 + 2.12920593486524e-02 4.54879541567462e-02 + 2.35807705409638e-02 4.79165888145920e-02 + 2.60364735820670e-02 5.03815424134023e-02 + 2.86631032980209e-02 5.28819925857997e-02 + 3.14609423061144e-02 5.54237435358678e-02 + 3.44379548359320e-02 5.80036147357526e-02 + 3.76040881050201e-02 6.06163073845551e-02 + 4.09634434624966e-02 6.32624739501055e-02 + 4.45251871831957e-02 6.59364543509523e-02 + 4.82977541556047e-02 6.86341616022803e-02 + 5.22881990993307e-02 7.13534251625745e-02 + 5.65035830491653e-02 7.40922683873540e-02 + 6.09491267465175e-02 7.68511477207632e-02 + 6.56358828045172e-02 7.96207279021908e-02 + 7.05725926026108e-02 8.23959186671916e-02 + 7.57672544333990e-02 8.51726396401776e-02 + 8.12279400353196e-02 8.79465043725499e-02 + 8.69629008314809e-02 9.07128817754810e-02 + 9.29816506148206e-02 9.34627693511084e-02 + 9.92945777258170e-02 9.61854593373971e-02 + 1.05909366715529e-01 9.88757141104638e-02 + 1.12834069765373e-01 1.01527779521622e-01 + 1.20077885805069e-01 1.04132019913725e-01 + 1.27648065227245e-01 1.06683846538356e-01 + 1.35554614319558e-01 1.09166888362174e-01 + 1.43808122168227e-01 1.11561671786683e-01 + 1.52414753736269e-01 1.13863291396362e-01 + 1.61377866226692e-01 1.16078452786770e-01 + 1.70710353854672e-01 1.18169478271069e-01 + 1.80416809185821e-01 1.20135309937444e-01 + 1.90503197929797e-01 1.21964905324307e-01 + 2.00975961494053e-01 1.23640511818807e-01 + 2.11839969233770e-01 1.25147706031098e-01 + 2.23099536623368e-01 1.26476170358567e-01 + 2.34756667606991e-01 1.27629036914119e-01 + 2.46815231032928e-01 1.28594026968875e-01 + 2.59278301184569e-01 1.29360606747352e-01 + 2.72148406449347e-01 1.29906529109999e-01 + 2.85427545208016e-01 1.30195600591587e-01 + 2.99115388346919e-01 1.30274621628425e-01 + 3.13212124083902e-01 1.30141407369739e-01 + 3.27717555963174e-01 1.29707256213359e-01 + 3.42631484760254e-01 1.29063386595938e-01 + 3.57951518751296e-01 1.28147699792690e-01 + 3.73677000318379e-01 1.26989888322235e-01 + 3.89805315104769e-01 1.25579890398151e-01 + 4.06334958451616e-01 1.23930642723258e-01 + 4.23259975012670e-01 1.22011994485969e-01 + 4.40579613219099e-01 1.19861033992536e-01 + 4.58286908430796e-01 1.17453548773826e-01 + 4.76379773955822e-01 1.14819754359882e-01 + 4.94847715833324e-01 1.11928441475740e-01 + 5.13686575210249e-01 1.08800451697185e-01 + 5.32891878901155e-01 1.05460995316291e-01 + 5.52454945548850e-01 1.01910078953523e-01 + 5.72364851754438e-01 9.81435482959302e-02 + 5.92613318557008e-01 9.41769044916234e-02 + 6.13190862769656e-01 9.00233532507998e-02 + 6.34084491592251e-01 8.56835387339126e-02 + 6.55285190971151e-01 8.11830677600997e-02 + 6.76779562688437e-01 7.65300155328363e-02 + 6.98558523173488e-01 7.17558856993747e-02 + 7.20604273151628e-01 6.68600060220881e-02 + 7.42902850129912e-01 6.18595253079902e-02 + 7.65443271286543e-01 5.67918977874709e-02 + 7.88207235665907e-01 5.16658338081724e-02 + 8.11177822368940e-01 4.65003539413686e-02 + 8.34338170328996e-01 4.13165162127653e-02 + 8.57668333698006e-01 3.61268061532456e-02 + 8.81148946570921e-01 3.09502742161389e-02 + 9.04761653985231e-01 2.58114131868323e-02 + 9.28482141884220e-01 2.07166761943350e-02 + 9.52286862246338e-01 1.56825877753865e-02 + 9.76136078805170e-01 1.06916993591379e-02 + 1.00000000000000e+00 5.76632803685904e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF21_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF21_Coords.txt new file mode 100644 index 000000000..f03c3d72a --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF21_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250367 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 5.12065174890182e-03 + 9.84119611382889e-01 4.34503788651708e-03 + 9.59443927347727e-01 3.82633397408522e-03 + 9.34728047666072e-01 3.75202641726725e-03 + 9.10013780901388e-01 5.05159095644687e-03 + 8.85373409544471e-01 5.14801784031985e-03 + 8.60884682239077e-01 4.17264284548200e-03 + 8.36608656089848e-01 2.22577093136282e-03 + 8.12600103972116e-01 -6.22984169527078e-04 + 7.88913594186492e-01 -4.36438237175452e-03 + 7.65606719098168e-01 -8.99515112287428e-03 + 7.42710301325700e-01 -1.44070680951777e-02 + 7.20232321149544e-01 -2.04139825231422e-02 + 6.98181845466008e-01 -2.68680970774442e-02 + 6.76560924026131e-01 -3.36678803659740e-02 + 6.55345066006338e-01 -4.06875268350218e-02 + 6.34515745481064e-01 -4.78060199141287e-02 + 6.14048656963868e-01 -5.49031094261040e-02 + 5.93923690060111e-01 -6.18800587637149e-02 + 5.74125627653507e-01 -6.86552793135641e-02 + 5.54641210225893e-01 -7.51540716046385e-02 + 5.35463316177065e-01 -8.13174434372653e-02 + 5.16587390913801e-01 -8.70920699800421e-02 + 4.98017298451311e-01 -9.24491489482049e-02 + 4.79758005354368e-01 -9.73586990719967e-02 + 4.61814609452017e-01 -1.01791734871454e-01 + 4.44197726429414e-01 -1.05738673883804e-01 + 4.26922632046149e-01 -1.09213752138427e-01 + 4.10002793681536e-01 -1.12225567637523e-01 + 3.93449712594391e-01 -1.14784719968613e-01 + 3.77276914337055e-01 -1.16917251214364e-01 + 3.61492097233433e-01 -1.18623288912175e-01 + 3.46105700853227e-01 -1.19932871839614e-01 + 3.31125396941535e-01 -1.20868399004909e-01 + 3.16557544288633e-01 -1.21461855585666e-01 + 3.02405796848737e-01 -1.21722117837379e-01 + 2.88673524099175e-01 -1.21661980505520e-01 + 2.75362635822761e-01 -1.21331646595024e-01 + 2.62472195666692e-01 -1.20735193665845e-01 + 2.50001906640536e-01 -1.19896062734381e-01 + 2.37949301636342e-01 -1.18829769345261e-01 + 2.26310444496220e-01 -1.17563406838751e-01 + 2.15082114353756e-01 -1.16106133389021e-01 + 2.04260390756723e-01 -1.14466639132117e-01 + 1.93837271440298e-01 -1.12677750537987e-01 + 1.83809680567339e-01 -1.10738026316032e-01 + 1.74167363643286e-01 -1.08679015000626e-01 + 1.64904587954349e-01 -1.06506484389548e-01 + 1.56013187274169e-01 -1.04233761000937e-01 + 1.47484090944416e-01 -1.01876090674478e-01 + 1.39308214822847e-01 -9.94462625161198e-02 + 1.31474610440191e-01 -9.69618913288146e-02 + 1.23975863942287e-01 -9.44280448102099e-02 + 1.16802749184431e-01 -9.18535438395069e-02 + 1.09944103628312e-01 -8.92509952511313e-02 + 1.03389408781769e-01 -8.66308123445910e-02 + 9.71308370165539e-02 -8.39954860233609e-02 + 9.11560721679215e-02 -8.13592848798782e-02 + 8.54542908808044e-02 -7.87305383346159e-02 + 8.00180666545727e-02 -7.61102855411794e-02 + 7.48391313805416e-02 -7.35007041248206e-02 + 6.99044672618202e-02 -7.09141781191481e-02 + 6.52067070691832e-02 -6.83519230706762e-02 + 6.07392424954862e-02 -6.58133554462769e-02 + 5.64930928024280e-02 -6.33017984766226e-02 + 5.24569572991442e-02 -6.08250779849666e-02 + 4.86221130367285e-02 -5.83868918197071e-02 + 4.49823460596244e-02 -5.59864560343402e-02 + 4.15301804539310e-02 -5.36247672450503e-02 + 3.82579950695821e-02 -5.13032623743594e-02 + 3.51625570515269e-02 -4.90186717767139e-02 + 3.22350341940797e-02 -4.67747111098731e-02 + 2.94706739479507e-02 -4.45699532871782e-02 + 2.68652635884344e-02 -4.24018741544779e-02 + 2.44078443113464e-02 -4.02776408958480e-02 + 2.20984640207057e-02 -3.81913117325201e-02 + 1.99286068772905e-02 -3.61458656494003e-02 + 1.78886051000986e-02 -3.41460393790200e-02 + 1.59736147648236e-02 -3.21910520842825e-02 + 1.41963248169982e-02 -3.02656313282727e-02 + 1.25496706681415e-02 -2.83713339374928e-02 + 1.10238089509565e-02 -2.65136290322583e-02 + 9.60994603666526e-03 -2.46968501264578e-02 + 8.31840638224305e-03 -2.29119847365721e-02 + 7.14473906501561e-03 -2.11596321806924e-02 + 6.07142773858956e-03 -1.94489558284614e-02 + 5.02095479314755e-03 -1.78284676359075e-02 + 4.07052936252363e-03 -1.62416823878627e-02 + 3.26675732394550e-03 -1.46669652532222e-02 + 2.60086639909572e-03 -1.31094409675135e-02 + 2.04659113841057e-03 -1.15834799838562e-02 + 1.61740833774663e-03 -1.00929007951897e-02 + 1.28430052733785e-03 -8.64546147138018e-03 + 1.03896470184135e-03 -7.24637446017240e-03 + 8.32244954951108e-04 -5.90184210383981e-03 + 6.45863424771667e-04 -4.61498629904353e-03 + 4.72525616035578e-04 -3.38324309673462e-03 + 3.09558914951618e-04 -2.20471775772868e-03 + 1.53031595141131e-04 -1.07763164451275e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.41765942444265e-04 1.07876734746816e-03 + 2.77260915023233e-04 2.20760240116620e-03 + 4.09470935011273e-04 3.38819787974237e-03 + 5.45218492795853e-04 4.62198472167337e-03 + 6.84093571834737e-04 5.91149661576953e-03 + 8.36758774549807e-04 7.25755110236601e-03 + 1.02061462676093e-03 8.66139581127218e-03 + 1.24460643645050e-03 1.01236069625043e-02 + 1.54735289564987e-03 1.16359583748955e-02 + 1.94827590345881e-03 1.32004049592946e-02 + 2.41467904557354e-03 1.48196430970726e-02 + 2.97098259697173e-03 1.64886303166274e-02 + 3.64124383843820e-03 1.81995381503576e-02 + 4.39529179166108e-03 1.99634360393339e-02 + 5.22406795011897e-03 2.17851406946601e-02 + 6.13698600614769e-03 2.36646078405167e-02 + 7.17410987019140e-03 2.55828219596820e-02 + 8.32842304087993e-03 2.75435510778320e-02 + 9.59131219128655e-03 2.95552627949844e-02 + 1.09478408183505e-02 3.16301854625420e-02 + 1.24307508516583e-02 3.37489783080069e-02 + 1.40422789896597e-02 3.59127851004197e-02 + 1.57848288401356e-02 3.81236137191742e-02 + 1.76547388957037e-02 4.03879633002972e-02 + 1.96698966782965e-02 4.26938721534300e-02 + 2.18347175363599e-02 4.50415568106981e-02 + 2.41573742654876e-02 4.74275480862424e-02 + 2.66466983068050e-02 4.98478170204272e-02 + 2.93064917407721e-02 5.23017100560943e-02 + 3.21361509006941e-02 5.47959496947939e-02 + 3.51436936917591e-02 5.73272553903874e-02 + 3.83391379656537e-02 5.98902741426422e-02 + 4.17269854406384e-02 6.24854160280220e-02 + 4.53161653683656e-02 6.51071579085839e-02 + 4.91149349915978e-02 6.77516277411291e-02 + 5.31303372381556e-02 7.04167187121216e-02 + 5.73691674513581e-02 7.31008471847997e-02 + 6.18365438914965e-02 7.58047470231046e-02 + 6.65433157865272e-02 7.85193653736369e-02 + 7.14981003435776e-02 8.12398811827316e-02 + 7.67090213292169e-02 8.39621272887638e-02 + 8.21841913994396e-02 8.66817753566551e-02 + 8.79317470886092e-02 8.93944420470735e-02 + 9.39610361057310e-02 9.20915744814130e-02 + 1.00282071757780e-01 9.47634187729109e-02 + 1.06902914976909e-01 9.74042162382649e-02 + 1.13831493702777e-01 1.00008660697825e-01 + 1.21076583776973e-01 1.02568512465685e-01 + 1.28645898145430e-01 1.05078140613599e-01 + 1.36549305535892e-01 1.07522146714848e-01 + 1.44797178904942e-01 1.09882186477971e-01 + 1.53395925849146e-01 1.12153160551866e-01 + 1.62349538981074e-01 1.14339608405577e-01 + 1.71669974779533e-01 1.16409028388090e-01 + 1.81362561139075e-01 1.18357709182673e-01 + 1.91433519300059e-01 1.20174308204553e-01 + 2.01889328721018e-01 1.21842004032849e-01 + 2.12735021052662e-01 1.23346815164814e-01 + 2.23974935306405e-01 1.24679810770959e-01 + 2.35611798969956e-01 1.25839807384917e-01 + 2.47649634445039e-01 1.26813525460247e-01 + 2.60091521207891e-01 1.27591377486296e-01 + 2.72940076812909e-01 1.28150783143232e-01 + 2.86197372136936e-01 1.28459846095811e-01 + 2.99863208681333e-01 1.28554513309168e-01 + 3.13937847814586e-01 1.28437691527728e-01 + 3.28420993840629e-01 1.28021838664428e-01 + 3.43312412920934e-01 1.27391818204762e-01 + 3.58609747558243e-01 1.26491657295981e-01 + 3.74312316126096e-01 1.25348627658720e-01 + 3.90417430439356e-01 1.23952469705305e-01 + 4.06923683399454e-01 1.22317024216285e-01 + 4.23825444141990e-01 1.20416190623998e-01 + 4.41121249476188e-01 1.18279125478633e-01 + 4.58804794993530e-01 1.15888388342467e-01 + 4.76873529287646e-01 1.13269697660651e-01 + 4.95317350378122e-01 1.10395398561973e-01 + 5.14132486975390e-01 1.07288497560568e-01 + 5.33313657161028e-01 1.03968733432954e-01 + 5.52852292823619e-01 1.00437117098471e-01 + 5.72737726915585e-01 9.66908716345374e-02 + 5.92961616680921e-01 9.27450930935231e-02 + 6.13514412552220e-01 8.86126983724494e-02 + 6.34383192460752e-01 8.42946877254491e-02 + 6.55559459727249e-01 7.98191668071398e-02 + 6.77030030471478e-01 7.51952573933346e-02 + 6.98785757089524e-01 7.04544842916706e-02 + 7.20809328241504e-01 6.55978599787740e-02 + 7.43086434763655e-01 6.06413223484750e-02 + 7.65606557900172e-01 5.56244413216586e-02 + 7.88351204996395e-01 5.05547724442251e-02 + 8.11303409848440e-01 4.54509465049422e-02 + 8.34446682573263e-01 4.03361471790026e-02 + 8.57760254752179e-01 3.52187541509884e-02 + 8.81224500119269e-01 3.01162996987959e-02 + 9.04821169472353e-01 2.50540940325699e-02 + 9.28525516028606e-01 2.00351564043640e-02 + 9.52313977817945e-01 1.50574814926821e-02 + 9.76148140493857e-01 1.01098707075356e-02 + 1.00000000000000e+00 5.21012334817001e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF22_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF22_Coords.txt new file mode 100644 index 000000000..0d69d9cd4 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF22_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.242455 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 4.39237444221766e-03 + 9.82598898370320e-01 4.27691521017344e-03 + 9.58064049539558e-01 4.20889133460475e-03 + 9.33508491892877e-01 4.19915957448136e-03 + 9.08962231407564e-01 5.41141234088468e-03 + 8.84488807211648e-01 5.48809084798658e-03 + 8.60160003604614e-01 4.56902541789335e-03 + 8.36032961203041e-01 2.74000899599207e-03 + 8.12160062116957e-01 6.21266374684243e-05 + 7.88595330687275e-01 -3.45870017990308e-03 + 7.65394552935255e-01 -7.82208254663672e-03 + 7.42589187888855e-01 -1.29287085682340e-02 + 7.20190654612502e-01 -1.86200688766980e-02 + 6.98201553914013e-01 -2.47583239430232e-02 + 6.76625136089615e-01 -3.12482250761501e-02 + 6.55450305649726e-01 -3.79698930427153e-02 + 6.34660980085563e-01 -4.48063774935809e-02 + 6.14235526633294e-01 -5.16396884638260e-02 + 5.94156245770258e-01 -5.83733676194589e-02 + 5.74409143100225e-01 -6.49263659778521e-02 + 5.54980950317789e-01 -7.12211645383774e-02 + 5.35865554460012e-01 -7.72012367683425e-02 + 5.17058455659687e-01 -8.28128575090641e-02 + 4.98562690233992e-01 -8.80258788770292e-02 + 4.80381168666172e-01 -9.28053950120080e-02 + 4.62517805488682e-01 -9.71191162360299e-02 + 4.44982720368127e-01 -1.00955800253499e-01 + 4.27790275183667e-01 -1.04327739624646e-01 + 4.10953832166956e-01 -1.07244658610850e-01 + 3.94484791442790e-01 -1.09718893391426e-01 + 3.78396305506648e-01 -1.11776536256118e-01 + 3.62695903805296e-01 -1.13419643259266e-01 + 3.47393299048079e-01 -1.14675600476480e-01 + 3.32495974394985e-01 -1.15570758225537e-01 + 3.18009665853214e-01 -1.16133279546174e-01 + 3.03937683272573e-01 -1.16371926352999e-01 + 2.90282936442751e-01 -1.16308496086208e-01 + 2.77046851902388e-01 -1.15981882176725e-01 + 2.64228167983928e-01 -1.15401246731523e-01 + 2.51826042340883e-01 -1.14590219359361e-01 + 2.39837506226939e-01 -1.13565204291305e-01 + 2.28258469759506e-01 -1.12351125290185e-01 + 2.17085230198335e-01 -1.10957349567926e-01 + 2.06313413211694e-01 -1.09392595432458e-01 + 1.95934859831405e-01 -1.07689092905454e-01 + 1.85946323653615e-01 -1.05843340482669e-01 + 1.76337338525841e-01 -1.03887303405002e-01 + 1.67102017862242e-01 -1.01825879358606e-01 + 1.58232266716158e-01 -9.96708755157496e-02 + 1.49718958093314e-01 -9.74371742203836e-02 + 1.41552971082803e-01 -9.51368365276628e-02 + 1.33723548403278e-01 -9.27866177169346e-02 + 1.26223206957124e-01 -9.03911689403064e-02 + 1.19043046639952e-01 -8.79579652489142e-02 + 1.12172252979825e-01 -8.54986593760685e-02 + 1.05600600593444e-01 -8.30229475967427e-02 + 9.93206146564738e-02 -8.05321225479128e-02 + 9.33200672212999e-02 -7.80408035499553e-02 + 8.75887541851949e-02 -7.55561043714170e-02 + 8.21190646388140e-02 -7.30792481348432e-02 + 7.69028565349313e-02 -7.06120489708384e-02 + 7.19277763078946e-02 -6.81661944610130e-02 + 6.71865918952045e-02 -6.57426406313505e-02 + 6.26726267613506e-02 -6.33408831449879e-02 + 5.83770388806705e-02 -6.09641454752517e-02 + 5.42888823462426e-02 -5.86200231750020e-02 + 5.03998488317858e-02 -5.63117093199634e-02 + 4.67039333077205e-02 -5.40380747703124e-02 + 4.31940107172217e-02 -5.17997104801581e-02 + 3.98625915228583e-02 -4.95980883426900e-02 + 3.67055917291048e-02 -4.74307281698325e-02 + 3.37148590434647e-02 -4.53006909382766e-02 + 3.08854208973429e-02 -4.32066506767234e-02 + 2.82130941093171e-02 -4.11460617567666e-02 + 2.56877538504605e-02 -3.91255814531066e-02 + 2.33089465580461e-02 -3.71394308149670e-02 + 2.10687730975388e-02 -3.51901413493980e-02 + 1.89574585830307e-02 -3.32830665965069e-02 + 1.69713245044683e-02 -3.14165327207784e-02 + 1.51216759989277e-02 -2.95751330090154e-02 + 1.34030181664643e-02 -2.77596507668995e-02 + 1.18051731750386e-02 -2.59764653547467e-02 + 1.03201353440805e-02 -2.42296306159195e-02 + 8.95758955009163e-03 -2.25093574154334e-02 + 7.71469055343569e-03 -2.08155175732264e-02 + 6.57373096288316e-03 -1.91584752641506e-02 + 5.45443534242466e-03 -1.75916905444972e-02 + 4.43876967049371e-03 -1.60531795687665e-02 + 3.57148694712801e-03 -1.45191250821283e-02 + 2.84986245061415e-03 -1.29933584529546e-02 + 2.24768190911006e-03 -1.14925814282864e-02 + 1.77728345375162e-03 -1.00209989400316e-02 + 1.41107849205696e-03 -8.58806843955596e-03 + 1.14286280097872e-03 -7.19943143571086e-03 + 9.15271227466797e-04 -5.86400340282695e-03 + 7.09422018067775e-04 -4.58567046730358e-03 + 5.18592873141586e-04 -3.36186231940687e-03 + 3.39366425180303e-04 -2.19080776561667e-03 + 1.67272714865556e-04 -1.07085039209637e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.55493664437203e-04 1.07203049214710e-03 + 3.03553863091923e-04 2.19439528119971e-03 + 4.47701653122589e-04 3.36844793120085e-03 + 5.95399756469576e-04 4.59552319297339e-03 + 7.47086670679706e-04 5.87805365824033e-03 + 9.13262588288392e-04 7.21668819295455e-03 + 1.11175880204898e-03 8.61264727756373e-03 + 1.35194694942591e-03 1.00656416428768e-02 + 1.67867040827158e-03 1.15657467096498e-02 + 2.10814985245985e-03 1.31154309576445e-02 + 2.60491529577590e-03 1.47177974652546e-02 + 3.19529596114321e-03 1.63662678137506e-02 + 3.90418699967769e-03 1.80533558939495e-02 + 4.69628682667734e-03 1.97911458125497e-02 + 5.56898257723963e-03 2.15839894279055e-02 + 6.52717629282464e-03 2.34319196459671e-02 + 7.61274412048935e-03 2.53141859225882e-02 + 8.81702208499432e-03 2.72354505952337e-02 + 1.01311926068891e-02 2.92045498282183e-02 + 1.15398404506657e-02 3.12341610859497e-02 + 1.30757653936926e-02 3.33043431123925e-02 + 1.47410498793621e-02 3.54160154325438e-02 + 1.65375135027976e-02 3.75716842951770e-02 + 1.84622610214211e-02 3.97773590280462e-02 + 2.05323082598394e-02 4.20214254049429e-02 + 2.27518774848374e-02 4.43040055188453e-02 + 2.51285282189773e-02 4.66221354016392e-02 + 2.76708138380896e-02 4.89718866835801e-02 + 3.03823773327287e-02 5.13528617420489e-02 + 3.32617535921773e-02 5.37727138990592e-02 + 3.63170099874178e-02 5.62280209168016e-02 + 3.95580657840018e-02 5.87135868821976e-02 + 4.29899339296670e-02 6.12295296000484e-02 + 4.66212164187439e-02 6.37706073535040e-02 + 5.04596844568100e-02 6.63336637005289e-02 + 5.45123915121579e-02 6.89166893616660e-02 + 5.87858834008449e-02 7.15185245335661e-02 + 6.32852916862030e-02 7.41400869912097e-02 + 6.80211114115546e-02 7.67728898057672e-02 + 7.30018080117375e-02 7.94125107470231e-02 + 7.82356286121331e-02 8.20548152651436e-02 + 8.37307322837082e-02 8.46956495241794e-02 + 8.94952278703335e-02 8.73307266370388e-02 + 9.55380173212955e-02 8.99527810003851e-02 + 1.01868559708846e-01 9.25536443882175e-02 + 1.08495469241360e-01 9.51268497343613e-02 + 1.15426868050764e-01 9.76668567680472e-02 + 1.22670915995298e-01 1.00167479613049e-01 + 1.30236169858522e-01 1.02620929535956e-01 + 1.38131957763976e-01 1.05014607301544e-01 + 1.46368041491579e-01 1.07333261493826e-01 + 1.54951446593826e-01 1.09570554702508e-01 + 1.63888464756554e-01 1.11722156375969e-01 + 1.73187634690306e-01 1.13772371744264e-01 + 1.82856459622775e-01 1.15708451630128e-01 + 1.92901653431043e-01 1.17517962245290e-01 + 2.03329643709447e-01 1.19186017466100e-01 + 2.14145469567290e-01 1.20701296751625e-01 + 2.25353451095177e-01 1.22057200875243e-01 + 2.36958096281000e-01 1.23240454280143e-01 + 2.48963444008511e-01 1.24236785655107e-01 + 2.61372369913534e-01 1.25039343547596e-01 + 2.74187527641475e-01 1.25626868237197e-01 + 2.87410995102884e-01 1.25977288773019e-01 + 3.01042926641486e-01 1.26098785172403e-01 + 3.15083653043165e-01 1.26007161073847e-01 + 3.29532556104451e-01 1.25622454125318e-01 + 3.44389274811488e-01 1.25007247925306e-01 + 3.59651658801695e-01 1.24128279507876e-01 + 3.75318729044951e-01 1.23001254833162e-01 + 3.91387705409549e-01 1.21617481551792e-01 + 4.07857211293955e-01 1.19991383296504e-01 + 4.24722648246555e-01 1.18109852630944e-01 + 4.41980546121966e-01 1.15979730409916e-01 + 4.59626523846088e-01 1.13603497182335e-01 + 4.77656313375202e-01 1.10991296253696e-01 + 4.96061349805041e-01 1.08128825002094e-01 + 5.14838697301142e-01 1.05043691754659e-01 + 5.33980779028685e-01 1.01739938000621e-01 + 5.53479897829522e-01 9.82249407157535e-02 + 5.73325823094711e-01 9.44981477832925e-02 + 5.93509808168119e-01 9.05722957681186e-02 + 6.14022205932776e-01 8.64600505946189e-02 + 6.34850189751183e-01 8.21630065691887e-02 + 6.55986458934565e-01 7.77147980064997e-02 + 6.77417998604050e-01 7.31251911965103e-02 + 6.99135096912842e-01 6.84239677655767e-02 + 7.21122039261269e-01 6.36179045126189e-02 + 7.43363376672290e-01 5.87188959449862e-02 + 7.65849662828068e-01 5.37708975370520e-02 + 7.88562269448255e-01 4.87802565328234e-02 + 8.11484312275179e-01 4.37653881612387e-02 + 8.34599696097280e-01 3.87519748942673e-02 + 8.57886462485920e-01 3.37426019738463e-02 + 8.81324805887050e-01 2.87530858434934e-02 + 9.04896510197872e-01 2.38096880262284e-02 + 9.28576874697262e-01 1.89116613216723e-02 + 9.52342780211831e-01 1.40450052886173e-02 + 9.76158964565827e-01 9.20103322711564e-03 + 1.00000000000000e+00 4.39486888837050e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF23_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF23_Coords.txt new file mode 100644 index 000000000..903b9fd77 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF23_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.231514 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 3.14164709086581e-03 + 9.80279843621137e-01 3.37093186699786e-03 + 9.55943925521054e-01 3.92188694417831e-03 + 9.31623789418195e-01 4.63859374784729e-03 + 9.07324213429386e-01 5.71690199892681e-03 + 8.83100714508728e-01 5.72616095958140e-03 + 8.59016664742874e-01 4.84376256114249e-03 + 8.35124258154259e-01 3.14345481471414e-03 + 8.11470814647855e-01 6.82129534833395e-04 + 7.88105739045114e-01 -2.52521440262624e-03 + 7.65077741270482e-01 -6.46973102366157e-03 + 7.42414220795459e-01 -1.10539821688809e-02 + 7.20131487019097e-01 -1.61950861513006e-02 + 6.98226049663766e-01 -2.18882921508533e-02 + 6.76704397466323e-01 -2.79196443949079e-02 + 6.55577330796680e-01 -3.41892343091300e-02 + 6.34832391969572e-01 -4.05944441341662e-02 + 6.14453075743782e-01 -4.70274846891655e-02 + 5.94425864571657e-01 -5.33982033538522e-02 + 5.74738907723758e-01 -5.96242272152668e-02 + 5.55379601499586e-01 -6.56220503516305e-02 + 5.36343962488494e-01 -7.13407263591351e-02 + 5.17628670661292e-01 -7.67282208081714e-02 + 4.99235705857451e-01 -8.17513745542707e-02 + 4.81163556452309e-01 -8.63598628527734e-02 + 4.63413584805628e-01 -9.05130963928114e-02 + 4.45995236146116e-01 -9.42012336352495e-02 + 4.28920561427827e-01 -9.74296867708491e-02 + 4.12202500840622e-01 -1.00209215862823e-01 + 3.95852462142733e-01 -1.02556060831702e-01 + 3.79883165638098e-01 -1.04497758134921e-01 + 3.64302227962996e-01 -1.06041368705650e-01 + 3.49118151601446e-01 -1.07209810437774e-01 + 3.34338347200024e-01 -1.08037399462772e-01 + 3.19967496021957e-01 -1.08543424142584e-01 + 3.06008614843672e-01 -1.08721882037854e-01 + 2.92463931537407e-01 -1.08645344308648e-01 + 2.79334199428846e-01 -1.08306386434819e-01 + 2.66617880571701e-01 -1.07728675974151e-01 + 2.54313171594762e-01 -1.06938847878270e-01 + 2.42416481589523e-01 -1.05954200493195e-01 + 2.30923904525126e-01 -1.04792564232404e-01 + 2.19830605113921e-01 -1.03470280711336e-01 + 2.09131305940537e-01 -1.01997391084052e-01 + 1.98818335272625e-01 -1.00399194950011e-01 + 1.88887604681496e-01 -9.86727271407788e-02 + 1.79329395429576e-01 -9.68450955178902e-02 + 1.70136730779753e-01 -9.49257952688274e-02 + 1.61301115723487e-01 -9.29265198989624e-02 + 1.52814190527835e-01 -9.08574876905025e-02 + 1.44666895887091e-01 -8.87290995972626e-02 + 1.36848176066310e-01 -8.65593313715646e-02 + 1.29350029999074e-01 -8.43537492491267e-02 + 1.22164407888898e-01 -8.21162274517494e-02 + 1.15280758672492e-01 -7.98574920341379e-02 + 1.08689215198177e-01 -7.75861409072666e-02 + 1.02382799710047e-01 -7.53012209575166e-02 + 9.63499105708259e-02 -7.30163120407146e-02 + 9.05808173293531e-02 -7.07378324938991e-02 + 8.50674840632457e-02 -6.84679548104070e-02 + 7.98016781943633e-02 -6.62089221441190e-02 + 7.47728304943601e-02 -6.39687775289667e-02 + 6.99734518162192e-02 -6.17487937853994e-02 + 6.53964421097532e-02 -5.95491472507193e-02 + 6.10332285217897e-02 -5.73728871358995e-02 + 5.68737185184653e-02 -5.52267184058097e-02 + 5.29103950371265e-02 -5.31123705443158e-02 + 4.91373670142232e-02 -5.10283733442761e-02 + 4.55481616498509e-02 -4.89742915992438e-02 + 4.21356382535017e-02 -4.69515919649514e-02 + 3.88946377463157e-02 -4.49591216057215e-02 + 3.58176722887623e-02 -4.29992603475358e-02 + 3.28998953921728e-02 -4.10703843739390e-02 + 3.01366012681831e-02 -3.91710431716560e-02 + 2.75192143327319e-02 -3.73060918652035e-02 + 2.50458221581523e-02 -3.54710129908615e-02 + 2.27104513888415e-02 -3.36662588493135e-02 + 2.05031268608585e-02 -3.18984319509089e-02 + 1.84207128999711e-02 -3.01655275714680e-02 + 1.64713111366743e-02 -2.84535263798896e-02 + 1.46513203167892e-02 -2.67618161426540e-02 + 1.29483757760811e-02 -2.51003045753720e-02 + 1.13575028069490e-02 -2.34700738895198e-02 + 9.88802821492492e-03 -2.18593921706561e-02 + 8.54153917196611e-03 -2.02644223100314e-02 + 7.29799246886196e-03 -1.87001204573979e-02 + 6.08580595174246e-03 -1.72176782324225e-02 + 4.97575171843967e-03 -1.57601595350327e-02 + 4.01655344604979e-03 -1.42941237974082e-02 + 3.21329420039909e-03 -1.28204878478597e-02 + 2.53971255805517e-03 -1.13605650611067e-02 + 2.00933272538806e-03 -9.91854994659959e-03 + 1.59758082775112e-03 -8.50676891607773e-03 + 1.29710460061136e-03 -7.13196928046409e-03 + 1.03992856624535e-03 -5.80898022992108e-03 + 8.07459075991488e-04 -4.54214951235773e-03 + 5.91318220544229e-04 -3.32943000440034e-03 + 3.87453479144414e-04 -2.16912917229968e-03 + 1.90910985616298e-04 -1.05964271101096e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.86170821040762e-04 1.06035689678901e-03 + 3.62642767840697e-04 2.16981982713333e-03 + 5.35422199400606e-04 3.33090243852494e-03 + 7.11737211732635e-04 4.54529066175062e-03 + 8.94046743140213e-04 5.81457906143063e-03 + 1.09349163479700e-03 7.13886785646246e-03 + 1.32896225194513e-03 8.51928978911018e-03 + 1.61254518594349e-03 9.95302156114245e-03 + 2.00015152694517e-03 1.14257507932334e-02 + 2.49846960061286e-03 1.29414955347223e-02 + 3.07269789601322e-03 1.45034084911048e-02 + 3.75100433060781e-03 1.61014691995321e-02 + 4.55124223783286e-03 1.77306829754643e-02 + 5.43742727664229e-03 1.94052234035295e-02 + 6.39992941232237e-03 2.11361670238686e-02 + 7.45360665937082e-03 2.29147102512028e-02 + 8.63301860232616e-03 2.47230706508417e-02 + 9.93141149591043e-03 2.65653834855744e-02 + 1.13390225258352e-02 2.84513892521053e-02 + 1.28446417253905e-02 3.03911310756394e-02 + 1.44755065750498e-02 3.23677426937526e-02 + 1.62359306691377e-02 3.43803831207179e-02 + 1.81254504565081e-02 3.64334131654601e-02 + 2.01442417241827e-02 3.85302388549292e-02 + 2.23060732584213e-02 4.06620052364922e-02 + 2.46155267387546e-02 4.28302526625826e-02 + 2.70772478224145e-02 4.50460505286275e-02 + 2.96998778772653e-02 4.72928193248523e-02 + 3.24877602895990e-02 4.95700072658752e-02 + 3.54404175430805e-02 5.18845262567175e-02 + 3.85658732000361e-02 5.42320555539290e-02 + 4.18729654737074e-02 5.66082573347908e-02 + 4.53674450638089e-02 5.90132018023025e-02 + 4.90575339135369e-02 6.14432218530316e-02 + 5.29491802234002e-02 6.38989525121519e-02 + 5.70497400438688e-02 6.63777191726729e-02 + 6.13661226928509e-02 6.88775135440849e-02 + 6.59042696810103e-02 7.13974785350751e-02 + 7.06738487709432e-02 7.39302826056860e-02 + 7.56831849510330e-02 7.64723533316805e-02 + 8.09405523914140e-02 7.90207523327702e-02 + 8.64541607324433e-02 8.15727426416133e-02 + 9.22326117601800e-02 8.41234613904721e-02 + 9.82833368850633e-02 8.66677173847098e-02 + 1.04614985493475e-01 8.91989028298034e-02 + 1.11237025005994e-01 9.17091766543691e-02 + 1.18159245875010e-01 9.41891175813620e-02 + 1.25388791896565e-01 9.66368235837927e-02 + 1.32936125243947e-01 9.90384565884722e-02 + 1.40808461737593e-01 1.01391719593443e-01 + 1.49013525684208e-01 1.03690815207649e-01 + 1.57560201418647e-01 1.05921513288698e-01 + 1.66463009151855e-01 1.08044444160188e-01 + 1.75718109931116e-01 1.10106067078870e-01 + 1.85340118385505e-01 1.12060005208043e-01 + 1.95336842560961e-01 1.13889368503438e-01 + 2.05714203477650e-01 1.15582591958563e-01 + 2.16476430944172e-01 1.17137705635623e-01 + 2.27627610633846e-01 1.18554502355252e-01 + 2.39177312754504e-01 1.19782432537493e-01 + 2.51128854722822e-01 1.20805682658983e-01 + 2.63484061812035e-01 1.21618749014640e-01 + 2.76245305481901e-01 1.22206844691033e-01 + 2.89414321834070e-01 1.22582156104794e-01 + 3.02992322993242e-01 1.22693055637009e-01 + 3.16979607003549e-01 1.22641401019041e-01 + 3.31374467000310e-01 1.22312820900618e-01 + 3.46176078239721e-01 1.21706090537569e-01 + 3.61383118505992e-01 1.20854159093177e-01 + 3.76993265602882e-01 1.19736520954228e-01 + 3.93003647202626e-01 1.18351088224552e-01 + 4.09412534078111e-01 1.16711070290209e-01 + 4.26218767384124e-01 1.14839970064705e-01 + 4.43412577591434e-01 1.12684692304759e-01 + 4.60995725137317e-01 1.10302312137761e-01 + 4.78946899164060e-01 1.07656372338143e-01 + 4.97262221298911e-01 1.04773528471014e-01 + 5.15956355137773e-01 1.01692722813821e-01 + 5.35013666730069e-01 9.83731587284727e-02 + 5.54430270560117e-01 9.48450926193119e-02 + 5.74197525451993e-01 9.11122324777171e-02 + 5.94304618066785e-01 8.71784248591389e-02 + 6.14741575153263e-01 8.30562388497477e-02 + 6.35495942904975e-01 7.87482050539390e-02 + 6.56563081373928e-01 7.43024549294611e-02 + 6.77929533868783e-01 6.97272591887821e-02 + 6.99583264662773e-01 6.50431586176580e-02 + 7.21512911516956e-01 6.02777354633279e-02 + 7.43699425393981e-01 5.54283758397814e-02 + 7.66135467124753e-01 5.05506129994363e-02 + 7.88802217966539e-01 4.56510491404328e-02 + 8.11682735769611e-01 4.07496210124617e-02 + 8.34760928997556e-01 3.58736836364619e-02 + 8.58013159003960e-01 3.10178274206325e-02 + 8.81419642769600e-01 2.61980391128371e-02 + 9.04961895863587e-01 2.14410140886795e-02 + 9.28616108711845e-01 1.67483035426849e-02 + 9.52360127786920e-01 1.21444198480413e-02 + 9.76162718779950e-01 7.59990479406144e-03 + 1.00000000000000e+00 3.14164709086581e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF24_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF24_Coords.txt new file mode 100644 index 000000000..4d0d7b9c9 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF24_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.223531 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 2.09636567820698e-03 + 9.78395699837852e-01 2.94678991095680e-03 + 9.54216726770341e-01 3.91505146315983e-03 + 9.30083208264529e-01 4.89490493795593e-03 + 9.05979094821583e-01 5.89319191936660e-03 + 8.81955972299711e-01 5.85678258779249e-03 + 8.58070787328914e-01 4.99422508319484e-03 + 8.34372292221826e-01 3.37064523717272e-03 + 8.10903000741124e-01 1.04455375332603e-03 + 7.87706603803216e-01 -1.95623892863833e-03 + 7.64823864817724e-01 -5.60805376815278e-03 + 7.42276641711228e-01 -9.80445484685045e-03 + 7.20085414463537e-01 -1.45222930394745e-02 + 6.98240702313045e-01 -1.98932968907372e-02 + 6.76751661246291e-01 -2.55745708798207e-02 + 6.55651565180124e-01 -3.14867006928653e-02 + 6.34930831158121e-01 -3.75426273623463e-02 + 6.14577187523525e-01 -4.36473294157994e-02 + 5.94580224542099e-01 -4.97186001925300e-02 + 5.74929693789636e-01 -5.56736888466812e-02 + 5.55613751417516e-01 -6.14247695225996e-02 + 5.36630258570997e-01 -6.69269054693940e-02 + 5.17977309097829e-01 -7.21315733961264e-02 + 4.99656330311268e-01 -7.70030899076624e-02 + 4.81662103269460e-01 -8.14750589691677e-02 + 4.63993804902583e-01 -8.54988989153066e-02 + 4.46660383446113e-01 -8.90671746137639e-02 + 4.29671741437313e-01 -9.21775546534622e-02 + 4.13040372937657e-01 -9.48415917063342e-02 + 3.96777717683580e-01 -9.70788754307114e-02 + 3.80896197713699e-01 -9.89191126786307e-02 + 3.65403623454440e-01 -1.00374769852226e-01 + 3.50307461628971e-01 -1.01463857473843e-01 + 3.35615126412025e-01 -1.02228426983427e-01 + 3.21330415399015e-01 -1.02679139872940e-01 + 3.07456188205105e-01 -1.02791241860388e-01 + 2.93994113722854e-01 -1.02696927262108e-01 + 2.80944421082602e-01 -1.02335461909592e-01 + 2.68305435365336e-01 -1.01746471489355e-01 + 2.56074515908009e-01 -1.00960518880420e-01 + 2.44247621019148e-01 -9.99956495000045e-02 + 2.32821155029523e-01 -9.88616425990470e-02 + 2.21789216534516e-01 -9.75834397331326e-02 + 2.11145695660251e-01 -9.61733219271607e-02 + 2.00883604913530e-01 -9.46478574177827e-02 + 1.90997933614158e-01 -9.30064110357992e-02 + 1.81480031363744e-01 -9.12689191235221e-02 + 1.72321694357575e-01 -8.94515301806377e-02 + 1.63513901198780e-01 -8.75670596171673e-02 + 1.55049248222575e-01 -8.56199145564690e-02 + 1.46918776493183e-01 -8.36188890781328e-02 + 1.39110995889515e-01 -8.15839925301791e-02 + 1.31617329261670e-01 -7.95222392873676e-02 + 1.24430578462840e-01 -7.74337033028954e-02 + 1.17540317783270e-01 -7.53285851225594e-02 + 1.10936942892314e-01 -7.32145913470210e-02 + 1.04613851414581e-01 -7.10888196756205e-02 + 9.85601730484696e-02 -6.89631510237143e-02 + 9.27663664939644e-02 -6.68439402837753e-02 + 8.72239790747736e-02 -6.47345217905203e-02 + 8.19245785715550e-02 -6.26379902955301e-02 + 7.68593320313753e-02 -6.05581742116098e-02 + 7.20203305709811e-02 -5.84971030020556e-02 + 6.73999834669114e-02 -5.64559231057973e-02 + 6.29899694117018e-02 -5.44375170821987e-02 + 5.87810527688869e-02 -5.24474572859635e-02 + 5.47664166898839e-02 -5.04858940589617e-02 + 5.09401466890745e-02 -4.85512467871342e-02 + 4.72963337838480e-02 -4.66420572388768e-02 + 4.38280947549915e-02 -4.47599211429150e-02 + 4.05293285032865e-02 -4.29050878447319e-02 + 3.73929375192032e-02 -4.10794701747793e-02 + 3.44143445854975e-02 -3.92809878126903e-02 + 3.15880786735011e-02 -3.75098176802121e-02 + 2.89069667837414e-02 -3.57686361671177e-02 + 2.63676613682877e-02 -3.40545827041239e-02 + 2.39663273833750e-02 -3.23654668314156e-02 + 2.16927517460512e-02 -3.07090734736828e-02 + 1.95437663988235e-02 -2.90835556456538e-02 + 1.75240451270103e-02 -2.74773255403624e-02 + 1.56313768355761e-02 -2.58885314484153e-02 + 1.38506663581566e-02 -2.43311785978674e-02 + 1.21801319402952e-02 -2.28025040801685e-02 + 1.06288400048273e-02 -2.12886879945087e-02 + 9.20281557267101e-03 -1.97812191802595e-02 + 7.87893913584608e-03 -1.83005753243538e-02 + 6.60101879614264e-03 -1.68893066196952e-02 + 5.41973472100169e-03 -1.55038064715349e-02 + 4.38939648631730e-03 -1.40989748790954e-02 + 3.52083726628762e-03 -1.26726426676053e-02 + 2.78825691349053e-03 -1.12500652529485e-02 + 2.20781675493239e-03 -9.83454867519633e-03 + 1.75920211593780e-03 -8.44089611825786e-03 + 1.43149884100525e-03 -7.07712217653440e-03 + 1.14904925489409e-03 -5.76419770311152e-03 + 8.94441711358958e-04 -4.50646315206049e-03 + 6.56491909082905e-04 -3.30264296053661e-03 + 4.30928767715133e-04 -2.15106595924321e-03 + 2.12559830250313e-04 -1.05014184149495e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.16540383715760e-04 1.05014061986584e-03 + 4.21457369515375e-04 2.14824707720800e-03 + 6.23802925796491e-04 3.29790156686099e-03 + 8.29744198021373e-04 4.50126335542609e-03 + 1.04388806099104e-03 5.75901514253011e-03 + 1.27828486202899e-03 7.07066283672817e-03 + 1.55265244909006e-03 8.43724987325952e-03 + 1.88258433654205e-03 9.85322039436501e-03 + 2.33336704166523e-03 1.12997283631026e-02 + 2.90036729853721e-03 1.27824354677352e-02 + 3.55375851878485e-03 1.43041535523330e-02 + 4.32183826485079e-03 1.58514438278535e-02 + 5.21078475903084e-03 1.74227159260200e-02 + 6.18946862499991e-03 1.90341428761508e-02 + 7.23078511900339e-03 2.07071729479997e-02 + 8.36958648288914e-03 2.24200173521646e-02 + 9.62748456707961e-03 2.41612190866688e-02 + 1.10027397015756e-02 2.59331844145404e-02 + 1.24846457620015e-02 2.77464785944014e-02 + 1.40691046624792e-02 2.96066860057293e-02 + 1.57750789162673e-02 3.15022048289148e-02 + 1.76101478182203e-02 3.34298339695563e-02 + 1.95713115674194e-02 3.53960692903431e-02 + 2.16625037079608e-02 3.74009232197792e-02 + 2.38937230620708e-02 3.94392278090164e-02 + 2.62702791522278e-02 4.15139228725904e-02 + 2.87929599471375e-02 4.36519212402147e-02 + 3.14709080219945e-02 4.58227992699536e-02 + 3.43098027468300e-02 4.80254381783285e-02 + 3.73112635727700e-02 5.02648103116696e-02 + 4.04832338277387e-02 5.25356753635604e-02 + 4.38332219634206e-02 5.48348380585812e-02 + 4.73676558895215e-02 5.71622944832492e-02 + 5.10945402714985e-02 5.95160021240830e-02 + 5.50178036993556e-02 6.19007850750484e-02 + 5.91452534431199e-02 6.43130200356600e-02 + 6.34845299219449e-02 6.67492898339827e-02 + 6.80426597552198e-02 6.92063999070007e-02 + 7.28285066761746e-02 7.16781557295573e-02 + 7.78503238753912e-02 7.41616855999275e-02 + 8.31163723176290e-02 7.66552771633080e-02 + 8.86349125930288e-02 7.91575712123625e-02 + 9.44151901737144e-02 8.16627951473614e-02 + 1.00463113786598e-01 8.41677567766308e-02 + 1.06786754907222e-01 8.66667767735127e-02 + 1.13396248349931e-01 8.91506980382041e-02 + 1.20303320398961e-01 9.16054991516429e-02 + 1.27514253538744e-01 9.40330250986703e-02 + 1.35041293626395e-01 9.64134779689239e-02 + 1.42889393569120e-01 9.87549442504319e-02 + 1.51064158531864e-01 1.01060824678662e-01 + 1.59576322437344e-01 1.03308419282613e-01 + 1.68448897968466e-01 1.05423144235216e-01 + 1.77665194040225e-01 1.07513055678293e-01 + 1.87247036169183e-01 1.09498232255003e-01 + 1.97203201899720e-01 1.11357421939218e-01 + 2.07538998076732e-01 1.13081913438107e-01 + 2.18257640890729e-01 1.14678716090062e-01 + 2.29362928178344e-01 1.16153188622970e-01 + 2.40869339119377e-01 1.17420090072410e-01 + 2.52779277093464e-01 1.18462774311048e-01 + 2.65093409303790e-01 1.19276153440005e-01 + 2.77813726493087e-01 1.19851802754907e-01 + 2.90941530941588e-01 1.20233818613684e-01 + 3.04479068144111e-01 1.20320346970601e-01 + 3.18426540606841e-01 1.20299118935200e-01 + 3.32781133273936e-01 1.20015038014777e-01 + 3.47541535120172e-01 1.19410065138992e-01 + 3.62707280830201e-01 1.18576190547347e-01 + 3.78274611566517e-01 1.17460229133376e-01 + 3.94240601744738e-01 1.16066226980785e-01 + 4.10603060351689e-01 1.14405673732493e-01 + 4.27364305134307e-01 1.12534907834704e-01 + 4.44508271094039e-01 1.10347250434743e-01 + 4.62042876784379e-01 1.07948760640026e-01 + 4.79928846738470e-01 1.05259959929406e-01 + 4.98167087383119e-01 1.02345431426043e-01 + 5.16790843748493e-01 9.92545715635873e-02 + 5.35776423786089e-01 9.59047690350737e-02 + 5.55123954210263e-01 9.23483820392275e-02 + 5.74826338674077e-01 8.85929169189832e-02 + 5.94870613014148e-01 8.46332742346236e-02 + 6.15246534066417e-01 8.04819615710577e-02 + 6.35942039954152e-01 7.61421788084823e-02 + 6.56954924662807e-01 7.16758313950091e-02 + 6.78271149527722e-01 6.70892193332850e-02 + 6.99876368344496e-01 6.23925587068987e-02 + 7.21763325630351e-01 5.76352066831742e-02 + 7.43909577088095e-01 5.27993723795751e-02 + 7.66309586412977e-01 4.79519195690775e-02 + 7.88944389726961e-01 4.31007475353911e-02 + 8.11796896464694e-01 3.82680430930391e-02 + 8.34850792538832e-01 3.34815238504205e-02 + 8.58081222675927e-01 2.87299520473818e-02 + 8.81468455750426e-01 2.40311017423853e-02 + 9.04993731775046e-01 1.94114563889986e-02 + 9.28633890085542e-01 1.48794686663190e-02 + 9.52367239352260e-01 1.05030666573558e-02 + 9.76164057194066e-01 6.22804603124215e-03 + 1.00000000000000e+00 2.09636567820698e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF25_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF25_Coords.txt new file mode 100644 index 000000000..6c4b404db --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF25_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.213736 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 1.09238588038925e-03 + 9.76903226213839e-01 2.67148988248364e-03 + 9.52872222701070e-01 4.04842369982731e-03 + 9.28882541070355e-01 5.17132251244705e-03 + 9.04929057514617e-01 6.01068628835809e-03 + 8.81061019046271e-01 5.94151902148743e-03 + 8.57330489548757e-01 5.09173982561719e-03 + 8.33783705712341e-01 3.52006012724870e-03 + 8.10459251026056e-01 1.28765254330462e-03 + 7.87395827221062e-01 -1.56621102043441e-03 + 7.64627406682910e-01 -5.00408944614165e-03 + 7.42170916505108e-01 -8.90958566262860e-03 + 7.20050138120172e-01 -1.32633229109779e-02 + 6.98269861344308e-01 -1.81171068742127e-02 + 6.76842528684164e-01 -2.32678327779095e-02 + 6.55790568902084e-01 -2.86453999507255e-02 + 6.35110958405848e-01 -3.41709701468339e-02 + 6.14799016053250e-01 -3.97672464500657e-02 + 5.94848998888227e-01 -4.53612617736454e-02 + 5.75252346236441e-01 -5.08736483156865e-02 + 5.55997539156182e-01 -5.62172789603474e-02 + 5.37084130821823e-01 -6.13517979016531e-02 + 5.18511351990200e-01 -6.62354990262734e-02 + 5.00279278954941e-01 -7.08299789534245e-02 + 4.82378362041894e-01 -7.50537809625179e-02 + 4.64806337253165e-01 -7.88530980644161e-02 + 4.47572180895532e-01 -8.22194701320987e-02 + 4.30684043058222e-01 -8.51419709514806e-02 + 4.14154415131696e-01 -8.76339207777752e-02 + 3.97994524498208e-01 -8.97131364312116e-02 + 3.82216617674753e-01 -9.14144279601889e-02 + 3.66828592506947e-01 -9.27561035138750e-02 + 3.51836341361407e-01 -9.37436341505709e-02 + 3.37247065153923e-01 -9.44273361307716e-02 + 3.23063741517343e-01 -9.48134659987260e-02 + 3.09288898087955e-01 -9.48595233836057e-02 + 2.95923380310033e-01 -9.47541465360130e-02 + 2.82966765206558e-01 -9.43804327075067e-02 + 2.70417169945482e-01 -9.37959674517298e-02 + 2.58270988680904e-01 -9.30359778005341e-02 + 2.46523649112767e-01 -9.21200269411678e-02 + 2.35171815457862e-01 -9.10478079713837e-02 + 2.24208708493827e-01 -8.98481190063254e-02 + 2.13627360732620e-01 -8.85379212693678e-02 + 2.03421343261604e-01 -8.71260670925027e-02 + 1.93584578229739e-01 -8.56151515582639e-02 + 1.84109685996519e-01 -8.40154524440743e-02 + 1.74987455120352e-01 -8.23477828857158e-02 + 1.66208339233723e-01 -8.06271262263147e-02 + 1.57765759931140e-01 -7.88526455854152e-02 + 1.49650838937005e-01 -7.70318355216273e-02 + 1.41851896777189e-01 -7.51857824293144e-02 + 1.34359986967858e-01 -7.33215908233761e-02 + 1.27168676798636e-01 -7.14357322729287e-02 + 1.20267748597440e-01 -6.95377983699213e-02 + 1.13647895254374e-01 -6.76345622356746e-02 + 1.07302720967191e-01 -6.57217440600855e-02 + 1.01222177882387e-01 -6.38092993584212e-02 + 9.53971439915622e-02 -6.19024262874950e-02 + 8.98189785972249e-02 -6.00047799915275e-02 + 8.44792794858798e-02 -5.81194216407847e-02 + 7.93707119160645e-02 -5.62470428193229e-02 + 7.44848588733515e-02 -5.43909495469323e-02 + 6.98136238388013e-02 -5.25535469442365e-02 + 6.53490463462167e-02 -5.07372478602062e-02 + 6.10829421039010e-02 -4.89458921203962e-02 + 5.70091775354025e-02 -4.71779768222468e-02 + 5.31217814930846e-02 -4.54318764629362e-02 + 4.94153724019659e-02 -4.37052554340574e-02 + 4.58832423882430e-02 -4.20001144924758e-02 + 4.25183870091026e-02 -4.03182286297972e-02 + 3.93141468827927e-02 -3.86609103983324e-02 + 3.62662021716620e-02 -3.70256770176751e-02 + 3.33683104033648e-02 -3.54143575734069e-02 + 3.06147179136145e-02 -3.38273188319418e-02 + 2.80005877115526e-02 -3.22636647354102e-02 + 2.55240994762660e-02 -3.07186803377705e-02 + 2.31751914296414e-02 -2.92006866523032e-02 + 2.09507983378418e-02 -2.77074791354808e-02 + 1.88517007227843e-02 -2.62307956124852e-02 + 1.68767621365255e-02 -2.47678227026264e-02 + 1.50085924206303e-02 -2.33360768219517e-02 + 1.32481518101452e-02 -2.19295678982434e-02 + 1.16043886570896e-02 -2.05318696551216e-02 + 1.00873306523286e-02 -1.91299054960681e-02 + 8.67071198191308e-03 -1.77504519645819e-02 + 7.31683809922841e-03 -1.64258294588979e-02 + 6.05230986481660e-03 -1.51287954251135e-02 + 4.93545181017687e-03 -1.38023796102463e-02 + 3.98101869617482e-03 -1.24420705389490e-02 + 3.16598292016322e-03 -1.10751439975603e-02 + 2.51203854045893e-03 -9.70136565274227e-03 + 2.00634848621310e-03 -8.33750321104201e-03 + 1.63336923904218e-03 -6.99355795452978e-03 + 1.30960631152058e-03 -5.69808376403125e-03 + 1.01918759121888e-03 -4.45556288260364e-03 + 7.47391160804607e-04 -3.26581017584031e-03 + 4.89785083599789e-04 -2.12732112401528e-03 + 2.41051610784391e-04 -1.03884148956527e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.41676844783358e-04 1.04014441142690e-03 + 4.70211697368836e-04 2.13010906350525e-03 + 6.97311940248269e-04 3.27155401949758e-03 + 9.28075488532447e-04 4.46614540053689e-03 + 1.16892163285832e-03 5.71471366770792e-03 + 1.43271561145039e-03 7.01626123070890e-03 + 1.73980756702100e-03 8.37175710877862e-03 + 2.10888218785366e-03 9.77333253109168e-03 + 2.61262025427579e-03 1.11983458623548e-02 + 3.23657886427487e-03 1.26538439662429e-02 + 3.95604914912345e-03 1.41422668530147e-02 + 4.79904318706323e-03 1.56473439199571e-02 + 5.76098954965907e-03 1.71705192949529e-02 + 6.81605362537848e-03 1.87296050961129e-02 + 7.92024018654437e-03 2.03554898485849e-02 + 9.12728921680796e-03 2.20146613741597e-02 + 1.04467800937699e-02 2.37016791753452e-02 + 1.18818454572133e-02 2.54172403537964e-02 + 1.34209980945767e-02 2.71725758901607e-02 + 1.50667083845446e-02 2.89691526072969e-02 + 1.68304516637451e-02 3.08002382214027e-02 + 1.87227525836880e-02 3.26605359132443e-02 + 2.07384497475359e-02 3.45583772737000e-02 + 2.28847527005894e-02 3.64907771903442e-02 + 2.51684123363907e-02 3.84558395915708e-02 + 2.75954262821949e-02 4.04542640584122e-02 + 3.01631638082622e-02 4.25063957211810e-02 + 3.28812782013830e-02 4.45931297989291e-02 + 3.57567035528224e-02 4.67129110307798e-02 + 3.87930511495875e-02 4.88684049803034e-02 + 4.19981896653617e-02 5.10548461858478e-02 + 4.53784680764545e-02 5.32710252836897e-02 + 4.89408634658199e-02 5.55159883094184e-02 + 5.26932372415840e-02 5.77874983600207e-02 + 5.66377977117772e-02 6.00922832542253e-02 + 6.07827606877789e-02 6.24267977874438e-02 + 6.51364568498496e-02 6.47873896021802e-02 + 6.97068756982739e-02 6.71704517692104e-02 + 7.45022191308863e-02 6.95714114072603e-02 + 7.95306962425936e-02 7.19874119993647e-02 + 8.48005483628413e-02 7.44163300007133e-02 + 9.03200786323290e-02 7.68560622698172e-02 + 9.60991005103643e-02 7.92992787328224e-02 + 1.02142247986727e-01 8.17484473844394e-02 + 1.08457165877932e-01 8.42009806417214e-02 + 1.15054500581386e-01 8.66469717993341e-02 + 1.21947644294289e-01 8.90689828123175e-02 + 1.29142199747012e-01 9.14699758679989e-02 + 1.36651864831382e-01 9.38260848888112e-02 + 1.44479681455477e-01 9.61512799593133e-02 + 1.52629478577463e-01 9.84559652983719e-02 + 1.61113521846671e-01 1.00715133164952e-01 + 1.69961926077353e-01 1.02832836976655e-01 + 1.79147234746087e-01 1.04951851930274e-01 + 1.88697275631109e-01 1.06972089275624e-01 + 1.98621601845366e-01 1.08870641476819e-01 + 2.08924986358690e-01 1.10643625876356e-01 + 2.19609758536493e-01 1.12305561911886e-01 + 2.30679465333784e-01 1.13861594788908e-01 + 2.42152621659704e-01 1.15205727796915e-01 + 2.54030829279849e-01 1.16324334892945e-01 + 2.66313770616538e-01 1.17224760469055e-01 + 2.79003098364011e-01 1.17904062380264e-01 + 2.92099734184348e-01 1.18411464406344e-01 + 3.05606774834450e-01 1.18586795803620e-01 + 3.19524329351650e-01 1.18588636528274e-01 + 3.33848659298870e-01 1.18338809209031e-01 + 3.48578045240656e-01 1.17733792455315e-01 + 3.63712738814712e-01 1.16912861495448e-01 + 3.79247768753750e-01 1.15796561662418e-01 + 3.95180174056348e-01 1.14393911654673e-01 + 4.11507356049945e-01 1.12714862489469e-01 + 4.28234523651876e-01 1.10842102889478e-01 + 4.45340392397003e-01 1.08625992076163e-01 + 4.62837991012792e-01 1.06211906746305e-01 + 4.80693499441581e-01 1.03485529717342e-01 + 4.98913492179558e-01 1.00542185055140e-01 + 5.17517845428645e-01 9.74397377840645e-02 + 5.36477927565839e-01 9.40616036546989e-02 + 5.55796976691234e-01 9.04782798006186e-02 + 5.75467841636579e-01 8.67003194543747e-02 + 5.95476624902315e-01 8.27151947381144e-02 + 6.15813311037007e-01 7.85353691537534e-02 + 6.36465818281506e-01 7.41645367831513e-02 + 6.57434847183396e-01 6.96758608118297e-02 + 6.78706364022775e-01 6.50739027566713e-02 + 7.00264419117774e-01 6.03600702418120e-02 + 7.22106224064244e-01 5.56019989988663e-02 + 7.44206905574363e-01 5.07691596432970e-02 + 7.66563451534093e-01 4.59377578965675e-02 + 7.89157421165984e-01 4.11170050938218e-02 + 8.11972451577726e-01 3.63311204629249e-02 + 8.34992281373643e-01 3.16078272577946e-02 + 8.58191065209645e-01 2.69315428378390e-02 + 8.81549309722986e-01 2.23218917556871e-02 + 9.05048164145794e-01 1.78050352255223e-02 + 9.28665571747247e-01 1.33962011189465e-02 + 9.52380536845395e-01 9.16501482835265e-03 + 9.76166682042713e-01 5.04797425831603e-03 + 1.00000000000000e+00 1.09238588038925e-03 diff --git a/Test_Cases/BAR_10/Airfoils/AF26_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF26_Coords.txt new file mode 100644 index 000000000..0481cc501 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF26_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.204780 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 6.40758786724654e-04 + 9.76756628355327e-01 2.69789056379586e-03 + 9.52792761755546e-01 4.32096288180847e-03 + 9.28815416073476e-01 5.41206450392887e-03 + 9.04874951954403e-01 6.01400933218997e-03 + 8.81050320864030e-01 5.90573334607355e-03 + 8.57368882516387e-01 5.00646334007410e-03 + 8.33869602010745e-01 3.41639629889069e-03 + 8.10590938651494e-01 1.18390186669436e-03 + 7.87569150256384e-01 -1.64145780571923e-03 + 7.64836911111519e-01 -5.02281980754235e-03 + 7.42410352866283e-01 -8.86423191381331e-03 + 7.20313077946451e-01 -1.31029051491484e-02 + 6.98581569829176e-01 -1.73353893117726e-02 + 6.77230293199987e-01 -2.18785299364661e-02 + 6.56234658023963e-01 -2.66782124121809e-02 + 6.35599459318190e-01 -3.16152210694862e-02 + 6.15328601526031e-01 -3.66290771046503e-02 + 5.95421218613825e-01 -4.16533572116275e-02 + 5.75870695225277e-01 -4.66177685563339e-02 + 5.56666330077752e-01 -5.14461238831841e-02 + 5.37808451948901e-01 -5.60976206251047e-02 + 5.19296981296655e-01 -6.05399453670030e-02 + 5.01130517444776e-01 -6.47337839766339e-02 + 4.83297582173150e-01 -6.85967213690352e-02 + 4.65796931619613e-01 -7.20815606978752e-02 + 4.48637563804092e-01 -7.51719900452271e-02 + 4.31827270612536e-01 -7.78541058013370e-02 + 4.15378860103287e-01 -8.01450675259531e-02 + 3.99302274494091e-01 -8.20497985708709e-02 + 3.83609621658701e-01 -8.36116559118373e-02 + 3.68308281853613e-01 -8.48513154974594e-02 + 3.53402158973554e-01 -8.57516785251705e-02 + 3.38897760400960e-01 -8.63666331486130e-02 + 3.24797820004930e-01 -8.67119731855854e-02 + 3.11104236756951e-01 -8.67451854043449e-02 + 2.97816890614996e-01 -8.66565123272746e-02 + 2.84934757963518e-01 -8.63110151639283e-02 + 2.72455641880009e-01 -8.57751719234123e-02 + 2.60375250963082e-01 -8.50867491586446e-02 + 2.48688555858608e-01 -8.42676614076658e-02 + 2.37392129073788e-01 -8.33101926495033e-02 + 2.26479257791217e-01 -8.22318613971150e-02 + 2.15942566549597e-01 -8.10565533863431e-02 + 2.05775438724289e-01 -7.97942991097335e-02 + 1.95971139789956e-01 -7.84498040433038e-02 + 1.86523010404812e-01 -7.70257390492848e-02 + 1.77422007209676e-01 -7.55385964218429e-02 + 1.68658447428314e-01 -7.40059098005184e-02 + 1.60225671137680e-01 -7.24271619252185e-02 + 1.52114764685154e-01 -7.08101017862066e-02 + 1.44314557341007e-01 -6.91735285799692e-02 + 1.36816418727526e-01 -6.75212338765365e-02 + 1.29614010393141e-01 -6.58491146030441e-02 + 1.22697428905425e-01 -6.41661860937438e-02 + 1.16057593229975e-01 -6.24787279732584e-02 + 1.09687893624755e-01 -6.07831298502066e-02 + 1.03578723890669e-01 -5.90885331097690e-02 + 9.77217396237242e-02 -5.73969734851560e-02 + 9.21086954884019e-02 -5.57102646930009e-02 + 8.67317275276311e-02 -5.40293264199649e-02 + 8.15835979904354e-02 -5.23564626548545e-02 + 7.66555992796022e-02 -5.06963370445241e-02 + 7.19394480606643e-02 -4.90522769396846e-02 + 6.74275553882817e-02 -4.74258734992405e-02 + 6.31125339356017e-02 -4.58191910364047e-02 + 5.89885212483094e-02 -4.42300517506719e-02 + 5.50495298010314e-02 -4.26568386581830e-02 + 5.12903482684417e-02 -4.10972217051854e-02 + 4.77042140866285e-02 -3.95538695853641e-02 + 4.42838052038338e-02 -3.80293223421838e-02 + 4.10228703903467e-02 -3.65242819526195e-02 + 3.79170927454407e-02 -3.50363228221161e-02 + 3.49600675125016e-02 -3.35676338993775e-02 + 3.21466813619157e-02 -3.21176780103215e-02 + 2.94714365560619e-02 -3.06867113468846e-02 + 2.69328747543536e-02 -2.92696775774450e-02 + 2.45218498988016e-02 -2.78737240237222e-02 + 2.22359441759600e-02 -2.64951402740953e-02 + 2.00737249222386e-02 -2.51281973904493e-02 + 1.80340645103901e-02 -2.37702352140114e-02 + 1.61001762580626e-02 -2.24382979883836e-02 + 1.42730228377297e-02 -2.11269562204646e-02 + 1.25620236457177e-02 -1.98176202503184e-02 + 1.09775908949479e-02 -1.84963802859251e-02 + 9.49306500828199e-03 -1.71929759266569e-02 + 8.07958543158489e-03 -1.59364228093793e-02 + 6.75333598932774e-03 -1.47056523695876e-02 + 5.56869508328610e-03 -1.34419470389323e-02 + 4.53485358935146e-03 -1.21465715370310e-02 + 3.63384459862975e-03 -1.08434483009947e-02 + 2.89472984200788e-03 -9.52427206214972e-03 + 2.31407693913558e-03 -8.20305293626561e-03 + 1.87515431637960e-03 -6.89124013988511e-03 + 1.49387331495356e-03 -5.62171106937731e-03 + 1.15471757251814e-03 -4.40032330307844e-03 + 8.40705866282335e-04 -3.22828345579169e-03 + 5.46716149261423e-04 -2.10481533939993e-03 + 2.67028894890736e-04 -1.02954392095674e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.42018238617190e-04 1.03604486637857e-03 + 4.67791194132745e-04 2.12758458247773e-03 + 6.91284114245541e-04 3.27044245639213e-03 + 9.17708862153295e-04 4.46457333018971e-03 + 1.15396999323991e-03 5.71265651287037e-03 + 1.41198534392182e-03 7.01369592150643e-03 + 1.71138438053490e-03 8.36866437795091e-03 + 2.07087735634782e-03 9.76968441918029e-03 + 2.55941508676776e-03 1.11968440042002e-02 + 3.16290150347185e-03 1.26559275213757e-02 + 3.86184412089737e-03 1.41474860286532e-02 + 4.69613827746493e-03 1.56547744927582e-02 + 5.66389166861327e-03 1.71729809679558e-02 + 6.72725186607396e-03 1.87257930690609e-02 + 7.83722792434985e-03 2.03465740811498e-02 + 9.05016457363310e-03 2.20003314444210e-02 + 1.03759250919490e-02 2.36810701620918e-02 + 1.18184028011529e-02 2.53901348298621e-02 + 1.33660478646382e-02 2.71415851965986e-02 + 1.50214808493802e-02 2.89338003448973e-02 + 1.67952209770514e-02 3.07603775512285e-02 + 1.86978016938726e-02 3.26159069274580e-02 + 2.07242010183769e-02 3.45087790051317e-02 + 2.28814903427286e-02 3.64358949328398e-02 + 2.51757096413377e-02 3.83956224660728e-02 + 2.76128217291521e-02 4.03818249926525e-02 + 3.01903578293189e-02 4.23742574901602e-02 + 3.29178268475374e-02 4.43999481617337e-02 + 3.58022198691375e-02 4.64576141541946e-02 + 3.88474464620088e-02 4.85489165660182e-02 + 4.20611607453992e-02 5.06717614001199e-02 + 4.54493721255215e-02 5.28272117434331e-02 + 4.90192366224248e-02 5.50124709905796e-02 + 5.27756124041703e-02 5.72219812023313e-02 + 5.67219903289762e-02 5.94589197859313e-02 + 6.08685716579328e-02 6.17216687974823e-02 + 6.52237033295943e-02 6.40088359871278e-02 + 6.97953958177928e-02 6.63204785625782e-02 + 7.45917980400228e-02 6.86536975298412e-02 + 7.96211283789879e-02 7.10045008017968e-02 + 8.48916602068686e-02 7.33675080833241e-02 + 9.04117389019752e-02 7.57362320444997e-02 + 9.61912247197150e-02 7.81014714154836e-02 + 1.02234601050657e-01 8.04751160651680e-02 + 1.08549435190905e-01 8.28637549380569e-02 + 1.15146399640496e-01 8.52574972816067e-02 + 1.22038976178864e-01 8.76366313105673e-02 + 1.29232772185148e-01 9.00005538472797e-02 + 1.36741559804564e-01 9.23267642469064e-02 + 1.44568320520847e-01 9.46242872577730e-02 + 1.52716794998991e-01 9.69029963843425e-02 + 1.61199263446916e-01 9.91474294167881e-02 + 1.70046135587226e-01 1.01275729945926e-01 + 1.79229587665835e-01 1.03400953468529e-01 + 1.88777693002037e-01 1.05436639082592e-01 + 1.98700034321847e-01 1.07363650223754e-01 + 2.09001338361622e-01 1.09183657611609e-01 + 2.19683892079481e-01 1.10912030655159e-01 + 2.30751298898766e-01 1.12544504504126e-01 + 2.42222268843398e-01 1.13992104162749e-01 + 2.54098370222123e-01 1.15255716155245e-01 + 2.66379197702126e-01 1.16360768771484e-01 + 2.79066453012758e-01 1.17300064788198e-01 + 2.92161128018820e-01 1.18075140820302e-01 + 3.05666329607319e-01 1.18486765962045e-01 + 3.19582121155542e-01 1.18497878199724e-01 + 3.33904817763362e-01 1.18258438500257e-01 + 3.48632759600925e-01 1.17698946847817e-01 + 3.63766163046992e-01 1.16925019933417e-01 + 3.79299989244449e-01 1.15866260188592e-01 + 3.95231310531240e-01 1.14533277820581e-01 + 4.11557497422822e-01 1.12924742895871e-01 + 4.28283737320623e-01 1.11102160345546e-01 + 4.45388615217469e-01 1.08935869398584e-01 + 4.62885411403680e-01 1.06574709726088e-01 + 4.80781442672693e-01 1.03893067147234e-01 + 4.99088659537086e-01 1.00992492620576e-01 + 5.17768847207030e-01 9.79285628199157e-02 + 5.36796655022311e-01 9.45829059915384e-02 + 5.56172980054375e-01 9.10292088541860e-02 + 5.75879724323021e-01 8.72745639238248e-02 + 5.95914424012732e-01 8.33069901497056e-02 + 6.16267791072851e-01 7.91397484125417e-02 + 6.36926665598153e-01 7.47743181020292e-02 + 6.57893396718573e-01 7.02851206735077e-02 + 6.79154519461115e-01 6.56758672877234e-02 + 7.00694512540175e-01 6.09478623254577e-02 + 7.22511896577290e-01 5.61669150779720e-02 + 7.44582698680259e-01 5.13042304069320e-02 + 7.66905607363208e-01 4.64356357344132e-02 + 7.89463121944705e-01 4.15701060665015e-02 + 8.12241005848242e-01 3.67346599092098e-02 + 8.35223081291508e-01 3.19553311843964e-02 + 8.58384008064430e-01 2.72191754306179e-02 + 8.81704376613107e-01 2.25448737450333e-02 + 9.05166372197406e-01 1.79615029489738e-02 + 9.28749829187910e-01 1.34879608030138e-02 + 9.52431667120063e-01 9.12426496494658e-03 + 9.76189152971375e-01 4.83135039300273e-03 + 1.00000000000000e+00 6.40758786724654e-04 diff --git a/Test_Cases/BAR_10/Airfoils/AF27_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF27_Coords.txt new file mode 100644 index 000000000..accb910cb --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF27_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.196175 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 2.99243423832683e-04 + 9.76715850141830e-01 2.78508494461238e-03 + 9.52832570604288e-01 4.62553819617565e-03 + 9.28899601675471e-01 5.62776905901731e-03 + 9.05006884573138e-01 5.98701120784076e-03 + 8.81313271379030e-01 5.72875651996128e-03 + 8.57781193183224e-01 4.62096236049669e-03 + 8.34425752969134e-01 2.93710876499461e-03 + 8.11286243150066e-01 6.71882474596361e-04 + 7.88390545332540e-01 -2.08662493164683e-03 + 7.65768299790857e-01 -5.30861548209101e-03 + 7.43434038355015e-01 -8.95902775903037e-03 + 7.21409493292842e-01 -1.30366319877706e-02 + 6.99731919429435e-01 -1.67525420740261e-02 + 6.78415143229322e-01 -2.07399546158482e-02 + 6.57437106327033e-01 -2.50250352025237e-02 + 6.36804378531547e-01 -2.93997660016326e-02 + 6.16525841213798e-01 -3.38244757063681e-02 + 5.96603967622136e-01 -3.82418665079304e-02 + 5.77036448189065e-01 -4.25953841564097e-02 + 5.57817961932735e-01 -4.68284150470437e-02 + 5.38949979321075e-01 -5.09000489603488e-02 + 5.20435451920483e-01 -5.47917458341687e-02 + 5.02273902010215e-01 -5.84661677532171e-02 + 4.84456610057061e-01 -6.18523654869323e-02 + 4.66985165327808e-01 -6.49235205757595e-02 + 4.49866045596113e-01 -6.76523663649663e-02 + 4.33106217181350e-01 -7.00284719704513e-02 + 4.16717373074188e-01 -7.20766726732589e-02 + 4.00705813292633e-01 -7.37780672296297e-02 + 3.85082862566273e-01 -7.51891438229246e-02 + 3.69854367851732e-01 -7.63301402121088e-02 + 3.55021472667895e-01 -7.71494809357839e-02 + 3.40589411366072e-01 -7.77006413142305e-02 + 3.26561009364456e-01 -7.80227290854321e-02 + 3.12937194379650e-01 -7.80876118848640e-02 + 2.99716663007213e-01 -7.80405835359952e-02 + 2.86897767219386e-01 -7.77587087968413e-02 + 2.74477902101747e-01 -7.73105253368021e-02 + 2.62452218514906e-01 -7.67349147128936e-02 + 2.50815252126603e-01 -7.60569333276959e-02 + 2.39563276650369e-01 -7.52624540880004e-02 + 2.28690209383429e-01 -7.43448414044425e-02 + 2.18188473922641e-01 -7.33379822283263e-02 + 2.08050834161601e-01 -7.22598064567001e-02 + 1.98270058772810e-01 -7.11168337691093e-02 + 1.88839995925463e-01 -6.99043264747573e-02 + 1.79752374379741e-01 -6.86279497618713e-02 + 1.70997518286803e-01 -6.73087997545347e-02 + 1.62568214684180e-01 -6.59505257781972e-02 + 1.54455450101617e-01 -6.45622295898561e-02 + 1.46648910606805e-01 -6.31580598807433e-02 + 1.39140606689171e-01 -6.17361179836863e-02 + 1.31923946468972e-01 -6.02937804216795e-02 + 1.24989374817549e-01 -5.88396057614646e-02 + 1.18327987761256e-01 -5.73797222136307e-02 + 1.11932724892953e-01 -5.59126331239638e-02 + 1.05794272668698e-01 -5.44471571118626e-02 + 9.99052290669904e-02 -5.29807834990381e-02 + 9.42580302078300e-02 -5.15121183806602e-02 + 8.88455904272152e-02 -5.00386940464793e-02 + 8.36601101851936e-02 -4.85673575546555e-02 + 7.86926575845277e-02 -4.71043750307946e-02 + 7.39348945645519e-02 -4.56539323571740e-02 + 6.93796268732836e-02 -4.42165566688640e-02 + 6.50201889078608e-02 -4.27923693181754e-02 + 6.08508031652153e-02 -4.13790300300725e-02 + 5.68654728124252e-02 -3.99750123194268e-02 + 5.30589897850872e-02 -3.85784994909694e-02 + 4.94244146240554e-02 -3.71930474260459e-02 + 4.59544000396429e-02 -3.58216018465375e-02 + 4.26430846486074e-02 -3.44642453993287e-02 + 3.94860621431651e-02 -3.31188469042148e-02 + 3.64770484049962e-02 -3.17873470420605e-02 + 3.36112100802323e-02 -3.04689649438852e-02 + 3.08828144055660e-02 -2.91647944332518e-02 + 2.82899628044253e-02 -2.78705449468280e-02 + 2.58249089876074e-02 -2.65911353391516e-02 + 2.34861889865884e-02 -2.53206549245219e-02 + 2.12710430594242e-02 -2.40557507148349e-02 + 1.91777905300145e-02 -2.27945184678308e-02 + 1.71923013176284e-02 -2.15509792383158e-02 + 1.53142376144257e-02 -2.03220618466060e-02 + 1.35544925632795e-02 -1.90866028319777e-02 + 1.19216144425025e-02 -1.78318405067533e-02 + 1.03911541817191e-02 -1.65878135255326e-02 + 8.93710808843791e-03 -1.53838016791156e-02 + 7.57587066177587e-03 -1.41964688432125e-02 + 6.35052069859008e-03 -1.29751800559737e-02 + 5.24846650364990e-03 -1.17441346090810e-02 + 4.25691529577133e-03 -1.05198583664825e-02 + 3.41383518471246e-03 -9.27886253286996e-03 + 2.72830865288517e-03 -8.02312658259740e-03 + 2.18758641405190e-03 -6.76356114686634e-03 + 1.72161536352416e-03 -5.53248384723568e-03 + 1.31352407353385e-03 -4.33972316559277e-03 + 9.44375084600364e-04 -3.18929697329597e-03 + 6.06737731823870e-04 -2.08232436413117e-03 + 2.93166162526188e-04 -1.01977904939694e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.34828103442561e-04 1.03456750750715e-03 + 4.41134511893131e-04 2.12850758178949e-03 + 6.41289479067889e-04 3.27335542584514e-03 + 8.41337047111839e-04 4.46854283335892e-03 + 1.04956356562389e-03 5.71769887926954e-03 + 1.27370241040263e-03 7.02025007449067e-03 + 1.53019393454666e-03 8.37727614505815e-03 + 1.83679987477965e-03 9.78201524384753e-03 + 2.24455380229252e-03 1.12253814615044e-02 + 2.74413738711980e-03 1.27085596389628e-02 + 3.33583670199908e-03 1.42244368400194e-02 + 4.10864122003902e-03 1.57552801794670e-02 + 5.07536401069315e-03 1.72694451982165e-02 + 6.14680613563899e-03 1.88142876395745e-02 + 7.25910921909114e-03 2.04301624532964e-02 + 8.47294090587350e-03 2.20799647651366e-02 + 9.80342720359412e-03 2.37533690936401e-02 + 1.12559447384785e-02 2.54533134872246e-02 + 1.28189525944885e-02 2.72012360200626e-02 + 1.44934562244992e-02 2.89884596770309e-02 + 1.62885815652561e-02 3.08086651401025e-02 + 1.82138952378322e-02 3.26567390822771e-02 + 2.02656884263386e-02 3.45403297106206e-02 + 2.24493452429230e-02 3.64573586445799e-02 + 2.47690826683131e-02 3.84068259673853e-02 + 2.72304861381363e-02 4.03792029180558e-02 + 2.98329200278598e-02 4.23307507932172e-02 + 3.25851248911330e-02 4.43129086059586e-02 + 3.54939003492315e-02 4.63247358851782e-02 + 3.85637093150347e-02 4.83672785089862e-02 + 4.18013465263241e-02 5.04407780166790e-02 + 4.52118166267059e-02 5.25483890310703e-02 + 4.88028254777371e-02 5.46859752856166e-02 + 5.25714632505553e-02 5.68450353711502e-02 + 5.65254891037875e-02 5.90251346228513e-02 + 6.06801777899328e-02 6.12262185521151e-02 + 6.50435016680171e-02 6.34489679029535e-02 + 6.96229467987555e-02 6.56971604382337e-02 + 7.44265216445527e-02 6.79695973967877e-02 + 7.94625904951992e-02 7.02612717945475e-02 + 8.47398472047864e-02 7.25634752625566e-02 + 9.02671328374840e-02 7.48649920405557e-02 + 9.60544309998964e-02 7.71544758326524e-02 + 1.02105353500669e-01 7.94531675515565e-02 + 1.08426815553174e-01 8.17827880036158e-02 + 1.15029425747190e-01 8.41325133239449e-02 + 1.21926444247959e-01 8.64752228150078e-02 + 1.29124064118853e-01 8.88073645262575e-02 + 1.36635845145495e-01 9.11079088444902e-02 + 1.44465541228000e-01 9.33812943266333e-02 + 1.52617203367374e-01 9.56364759040781e-02 + 1.61102078635117e-01 9.78666765576603e-02 + 1.69948612741612e-01 1.00004355571316e-01 + 1.79132965660142e-01 1.02133443903321e-01 + 1.88681514546546e-01 1.04181079065289e-01 + 1.98603607737274e-01 1.06131654633055e-01 + 2.08903825108548e-01 1.07991414732226e-01 + 2.19584642847916e-01 1.09775666600333e-01 + 2.30650576021633e-01 1.11471535480451e-01 + 2.42119588721546e-01 1.13012842697515e-01 + 2.53993482089934e-01 1.14424824736422e-01 + 2.66271541366660e-01 1.15731053867025e-01 + 2.78956359603003e-01 1.16907074690431e-01 + 2.92050118668223e-01 1.17902199400039e-01 + 3.05555378477371e-01 1.18521235614228e-01 + 3.19471709270778e-01 1.18631055531888e-01 + 3.33796832295825e-01 1.18495609848392e-01 + 3.48530161268354e-01 1.18132664618497e-01 + 3.63670898823302e-01 1.17548107049325e-01 + 3.79214129090583e-01 1.16726712742274e-01 + 3.95157367400274e-01 1.15683952114000e-01 + 4.11497930587792e-01 1.14372499647191e-01 + 4.28238437319619e-01 1.12757475600112e-01 + 4.45359980451929e-01 1.10806331927779e-01 + 4.62874934934106e-01 1.08668718001865e-01 + 4.80812508928846e-01 1.06184364152004e-01 + 4.99190808886370e-01 1.03469972752742e-01 + 5.17939966889097e-01 1.00568783884840e-01 + 5.37037524049470e-01 9.73666865408607e-02 + 5.56478477670993e-01 9.39443132550199e-02 + 5.76219777357031e-01 9.02934414806348e-02 + 5.96286545073671e-01 8.64068856182217e-02 + 6.16669567226458e-01 8.23012099391214e-02 + 6.37353513664601e-01 7.79685908816295e-02 + 6.58340434038046e-01 7.34847853906170e-02 + 6.79615837989088e-01 6.88505906880203e-02 + 7.01164517024360e-01 6.40698936098300e-02 + 7.22981597586005e-01 5.91947240747164e-02 + 7.45045453323246e-01 5.42077925719018e-02 + 7.67353786705772e-01 4.91801704352279e-02 + 7.89888680649307e-01 4.41194136205877e-02 + 8.12638756520127e-01 3.90633920279641e-02 + 8.35586292116697e-01 3.40311659593066e-02 + 8.58708929065328e-01 2.90221649474243e-02 + 8.81986294218746e-01 2.40505532459688e-02 + 9.05403975218620e-01 1.91575384793240e-02 + 9.28945170900381e-01 1.43748538077527e-02 + 9.52575171486305e-01 9.64309571341342e-03 + 9.76267769731815e-01 4.94496385126641e-03 + 1.00000000000000e+00 2.99243423832683e-04 diff --git a/Test_Cases/BAR_10/Airfoils/AF28_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF28_Coords.txt new file mode 100644 index 000000000..8d994942a --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF28_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.187904 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 7.60311480495962e-05 + 9.76692546548886e-01 2.94939443611939e-03 + 9.52952125878929e-01 4.97097004670837e-03 + 9.29152427261439e-01 5.81668977252663e-03 + 9.05403101897331e-01 5.91676249116844e-03 + 8.81880321709038e-01 5.44749204328302e-03 + 8.58534061724648e-01 4.03207060361981e-03 + 8.35357303316069e-01 2.19810507273300e-03 + 8.12391302454907e-01 -1.38085408262991e-04 + 7.89652574990592e-01 -2.83409037710428e-03 + 7.67167536901634e-01 -5.87251609880330e-03 + 7.44949198983147e-01 -9.24652084475970e-03 + 7.23015902612990e-01 -1.29953935475597e-02 + 7.01392124384282e-01 -1.63710622016716e-02 + 6.80089400523790e-01 -1.99201489055155e-02 + 6.59108769985561e-01 -2.37124661856586e-02 + 6.38455579613773e-01 -2.75230170578027e-02 + 6.18141989933345e-01 -3.13355421517006e-02 + 5.98173034123998e-01 -3.51031314462511e-02 + 5.78552046841470e-01 -3.87866820390135e-02 + 5.59281690033483e-01 -4.23558402736661e-02 + 5.40364631101982e-01 -4.57690164213687e-02 + 5.21808098735405e-01 -4.90245847824181e-02 + 5.03613837753935e-01 -5.20890623036459e-02 + 4.85778838747837e-01 -5.49118983606335e-02 + 4.68308949043560e-01 -5.74962067748304e-02 + 4.51206744493614e-01 -5.98009007672345e-02 + 4.34478329816501e-01 -6.18233022403249e-02 + 4.18133552867213e-01 -6.35984158677550e-02 + 4.02173585785536e-01 -6.50754711519559e-02 + 3.86608628834350e-01 -6.63273769718568e-02 + 3.71442340840388e-01 -6.73719373888724e-02 + 3.56672585625558e-01 -6.81144811937217e-02 + 3.42302922136662e-01 -6.86052222338007e-02 + 3.28336547265782e-01 -6.89165274452341e-02 + 3.14773179157626e-01 -6.90450071850462e-02 + 3.01610176743547e-01 -6.90576372649723e-02 + 2.88845259675225e-01 -6.88649728085964e-02 + 2.76475349887358e-01 -6.85327608739527e-02 + 2.64495147465607e-01 -6.81000093320494e-02 + 2.52898778502121e-01 -6.75955217002831e-02 + 2.41682056611335e-01 -6.69994889498988e-02 + 2.30839991007781e-01 -6.62715782243010e-02 + 2.20364983521404e-01 -6.54579325913896e-02 + 2.10248835629111e-01 -6.45893446785325e-02 + 2.00483950406454e-01 -6.36739858471489e-02 + 1.91064519952471e-01 -6.26998032656620e-02 + 1.81983552960940e-01 -6.16567231836933e-02 + 1.73231507555915e-01 -6.05701625792855e-02 + 1.64800229845471e-01 -5.94508356814381e-02 + 1.56680555141737e-01 -5.83100496527859e-02 + 1.48863327394118e-01 -5.71554911170223e-02 + 1.41341485375820e-01 -5.59777038072007e-02 + 1.34107891213940e-01 -5.47771125799278e-02 + 1.27153370594838e-01 -5.35619052131625e-02 + 1.20469157034687e-01 -5.23383179472420e-02 + 1.14047531097370e-01 -5.11081132200554e-02 + 1.07879348308818e-01 -4.98801638459259e-02 + 1.01958292250618e-01 -4.86463169951743e-02 + 9.62777371918581e-02 -4.74008610037215e-02 + 9.08315904866489e-02 -4.61369130299718e-02 + 8.56109108065806e-02 -4.48682022603292e-02 + 8.06065941559389e-02 -4.36028056934524e-02 + 7.58103607820613e-02 -4.23457219186519e-02 + 7.12154325091177e-02 -4.10962088422342e-02 + 6.68158027328546e-02 -3.98522894895008e-02 + 6.26056124505560e-02 -3.86118705289941e-02 + 5.85788555481005e-02 -3.73735858691946e-02 + 5.47301777515892e-02 -3.61365479054825e-02 + 5.10523520885139e-02 -3.49053854518513e-02 + 4.75382589934217e-02 -3.36831579159511e-02 + 4.41824020724359e-02 -3.24693235591508e-02 + 4.09802055104674e-02 -3.12622370799481e-02 + 3.79257345309422e-02 -3.00631030677152e-02 + 3.50141212648092e-02 -2.88714297590178e-02 + 3.22397471167750e-02 -2.76889039649508e-02 + 2.95996003907968e-02 -2.65128984497655e-02 + 2.70877360273223e-02 -2.53452294082449e-02 + 2.47038705647982e-02 -2.41772278338158e-02 + 2.24445978019722e-02 -2.30078388649265e-02 + 2.03071756335075e-02 -2.18364319322737e-02 + 1.82816805085141e-02 -2.06720185582015e-02 + 1.63653458982714e-02 -1.95154093690455e-02 + 1.45711964013155e-02 -1.83426521297700e-02 + 1.29041309608241e-02 -1.71437108159266e-02 + 1.13437043566009e-02 -1.59470776704155e-02 + 9.86266773452174e-03 -1.47847993352268e-02 + 8.48470817434388e-03 -1.36257915198080e-02 + 7.23636185394806e-03 -1.24342770604618e-02 + 6.07262266895854e-03 -1.12681720638311e-02 + 4.98643883349125e-03 -1.01334330044711e-02 + 4.02607958949096e-03 -8.98654244696731e-03 + 3.21544689164113e-03 -7.81154373567311e-03 + 2.54894440143303e-03 -6.61768011726334e-03 + 1.97989228872004e-03 -5.43363985223046e-03 + 1.48901434537717e-03 -4.27483413079559e-03 + 1.05564942308977e-03 -3.14896575581037e-03 + 6.69102935488086e-04 -2.05978820136679e-03 + 3.19441928770326e-04 -1.00998254122307e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.19650757131630e-04 1.03545396025852e-03 + 3.93183714833983e-04 2.13199566767624e-03 + 5.54773052277765e-04 3.27929714991202e-03 + 7.11815815211785e-04 4.47765749295988e-03 + 8.74286049466353e-04 5.73003551448122e-03 + 1.04368229244301e-03 7.03712684060598e-03 + 1.23165956781504e-03 8.40033224730459e-03 + 1.45407874337185e-03 9.81576397401233e-03 + 1.73434902565760e-03 1.12868423063338e-02 + 2.07181240009304e-03 1.28102796454737e-02 + 2.49495799185691e-03 1.43678276571964e-02 + 3.16429991369629e-03 1.59408406295731e-02 + 4.11576088347591e-03 1.74580455332468e-02 + 5.18467578548041e-03 1.90010029137170e-02 + 6.28789345351947e-03 2.06187711272293e-02 + 7.48959650185360e-03 2.22730459327456e-02 + 8.81441738228946e-03 2.39463094740277e-02 + 1.02692137739431e-02 2.56402424715368e-02 + 1.18426034612086e-02 2.73775703689523e-02 + 1.35322252221567e-02 2.91498037989481e-02 + 1.53463697764393e-02 3.09508739232298e-02 + 1.72927203421507e-02 3.27765580341365e-02 + 1.93698669545613e-02 3.46322750225425e-02 + 2.15801738314328e-02 3.65190111410368e-02 + 2.39257655202919e-02 3.84376654516748e-02 + 2.64115756506534e-02 4.03807388858292e-02 + 2.90402089728258e-02 4.23086746728101e-02 + 3.18192203895641e-02 4.42648145979162e-02 + 3.47549429950774e-02 4.62484811579784e-02 + 3.78523555251171e-02 4.82603783992412e-02 + 4.11170108024379e-02 5.03022959759804e-02 + 4.45526460992288e-02 5.23788690477077e-02 + 4.81676630459514e-02 5.44851872574484e-02 + 5.19583745947429e-02 5.66107895553143e-02 + 5.59353683698630e-02 5.87526714191709e-02 + 6.01144047141254e-02 6.09117482111135e-02 + 6.45023310658109e-02 6.30901028739769e-02 + 6.91050585912522e-02 6.52941985932874e-02 + 7.39301739443135e-02 6.75241136148650e-02 + 7.89864795965244e-02 6.97741629800960e-02 + 8.42839321747349e-02 7.20332048769341e-02 + 8.98328613650622e-02 7.42864580477406e-02 + 9.56436212169933e-02 7.65208747098102e-02 + 1.01717206042719e-01 7.87645391389609e-02 + 1.08058572749469e-01 8.10461844051666e-02 + 1.14678137994541e-01 8.33556191731427e-02 + 1.21588496401202e-01 8.56654025116579e-02 + 1.28797599933917e-01 8.79685276915008e-02 + 1.36318370629326e-01 9.02463741685810e-02 + 1.44156882074419e-01 9.24972050935273e-02 + 1.52318117257637e-01 9.47276436963159e-02 + 1.60810220580675e-01 9.69411384903850e-02 + 1.69655739518901e-01 9.90903973366422e-02 + 1.78842797800216e-01 1.01219841425404e-01 + 1.88392678737055e-01 1.03275749830060e-01 + 1.98314026757452e-01 1.05246847903734e-01 + 2.08610980693733e-01 1.07143618603591e-01 + 2.19286585018934e-01 1.08979763406328e-01 + 2.30348092605174e-01 1.10732540045241e-01 + 2.41811227393929e-01 1.12354034346313e-01 + 2.53678489762898e-01 1.13876119567410e-01 + 2.65948235693435e-01 1.15327791625435e-01 + 2.78625735015585e-01 1.16666793099965e-01 + 2.91716743367599e-01 1.17803097644825e-01 + 3.05222178022438e-01 1.18621946978331e-01 + 3.19140128253239e-01 1.19028201454106e-01 + 3.33472538187659e-01 1.19205066020197e-01 + 3.48222045566706e-01 1.19148598093650e-01 + 3.63384808594500e-01 1.18837155662373e-01 + 3.78956280750185e-01 1.18361436088086e-01 + 3.94935307738306e-01 1.17743036510687e-01 + 4.11319045184747e-01 1.16867806013046e-01 + 4.28102397444307e-01 1.15555126276896e-01 + 4.45273988877944e-01 1.13922526877734e-01 + 4.62843475555000e-01 1.12113113337323e-01 + 4.80830374151315e-01 1.09922822162113e-01 + 4.99252421856090e-01 1.07484508447212e-01 + 5.18047735039144e-01 1.04821782890131e-01 + 5.37195633799359e-01 1.01833289565033e-01 + 5.56689291068342e-01 9.86063559205016e-02 + 5.76476665611022e-01 9.51098258996081e-02 + 5.96589986819819e-01 9.13448862139788e-02 + 6.17019855399180e-01 8.73329289138897e-02 + 6.37747985385035e-01 8.30524526960117e-02 + 6.58774884008133e-01 7.85790158219631e-02 + 6.80084252002563e-01 7.39094567556989e-02 + 7.01661456652317e-01 6.90529897724040e-02 + 7.23495172519456e-01 6.40382187910744e-02 + 7.45567464673313e-01 5.88669552614949e-02 + 7.67873464693864e-01 5.36015795178433e-02 + 7.90394184107644e-01 4.82474082559037e-02 + 8.13121761097191e-01 4.28578103681368e-02 + 8.36036027295147e-01 3.74415826312895e-02 + 8.59119240133573e-01 3.20171616133756e-02 + 8.82349468363278e-01 2.65918959992166e-02 + 9.05717196958175e-01 2.12246979408618e-02 + 9.29209942787696e-01 1.59650887196610e-02 + 9.52775619386416e-01 1.06814381931830e-02 + 9.76380588557633e-01 5.38373218287265e-03 + 1.00000000000000e+00 7.60311480495963e-05 diff --git a/Test_Cases/BAR_10/Airfoils/AF29_Coords.txt b/Test_Cases/BAR_10/Airfoils/AF29_Coords.txt new file mode 100644 index 000000000..f526e42f3 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/AF29_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.180000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 1.76276898853679e-06 + 9.76685163781192e-01 3.14692751970005e-03 + 9.53182640340308e-01 5.22846152092543e-03 + 9.29639897485591e-01 5.97741516267581e-03 + 9.06167042800545e-01 5.78965307716972e-03 + 8.82802297441817e-01 5.09777078247988e-03 + 8.59612103422325e-01 3.33442447950617e-03 + 8.36584917137412e-01 1.31227051013193e-03 + 8.13765366091040e-01 -1.13970712268480e-03 + 7.91158664646018e-01 -3.82161486858535e-03 + 7.68789543106030e-01 -6.73319273789602e-03 + 7.46670606631860e-01 -9.80299024398537e-03 + 7.24815371485137e-01 -1.29773625275276e-02 + 7.03239503488147e-01 -1.62330228305519e-02 + 6.81951558632383e-01 -1.95066730303112e-02 + 6.60966738772368e-01 -2.27891967286832e-02 + 6.40289183179184e-01 -2.60079600115155e-02 + 6.19934502912173e-01 -2.91710960357348e-02 + 5.99910248712111e-01 -3.22418538057236e-02 + 5.80225718128644e-01 -3.52013999941045e-02 + 5.60892208071321e-01 -3.80505362114119e-02 + 5.41913300248986e-01 -4.07453642678507e-02 + 5.23300629786120e-01 -4.33030219666551e-02 + 5.05058366597365e-01 -4.56948045042105e-02 + 4.87190504166882e-01 -4.78964356803655e-02 + 4.69708238559809e-01 -4.99465796443292e-02 + 4.52610015282302e-01 -5.17875625296970e-02 + 4.35901511531874e-01 -5.34267819319291e-02 + 4.19590706300968e-01 -5.49105928906840e-02 + 4.03673008642490e-01 -5.61510091152559e-02 + 3.88157455117881e-01 -5.72393585344513e-02 + 3.73045207152345e-01 -5.81896936357115e-02 + 3.58330585467209e-01 -5.88588502429530e-02 + 3.44015239410566e-01 -5.92919006915546e-02 + 3.30102977392583e-01 -5.96008956695659e-02 + 3.16592168584037e-01 -5.98141161822772e-02 + 3.03478746222237e-01 -5.98982374132947e-02 + 2.90759809863957e-01 -5.98116695304908e-02 + 2.78431769020517e-01 -5.96141201800107e-02 + 2.66488971325030e-01 -5.93440652939878e-02 + 2.54925165110766e-01 -5.90344796876185e-02 + 2.43735576562801e-01 -5.86605017126784e-02 + 2.32916691937106e-01 -5.81415252172914e-02 + 2.22461058081301e-01 -5.75373623855523e-02 + 2.12359236283000e-01 -5.68951579114651e-02 + 2.02603386349260e-01 -5.62246167126201e-02 + 1.93187900610439e-01 -5.55065395111399e-02 + 1.84107514219426e-01 -5.47115356526121e-02 + 1.75352945024816e-01 -5.38698091779159e-02 + 1.66914764847247e-01 -5.30012705115637e-02 + 1.58783615636372e-01 -5.21200806633485e-02 + 1.50951771136767e-01 -5.12261127389895e-02 + 1.43413366230195e-01 -5.03009183403547e-02 + 1.36160459341199e-01 -4.93491514365416e-02 + 1.29184290669648e-01 -4.83786800252880e-02 + 1.22476198753302e-01 -4.73960385867119e-02 + 1.16027617582450e-01 -4.64071417522580e-02 + 1.09829456218098e-01 -4.54212324884325e-02 + 1.03876613966131e-01 -4.44236682896555e-02 + 9.81636432763516e-02 -4.34035167507621e-02 + 9.26856454872484e-02 -4.23486217997428e-02 + 8.74319961031953e-02 -4.12814753333364e-02 + 8.23934695148606e-02 -4.02121173350990e-02 + 7.75619505953779e-02 -3.91463065370971e-02 + 7.29310938836902e-02 -3.80818612393114e-02 + 6.84954864199042e-02 -3.70145838949336e-02 + 6.42490283573735e-02 -3.59429717119364e-02 + 6.01857014067742e-02 -3.48658735489505e-02 + 5.62998630289184e-02 -3.37836799049153e-02 + 5.25838955635888e-02 -3.27022430162746e-02 + 4.90311381149762e-02 -3.16244802709614e-02 + 4.56364285777025e-02 -3.05492255522962e-02 + 4.23949435896934e-02 -2.94754810431376e-02 + 3.93012962977587e-02 -2.84032960483789e-02 + 3.63502900340243e-02 -2.73329303699608e-02 + 3.35367228056129e-02 -2.62664464100622e-02 + 3.08558707645713e-02 -2.52036461180435e-02 + 2.83039229158860e-02 -2.41425128325986e-02 + 2.58819442116690e-02 -2.30711691972255e-02 + 2.35864320077367e-02 -2.19907910515527e-02 + 2.14131072936254e-02 -2.09024817603859e-02 + 1.93573891799541e-02 -1.98086992429277e-02 + 1.74130469199725e-02 -1.87155065294188e-02 + 1.55955606855753e-02 -1.75961793396577e-02 + 1.39047493624180e-02 -1.64447168153722e-02 + 1.23252537587457e-02 -1.52868923596965e-02 + 1.08258486915280e-02 -1.41593193791048e-02 + 9.44173276108900e-03 -1.30201169561990e-02 + 8.17954041016749e-03 -1.18524423457405e-02 + 6.95661607039575e-03 -1.07525307852769e-02 + 5.77267345637513e-03 -9.71335752136223e-03 + 4.68748529857021e-03 -8.66876020821710e-03 + 3.74121139971434e-03 -7.58219910861477e-03 + 2.93674374587522e-03 -6.46094387988755e-03 + 2.25498893122964e-03 -5.32865253991990e-03 + 1.67381995101230e-03 -4.20698099384508e-03 + 1.17109616794531e-03 -3.10763621884286e-03 + 7.32548357888676e-04 -2.03732855158433e-03 + 3.45549042097957e-04 -1.00070212216390e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.95325347591222e-04 1.03862553452143e-03 + 3.25438321076794e-04 2.13796005075520e-03 + 4.36930081486505e-04 3.28859340865753e-03 + 5.38924260241854e-04 4.49307142384314e-03 + 6.42754062916553e-04 5.75166167067146e-03 + 7.42769834370538e-04 7.06750673037593e-03 + 8.45088202589726e-04 8.44262638874251e-03 + 9.62634362461285e-04 9.87830779428285e-03 + 1.08570733955634e-03 1.13866867737906e-02 + 1.22596928692375e-03 1.29630413582498e-02 + 1.44227857750997e-03 1.45767970176028e-02 + 1.97463021415859e-03 1.62091287288980e-02 + 2.88730133267348e-03 1.77438753762099e-02 + 3.93071874652765e-03 1.93001677223623e-02 + 5.00404818759594e-03 2.09343834825429e-02 + 6.17096305087445e-03 2.26098650784572e-02 + 7.46957759930992e-03 2.42997008170832e-02 + 8.90731658832381e-03 2.59984965667715e-02 + 1.04732053110285e-02 2.77153971642190e-02 + 1.21595332708887e-02 2.94587282440398e-02 + 1.39755583230851e-02 3.12229039127917e-02 + 1.59261174475342e-02 3.30054186477544e-02 + 1.80129671762206e-02 3.48073930408281e-02 + 2.02342247607095e-02 3.66357222011114e-02 + 2.25905834739577e-02 3.84949665729114e-02 + 2.50860908034007e-02 4.03861050388566e-02 + 2.77278561014730e-02 4.23064948487564e-02 + 3.05220116300692e-02 4.42540841794759e-02 + 3.34740744628096e-02 4.62282971168931e-02 + 3.65891359248598e-02 4.82297320897778e-02 + 3.98713848107267e-02 5.02607271113785e-02 + 4.33234617104802e-02 5.23264638339961e-02 + 4.69543743828159e-02 5.44217844094028e-02 + 5.07762932715249e-02 5.65355316564104e-02 + 5.47975710272956e-02 5.86637496236621e-02 + 5.90235515934253e-02 6.08076816197254e-02 + 6.34589134715036e-02 6.29699138505230e-02 + 6.81065313062008e-02 6.51579120985864e-02 + 7.29731784709576e-02 6.73722421005751e-02 + 7.80685022865562e-02 6.96069775218459e-02 + 8.34048941061878e-02 7.18500612904104e-02 + 8.89955537975136e-02 7.40853481259427e-02 + 9.48515496533699e-02 7.62991220099445e-02 + 1.00968829244544e-01 7.85220424012118e-02 + 1.07348573708224e-01 8.07702975554595e-02 + 1.14000829640619e-01 8.30380295375681e-02 + 1.20936908447118e-01 8.53148568811294e-02 + 1.28168153393426e-01 8.75886043829269e-02 + 1.35706256885406e-01 8.98449688413143e-02 + 1.43561765050887e-01 9.20722432364965e-02 + 1.51741457824235e-01 9.42720789921201e-02 + 1.60247497412923e-01 9.64623417508096e-02 + 1.69091059025962e-01 9.86284900517562e-02 + 1.78283333461957e-01 1.00752562458574e-01 + 1.87835782698008e-01 1.02811909664025e-01 + 1.97755693970724e-01 1.04801546174716e-01 + 2.08046355744711e-01 1.06736479028897e-01 + 2.18711908192637e-01 1.08626440357603e-01 + 2.29764882894136e-01 1.10435356686004e-01 + 2.41216684602551e-01 1.12122457625896e-01 + 2.53071161877100e-01 1.13686298155962e-01 + 2.65324879014804e-01 1.15192322204049e-01 + 2.77988266888122e-01 1.16590475324454e-01 + 2.91073971646238e-01 1.17775690315621e-01 + 3.04579743417476e-01 1.18813966642619e-01 + 3.18500816052410e-01 1.19791770529774e-01 + 3.32847275727823e-01 1.20570794103417e-01 + 3.47627976361737e-01 1.20886832914430e-01 + 3.62833206253452e-01 1.20874484363272e-01 + 3.78459131016809e-01 1.20782669471204e-01 + 3.94507161424169e-01 1.20638280047343e-01 + 4.10974142276612e-01 1.20253199752920e-01 + 4.27840104122288e-01 1.19276424901231e-01 + 4.45108192662556e-01 1.18005893142321e-01 + 4.62782821749736e-01 1.16565185161240e-01 + 4.80836061125256e-01 1.14712194029188e-01 + 4.99272814860532e-01 1.12588330585703e-01 + 5.18084579385976e-01 1.10192764865255e-01 + 5.37251272628826e-01 1.07448702504230e-01 + 5.56774410476098e-01 1.04445477963488e-01 + 5.76633480443359e-01 1.01125465112366e-01 + 5.96817364714926e-01 9.75013529397977e-02 + 6.17316615892732e-01 9.35999222782430e-02 + 6.38109492239376e-01 8.93842752646659e-02 + 6.59194371587993e-01 8.49263474503110e-02 + 6.80553184046394e-01 8.02190327372660e-02 + 7.02172566669922e-01 7.52799484191785e-02 + 7.24033227866914e-01 7.01063503045311e-02 + 7.46122249919716e-01 6.47249855913858e-02 + 7.68431673778831e-01 5.91857816291724e-02 + 7.90941486114015e-01 5.34912941074882e-02 + 8.13647949349220e-01 4.77116227542054e-02 + 8.36528276184972e-01 4.18439945410181e-02 + 8.59570161675201e-01 3.59295213423460e-02 + 8.82749967939098e-01 2.99676052491525e-02 + 9.06063725306788e-01 2.40368820282100e-02 + 9.29503713168980e-01 1.82051935492353e-02 + 9.52998459570802e-01 1.22336783564747e-02 + 9.76506117266396e-01 6.17134717510809e-03 + 1.00000000000000e+00 1.76276898853681e-06 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_00.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_00.dat new file mode 100644 index 000000000..2801c19a8 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_00.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF00_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +0.754030 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +29.393939 alpha0 ! 0-lift angle of attack, depends on airfoil. +0.000000 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-0.000000 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.000000 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.500000 Cd0 ! 2D drag coefficient value at 0-lift. +0.000000 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.77000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 -1.38777878078145e-17 +-1.74000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 -2.77555756156289e-17 +-1.71000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.68000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 5.55111512312578e-17 +-1.65000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.62000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.59000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.56000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.53000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.50000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.47000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.44000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.41000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 -5.55111512312578e-17 +-1.38000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.35000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.32000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.29000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.26000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.23000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.20000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.17000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.14000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.11000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.08000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.05000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.02000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-8.70000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-8.40000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-8.10000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-7.80000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-7.50000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-7.20000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.70000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.40000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.10000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-4.80000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-4.50000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-4.20000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.93939393939394e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.87878787878788e+01 0.00000000000000e+00 5.00000000000000e-01 1.38777878078145e-17 +-2.81818181818182e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.75757575757576e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.69696969696970e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.63636363636364e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.57575757575758e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.51515151515151e+01 0.00000000000000e+00 5.00000000000000e-01 6.93889390390723e-18 +-2.45454545454545e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.39393939393939e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.33333333333333e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.27272727272727e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.21212121212121e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.15151515151515e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.09090909090909e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.03030303030303e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.96969696969697e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.90909090909091e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.84848484848485e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.78787878787879e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.72727272727273e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.66666666666667e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.60606060606061e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.54545454545455e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.48484848484848e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.42424242424242e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.36363636363636e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.30303030303030e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.24242424242424e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.18181818181818e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.12121212121212e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.06060606060606e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.39393939393939e+00 -2.77555756156289e-17 5.00000000000000e-01 0.00000000000000e+00 +-8.78787878787879e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-8.18181818181818e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-7.57575757575758e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.96969696969697e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.36363636363636e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.75757575757576e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.15151515151515e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-4.54545454545454e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.93939393939394e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.33333333333333e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.72727272727273e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.12121212121212e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.51515151515152e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.09090909090912e-01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.03030303030302e-01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.03030303030302e-01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.09090909090912e-01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.51515151515152e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.12121212121212e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.72727272727273e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.33333333333333e+00 0.00000000000000e+00 5.00000000000000e-01 1.73472347597681e-18 + 3.93939393939394e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 4.54545454545455e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 5.15151515151515e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 5.75757575757576e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.36363636363637e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.96969696969697e+00 0.00000000000000e+00 5.00000000000000e-01 3.46944695195361e-18 + 7.57575757575757e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.18181818181818e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.78787878787879e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.39393939393939e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.06060606060606e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.12121212121212e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.18181818181818e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.24242424242424e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.30303030303030e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.36363636363636e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.42424242424242e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.48484848484848e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.54545454545455e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.60606060606061e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.66666666666667e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.72727272727273e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.78787878787879e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.84848484848485e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.90909090909091e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.96969696969697e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.03030303030303e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.09090909090909e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.15151515151515e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.21212121212121e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.27272727272727e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.33333333333333e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.39393939393939e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.45454545454545e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.51515151515151e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.57575757575758e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.63636363636364e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.69696969696970e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.75757575757576e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.81818181818182e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.87878787878788e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.93939393939394e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 -2.77555756156289e-17 + 4.20000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 2.77555756156289e-17 + 4.50000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 4.80000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 5.10000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 5.40000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 5.70000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.90000000000000e+01 -5.55111512312578e-17 5.00000000000000e-01 0.00000000000000e+00 + 7.20000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 7.50000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 7.80000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.10000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.40000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.70000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.02000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.05000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.08000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.11000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.14000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.17000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.20000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.23000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.26000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.29000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.32000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.35000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.38000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.41000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.44000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.47000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.50000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.53000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.56000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.59000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.62000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.65000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.68000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.71000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.74000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.77000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.80000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_01.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_01.dat new file mode 100644 index 000000000..c5fe5d1a7 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_01.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF01_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +1.626654 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +2.107816 alpha0 ! 0-lift angle of attack, depends on airfoil. +6.969697 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-6.969697 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.146142 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.068979 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.484087 Cd0 ! 2D drag coefficient value at 0-lift. +-0.000001 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.83172242772605e-01 0.00000000000000e+00 +-1.77000000000000e+02 2.81949266138784e-03 4.83172242772605e-01 3.93915741646687e-03 +-1.74000000000000e+02 5.63898532277570e-03 4.83172242772605e-01 7.87831483293377e-03 +-1.71000000000000e+02 8.45847798416353e-03 4.83172242772605e-01 1.18174722494007e-02 +-1.68000000000000e+02 1.12779707564823e-02 4.84245286059188e-01 1.42063162594848e-02 +-1.65000000000000e+02 1.40974635845517e-02 4.85852688023950e-01 1.58160512852875e-02 +-1.62000000000000e+02 1.69169564126210e-02 4.87454835122157e-01 1.74258158816946e-02 +-1.59000000000000e+02 1.92028997709058e-02 4.89200613320356e-01 1.84996991231948e-02 +-1.56000000000000e+02 2.04641820409662e-02 4.91229320133779e-01 1.85408600457006e-02 +-1.53000000000000e+02 2.17257261410584e-02 4.93257162696107e-01 1.85749514707104e-02 +-1.50000000000000e+02 2.29873331460310e-02 4.95283716327774e-01 1.86090197952270e-02 +-1.47000000000000e+02 2.27071840232606e-02 4.97766997581788e-01 1.84455389701860e-02 +-1.44000000000000e+02 2.24277564512003e-02 4.99963565381696e-01 1.82820581451449e-02 +-1.41000000000000e+02 2.21492175895483e-02 5.00360609886245e-01 1.81185773201038e-02 +-1.38000000000000e+02 2.16737905373953e-02 5.04866366165123e-01 1.81139904928001e-02 +-1.35000000000000e+02 2.10959322521870e-02 5.07952315438827e-01 1.81920401528625e-02 +-1.32000000000000e+02 2.05185547458125e-02 5.10605552091445e-01 1.82700898129249e-02 +-1.29000000000000e+02 1.97953125946895e-02 5.13206471446819e-01 1.83647484615528e-02 +-1.26000000000000e+02 1.87813065849505e-02 5.15703400774594e-01 1.84924204589259e-02 +-1.23000000000000e+02 1.77675364520110e-02 5.18200330102368e-01 1.86200924562990e-02 +-1.20000000000000e+02 1.67540729667672e-02 5.20697259430143e-01 1.87477644536721e-02 +-1.17000000000000e+02 1.53255269801529e-02 5.22747164884352e-01 1.88040912900066e-02 +-1.14000000000000e+02 1.38939259161035e-02 5.24793671493831e-01 1.88598756695754e-02 +-1.11000000000000e+02 1.24624728951548e-02 5.26840178103310e-01 1.89156600491441e-02 +-1.08000000000000e+02 1.08280879845950e-02 5.28424156241971e-01 1.88755952829144e-02 +-1.05000000000000e+02 9.09339582178248e-03 5.29779598696326e-01 1.87881713777189e-02 +-1.02000000000000e+02 7.35876055413841e-03 5.31135041150681e-01 1.87007474725235e-02 +-9.90000000000000e+01 5.58287432809617e-03 5.32212016314962e-01 1.85545059767655e-02 +-9.60000000000000e+01 3.72192439954511e-03 5.32715994233778e-01 1.82872365593143e-02 +-9.30000000000000e+01 1.86097447111223e-03 5.33219972152593e-01 1.80199671418631e-02 +-9.00000000000000e+01 -1.29579765561863e-09 5.33720026261274e-01 1.77518398932910e-02 +-8.70000000000000e+01 -1.86076958213086e-03 5.33215279354984e-01 1.72640410624173e-02 +-8.40000000000000e+01 -3.72156430854908e-03 5.32710532448694e-01 1.67762422315436e-02 +-8.10000000000000e+01 -5.58235903508675e-03 5.32205785542403e-01 1.62884434006699e-02 +-7.80000000000000e+01 -7.35968565899853e-03 5.31138243702963e-01 1.57240279202979e-02 +-7.50000000000000e+01 -9.09441417175699e-03 5.29782885771325e-01 1.51204303091762e-02 +-7.20000000000000e+01 -1.08291997055123e-02 5.28427527839686e-01 1.45168326980544e-02 +-6.90000000000000e+01 -1.24611732445064e-02 5.26838101724007e-01 1.38921900456641e-02 +-6.60000000000000e+01 -1.38922942365339e-02 5.24791218169617e-01 1.32264174519461e-02 +-6.30000000000000e+01 -1.53235633580639e-02 5.22744334615227e-01 1.25606448582282e-02 +-6.00000000000000e+01 -1.67549351670550e-02 5.20697451060837e-01 1.18948722645103e-02 +-5.70000000000000e+01 -1.77693703467418e-02 5.18201731939651e-01 1.12084400021116e-02 +-5.40000000000000e+01 -1.87825330152848e-02 5.15704312970903e-01 1.05219294966099e-02 +-5.10000000000000e+01 -1.97959321246678e-02 5.13206894002154e-01 9.83541899110835e-03 +-4.80000000000000e+01 -2.05178812871413e-02 5.10605516469773e-01 9.13889301841098e-03 +-4.50000000000000e+01 -2.10949680644551e-02 5.07952317521531e-01 8.43737452107259e-03 +-4.20000000000000e+01 -2.16725359969270e-02 5.04866539059501e-01 7.73585602373422e-03 +-3.90000000000000e+01 -2.21504602448681e-02 5.00358294075166e-01 7.00950559777460e-03 +-3.60000000000000e+01 -2.24285851674097e-02 4.99963545894001e-01 6.23335576003321e-03 +-3.30000000000000e+01 -2.27076007460798e-02 4.97766567367154e-01 5.45720592229178e-03 +-3.00000000000000e+01 -2.29871455534951e-02 4.95283707938131e-01 4.68103775430005e-03 +-2.93939393939394e+01 -2.13705051400567e-02 4.94827759905061e-01 4.36588257767770e-03 +-2.87878787878788e+01 -1.97561002418709e-02 4.94371601740013e-01 4.05072740105538e-03 +-2.81818181818182e+01 -1.81437318493963e-02 4.93915244465779e-01 3.73557222443302e-03 +-2.75757575757576e+01 -1.65332238939245e-02 4.93458698347443e-01 3.42041704781068e-03 +-2.69696969696970e+01 -1.49244200345439e-02 4.93001972956390e-01 3.10526187118834e-03 +-2.63636363636364e+01 -1.33171809704010e-02 4.92545077227926e-01 2.79010669456600e-03 +-2.57575757575758e+01 -1.17113821807231e-02 4.92088019513260e-01 2.47404148516940e-03 +-2.51515151515151e+01 -1.01069120152282e-02 4.91630807626459e-01 2.15725908680897e-03 +-2.45454545454545e+01 -8.50367007314121e-03 4.91173448886953e-01 1.84060585116087e-03 +-2.39393939393939e+01 -6.90156582117668e-03 4.90715950158064e-01 1.52412378750029e-03 +-2.33333333333333e+01 -5.30051741037696e-03 4.90258317881987e-01 1.20787533794965e-03 +-2.27272727272727e+01 -3.70045065920288e-03 4.89800558111604e-01 8.91957520067143e-04 +-2.21212121212121e+01 -2.10129817624549e-03 4.89342676539452e-01 5.76529703318693e-04 +-2.15151515151515e+01 -5.02998600699633e-04 4.88884678524149e-01 2.61873288870046e-04 +-2.09090909090909e+01 -3.90590072405828e-04 4.88426569114523e-01 4.59455437149892e-06 +-2.03030303030303e+01 -3.74698635776327e-04 4.87968353071678e-01 2.34484137577411e-07 +-1.96969696969697e+01 -3.49119427492384e-04 4.87501889981299e-01 -2.60477841680971e-03 +-1.90909090909091e+01 -3.20768321824982e-04 4.87255075156584e-01 -4.26931296588053e-03 +-1.84848484848485e+01 -2.97907445439061e-04 4.87120146690652e-01 -4.38670380453555e-03 +-1.78787878787879e+01 -2.77347663209027e-04 4.86932241777767e-01 -4.49680938149441e-03 +-1.72727272727273e+01 -2.55605177975474e-04 4.86766764159886e-01 -4.60976805631028e-03 +-1.66666666666667e+01 -2.37132549632729e-04 4.86597285950536e-01 -4.70354322963487e-03 +-1.60606060606061e+01 -2.16528153025586e-04 4.86411643069062e-01 -4.80972002061804e-03 +-1.54545454545455e+01 -1.95556259418687e-04 4.86240196896090e-01 -4.91046041055872e-03 +-1.48484848484848e+01 -1.81524634627943e-04 4.86068182028379e-01 -4.97671466489487e-03 +-1.42424242424242e+01 -1.64930415575847e-04 4.85906991137711e-01 -5.04653357103108e-03 +-1.36363636363636e+01 -1.48994017475893e-04 4.85744769682605e-01 -5.11176587236076e-03 +-1.30303030303030e+01 -1.35536477598244e-04 4.85595484513981e-01 -5.16086755000511e-03 +-1.24242424242424e+01 -1.20630576371916e-04 4.85442184352088e-01 -5.21189290442287e-03 +-1.18181818181818e+01 -1.03763380773739e-04 4.85286689158660e-01 -5.28046522612143e-03 +-1.12121212121212e+01 -8.83350060579755e-05 4.85146171776525e-01 -5.33482756240085e-03 +-1.06060606060606e+01 -7.17399968246865e-05 4.85000595447084e-01 -5.40685791082442e-03 +-1.00000000000000e+01 -5.78829588413557e-05 4.84878189304314e-01 -5.44723581167779e-03 +-9.39393939393939e+00 -4.57204640392228e-05 4.84757659696382e-01 -5.47515096384329e-03 +-8.78787878787879e+00 -3.36378855384512e-05 4.84644263964201e-01 -5.50267773532745e-03 +-8.18181818181818e+00 -2.30748320755383e-05 4.84534027510398e-01 -5.51133130746172e-03 +-7.57575757575758e+00 -1.46872367482696e-05 4.84415914639788e-01 -5.48619305272803e-03 +-6.96969696969697e+00 -5.99712008512304e-06 4.84297798744869e-01 -5.46637751704769e-03 +-6.36363636363636e+00 6.84201398476084e-04 4.84178361371432e-01 -5.45629372377690e-03 +-5.75757575757576e+00 2.40173013176739e-03 4.84067874675822e-01 -5.37203203968548e-03 +-5.15151515151515e+00 4.02610370835516e-03 4.83965774908254e-01 -5.25549223723874e-03 +-4.54545454545454e+00 5.29764795713167e-03 4.83900246770113e-01 -5.05672956533074e-03 +-3.93939393939394e+00 6.01845799550758e-03 4.83861042556657e-01 -4.62798053615235e-03 +-3.33333333333333e+00 2.30735712023362e-03 4.84007013290213e-01 -2.94013372274396e-03 +-2.72727272727273e+00 -1.82163527865059e-05 4.84191394736243e-01 -9.18694459707830e-04 +-2.12121212121212e+00 -8.69035582487676e-03 4.84349847343778e-01 -8.50094414354366e-06 +-1.51515151515152e+00 -1.38335109894553e-02 4.84433206971800e-01 -5.29736029119795e-07 +-9.09090909090912e-01 -1.74160209159202e-02 4.84465717792129e-01 7.56317824033695e-04 +-3.03030303030302e-01 -1.33784107290275e-02 4.84327018255576e-01 5.55006718022319e-04 + 3.03030303030302e-01 -9.10931902619871e-03 4.84223145118878e-01 3.51147613207686e-04 + 9.09090909090912e-01 -4.96496300884199e-03 4.84153387865501e-01 1.72261043531130e-04 + 1.51515151515152e+00 -6.56087131803611e-04 4.84100538529225e-01 -7.52789376495778e-08 + 2.12121212121212e+00 1.48291709278388e-05 4.84086312179961e-01 -7.36697293326691e-07 + 2.72727272727273e+00 3.95670612769947e-05 4.84087471129553e-01 -1.52220687976322e-06 + 3.33333333333333e+00 6.86543306554072e-05 4.84118532581715e-01 -2.30797626162710e-06 + 3.93939393939394e+00 1.02755174565450e-04 4.84163552034988e-01 -3.23262151237513e-06 + 4.54545454545455e+00 1.37577688129768e-04 4.84243025941150e-01 -4.10782060278466e-06 + 5.15151515151515e+00 1.77019224374533e-04 4.84330615593754e-01 -5.19294264211996e-06 + 5.75757575757576e+00 2.14325649435923e-04 4.84456213689758e-01 -6.12683318777524e-06 + 6.36363636363637e+00 2.52151603127471e-04 4.84601361818182e-01 -7.11067510659937e-06 + 6.96969696969697e+00 2.87655846109458e-04 4.84774142760945e-01 -7.93726461416561e-06 + 7.57575757575757e+00 3.24619309758772e-04 4.84960286050237e-01 -8.95651484327095e-06 + 8.18181818181818e+00 3.55394795929997e-04 4.85186792521429e-01 -9.65768832171619e-06 + 8.78787878787879e+00 3.88421631578373e-04 4.85421026223017e-01 -1.05746608323693e-05 + 9.39393939393939e+00 4.16542927247965e-04 4.85688291466263e-01 -1.12777678834982e-05 + 1.00000000000000e+01 4.50338250349402e-04 4.85952792874816e-01 -1.23759010400565e-05 + 1.06060606060606e+01 4.78553949227745e-04 4.86263272366854e-01 -1.33594846103665e-05 + 1.12121212121212e+01 5.06413802939365e-04 4.86567501811588e-01 -1.43801128826772e-05 + 1.18181818181818e+01 5.49634337227489e-04 4.86873565528610e-01 -1.55141279053585e-05 + 1.24242424242424e+01 1.04796049170724e-03 4.87200454839141e-01 -1.64495729227040e-05 + 1.30303030303030e+01 1.75243669071029e-03 4.87526965443759e-01 -1.76802656673743e-05 + 1.36363636363636e+01 2.00752499276957e-03 4.87867386570384e-01 -1.86065302367894e-05 + 1.42424242424242e+01 2.62150048292420e-03 4.88192821849638e-01 -1.98127498775239e-05 + 1.48484848484848e+01 3.49138660875814e-03 4.88505570264012e-01 -2.12311705233680e-05 + 1.54545454545455e+01 4.02063163068744e-03 4.88825967000136e-01 -2.24690349269127e-05 + 1.60606060606061e+01 5.02203806388246e-03 4.89126496864998e-01 -2.42441870688705e-05 + 1.66666666666667e+01 6.03273976298835e-03 4.89405286518844e-01 -1.27786833063692e-04 + 1.72727272727273e+01 7.45956921438468e-03 4.89660670221405e-01 -3.01762131275130e-04 + 1.78787878787879e+01 9.76723886387043e-03 4.89858441895909e-01 -5.05262065166240e-04 + 1.84848484848485e+01 1.19958516359061e-02 4.90046857421912e-01 -6.79168598205153e-04 + 1.90909090909091e+01 1.38894076164383e-02 4.90235131695584e-01 -8.50843803975892e-04 + 1.96969696969697e+01 1.64575287400606e-02 4.90373703845131e-01 -1.02503786337518e-03 + 2.03030303030303e+01 1.86346905957147e-02 4.90517562367968e-01 -1.16682175334609e-03 + 2.09090909090909e+01 2.13341045094030e-02 4.90632186366412e-01 -1.31950956318768e-03 + 2.15151515151515e+01 2.32625984120097e-02 4.90779744877737e-01 -1.43865148724692e-03 + 2.21212121212121e+01 2.57017312737615e-02 4.90901141716133e-01 -1.55007151975184e-03 + 2.27272727272727e+01 2.71302969881141e-02 4.91078945958136e-01 -1.64994407385146e-03 + 2.33333333333333e+01 2.89358295762348e-02 4.91212393382082e-01 -1.71639271025411e-03 + 2.39393939393939e+01 3.07567789627312e-02 4.91366877657633e-01 -1.79811827586233e-03 + 2.45454545454545e+01 3.20846448189445e-02 4.91543724253803e-01 -1.86992791073781e-03 + 2.51515151515151e+01 3.35363003577842e-02 4.91758373594698e-01 -1.98641392613650e-03 + 2.57575757575758e+01 3.34489197402650e-02 4.92199252772807e-01 -2.28338622525032e-03 + 2.63636363636364e+01 3.33615970480004e-02 4.92640083109943e-01 -2.58050502607877e-03 + 2.69696969696970e+01 3.32743352259861e-02 4.93080859703041e-01 -2.87774879264538e-03 + 2.75757575757576e+01 3.31871374222957e-02 4.93521576970036e-01 -3.17510001289481e-03 + 2.81818181818182e+01 3.31000070058922e-02 4.93962228528104e-01 -3.47254430081496e-03 + 2.87878787878788e+01 3.30129475863487e-02 4.94402807044736e-01 -3.77006972870583e-03 + 2.93939393939394e+01 3.29259630357181e-02 4.94843304054289e-01 -4.06766632359116e-03 + 3.00000000000000e+01 3.28390575128346e-02 4.95283709730298e-01 -4.36532568255061e-03 + 3.30000000000000e+01 3.24394301695657e-02 4.97766567367155e-01 -5.36994206518869e-03 + 3.60000000000000e+01 3.20408364478867e-02 4.99963545894001e-01 -6.37560657670909e-03 + 3.90000000000000e+01 3.16435150920369e-02 5.00358294075166e-01 -7.37519447218305e-03 + 4.20000000000000e+01 3.09607660308532e-02 5.04866539059501e-01 -8.21788173763886e-03 + 4.50000000000000e+01 3.01356688000866e-02 5.07952317521531e-01 -8.98311668645506e-03 + 4.80000000000000e+01 2.93112589335744e-02 5.10605516469773e-01 -9.74835163527123e-03 + 5.10000000000000e+01 2.82799028658790e-02 5.13206894002154e-01 -1.04794623722664e-02 + 5.40000000000000e+01 2.68321898587170e-02 5.15704312970903e-01 -1.11421167773158e-02 + 5.70000000000000e+01 2.53848146241292e-02 5.18201731939651e-01 -1.18047711823651e-02 + 6.00000000000000e+01 2.39356215163205e-02 5.20697451060837e-01 -1.24671805612078e-02 + 6.30000000000000e+01 2.18908046298926e-02 5.22744334615227e-01 -1.30648920937157e-02 + 6.60000000000000e+01 1.98461344397390e-02 5.24791218169617e-01 -1.36626036262235e-02 + 6.90000000000000e+01 1.78016758630148e-02 5.26838101724007e-01 -1.42603151587314e-02 + 7.20000000000000e+01 1.54702852515759e-02 5.28427527839686e-01 -1.48155661699554e-02 + 7.50000000000000e+01 1.29920204518073e-02 5.29782885771325e-01 -1.53490913193411e-02 + 7.80000000000000e+01 1.05138371109516e-02 5.31138243702963e-01 -1.58826164687269e-02 + 8.10000000000000e+01 7.97511432196668e-03 5.32205785542403e-01 -1.63893079089038e-02 + 8.40000000000000e+01 5.31776732849645e-03 5.32710532448694e-01 -1.68435287750243e-02 + 8.70000000000000e+01 2.66042033510978e-03 5.33215279354984e-01 -1.72977496411448e-02 + 9.00000000000000e+01 3.07354076657246e-06 5.33720026261274e-01 -1.77519705072653e-02 + 9.30000000000000e+01 -1.86097447111223e-03 5.33219972152593e-01 -1.80199671418631e-02 + 9.60000000000000e+01 -3.72192439954512e-03 5.32715994233778e-01 -1.82872365593143e-02 + 9.90000000000000e+01 -5.58287432809619e-03 5.32212016314962e-01 -1.85545059767655e-02 + 1.02000000000000e+02 -7.35876055413841e-03 5.31135041150681e-01 -1.87007474725235e-02 + 1.05000000000000e+02 -9.09339582178255e-03 5.29779598696326e-01 -1.87881713777189e-02 + 1.08000000000000e+02 -1.08280879845950e-02 5.28424156241971e-01 -1.88755952829144e-02 + 1.11000000000000e+02 -1.24624728951547e-02 5.26840178103310e-01 -1.89156600491441e-02 + 1.14000000000000e+02 -1.38939259161035e-02 5.24793671493831e-01 -1.88598756695754e-02 + 1.17000000000000e+02 -1.53255269801529e-02 5.22747164884352e-01 -1.88040912900066e-02 + 1.20000000000000e+02 -1.67540729667672e-02 5.20697259430143e-01 -1.87477644536721e-02 + 1.23000000000000e+02 -1.77675364520110e-02 5.18200330102368e-01 -1.86200924562990e-02 + 1.26000000000000e+02 -1.87813065849505e-02 5.15703400774594e-01 -1.84924204589259e-02 + 1.29000000000000e+02 -1.97953125946895e-02 5.13206471446819e-01 -1.83647484615528e-02 + 1.32000000000000e+02 -2.05185547458125e-02 5.10605552091445e-01 -1.82700898129249e-02 + 1.35000000000000e+02 -2.10959322521870e-02 5.07952315438827e-01 -1.81920401528625e-02 + 1.38000000000000e+02 -2.16737905373953e-02 5.04866366165123e-01 -1.81139904928001e-02 + 1.41000000000000e+02 -2.21492175895483e-02 5.00360609886245e-01 -1.81185773201039e-02 + 1.44000000000000e+02 -2.24277564512003e-02 4.99963565381696e-01 -1.82820581451449e-02 + 1.47000000000000e+02 -2.27071840232606e-02 4.97766997581788e-01 -1.84455389701860e-02 + 1.50000000000000e+02 -2.29873331460310e-02 4.95283716327774e-01 -1.86090197952270e-02 + 1.53000000000000e+02 -2.17257261410584e-02 4.93257162696107e-01 -1.86043234279282e-02 + 1.56000000000000e+02 -2.04641820409662e-02 4.91229320133779e-01 -1.85996073947584e-02 + 1.59000000000000e+02 -1.92028997709058e-02 4.89200613320356e-01 -1.85878213803958e-02 + 1.62000000000000e+02 -1.69169564126210e-02 4.87454835122157e-01 -1.81147585472430e-02 + 1.65000000000000e+02 -1.40974635845517e-02 4.85852688023950e-01 -1.74033242315674e-02 + 1.68000000000000e+02 -1.12779707564823e-02 4.84245286059188e-01 -1.66919245454453e-02 + 1.71000000000000e+02 -8.45847798416353e-03 4.83172242772605e-01 -1.45916489578470e-02 + 1.74000000000000e+02 -5.63898532277569e-03 4.83172242772605e-01 -9.72776597189796e-03 + 1.77000000000000e+02 -2.81949266138784e-03 4.83172242772605e-01 -4.86388298594896e-03 + 1.80000000000000e+02 0.00000000000000e+00 4.83172242772605e-01 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_02.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_02.dat new file mode 100644 index 000000000..c76a6a657 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_02.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF02_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +2.538528 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +1.985575 alpha0 ! 0-lift angle of attack, depends on airfoil. +6.969697 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-6.969697 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.210751 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.053116 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.351967 Cd0 ! 2D drag coefficient value at 0-lift. +-0.000064 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 3.43289473134723e-01 0.00000000000000e+00 +-1.77000000000000e+02 2.69363379587898e-02 3.43289473134723e-01 3.66821948216213e-02 +-1.74000000000000e+02 5.38726759175798e-02 3.43289473134723e-01 7.33643896432430e-02 +-1.71000000000000e+02 8.08090138763695e-02 3.43289473134723e-01 1.10046584464864e-01 +-1.68000000000000e+02 1.07745352781037e-01 3.53454116592797e-01 1.32271229193973e-01 +-1.65000000000000e+02 1.34681692161075e-01 3.68329099726724e-01 1.47232648505468e-01 +-1.62000000000000e+02 1.61618031541113e-01 3.82779025954478e-01 1.62196459731096e-01 +-1.59000000000000e+02 1.83238748172355e-01 3.98479789318586e-01 1.72210570181159e-01 +-1.56000000000000e+02 1.94664231694206e-01 4.17152667055953e-01 1.72442562778223e-01 +-1.53000000000000e+02 2.06110894186482e-01 4.35755637043523e-01 1.72102716166209e-01 +-1.50000000000000e+02 2.17575491373625e-01 4.54250489214468e-01 1.71762625602184e-01 +-1.47000000000000e+02 2.14189331052365e-01 4.76692525802202e-01 1.69336323635422e-01 +-1.44000000000000e+02 2.10861535698010e-01 4.96621700498324e-01 1.66910021668660e-01 +-1.41000000000000e+02 2.07605626564310e-01 5.02992767933016e-01 1.64483719701897e-01 +-1.38000000000000e+02 2.02749139667597e-01 5.40386870035518e-01 1.63852357911609e-01 +-1.35000000000000e+02 1.97057405146708e-01 5.68325813031246e-01 1.64154496148562e-01 +-1.32000000000000e+02 1.91404559979444e-01 5.93335613934694e-01 1.64456634385516e-01 +-1.29000000000000e+02 1.84469914605072e-01 6.17874052554427e-01 1.65015854539308e-01 +-1.26000000000000e+02 1.74920188616731e-01 6.41475573950322e-01 1.66086071190161e-01 +-1.23000000000000e+02 1.65389542287532e-01 6.65077095346218e-01 1.67156287841014e-01 +-1.20000000000000e+02 1.55883700150684e-01 6.88678616742112e-01 1.68226504491866e-01 +-1.17000000000000e+02 1.42568030951027e-01 7.08153804434486e-01 1.68825728332561e-01 +-1.14000000000000e+02 1.29231556890145e-01 7.27597618483537e-01 1.69421371086147e-01 +-1.11000000000000e+02 1.15907057775090e-01 7.47041432532588e-01 1.70017013839733e-01 +-1.08000000000000e+02 1.00706595427377e-01 7.62194863287689e-01 1.69800197495645e-01 +-1.05000000000000e+02 8.45761084397911e-02 7.75228412254153e-01 1.69181944466960e-01 +-1.02000000000000e+02 6.84502236022286e-02 7.88261961220616e-01 1.68563691438275e-01 +-9.90000000000000e+01 5.19407578171111e-02 7.98706532218090e-01 1.67416155630405e-01 +-9.60000000000000e+01 3.46272558380827e-02 8.03823808780349e-01 1.65179523956145e-01 +-9.30000000000000e+01 1.73137538686158e-02 8.08941085342607e-01 1.62942892281884e-01 +-9.00000000000000e+01 -1.20951109472859e-07 8.14018526873130e-01 1.60697526319487e-01 +-8.70000000000000e+01 -1.73117662426731e-02 8.08895097579108e-01 1.56215502291445e-01 +-8.40000000000000e+01 -3.46237899641846e-02 8.03771668285085e-01 1.51733478263402e-01 +-8.10000000000000e+01 -5.19358136953569e-02 7.98648238991063e-01 1.47251454235359e-01 +-7.80000000000000e+01 -6.84588950461567e-02 7.88291705281856e-01 1.42083636565396e-01 +-7.50000000000000e+01 -8.45856163633950e-02 7.75258936279591e-01 1.36565100659630e-01 +-7.20000000000000e+01 -1.00716950008702e-01 7.62226167277326e-01 1.31046564753864e-01 +-6.90000000000000e+01 -1.15894983051876e-01 7.47022203701382e-01 1.25353084619087e-01 +-6.60000000000000e+01 -1.29216446061080e-01 7.27574907727692e-01 1.19317697534207e-01 +-6.30000000000000e+01 -1.42549891005016e-01 7.08127611754002e-01 1.13282310449328e-01 +-6.00000000000000e+01 -1.55891642156930e-01 6.88680315780312e-01 1.07246923364449e-01 +-5.70000000000000e+01 -1.65406373209420e-01 6.65089980839026e-01 1.01093079977386e-01 +-5.40000000000000e+01 -1.74931404893550e-01 6.41483955218993e-01 9.49387879679946e-02 +-5.10000000000000e+01 -1.84475561861050e-01 6.17877929598961e-01 8.87844959586036e-02 +-4.80000000000000e+01 -1.91398516915822e-01 5.93335366199152e-01 8.25849848502619e-02 +-4.50000000000000e+01 -1.97048825130125e-01 5.68325956086014e-01 7.63629328597681e-02 +-4.20000000000000e+01 -2.02738053138263e-01 5.40388304917839e-01 7.01408808692742e-02 +-3.90000000000000e+01 -2.07615633300274e-01 5.02973548589897e-01 6.36852260943099e-02 +-3.60000000000000e+01 -2.10868074425942e-01 4.96619954707000e-01 5.67610905406411e-02 +-3.30000000000000e+01 -2.14192559158155e-01 4.76688640661698e-01 4.98369549869722e-02 +-3.00000000000000e+01 -2.17573856251797e-01 4.54250425732085e-01 4.29126537983432e-02 +-2.93939393939394e+01 -2.03900921364895e-01 4.50212096463956e-01 4.00828982622629e-02 +-2.87878787878788e+01 -1.90408813371928e-01 4.46156769989956e-01 3.72531427261826e-02 +-2.81818181818182e+01 -1.77081434741387e-01 4.42085337924358e-01 3.44233871901023e-02 +-2.75757575757576e+01 -1.63904543585353e-01 4.37998630591804e-01 3.15936316540219e-02 +-2.69696969696970e+01 -1.50865493762670e-01 4.33897422204653e-01 2.87638761179416e-02 +-2.63636363636364e+01 -1.37953017472494e-01 4.29782435524224e-01 2.59341205818613e-02 +-2.57575757575758e+01 -1.25157042448695e-01 4.25654346064983e-01 2.30307540964655e-02 +-2.51515151515151e+01 -1.12468537496485e-01 4.21513785893124e-01 2.00693754581451e-02 +-2.45454545454545e+01 -9.98793813738622e-02 4.17361347064459e-01 1.71184445642799e-02 +-2.39393939393939e+01 -8.73822510027575e-02 4.13197584740968e-01 1.41813594711967e-02 +-2.33333333333333e+01 -7.49705257650468e-02 4.09023020020506e-01 1.12631710122699e-02 +-2.27272727272727e+01 -6.26382052465572e-02 4.04838142509999e-01 8.37172676701844e-03 +-2.21212121212121e+01 -5.03798382748965e-02 4.00643412668864e-01 5.51991785102467e-03 +-2.15151515151515e+01 -3.81904614824902e-02 3.96439263946227e-01 2.73050630927846e-03 +-2.09090909090909e+01 -3.61185268630277e-02 3.92226104732811e-01 4.27283350684112e-04 +-2.03030303030303e+01 -3.47552132954260e-02 3.88004320145971e-01 2.49098870547722e-05 +-1.96969696969697e+01 -3.25364531099299e-02 3.83710323203969e-01 -2.16175363343959e-02 +-1.90909090909091e+01 -3.00592304303608e-02 3.81430003887334e-01 -3.54318154539485e-02 +-1.84848484848485e+01 -2.80523245669710e-02 3.80175836017098e-01 -3.64060636677595e-02 +-1.78787878787879e+01 -2.62173187214145e-02 3.78438071523079e-01 -3.73198501515414e-02 +-1.72727272727273e+01 -2.42783214919075e-02 3.76904342458150e-01 -3.82573150204757e-02 +-1.66666666666667e+01 -2.26193732436604e-02 3.75333563209587e-01 -3.90355724735958e-02 +-1.60606060606061e+01 -2.07566712833082e-02 3.73613241355750e-01 -3.99167532381998e-02 +-1.54545454545455e+01 -1.88560369587089e-02 3.72022484473177e-01 -4.07528163082213e-02 +-1.48484848484848e+01 -1.75709796411521e-02 3.70425651590572e-01 -4.13026725805158e-02 +-1.42424242424242e+01 -1.60490489658619e-02 3.68928081724958e-01 -4.18821125553278e-02 +-1.36363636363636e+01 -1.45771853989080e-02 3.67420102616353e-01 -4.24234874512001e-02 +-1.30303030303030e+01 -1.33279058848161e-02 3.66031568958452e-01 -4.28309913270409e-02 +-1.24242424242424e+01 -1.19349511747026e-02 3.64604860233539e-01 -4.32544601511001e-02 +-1.18181818181818e+01 -1.03475586380905e-02 3.63156567995401e-01 -4.38235544918265e-02 +-1.12121212121212e+01 -8.88332611777169e-03 3.61847294149321e-01 -4.42747175436082e-02 +-1.06060606060606e+01 -7.29087616996899e-03 3.60489552037892e-01 -4.48725106856955e-02 +-1.00000000000000e+01 -5.94545900434647e-03 3.59348158729102e-01 -4.52076143295108e-02 +-9.39393939393939e+00 -4.74868710391790e-03 3.58223717348468e-01 -4.54392873241593e-02 +-8.78787878787879e+00 -3.53894915684539e-03 3.57165184499214e-01 -4.56677370759260e-02 +-8.18181818181818e+00 -2.45791005829087e-03 3.56135403867895e-01 -4.57395546665615e-02 +-7.57575757575758e+00 -1.58329395015126e-03 3.55029718637904e-01 -4.55309276556872e-02 +-6.96969696969697e+00 -6.58019850111913e-04 3.53921766864734e-01 -4.53664748716075e-02 +-6.36363636363636e+00 5.67831355486918e-03 3.52798798636415e-01 -4.52827876120643e-02 +-5.75757575757576e+00 1.99324011800148e-02 3.51757506617179e-01 -4.45834843601300e-02 +-5.15151515151515e+00 3.34133769842934e-02 3.50793002732452e-01 -4.36162990527205e-02 +-4.54545454545454e+00 4.39661571445286e-02 3.50173323525706e-01 -4.19667309918965e-02 +-3.93939393939394e+00 4.99482925516060e-02 3.49802523016201e-01 -3.86163370285985e-02 +-3.33333333333333e+00 1.91491821573709e-02 3.51186837854888e-01 -2.56461743953276e-02 +-2.72727272727273e+00 -1.79625098676289e-03 3.52928813953958e-01 -8.96480081177504e-03 +-2.12121212121212e+00 -7.21228652659043e-02 3.54420540255660e-01 -8.26434619704608e-04 +-1.51515151515152e+00 -1.14806858240588e-01 3.55203393853980e-01 -5.80582140432604e-05 +-9.09090909090912e-01 -1.44538768641835e-01 3.55508404222408e-01 6.27682106696220e-03 +-3.03030303030302e-01 -1.11029897270663e-01 3.54206158149499e-01 4.60610308164949e-03 + 3.03030303030302e-01 -7.55999181195767e-02 3.53228521071158e-01 2.91423878448394e-03 + 9.09090909090912e-01 -4.12051434202336e-02 3.52570661382296e-01 1.42962616071431e-03 + 1.51515151515152e+00 -5.44498807221584e-03 3.52071504572220e-01 -8.38906566990855e-06 + 2.12121212121212e+00 1.56995648410946e-03 3.51936664849786e-01 -8.05857423901325e-05 + 2.72727272727273e+00 4.02384498001293e-03 3.51947090501750e-01 -1.63691693205454e-04 + 3.33333333333333e+00 6.81089025036188e-03 3.52239860646921e-01 -2.44834519349679e-04 + 3.93939393939394e+00 1.00111718864935e-02 3.52664077302350e-01 -3.38433949909316e-04 + 4.54545454545455e+00 1.32425723841540e-02 3.53412784412317e-01 -4.25641646824760e-04 + 5.15151515151515e+00 1.68640970742085e-02 3.54236607136970e-01 -5.32148056646853e-04 + 5.75757575757576e+00 2.02774072980387e-02 3.55416132199744e-01 -6.22823437857274e-04 + 6.36363636363637e+00 2.37243386775781e-02 3.56776021035863e-01 -7.17390940377819e-04 + 6.96969696969697e+00 2.69581119291651e-02 3.58390350050087e-01 -7.96296143531502e-04 + 7.57575757575757e+00 3.03110945079117e-02 3.60124086264644e-01 -8.92589735550941e-04 + 8.18181818181818e+00 3.31179919673880e-02 3.62226243861248e-01 -9.58582628477791e-04 + 8.78787878787879e+00 3.61138682655925e-02 3.64391592416435e-01 -1.04391675452949e-03 + 9.39393939393939e+00 3.86764269237067e-02 3.66851675270099e-01 -1.10876630872864e-03 + 1.00000000000000e+01 4.17183240529867e-02 3.69276027988775e-01 -1.20853778428129e-03 + 1.06060606060606e+01 4.42481187382032e-02 3.72108148784219e-01 -1.29498597459066e-03 + 1.12121212121212e+01 4.67564763188065e-02 3.74871519542437e-01 -1.38533268750497e-03 + 1.18181818181818e+01 4.93992984334280e-02 3.77639369018817e-01 -1.48543526599303e-03 + 1.24242424242424e+01 5.45990082219514e-02 3.80583648217260e-01 -1.56689839503313e-03 + 1.30303030303030e+01 6.14025301698267e-02 3.83512489737924e-01 -1.67456082678455e-03 + 1.36363636363636e+01 6.45916940168450e-02 3.86555480432151e-01 -1.75460628376935e-03 + 1.42424242424242e+01 7.04536335504629e-02 3.89457419982260e-01 -1.85870117164612e-03 + 1.48484848484848e+01 7.82279604148866e-02 3.92241328881682e-01 -1.98118768703166e-03 + 1.54545454545455e+01 8.31955826704410e-02 3.95087769664813e-01 -2.08706614395366e-03 + 1.60606060606061e+01 9.18082274909196e-02 3.97755650276954e-01 -2.23953925764867e-03 + 1.66666666666667e+01 1.00168994191545e-01 4.00241434034174e-01 -3.07136142399714e-03 + 1.72727272727273e+01 1.11804734342786e-01 4.02521413507346e-01 -4.41457068708384e-03 + 1.78787878787879e+01 1.30049990560009e-01 4.04316527597236e-01 -6.00275267155889e-03 + 1.84848484848485e+01 1.47647920450141e-01 4.06035919287963e-01 -7.38308432272981e-03 + 1.90909090909091e+01 1.62591082754961e-01 4.07756908501598e-01 -8.76560614551088e-03 + 1.96969696969697e+01 1.82696483057023e-01 4.09064926330565e-01 -1.01941758497141e-02 + 2.03030303030303e+01 1.99829518476805e-01 4.10417877913590e-01 -1.13825506289195e-02 + 2.09090909090909e+01 2.21224854263624e-01 4.11523574873175e-01 -1.26832405037002e-02 + 2.15151515151515e+01 2.36587336467780e-01 4.12908486812841e-01 -1.37234666110007e-02 + 2.21212121212121e+01 2.56225204419939e-01 4.14068463035091e-01 -1.47131011322153e-02 + 2.27272727272727e+01 2.67822117051572e-01 4.15702666043508e-01 -1.56137412349549e-02 + 2.33333333333333e+01 2.82406660416095e-01 4.16966802170999e-01 -1.62404665143444e-02 + 2.39393939393939e+01 2.97373329618640e-01 4.18401378541398e-01 -1.70030833298527e-02 + 2.45454545454545e+01 3.08357207788323e-01 4.20020847858194e-01 -1.76872237691817e-02 + 2.51515151515151e+01 3.20307189465871e-01 4.22010845338711e-01 -1.87787486682335e-02 + 2.57575757575758e+01 3.19103346096209e-01 4.26057954587973e-01 -2.14773069746484e-02 + 2.63636363636364e+01 3.17904188198456e-01 4.30101113176871e-01 -2.41877155468951e-02 + 2.69696969696970e+01 3.16709953988106e-01 4.34139924505172e-01 -2.69082323777416e-02 + 2.75757575757576e+01 3.15520898107286e-01 4.38173937049368e-01 -2.96374409478581e-02 + 2.81818181818182e+01 3.14337293065505e-01 4.42202634514136e-01 -3.23741775980460e-02 + 2.87878787878788e+01 3.13159430834756e-01 4.46225423785776e-01 -3.51174775176466e-02 + 2.93939393939394e+01 3.11987624618602e-01 4.50241620093213e-01 -3.78665340101626e-02 + 3.00000000000000e+01 3.10822210817799e-01 4.54250428591028e-01 -4.06206673781623e-02 + 3.30000000000000e+01 3.05989374735200e-01 4.76688640661699e-01 -4.99463012287743e-02 + 3.60000000000000e+01 3.01240110574365e-01 4.96619954707000e-01 -5.93575024133946e-02 + 3.90000000000000e+01 2.96593765845886e-01 5.02973548589897e-01 -6.82771768217728e-02 + 4.20000000000000e+01 2.89625793022385e-01 5.40388304917839e-01 -7.56566194176129e-02 + 4.50000000000000e+01 2.81498322815036e-01 5.68325956086014e-01 -8.23314956167498e-02 + 4.80000000000000e+01 2.73426452292348e-01 5.93335366199152e-01 -8.90063718158867e-02 + 5.10000000000000e+01 2.63536515408455e-01 6.17877929598961e-01 -9.53999570331613e-02 + 5.40000000000000e+01 2.49902005514796e-01 6.41483955218993e-01 -1.01229246467466e-01 + 5.70000000000000e+01 2.36294817450133e-01 6.65089980839026e-01 -1.07058535901770e-01 + 6.00000000000000e+01 2.22702344566839e-01 6.88680315780312e-01 -1.12885979807350e-01 + 6.30000000000000e+01 2.03642699911184e-01 7.08127611754002e-01 -1.18226121822051e-01 + 6.60000000000000e+01 1.84594921258962e-01 7.27574907727692e-01 -1.23566263836751e-01 + 6.90000000000000e+01 1.65564259644562e-01 7.47022203701382e-01 -1.28906405851451e-01 + 7.20000000000000e+01 1.43881356759959e-01 7.62226167277327e-01 -1.33915402064190e-01 + 7.50000000000000e+01 1.20836596728258e-01 7.75258936279591e-01 -1.38754960226612e-01 + 7.80000000000000e+01 9.77984257646376e-02 7.88291705281856e-01 -1.43594518389035e-01 + 8.10000000000000e+01 7.41969577998548e-02 7.98648238991063e-01 -1.48205620744512e-01 + 8.40000000000000e+01 4.94741616843740e-02 8.03771668285086e-01 -1.52370001133836e-01 + 8.70000000000000e+01 2.47513655756486e-02 8.08895097579108e-01 -1.56534381523160e-01 + 9.00000000000000e+01 2.85855671991495e-05 8.14018526873130e-01 -1.60698761912483e-01 + 9.30000000000000e+01 -1.73137538686158e-02 8.08941085342607e-01 -1.62942892281884e-01 + 9.60000000000000e+01 -3.46272558380828e-02 8.03823808780349e-01 -1.65179523956145e-01 + 9.90000000000000e+01 -5.19407578171112e-02 7.98706532218090e-01 -1.67416155630405e-01 + 1.02000000000000e+02 -6.84502236022286e-02 7.88261961220616e-01 -1.68563691438275e-01 + 1.05000000000000e+02 -8.45761084397912e-02 7.75228412254153e-01 -1.69181944466960e-01 + 1.08000000000000e+02 -1.00706595427377e-01 7.62194863287689e-01 -1.69800197495645e-01 + 1.11000000000000e+02 -1.15907057775090e-01 7.47041432532588e-01 -1.70017013839733e-01 + 1.14000000000000e+02 -1.29231556890145e-01 7.27597618483537e-01 -1.69421371086147e-01 + 1.17000000000000e+02 -1.42568030951027e-01 7.08153804434486e-01 -1.68825728332561e-01 + 1.20000000000000e+02 -1.55883700150685e-01 6.88678616742112e-01 -1.68226504491866e-01 + 1.23000000000000e+02 -1.65389542287532e-01 6.65077095346217e-01 -1.67156287841014e-01 + 1.26000000000000e+02 -1.74920188616731e-01 6.41475573950322e-01 -1.66086071190161e-01 + 1.29000000000000e+02 -1.84469914605072e-01 6.17874052554427e-01 -1.65015854539308e-01 + 1.32000000000000e+02 -1.91404559979443e-01 5.93335613934693e-01 -1.64456634385516e-01 + 1.35000000000000e+02 -1.97057405146708e-01 5.68325813031246e-01 -1.64154496148562e-01 + 1.38000000000000e+02 -2.02749139667597e-01 5.40386870035517e-01 -1.63852357911609e-01 + 1.41000000000000e+02 -2.07605626564310e-01 5.02992767933016e-01 -1.64483719701897e-01 + 1.44000000000000e+02 -2.10861535698010e-01 4.96621700498324e-01 -1.66910021668660e-01 + 1.47000000000000e+02 -2.14189331052365e-01 4.76692525802202e-01 -1.69336323635422e-01 + 1.50000000000000e+02 -2.17575491373625e-01 4.54250489214468e-01 -1.71762625602184e-01 + 1.53000000000000e+02 -2.06110894186482e-01 4.35755637043523e-01 -1.72376246074471e-01 + 1.56000000000000e+02 -1.94664231694206e-01 4.17152667055953e-01 -1.72989654580083e-01 + 1.59000000000000e+02 -1.83238748172355e-01 3.98479789318586e-01 -1.73031184751241e-01 + 1.62000000000000e+02 -1.61618031541113e-01 3.82779025954478e-01 -1.68611881182566e-01 + 1.65000000000000e+02 -1.34681692161075e-01 3.68329099726724e-01 -1.62013823352527e-01 + 1.68000000000000e+02 -1.07745352781037e-01 3.53454116592797e-01 -1.55418566646110e-01 + 1.71000000000000e+02 -8.08090138763696e-02 3.43289473134723e-01 -1.35881431351714e-01 + 1.74000000000000e+02 -5.38726759175798e-02 3.43289473134723e-01 -9.05876209011426e-02 + 1.77000000000000e+02 -2.69363379587898e-02 3.43289473134723e-01 -4.52938104505711e-02 + 1.80000000000000e+02 0.00000000000000e+00 3.43289473134723e-01 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_03.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_03.dat new file mode 100644 index 000000000..ecdb2c480 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_03.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF03_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +3.518213 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +1.807510 alpha0 ! 0-lift angle of attack, depends on airfoil. +6.363636 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-6.363636 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.789632 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.044551 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.178572 Cd0 ! 2D drag coefficient value at 0-lift. +-0.000305 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.60260316161741e-01 0.00000000000000e+00 +-1.77000000000000e+02 6.25099115869506e-02 1.60260316161741e-01 7.95295882092390e-02 +-1.74000000000000e+02 1.25019823173902e-01 1.60260316161741e-01 1.59059176418479e-01 +-1.71000000000000e+02 1.87529734760852e-01 1.60260316161741e-01 2.38588764627718e-01 +-1.68000000000000e+02 2.50039648079531e-01 1.81352524402366e-01 2.86835224082552e-01 +-1.65000000000000e+02 3.12549562268528e-01 2.11458646130651e-01 3.19370529901195e-01 +-1.62000000000000e+02 3.75059476457524e-01 2.39870992650065e-01 3.51915367066818e-01 +-1.59000000000000e+02 4.24343154785220e-01 2.71536360064157e-01 3.73567880603337e-01 +-1.56000000000000e+02 4.48281794828514e-01 3.11719492331487e-01 3.73203751358410e-01 +-1.53000000000000e+02 4.72304829254149e-01 3.51624054807821e-01 3.70560945866307e-01 +-1.50000000000000e+02 4.96402147698378e-01 3.91096881551915e-01 3.67917527914105e-01 +-1.47000000000000e+02 4.85416282297128e-01 4.38553163130185e-01 3.60036517389092e-01 +-1.44000000000000e+02 4.74662990776161e-01 4.81485060391600e-01 3.52155506864079e-01 +-1.41000000000000e+02 4.64196152896196e-01 5.05428451332488e-01 3.44274496339066e-01 +-1.38000000000000e+02 4.51225088914956e-01 5.73255983546432e-01 3.41198854192668e-01 +-1.35000000000000e+02 4.36940366362876e-01 6.31508244930023e-01 3.40622354675725e-01 +-1.32000000000000e+02 4.22810610880150e-01 6.86601520245647e-01 3.40045855158782e-01 +-1.29000000000000e+02 4.06202946683561e-01 7.40718865067401e-01 3.40323647148406e-01 +-1.26000000000000e+02 3.84401925284142e-01 7.92896372696895e-01 3.42299496989362e-01 +-1.23000000000000e+02 3.62676932889729e-01 8.45073880326389e-01 3.44275346830317e-01 +-1.20000000000000e+02 3.41050780734051e-01 8.97251387955883e-01 3.46251196671273e-01 +-1.17000000000000e+02 3.11579691827797e-01 9.40589450132484e-01 3.47766809228591e-01 +-1.14000000000000e+02 2.82081481000202e-01 9.83860303588528e-01 3.49278922476009e-01 +-1.11000000000000e+02 2.52630988174776e-01 1.02713115704457e+00 3.50791035723427e-01 +-1.08000000000000e+02 2.19306299114005e-01 1.06114990367757e+00 3.50774185406937e-01 +-1.05000000000000e+02 1.84054974951808e-01 1.09059717699061e+00 3.50001872980758e-01 +-1.02000000000000e+02 1.48821989528505e-01 1.12004445030366e+00 3.49229560554579e-01 +-9.90000000000000e+01 1.12830786889797e-01 1.14389138129578e+00 3.47363329780328e-01 +-9.60000000000000e+01 7.52206442081674e-02 1.15621458638569e+00 3.43246162459661e-01 +-9.30000000000000e+01 3.76105015646392e-02 1.16853779147560e+00 3.39128995138994e-01 +-9.00000000000000e+01 -6.71076419420812e-07 1.18076508468219e+00 3.34990730276177e-01 +-8.70000000000000e+01 -3.76068370455225e-02 1.16843146530400e+00 3.25449851362102e-01 +-8.40000000000000e+01 -7.52140437531368e-02 1.15609784592580e+00 3.15908972448026e-01 +-8.10000000000000e+01 -1.12821250499248e-01 1.14376422654761e+00 3.06368093533951e-01 +-7.80000000000000e+01 -1.48839968688822e-01 1.12010870152105e+00 2.95420797054934e-01 +-7.50000000000000e+01 -1.84074654010066e-01 1.09066309835409e+00 2.83754251727537e-01 +-7.20000000000000e+01 -2.19327718627881e-01 1.06121749518713e+00 2.72087706400140e-01 +-6.90000000000000e+01 -2.52605792324181e-01 1.02708978231327e+00 2.60102901734808e-01 +-6.60000000000000e+01 -2.82050044591912e-01 9.83811462649028e-01 2.47496098389157e-01 +-6.30000000000000e+01 -3.11542042711331e-01 9.40533142984791e-01 2.34889295043505e-01 +-6.00000000000000e+01 -3.41067139573410e-01 8.97254823320552e-01 2.22282491697854e-01 +-5.70000000000000e+01 -3.62711538814045e-01 8.45101324479561e-01 2.09633282036573e-01 +-5.40000000000000e+01 -3.84424893471827e-01 7.92914213213882e-01 1.96983911772439e-01 +-5.10000000000000e+01 -4.06214458938949e-01 7.40727101948203e-01 1.84334541508305e-01 +-4.80000000000000e+01 -4.22798813537752e-01 6.86601226728984e-01 1.71726471624338e-01 +-4.50000000000000e+01 -4.36923846125655e-01 6.31508913637022e-01 1.59138989213889e-01 +-4.20000000000000e+01 -4.51203967081664e-01 5.73258586216944e-01 1.46551506803440e-01 +-3.90000000000000e+01 -4.64210129084766e-01 5.05393590203560e-01 1.33450765257360e-01 +-3.60000000000000e+01 -4.74671728894862e-01 4.81476117687174e-01 1.19320703619557e-01 +-3.30000000000000e+01 -4.85420409500381e-01 4.38544901108335e-01 1.05190641981754e-01 +-3.00000000000000e+01 -4.96399030012489e-01 3.91096798492994e-01 9.10602359513363e-02 +-2.93939393939394e+01 -4.72103792325954e-01 3.82961164752090e-01 8.52304289746682e-02 +-2.87878787878788e+01 -4.48529117240794e-01 3.74757800207369e-01 7.94006219980000e-02 +-2.81818181818182e+01 -4.25610858993464e-01 3.66490257781105e-01 7.35708150213319e-02 +-2.75757575757576e+01 -4.03292266225895e-01 3.58161846167441e-01 6.77410080446638e-02 +-2.69696969696970e+01 -3.81522946343430e-01 3.49775650463169e-01 6.19112010679956e-02 +-2.63636363636364e+01 -3.60257999189290e-01 3.41334550741959e-01 5.60813940913275e-02 +-2.57575757575758e+01 -3.39457288597184e-01 3.32841238807292e-01 4.99582607406114e-02 +-2.51515151515151e+01 -3.19084826882601e-01 3.24298233329093e-01 4.36039594097737e-02 +-2.45454545454545e+01 -2.99108252358985e-01 3.15707893543133e-01 3.72912904587182e-02 +-2.39393939393939e+01 -2.79498383879276e-01 3.07072431669906e-01 3.10337945298415e-02 +-2.33333333333333e+01 -2.60228839472773e-01 2.98393924190499e-01 2.48515982843725e-02 +-2.27272727272727e+01 -2.41275708569804e-01 2.89674322100328e-01 1.87759729131700e-02 +-2.21212121212121e+01 -2.22617269230265e-01 2.80915460247230e-01 1.28582871898525e-02 +-2.15151515151515e+01 -2.04233743328383e-01 2.72119065847899e-01 7.18924376375226e-03 +-2.09090909090909e+01 -1.96948902299706e-01 2.63286766265803e-01 2.35469064249056e-03 +-2.03030303030303e+01 -1.90603598232734e-01 2.54420096124231e-01 1.68908402078335e-04 +-1.96969696969697e+01 -1.80007807959762e-01 2.45519989582654e-01 -3.92111070908493e-02 +-1.90909090909091e+01 -1.67980718085482e-01 2.40742357888521e-01 -6.42682259762145e-02 +-1.84848484848485e+01 -1.58135060275235e-01 2.38015933578392e-01 -6.60353723546863e-02 +-1.78787878787879e+01 -1.48807609094763e-01 2.34374809796640e-01 -6.76928498359075e-02 +-1.72727272727273e+01 -1.38968211395635e-01 2.31120210462392e-01 -6.93932765080813e-02 +-1.66666666666667e+01 -1.30427065647882e-01 2.27799601053872e-01 -7.08049237867765e-02 +-1.60606060606061e+01 -1.20706961204341e-01 2.24192749051888e-01 -7.24032591748987e-02 +-1.54545454545455e+01 -1.10739531594390e-01 2.20835678248715e-01 -7.39197575429923e-02 +-1.48484848484848e+01 -1.03860150294235e-01 2.17474129479842e-01 -7.49171178732355e-02 +-1.42424242424242e+01 -9.56900986262890e-02 2.14308480238146e-01 -7.59681387922530e-02 +-1.36363636363636e+01 -8.76827227953327e-02 2.11127703212149e-01 -7.69501151234120e-02 +-1.30303030303030e+01 -8.08209934666293e-02 2.08182611077835e-01 -7.76892686452732e-02 +-1.24242424242424e+01 -7.30759481500588e-02 2.05169298518861e-01 -7.84573802909746e-02 +-1.18181818181818e+01 -6.41366401237621e-02 2.02118625866263e-01 -7.94896357151744e-02 +-1.12121212121212e+01 -5.57675171022835e-02 1.99345942885780e-01 -8.03079807136606e-02 +-1.06060606060606e+01 -4.64907640286824e-02 1.96483133205917e-01 -8.13922916429900e-02 +-1.00000000000000e+01 -3.84979764832439e-02 1.94056998893522e-01 -8.20001215390947e-02 +-9.39393939393939e+00 -3.12331849866758e-02 1.91668711871795e-01 -8.24203430880585e-02 +-8.78787878787879e+00 -2.36890141702788e-02 1.89423396599720e-01 -8.28347181372239e-02 +-8.18181818181818e+00 -1.67255069501702e-02 1.87242476523589e-01 -8.29649849351539e-02 +-7.57575757575758e+00 -1.09414610336442e-02 1.84919460236368e-01 -8.25865654918421e-02 +-6.96969696969697e+00 -4.64864938121191e-03 1.82601697560320e-01 -8.22882717534534e-02 +-6.36363636363636e+00 1.02996455031340e-02 1.80260292666613e-01 -8.21364750803578e-02 +-5.75757575757576e+00 3.61545138704712e-02 1.78093041720883e-01 -8.08680393864647e-02 +-5.15151515151515e+00 6.06070683972166e-02 1.76087212877929e-01 -7.91137041061216e-02 +-4.54545454545454e+00 7.97482964524594e-02 1.74795953753938e-01 -7.61216244867759e-02 +-3.93939393939394e+00 9.05990311731248e-02 1.74021504302275e-01 -7.07208618410759e-02 +-3.33333333333333e+00 3.47338670170360e-02 1.76881918824489e-01 -5.05709214784143e-02 +-2.72727272727273e+00 -1.09403182255832e-02 1.80471437410567e-01 -2.15407603303269e-02 +-2.12121212121212e+00 -1.30820522278507e-01 1.83534234517764e-01 -4.91994264946354e-03 +-1.51515151515152e+00 -2.08243157018449e-01 1.85137515222765e-01 -4.09589591162646e-04 +-9.09090909090912e-01 -2.62172573614543e-01 1.85760667204535e-01 1.13852521970854e-02 +-3.03030303030302e-01 -2.01392292110499e-01 1.83091953611605e-01 8.35480965139759e-03 + 3.03030303030302e-01 -1.37127396924021e-01 1.81083863545279e-01 5.28601073217067e-03 + 9.09090909090912e-01 -7.47402139796025e-02 1.79731552299718e-01 2.59313659153911e-03 + 1.51515151515152e+00 -9.87642657819169e-03 1.78704910303760e-01 -6.03821967875708e-05 + 2.12121212121212e+00 1.05974582691997e-02 1.78430018369530e-01 -5.67175535711853e-04 + 2.72727272727273e+00 2.56832936723928e-02 1.78455210367800e-01 -1.12765679113336e-03 + 3.33333333333333e+00 4.18780517648964e-02 1.79063615757680e-01 -1.65706242035690e-03 + 3.93939393939394e+00 5.98096883148249e-02 1.79943710131298e-01 -2.25044031340278e-03 + 4.54545454545455e+00 7.75459070424728e-02 1.81490574140890e-01 -2.79031406866171e-03 + 5.15151515151515e+00 9.70300656322223e-02 1.83191632638067e-01 -3.43426016229653e-03 + 5.75757575757576e+00 1.15268381803450e-01 1.85618329755313e-01 -3.97295394057635e-03 + 6.36363636363637e+00 1.33542198748643e-01 1.88408971954867e-01 -4.52541846152398e-03 + 6.96969696969697e+00 1.50669426160968e-01 1.91710693319381e-01 -4.98098803001416e-03 + 7.57575757575757e+00 1.68285457849633e-01 1.95246217994202e-01 -5.52699371522666e-03 + 8.18181818181818e+00 1.83191613821914e-01 1.99512475430777e-01 -5.89867509718321e-03 + 8.78787878787879e+00 1.98931342121695e-01 2.03890198014719e-01 -6.36952626095244e-03 + 9.39393939393939e+00 2.12516418479817e-01 2.08837527234748e-01 -6.72141944174499e-03 + 1.00000000000000e+01 2.28250371334531e-01 2.13695032247162e-01 -7.24726457293738e-03 + 1.06060606060606e+01 2.41231424262543e-01 2.19335379370276e-01 -7.67246649898101e-03 + 1.12121212121212e+01 2.54213151785184e-01 2.24823583369315e-01 -8.12377472872344e-03 + 1.18181818181818e+01 2.67460208068140e-01 2.30295876258910e-01 -8.62080492946195e-03 + 1.24242424242424e+01 2.81286778603513e-01 2.36097605594379e-01 -9.01335385401104e-03 + 1.30303030303030e+01 2.97662357153300e-01 2.41846847637924e-01 -9.53745887980314e-03 + 1.36363636363636e+01 3.07781118626046e-01 2.47806712659288e-01 -9.91644708021229e-03 + 1.42424242424242e+01 3.21650775108761e-01 2.53491217779181e-01 -1.04077261693700e-02 + 1.48484848484848e+01 3.38220224956615e-01 2.58950344752112e-01 -1.09866730137575e-02 + 1.54545454545455e+01 3.49667010557966e-01 2.64531662279469e-01 -1.14759636388042e-02 + 1.60606060606061e+01 3.66762669125417e-01 2.69775892124304e-01 -1.21876588479218e-02 + 1.66666666666667e+01 3.82076243989389e-01 2.74733981369760e-01 -1.35819910784920e-02 + 1.72727272727273e+01 4.02686991442065e-01 2.79307218451958e-01 -1.56631076861829e-02 + 1.78787878787879e+01 4.32594306672392e-01 2.83055473608212e-01 -1.81692866868317e-02 + 1.84848484848485e+01 4.61213123418079e-01 2.86691194285270e-01 -2.04195091378289e-02 + 1.90909090909091e+01 4.85365279452778e-01 2.90345494824580e-01 -2.27309098442130e-02 + 1.96969696969697e+01 5.17000820310094e-01 2.93313992537965e-01 -2.51985875979323e-02 + 2.03030303030303e+01 5.44154625870315e-01 2.96362330147350e-01 -2.73370132419449e-02 + 2.09090909090909e+01 5.78460643729325e-01 2.98977571813754e-01 -2.97431098511255e-02 + 2.15151515151515e+01 6.03232970145655e-01 3.02085151292831e-01 -3.17622835197596e-02 + 2.21212121212121e+01 6.35544834242180e-01 3.04780574991419e-01 -3.37478069140311e-02 + 2.27272727272727e+01 6.54897603238594e-01 3.08292544311666e-01 -3.56098805532299e-02 + 2.33333333333333e+01 6.78739460084684e-01 3.11181444769365e-01 -3.70300896448737e-02 + 2.39393939393939e+01 7.04141433514686e-01 3.14332202301584e-01 -3.87220983343170e-02 + 2.45454545454545e+01 7.22949536666136e-01 3.17787357547477e-01 -4.03025976222634e-02 + 2.51515151515151e+01 7.42973660512095e-01 3.22144958326664e-01 -4.27444513062337e-02 + 2.57575757575758e+01 7.38672600278188e-01 3.30832317154384e-01 -4.83912380830290e-02 + 2.63636363636364e+01 7.34390210805880e-01 3.39503933312161e-01 -5.40852460346667e-02 + 2.69696969696970e+01 7.30127441341007e-01 3.48158226419494e-01 -5.98195335761015e-02 + 2.75757575757576e+01 7.25885306586576e-01 3.56793397236538e-01 -6.55884561329513e-02 + 2.81818181818182e+01 7.21664892443900e-01 3.65407388419426e-01 -7.13873767329105e-02 + 2.87878787878788e+01 7.17467362368778e-01 3.73997836516896e-01 -7.72124507792882e-02 + 2.93939393939394e+01 7.13293964420990e-01 3.82562012839555e-01 -8.30604637318461e-02 + 3.00000000000000e+01 7.09146039096962e-01 3.91096750071581e-01 -8.89287071187484e-02 + 3.30000000000000e+01 6.93457735754454e-01 4.38544901108335e-01 -1.08659957285087e-01 + 3.60000000000000e+01 6.78102477524471e-01 4.81476117687174e-01 -1.28732361374683e-01 + 3.90000000000000e+01 6.63157334694340e-01 5.05393590203560e-01 -1.46846119795892e-01 + 4.20000000000000e+01 6.44577101146443e-01 5.73258586216944e-01 -1.61486755288217e-01 + 4.50000000000000e+01 6.24176925257021e-01 6.31508913637022e-01 -1.74648406010066e-01 + 4.80000000000000e+01 6.03998304096223e-01 6.86601226728984e-01 -1.87810056731916e-01 + 5.10000000000000e+01 5.80306366840804e-01 7.40727101948203e-01 -2.00467707667616e-01 + 5.40000000000000e+01 5.49178416354277e-01 7.92914213213882e-01 -2.12114288315678e-01 + 5.70000000000000e+01 5.18159338435025e-01 8.45101324479561e-01 -2.23760868963740e-01 + 6.00000000000000e+01 4.87238768229535e-01 8.97254823320553e-01 -2.35404713759652e-01 + 6.30000000000000e+01 4.45060058189532e-01 9.40533142984791e-01 -2.46326171573322e-01 + 6.60000000000000e+01 4.02928632035880e-01 9.83811462649028e-01 -2.57247629386993e-01 + 6.90000000000000e+01 3.60865414194790e-01 1.02708978231327e+00 -2.68169087200664e-01 + 7.20000000000000e+01 3.13325311807448e-01 1.06121749518713e+00 -2.78559010218244e-01 + 7.50000000000000e+01 2.62963795536045e-01 1.09066309835409e+00 -2.88676961738703e-01 + 7.80000000000000e+01 2.12628535514105e-01 1.12010870152105e+00 -2.98794913259161e-01 + 8.10000000000000e+01 1.61179588960643e-01 1.14376422654761e+00 -3.08479743867359e-01 + 8.40000000000000e+01 1.07473809851563e-01 1.15609784592580e+00 -3.17317650827198e-01 + 8.70000000000000e+01 5.37680307694033e-02 1.16843146530400e+00 -3.26155557787037e-01 + 9.00000000000000e+01 6.23158439429542e-05 1.18076508468219e+00 -3.34993464746877e-01 + 9.30000000000000e+01 -3.76105015646393e-02 1.16853779147560e+00 -3.39128995138994e-01 + 9.60000000000000e+01 -7.52206442081676e-02 1.15621458638569e+00 -3.43246162459661e-01 + 9.90000000000000e+01 -1.12830786889797e-01 1.14389138129578e+00 -3.47363329780328e-01 + 1.02000000000000e+02 -1.48821989528505e-01 1.12004445030366e+00 -3.49229560554579e-01 + 1.05000000000000e+02 -1.84054974951808e-01 1.09059717699061e+00 -3.50001872980758e-01 + 1.08000000000000e+02 -2.19306299114005e-01 1.06114990367757e+00 -3.50774185406937e-01 + 1.11000000000000e+02 -2.52630988174776e-01 1.02713115704457e+00 -3.50791035723427e-01 + 1.14000000000000e+02 -2.82081481000202e-01 9.83860303588528e-01 -3.49278922476009e-01 + 1.17000000000000e+02 -3.11579691827797e-01 9.40589450132484e-01 -3.47766809228591e-01 + 1.20000000000000e+02 -3.41050780734051e-01 8.97251387955883e-01 -3.46251196671273e-01 + 1.23000000000000e+02 -3.62676932889730e-01 8.45073880326389e-01 -3.44275346830317e-01 + 1.26000000000000e+02 -3.84401925284142e-01 7.92896372696895e-01 -3.42299496989362e-01 + 1.29000000000000e+02 -4.06202946683561e-01 7.40718865067401e-01 -3.40323647148406e-01 + 1.32000000000000e+02 -4.22810610880150e-01 6.86601520245647e-01 -3.40045855158782e-01 + 1.35000000000000e+02 -4.36940366362876e-01 6.31508244930023e-01 -3.40622354675725e-01 + 1.38000000000000e+02 -4.51225088914956e-01 5.73255983546431e-01 -3.41198854192668e-01 + 1.41000000000000e+02 -4.64196152896196e-01 5.05428451332487e-01 -3.44274496339066e-01 + 1.44000000000000e+02 -4.74662990776161e-01 4.81485060391600e-01 -3.52155506864079e-01 + 1.47000000000000e+02 -4.85416282297128e-01 4.38553163130185e-01 -3.60036517389092e-01 + 1.50000000000000e+02 -4.96402147698378e-01 3.91096881551915e-01 -3.67917527914105e-01 + 1.53000000000000e+02 -4.72304829254149e-01 3.51624054807821e-01 -3.71153943454995e-01 + 1.56000000000000e+02 -4.48281794828514e-01 3.11719492331487e-01 -3.74389815878210e-01 + 1.59000000000000e+02 -4.24343154785220e-01 2.71536360064157e-01 -3.75346856146680e-01 + 1.62000000000000e+02 -3.75059476457524e-01 2.39870992650065e-01 -3.65822738263874e-01 + 1.65000000000000e+02 -3.12549562268528e-01 2.11458646130651e-01 -3.51414272406199e-01 + 1.68000000000000e+02 -2.50039648079531e-01 1.81352524402366e-01 -3.37016968521618e-01 + 1.71000000000000e+02 -1.87529734760852e-01 1.60260316161741e-01 -2.94597251310912e-01 + 1.74000000000000e+02 -1.25019823173902e-01 1.60260316161741e-01 -1.96398167540608e-01 + 1.77000000000000e+02 -6.25099115869505e-02 1.60260316161741e-01 -9.81990837703038e-02 + 1.80000000000000e+02 0.00000000000000e+00 1.60260316161741e-01 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_04.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_04.dat new file mode 100644 index 000000000..48b1acf4e --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_04.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF04_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +4.575668 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +1.678026 alpha0 ! 0-lift angle of attack, depends on airfoil. +7.575758 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-7.575758 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.117346 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.065433 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.058238 Cd0 ! 2D drag coefficient value at 0-lift. +-0.000604 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 3.69261515818396e-02 0.00000000000000e+00 +-1.77000000000000e+02 9.61561396485374e-02 3.69261515818396e-02 1.08435808466555e-01 +-1.74000000000000e+02 1.92312279297076e-01 3.69261515818396e-02 2.16871616933111e-01 +-1.71000000000000e+02 2.88468418945613e-01 3.69261515818396e-02 3.25307425399666e-01 +-1.68000000000000e+02 3.84624560423666e-01 6.01380649333760e-02 3.91539964279248e-01 +-1.65000000000000e+02 4.80780702821183e-01 9.30743870678513e-02 4.36575627596999e-01 +-1.62000000000000e+02 5.76936845218698e-01 1.23938116489908e-01 4.81622953973808e-01 +-1.59000000000000e+02 6.51138310249274e-01 1.62301909596915e-01 5.10771090342463e-01 +-1.56000000000000e+02 6.83242486468173e-01 2.17848773316287e-01 5.08040542674193e-01 +-1.53000000000000e+02 7.15449932106115e-01 2.73054764341519e-01 5.02521686522527e-01 +-1.50000000000000e+02 7.47746821918152e-01 3.27732640143157e-01 4.97001911521205e-01 +-1.47000000000000e+02 7.24682681899944e-01 3.93713651966604e-01 4.83624383579882e-01 +-1.44000000000000e+02 7.01903131552697e-01 4.55943544939258e-01 4.70246855638560e-01 +-1.41000000000000e+02 6.79474100994425e-01 5.06333517159862e-01 4.56869327697238e-01 +-1.38000000000000e+02 6.55525971247972e-01 5.85469685631553e-01 4.50960764517217e-01 +-1.35000000000000e+02 6.30773998531739e-01 6.62538293918764e-01 4.48936608683764e-01 +-1.32000000000000e+02 6.06211651697929e-01 7.38510114908598e-01 4.46912452850311e-01 +-1.29000000000000e+02 5.78825459891555e-01 8.13197930182572e-01 4.46351323028109e-01 +-1.26000000000000e+02 5.45498346167394e-01 8.85333553411779e-01 4.48698220250550e-01 +-1.23000000000000e+02 5.12264265545196e-01 9.57469176640986e-01 4.51045117472991e-01 +-1.20000000000000e+02 4.79151131054114e-01 1.02960479987019e+00 4.53392014695432e-01 +-1.17000000000000e+02 4.36567106094133e-01 1.08979884070917e+00 4.55675567001074e-01 +-1.14000000000000e+02 3.93950871010320e-01 1.14990208643231e+00 4.57958637677994e-01 +-1.11000000000000e+02 3.51393026191654e-01 1.21000533215544e+00 4.60241708354914e-01 +-1.08000000000000e+02 3.04233766770086e-01 1.25754719922627e+00 4.60674458599600e-01 +-1.05000000000000e+02 2.54785781643958e-01 1.29888247914140e+00 4.60192964051059e-01 +-1.02000000000000e+02 2.05360236766330e-01 1.34021775905654e+00 4.59711469502518e-01 +-9.90000000000000e+01 1.55203069853609e-01 1.37393211630545e+00 4.57792771524824e-01 +-9.60000000000000e+01 1.03468543301714e-01 1.39196503501094e+00 4.52916765326624e-01 +-9.30000000000000e+01 5.17340167964408e-02 1.40999795371643e+00 4.48040759128424e-01 +-9.00000000000000e+01 -1.62207591877051e-06 1.42789053716492e+00 4.43133822317052e-01 +-8.70000000000000e+01 -5.17324542451146e-02 1.40984636428621e+00 4.30306239387323e-01 +-8.40000000000000e+01 -1.03464407957840e-01 1.39180219140749e+00 4.17478656457594e-01 +-8.10000000000000e+01 -1.55196361717671e-01 1.37375801852877e+00 4.04651073527865e-01 +-7.80000000000000e+01 -2.05380790522915e-01 1.34030510156213e+00 3.89987299573517e-01 +-7.50000000000000e+01 -2.54808471077774e-01 1.29897207721026e+00 3.74384488513274e-01 +-7.20000000000000e+01 -3.04258641509645e-01 1.25763905285838e+00 3.58781677453031e-01 +-6.90000000000000e+01 -3.51362530266462e-01 1.20994925138273e+00 3.42806420345691e-01 +-6.60000000000000e+01 -3.93912782837651e-01 1.14983591189644e+00 3.26103263308416e-01 +-6.30000000000000e+01 -4.36521459752130e-01 1.08972257241015e+00 3.09400106271141e-01 +-6.00000000000000e+01 -4.79170638034480e-01 1.02960923292386e+00 2.92696949233867e-01 +-5.70000000000000e+01 -5.12305835318197e-01 9.57506090112597e-01 2.76151584880129e-01 +-5.40000000000000e+01 -5.45525899613481e-01 8.85357539050614e-01 2.59606818124995e-01 +-5.10000000000000e+01 -5.78839219476102e-01 8.13208987988631e-01 2.43062051369861e-01 +-4.80000000000000e+01 -6.06198920899004e-01 7.38509959753599e-01 2.26713686398274e-01 +-4.50000000000000e+01 -6.30756510919412e-01 6.62539565951297e-01 2.10463224073137e-01 +-4.20000000000000e+01 -6.55503875249794e-01 5.85472722235796e-01 1.94212761747999e-01 +-3.90000000000000e+01 -6.79475281259253e-01 5.06292843762469e-01 1.77255854850410e-01 +-3.60000000000000e+01 -7.01903150748772e-01 4.55924190884640e-01 1.58882202411178e-01 +-3.30000000000000e+01 -7.24682307446507e-01 3.93701944896593e-01 1.40508549971945e-01 +-3.00000000000000e+01 -7.47743329033774e-01 3.27732620276206e-01 1.22134442893328e-01 +-2.93939393939394e+01 -7.24263910274173e-01 3.17319840008849e-01 1.14494909779016e-01 +-2.87878787878788e+01 -7.01666209931885e-01 3.06824180756333e-01 1.06855376664703e-01 +-2.81818181818182e+01 -6.79871735866184e-01 2.96249990061814e-01 9.92158435503908e-02 +-2.75757575757576e+01 -6.58811044121025e-01 2.85601316618015e-01 9.15763104360783e-02 +-2.69696969696970e+01 -6.38422471658775e-01 2.74881935512148e-01 8.39367773217659e-02 +-2.63636363636364e+01 -6.18651076278581e-01 2.64095370954316e-01 7.62972442074535e-02 +-2.57575757575758e+01 -5.99447745249706e-01 2.53244916777279e-01 6.82987814653912e-02 +-2.51515151515151e+01 -5.80768442142604e-01 2.42333654958451e-01 6.00174493859840e-02 +-2.45454545454545e+01 -5.62573567490142e-01 2.31364472383196e-01 5.17870608830831e-02 +-2.39393939393939e+01 -5.44827413701121e-01 2.20340076041232e-01 4.36241850011550e-02 +-2.33333333333333e+01 -5.27497698404229e-01 2.09263006824379e-01 3.55534497848009e-02 +-2.27272727272727e+01 -5.10555163364847e-01 1.98135652073564e-01 2.76131203130840e-02 +-2.21212121212121e+01 -4.93973228470973e-01 1.86960257005410e-01 1.98660541277194e-02 +-2.15151515151515e+01 -4.77727692164379e-01 1.75738935133396e-01 1.24232397760766e-02 +-2.09090909090909e+01 -4.65560707089763e-01 1.64473677785325e-01 5.64286179080771e-03 +-2.03030303030303e+01 -4.53930595242598e-01 1.53166362807221e-01 5.01654550288277e-04 +-1.96969696969697e+01 -4.33534652990385e-01 1.42286561873333e-01 -4.57486314984200e-02 +-1.90909090909091e+01 -4.09687399355171e-01 1.36301741623761e-01 -7.49834321288310e-02 +-1.84848484848485e+01 -3.89810957837796e-01 1.32532474073061e-01 -7.70452083568055e-02 +-1.78787878787879e+01 -3.69862256856007e-01 1.27986264943633e-01 -7.89790309935812e-02 +-1.72727272727273e+01 -3.48873926203229e-01 1.23777711536891e-01 -8.09629635827611e-02 +-1.66666666666667e+01 -3.30246313627656e-01 1.19537205563504e-01 -8.26099696468630e-02 +-1.60606060606061e+01 -3.08621588451044e-01 1.15056292613002e-01 -8.44747896457645e-02 +-1.54545454545455e+01 -2.86286916960586e-01 1.10809987371126e-01 -8.62441282377387e-02 +-1.48484848484848e+01 -2.70420659080002e-01 1.06601171416345e-01 -8.74077748063938e-02 +-1.42424242424242e+01 -2.51506415144906e-01 1.02592757728758e-01 -8.86340285974399e-02 +-1.36363636363636e+01 -2.32635236433964e-01 9.86023562874178e-02 -8.97797262491352e-02 +-1.30303030303030e+01 -2.16261532939971e-01 9.48452535236351e-02 -9.06421161330536e-02 +-1.24242424242424e+01 -1.97490671546225e-01 9.10632796775068e-02 -9.15382922228391e-02 +-1.18181818181818e+01 -1.75481935270630e-01 8.72804020080697e-02 -9.27426518167813e-02 +-1.12121212121212e+01 -1.54507244286466e-01 8.37827741929287e-02 -9.36974364824522e-02 +-1.06060606060606e+01 -1.30741794852806e-01 8.02373968607669e-02 -9.49625306054176e-02 +-1.00000000000000e+01 -1.09816274857650e-01 7.71464684717935e-02 -9.56717017559845e-02 +-9.39393939393939e+00 -9.03561656863044e-02 7.41165459417843e-02 -9.61619853061708e-02 +-8.78787878787879e+00 -6.95897862736152e-02 7.12867130979703e-02 -9.66454475910404e-02 +-8.18181818181818e+00 -4.98211770227645e-02 6.85594549785873e-02 -9.67974332955289e-02 +-7.57575757575758e+00 -3.30073758783720e-02 6.57561082648822e-02 -9.63559213631114e-02 +-6.96969696969697e+00 -1.42712258373142e-02 6.30231331274283e-02 -9.60078942012103e-02 +-6.36363636363636e+00 1.20168677103534e-02 6.03202412071505e-02 -9.58307890242499e-02 +-5.75757575757576e+00 4.21824236748139e-02 5.78579975429111e-02 -9.43508716884576e-02 +-5.15151515151515e+00 7.07118631432588e-02 5.56067730855893e-02 -9.23040425061256e-02 +-4.54545454545454e+00 9.30444381123263e-02 5.41522387718443e-02 -8.88131044001897e-02 +-3.93939393939394e+00 1.05704276128955e-01 5.32724663462652e-02 -8.33247986572437e-02 +-3.33333333333333e+00 4.05249175698061e-02 5.63521616992508e-02 -6.38729143178544e-02 +-2.72727272727273e+00 -2.94071613255931e-02 6.02322704198452e-02 -3.43998387474541e-02 +-2.12121212121212e+00 -1.52631749271546e-01 6.35416384243744e-02 -1.29099202070244e-02 +-1.51515151515152e+00 -2.42962776603875e-01 6.52733561466753e-02 -1.25607028822501e-03 +-9.09090909090912e-01 -3.05883647495462e-01 6.59425044034069e-02 1.32834736360348e-02 +-3.03030303030302e-01 -2.34969692057879e-01 6.30493908708949e-02 9.74777649342195e-03 + 3.03030303030302e-01 -1.59990146049170e-01 6.08736248363312e-02 6.16732795945986e-03 + 9.09090909090912e-01 -8.72013763738860e-02 5.94157067675068e-02 3.02548076687886e-03 + 1.51515151515152e+00 -1.15230870426593e-02 5.83132054205569e-02 -1.88039529050894e-04 + 2.12121212121212e+00 3.13546036773722e-02 5.80332257645320e-02 -1.73612309824402e-03 + 2.72727272727273e+00 7.22929159945613e-02 5.80817919456454e-02 -3.39317069182672e-03 + 3.33333333333333e+00 1.13662149422369e-01 5.87686006690081e-02 -4.91371157883602e-03 + 3.93939393939394e+00 1.57538759812894e-01 5.97566586425266e-02 -6.57324371678287e-03 + 4.54545454545455e+00 1.99823433545614e-01 6.14663925353155e-02 -8.04857463880167e-03 + 5.15151515151515e+00 2.45065920203454e-01 6.33543492953554e-02 -9.76632637979478e-03 + 5.75757575757576e+00 2.87021467548531e-01 6.60247823769882e-02 -1.11766934915622e-02 + 6.36363636363637e+00 3.28603400098655e-01 6.90936041616050e-02 -1.25965476293574e-02 + 6.96969696969697e+00 3.67523632643117e-01 7.27160415457514e-02 -1.37517912338302e-02 + 7.57575757575757e+00 4.07100338538524e-01 7.65986322876512e-02 -1.51072570984753e-02 + 8.18181818181818e+00 4.41100239417241e-01 8.12614776640632e-02 -1.60224819843053e-02 + 8.78787878787879e+00 4.76461186248692e-01 8.60502643278235e-02 -1.71526477334360e-02 + 9.39393939393939e+00 5.07373092098352e-01 9.14438253753549e-02 -1.79791472239328e-02 + 1.00000000000000e+01 5.41925839590315e-01 9.67553532604763e-02 -1.91658648689292e-02 + 1.06060606060606e+01 5.70093409308658e-01 1.02898583130924e-01 -2.00280363546553e-02 + 1.12121212121212e+01 5.98626445513690e-01 1.08918741769516e-01 -2.09669249151984e-02 + 1.18181818181818e+01 6.27490690165808e-01 1.14926199023141e-01 -2.19907580671307e-02 + 1.24242424242424e+01 6.51872542629044e-01 1.21322096059737e-01 -2.27588119859938e-02 + 1.30303030303030e+01 6.78758370686746e-01 1.27676689239806e-01 -2.38028586716378e-02 + 1.36363636363636e+01 6.98462877761846e-01 1.34306102109459e-01 -2.45208119052044e-02 + 1.42424242424242e+01 7.20899081270112e-01 1.40701367033843e-01 -2.54458742186635e-02 + 1.48484848484848e+01 7.45303462470154e-01 1.46916064217618e-01 -2.65391155105126e-02 + 1.54545454545455e+01 7.63381638913214e-01 1.53321505867317e-01 -2.74232226209568e-02 + 1.60606060606061e+01 7.86662359860549e-01 1.59417383176455e-01 -2.87350486638243e-02 + 1.66666666666667e+01 8.05461124183234e-01 1.65390234111110e-01 -3.01447367255593e-02 + 1.72727272727273e+01 8.29469375319781e-01 1.70983016932340e-01 -3.20574105124074e-02 + 1.78787878787879e+01 8.59777729182509e-01 1.75921786579349e-01 -3.43821004975803e-02 + 1.84848484848485e+01 8.87990744008448e-01 1.80818083592301e-01 -3.65479942613673e-02 + 1.90909090909091e+01 9.11217319519110e-01 1.85776122213220e-01 -3.88216555945352e-02 + 1.96969696969697e+01 9.39448227453711e-01 1.90216316181308e-01 -4.13362757919033e-02 + 2.03030303030303e+01 9.63619158767318e-01 1.94731387940745e-01 -4.36352913158374e-02 + 2.09090909090909e+01 9.94342040128633e-01 1.98856538380616e-01 -4.63010226905121e-02 + 2.15151515151515e+01 1.01633788702130e+00 2.03433323698328e-01 -4.87044639992655e-02 + 2.21212121212121e+01 1.04579816920535e+00 2.07591912788625e-01 -5.11836916299387e-02 + 2.27272727272727e+01 1.06368496891618e+00 2.12448907611224e-01 -5.36145192898519e-02 + 2.33333333333333e+01 1.08419131173117e+00 2.16810203033928e-01 -5.57347841735542e-02 + 2.39393939393939e+01 1.10768699056528e+00 2.21312659134137e-01 -5.81888599572637e-02 + 2.45454545454545e+01 1.12511977609744e+00 2.26041728028903e-01 -6.06084655537125e-02 + 2.51515151515151e+01 1.14225455685196e+00 2.32245484011658e-01 -6.41906846237583e-02 + 2.57575757575758e+01 1.13291011341482e+00 2.44265034480572e-01 -7.16535749974038e-02 + 2.63636363636364e+01 1.12358851650668e+00 2.56265321387931e-01 -7.91742476920668e-02 + 2.69696969696970e+01 1.11429092767482e+00 2.68244410896767e-01 -8.67442086180342e-02 + 2.75757575757576e+01 1.10501858856339e+00 2.80200101362279e-01 -9.43565507762735e-02 + 2.81818181818182e+01 1.09577282793852e+00 2.92129875309958e-01 -1.02005600122816e-01 + 2.87878787878788e+01 1.08655506946612e+00 3.04030840696142e-01 -1.09686652206303e-01 + 2.93939393939394e+01 1.07736684033798e+00 3.15899658552518e-01 -1.17395773545692e-01 + 3.00000000000000e+01 1.06820978085626e+00 3.27732453184332e-01 -1.25129649911942e-01 + 3.30000000000000e+01 1.03526044623764e+00 3.93701944896593e-01 -1.50264882768623e-01 + 3.60000000000000e+01 1.00271879404268e+00 4.55924190884640e-01 -1.75817528707006e-01 + 3.90000000000000e+01 9.70678980689457e-01 5.06292843762469e-01 -1.98973472463633e-01 + 4.20000000000000e+01 9.36434112872921e-01 5.85472722235796e-01 -2.17563891692053e-01 + 4.50000000000000e+01 9.01080731968401e-01 6.62539565951297e-01 -2.34187162660856e-01 + 4.80000000000000e+01 8.65998457119479e-01 7.38509959753599e-01 -2.50810433629660e-01 + 5.10000000000000e+01 8.26913167191264e-01 8.13208987988631e-01 -2.66853152373984e-01 + 5.40000000000000e+01 7.79322710687756e-01 8.85357539050614e-01 -2.81731229543600e-01 + 5.70000000000000e+01 7.31865476401895e-01 9.57506090112598e-01 -2.96609306713215e-01 + 6.00000000000000e+01 6.84529480673892e-01 1.02960923292386e+00 -3.11484927038945e-01 + 6.30000000000000e+01 6.23602083198480e-01 1.08972257241015e+00 -3.25711831007736e-01 + 6.60000000000000e+01 5.62732544781195e-01 1.14983591189644e+00 -3.39938734976526e-01 + 6.90000000000000e+01 5.01946469653963e-01 1.20994925138273e+00 -3.54165638945317e-01 + 7.20000000000000e+01 4.34655202907099e-01 1.25763905285838e+00 -3.67855455510675e-01 + 7.50000000000000e+01 3.64012106788991e-01 1.29897207721026e+00 -3.81270459464949e-01 + 7.80000000000000e+01 2.93401139203055e-01 1.34030510156213e+00 -3.94685463419223e-01 + 8.10000000000000e+01 2.21717809183523e-01 1.37375801852877e+00 -4.07572617007871e-01 + 8.40000000000000e+01 1.47840753466704e-01 1.39180219140749e+00 -4.19427613190147e-01 + 8.70000000000000e+01 7.39636977828243e-02 1.40984636428621e+00 -4.31282609372424e-01 + 9.00000000000000e+01 8.67206044677110e-05 1.42789053716492e+00 -4.43137605554701e-01 + 9.30000000000000e+01 -5.17340167964408e-02 1.40999795371643e+00 -4.48040759128424e-01 + 9.60000000000000e+01 -1.03468543301714e-01 1.39196503501094e+00 -4.52916765326624e-01 + 9.90000000000000e+01 -1.55203069853610e-01 1.37393211630545e+00 -4.57792771524824e-01 + 1.02000000000000e+02 -2.05360236766330e-01 1.34021775905654e+00 -4.59711469502518e-01 + 1.05000000000000e+02 -2.54785781643958e-01 1.29888247914140e+00 -4.60192964051059e-01 + 1.08000000000000e+02 -3.04233766770086e-01 1.25754719922627e+00 -4.60674458599600e-01 + 1.11000000000000e+02 -3.51393026191654e-01 1.21000533215544e+00 -4.60241708354914e-01 + 1.14000000000000e+02 -3.93950871010320e-01 1.14990208643231e+00 -4.57958637677994e-01 + 1.17000000000000e+02 -4.36567106094133e-01 1.08979884070917e+00 -4.55675567001074e-01 + 1.20000000000000e+02 -4.79151131054114e-01 1.02960479987019e+00 -4.53392014695432e-01 + 1.23000000000000e+02 -5.12264265545196e-01 9.57469176640986e-01 -4.51045117472991e-01 + 1.26000000000000e+02 -5.45498346167394e-01 8.85333553411779e-01 -4.48698220250550e-01 + 1.29000000000000e+02 -5.78825459891555e-01 8.13197930182571e-01 -4.46351323028109e-01 + 1.32000000000000e+02 -6.06211651697928e-01 7.38510114908598e-01 -4.46912452850311e-01 + 1.35000000000000e+02 -6.30773998531739e-01 6.62538293918764e-01 -4.48936608683764e-01 + 1.38000000000000e+02 -6.55525971247973e-01 5.85469685631552e-01 -4.50960764517217e-01 + 1.41000000000000e+02 -6.79474100994425e-01 5.06333517159862e-01 -4.56869327697238e-01 + 1.44000000000000e+02 -7.01903131552697e-01 4.55943544939258e-01 -4.70246855638560e-01 + 1.47000000000000e+02 -7.24682681899944e-01 3.93713651966604e-01 -4.83624383579882e-01 + 1.50000000000000e+02 -7.47746821918153e-01 3.27732640143157e-01 -4.97001911521205e-01 + 1.53000000000000e+02 -7.15449932106115e-01 2.73054764341519e-01 -5.03329957350340e-01 + 1.56000000000000e+02 -6.83242486468173e-01 2.17848773316287e-01 -5.09657178845308e-01 + 1.59000000000000e+02 -6.51138310249274e-01 1.62301909596915e-01 -5.13195901080154e-01 + 1.62000000000000e+02 -5.76936845218698e-01 1.23938116489908e-01 -5.00579330978757e-01 + 1.65000000000000e+02 -4.80780702821183e-01 9.30743870678513e-02 -4.80252374795715e-01 + 1.68000000000000e+02 -3.84624560423667e-01 6.01380649333760e-02 -4.59939076991878e-01 + 1.71000000000000e+02 -2.88468418945613e-01 3.69261515818396e-02 -4.01648422205554e-01 + 1.74000000000000e+02 -1.92312279297076e-01 3.69261515818396e-02 -2.67765614803703e-01 + 1.77000000000000e+02 -9.61561396485374e-02 3.69261515818396e-02 -1.33882807401851e-01 + 1.80000000000000e+02 0.00000000000000e+00 3.69261515818396e-02 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_05.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_05.dat new file mode 100644 index 000000000..4d128feff --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_05.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF05_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +5.700528 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +1.619305 alpha0 ! 0-lift angle of attack, depends on airfoil. +8.787879 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-8.787879 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.349133 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.070050 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.017791 Cd0 ! 2D drag coefficient value at 0-lift. +-0.000837 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.54114505447825e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.19110382529846e-01 1.54114505447825e-03 1.16786134848211e-01 +-1.74000000000000e+02 2.38220765059692e-01 1.54114505447825e-03 2.33572269696424e-01 +-1.71000000000000e+02 3.57331147589538e-01 1.54114505447825e-03 3.50358404544635e-01 +-1.68000000000000e+02 4.76441531537635e-01 1.66868514607833e-02 4.22516636434320e-01 +-1.65000000000000e+02 5.95551916198505e-01 3.90550935704237e-02 4.72248836824051e-01 +-1.62000000000000e+02 7.14662300859374e-01 6.10077362656450e-02 5.21983375907961e-01 +-1.59000000000000e+02 8.04936111926567e-01 9.64503662230332e-02 5.52702533284072e-01 +-1.56000000000000e+02 8.39835066129045e-01 1.58361526954559e-01 5.46628177365108e-01 +-1.53000000000000e+02 8.74754728071071e-01 2.20204335379705e-01 5.39994705626632e-01 +-1.50000000000000e+02 9.09685409856507e-01 2.81942620336790e-01 5.33360214440234e-01 +-1.47000000000000e+02 8.74374361817425e-01 3.57705990143872e-01 5.18007681246983e-01 +-1.44000000000000e+02 8.39120380128086e-01 4.32845771446553e-01 5.02655148053732e-01 +-1.41000000000000e+02 8.03936685195121e-01 5.06432248538826e-01 4.87302614860481e-01 +-1.38000000000000e+02 7.69379682388640e-01 5.86802047999730e-01 4.80322055002040e-01 +-1.35000000000000e+02 7.35145837994259e-01 6.68917130903646e-01 4.77695532920763e-01 +-1.32000000000000e+02 7.00950017667618e-01 7.51011725243962e-01 4.75069010839486e-01 +-1.29000000000000e+02 6.64343477250095e-01 8.31740905358229e-01 4.74125260464526e-01 +-1.26000000000000e+02 6.22879421935179e-01 9.09756079387874e-01 4.76526321182669e-01 +-1.23000000000000e+02 5.81434021758083e-01 9.87771253417519e-01 4.78927381900812e-01 +-1.20000000000000e+02 5.40012873881484e-01 1.06578642744716e+00 4.81328442618955e-01 +-1.17000000000000e+02 4.90214342782424e-01 1.13098613589289e+00 4.83865203379029e-01 +-1.14000000000000e+02 4.40360096833240e-01 1.19608840484993e+00 4.86402995903623e-01 +-1.11000000000000e+02 3.90517559388028e-01 1.26119067380697e+00 4.88940788428217e-01 +-1.08000000000000e+02 3.36796738341476e-01 1.31278959502535e+00 4.89571356658345e-01 +-1.05000000000000e+02 2.81156613763722e-01 1.35771650141532e+00 4.89259563851783e-01 +-1.02000000000000e+02 2.25520988938418e-01 1.40264340780529e+00 4.88947771045222e-01 +-9.90000000000000e+01 1.69596608582179e-01 1.43937156573791e+00 4.87108415711597e-01 +-9.60000000000000e+01 1.13063640775730e-01 1.45922930315878e+00 4.82125821830817e-01 +-9.30000000000000e+01 5.65306729786293e-02 1.47908704057965e+00 4.77143227950036e-01 +-9.00000000000000e+01 -2.50786938632162e-06 1.49879024691254e+00 4.72126553960129e-01 +-8.70000000000000e+01 -5.65349883891393e-02 1.47892145848986e+00 4.58382717577078e-01 +-8.40000000000000e+01 -1.13067682856314e-01 1.45905267006718e+00 4.44638881194027e-01 +-8.10000000000000e+01 -1.69600377332935e-01 1.43918388164450e+00 4.30895044810977e-01 +-7.80000000000000e+01 -2.25536341012789e-01 1.40273734001163e+00 4.15203915709182e-01 +-7.50000000000000e+01 -2.81174084432464e-01 1.35781285398845e+00 3.98516931549595e-01 +-7.20000000000000e+01 -3.36816337556174e-01 1.31288836796527e+00 3.81829947390008e-01 +-6.90000000000000e+01 -3.90491009444336e-01 1.26113042124798e+00 3.64764236307154e-01 +-6.60000000000000e+01 -4.40326679232473e-01 1.19601731718851e+00 3.46958350095423e-01 +-6.30000000000000e+01 -4.90174064357981e-01 1.13090421312904e+00 3.29152463883691e-01 +-6.00000000000000e+01 -5.40029570878817e-01 1.06579110906957e+00 3.11346577671960e-01 +-5.70000000000000e+01 -5.81470412555561e-01 9.87810809121374e-01 2.93788482548577e-01 +-5.40000000000000e+01 -6.22903628681296e-01 9.09781778027117e-01 2.76231325869267e-01 +-5.10000000000000e+01 -6.64355544553945e-01 8.31752746932859e-01 2.58674169189958e-01 +-4.80000000000000e+01 -7.00941007256061e-01 7.51011646774472e-01 2.41379073672916e-01 +-4.50000000000000e+01 -7.35133851095360e-01 6.68918630488142e-01 2.24214610784837e-01 +-4.20000000000000e+01 -7.69364748765316e-01 5.86805131940724e-01 2.07050147896759e-01 +-3.90000000000000e+01 -8.03914225222967e-01 5.06390941095529e-01 1.89122778910765e-01 +-3.60000000000000e+01 -8.39105128116159e-01 4.32818968468437e-01 1.69665433115463e-01 +-3.30000000000000e+01 -8.74366471649789e-01 3.57692189720700e-01 1.50208087320160e-01 +-3.00000000000000e+01 -9.09682482347548e-01 2.81942698426654e-01 1.30750257486951e-01 +-2.93939393939394e+01 -8.95168454531797e-01 2.71070326265751e-01 1.22637819066385e-01 +-2.87878787878788e+01 -8.80831230221974e-01 2.60181335085832e-01 1.14525380645818e-01 +-2.81818181818182e+01 -8.66655070055722e-01 2.49276596662804e-01 1.06412942225252e-01 +-2.75757575757576e+01 -8.52626049026311e-01 2.38356922846633e-01 9.83005038046856e-02 +-2.69696969696970e+01 -8.38731802368498e-01 2.27423070623496e-01 9.01880653841192e-02 +-2.63636363636364e+01 -8.24961312989363e-01 2.16475746673315e-01 8.20756269635530e-02 +-2.57575757575758e+01 -8.11304732730117e-01 2.05515611480399e-01 7.38912154330665e-02 +-2.51515151515151e+01 -7.97753231339538e-01 1.94543283047505e-01 6.56500825167269e-02 +-2.45454545454545e+01 -7.84298868272794e-01 1.83559340257236e-01 5.74191648831283e-02 +-2.39393939393939e+01 -7.70934483389880e-01 1.72564325919251e-01 4.92017849820394e-02 +-2.33333333333333e+01 -7.57653603381046e-01 1.61558749537007e-01 4.10028812660819e-02 +-2.27272727272727e+01 -7.44450361340991e-01 1.50543089823704e-01 3.28301267065812e-02 +-2.21212121212121e+01 -7.31319427385594e-01 1.39517796993565e-01 2.46961255925382e-02 +-2.15151515151515e+01 -7.18255948581924e-01 1.28483294851496e-01 1.66231335147486e-02 +-2.09090909090909e+01 -7.05325814671234e-01 1.17439982701550e-01 8.65713639317113e-03 +-2.03030303030303e+01 -6.92459193561819e-01 1.06388237092243e-01 9.04429843125507e-04 +-1.96969696969697e+01 -6.68120441835083e-01 9.65644369932147e-02 -4.64617937682204e-02 +-1.90909090909091e+01 -6.38457142118695e-01 9.09284695777397e-02 -7.61523273045536e-02 +-1.84848484848485e+01 -6.13136856911308e-01 8.67741162641388e-02 -7.82462439696604e-02 +-1.78787878787879e+01 -5.85877129053361e-01 8.25262426538350e-02 -8.02102124118048e-02 +-1.72727272727273e+01 -5.57282939903605e-01 7.83461021594079e-02 -8.22250719560015e-02 +-1.66666666666667e+01 -5.31266241355299e-01 7.42270794069047e-02 -8.38977527243421e-02 +-1.60606060606061e+01 -5.00412366679022e-01 7.00940435333443e-02 -8.57916428663195e-02 +-1.54545454545455e+01 -4.68306159710843e-01 6.60478799378481e-02 -8.75885631691552e-02 +-1.48484848484848e+01 -4.44826900311928e-01 6.21173687581831e-02 -8.87703494897759e-02 +-1.42424242424242e+01 -4.16734144171795e-01 5.82978374706905e-02 -9.00157189987862e-02 +-1.36363636363636e+01 -3.88224916924245e-01 5.45648811251422e-02 -9.11792766019386e-02 +-1.30303030303030e+01 -3.63202172415196e-01 5.09409770880958e-02 -9.20551100339353e-02 +-1.24242424242424e+01 -3.34111662302163e-01 4.74063157101035e-02 -9.29652563552534e-02 +-1.18181818181818e+01 -2.99530616787036e-01 4.39580148952856e-02 -9.41883903648129e-02 +-1.12121212121212e+01 -2.66073489835987e-01 4.06630855442499e-02 -9.51580588942637e-02 +-1.06060606060606e+01 -2.27478127880192e-01 3.74465189193097e-02 -9.64428742059662e-02 +-1.00000000000000e+01 -1.92909914421922e-01 3.44833673782840e-02 -9.71631004218072e-02 +-9.39393939393939e+00 -1.60201412135016e-01 3.16034966366877e-02 -9.76610268613662e-02 +-8.78787878787879e+00 -1.24602815434308e-01 2.89496537361445e-02 -9.81520257008637e-02 +-8.18181818181818e+00 -8.99870656026158e-02 2.64333215347184e-02 -9.83063806668239e-02 +-7.57575757575758e+00 -6.00830465851953e-02 2.40399101579210e-02 -9.78579861317678e-02 +-6.96969696969697e+00 -2.62514079794639e-02 2.18356238536273e-02 -9.75045336744511e-02 +-6.36363636363636e+00 1.22041952078437e-02 1.97773828944362e-02 -9.73246676557813e-02 +-5.75757575757576e+00 4.28399933556610e-02 1.79899604490812e-02 -9.58216803139200e-02 +-5.15151515151515e+00 7.18141700575716e-02 1.64197217466949e-02 -9.37429436996551e-02 +-4.54545454545454e+00 9.44948811201958e-02 1.53967531894815e-02 -9.01975863627647e-02 +-3.93939393939394e+00 1.07352069713651e-01 1.47631458034300e-02 -8.49670499046629e-02 +-3.33333333333333e+00 4.11566488642941e-02 1.66243480612494e-02 -6.69256251335147e-02 +-2.72727272727273e+00 -4.95537917914773e-02 1.90263673745765e-02 -4.38421551014848e-02 +-2.12121212121212e+00 -1.55011081749674e-01 2.10915640414513e-02 -2.13640005773686e-02 +-1.51515151515152e+00 -2.46750253508967e-01 2.21780084777464e-02 -2.30902061652883e-03 +-9.09090909090912e-01 -3.10651979775526e-01 2.25906768664402e-02 1.34905458893204e-02 +-3.03030303030302e-01 -2.38632567064928e-01 2.07519909995070e-02 9.89973177999255e-03 + 3.03030303030302e-01 -1.62484186460107e-01 1.93805230501913e-02 6.26346866273583e-03 + 9.09090909090912e-01 -8.85607335714157e-02 1.84818445889645e-02 3.07264411713162e-03 + 1.51515151515152e+00 -1.17027171352171e-02 1.78141873573167e-02 -3.48789815725763e-04 + 2.12121212121212e+00 5.63946954873949e-02 1.76788992055481e-02 -3.18800710897618e-03 + 2.72727272727273e+00 1.25861087674137e-01 1.77561804106687e-02 -6.16698786004127e-03 + 3.33333333333333e+00 1.92890353209875e-01 1.82457672606834e-02 -8.85022021095864e-03 + 3.93939393939394e+00 2.61463522528487e-01 1.89394656977194e-02 -1.17267713517914e-02 + 4.54545454545455e+00 3.26030847981301e-01 2.00856601121412e-02 -1.42428264618889e-02 + 5.15151515151515e+00 3.93423021594721e-01 2.13724285274156e-02 -1.71210824065660e-02 + 5.75757575757576e+00 4.55353113100697e-01 2.31520125536355e-02 -1.94510091813303e-02 + 6.36363636363637e+00 5.16071745863989e-01 2.52047502597589e-02 -2.17627714033895e-02 + 6.96969696969697e+00 5.72826571839516e-01 2.76270410882316e-02 -2.36234788203836e-02 + 7.57575757575757e+00 6.29872038541499e-01 3.02512774370215e-02 -2.57683996591331e-02 + 8.18181818181818e+00 6.79638045529662e-01 3.33855859208959e-02 -2.72066270449020e-02 + 8.78787878787879e+00 7.30606366429381e-01 3.66455221434253e-02 -2.89430060676114e-02 + 9.39393939393939e+00 7.75743227351462e-01 4.03203711873101e-02 -3.01876381988613e-02 + 1.00000000000000e+01 8.24366276921071e-01 4.40117829254507e-02 -3.19060844943977e-02 + 1.06060606060606e+01 8.63488299465899e-01 4.82851398318722e-02 -3.30106227796943e-02 + 1.12121212121212e+01 9.03677309447090e-01 5.26058458657136e-02 -3.42525552253132e-02 + 1.18181818181818e+01 9.44204804979524e-01 5.69754950718181e-02 -3.55905416158632e-02 + 1.24242424242424e+01 9.77521326189596e-01 6.17289892463777e-02 -3.65286084263619e-02 + 1.30303030303030e+01 1.01311869929886e+00 6.65332877505632e-02 -3.78354481807785e-02 + 1.36363636363636e+01 1.04106150523094e+00 7.16713176177816e-02 -3.86721567497397e-02 + 1.42424242424242e+01 1.07052713467002e+00 7.67972529566121e-02 -3.97403494610316e-02 + 1.48484848484848e+01 1.10105259315145e+00 8.19385301490563e-02 -4.10082387958415e-02 + 1.54545454545455e+01 1.12447371495408e+00 8.73581885073442e-02 -4.19632406237322e-02 + 1.60606060606061e+01 1.15219732334667e+00 9.26689694700526e-02 -4.34279698046908e-02 + 1.66666666666667e+01 1.17297044892192e+00 9.82133512911054e-02 -4.46320571561615e-02 + 1.72727272727273e+01 1.19828617944170e+00 1.03542376286469e-01 -4.62057854977500e-02 + 1.78787878787879e+01 1.22584056211604e+00 1.08752675169883e-01 -4.80587420984663e-02 + 1.84848484848485e+01 1.25024027223718e+00 1.14058150928866e-01 -4.97998230894188e-02 + 1.90909090909091e+01 1.26933908871269e+00 1.19479497789013e-01 -5.16104285315033e-02 + 1.96969696969697e+01 1.28943999750318e+00 1.24846535592529e-01 -5.36412849586363e-02 + 2.03030303030303e+01 1.30604057022072e+00 1.30254097341147e-01 -5.55937746283669e-02 + 2.09090909090909e+01 1.32666417863767e+00 1.35479917564363e-01 -5.79033436732657e-02 + 2.15151515151515e+01 1.34063723129196e+00 1.40931767024392e-01 -6.01739546630166e-02 + 2.21212121212121e+01 1.35979486528961e+00 1.46100981954545e-01 -6.26473435315626e-02 + 2.27272727272727e+01 1.37141606571542e+00 1.51527270897528e-01 -6.51973775332763e-02 + 2.33333333333333e+01 1.38202895714497e+00 1.56843950843239e-01 -6.77558711897436e-02 + 2.39393939393939e+01 1.39638868298773e+00 1.62050904157508e-01 -7.06369800978733e-02 + 2.45454545454545e+01 1.40677062639350e+00 1.67277715650832e-01 -7.36235344079914e-02 + 2.51515151515151e+01 1.41429316923753e+00 1.74427920456713e-01 -7.78753791874350e-02 + 2.57575757575758e+01 1.39993251731358e+00 1.87884010296432e-01 -8.57741945922869e-02 + 2.63636363636364e+01 1.38557644661005e+00 2.01336237377755e-01 -9.36845965952363e-02 + 2.69696969696970e+01 1.37122519004217e+00 2.14784213924778e-01 -1.01604881948612e-01 + 2.75757575757576e+01 1.35687899658627e+00 2.28227498460368e-01 -1.09533665650558e-01 + 2.81818181818182e+01 1.34253813268857e+00 2.41665586176741e-01 -1.17469809933226e-01 + 2.87878787878788e+01 1.32820288382468e+00 2.55097897156945e-01 -1.25412371452940e-01 + 2.93939393939394e+01 1.31387355622940e+00 2.68523761866020e-01 -1.33360561462152e-01 + 3.00000000000000e+01 1.29955047881860e+00 2.81942403143813e-01 -1.41313715386659e-01 + 3.30000000000000e+01 1.24909496256164e+00 3.57692189720700e-01 -1.65563917968425e-01 + 3.60000000000000e+01 1.19872161542981e+00 4.32818968468437e-01 -1.89897528970407e-01 + 3.90000000000000e+01 1.14844889777887e+00 5.06390941095529e-01 -2.13750549638693e-01 + 4.20000000000000e+01 1.09909250153437e+00 5.86805131940725e-01 -2.33268001740352e-01 + 4.50000000000000e+01 1.05019121679845e+00 6.68918630488142e-01 -2.50685611705678e-01 + 4.80000000000000e+01 1.00134429465739e+00 7.51011646774472e-01 -2.68103221671005e-01 + 5.10000000000000e+01 9.49079346609924e-01 8.31752746932859e-01 -2.84934387459365e-01 + 5.40000000000000e+01 8.89862324731320e-01 9.09781778027117e-01 -3.00589091870191e-01 + 5.70000000000000e+01 8.30672016772585e-01 9.87810809121375e-01 -3.16243796281017e-01 + 6.00000000000000e+01 7.71470815163544e-01 1.06579110906958e+00 -3.31896316032723e-01 + 6.30000000000000e+01 7.00248663720122e-01 1.13090421312904e+00 -3.46971988344410e-01 + 6.60000000000000e+01 6.29038114262239e-01 1.19601731718851e+00 -3.62047660656098e-01 + 6.90000000000000e+01 5.57844300989069e-01 1.26113042124798e+00 -3.77123332967786e-01 + 7.20000000000000e+01 4.81166199749492e-01 1.31288836796527e+00 -3.91688628627697e-01 + 7.50000000000000e+01 4.01677268574811e-01 1.35781285398845e+00 -4.05992778821498e-01 + 7.80000000000000e+01 3.22194779861823e-01 1.40273734001163e+00 -4.20296929015300e-01 + 8.10000000000000e+01 2.42295702427821e-01 1.43918388164450e+00 -4.34055490538280e-01 + 8.40000000000000e+01 1.61562611730893e-01 1.45905267006718e+00 -4.46747209213190e-01 + 8.70000000000000e+01 8.08295210405704e-02 1.47892145848986e+00 -4.59438927888100e-01 + 9.00000000000000e+01 9.64460922937978e-05 1.49879024691254e+00 -4.72130646563010e-01 + 9.30000000000000e+01 -5.65306729786293e-02 1.47908704057965e+00 -4.77143227950036e-01 + 9.60000000000000e+01 -1.13063640775730e-01 1.45922930315878e+00 -4.82125821830817e-01 + 9.90000000000000e+01 -1.69596608582179e-01 1.43937156573791e+00 -4.87108415711597e-01 + 1.02000000000000e+02 -2.25520988938418e-01 1.40264340780529e+00 -4.88947771045222e-01 + 1.05000000000000e+02 -2.81156613763722e-01 1.35771650141532e+00 -4.89259563851783e-01 + 1.08000000000000e+02 -3.36796738341476e-01 1.31278959502535e+00 -4.89571356658345e-01 + 1.11000000000000e+02 -3.90517559388028e-01 1.26119067380697e+00 -4.88940788428217e-01 + 1.14000000000000e+02 -4.40360096833240e-01 1.19608840484993e+00 -4.86402995903623e-01 + 1.17000000000000e+02 -4.90214342782424e-01 1.13098613589289e+00 -4.83865203379029e-01 + 1.20000000000000e+02 -5.40012873881485e-01 1.06578642744716e+00 -4.81328442618955e-01 + 1.23000000000000e+02 -5.81434021758083e-01 9.87771253417518e-01 -4.78927381900812e-01 + 1.26000000000000e+02 -6.22879421935179e-01 9.09756079387874e-01 -4.76526321182669e-01 + 1.29000000000000e+02 -6.64343477250095e-01 8.31740905358228e-01 -4.74125260464526e-01 + 1.32000000000000e+02 -7.00950017667618e-01 7.51011725243961e-01 -4.75069010839486e-01 + 1.35000000000000e+02 -7.35145837994259e-01 6.68917130903646e-01 -4.77695532920763e-01 + 1.38000000000000e+02 -7.69379682388641e-01 5.86802047999729e-01 -4.80322055002040e-01 + 1.41000000000000e+02 -8.03936685195121e-01 5.06432248538826e-01 -4.87302614860481e-01 + 1.44000000000000e+02 -8.39120380128086e-01 4.32845771446553e-01 -5.02655148053732e-01 + 1.47000000000000e+02 -8.74374361817425e-01 3.57705990143872e-01 -5.18007681246983e-01 + 1.50000000000000e+02 -9.09685409856507e-01 2.81942620336790e-01 -5.33360214440234e-01 + 1.53000000000000e+02 -8.74754728071071e-01 2.20204335379705e-01 -5.40864739105511e-01 + 1.56000000000000e+02 -8.39835066129045e-01 1.58361526954559e-01 -5.48368346060598e-01 + 1.59000000000000e+02 -8.04936111926567e-01 9.64503662230332e-02 -5.55312798941336e-01 + 1.62000000000000e+02 -7.14662300859374e-01 6.10077362656450e-02 -5.42390397273871e-01 + 1.65000000000000e+02 -5.95551916198505e-01 3.90550935704237e-02 -5.19265462327907e-01 + 1.68000000000000e+02 -4.76441531537635e-01 1.66868514607833e-02 -4.96143266180726e-01 + 1.71000000000000e+02 -3.57331147589538e-01 1.54114505447825e-03 -4.32532909403940e-01 + 1.74000000000000e+02 -2.38220765059692e-01 1.54114505447825e-03 -2.88355272935961e-01 + 1.77000000000000e+02 -1.19110382529846e-01 1.54114505447825e-03 -1.44177636467980e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.54114505447825e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_06.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_06.dat new file mode 100644 index 000000000..92c382617 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_06.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF06_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.865415 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +1.063866 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.818182 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.818182 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.465299 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.059464 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.012557 Cd0 ! 2D drag coefficient value at 0-lift. +-0.009437 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.30602373482280e-01 1.00000000000000e-03 1.16949949123733e-01 +-1.74000000000000e+02 2.61204746964561e-01 1.00000000000000e-03 2.33899898247468e-01 +-1.71000000000000e+02 3.91807120446841e-01 1.00000000000000e-03 3.50849847371201e-01 +-1.68000000000000e+02 5.22409494834224e-01 8.78122187401640e-03 4.23583065314536e-01 +-1.65000000000000e+02 6.53011869676487e-01 2.10446555524541e-02 4.74090342668450e-01 +-1.62000000000000e+02 7.83614244518748e-01 3.39183650942733e-02 5.24594186747198e-01 +-1.59000000000000e+02 8.81481612937752e-01 6.43674939557504e-02 5.54961451661663e-01 +-1.56000000000000e+02 9.16449600847503e-01 1.27758021522124e-01 5.46826927401593e-01 +-1.53000000000000e+02 9.51387181030020e-01 1.91248919207756e-01 5.39014657943182e-01 +-1.50000000000000e+02 9.86287386535936e-01 2.54897483483179e-01 5.31201316551906e-01 +-1.47000000000000e+02 9.43096410340027e-01 3.33713708658773e-01 5.14221096167187e-01 +-1.44000000000000e+02 8.99821636586541e-01 4.13426227548780e-01 4.97240875782468e-01 +-1.41000000000000e+02 8.56443652122349e-01 4.95295827687601e-01 4.80260655397749e-01 +-1.38000000000000e+02 8.15427115420030e-01 5.76165038967401e-01 4.72223335064225e-01 +-1.35000000000000e+02 7.75642767614173e-01 6.58885629896056e-01 4.68836976111384e-01 +-1.32000000000000e+02 7.35802584381306e-01 7.41606220824712e-01 4.65450617158543e-01 +-1.29000000000000e+02 6.94038878646337e-01 8.22988163659748e-01 4.63931386363306e-01 +-1.26000000000000e+02 6.48548412791820e-01 9.01709302907170e-01 4.66123408229592e-01 +-1.23000000000000e+02 6.03030553298272e-01 9.80430442154593e-01 4.68315430095877e-01 +-1.20000000000000e+02 5.57477081161608e-01 1.05915158140202e+00 4.70507451962163e-01 +-1.17000000000000e+02 5.04844971486308e-01 1.12510863056590e+00 4.73180061819998e-01 +-1.14000000000000e+02 4.52147321970694e-01 1.19096863086308e+00 4.75856325719731e-01 +-1.11000000000000e+02 3.99432479415047e-01 1.25682863116025e+00 4.78532589619463e-01 +-1.08000000000000e+02 3.43596257911489e-01 1.30920086910269e+00 4.79442411005483e-01 +-1.05000000000000e+02 2.86222225375422e-01 1.35490879296726e+00 4.79479431744349e-01 +-1.02000000000000e+02 2.28841585298017e-01 1.40061671683183e+00 4.79516452483216e-01 +-9.90000000000000e+01 1.71521295412200e-01 1.43812462415651e+00 4.78057160379601e-01 +-9.60000000000000e+01 1.14346362118313e-01 1.45875950165829e+00 4.73518931655217e-01 +-9.30000000000000e+01 5.71714288106986e-02 1.47939437916006e+00 4.68980702930833e-01 +-9.00000000000000e+01 -3.19738348134712e-06 1.49986868656929e+00 4.64407028111220e-01 +-8.70000000000000e+01 -5.71798943981965e-02 1.47922454368434e+00 4.50756392061345e-01 +-8.40000000000000e+01 -1.14356278899325e-01 1.45858040079940e+00 4.37105756011470e-01 +-8.10000000000000e+01 -1.71532663386583e-01 1.43793625791445e+00 4.23455119961596e-01 +-7.80000000000000e+01 -2.28852250102566e-01 1.40071060825651e+00 4.07904463209326e-01 +-7.50000000000000e+01 -2.86234864425812e-01 1.35500509461780e+00 3.91382126540537e-01 +-7.20000000000000e+01 -3.43610856594580e-01 1.30929958097909e+00 3.74859789871748e-01 +-6.90000000000000e+01 -3.99410310729511e-01 1.25676850515392e+00 3.57995816531624e-01 +-6.60000000000000e+01 -4.52119227654273e-01 1.19089770864699e+00 3.40464156392119e-01 +-6.30000000000000e+01 -5.04810941504677e-01 1.12502691214006e+00 3.22932496252614e-01 +-6.00000000000000e+01 -5.57490729708959e-01 1.05915611563313e+00 3.05400836113109e-01 +-5.70000000000000e+01 -6.03060975466479e-01 9.80469739071163e-01 2.88249022929129e-01 +-5.40000000000000e+01 -6.48568697001336e-01 9.01734826844636e-01 2.71098648316352e-01 +-5.10000000000000e+01 -6.94048959392132e-01 8.22999914618108e-01 2.53948273703575e-01 +-4.80000000000000e+01 -7.35796996967821e-01 7.41606291980755e-01 2.37145889396850e-01 +-4.50000000000000e+01 -7.75635811925030e-01 6.58887351514491e-01 2.20516971803545e-01 +-4.20000000000000e+01 -8.15418747750670e-01 5.76168411048227e-01 2.03888054210239e-01 +-3.90000000000000e+01 -8.56403546301716e-01 4.95253978310523e-01 1.86491209372157e-01 +-3.60000000000000e+01 -8.99794916346207e-01 4.13396985200203e-01 1.67554318021199e-01 +-3.30000000000000e+01 -9.43082849713051e-01 3.33699091769783e-01 1.48617426670241e-01 +-3.00000000000000e+01 -9.86285125263403e-01 2.54897652227898e-01 1.29680059788401e-01 +-2.93939393939394e+01 -9.80297132802960e-01 2.44473574769880e-01 1.21746256885054e-01 +-2.87878787878788e+01 -9.74050629406986e-01 2.34073901066600e-01 1.13812453981707e-01 +-2.81818181818182e+01 -9.67568404727689e-01 2.23697350982005e-01 1.05878651078360e-01 +-2.75757575757576e+01 -9.60870697869614e-01 2.13342732376687e-01 9.79448481750132e-02 +-2.69696969696970e+01 -9.53975524478599e-01 2.03008933674507e-01 9.00110452716663e-02 +-2.63636363636364e+01 -9.46898963537093e-01 1.92694917170203e-01 8.20772423683194e-02 +-2.57575757575758e+01 -9.39655405084538e-01 1.82399712993225e-01 7.41833111262200e-02 +-2.51515151515151e+01 -9.32257763010909e-01 1.72122413653929e-01 6.63179554547382e-02 +-2.45454545454545e+01 -9.24717657628876e-01 1.61862169107610e-01 5.84416248842220e-02 +-2.39393939393939e+01 -9.17045572458953e-01 1.51654644591651e-01 5.05497686533872e-02 +-2.33333333333333e+01 -9.09250989136244e-01 1.41719228676347e-01 4.26354996544074e-02 +-2.27272727272727e+01 -9.01342503784836e-01 1.31764710783722e-01 3.46879572383326e-02 +-2.21212121212121e+01 -8.93327927685773e-01 1.21791218050615e-01 2.66890875777059e-02 +-2.15151515151515e+01 -8.85214374611069e-01 1.11798892150377e-01 1.86067200576374e-02 +-2.09090909090909e+01 -8.77008336811441e-01 1.01787887415397e-01 1.03777996701047e-02 +-2.03030303030303e+01 -8.68715751323282e-01 9.17583691571497e-02 1.86039842870071e-03 +-1.96969696969697e+01 -8.49944307804270e-01 8.35602579631630e-02 -3.63005983786552e-02 +-1.90909090909091e+01 -8.25783540413866e-01 7.85870212284638e-02 -5.96650502604463e-02 +-1.84848484848485e+01 -8.05213329318568e-01 7.43317189077806e-02 -6.30246000249902e-02 +-1.78787878787879e+01 -7.76475055159982e-01 7.05848613980095e-02 -6.50889056928502e-02 +-1.72727272727273e+01 -7.48972306048592e-01 6.66663801527895e-02 -6.70295995660977e-02 +-1.66666666666667e+01 -7.22573123466061e-01 6.28907276599152e-02 -6.86427573286172e-02 +-1.60606060606061e+01 -6.90657346893183e-01 5.92751438499833e-02 -7.03745583111441e-02 +-1.54545454545455e+01 -6.59347024784487e-01 5.55880100396095e-02 -7.20080774933650e-02 +-1.48484848484848e+01 -6.34273961405479e-01 5.20827281184930e-02 -7.31146343785369e-02 +-1.42424242424242e+01 -6.05495571524949e-01 4.86050641380163e-02 -7.42344627533315e-02 +-1.36363636363636e+01 -5.75460474672132e-01 4.52629823444876e-02 -7.53254506079581e-02 +-1.30303030303030e+01 -5.48496370585825e-01 4.19203268834582e-02 -7.63040443823708e-02 +-1.24242424242424e+01 -5.17904644264682e-01 3.87589687784567e-02 -7.68500291108865e-02 +-1.18181818181818e+01 -4.85975114702551e-01 3.57433581204956e-02 -7.65807183660906e-02 +-1.12121212121212e+01 -4.58831280087267e-01 3.27401514523336e-02 -7.73119680830497e-02 +-1.06060606060606e+01 -4.28526700913704e-01 2.99045861629200e-02 -7.82937202716234e-02 +-1.00000000000000e+01 -4.08904781415999e-01 2.71355470817469e-02 -7.86909092957733e-02 +-9.39393939393939e+00 -3.79652591457820e-01 2.44491102289660e-02 -7.88007403720249e-02 +-8.78787878787879e+00 -3.40770962268409e-01 2.19857832216623e-02 -7.91642043083947e-02 +-8.18181818181818e+00 -2.94387483301567e-01 1.96835619867295e-02 -8.02922165877091e-02 +-7.57575757575758e+00 -2.48798845920328e-01 1.76411619564992e-02 -8.11729105264801e-02 +-6.96969696969697e+00 -1.97811375788028e-01 1.58872237921916e-02 -8.21732782565827e-02 +-6.36363636363636e+00 -1.43721020045031e-01 1.43739396737345e-02 -8.32270227390247e-02 +-5.75757575757576e+00 -1.00358293399274e-01 1.31741886123781e-02 -8.30642921103948e-02 +-5.15151515151515e+00 -5.86049289939798e-02 1.22027410223953e-02 -8.23084212022310e-02 +-4.54545454545454e+00 -2.17260212682867e-02 1.15638309756762e-02 -8.03479683929137e-02 +-3.93939393939394e+00 7.49944703527933e-03 1.11439270067741e-02 -7.70702173895292e-02 +-3.33333333333333e+00 -2.42186510056988e-02 1.19108105026642e-02 -6.39073476199793e-02 +-2.72727272727273e+00 -8.17744209300961e-02 1.29721705182046e-02 -4.79853033286587e-02 +-2.12121212121212e+00 -1.46799831578786e-01 1.39017290868409e-02 -2.91868737166214e-02 +-1.51515151515152e+00 -2.10966331665937e-01 1.43912169495571e-02 -1.13598504963983e-02 +-9.09090909090912e-01 -2.47161000307135e-01 1.45608066536887e-02 1.32363308736557e-03 +-3.03030303030302e-01 -1.72955506585411e-01 1.36797473991148e-02 -2.08312402762493e-03 + 3.03030303030302e-01 -9.54994365606520e-02 1.30295576485621e-02 -5.53301257986333e-03 + 9.09090909090912e-01 -1.98866971680251e-02 1.26291508044642e-02 -8.59192505256465e-03 + 1.51515151515152e+00 5.79847291477269e-02 1.23454711695530e-02 -1.19010016497023e-02 + 2.12121212121212e+00 1.37902770356589e-01 1.23297393118085e-02 -1.51209851005012e-02 + 2.72727272727273e+00 2.19658989436648e-01 1.24204853711586e-02 -1.84610601324304e-02 + 3.33333333333333e+00 2.97976176290333e-01 1.27186416543596e-02 -2.14479830774858e-02 + 3.93939393939394e+00 3.76669514380213e-01 1.31397541386685e-02 -2.46003599986081e-02 + 4.54545454545455e+00 4.51149458299641e-01 1.37564185036073e-02 -2.73659336863219e-02 + 5.15151515151515e+00 5.27180925445938e-01 1.44919149920247e-02 -3.04272526513675e-02 + 5.75757575757576e+00 5.98064930544174e-01 1.54420357840972e-02 -3.29430673819349e-02 + 6.36363636363637e+00 6.67326691322230e-01 1.65452215490236e-02 -3.53894778260580e-02 + 6.96969696969697e+00 7.32780492921149e-01 1.78507527716825e-02 -3.73581731941520e-02 + 7.57575757575757e+00 7.97643870840698e-01 1.92893465841335e-02 -3.95040156209128e-02 + 8.18181818181818e+00 8.56179567087483e-01 2.09781776660281e-02 -4.09726519785745e-02 + 8.78787878787879e+00 9.14558116662339e-01 2.27762535757665e-02 -4.25780626023985e-02 + 9.39393939393939e+00 9.67373323608260e-01 2.47909919987808e-02 -4.36396770311120e-02 + 1.00000000000000e+01 1.02050520006190e+00 2.69010765693763e-02 -4.48638990279292e-02 + 1.06060606060606e+01 1.06113983842463e+00 2.93408645941627e-02 -4.50241504067332e-02 + 1.12121212121212e+01 1.10502797980969e+00 3.20071675268325e-02 -4.57122210051849e-02 + 1.18181818181818e+01 1.14965269574673e+00 3.47559007240329e-02 -4.65765302357956e-02 + 1.24242424242424e+01 1.18726700642892e+00 3.79018190716858e-02 -4.70596727321617e-02 + 1.30303030303030e+01 1.22700331804604e+00 4.11766583077453e-02 -4.79861245214577e-02 + 1.36363636363636e+01 1.26019411996640e+00 4.48341992954086e-02 -4.85201203048206e-02 + 1.42424242424242e+01 1.29449866453995e+00 4.86798278773932e-02 -4.92962172868068e-02 + 1.48484848484848e+01 1.32856772600222e+00 5.26827559936053e-02 -5.02739031793907e-02 + 1.54545454545455e+01 1.35532853370101e+00 5.69681098701082e-02 -5.09117645744080e-02 + 1.60606060606061e+01 1.38521555582974e+00 6.12340868969466e-02 -5.20258802199365e-02 + 1.66666666666667e+01 1.40576835454723e+00 6.60920952344557e-02 -5.28335790801698e-02 + 1.72727272727273e+01 1.43021268813911e+00 7.07826319183896e-02 -5.40004682416050e-02 + 1.78787878787879e+01 1.45205807785696e+00 7.58660525309088e-02 -5.53165003039188e-02 + 1.84848484848485e+01 1.47090486825012e+00 8.09843681297251e-02 -5.65912743073661e-02 + 1.90909090909091e+01 1.48558085419271e+00 8.60453119890129e-02 -5.79118198626998e-02 + 1.96969696969697e+01 1.49665176113065e+00 9.15288970361836e-02 -5.94364590610035e-02 + 2.03030303030303e+01 1.50632645647949e+00 9.70436069514765e-02 -6.10061018426727e-02 + 2.09090909090909e+01 1.51709729988808e+00 1.02914866586988e-01 -6.29163666065639e-02 + 2.15151515151515e+01 1.52419406181055e+00 1.08786094929603e-01 -6.49609290567941e-02 + 2.21212121212121e+01 1.53372263031026e+00 1.14521092069838e-01 -6.72884161511238e-02 + 2.27272727272727e+01 1.54054933328716e+00 1.20084224289598e-01 -6.97805141630515e-02 + 2.33333333333333e+01 1.54150020691855e+00 1.25904737836412e-01 -7.25076168170498e-02 + 2.39393939393939e+01 1.54796269163714e+00 1.31389875645389e-01 -7.55277618649362e-02 + 2.45454545454545e+01 1.55222438419928e+00 1.36700262309138e-01 -7.87484419589734e-02 + 2.51515151515151e+01 1.55031694866881e+00 1.44211892708057e-01 -8.32466306352618e-02 + 2.57575757575758e+01 1.53267621126597e+00 1.58022923532117e-01 -9.10509888903170e-02 + 2.63636363636364e+01 1.51502874670918e+00 1.71839626520607e-01 -9.88394162083491e-02 + 2.69696969696970e+01 1.49737421298184e+00 1.85662571092697e-01 -1.06614427195301e-01 + 2.75757575757576e+01 1.47971224448298e+00 1.99492405523698e-01 -1.14378069363422e-01 + 2.81818181818182e+01 1.46204244995876e+00 2.13329871085119e-01 -1.22132027411394e-01 + 2.87878787878788e+01 1.44436441021229e+00 2.27175819340527e-01 -1.29877700776388e-01 + 2.93939393939394e+01 1.42667767556376e+00 2.41031233450655e-01 -1.37616262123466e-01 + 3.00000000000000e+01 1.40898176302831e+00 2.54897254615579e-01 -1.45348702024217e-01 + 3.30000000000000e+01 1.34726121165366e+00 3.33699091769783e-01 -1.67945260019049e-01 + 3.60000000000000e+01 1.28542130830235e+00 4.13396985200203e-01 -1.90469946443808e-01 + 3.90000000000000e+01 1.22343363827668e+00 4.95253978310523e-01 -2.13260364816711e-01 + 4.20000000000000e+01 1.16488392585881e+00 5.76168411048227e-01 -2.31964530417122e-01 + 4.50000000000000e+01 1.10805115937663e+00 6.58887351514491e-01 -2.48596371207549e-01 + 4.80000000000000e+01 1.05113856559353e+00 7.41606291980755e-01 -2.65228211997977e-01 + 5.10000000000000e+01 9.91498511601949e-01 8.22999914618109e-01 -2.81338019091598e-01 + 5.40000000000000e+01 9.26526709170755e-01 9.01734826844636e-01 -2.96400578201206e-01 + 5.70000000000000e+01 8.61515679397204e-01 9.80469739071163e-01 -3.11463137310814e-01 + 6.00000000000000e+01 7.96415329315483e-01 1.05915611563313e+00 -3.26524287048302e-01 + 6.30000000000000e+01 7.21158490397776e-01 1.12502691214006e+00 -3.41213299690441e-01 + 6.60000000000000e+01 6.45884614854184e-01 1.19089770864699e+00 -3.55902312332579e-01 + 6.90000000000000e+01 5.70586163507013e-01 1.25676850515392e+00 -3.70591324974718e-01 + 7.20000000000000e+01 4.90872657647481e-01 1.30929958097909e+00 -3.84883964659324e-01 + 7.50000000000000e+01 4.08906953875985e-01 1.35500509461780e+00 -3.98973791381410e-01 + 7.80000000000000e+01 3.26931789843632e-01 1.40071060825651e+00 -4.13063618103496e-01 + 8.10000000000000e+01 2.45056162644018e-01 1.43793625791445e+00 -4.26645471237773e-01 + 8.40000000000000e+01 1.63403681363895e-01 1.45858040079940e+00 -4.39234033971895e-01 + 8.70000000000000e+01 8.17512000740736e-02 1.47922454368434e+00 -4.51822596706016e-01 + 9.00000000000000e+01 9.86956685731312e-05 1.49986868656929e+00 -4.64411159440137e-01 + 9.30000000000000e+01 -5.71714288106986e-02 1.47939437916006e+00 -4.68980702930833e-01 + 9.60000000000000e+01 -1.14346362118313e-01 1.45875950165829e+00 -4.73518931655217e-01 + 9.90000000000000e+01 -1.71521295412200e-01 1.43812462415652e+00 -4.78057160379601e-01 + 1.02000000000000e+02 -2.28841585298017e-01 1.40061671683183e+00 -4.79516452483216e-01 + 1.05000000000000e+02 -2.86222225375422e-01 1.35490879296726e+00 -4.79479431744349e-01 + 1.08000000000000e+02 -3.43596257911489e-01 1.30920086910269e+00 -4.79442411005483e-01 + 1.11000000000000e+02 -3.99432479415048e-01 1.25682863116025e+00 -4.78532589619463e-01 + 1.14000000000000e+02 -4.52147321970694e-01 1.19096863086308e+00 -4.75856325719731e-01 + 1.17000000000000e+02 -5.04844971486308e-01 1.12510863056590e+00 -4.73180061819998e-01 + 1.20000000000000e+02 -5.57477081161609e-01 1.05915158140201e+00 -4.70507451962163e-01 + 1.23000000000000e+02 -6.03030553298272e-01 9.80430442154593e-01 -4.68315430095877e-01 + 1.26000000000000e+02 -6.48548412791820e-01 9.01709302907170e-01 -4.66123408229592e-01 + 1.29000000000000e+02 -6.94038878646338e-01 8.22988163659748e-01 -4.63931386363306e-01 + 1.32000000000000e+02 -7.35802584381307e-01 7.41606220824712e-01 -4.65450617158543e-01 + 1.35000000000000e+02 -7.75642767614173e-01 6.58885629896056e-01 -4.68836976111384e-01 + 1.38000000000000e+02 -8.15427115420030e-01 5.76165038967400e-01 -4.72223335064225e-01 + 1.41000000000000e+02 -8.56443652122350e-01 4.95295827687601e-01 -4.80260655397749e-01 + 1.44000000000000e+02 -8.99821636586541e-01 4.13426227548780e-01 -4.97240875782468e-01 + 1.47000000000000e+02 -9.43096410340027e-01 3.33713708658773e-01 -5.14221096167187e-01 + 1.50000000000000e+02 -9.86287386535936e-01 2.54897483483178e-01 -5.31201316551906e-01 + 1.53000000000000e+02 -9.51387181030020e-01 1.91248919207756e-01 -5.39885635962036e-01 + 1.56000000000000e+02 -9.16449600847503e-01 1.27758021522124e-01 -5.48568985287483e-01 + 1.59000000000000e+02 -8.81481612937752e-01 6.43674939557504e-02 -5.57574645588884e-01 + 1.62000000000000e+02 -7.83614244518748e-01 3.39183650942733e-02 -5.45024563956741e-01 + 1.65000000000000e+02 -6.53011869676487e-01 2.10446555524541e-02 -5.21159364165441e-01 + 1.68000000000000e+02 -5.22409494834224e-01 8.78122187401641e-03 -4.97290143575030e-01 + 1.71000000000000e+02 -3.91807120446842e-01 1.00000000000000e-03 -4.33113586116256e-01 + 1.74000000000000e+02 -2.61204746964561e-01 1.00000000000000e-03 -2.88742390744171e-01 + 1.77000000000000e+02 -1.30602373482280e-01 1.00000000000000e-03 -1.44371195372085e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_07.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_07.dat new file mode 100644 index 000000000..ba9f3c724 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_07.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF07_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +8.026545 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-0.252813 alpha0 ! 0-lift angle of attack, depends on airfoil. +13.030303 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-13.030303 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.586599 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.205527 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.009775 Cd0 ! 2D drag coefficient value at 0-lift. +-0.033194 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.39227729617468e-01 1.00000000000000e-03 1.16964371852467e-01 +-1.74000000000000e+02 2.78455459234937e-01 1.00000000000000e-03 2.33928743704934e-01 +-1.71000000000000e+02 4.17683188852404e-01 1.00000000000000e-03 3.50893115557401e-01 +-1.68000000000000e+02 5.56910918803366e-01 4.29467213521419e-03 4.23821089426904e-01 +-1.65000000000000e+02 6.96138648921934e-01 9.55329112954012e-03 4.74615570293929e-01 +-1.62000000000000e+02 8.35366379040501e-01 1.51409025522373e-02 5.25408201869997e-01 +-1.59000000000000e+02 9.38643329232543e-01 4.07989648691675e-02 5.55611288243904e-01 +-1.56000000000000e+02 9.72853980619913e-01 1.04567773558443e-01 5.45994358112254e-01 +-1.53000000000000e+02 1.00704823956474e+00 1.68390690580117e-01 5.35710689533247e-01 +-1.50000000000000e+02 1.04121744342823e+00 2.32299417289370e-01 5.25425840642718e-01 +-1.47000000000000e+02 9.91326663035742e-01 3.11341785324537e-01 5.05047287894557e-01 +-1.44000000000000e+02 9.41390708380906e-01 3.90867334595161e-01 4.84668735146396e-01 +-1.41000000000000e+02 8.91399114064753e-01 4.71555740601276e-01 4.64290182398235e-01 +-1.38000000000000e+02 8.45398616205906e-01 5.53484973088000e-01 4.54039686721092e-01 +-1.35000000000000e+02 8.01475970692101e-01 6.37338056848111e-01 4.49056520660629e-01 +-1.32000000000000e+02 7.57523224966534e-01 7.21191140608223e-01 4.44073354600165e-01 +-1.29000000000000e+02 7.12133395058553e-01 8.03765164432492e-01 4.41342349896920e-01 +-1.26000000000000e+02 6.63939170744036e-01 8.83796826838336e-01 4.43087920514505e-01 +-1.23000000000000e+02 6.15730178845925e-01 9.63828489244181e-01 4.44833491132090e-01 +-1.20000000000000e+02 5.67501988597295e-01 1.04386015165003e+00 4.46579061749675e-01 +-1.17000000000000e+02 5.13133334752388e-01 1.11126544530085e+00 4.49532426285093e-01 +-1.14000000000000e+02 4.58711675698183e-01 1.17857473721787e+00 4.52494974007889e-01 +-1.11000000000000e+02 4.04280748081462e-01 1.24588402913490e+00 4.55457521730686e-01 +-1.08000000000000e+02 3.47229492030489e-01 1.29976935861158e+00 4.56954963812564e-01 +-1.05000000000000e+02 2.88885936532110e-01 1.34702189759873e+00 4.57728496035154e-01 +-1.02000000000000e+02 2.30538818987122e-01 1.39427443658587e+00 4.58502028257745e-01 +-9.90000000000000e+01 1.72468041060782e-01 1.43334305983499e+00 4.57848664862610e-01 +-9.60000000000000e+01 1.14977297531928e-01 1.45557178359802e+00 4.54259203449265e-01 +-9.30000000000000e+01 5.74865539956734e-02 1.47780050736105e+00 4.50669742035921e-01 +-9.00000000000000e+01 -4.03039105801844e-06 1.49985627606682e+00 4.47042031122400e-01 +-8.70000000000000e+01 -5.74973727788014e-02 1.47762207886420e+00 4.33619468958766e-01 +-8.40000000000000e+01 -1.14990546695127e-01 1.45538788166158e+00 4.20196906795131e-01 +-8.10000000000000e+01 -1.72483720603977e-01 1.43315368445895e+00 4.06774344631496e-01 +-7.80000000000000e+01 -2.30546730557266e-01 1.39436802687292e+00 3.91555938176426e-01 +-7.50000000000000e+01 -2.88895655143152e-01 1.34711787117727e+00 3.75419128132920e-01 +-7.20000000000000e+01 -3.47241009804659e-01 1.29986771548162e+00 3.59282318089413e-01 +-6.90000000000000e+01 -4.04261356441895e-01 1.24582430806518e+00 3.42882977944909e-01 +-6.60000000000000e+01 -4.58687077236807e-01 1.17850432679292e+00 3.25970555050270e-01 +-6.30000000000000e+01 -5.13103524059820e-01 1.11118434552066e+00 3.09058132155630e-01 +-6.00000000000000e+01 -5.67513541909457e-01 1.04386436424839e+00 2.92145709260990e-01 +-5.70000000000000e+01 -6.15756311139056e-01 9.63867149681864e-01 2.75891128355889e-01 +-5.40000000000000e+01 -6.63956532697632e-01 8.83821923403023e-01 2.59639038855624e-01 +-5.10000000000000e+01 -7.12141951359637e-01 8.03776697124181e-01 2.43386949355360e-01 +-4.80000000000000e+01 -7.57520299939905e-01 7.21191527568425e-01 2.27663511461422e-01 +-4.50000000000000e+01 -8.01473080634071e-01 6.37340243397249e-01 2.12203596588379e-01 +-4.20000000000000e+01 -8.45395737555870e-01 5.53488959226073e-01 1.96743681715337e-01 +-3.90000000000000e+01 -8.91344392040384e-01 4.71512738329914e-01 1.80506994954659e-01 +-3.60000000000000e+01 -9.41354098734580e-01 3.90837869231443e-01 1.62712524113537e-01 +-3.30000000000000e+01 -9.91308043951379e-01 3.11326944980551e-01 1.44918053272416e-01 +-3.00000000000000e+01 -1.04121587316712e+00 2.32299684144478e-01 1.27123125953860e-01 +-2.93939393939394e+01 -1.04389426112650e+00 2.22716643261032e-01 1.19584720090950e-01 +-2.87878787878788e+01 -1.04643516182528e+00 2.13146758150269e-01 1.12046314228041e-01 +-2.81818181818182e+01 -1.04885031762945e+00 2.03589338706134e-01 1.04507908365131e-01 +-2.75757575757576e+01 -1.05115028752054e+00 1.94043742260512e-01 9.69695025022216e-02 +-2.69696969696970e+01 -1.05334454581325e+00 1.84509369575983e-01 8.94310966393120e-02 +-2.63636363636364e+01 -1.05544159405272e+00 1.74985661238037e-01 8.18926907764024e-02 +-2.57575757575758e+01 -1.05744906971446e+00 1.65472094401044e-01 7.42648744803512e-02 +-2.51515151515151e+01 -1.05937384579106e+00 1.55968179848177e-01 6.65602624904158e-02 +-2.45454545454545e+01 -1.06122211964101e+00 1.46473459330488e-01 5.88565173270417e-02 +-2.39393939393939e+01 -1.06299949124812e+00 1.37068601836373e-01 5.11517384410753e-02 +-2.33333333333333e+01 -1.06471103173496e+00 1.28242827386384e-01 4.34428275111965e-02 +-2.27272727272727e+01 -1.06636134319246e+00 1.19349616279472e-01 3.57246147157114e-02 +-2.21212121212121e+01 -1.06795461089976e+00 1.10390365312288e-01 2.79881335009531e-02 +-2.15151515151515e+01 -1.06949464893187e+00 1.01366438265396e-01 2.02169004909230e-02 +-2.09090909090909e+01 -1.07098494004628e+00 9.22791664497661e-02 1.23778909436851e-02 +-2.03030303030303e+01 -1.07242867062774e+00 8.31298492889343e-02 4.39568620718121e-03 +-1.96969696969697e+01 -1.06729648933651e+00 7.62306008330535e-02 -1.38120466480937e-02 +-1.90909090909091e+01 -1.05818666445380e+00 7.17688540757453e-02 -2.45144642537476e-02 +-1.84848484848485e+01 -1.05099474046482e+00 6.74417352457341e-02 -3.02269347956738e-02 +-1.78787878787879e+01 -1.02640631439038e+00 6.40627795734252e-02 -3.23040388239248e-02 +-1.72727272727273e+01 -1.00774799743339e+00 6.03355616711919e-02 -3.39883623486092e-02 +-1.66666666666667e+01 -9.87404802161558e-01 5.68107635861063e-02 -3.53948475274075e-02 +-1.60606060606061e+01 -9.61616928242173e-01 5.35566838630887e-02 -3.67209088604211e-02 +-1.54545454545455e+01 -9.40054369847519e-01 5.01023619048733e-02 -3.79322608888911e-02 +-1.48484848484848e+01 -9.18403673699733e-01 4.68770516495888e-02 -3.88205038378817e-02 +-1.42424242424242e+01 -8.96185999149795e-01 4.36187575667800e-02 -3.96175398305480e-02 +-1.36363636363636e+01 -8.71514401099017e-01 4.05255958898284e-02 -4.04681792079521e-02 +-1.30303030303030e+01 -8.48741596089987e-01 3.73560857379464e-02 -4.14325248482871e-02 +-1.24242424242424e+01 -8.23832825102225e-01 3.44293276220723e-02 -4.13716313679443e-02 +-1.18181818181818e+01 -8.04487796688693e-01 3.16813039565092e-02 -3.90407363051744e-02 +-1.12121212121212e+01 -7.94635457853227e-01 2.88375733840877e-02 -3.92636887921025e-02 +-1.06060606060606e+01 -7.85659624996937e-01 2.62125280975476e-02 -3.95993222672735e-02 +-1.00000000000000e+01 -7.95316200815891e-01 2.35266956955096e-02 -3.93078456814868e-02 +-9.39393939393939e+00 -7.81348764538716e-01 2.09139434285425e-02 -3.85903380862256e-02 +-8.78787878787879e+00 -7.49171229749498e-01 1.85148148165712e-02 -3.86819054358598e-02 +-8.18181818181818e+00 -6.91636025446010e-01 1.62925692305525e-02 -4.18854727272118e-02 +-7.57575757575758e+00 -6.25028465306208e-01 1.44049529010290e-02 -4.55994354263139e-02 +-6.96969696969697e+00 -5.51927310909677e-01 1.28742138262526e-02 -4.94857875653817e-02 +-6.36363636363636e+00 -4.76110463721843e-01 1.16457343802656e-02 -5.31692532799890e-02 +-5.75757575757576e+00 -4.05619249024811e-01 1.07742859248340e-02 -5.58636591163436e-02 +-5.15151515151515e+00 -3.36625899843373e-01 1.01460478604546e-02 -5.79278847744230e-02 +-4.54545454545454e+00 -2.69481719955405e-01 9.72782683281914e-03 -5.93462053310784e-02 +-3.93939393939394e+00 -2.05364411821617e-01 9.42501775567111e-03 -6.02178280636820e-02 +-3.33333333333333e+00 -1.63582769038747e-01 9.52100526906940e-03 -5.73872405307622e-02 +-2.72727272727273e+00 -1.32103594862416e-01 9.74602968915999e-03 -5.09203166915060e-02 +-2.12121212121212e+00 -1.20327990531645e-01 9.95439225686776e-03 -4.17180594196911e-02 +-1.51515151515152e+00 -1.14235330858420e-01 1.00569076124325e-02 -3.42651928948758e-02 +-9.09090909090912e-01 -8.58596093973381e-02 1.00642576967030e-02 -2.99544983201723e-02 +-3.03030303030302e-01 -6.66505313160230e-03 9.79196406493279e-03 -3.29433943073472e-02 + 3.03030303030302e-01 7.37739697679786e-02 9.59134253838080e-03 -3.59631207252532e-02 + 9.09090909090912e-01 1.53229107780068e-01 9.49910340861409e-03 -3.87172312310527e-02 + 1.51515151515152e+00 2.33423590233295e-01 9.45059281062786e-03 -4.15982974745138e-02 + 2.12121212121212e+00 3.14883106323945e-01 9.50572141310964e-03 -4.43564577915866e-02 + 2.72727272727273e+00 3.96918195763055e-01 9.60142937141467e-03 -4.71733036537772e-02 + 3.33333333333333e+00 4.77051498443787e-01 9.77829864410363e-03 -4.96918166393541e-02 + 3.93939393939394e+00 5.56760632763769e-01 1.00327616391544e-02 -5.22658653405578e-02 + 4.54545454545455e+00 6.34514524288245e-01 1.03134433218976e-02 -5.45854286623449e-02 + 5.15151515151515e+00 7.11881387565711e-01 1.07071009676296e-02 -5.69450457424012e-02 + 5.75757575757576e+00 7.86848488390532e-01 1.11268896803126e-02 -5.90116886353286e-02 + 6.36363636363637e+00 8.60307811487329e-01 1.16153849192495e-02 -6.09312868970475e-02 + 6.96969696969697e+00 9.31454749286065e-01 1.21918097772378e-02 -6.25086336777927e-02 + 7.57575757575757e+00 1.00074664207165e+00 1.28398364705949e-02 -6.39511073149147e-02 + 8.18181818181818e+00 1.06682971474303e+00 1.35449922259372e-02 -6.50392605377166e-02 + 8.78787878787879e+00 1.13042835120049e+00 1.43256286112102e-02 -6.58443289542786e-02 + 9.39393939393939e+00 1.18999642411612e+00 1.51543518347990e-02 -6.61708843084867e-02 + 1.00000000000000e+01 1.24431933589412e+00 1.61098164110691e-02 -6.58856355403759e-02 + 1.06060606060606e+01 1.28312150313210e+00 1.71777887828865e-02 -6.38253942399507e-02 + 1.12121212121212e+01 1.32840339955259e+00 1.85933920668026e-02 -6.30358292031146e-02 + 1.18181818181818e+01 1.37496144150763e+00 2.00800672167962e-02 -6.25698916758418e-02 + 1.24242424242424e+01 1.41590742830136e+00 2.19588710409660e-02 -6.18810061490256e-02 + 1.30303030303030e+01 1.45831408790085e+00 2.39973351265864e-02 -6.17079570635892e-02 + 1.36363636363636e+01 1.49666799218488e+00 2.64306043339595e-02 -6.14019946020371e-02 + 1.42424242424242e+01 1.53488055686596e+00 2.91915746081504e-02 -6.12949093442011e-02 + 1.48484848484848e+01 1.57076778210412e+00 3.21943196476899e-02 -6.14101054653352e-02 + 1.54545454545455e+01 1.59997367391101e+00 3.54352518885260e-02 -6.12503251523886e-02 + 1.60606060606061e+01 1.62988902623441e+00 3.86838300037493e-02 -6.14762047291687e-02 + 1.66666666666667e+01 1.64778256910630e+00 4.28479447463805e-02 -6.14281553073876e-02 + 1.72727272727273e+01 1.66800196651193e+00 4.68454525905410e-02 -6.17403730264068e-02 + 1.78787878787879e+01 1.67840551356742e+00 5.17172016809986e-02 -6.20514494291697e-02 + 1.84848484848485e+01 1.68656986779638e+00 5.65129089607529e-02 -6.25200241567508e-02 + 1.90909090909091e+01 1.69286941057707e+00 6.10238236421379e-02 -6.30716205081381e-02 + 1.96969696969697e+01 1.68952370110699e+00 6.64277088652842e-02 -6.38697492023032e-02 + 2.03030303030303e+01 1.68834649936172e+00 7.18595550432023e-02 -6.49233663011386e-02 + 2.09090909090909e+01 1.68475117658704e+00 7.82562525032060e-02 -6.63349022988238e-02 + 2.15151515151515e+01 1.68228800108936e+00 8.44311745532526e-02 -6.80943061513100e-02 + 2.21212121212121e+01 1.67912324983759e+00 9.06158684709152e-02 -7.02259712633085e-02 + 2.27272727272727e+01 1.67986236827410e+00 9.62108745367417e-02 -7.26124728159214e-02 + 2.33333333333333e+01 1.66934206448025e+00 1.02418897868145e-01 -7.54407169825753e-02 + 2.39393939393939e+01 1.66674668457833e+00 1.08075519725902e-01 -7.85281099261487e-02 + 2.45454545454545e+01 1.66427842157155e+00 1.13367414982059e-01 -8.18995701767824e-02 + 2.51515151515151e+01 1.65229826536239e+00 1.21092175246183e-01 -8.65383263469639e-02 + 2.57575757575758e+01 1.63170673126422e+00 1.34979768386707e-01 -9.41379731256029e-02 + 2.63636363636364e+01 1.61111157066614e+00 1.48870419323323e-01 -1.01730856836792e-01 + 2.69696969696970e+01 1.59051259919363e+00 1.62764435023104e-01 -1.09318355852560e-01 + 2.75757575757576e+01 1.56990961975850e+00 1.76662164963526e-01 -1.16901597120924e-01 + 2.81818181818182e+01 1.54930242144372e+00 1.90564008755205e-01 -1.24481512390046e-01 + 2.87878787878788e+01 1.52869077826896e+00 2.04470425465890e-01 -1.32058880023801e-01 + 2.93939393939394e+01 1.50807444782141e+00 2.18381945105787e-01 -1.39634356541112e-01 + 3.00000000000000e+01 1.48745316973451e+00 2.32299182882227e-01 -1.47208500710274e-01 + 3.30000000000000e+01 1.41615434082132e+00 3.11326944980552e-01 -1.68885431729334e-01 + 3.60000000000000e+01 1.34479156420457e+00 3.90837869231442e-01 -1.90610215957139e-01 + 3.90000000000000e+01 1.27334912833871e+00 4.71512738329914e-01 -2.11736850318206e-01 + 4.20000000000000e+01 1.20770819430843e+00 5.53488959226073e-01 -2.28680749288425e-01 + 4.50000000000000e+01 1.14496154186107e+00 6.37340243397249e-01 -2.43615178090275e-01 + 4.80000000000000e+01 1.08217185546929e+00 7.21191527568425e-01 -2.58549606892125e-01 + 5.10000000000000e+01 1.01734564379110e+00 8.03776697124181e-01 -2.73099214340575e-01 + 5.40000000000000e+01 9.48509332496809e-01 8.83821923403023e-01 -2.86876834484338e-01 + 5.70000000000000e+01 8.79651874210813e-01 9.63867149681864e-01 -3.00654454628102e-01 + 6.00000000000000e+01 8.10733633545229e-01 1.04386436424839e+00 -3.14432305815761e-01 + 6.30000000000000e+01 7.33005038501447e-01 1.11118434552066e+00 -3.28271162896098e-01 + 6.60000000000000e+01 6.55267259216149e-01 1.17850432679292e+00 -3.42110019976435e-01 + 6.90000000000000e+01 5.77516231408693e-01 1.24582430806518e+00 -3.55948877056772e-01 + 7.20000000000000e+01 4.96058592359650e-01 1.29986771548162e+00 -3.69633012693494e-01 + 7.50000000000000e+01 4.12708083208199e-01 1.34711787117727e+00 -3.83237981692461e-01 + 7.80000000000000e+01 3.29352474143121e-01 1.39436802687292e+00 -3.96842950691428e-01 + 8.10000000000000e+01 2.46414836476463e-01 1.43315368445895e+00 -4.10020541892477e-01 + 8.40000000000000e+01 1.64309869516283e-01 1.45538788166158e+00 -4.22362439517914e-01 + 8.70000000000000e+01 8.22049025508752e-02 1.47762207886420e+00 -4.34704337143351e-01 + 9.00000000000000e+01 9.99231245995579e-05 1.49985627606682e+00 -4.47046234768787e-01 + 9.30000000000000e+01 -5.74865539956734e-02 1.47780050736105e+00 -4.50669742035921e-01 + 9.60000000000000e+01 -1.14977297531928e-01 1.45557178359802e+00 -4.54259203449265e-01 + 9.90000000000000e+01 -1.72468041060782e-01 1.43334305983499e+00 -4.57848664862610e-01 + 1.02000000000000e+02 -2.30538818987122e-01 1.39427443658587e+00 -4.58502028257745e-01 + 1.05000000000000e+02 -2.88885936532111e-01 1.34702189759873e+00 -4.57728496035154e-01 + 1.08000000000000e+02 -3.47229492030489e-01 1.29976935861158e+00 -4.56954963812564e-01 + 1.11000000000000e+02 -4.04280748081462e-01 1.24588402913489e+00 -4.55457521730686e-01 + 1.14000000000000e+02 -4.58711675698183e-01 1.17857473721787e+00 -4.52494974007889e-01 + 1.17000000000000e+02 -5.13133334752388e-01 1.11126544530085e+00 -4.49532426285093e-01 + 1.20000000000000e+02 -5.67501988597296e-01 1.04386015165003e+00 -4.46579061749675e-01 + 1.23000000000000e+02 -6.15730178845926e-01 9.63828489244181e-01 -4.44833491132090e-01 + 1.26000000000000e+02 -6.63939170744036e-01 8.83796826838336e-01 -4.43087920514505e-01 + 1.29000000000000e+02 -7.12133395058554e-01 8.03765164432491e-01 -4.41342349896920e-01 + 1.32000000000000e+02 -7.57523224966535e-01 7.21191140608223e-01 -4.44073354600165e-01 + 1.35000000000000e+02 -8.01475970692101e-01 6.37338056848111e-01 -4.49056520660629e-01 + 1.38000000000000e+02 -8.45398616205906e-01 5.53484973087999e-01 -4.54039686721092e-01 + 1.41000000000000e+02 -8.91399114064753e-01 4.71555740601276e-01 -4.64290182398235e-01 + 1.44000000000000e+02 -9.41390708380906e-01 3.90867334595161e-01 -4.84668735146396e-01 + 1.47000000000000e+02 -9.91326663035742e-01 3.11341785324537e-01 -5.05047287894557e-01 + 1.50000000000000e+02 -1.04121744342823e+00 2.32299417289370e-01 -5.25425840642718e-01 + 1.53000000000000e+02 -1.00704823956474e+00 1.68390690580117e-01 -5.36581667552101e-01 + 1.56000000000000e+02 -9.72853980619913e-01 1.04567773558443e-01 -5.47736415998144e-01 + 1.59000000000000e+02 -9.38643329232543e-01 4.07989648691675e-02 -5.58224456279721e-01 + 1.62000000000000e+02 -8.35366379040501e-01 1.51409025522373e-02 -5.45838249175769e-01 + 1.65000000000000e+02 -6.96138648921934e-01 9.55329112954012e-03 -5.21684219246949e-01 + 1.68000000000000e+02 -5.56910918803366e-01 4.29467213521419e-03 -4.97528023298305e-01 + 1.71000000000000e+02 -4.17683188852404e-01 1.00000000000000e-03 -4.33156845084010e-01 + 1.74000000000000e+02 -2.78455459234937e-01 1.00000000000000e-03 -2.88771230056007e-01 + 1.77000000000000e+02 -1.39227729617468e-01 1.00000000000000e-03 -1.44385615028003e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_08.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_08.dat new file mode 100644 index 000000000..9db98c760 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_08.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF08_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +9.120474 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-1.292496 alpha0 ! 0-lift angle of attack, depends on airfoil. +13.636364 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-13.636364 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.695954 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.172933 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.008217 Cd0 ! 2D drag coefficient value at 0-lift. +-0.055123 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.44841439171903e-01 1.00000000000000e-03 1.16985305465602e-01 +-1.74000000000000e+02 2.89682878343807e-01 1.00000000000000e-03 2.33970610931205e-01 +-1.71000000000000e+02 4.34524317515711e-01 1.00000000000000e-03 3.50955916396808e-01 +-1.68000000000000e+02 5.79365756765752e-01 2.62368584134125e-03 4.24168018772466e-01 +-1.65000000000000e+02 7.24207196055065e-01 5.09700103423783e-03 4.75380764039701e-01 +-1.62000000000000e+02 8.69048635344376e-01 7.60620267310709e-03 5.26593308465508e-01 +-1.59000000000000e+02 9.75817264152148e-01 3.11193946811271e-02 5.56580789062619e-01 +-1.56000000000000e+02 1.00945396793261e+00 9.49291902759443e-02 5.45560952517095e-01 +-1.53000000000000e+02 1.04308888362783e+00 1.58744887999746e-01 5.33990762539265e-01 +-1.50000000000000e+02 1.07671185384954e+00 2.22571503472936e-01 5.22419335831886e-01 +-1.47000000000000e+02 1.02238303895491e+00 3.01369419352764e-01 5.00271733613146e-01 +-1.44000000000000e+02 9.68049296458351e-01 3.80220040571091e-01 4.78124131394406e-01 +-1.41000000000000e+02 9.13709484795674e-01 4.59197506032062e-01 4.55976529175666e-01 +-1.38000000000000e+02 8.64453920619222e-01 5.41678547392774e-01 4.44573934100581e-01 +-1.35000000000000e+02 8.17842775533418e-01 6.26121166145247e-01 4.38759527753339e-01 +-1.32000000000000e+02 7.71228347120917e-01 7.10563784897720e-01 4.32945121406096e-01 +-1.29000000000000e+02 7.23505321561161e-01 7.93758363163801e-01 4.29583310836573e-01 +-1.26000000000000e+02 6.73584439635108e-01 8.74472236740198e-01 4.31096475008676e-01 +-1.23000000000000e+02 6.23661946863196e-01 9.55186110316595e-01 4.32609639180779e-01 +-1.20000000000000e+02 5.73737359938018e-01 1.03589998389299e+00 4.34122803352883e-01 +-1.17000000000000e+02 5.18277242776328e-01 1.10405918147930e+00 4.37222318664806e-01 +-1.14000000000000e+02 4.62774348343463e-01 1.17212292243150e+00 4.40333895438167e-01 +-1.11000000000000e+02 4.07270442897154e-01 1.24018666338370e+00 4.43445472211528e-01 +-1.08000000000000e+02 3.49464351184446e-01 1.29485965383387e+00 4.45248808470236e-01 +-1.05000000000000e+02 2.90521009956868e-01 1.34291626383956e+00 4.46405742052968e-01 +-1.02000000000000e+02 2.31577280181767e-01 1.39097287384525e+00 4.47562675635700e-01 +-9.90000000000000e+01 1.73045353534484e-01 1.43085394961065e+00 4.47328849708530e-01 +-9.60000000000000e+01 1.15362032112025e-01 1.45391237235045e+00 4.44233282396702e-01 +-9.30000000000000e+01 5.76787106887596e-02 1.47697079509025e+00 4.41137715084874e-01 +-9.00000000000000e+01 -4.60414772432177e-06 1.49984981560608e+00 4.38002438921193e-01 +-8.70000000000000e+01 -5.76909784758247e-02 1.47678789337599e+00 4.24698603810876e-01 +-8.40000000000000e+01 -1.15377334427613e-01 1.45372597114590e+00 4.11394768700558e-01 +-8.10000000000000e+01 -1.73063690378586e-01 1.43066404891581e+00 3.98090933590241e-01 +-7.80000000000000e+01 -2.31583486829022e-01 1.39106630737088e+00 3.83045484677137e-01 +-7.50000000000000e+01 -2.90528908651074e-01 1.34301206663563e+00 3.67109365913767e-01 +-7.20000000000000e+01 -3.49473941066297e-01 1.29495782590037e+00 3.51173247150397e-01 +-6.90000000000000e+01 -4.07252800548897e-01 1.24012715310941e+00 3.35015778318296e-01 +-6.60000000000000e+01 -4.62751966620432e-01 1.17205277842659e+00 3.18425708037538e-01 +-6.30000000000000e+01 -5.18250121088468e-01 1.10397840374376e+00 3.01835637756779e-01 +-6.00000000000000e+01 -5.73747574285030e-01 1.03590402906093e+00 2.85245567476020e-01 +-5.70000000000000e+01 -6.23685315800248e-01 9.55224439426285e-01 2.69458053390225e-01 +-5.40000000000000e+01 -6.73599908026019e-01 8.74497110830003e-01 2.53673578776548e-01 +-5.10000000000000e+01 -7.23512885553997e-01 7.93769782233720e-01 2.37889104162872e-01 +-4.80000000000000e+01 -7.71227160618435e-01 7.10564336254197e-01 2.22727326923688e-01 +-4.50000000000000e+01 -8.17842554973259e-01 6.26123594720569e-01 2.07875952776572e-01 +-4.20000000000000e+01 -8.64454663431398e-01 5.41682853186941e-01 1.93024578629455e-01 +-3.90000000000000e+01 -9.13645118624597e-01 4.59153903605446e-01 1.77391828392085e-01 +-3.60000000000000e+01 -9.68006123732724e-01 3.80190745667020e-01 1.60192060535241e-01 +-3.30000000000000e+01 -1.02236104638705e+00 3.01354550662345e-01 1.42992292678396e-01 +-3.00000000000000e+01 -1.07671072541770e+00 2.22571815827936e-01 1.25792078262657e-01 +-2.93939393939394e+01 -1.08504085285702e+00 2.13418822852388e-01 1.18459501862627e-01 +-2.87878787878788e+01 -1.09335704755343e+00 2.04267264906600e-01 1.11126925462597e-01 +-2.81818181818182e+01 -1.10166028163174e+00 1.95117066713906e-01 1.03794349062567e-01 +-2.75757575757576e+01 -1.10995150700927e+00 1.85968158172160e-01 9.64617726625374e-02 +-2.69696969696970e+01 -1.11823162205779e+00 1.76820473916632e-01 8.91291962625076e-02 +-2.63636363636364e+01 -1.12650145953724e+00 1.67673952926470e-01 8.17966198624779e-02 +-2.57575757575758e+01 -1.13476178433461e+00 1.58528538169749e-01 7.43912645855441e-02 +-2.51515151515151e+01 -1.14301329572992e+00 1.49384176282769e-01 6.69251359154301e-02 +-2.45454545454545e+01 -1.15125663164718e+00 1.40240817279802e-01 5.94629566550935e-02 +-2.39393939393939e+01 -1.15949237363260e+00 1.31142177518792e-01 5.20048335931982e-02 +-2.33333333333333e+01 -1.16772105193365e+00 1.22352428133738e-01 4.45507779428848e-02 +-2.27272727272727e+01 -1.17594315037362e+00 1.13522851277357e-01 3.71006150728496e-02 +-2.21212121212121e+01 -1.18415911088327e+00 1.04654354147305e-01 2.96538022502601e-02 +-2.15151515151515e+01 -1.19236933763858e+00 9.57478171237797e-02 2.22090298690989e-02 +-2.09090909090909e+01 -1.20057420079926e+00 8.68040947148769e-02 1.47632453924025e-02 +-2.03030303030303e+01 -1.20877403986561e+00 7.78240164655949e-02 7.30884332201795e-03 +-1.96969696969697e+01 -1.21314719862401e+00 7.12468900413484e-02 -5.95032672019004e-04 +-1.90909090909091e+01 -1.21436077176077e+00 6.69448340409611e-02 -6.21633478452776e-03 +-1.84848484848485e+01 -1.21580254398078e+00 6.26272814250306e-02 -1.25222662457098e-02 +-1.78787878787879e+01 -1.19843929138586e+00 5.94003845259875e-02 -1.42381477483783e-02 +-1.72727272727273e+01 -1.18776914547578e+00 5.57656463828375e-02 -1.56093460280016e-02 +-1.66666666666667e+01 -1.17418772897739e+00 5.23444460120703e-02 -1.67623746527487e-02 +-1.60606060606061e+01 -1.15512855235539e+00 4.92597036466881e-02 -1.77672067582833e-02 +-1.54545454545455e+01 -1.14064938865319e+00 4.59664739761210e-02 -1.86238173975082e-02 +-1.48484848484848e+01 -1.12276771213316e+00 4.29066875764388e-02 -1.92924701603168e-02 +-1.42424242424242e+01 -1.10591423084149e+00 3.97919380640599e-02 -1.98206088264031e-02 +-1.36363636363636e+01 -1.08605928477530e+00 3.68562395485282e-02 -2.03894744400208e-02 +-1.30303030303030e+01 -1.06816731621344e+00 3.38137000830715e-02 -2.09194421828572e-02 +-1.24242424242424e+01 -1.04721603255828e+00 3.10319633492429e-02 -2.08528252522941e-02 +-1.18181818181818e+01 -1.02819424597557e+00 2.84512064293401e-02 -1.94987732809470e-02 +-1.12121212121212e+01 -1.01524725095733e+00 2.57664935492957e-02 -1.94571245312930e-02 +-1.06060606060606e+01 -1.00092214600474e+00 2.33333312251580e-02 -1.94564118679367e-02 +-1.00000000000000e+01 -9.99448319174665e-01 2.08001953563906e-02 -1.88064407611989e-02 +-9.39393939393939e+00 -9.86585554088318e-01 1.83568536274967e-02 -1.76582504420892e-02 +-8.78787878787879e+00 -9.58699606352604e-01 1.61394274434440e-02 -1.76082782183753e-02 +-8.18181818181818e+00 -8.96174945455388e-01 1.40997544633279e-02 -2.18923047181034e-02 +-7.57575757575758e+00 -8.19352896348591e-01 1.24495711534495e-02 -2.70811651212652e-02 +-6.96969696969697e+00 -7.35587254925185e-01 1.11603829100177e-02 -3.24698568330312e-02 +-6.36363636363636e+00 -6.49140440332794e-01 1.01813548577366e-02 -3.75222607373161e-02 +-5.75757575757576e+00 -5.64527111524440e-01 9.52293223707606e-03 -4.17039889454102e-02 +-5.15151515151515e+00 -4.81353607051182e-01 9.08314662707370e-03 -4.52362553375754e-02 +-4.54545454545454e+00 -3.98454416184423e-01 8.77962758419526e-03 -4.84134436549543e-02 +-3.93939393939394e+00 -3.16173672524667e-01 8.55057266434243e-03 -5.14450809552473e-02 +-3.33333333333333e+00 -2.36130711045926e-01 8.40443866474213e-03 -5.39931075382443e-02 +-2.72727272727273e+00 -1.57229837953680e-01 8.32386848469777e-03 -5.45663598759439e-02 +-2.12121212121212e+00 -9.01488313037229e-02 8.26581685693155e-03 -5.40880802666715e-02 +-1.51515151515152e+00 -2.64741677142157e-02 8.23224065619293e-03 -5.46056467330832e-02 +-9.09090909090912e-01 4.55877021405559e-02 8.19188385110397e-03 -5.60130680324737e-02 +-3.03030303030302e-01 1.27989035373628e-01 8.16529341277914e-03 -5.87381328714888e-02 + 3.03030303030302e-01 2.10346362675314e-01 8.15307509661528e-03 -6.14741562080507e-02 + 9.09090909090912e-01 2.92251148068931e-01 8.18814225886256e-03 -6.40267277258129e-02 + 1.51515151515152e+00 3.73960862761552e-01 8.23824520068452e-03 -6.66174035018335e-02 + 2.12121212121212e+00 4.55310503153101e-01 8.32806671712249e-03 -6.90156711544648e-02 + 2.72727272727273e+00 5.36370222936790e-01 8.43371421620356e-03 -7.14305732088191e-02 + 3.33333333333333e+00 6.16677671596260e-01 8.57061052513359e-03 -7.36066920430276e-02 + 3.93939393939394e+00 6.96202565570829e-01 8.75398598944057e-03 -7.57538271736822e-02 + 4.54545454545455e+00 7.75264398693611e-01 8.91742373616619e-03 -7.77479667538842e-02 + 5.15151515151515e+00 8.52945291191952e-01 9.16444732821915e-03 -7.96081999968383e-02 + 5.75757575757576e+00 9.29989171659043e-01 9.38330611840526e-03 -8.13524004931720e-02 + 6.36363636363637e+00 1.00572385023836e+00 9.63601836764706e-03 -8.29034934643500e-02 + 6.96969696969697e+00 1.08023928204918e+00 9.91719903614825e-03 -8.42309812987784e-02 + 7.57575757575757e+00 1.15232427243092e+00 1.02499609231664e-02 -8.52140973002330e-02 + 8.18181818181818e+00 1.22323755216699e+00 1.05608841835965e-02 -8.60761305996250e-02 + 8.78787878787879e+00 1.29064181416373e+00 1.09303505118563e-02 -8.63967235218638e-02 + 9.39393939393939e+00 1.35525903793854e+00 1.12833263718740e-02 -8.63027267357249e-02 + 1.00000000000000e+01 1.41221287701301e+00 1.17583562838785e-02 -8.51005925765607e-02 + 1.06060606060606e+01 1.45389208075389e+00 1.22399874226297e-02 -8.17038763563905e-02 + 1.12121212121212e+01 1.50248538886647e+00 1.30341842063580e-02 -7.99033011255630e-02 + 1.18181818181818e+01 1.55205297347673e+00 1.38923705961657e-02 -7.84519687185224e-02 + 1.24242424242424e+01 1.59713963012115e+00 1.50476283628613e-02 -7.68609122209465e-02 + 1.30303030303030e+01 1.64257679948459e+00 1.63438516623626e-02 -7.57620772052510e-02 + 1.36363636363636e+01 1.68445680086054e+00 1.79802521670291e-02 -7.46486252103552e-02 + 1.42424242424242e+01 1.72338232934203e+00 1.99717992873708e-02 -7.35655837063244e-02 + 1.48484848484848e+01 1.75897485139166e+00 2.22668270416468e-02 -7.27508387679348e-02 + 1.54545454545455e+01 1.78879917728962e+00 2.48443831024394e-02 -7.17729593599937e-02 + 1.60606060606061e+01 1.81720011266644e+00 2.75766704481531e-02 -7.11144552561267e-02 + 1.66666666666667e+01 1.83298814878736e+00 3.12744155409902e-02 -7.02511052820225e-02 + 1.72727272727273e+01 1.84907733923928e+00 3.49806538088983e-02 -6.97437294553731e-02 + 1.78787878787879e+01 1.85145743937639e+00 3.97557686384066e-02 -6.91245524884726e-02 + 1.84848484848485e+01 1.85079246463260e+00 4.46868566603853e-02 -6.88344795774347e-02 + 1.90909090909091e+01 1.84844215825174e+00 4.95673715376071e-02 -6.86690191132132e-02 + 1.96969696969697e+01 1.83377138762715e+00 5.54852161898128e-02 -6.87902854669925e-02 + 2.03030303030303e+01 1.82180197654072e+00 6.13894005010371e-02 -6.93612098249226e-02 + 2.09090909090909e+01 1.80578015926381e+00 6.80102077185276e-02 -7.02997250258472e-02 + 2.15151515151515e+01 1.79368446394579e+00 7.43091355434592e-02 -7.17910401687868e-02 + 2.21212121212121e+01 1.77958525891502e+00 8.06840372167027e-02 -7.37507341618776e-02 + 2.27272727272727e+01 1.77304089160449e+00 8.62809834868018e-02 -7.60530549107807e-02 + 2.33333333333333e+01 1.75501206808600e+00 9.26509692110864e-02 -7.90054894152139e-02 + 2.39393939393939e+01 1.74428122922185e+00 9.83726710007346e-02 -8.21940391300347e-02 + 2.45454545454545e+01 1.73603654630345e+00 1.03643978331218e-01 -8.57479670059756e-02 + 2.51515151515151e+01 1.71865111663735e+00 1.11447733148079e-01 -9.05479454699597e-02 + 2.57575757575758e+01 1.69609119057496e+00 1.25336726029259e-01 -9.79367863651232e-02 + 2.63636363636364e+01 1.67353086895065e+00 1.39226052454391e-01 -1.05325926736696e-01 + 2.69696969696970e+01 1.65097013165432e+00 1.53115745907396e-01 -1.12715529881792e-01 + 2.75757575757576e+01 1.62840895718927e+00 1.67005844509227e-01 -1.20105731888535e-01 + 2.81818181818182e+01 1.60584732255055e+00 1.80896391849351e-01 -1.27496647773515e-01 + 2.87878787878788e+01 1.58328520309038e+00 1.94787438002813e-01 -1.34888376047678e-01 + 2.93939393939394e+01 1.56072257236877e+00 2.08679040783046e-01 -1.42281002161399e-01 + 3.00000000000000e+01 1.53815940198773e+00 2.22571267296777e-01 -1.49674601137582e-01 + 3.30000000000000e+01 1.46051577261819e+00 3.01354550662345e-01 -1.70223717337467e-01 + 3.60000000000000e+01 1.38286588545408e+00 3.80190745667020e-01 -1.90827029136720e-01 + 3.90000000000000e+01 1.30520730907073e+00 4.59153903605446e-01 -2.10943763524815e-01 + 4.20000000000000e+01 1.23493523124128e+00 5.41682853186942e-01 -2.26971331066208e-01 + 4.50000000000000e+01 1.16834650523101e+00 6.26123594720569e-01 -2.41022148302558e-01 + 4.80000000000000e+01 1.10175308508437e+00 7.10564336254197e-01 -2.55072965538909e-01 + 5.10000000000000e+01 1.03358983563597e+00 7.93769782233721e-01 -2.68810389227471e-01 + 5.40000000000000e+01 9.62285583233341e-01 8.74497110830003e-01 -2.81919116410173e-01 + 5.70000000000000e+01 8.90979024119949e-01 9.55224439426285e-01 -2.95027843592875e-01 + 6.00000000000000e+01 8.19639394596049e-01 1.03590402906093e+00 -3.08137655760987e-01 + 6.30000000000000e+01 7.40357320469880e-01 1.10397840374376e+00 -3.21533952465919e-01 + 6.60000000000000e+01 6.61074244527990e-01 1.17205277842659e+00 -3.34930249170851e-01 + 6.90000000000000e+01 5.81789723439240e-01 1.24012715310941e+00 -3.48326545875782e-01 + 7.20000000000000e+01 4.99248494372844e-01 1.29495782590037e+00 -3.61693916214521e-01 + 7.50000000000000e+01 4.15041302383928e-01 1.34301206663563e+00 -3.75046485740259e-01 + 7.80000000000000e+01 3.30833554097180e-01 1.39106630737088e+00 -3.88399055265998e-01 + 8.10000000000000e+01 2.47243378390478e-01 1.43066404891581e+00 -4.01366202260163e-01 + 8.40000000000000e+01 1.64862479303631e-01 1.45372597114590e+00 -4.13579694911259e-01 + 8.70000000000000e+01 8.24815802162142e-02 1.47678789337599e+00 -4.25793187562355e-01 + 9.00000000000000e+01 1.00679769862488e-04 1.49984981560609e+00 -4.38006680213451e-01 + 9.30000000000000e+01 -5.76787106887596e-02 1.47697079509025e+00 -4.41137715084874e-01 + 9.60000000000000e+01 -1.15362032112025e-01 1.45391237235045e+00 -4.44233282396702e-01 + 9.90000000000000e+01 -1.73045353534484e-01 1.43085394961065e+00 -4.47328849708530e-01 + 1.02000000000000e+02 -2.31577280181767e-01 1.39097287384525e+00 -4.47562675635700e-01 + 1.05000000000000e+02 -2.90521009956868e-01 1.34291626383956e+00 -4.46405742052968e-01 + 1.08000000000000e+02 -3.49464351184446e-01 1.29485965383387e+00 -4.45248808470236e-01 + 1.11000000000000e+02 -4.07270442897154e-01 1.24018666338370e+00 -4.43445472211528e-01 + 1.14000000000000e+02 -4.62774348343463e-01 1.17212292243150e+00 -4.40333895438167e-01 + 1.17000000000000e+02 -5.18277242776328e-01 1.10405918147930e+00 -4.37222318664806e-01 + 1.20000000000000e+02 -5.73737359938019e-01 1.03589998389299e+00 -4.34122803352883e-01 + 1.23000000000000e+02 -6.23661946863197e-01 9.55186110316594e-01 -4.32609639180779e-01 + 1.26000000000000e+02 -6.73584439635108e-01 8.74472236740198e-01 -4.31096475008676e-01 + 1.29000000000000e+02 -7.23505321561161e-01 7.93758363163800e-01 -4.29583310836573e-01 + 1.32000000000000e+02 -7.71228347120918e-01 7.10563784897720e-01 -4.32945121406096e-01 + 1.35000000000000e+02 -8.17842775533418e-01 6.26121166145247e-01 -4.38759527753339e-01 + 1.38000000000000e+02 -8.64453920619222e-01 5.41678547392773e-01 -4.44573934100581e-01 + 1.41000000000000e+02 -9.13709484795674e-01 4.59197506032061e-01 -4.55976529175666e-01 + 1.44000000000000e+02 -9.68049296458351e-01 3.80220040571091e-01 -4.78124131394406e-01 + 1.47000000000000e+02 -1.02238303895491e+00 3.01369419352764e-01 -5.00271733613146e-01 + 1.50000000000000e+02 -1.07671185384954e+00 2.22571503472936e-01 -5.22419335831886e-01 + 1.53000000000000e+02 -1.04308888362783e+00 1.58744887999746e-01 -5.34861740558119e-01 + 1.56000000000000e+02 -1.00945396793261e+00 9.49291902759443e-02 -5.47303010402986e-01 + 1.59000000000000e+02 -9.75817264152148e-01 3.11193946811271e-02 -5.59193930118799e-01 + 1.62000000000000e+02 -8.69048635344376e-01 7.60620267310709e-03 -5.47023011874915e-01 + 1.65000000000000e+02 -7.24207196055065e-01 5.09700103423784e-03 -5.22449024472057e-01 + 1.68000000000000e+02 -5.79365756765752e-01 2.62368584134125e-03 -4.97874801678053e-01 + 1.71000000000000e+02 -4.34524317515711e-01 1.00000000000000e-03 -4.33219635768400e-01 + 1.74000000000000e+02 -2.89682878343808e-01 1.00000000000000e-03 -2.88813090512267e-01 + 1.77000000000000e+02 -1.44841439171903e-01 1.00000000000000e-03 -1.44406545256133e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_09.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_09.dat new file mode 100644 index 000000000..0a5088c88 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_09.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF09_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +10.036688 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-1.701696 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.242424 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.242424 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.753132 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.967368 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007822 Cd0 ! 2D drag coefficient value at 0-lift. +-0.065811 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.47801491988179e-01 1.00000000000000e-03 1.17034104786174e-01 +-1.74000000000000e+02 2.95602983976360e-01 1.00000000000000e-03 2.34068209572349e-01 +-1.71000000000000e+02 4.43404475964539e-01 1.00000000000000e-03 3.51102314358522e-01 +-1.68000000000000e+02 5.91205968025803e-01 2.53732191288097e-03 4.25009174058434e-01 +-1.65000000000000e+02 7.39007460123799e-01 4.84725729494606e-03 4.77241521315751e-01 +-1.62000000000000e+02 8.86808952221793e-01 7.15719267701114e-03 5.29473868036752e-01 +-1.59000000000000e+02 9.95450071731470e-01 3.05198392251792e-02 5.59655984641535e-01 +-1.56000000000000e+02 1.02887153791983e+00 9.43207536120065e-02 5.47610940772011e-01 +-1.53000000000000e+02 1.06229300410819e+00 1.58121667998833e-01 5.35857330071826e-01 +-1.50000000000000e+02 1.09570394654601e+00 2.21924330152833e-01 5.24102471486543e-01 +-1.47000000000000e+02 1.03911862996049e+00 3.00673422911275e-01 5.01676038156624e-01 +-1.44000000000000e+02 9.82533313374972e-01 3.79422515669717e-01 4.79249604826705e-01 +-1.41000000000000e+02 9.25947996789450e-01 4.58171608428159e-01 4.56823171496786e-01 +-1.38000000000000e+02 8.74988271382308e-01 5.40698457277474e-01 4.45233764634690e-01 +-1.35000000000000e+02 8.26954264384670e-01 6.25190015290898e-01 4.39280403271788e-01 +-1.32000000000000e+02 7.78920257387032e-01 7.09681573304322e-01 4.33327041908886e-01 +-1.29000000000000e+02 7.29938033684624e-01 7.92927665828860e-01 4.29855052100172e-01 +-1.26000000000000e+02 6.79071058924847e-01 8.73698171933883e-01 4.31315234058673e-01 +-1.23000000000000e+02 6.28204084165071e-01 9.54468678038907e-01 4.32775416017174e-01 +-1.20000000000000e+02 5.77337109405295e-01 1.03523918414393e+00 4.34235597975675e-01 +-1.17000000000000e+02 5.21259690344039e-01 1.10346096574669e+00 4.37334743980469e-01 +-1.14000000000000e+02 4.65142654850179e-01 1.17158733596613e+00 4.40446351477014e-01 +-1.11000000000000e+02 4.09025619356320e-01 1.23971370618557e+00 4.43557958973559e-01 +-1.08000000000000e+02 3.50782734909950e-01 1.29445208305464e+00 4.45382873437398e-01 +-1.05000000000000e+02 2.91489466809937e-01 1.34257544179003e+00 4.46572031853184e-01 +-1.02000000000000e+02 2.32196198709924e-01 1.39069880052543e+00 4.47761190268970e-01 +-9.90000000000000e+01 1.73391674580790e-01 1.43064732072484e+00 4.47564727902819e-01 +-9.60000000000000e+01 1.15592830325142e-01 1.45377461943716e+00 4.44517098022171e-01 +-9.30000000000000e+01 5.77939860694931e-02 1.47690191814948e+00 4.41469468141523e-01 +-9.00000000000000e+01 -4.87137612657326e-06 1.49984927943763e+00 4.38382029351460e-01 +-8.70000000000000e+01 -5.78071065643373e-02 1.47671864503356e+00 4.25100409085362e-01 +-8.40000000000000e+01 -1.15609341752228e-01 1.45358801062950e+00 4.11818788819264e-01 +-8.10000000000000e+01 -1.73411576940118e-01 1.43045737622545e+00 3.98537168553166e-01 +-7.80000000000000e+01 -2.32201416619829e-01 1.39079222090130e+00 3.83519901283289e-01 +-7.50000000000000e+01 -2.91496322085907e-01 1.34267123039225e+00 3.67615015613458e-01 +-7.20000000000000e+01 -3.50791227551985e-01 1.29455023988321e+00 3.51710129943626e-01 +-6.90000000000000e+01 -4.09008964138182e-01 1.23965421359868e+00 3.35588601761141e-01 +-6.60000000000000e+01 -4.65121506808898e-01 1.17151721427999e+00 3.19043672468589e-01 +-6.30000000000000e+01 -5.21234049479614e-01 1.10338021496130e+00 3.02498743176036e-01 +-6.00000000000000e+01 -5.77346592150330e-01 1.03524321564261e+00 2.85953813883483e-01 +-5.70000000000000e+01 -6.28225966141707e-01 9.54506979803860e-01 2.70227675612366e-01 +-5.40000000000000e+01 -6.79085520872582e-01 8.73723027645226e-01 2.54504638298535e-01 +-5.10000000000000e+01 -7.29945075603457e-01 7.92939075486590e-01 2.38781600984705e-01 +-4.80000000000000e+01 -7.78919981154243e-01 7.09682138256129e-01 2.23690472244948e-01 +-4.50000000000000e+01 -8.26955424043191e-01 6.25192463833616e-01 2.08914338209409e-01 +-4.20000000000000e+01 -8.74990866932140e-01 5.40702789411103e-01 1.94138204173871e-01 +-3.90000000000000e+01 -9.25878681922035e-01 4.58127955969221e-01 1.78576820575977e-01 +-3.60000000000000e+01 -9.82486811873223e-01 3.79393257377335e-01 1.61440651269586e-01 +-3.30000000000000e+01 -1.03909494182441e+00 3.00658558785448e-01 1.44304481963195e-01 +-3.00000000000000e+01 -1.09570300891842e+00 2.21924643058056e-01 1.27167861647769e-01 +-2.93939393939394e+01 -1.10659555087530e+00 2.12781964756411e-01 1.19809688157272e-01 +-2.87878787878788e+01 -1.11748744339867e+00 2.03639433036966e-01 1.12413079896926e-01 +-2.81818181818182e+01 -1.12837887486698e+00 1.94497096016199e-01 1.05011409353723e-01 +-2.75757575757576e+01 -1.13926996722579e+00 1.85355025457337e-01 9.76145915967289e-02 +-2.69696969696970e+01 -1.15016080290005e+00 1.76213333331546e-01 9.02223356187404e-02 +-2.63636363636364e+01 -1.16105143960419e+00 1.67072204564756e-01 8.28343732243559e-02 +-2.57575757575758e+01 -1.17194191895655e+00 1.57931968016231e-01 7.54889134511259e-02 +-2.51515151515151e+01 -1.18283227172499e+00 1.48793270344263e-01 6.81792416082717e-02 +-2.45454545454545e+01 -1.19372252114661e+00 1.39657582182832e-01 6.08708227987575e-02 +-2.39393939393939e+01 -1.20461268509893e+00 1.30504422444101e-01 5.35632688213019e-02 +-2.33333333333333e+01 -1.21550277756084e+00 1.21181493521471e-01 4.62561841036414e-02 +-2.27272727272727e+01 -1.22639280962045e+00 1.11878377748415e-01 3.89491613986677e-02 +-2.21212121212121e+01 -1.23728279018556e+00 1.02594614546620e-01 3.16417770624650e-02 +-2.15151515151515e+01 -1.24817272649448e+00 9.33297575035400e-02 2.43335857828481e-02 +-2.09090909090909e+01 -1.25906262448964e+00 8.40833738319316e-02 1.70241145997681e-02 +-2.03030303030303e+01 -1.26995248909517e+00 7.48550438539601e-02 9.71285602288103e-03 +-1.96969696969697e+01 -1.27802651631286e+00 6.80066527452091e-02 2.39184617617159e-03 +-1.90909090909091e+01 -1.28301120128954e+00 6.36893807581458e-02 -4.40069820514951e-03 +-1.84848484848485e+01 -1.28706747991685e+00 5.94112672806025e-02 -9.95327721522707e-03 +-1.78787878787879e+01 -1.27611238450951e+00 5.61681832160768e-02 -1.12255993474305e-02 +-1.72727272727273e+01 -1.26990343926535e+00 5.25416164742845e-02 -1.23652016226801e-02 +-1.66666666666667e+01 -1.26094415505434e+00 4.91237054509049e-02 -1.33300435394913e-02 +-1.60606060606061e+01 -1.24632286546114e+00 4.60737832611860e-02 -1.41790981153774e-02 +-1.54545454545455e+01 -1.23440375542527e+00 4.28813424252166e-02 -1.48486013013304e-02 +-1.48484848484848e+01 -1.21887186339082e+00 3.99007470849988e-02 -1.53764766574058e-02 +-1.42424242424242e+01 -1.20436511932572e+00 3.68693230979377e-02 -1.57642067221716e-02 +-1.36363636363636e+01 -1.18686856625194e+00 3.40204303840195e-02 -1.61290924255609e-02 +-1.30303030303030e+01 -1.17221979997817e+00 3.10652864582146e-02 -1.61367570289569e-02 +-1.24242424242424e+01 -1.15223549271211e+00 2.83607698377679e-02 -1.64161427219543e-02 +-1.18181818181818e+01 -1.12492532389143e+00 2.58712882471377e-02 -1.74372969985321e-02 +-1.12121212121212e+01 -1.09663913314155e+00 2.33343402565661e-02 -1.76487312596149e-02 +-1.06060606060606e+01 -1.06203066516036e+00 2.10684834083823e-02 -1.78965612163736e-02 +-1.00000000000000e+01 -1.02922106668251e+00 1.87203350228209e-02 -1.75426185725628e-02 +-9.39393939393939e+00 -1.00644866287786e+00 1.64908183289043e-02 -1.66490666753375e-02 +-8.78787878787879e+00 -9.76613449352638e-01 1.45269470863558e-02 -1.67534095033537e-02 +-8.18181818181818e+00 -9.12206473745731e-01 1.27138979115673e-02 -2.12891608881326e-02 +-7.57575757575758e+00 -8.33698488428434e-01 1.13230993103655e-02 -2.66671243537020e-02 +-6.96969696969697e+00 -7.48573444790723e-01 1.02616205164007e-02 -3.22054067328241e-02 +-6.36363636363636e+00 -6.60918453693780e-01 9.48507575823918e-03 -3.73972573536171e-02 +-5.75757575757576e+00 -5.74655041534782e-01 8.95797495931800e-03 -4.17583159930379e-02 +-5.15151515151515e+00 -4.89813084574934e-01 8.60983738933603e-03 -4.54537533739004e-02 +-4.54545454545454e+00 -4.05074063775842e-01 8.35679411767135e-03 -4.88291785752802e-02 +-3.93939393939394e+00 -3.20722967091685e-01 8.17194623278325e-03 -5.20955614084365e-02 +-3.33333333333333e+00 -2.36494311616540e-01 8.01440883379654e-03 -5.52197494279584e-02 +-2.72727272727273e+00 -1.52460575899786e-01 7.91727141509070e-03 -5.90946212400030e-02 +-2.12121212121212e+00 -6.29777160667893e-02 7.84384173039047e-03 -6.33280264114781e-02 +-1.51515151515152e+00 2.80041256947348e-02 7.81194822002459e-03 -6.69149839843343e-02 +-9.09090909090912e-01 1.14876395617520e-01 7.78459899165609e-03 -7.02426967494321e-02 +-3.03030303030302e-01 1.98235510104443e-01 7.79622414621391e-03 -7.28962586466238e-02 + 3.03030303030302e-01 2.81169114111027e-01 7.82255482901641e-03 -7.55419002825036e-02 + 9.09090909090912e-01 3.63789240896834e-01 7.88232157522462e-03 -7.80298563504806e-02 + 1.51515151515152e+00 4.45979468575820e-01 7.95351488252598e-03 -8.05305150124441e-02 + 2.12121212121212e+00 5.27770523895791e-01 8.05622850858463e-03 -8.28414954908521e-02 + 2.72727272727273e+00 6.09103780371537e-01 8.17250078515477e-03 -8.51552668099594e-02 + 3.33333333333333e+00 6.89956808919253e-01 8.31247920003601e-03 -8.72635454600700e-02 + 3.93939393939394e+00 7.69964472656996e-01 8.47933430889952e-03 -8.93058135844256e-02 + 4.54545454545455e+00 8.49828973108570e-01 8.64362225041046e-03 -9.12306524002184e-02 + 5.15151515151515e+00 9.28217762619708e-01 8.85682465449062e-03 -9.29685929233239e-02 + 5.75757575757576e+00 1.00637314399924e+00 9.05871009649816e-03 -9.46414639486392e-02 + 6.36363636363637e+00 1.08334722040784e+00 9.28984767464488e-03 -9.61108180578280e-02 + 6.96969696969697e+00 1.15950710201954e+00 9.52766410345585e-03 -9.74149862157058e-02 + 7.57575757575757e+00 1.23326525900617e+00 9.82274031348220e-03 -9.83121215175168e-02 + 8.18181818181818e+00 1.30645498336455e+00 1.00878509737219e-02 -9.91669747668716e-02 + 8.78787878787879e+00 1.37627157587231e+00 1.04095925208190e-02 -9.94314202409095e-02 + 9.39393939393939e+00 1.44390198659768e+00 1.07153766885540e-02 -9.93174634910937e-02 + 1.00000000000000e+01 1.50425497543735e+00 1.11317514652208e-02 -9.79868774329530e-02 + 1.06060606060606e+01 1.55156791294134e+00 1.15307565546259e-02 -9.44310337522170e-02 + 1.12121212121212e+01 1.60429402164854e+00 1.21442911856506e-02 -9.23687375196340e-02 + 1.18181818181818e+01 1.65722446454580e+00 1.28250243547445e-02 -9.05775301378915e-02 + 1.24242424242424e+01 1.70622695595769e+00 1.36895725365573e-02 -8.86379347533891e-02 + 1.30303030303030e+01 1.75450380604479e+00 1.46619544746329e-02 -8.70847180434567e-02 + 1.36363636363636e+01 1.79811404491036e+00 1.59044407787251e-02 -8.54328802508712e-02 + 1.42424242424242e+01 1.83569542348110e+00 1.74710266597133e-02 -8.35410149392890e-02 + 1.48484848484848e+01 1.86998024473817e+00 1.93815347851085e-02 -8.19814636547098e-02 + 1.54545454545455e+01 1.89927467496931e+00 2.16601025667407e-02 -8.03874343134824e-02 + 1.60606060606061e+01 1.92585151045592e+00 2.42735299930569e-02 -7.90941254074375e-02 + 1.66666666666667e+01 1.94070973655892e+00 2.77493995940125e-02 -7.76819195302184e-02 + 1.72727272727273e+01 1.95414218842239e+00 3.14610912448271e-02 -7.66164833654450e-02 + 1.78787878787879e+01 1.95325519568381e+00 3.62372787579004e-02 -7.54031934434990e-02 + 1.84848484848485e+01 1.94762796617956e+00 4.15271236451382e-02 -7.46122388656377e-02 + 1.90909090909091e+01 1.93896258216935e+00 4.71840412306895e-02 -7.39847331085361e-02 + 1.96969696969697e+01 1.91819169234589e+00 5.38092667680407e-02 -7.36787858250335e-02 + 2.03030303030303e+01 1.89846413272625e+00 6.03831302472022e-02 -7.39530553696621e-02 + 2.09090909090909e+01 1.87466454133309e+00 6.70692010615489e-02 -7.46027625051637e-02 + 2.15151515151515e+01 1.85548922705644e+00 7.34342005430408e-02 -7.59500599901144e-02 + 2.21212121212121e+01 1.83447067885711e+00 7.98876920266268e-02 -7.78623298562511e-02 + 2.27272727272727e+01 1.82184264498140e+00 8.55479039791953e-02 -8.01799710577512e-02 + 2.33333333333333e+01 1.80063115384815e+00 9.19569245564290e-02 -8.32366927380173e-02 + 2.39393939393939e+01 1.78439249121491e+00 9.77425792946011e-02 -8.65579579888432e-02 + 2.45454545454545e+01 1.77238645743908e+00 1.03035739566856e-01 -9.02637009092631e-02 + 2.51515151515151e+01 1.75364295427543e+00 1.10835524144102e-01 -9.51941375598754e-02 + 2.57575757575758e+01 1.73009895124061e+00 1.24721595376007e-01 -1.02481515339690e-01 + 2.63636363636364e+01 1.70655494819593e+00 1.38607666608122e-01 -1.09769938179333e-01 + 2.69696969696970e+01 1.68301094514052e+00 1.52493737840449e-01 -1.17059550494660e-01 + 2.75757575757576e+01 1.65946694207335e+00 1.66379809072992e-01 -1.24350515579960e-01 + 2.81818181818182e+01 1.63592293899330e+00 1.80265880305755e-01 -1.31643018666578e-01 + 2.87878787878788e+01 1.61237893589908e+00 1.94151951538742e-01 -1.38937270592766e-01 + 2.93939393939394e+01 1.58883493278925e+00 2.08038022771955e-01 -1.46213076600523e-01 + 3.00000000000000e+01 1.56529092966212e+00 2.21924094005399e-01 -1.53471037985173e-01 + 3.30000000000000e+01 1.48442134034049e+00 3.00658558785448e-01 -1.73059778143024e-01 + 3.60000000000000e+01 1.40355258523358e+00 3.79393257377335e-01 -1.92618048266184e-01 + 3.90000000000000e+01 1.32268383012667e+00 4.58127955969221e-01 -2.12433402376581e-01 + 4.20000000000000e+01 1.24998695201654e+00 5.40702789411103e-01 -2.28350280172507e-01 + 4.50000000000000e+01 1.18136489043588e+00 6.25192463833616e-01 -2.42290303700595e-01 + 4.80000000000000e+01 1.11274282885522e+00 7.09682138256129e-01 -2.56230327228682e-01 + 5.10000000000000e+01 1.04277867830655e+00 7.92939075486591e-01 -2.69864489884909e-01 + 5.40000000000000e+01 9.70122172887456e-01 8.73723027645226e-01 -2.82885067281405e-01 + 5.70000000000000e+01 8.97465667468365e-01 9.54506979803861e-01 -2.95905644677900e-01 + 6.00000000000000e+01 8.24780848820878e-01 1.03524321564261e+00 -3.08927408445995e-01 + 6.30000000000000e+01 7.44620075153227e-01 1.10338021496130e+00 -3.22262427226655e-01 + 6.60000000000000e+01 6.64459301485576e-01 1.17151721427999e+00 -3.35597446007315e-01 + 6.90000000000000e+01 5.84298527817925e-01 1.23965421359868e+00 -3.48932464787975e-01 + 7.20000000000000e+01 5.01130331685360e-01 1.29455023988321e+00 -3.62253807443279e-01 + 7.50000000000000e+01 4.16423321544245e-01 1.34267123039225e+00 -3.75568152407528e-01 + 7.80000000000000e+01 3.31716311403130e-01 1.39079222090130e+00 -3.88882497371777e-01 + 8.10000000000000e+01 2.47740368664156e-01 1.43045737622545e+00 -4.01816391498204e-01 + 8.40000000000000e+01 1.65193953463313e-01 1.45358801062950e+00 -4.14006352920231e-01 + 8.70000000000000e+01 8.26475382624694e-02 1.47671864503356e+00 -4.26196314342259e-01 + 9.00000000000000e+01 1.01123061446758e-04 1.49984927943763e+00 -4.38386275764286e-01 + 9.30000000000000e+01 -5.77939860694931e-02 1.47690191814948e+00 -4.41469468141523e-01 + 9.60000000000000e+01 -1.15592830325142e-01 1.45377461943716e+00 -4.44517098022171e-01 + 9.90000000000000e+01 -1.73391674580790e-01 1.43064732072484e+00 -4.47564727902819e-01 + 1.02000000000000e+02 -2.32196198709924e-01 1.39069880052543e+00 -4.47761190268970e-01 + 1.05000000000000e+02 -2.91489466809937e-01 1.34257544179003e+00 -4.46572031853184e-01 + 1.08000000000000e+02 -3.50782734909950e-01 1.29445208305464e+00 -4.45382873437398e-01 + 1.11000000000000e+02 -4.09025619356320e-01 1.23971370618557e+00 -4.43557958973559e-01 + 1.14000000000000e+02 -4.65142654850179e-01 1.17158733596613e+00 -4.40446351477014e-01 + 1.17000000000000e+02 -5.21259690344039e-01 1.10346096574669e+00 -4.37334743980469e-01 + 1.20000000000000e+02 -5.77337109405295e-01 1.03523918414393e+00 -4.34235597975675e-01 + 1.23000000000000e+02 -6.28204084165071e-01 9.54468678038906e-01 -4.32775416017174e-01 + 1.26000000000000e+02 -6.79071058924847e-01 8.73698171933883e-01 -4.31315234058673e-01 + 1.29000000000000e+02 -7.29938033684624e-01 7.92927665828860e-01 -4.29855052100172e-01 + 1.32000000000000e+02 -7.78920257387033e-01 7.09681573304321e-01 -4.33327041908886e-01 + 1.35000000000000e+02 -8.26954264384670e-01 6.25190015290898e-01 -4.39280403271788e-01 + 1.38000000000000e+02 -8.74988271382308e-01 5.40698457277474e-01 -4.45233764634690e-01 + 1.41000000000000e+02 -9.25947996789451e-01 4.58171608428159e-01 -4.56823171496787e-01 + 1.44000000000000e+02 -9.82533313374972e-01 3.79422515669717e-01 -4.79249604826705e-01 + 1.47000000000000e+02 -1.03911862996049e+00 3.00673422911275e-01 -5.01676038156624e-01 + 1.50000000000000e+02 -1.09570394654601e+00 2.21924330152832e-01 -5.24102471486543e-01 + 1.53000000000000e+02 -1.06229300410819e+00 1.58121667998833e-01 -5.36728308090680e-01 + 1.56000000000000e+02 -1.02887153791983e+00 9.43207536120064e-02 -5.49352998657901e-01 + 1.59000000000000e+02 -9.95450071731470e-01 3.05198392251792e-02 -5.62269122394462e-01 + 1.62000000000000e+02 -8.86808952221793e-01 7.15719267701114e-03 -5.49903528971090e-01 + 1.65000000000000e+02 -7.39007460123799e-01 4.84725729494606e-03 -5.24309733247013e-01 + 1.68000000000000e+02 -5.91205968025803e-01 2.53732191288097e-03 -4.98715936987219e-01 + 1.71000000000000e+02 -4.43404475964539e-01 1.00000000000000e-03 -4.33366030822941e-01 + 1.74000000000000e+02 -2.95602983976360e-01 1.00000000000000e-03 -2.88910687215294e-01 + 1.77000000000000e+02 -1.47801491988179e-01 1.00000000000000e-03 -1.44455343607646e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_10.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_10.dat new file mode 100644 index 000000000..86dff861b --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_10.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF10_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +10.740662 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.060294 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.848485 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.848485 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.799813 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.938541 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007696 Cd0 ! 2D drag coefficient value at 0-lift. +-0.075801 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.50043566088950e-01 1.00000000000000e-03 1.17231167710695e-01 +-1.74000000000000e+02 3.00087132177902e-01 1.00000000000000e-03 2.34462335421392e-01 +-1.71000000000000e+02 4.50130698266852e-01 1.00000000000000e-03 3.51693503132087e-01 +-1.68000000000000e+02 6.00174264492929e-01 3.02509890944817e-03 4.28493969981809e-01 +-1.65000000000000e+02 7.50217830787922e-01 6.06795387945860e-03 4.84975124566414e-01 +-1.62000000000000e+02 9.00261397082913e-01 9.11080884946899e-03 5.41456278294307e-01 +-1.59000000000000e+02 1.01032800760753e+00 3.29358106077335e-02 5.74238621269325e-01 +-1.56000000000000e+02 1.04360646329252e+00 9.66793773173319e-02 5.61703154165825e-01 +-1.53000000000000e+02 1.07688491897751e+00 1.60422944026930e-01 5.49633223793335e-01 +-1.50000000000000e+02 1.11015267003325e+00 2.24168256094491e-01 5.37562010740454e-01 +-1.47000000000000e+02 1.05187733647920e+00 3.02839395863243e-01 5.14521663039424e-01 +-1.44000000000000e+02 9.93602002925137e-01 3.81510535631996e-01 4.91481315338394e-01 +-1.41000000000000e+02 9.35326669371078e-01 4.60181675400749e-01 4.68440967637364e-01 +-1.38000000000000e+02 8.83078932573690e-01 5.42618772682067e-01 4.56416635691256e-01 +-1.35000000000000e+02 8.33965986456409e-01 6.27014443004788e-01 4.50121436750307e-01 +-1.32000000000000e+02 7.84853040339127e-01 7.11410113327511e-01 4.43826237809357e-01 +-1.29000000000000e+02 7.34910418371205e-01 7.94555272658500e-01 4.40063033869305e-01 +-1.26000000000000e+02 6.83318666590551e-01 8.75214816726590e-01 4.41332624891810e-01 +-1.23000000000000e+02 6.31726914809897e-01 9.55874360794681e-01 4.42602215914316e-01 +-1.20000000000000e+02 5.80135163029244e-01 1.03653390486277e+00 4.43871806936822e-01 +-1.17000000000000e+02 5.23580601108595e-01 1.10463306383179e+00 4.46864305311042e-01 +-1.14000000000000e+02 4.66988305585578e-01 1.17263672275879e+00 4.49869903420914e-01 +-1.11000000000000e+02 4.10396010062560e-01 1.24064038168579e+00 4.52875501530787e-01 +-1.08000000000000e+02 3.51813397430135e-01 1.29525064613305e+00 4.54627482537904e-01 +-1.05000000000000e+02 2.92247367535246e-01 1.34324322374434e+00 4.55760050340191e-01 +-1.02000000000000e+02 2.32681337640357e-01 1.39123580135564e+00 4.56892618142478e-01 +-9.90000000000000e+01 1.73663592892070e-01 1.43105217670311e+00 4.56648361033228e-01 +-9.60000000000000e+01 1.15774044847427e-01 1.45404452444473e+00 4.53571035517315e-01 +-9.30000000000000e+01 5.78844968027825e-02 1.47703687218635e+00 4.50493710001402e-01 +-9.00000000000000e+01 -5.06551667479397e-06 1.49985033113721e+00 4.47376942937141e-01 +-8.70000000000000e+01 -5.78982834321244e-02 1.47685432619345e+00 4.34160067443326e-01 +-8.40000000000000e+01 -1.15791501347062e-01 1.45385832124984e+00 4.20943191949511e-01 +-8.10000000000000e+01 -1.73684719262000e-01 1.43086231630624e+00 4.07726316455697e-01 +-7.80000000000000e+01 -2.32685786685913e-01 1.39132924627811e+00 3.92775261229524e-01 +-7.50000000000000e+01 -2.92253413788382e-01 1.34333903996690e+00 3.76937337973204e-01 +-7.20000000000000e+01 -3.51821040890852e-01 1.29534883365570e+00 3.61099414716885e-01 +-6.90000000000000e+01 -4.10380117681125e-01 1.24058085601677e+00 3.45047150882836e-01 +-6.60000000000000e+01 -4.66968107095640e-01 1.17256655904372e+00 3.28575984787029e-01 +-6.30000000000000e+01 -5.23556096510155e-01 1.10455226207068e+00 3.12104818691221e-01 +-6.00000000000000e+01 -5.80144085924670e-01 1.03653796509764e+00 2.95633652595414e-01 +-5.70000000000000e+01 -6.31747663809797e-01 9.55912717507481e-01 2.79987293442236e-01 +-5.40000000000000e+01 -6.83332364537201e-01 8.75239709233353e-01 2.64344058030077e-01 +-5.10000000000000e+01 -7.34917065264605e-01 7.94566700959226e-01 2.48700822617918e-01 +-4.80000000000000e+01 -7.84853452073603e-01 7.11410651231849e-01 2.33684399988999e-01 +-4.50000000000000e+01 -8.33968184965421e-01 6.27016851392796e-01 2.18980431907080e-01 +-4.20000000000000e+01 -8.83082917857239e-01 5.42623051553742e-01 2.04276463825161e-01 +-3.90000000000000e+01 -9.35253636663016e-01 4.60138119172759e-01 1.88764483980816e-01 +-3.60000000000000e+01 -9.93553009559654e-01 3.81481341987904e-01 1.71632069771694e-01 +-3.30000000000000e+01 -1.05185238245629e+00 3.02824564803048e-01 1.54499655562573e-01 +-3.00000000000000e+01 -1.11015185969114e+00 2.24168540381712e-01 1.37366753354290e-01 +-2.93939393939394e+01 -1.12283024096686e+00 2.14781911647823e-01 1.29689776334792e-01 +-2.87878787878788e+01 -1.13550758483443e+00 2.05396276585915e-01 1.21752252307036e-01 +-2.81818181818182e+01 -1.14818419221046e+00 1.96011961374704e-01 1.13780411366270e-01 +-2.75757575757576e+01 -1.16086025789135e+00 1.86629452492830e-01 1.05841467173247e-01 +-2.69696969696970e+01 -1.17353591354312e+00 1.77249508986131e-01 9.79334470075332e-02 +-2.63636363636364e+01 -1.18621125135906e+00 1.67873384456433e-01 9.00545327885214e-02 +-2.57575757575758e+01 -1.19888633782054e+00 1.58503308221050e-01 8.22644769913139e-02 +-2.51515151515151e+01 -1.21156122207626e+00 1.49143663937891e-01 7.45513674803479e-02 +-2.45454545454545e+01 -1.22423594124527e+00 1.39804420946845e-01 6.68589398015963e-02 +-2.39393939393939e+01 -1.23691052388521e+00 1.30457133476877e-01 5.91855554277455e-02 +-2.33333333333333e+01 -1.24958499232604e+00 1.20735877203354e-01 5.15296367651210e-02 +-2.27272727272727e+01 -1.26225936427994e+00 1.11046270549208e-01 4.38896539038490e-02 +-2.21212121212121e+01 -1.27493365397629e+00 1.01387577784453e-01 3.62641113592950e-02 +-2.15151515151515e+01 -1.28760787297759e+00 9.17590858075626e-02 2.86515345167152e-02 +-2.09090909090909e+01 -1.30028203077630e+00 8.21601032821365e-02 2.10504554579664e-02 +-2.03030303030303e+01 -1.31295613523825e+00 7.25899598128051e-02 1.34593978003862e-02 +-1.96969696969697e+01 -1.32345321323611e+00 6.52419568021220e-02 3.20520436338546e-03 +-1.90909090909091e+01 -1.33077810119559e+00 6.10297527572702e-02 -5.23450972159092e-03 +-1.84848484848485e+01 -1.33614290637822e+00 5.67566947479338e-02 -9.44918386116939e-03 +-1.78787878787879e+01 -1.33153872282707e+00 5.33106469177023e-02 -1.04148726756919e-02 +-1.72727272727273e+01 -1.32914446974997e+00 4.95887138532092e-02 -1.14015056118405e-02 +-1.66666666666667e+01 -1.32457137401965e+00 4.61121344576736e-02 -1.22405533503708e-02 +-1.60606060606061e+01 -1.31418162435939e+00 4.30125155790101e-02 -1.29943393432274e-02 +-1.54545454545455e+01 -1.30386082041188e+00 3.99022498472035e-02 -1.35458832875078e-02 +-1.48484848484848e+01 -1.29056123005313e+00 3.69556319415288e-02 -1.39801384112916e-02 +-1.42424242424242e+01 -1.27784950806918e+00 3.39821966454075e-02 -1.42784737236559e-02 +-1.36363636363636e+01 -1.26233356605366e+00 3.11857326927043e-02 -1.45024652646616e-02 +-1.30303030303030e+01 -1.25088812400518e+00 2.83092597718327e-02 -1.41145203419845e-02 +-1.24242424242424e+01 -1.23120330250318e+00 2.56445460925586e-02 -1.46853482110999e-02 +-1.18181818181818e+01 -1.19282514666256e+00 2.32028659397645e-02 -1.75162700357134e-02 +-1.12121212121212e+01 -1.14711789108598e+00 2.08482304984292e-02 -1.96063353000243e-02 +-1.06060606060606e+01 -1.09293484312547e+00 1.87760080389184e-02 -2.17649888671985e-02 +-1.00000000000000e+01 -1.03525280205673e+00 1.66898235085840e-02 -2.36569315990845e-02 +-9.39393939393939e+00 -9.94037848366178e-01 1.47541479988819e-02 -2.48207365365850e-02 +-8.78787878787879e+00 -9.47648604501072e-01 1.32062098098630e-02 -2.61635143875357e-02 +-8.18181818181818e+00 -8.74006059133531e-01 1.16788190762993e-02 -3.15970270492275e-02 +-7.57575757575758e+00 -7.91352687703680e-01 1.05659490432952e-02 -3.71688257605530e-02 +-6.96969696969697e+00 -7.04543788605535e-01 9.72454078914978e-03 -4.26280660537549e-02 +-6.36363636363636e+00 -6.16280294713939e-01 9.10662397646213e-03 -4.77501268033683e-02 +-5.75757575757576e+00 -5.29082873413883e-01 8.66735057733185e-03 -5.22239407926730e-02 +-5.15151515151515e+00 -4.43218737105747e-01 8.37314796088910e-03 -5.59617006074943e-02 +-4.54545454545454e+00 -3.57434776635254e-01 8.14724497403379e-03 -5.94164129268914e-02 +-3.93939393939394e+00 -2.72202170415956e-01 7.98955828696806e-03 -6.27216474295813e-02 +-3.33333333333333e+00 -1.87188564881654e-01 7.84821389662906e-03 -6.58862740142175e-02 +-2.72727272727273e+00 -1.02722923469142e-01 7.76381335962797e-03 -7.03300602039604e-02 +-2.12121212121212e+00 -9.59457438991140e-03 7.69858943499862e-03 -7.53907371564899e-02 +-1.51515151515152e+00 8.58598202284015e-02 7.67644314188152e-03 -7.94752627493699e-02 +-9.09090909090912e-01 1.74961248863728e-01 7.66013572176549e-03 -8.30816518391872e-02 +-3.03030303030302e-01 2.58467129421454e-01 7.67999108813380e-03 -8.57468902593953e-02 + 3.03030303030302e-01 3.41505708133021e-01 7.71832352074992e-03 -8.83799711252963e-02 + 9.09090909090912e-01 4.24235317993122e-01 7.78530920441145e-03 -9.08589189042911e-02 + 1.51515151515152e+00 5.06565387293423e-01 7.86313007292563e-03 -9.33473030868493e-02 + 2.12121212121212e+00 5.88496018318609e-01 7.97153461183604e-03 -9.56485497564399e-02 + 2.72727272727273e+00 6.70016370513354e-01 8.09346625838709e-03 -9.79506379158314e-02 + 3.33333333333333e+00 7.51122447053421e-01 8.23742859534786e-03 -1.00086583626824e-01 + 3.93939393939394e+00 8.31482879418247e-01 8.39861096084592e-03 -1.02133800362787e-01 + 4.54545454545455e+00 9.11682434501636e-01 8.56992330437810e-03 -1.04081736170960e-01 + 5.15151515151515e+00 9.90682736188036e-01 8.77144211427068e-03 -1.05844069394516e-01 + 5.75757575757576e+00 1.06944888675430e+00 8.97432387380525e-03 -1.07544106370750e-01 + 6.36363636363637e+00 1.14719222889803e+00 9.20559635198575e-03 -1.09054057796074e-01 + 6.96969696969697e+00 1.22437553798049e+00 9.43263127447575e-03 -1.10454402858398e-01 + 7.57575757575757e+00 1.29943738988211e+00 9.72154359750333e-03 -1.11463129753321e-01 + 8.18181818181818e+00 1.37413761815557e+00 9.97670230292471e-03 -1.12450816821758e-01 + 8.78787878787879e+00 1.44606519027566e+00 1.02845185405573e-02 -1.12944121748297e-01 + 9.39393939393939e+00 1.51629805238267e+00 1.05695962357972e-02 -1.13121220116755e-01 + 1.00000000000000e+01 1.58080790627141e+00 1.09773885216570e-02 -1.12296245291465e-01 + 1.06060606060606e+01 1.63606577349952e+00 1.13579987884068e-02 -1.09769921709625e-01 + 1.12121212121212e+01 1.69422807889279e+00 1.18834720707200e-02 -1.08196418791764e-01 + 1.18181818181818e+01 1.75146748129068e+00 1.24784796662688e-02 -1.06688153315571e-01 + 1.24242424242424e+01 1.80529895307951e+00 1.31777660442744e-02 -1.04953305385416e-01 + 1.30303030303030e+01 1.85702916423521e+00 1.39580957980194e-02 -1.03293639669389e-01 + 1.36363636363636e+01 1.90177383859444e+00 1.49540187531251e-02 -1.01035919378155e-01 + 1.42424242424242e+01 1.93632059556934e+00 1.62413128362111e-02 -9.78053268689315e-02 + 1.48484848484848e+01 1.96824357054278e+00 1.78956185574831e-02 -9.50724393455178e-02 + 1.54545454545455e+01 1.99618435220740e+00 1.99839735320094e-02 -9.26074690337881e-02 + 1.60606060606061e+01 2.02018883629518e+00 2.25474497167202e-02 -9.04884351126327e-02 + 1.66666666666667e+01 2.03434313070655e+00 2.58788327139858e-02 -8.84712162394354e-02 + 1.72727272727273e+01 2.04503711952915e+00 2.96254552376516e-02 -8.67820302584502e-02 + 1.78787878787879e+01 2.04218533244044e+00 3.44125066748471e-02 -8.50505026255746e-02 + 1.84848484848485e+01 2.03208428846062e+00 3.99937680404621e-02 -8.38031482381189e-02 + 1.90909090909091e+01 2.01661096102904e+00 4.62459280790138e-02 -8.28345740219019e-02 + 1.96969696969697e+01 1.99065053818044e+00 5.33701119079096e-02 -8.23006241903856e-02 + 2.03030303030303e+01 1.96283144318434e+00 6.05208434504539e-02 -8.24928440240529e-02 + 2.09090909090909e+01 1.93169986815923e+00 6.75362224554061e-02 -8.31226245902826e-02 + 2.15151515151515e+01 1.90532918850516e+00 7.42920395127286e-02 -8.45817010233972e-02 + 2.21212121212121e+01 1.87794450392803e+00 8.11623959928641e-02 -8.68189925842069e-02 + 2.27272727272727e+01 1.85910686232192e+00 8.72558268661231e-02 -8.95066152531848e-02 + 2.33333333333333e+01 1.83578915175023e+00 9.38177078391325e-02 -9.26387149627840e-02 + 2.39393939393939e+01 1.81451979479451e+00 9.99903070180444e-02 -9.62838053009122e-02 + 2.45454545454545e+01 1.79920021203616e+00 1.05453493385403e-01 -1.00103065751682e-01 + 2.51515151515151e+01 1.78014576998526e+00 1.13181698332961e-01 -1.05092142424854e-01 + 2.57575757575758e+01 1.75586904115510e+00 1.27054988672127e-01 -1.12536160182222e-01 + 2.63636363636364e+01 1.73159231230921e+00 1.40928279012709e-01 -1.19990541541698e-01 + 2.69696969696970e+01 1.70731558344614e+00 1.54801569354731e-01 -1.27456306415336e-01 + 2.75757575757576e+01 1.68303885456431e+00 1.68674859698218e-01 -1.34934603374805e-01 + 2.81818181818182e+01 1.65876212566190e+00 1.82548150043194e-01 -1.42426730399990e-01 + 2.87878787878788e+01 1.63448539673687e+00 1.96421440389684e-01 -1.49934159771382e-01 + 2.93939393939394e+01 1.61020866778688e+00 2.10294730737714e-01 -1.57320036179727e-01 + 3.00000000000000e+01 1.58593193880927e+00 2.24168021087308e-01 -1.64588480262137e-01 + 3.30000000000000e+01 1.50264625930563e+00 3.02824564803049e-01 -1.83959197866049e-01 + 3.60000000000000e+01 1.41936144233354e+00 3.81481341987904e-01 -2.03281464428021e-01 + 3.90000000000000e+01 1.33607662536145e+00 4.60138119172760e-01 -2.23014398174117e-01 + 4.20000000000000e+01 1.26154702674224e+00 5.42623051553742e-01 -2.38840129120857e-01 + 4.50000000000000e+01 1.19138312139978e+00 6.27016851392796e-01 -2.52664986699780e-01 + 4.80000000000000e+01 1.12121921605731e+00 7.11410651231849e-01 -2.66489844278703e-01 + 5.10000000000000e+01 1.04988152029741e+00 7.94566700959226e-01 -2.80008579730605e-01 + 5.40000000000000e+01 9.76189092159428e-01 8.75239709233353e-01 -2.92913205820705e-01 + 5.70000000000000e+01 9.02496664021447e-01 9.55912717507481e-01 -3.05817831910805e-01 + 6.00000000000000e+01 8.28777268514226e-01 1.03653796509764e+00 -3.18723717432424e-01 + 6.30000000000000e+01 7.47937284827138e-01 1.10455226207068e+00 -3.31962149043665e-01 + 6.60000000000000e+01 6.67097301140049e-01 1.17256655904372e+00 -3.45200580654907e-01 + 6.90000000000000e+01 5.86257317452959e-01 1.24058085601677e+00 -3.58439012266149e-01 + 7.20000000000000e+01 5.02601492831300e-01 1.29534883365570e+00 -3.71676647743169e-01 + 7.50000000000000e+01 4.17504881114872e-01 1.34333903996690e+00 -3.84913875860562e-01 + 7.80000000000000e+01 3.32408269398444e-01 1.39132924627811e+00 -3.98151103977954e-01 + 8.10000000000000e+01 2.48130580047883e-01 1.43086231630624e+00 -4.11011406625820e-01 + 8.40000000000000e+01 1.65454209632037e-01 1.45385832124984e+00 -4.23134670066447e-01 + 8.70000000000000e+01 8.27778392161903e-02 1.47685432619345e+00 -4.35257933507073e-01 + 9.00000000000000e+01 1.01468800056856e-04 1.49985033113721e+00 -4.47381196947700e-01 + 9.30000000000000e+01 -5.78844968027825e-02 1.47703687218635e+00 -4.50493710001402e-01 + 9.60000000000000e+01 -1.15774044847427e-01 1.45404452444473e+00 -4.53571035517315e-01 + 9.90000000000000e+01 -1.73663592892071e-01 1.43105217670311e+00 -4.56648361033228e-01 + 1.02000000000000e+02 -2.32681337640357e-01 1.39123580135564e+00 -4.56892618142478e-01 + 1.05000000000000e+02 -2.92247367535246e-01 1.34324322374434e+00 -4.55760050340191e-01 + 1.08000000000000e+02 -3.51813397430135e-01 1.29525064613305e+00 -4.54627482537904e-01 + 1.11000000000000e+02 -4.10396010062561e-01 1.24064038168579e+00 -4.52875501530787e-01 + 1.14000000000000e+02 -4.66988305585578e-01 1.17263672275879e+00 -4.49869903420914e-01 + 1.17000000000000e+02 -5.23580601108595e-01 1.10463306383179e+00 -4.46864305311042e-01 + 1.20000000000000e+02 -5.80135163029244e-01 1.03653390486277e+00 -4.43871806936822e-01 + 1.23000000000000e+02 -6.31726914809898e-01 9.55874360794680e-01 -4.42602215914316e-01 + 1.26000000000000e+02 -6.83318666590551e-01 8.75214816726590e-01 -4.41332624891810e-01 + 1.29000000000000e+02 -7.34910418371205e-01 7.94555272658499e-01 -4.40063033869304e-01 + 1.32000000000000e+02 -7.84853040339128e-01 7.11410113327510e-01 -4.43826237809357e-01 + 1.35000000000000e+02 -8.33965986456409e-01 6.27014443004789e-01 -4.50121436750307e-01 + 1.38000000000000e+02 -8.83078932573691e-01 5.42618772682066e-01 -4.56416635691256e-01 + 1.41000000000000e+02 -9.35326669371079e-01 4.60181675400748e-01 -4.68440967637364e-01 + 1.44000000000000e+02 -9.93602002925137e-01 3.81510535631996e-01 -4.91481315338394e-01 + 1.47000000000000e+02 -1.05187733647920e+00 3.02839395863243e-01 -5.14521663039424e-01 + 1.50000000000000e+02 -1.11015267003326e+00 2.24168256094490e-01 -5.37562010740454e-01 + 1.53000000000000e+02 -1.07688491897751e+00 1.60422944026930e-01 -5.50504201812189e-01 + 1.56000000000000e+02 -1.04360646329252e+00 9.66793773173318e-02 -5.63445212051715e-01 + 1.59000000000000e+02 -1.01032800760753e+00 3.29358106077335e-02 -5.76851759022252e-01 + 1.62000000000000e+02 -9.00261397082913e-01 9.11080884946899e-03 -5.61885939650620e-01 + 1.65000000000000e+02 -7.50217830787922e-01 6.06795387945860e-03 -5.32043337561383e-01 + 1.68000000000000e+02 -6.00174264492929e-01 3.02509890944817e-03 -5.02200734616389e-01 + 1.71000000000000e+02 -4.50130698266852e-01 1.00000000000000e-03 -4.33957221518903e-01 + 1.74000000000000e+02 -3.00087132177902e-01 1.00000000000000e-03 -2.89304814345935e-01 + 1.77000000000000e+02 -1.50043566088950e-01 1.00000000000000e-03 -1.44652407172967e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_11.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_11.dat new file mode 100644 index 000000000..e25fd7da3 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_11.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF11_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +11.275006 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.402303 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.848485 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.848485 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.835259 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.309510 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007639 Cd0 ! 2D drag coefficient value at 0-lift. +-0.084016 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.51689610269997e-01 1.00000000000000e-03 1.17438249588681e-01 +-1.74000000000000e+02 3.03379220539995e-01 1.00000000000000e-03 2.34876499177364e-01 +-1.71000000000000e+02 4.55068830809992e-01 1.00000000000000e-03 3.52314748766045e-01 +-1.68000000000000e+02 6.06758441282193e-01 3.60494051165907e-03 4.32163363591052e-01 +-1.65000000000000e+02 7.58448051856018e-01 7.51904867966119e-03 4.93120507016804e-01 +-1.62000000000000e+02 9.10137662429841e-01 1.14331568476633e-02 5.54077649805652e-01 +-1.59000000000000e+02 1.02125081338328e+00 3.58077802415968e-02 5.89744823229066e-01 +-1.56000000000000e+02 1.05442427623062e+00 9.94831753173916e-02 5.76985759492393e-01 +-1.53000000000000e+02 1.08759773907796e+00 1.63158570393186e-01 5.64572789416077e-01 +-1.50000000000000e+02 1.12076036450192e+00 2.26835707963003e-01 5.52158498924863e-01 +-1.47000000000000e+02 1.06124428582808e+00 3.05414181593206e-01 5.28452378518311e-01 +-1.44000000000000e+02 1.00172820715423e+00 3.83992655223409e-01 5.04746258111759e-01 +-1.41000000000000e+02 9.42212128480393e-01 4.62571128853613e-01 4.81040137705206e-01 +-1.38000000000000e+02 8.89018783503087e-01 5.44901534540702e-01 4.68544141853661e-01 +-1.35000000000000e+02 8.39113721976853e-01 6.29183219007563e-01 4.61878229764599e-01 +-1.32000000000000e+02 7.89208660450617e-01 7.13464903474425e-01 4.55212317675538e-01 +-1.29000000000000e+02 7.38560951175757e-01 7.96490079171308e-01 4.51133300278053e-01 +-1.26000000000000e+02 6.86437096076391e-01 8.77017717943466e-01 4.52196200841634e-01 +-1.23000000000000e+02 6.34313240977025e-01 9.57545356715624e-01 4.53259101405216e-01 +-1.20000000000000e+02 5.82189385877660e-01 1.03807299548778e+00 4.54322001968797e-01 +-1.17000000000000e+02 5.25284524100634e-01 1.10602638765839e+00 4.57198844015544e-01 +-1.14000000000000e+02 4.68343311022670e-01 1.17388417439418e+00 4.60089477955336e-01 +-1.11000000000000e+02 4.11402097944706e-01 1.24174196112997e+00 4.62980111895127e-01 +-1.08000000000000e+02 3.52570069950494e-01 1.29619993272261e+00 4.64652998639118e-01 +-1.05000000000000e+02 2.92803788806384e-01 1.34403704502440e+00 4.65724195527757e-01 +-1.02000000000000e+02 2.33037507662274e-01 1.39187415732619e+00 4.66795392416397e-01 +-9.90000000000000e+01 1.73863224558019e-01 1.43153344629681e+00 4.66499303265222e-01 +-9.60000000000000e+01 1.15907085409086e-01 1.45436537201979e+00 4.63389773675967e-01 +-9.30000000000000e+01 5.79509462601533e-02 1.47719729774278e+00 4.60280244086713e-01 +-9.00000000000000e+01 -5.20796089110804e-06 1.49985158123068e+00 4.57131671341757e-01 +-8.70000000000000e+01 -5.79652219145222e-02 1.47701561614353e+00 4.43985009715283e-01 +-8.40000000000000e+01 -1.15925235867773e-01 1.45417965105664e+00 4.30838348088808e-01 +-8.10000000000000e+01 -1.73885249821023e-01 1.43134368596975e+00 4.17691686462334e-01 +-7.80000000000000e+01 -2.33041392524430e-01 1.39196763145815e+00 4.02812436317698e-01 +-7.50000000000000e+01 -2.92809241343793e-01 1.34413289400106e+00 3.87047131897670e-01 +-7.20000000000000e+01 -3.52577090163156e-01 1.29629815654397e+00 3.71281827477642e-01 +-6.90000000000000e+01 -4.11386765755100e-01 1.24168239587458e+00 3.55304678862953e-01 +-6.60000000000000e+01 -4.68323809779219e-01 1.17381396046317e+00 3.38913506859768e-01 +-6.30000000000000e+01 -5.25260853803338e-01 1.10594552505175e+00 3.22522334856583e-01 +-6.00000000000000e+01 -5.82197897827458e-01 1.03807708964034e+00 3.06131162853398e-01 +-5.70000000000000e+01 -6.34333158262344e-01 9.57583778599947e-01 2.90571321888578e-01 +-5.40000000000000e+01 -6.86450233195164e-01 8.77042654138236e-01 2.75014629373086e-01 +-5.10000000000000e+01 -7.38567308127985e-01 7.96501529676524e-01 2.59457936857594e-01 +-4.80000000000000e+01 -7.89209577246768e-01 7.13465409341323e-01 2.44522530884861e-01 +-4.50000000000000e+01 -8.39116683020358e-01 6.29185579837674e-01 2.29896824730743e-01 +-4.20000000000000e+01 -8.89023788793948e-01 5.44905750334025e-01 2.15271118576624e-01 +-3.90000000000000e+01 -9.42136365916547e-01 4.62527687242571e-01 1.99812715700356e-01 +-3.60000000000000e+01 -1.00167738402328e+00 3.83963538491730e-01 1.82684373787611e-01 +-3.30000000000000e+01 -1.06121840213002e+00 3.05399389740889e-01 1.65556031874865e-01 +-3.00000000000000e+01 -1.12075964402288e+00 2.26835958865349e-01 1.48427161848217e-01 +-2.93939393939394e+01 -1.13472095698095e+00 2.17166901718582e-01 1.40404451452826e-01 +-2.87878787878788e+01 -1.14868149869937e+00 2.07499466200922e-01 1.31956539763133e-01 +-2.81818181818182e+01 -1.16264149288837e+00 1.97834184621732e-01 1.23452624375965e-01 +-2.75757575757576e+01 -1.17660108436532e+00 1.88171850892828e-01 1.15002395038821e-01 +-2.69696969696970e+01 -1.19056037101459e+00 1.78513703743734e-01 1.06602632358441e-01 +-2.63636363636364e+01 -1.20451942137539e+00 1.68861788997670e-01 9.82503693069857e-02 +-2.57575757575758e+01 -1.21847828487190e+00 1.59219744802752e-01 8.99885364105604e-02 +-2.51515151515151e+01 -1.23243699804273e+00 1.49594725096497e-01 8.18068991080321e-02 +-2.45454545454545e+01 -1.24639558848325e+00 1.40002999404514e-01 7.36623521000407e-02 +-2.39393939393939e+01 -1.26035407742406e+00 1.30428384911792e-01 6.55524934045461e-02 +-2.33333333333333e+01 -1.27431248146590e+00 1.20456276052456e-01 5.74750508587927e-02 +-2.27272727272727e+01 -1.28827081377652e+00 1.10507696448471e-01 4.94278648585781e-02 +-2.21212121212121e+01 -1.30222908493447e+00 1.00582099136586e-01 4.14088718572693e-02 +-2.15151515151515e+01 -1.31618730353565e+00 9.06789539762094e-02 3.34160883195437e-02 +-2.09090909090909e+01 -1.33014547663703e+00 8.07977470075849e-02 2.54475948123420e-02 +-2.03030303030303e+01 -1.34410361008629e+00 7.09379798391313e-02 1.75015198896147e-02 +-1.96969696969697e+01 -1.35634089446042e+00 6.31338789400577e-02 3.68997528175884e-03 +-1.90909090909091e+01 -1.36531885285018e+00 5.89555072937216e-02 -6.13875463801514e-03 +-1.84848484848485e+01 -1.37153180133730e+00 5.47010182966506e-02 -9.13740876722979e-03 +-1.78787878787879e+01 -1.37203068159432e+00 5.10791096532998e-02 -9.90742999456007e-03 +-1.72727272727273e+01 -1.37261726591583e+00 4.72757330548261e-02 -1.07950155617831e-02 +-1.66666666666667e+01 -1.37156660018618e+00 4.37347735797183e-02 -1.15519125119095e-02 +-1.60606060606061e+01 -1.36459276898977e+00 4.05714629724993e-02 -1.22433125939862e-02 +-1.54545454545455e+01 -1.35541245964943e+00 3.75226788548865e-02 -1.27171495679240e-02 +-1.48484848484848e+01 -1.34392221854638e+00 3.45908802391314e-02 -1.30892914412254e-02 +-1.42424242424242e+01 -1.33258730420011e+00 3.16572882414190e-02 -1.33282057431925e-02 +-1.36363636363636e+01 -1.31863383912450e+00 2.88935039956974e-02 -1.34576840845876e-02 +-1.30303030303030e+01 -1.30981146856309e+00 2.60783174021870e-02 -1.27995579588819e-02 +-1.24242424242424e+01 -1.29026631153744e+00 2.34350423891070e-02 -1.35710417609597e-02 +-1.18181818181818e+01 -1.24243371478745e+00 2.10194031036460e-02 -1.76262369307158e-02 +-1.12121212121212e+01 -1.18256806819955e+00 1.88225925370193e-02 -2.17293013025407e-02 +-1.06060606060606e+01 -1.11356150679530e+00 1.69148949442234e-02 -2.59601888240692e-02 +-1.00000000000000e+01 -1.03898283027562e+00 1.50630903342917e-02 -3.02877304818523e-02 +-9.39393939393939e+00 -9.79442874927085e-01 1.33878542248902e-02 -3.37631071646560e-02 +-8.78787878787879e+00 -9.14655710015771e-01 1.21876642685672e-02 -3.66588652865007e-02 +-8.18181818181818e+00 -8.31090632893374e-01 1.08999947269881e-02 -4.30141786727078e-02 +-7.57575757575758e+00 -7.44090064516493e-01 1.00140443410040e-02 -4.87407012056813e-02 +-6.96969696969697e+00 -6.55544212834437e-01 9.34518199040078e-03 -5.40846569118470e-02 +-6.36363636363636e+00 -5.66807139719587e-01 8.84772236622702e-03 -5.90644743934195e-02 +-5.75757575757576e+00 -4.78797067452188e-01 8.47193461846339e-03 -6.35914019440599e-02 +-5.15151515151515e+00 -3.92012002612095e-01 8.21501203132593e-03 -6.73572710459829e-02 +-4.54545454545454e+00 -3.05297300849672e-01 8.00738016347558e-03 -7.08979679937899e-02 +-3.93939393939394e+00 -2.19304565629812e-01 7.86899541791487e-03 -7.42453360290320e-02 +-3.33333333333333e+00 -1.33625308108531e-01 7.74380425043747e-03 -7.74538170894232e-02 +-2.72727272727273e+00 -4.87838515344785e-02 7.67086511664237e-03 -8.15690666780125e-02 +-2.12121212121212e+00 4.21969066466811e-02 7.61235613536505e-03 -8.61323839276352e-02 +-1.51515151515152e+00 1.34686005018873e-01 7.59692901621396e-03 -8.99429374395758e-02 +-9.09090909090912e-01 2.22457296097393e-01 7.58774668414494e-03 -9.33679686427073e-02 +-3.03030303030302e-01 3.05895526456188e-01 7.61217252552099e-03 -9.60630981890118e-02 + 3.03030303030302e-01 3.88911971996079e-01 7.65759407474700e-03 -9.87047963222543e-02 + 9.09090909090912e-01 4.71593106519547e-01 7.72878918831358e-03 -1.01189924202834e-01 + 1.51515151515152e+00 5.53961011123042e-01 7.81050668471998e-03 -1.03686729244200e-01 + 2.12121212121212e+00 6.35860984340052e-01 7.92242100267620e-03 -1.05994653755434e-01 + 2.72727272727273e+00 7.17432282535499e-01 8.04788334964479e-03 -1.08304757101062e-01 + 3.33333333333333e+00 7.98610066365191e-01 8.19440889762518e-03 -1.10483474588196e-01 + 3.93939393939394e+00 8.79166716742413e-01 8.35220565849902e-03 -1.12558194219361e-01 + 4.54545454545455e+00 9.59482655350780e-01 8.52804695617091e-03 -1.14545030190728e-01 + 5.15151515151515e+00 1.03891136976680e+00 8.72258647439148e-03 -1.16360821750167e-01 + 5.75757575757576e+00 1.11802403312649e+00 8.92628829081604e-03 -1.18105392971683e-01 + 6.36363636363637e+00 1.19625477938433e+00 9.15780365131657e-03 -1.19677334387648e-01 + 6.96969696969697e+00 1.27410620778952e+00 9.37826639213654e-03 -1.21185769955501e-01 + 7.57575757575757e+00 1.35012228201400e+00 9.66340269139208e-03 -1.22335527649878e-01 + 8.18181818181818e+00 1.42586594784906e+00 9.91197311612650e-03 -1.23468074830262e-01 + 8.78787878787879e+00 1.49942946598133e+00 1.02101815221719e-02 -1.24223984129568e-01 + 9.39393939393939e+00 1.57168111296811e+00 1.04798369467909e-02 -1.24723584602291e-01 + 1.00000000000000e+01 1.63973975398952e+00 1.08824217063034e-02 -1.24487155844524e-01 + 1.06060606060606e+01 1.70203020135468e+00 1.12517195456011e-02 -1.23142151129877e-01 + 1.12121212121212e+01 1.76495056595023e+00 1.17221203253308e-02 -1.22185087891983e-01 + 1.18181818181818e+01 1.82594259831177e+00 1.22631509784387e-02 -1.21089149327683e-01 + 1.24242424242424e+01 1.88395578521606e+00 1.28569816282111e-02 -1.19684145700675e-01 + 1.30303030303030e+01 1.93866284246674e+00 1.35130505771529e-02 -1.18038513700856e-01 + 1.36363636363636e+01 1.98418092570498e+00 1.43469289720345e-02 -1.15261754877630e-01 + 1.42424242424242e+01 2.01580095692011e+00 1.54475547767247e-02 -1.10772026294547e-01 + 1.48484848484848e+01 2.04551083740946e+00 1.69284644914087e-02 -1.06946218944334e-01 + 1.54545454545455e+01 2.07213035804146e+00 1.88878943154267e-02 -1.03688994775527e-01 + 1.60606060606061e+01 2.09382983929922e+00 2.14196998578252e-02 -1.00833722172355e-01 + 1.66666666666667e+01 2.10744843427945e+00 2.46524708955173e-02 -9.83022606920793e-02 + 1.72727272727273e+01 2.11586103751794e+00 2.84256141557959e-02 -9.60807977029069e-02 + 1.78787878787879e+01 2.11168826590219e+00 3.32208027593936e-02 -9.39467553939175e-02 + 1.84848484848485e+01 2.09801666792867e+00 3.90034693110236e-02 -9.23389017007785e-02 + 1.90909090909091e+01 2.07683178193848e+00 4.56541984457446e-02 -9.11283866561860e-02 + 1.96969696969697e+01 2.04681945960034e+00 5.30988001519285e-02 -9.04699306639684e-02 + 2.03030303030303e+01 2.01228938791385e+00 6.07205659214260e-02 -9.06622623789359e-02 + 2.09090909090909e+01 1.97525706662162e+00 6.81756115401560e-02 -9.13604864007415e-02 + 2.15151515151515e+01 1.94298728640054e+00 7.54128492688484e-02 -9.29913027888785e-02 + 2.21212121212121e+01 1.91053814186669e+00 8.27653730665470e-02 -9.56106965456455e-02 + 2.27272727272727e+01 1.88664103263276e+00 8.93411988894964e-02 -9.87112974571198e-02 + 2.33333333333333e+01 1.86183578819731e+00 9.60626822544152e-02 -1.01988079174902e-01 + 2.39393939393939e+01 1.83660117071278e+00 1.02650699192628e-01 -1.06034978881905e-01 + 2.45454545454545e+01 1.81870468175632e+00 1.08310873565454e-01 -1.10056450015193e-01 + 2.51515151515151e+01 1.79960188159352e+00 1.15970607475550e-01 -1.15148551154154e-01 + 2.57575757575758e+01 1.77478736772295e+00 1.29828715789045e-01 -1.22753580895314e-01 + 2.63636363636364e+01 1.74997285384067e+00 1.43686824104853e-01 -1.30376421827115e-01 + 2.69696969696970e+01 1.72515833994563e+00 1.57544932423011e-01 -1.38018749611739e-01 + 2.75757575757576e+01 1.70034382603663e+00 1.71403040743560e-01 -1.45682450065537e-01 + 2.81818181818182e+01 1.67552931211234e+00 1.85261149066538e-01 -1.53369653023778e-01 + 2.87878787878788e+01 1.65071479817123e+00 1.99119257391988e-01 -1.61082772967960e-01 + 2.93939393939394e+01 1.62590028421156e+00 2.12977365719949e-01 -1.68598480017233e-01 + 3.00000000000000e+01 1.60108577023137e+00 2.26835474050465e-01 -1.75923511058052e-01 + 3.30000000000000e+01 1.51602629064356e+00 3.05399389740889e-01 -1.95367718866720e-01 + 3.60000000000000e+01 1.43096769435860e+00 3.83963538491730e-01 -2.14775802271562e-01 + 3.90000000000000e+01 1.34590909807363e+00 4.62527687242572e-01 -2.34489187706244e-01 + 4.20000000000000e+01 1.27003398691168e+00 5.44905750334026e-01 -2.50216072482835e-01 + 4.50000000000000e+01 1.19873811953814e+00 6.29185579837674e-01 -2.63916035859624e-01 + 4.80000000000000e+01 1.12744225216461e+00 7.13465409341323e-01 -2.77615999236412e-01 + 5.10000000000000e+01 1.05509615262594e+00 7.96501529676525e-01 -2.91009557162374e-01 + 5.40000000000000e+01 9.80643190016144e-01 8.77042654138236e-01 -3.03788437352719e-01 + 5.70000000000000e+01 9.06190227406353e-01 9.57583778599948e-01 -3.16567317543064e-01 + 6.00000000000000e+01 8.31711285505183e-01 1.03807708964034e+00 -3.29347536396336e-01 + 6.30000000000000e+01 7.50372652046211e-01 1.10594552505175e+00 -3.42481221964598e-01 + 6.60000000000000e+01 6.69034018587238e-01 1.17381396046317e+00 -3.55614907532860e-01 + 6.90000000000000e+01 5.87695385128265e-01 1.24168239587458e+00 -3.68748593101123e-01 + 7.20000000000000e+01 5.03681562551377e-01 1.29629815654397e+00 -3.81895450519866e-01 + 7.50000000000000e+01 4.18298920482650e-01 1.34413289400106e+00 -3.95049047606305e-01 + 7.80000000000000e+01 3.32916278413923e-01 1.39196763145815e+00 -4.08202644692744e-01 + 8.10000000000000e+01 2.48417058374034e-01 1.43134368596975e+00 -4.20983139471482e-01 + 8.40000000000000e+01 1.65645279763372e-01 1.45417965105664e+00 -4.33034070844935e-01 + 8.70000000000000e+01 8.28735011527086e-02 1.47701561614353e+00 -4.45085002218389e-01 + 9.00000000000000e+01 1.01722541832554e-04 1.49985158123068e+00 -4.57135933591842e-01 + 9.30000000000000e+01 -5.79509462601533e-02 1.47719729774278e+00 -4.60280244086713e-01 + 9.60000000000000e+01 -1.15907085409087e-01 1.45436537201979e+00 -4.63389773675967e-01 + 9.90000000000000e+01 -1.73863224558019e-01 1.43153344629681e+00 -4.66499303265222e-01 + 1.02000000000000e+02 -2.33037507662274e-01 1.39187415732619e+00 -4.66795392416397e-01 + 1.05000000000000e+02 -2.92803788806385e-01 1.34403704502440e+00 -4.65724195527757e-01 + 1.08000000000000e+02 -3.52570069950494e-01 1.29619993272261e+00 -4.64652998639118e-01 + 1.11000000000000e+02 -4.11402097944707e-01 1.24174196112997e+00 -4.62980111895127e-01 + 1.14000000000000e+02 -4.68343311022670e-01 1.17388417439418e+00 -4.60089477955336e-01 + 1.17000000000000e+02 -5.25284524100634e-01 1.10602638765839e+00 -4.57198844015544e-01 + 1.20000000000000e+02 -5.82189385877660e-01 1.03807299548778e+00 -4.54322001968797e-01 + 1.23000000000000e+02 -6.34313240977026e-01 9.57545356715624e-01 -4.53259101405215e-01 + 1.26000000000000e+02 -6.86437096076391e-01 8.77017717943466e-01 -4.52196200841634e-01 + 1.29000000000000e+02 -7.38560951175757e-01 7.96490079171307e-01 -4.51133300278053e-01 + 1.32000000000000e+02 -7.89208660450618e-01 7.13464903474425e-01 -4.55212317675538e-01 + 1.35000000000000e+02 -8.39113721976853e-01 6.29183219007563e-01 -4.61878229764599e-01 + 1.38000000000000e+02 -8.89018783503088e-01 5.44901534540701e-01 -4.68544141853661e-01 + 1.41000000000000e+02 -9.42212128480394e-01 4.62571128853613e-01 -4.81040137705206e-01 + 1.44000000000000e+02 -1.00172820715423e+00 3.83992655223409e-01 -5.04746258111759e-01 + 1.47000000000000e+02 -1.06124428582808e+00 3.05414181593206e-01 -5.28452378518311e-01 + 1.50000000000000e+02 -1.12076036450192e+00 2.26835707963003e-01 -5.52158498924863e-01 + 1.53000000000000e+02 -1.08759773907796e+00 1.63158570393186e-01 -5.65443767434931e-01 + 1.56000000000000e+02 -1.05442427623062e+00 9.94831753173917e-02 -5.78727817378284e-01 + 1.59000000000000e+02 -1.02125081338328e+00 3.58077802415968e-02 -5.92357960981993e-01 + 1.62000000000000e+02 -9.10137662429841e-01 1.14331568476633e-02 -5.74507311789215e-01 + 1.65000000000000e+02 -7.58448051856018e-01 7.51904867966119e-03 -5.40188721592780e-01 + 1.68000000000000e+02 -6.06758441282193e-01 3.60494051165907e-03 -5.05870130760151e-01 + 1.71000000000000e+02 -4.55068830809992e-01 1.00000000000000e-03 -4.34578470001855e-01 + 1.74000000000000e+02 -3.03379220539995e-01 1.00000000000000e-03 -2.89718980001237e-01 + 1.77000000000000e+02 -1.51689610269997e-01 1.00000000000000e-03 -1.44859490000618e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_12.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_12.dat new file mode 100644 index 000000000..886685454 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_12.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF12_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +11.716590 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.677109 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.848485 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.848485 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.897146 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.330393 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007587 Cd0 ! 2D drag coefficient value at 0-lift. +-0.090320 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.52776318842540e-01 1.00000000000000e-03 1.17596079658259e-01 +-1.74000000000000e+02 3.05552637685082e-01 1.00000000000000e-03 2.35192159316519e-01 +-1.71000000000000e+02 4.58328956527622e-01 1.00000000000000e-03 3.52788238974777e-01 +-1.68000000000000e+02 6.11105275621442e-01 4.11840566644716e-03 4.34961793709336e-01 +-1.65000000000000e+02 7.63881594841549e-01 8.80403170495165e-03 4.99333008215400e-01 +-1.62000000000000e+02 9.16657914061655e-01 1.34896577434561e-02 5.63704222383640e-01 +-1.59000000000000e+02 1.02846198477821e+00 3.83509857204368e-02 6.01606133461705e-01 +-1.56000000000000e+02 1.06156613196159e+00 1.01966013037325e-01 5.88745623260611e-01 +-1.53000000000000e+02 1.09467027914496e+00 1.65581040354212e-01 5.76068686399975e-01 +-1.50000000000000e+02 1.12776350123504e+00 2.29197807629016e-01 5.63390400087988e-01 +-1.47000000000000e+02 1.06742829003175e+00 3.07694222869718e-01 5.39171971985840e-01 +-1.44000000000000e+02 1.00709307882846e+00 3.86190638110420e-01 5.14953543883693e-01 +-1.41000000000000e+02 9.46757867625164e-01 4.64687053351123e-01 4.90735115781545e-01 +-1.38000000000000e+02 8.92940237761586e-01 5.46922980764265e-01 4.77876177672852e-01 +-1.35000000000000e+02 8.42512226358792e-01 6.31103727709890e-01 4.70925004267037e-01 +-1.32000000000000e+02 7.92084214955997e-01 7.15284474655516e-01 4.63973830861221e-01 +-1.29000000000000e+02 7.40971011235149e-01 7.98203401674186e-01 4.59651797096030e-01 +-1.26000000000000e+02 6.88495864680500e-01 8.78614234889437e-01 4.60555650717862e-01 +-1.23000000000000e+02 6.36020718125851e-01 9.59025068104688e-01 4.61459504339694e-01 +-1.20000000000000e+02 5.83545571571202e-01 1.03943590131994e+00 4.62363357961526e-01 +-1.17000000000000e+02 5.26409443912422e-01 1.10726021314796e+00 4.65151203228868e-01 +-1.14000000000000e+02 4.69237877539955e-01 1.17498882621262e+00 4.67953372999789e-01 +-1.11000000000000e+02 4.12066311167488e-01 1.24271743927728e+00 4.70755542770710e-01 +-1.08000000000000e+02 3.53069620617733e-01 1.29704055140096e+00 4.72367567002104e-01 +-1.05000000000000e+02 2.93171134764305e-01 1.34473999487657e+00 4.73391539378404e-01 +-1.02000000000000e+02 2.33272648910877e-01 1.39243943835219e+00 4.74415511754705e-01 +-9.90000000000000e+01 1.73995020110418e-01 1.43195962306462e+00 4.74079538189920e-01 +-9.60000000000000e+01 1.15994917949028e-01 1.45464949086620e+00 4.70945227779124e-01 +-9.30000000000000e+01 5.79948157876374e-02 1.47733935866778e+00 4.67810917368329e-01 +-9.00000000000000e+01 -5.30197252326795e-06 1.49985268809223e+00 4.64637870362341e-01 +-8.70000000000000e+01 -5.80094142848973e-02 1.47715844254961e+00 4.51545237842613e-01 +-8.40000000000000e+01 -1.16013526597070e-01 1.45446419700726e+00 4.38452605322886e-01 +-8.10000000000000e+01 -1.74017638909242e-01 1.43176995146490e+00 4.25359972803158e-01 +-7.80000000000000e+01 -2.33276161399653e-01 1.39253293838601e+00 4.10535976194075e-01 +-7.50000000000000e+01 -2.93176195414512e-01 1.34483587276208e+00 3.94826551488503e-01 +-7.20000000000000e+01 -3.53076229429370e-01 1.29713880713815e+00 3.79117126782930e-01 +-6.90000000000000e+01 -4.12051348862795e-01 1.24265783865311e+00 3.63197778832966e-01 +-6.60000000000000e+01 -4.69218836655960e-01 1.17491856750713e+00 3.46868161755227e-01 +-6.30000000000000e+01 -5.26386324449125e-01 1.10717929636115e+00 3.30538544677489e-01 +-6.00000000000000e+01 -5.83553812242290e-01 1.03944002521516e+00 3.14208927599750e-01 +-5.70000000000000e+01 -6.36040086342909e-01 9.59063547522298e-01 2.98715661808915e-01 +-5.40000000000000e+01 -6.88508631568477e-01 8.78639209707982e-01 2.83225563480288e-01 +-5.10000000000000e+01 -7.40977176794045e-01 7.98214871893665e-01 2.67735465151662e-01 +-4.80000000000000e+01 -7.92085465185003e-01 7.15284952291257e-01 2.52862400960278e-01 +-4.50000000000000e+01 -8.42515690772481e-01 6.31106046638308e-01 2.38296916842226e-01 +-4.20000000000000e+01 -8.92945916359959e-01 5.46927140985359e-01 2.23731432724175e-01 +-3.90000000000000e+01 -9.46680302704687e-01 4.64643713505623e-01 2.08314256970654e-01 +-3.60000000000000e+01 -1.00704104758375e+00 3.86161589561785e-01 1.91189048663049e-01 +-3.30000000000000e+01 -1.06740179246282e+00 3.07679465617947e-01 1.74063840355444e-01 +-3.00000000000000e+01 -1.12776283887006e+00 2.29198029733976e-01 1.56938073065907e-01 +-2.93939393939394e+01 -1.14256160652498e+00 2.19288005361222e-01 1.48649323123349e-01 +-2.87878787878788e+01 -1.15735996510266e+00 2.09379701295898e-01 1.39909497813076e-01 +-2.81818181818182e+01 -1.17215803326241e+00 1.99473682239111e-01 1.31110260904649e-01 +-2.75757575757576e+01 -1.18695588781756e+00 1.89570790413284e-01 1.22367976914947e-01 +-2.69696969696970e+01 -1.20175358068748e+00 1.79672339926306e-01 1.13679230546276e-01 +-2.63636363636364e+01 -1.21655114822640e+00 1.69780501092505e-01 1.05040874223146e-01 +-2.57575757575758e+01 -1.23134861664966e+00 1.59899133446229e-01 9.64742261296630e-02 +-2.51515151515151e+01 -1.24614600533789e+00 1.50035826251758e-01 8.79725144691307e-02 +-2.45454545454545e+01 -1.26094332892810e+00 1.40207839057323e-01 7.95116317533241e-02 +-2.39393939393939e+01 -1.27574059868131e+00 1.30411425025778e-01 7.10891505641814e-02 +-2.33333333333333e+01 -1.29053782340283e+00 1.20287775258242e-01 6.27027946849387e-02 +-2.27272727272727e+01 -1.30533501007702e+00 1.10176605765550e-01 5.43504227251706e-02 +-2.21212121212121e+01 -1.32013216431489e+00 1.00077626430077e-01 4.60300128953161e-02 +-2.15151515151515e+01 -1.33492929067586e+00 8.99905560571915e-02 3.77396486803706e-02 +-2.09090909090909e+01 -1.34972639290304e+00 7.99151220348226e-02 2.94775051676051e-02 +-2.03030303030303e+01 -1.36452347409814e+00 6.98510600084969e-02 2.12418357794856e-02 +-1.96969696969697e+01 -1.37789653640048e+00 6.17148341617226e-02 4.15202266597653e-03 +-1.90909090909091e+01 -1.38794384297825e+00 5.74343943808396e-02 -6.83456512340181e-03 +-1.84848484848485e+01 -1.39467865587669e+00 5.32279242318095e-02 -8.95130691396343e-03 +-1.78787878787879e+01 -1.39869558714603e+00 4.95302480713263e-02 -9.60211460854050e-03 +-1.72727272727273e+01 -1.40131108838214e+00 4.56996292941838e-02 -1.04287953064082e-02 +-1.66666666666667e+01 -1.40268818354206e+00 4.21089566252124e-02 -1.11349089223469e-02 +-1.60606060606061e+01 -1.39807417210561e+00 3.88943914986681e-02 -1.17876790720926e-02 +-1.54545454545455e+01 -1.38963567161683e+00 3.58865869127242e-02 -1.22132238172336e-02 +-1.48484848484848e+01 -1.37939763612061e+00 3.29611457653309e-02 -1.25465985532285e-02 +-1.42424242424242e+01 -1.36899163585177e+00 3.00529344269428e-02 -1.27483844088839e-02 +-1.36363636363636e+01 -1.35610638352265e+00 2.73087587448302e-02 -1.28184858761983e-02 +-1.30303030303030e+01 -1.34910755197468e+00 2.45352271419361e-02 -1.19888429718144e-02 +-1.24242424242424e+01 -1.32962746172533e+00 2.19034722902762e-02 -1.28882951324485e-02 +-1.18181818181818e+01 -1.27510349866000e+00 1.95019617957146e-02 -1.77430307741217e-02 +-1.12121212121212e+01 -1.20542751060665e+00 1.74174595557402e-02 -2.33629096069277e-02 +-1.06060606060606e+01 -1.12648140630960e+00 1.56259481212403e-02 -2.91883674571629e-02 +-1.00000000000000e+01 -1.04120911450226e+00 1.39431099955888e-02 -3.53900863871141e-02 +-9.39393939393939e+00 -9.66709671855040e-01 1.24549435036002e-02 -4.07505930958103e-02 +-8.78787878787879e+00 -8.87176047640441e-01 1.14566655899879e-02 -4.51190645758257e-02 +-8.18181818181818e+00 -7.96098911175721e-01 1.03295311383112e-02 -5.21151803419963e-02 +-7.57575757575758e+00 -7.05949454115840e-01 9.60049727759671e-03 -5.78873645852445e-02 +-6.96969696969697e+00 -6.16184947143571e-01 9.04809187185589e-03 -6.31034991694609e-02 +-6.36363636363636e+00 -5.27329934045763e-01 8.63955592929118e-03 -6.78858162684633e-02 +-5.75757575757576e+00 -4.38959436214207e-01 8.31138650990534e-03 -7.23621189128242e-02 +-5.15151515151515e+00 -3.51713880596308e-01 8.08248419141213e-03 -7.61260871643174e-02 +-4.54545454545454e+00 -2.64550807908554e-01 7.88898702701297e-03 -7.97329487152568e-02 +-3.93939393939394e+00 -1.78232225619489e-01 7.76585096075213e-03 -8.31127382252605e-02 +-3.33333333333333e+00 -9.22862760095979e-02 7.65487670769365e-03 -8.63549650148310e-02 +-2.72727272727273e+00 -7.27809226233352e-03 7.59185750403357e-03 -9.00008263001125e-02 +-2.12121212121212e+00 8.06525867308105e-02 7.53913013114581e-03 -9.38619963933172e-02 +-1.51515151515152e+00 1.69069627063072e-01 7.52920167247983e-03 -9.72753707558698e-02 +-9.09090909090912e-01 2.54958947758856e-01 7.52567616932553e-03 -1.00450078922488e-01 +-3.03030303030302e-01 3.38293166925439e-01 7.55360699819569e-03 -1.03172155863237e-01 + 3.03030303030302e-01 4.21261434143190e-01 7.60456170609096e-03 -1.05825579088922e-01 + 9.09090909090912e-01 5.03866966251756e-01 7.67906498592855e-03 -1.08319115930197e-01 + 1.51515151515152e+00 5.86237913080278e-01 7.76394688118468e-03 -1.10827378820561e-01 + 2.12121212121212e+00 6.68072600298962e-01 7.87869666934251e-03 -1.13144389542942e-01 + 2.72727272727273e+00 7.49648293964321e-01 8.00710635683339e-03 -1.15465398758825e-01 + 3.33333333333333e+00 8.30834821189994e-01 8.15586791148277e-03 -1.17679953446168e-01 + 3.93939393939394e+00 9.11499774117800e-01 8.31097083025142e-03 -1.19780906987968e-01 + 4.54545454545455e+00 9.91848696372844e-01 8.49069552234712e-03 -1.21800849397755e-01 + 5.15151515151515e+00 1.07155329773997e+00 8.67978809638838e-03 -1.23663962691032e-01 + 5.75757575757576e+00 1.15086025085874e+00 8.88452596631478e-03 -1.25446255521031e-01 + 6.36363636363637e+00 1.22938660228783e+00 9.11663989610176e-03 -1.27070012576898e-01 + 6.96969696969697e+00 1.30765095321971e+00 9.33311649671002e-03 -1.28662491084254e-01 + 7.57575757575757e+00 1.38429601805147e+00 9.61640108154833e-03 -1.29925355271514e-01 + 8.18181818181818e+00 1.46070638694543e+00 9.86275460194382e-03 -1.31169555885585e-01 + 8.78787878787879e+00 1.53537909563471e+00 1.01583695647615e-02 -1.32130838961347e-01 + 9.39393939393939e+00 1.60900013163157e+00 1.04264209420577e-02 -1.32880174298261e-01 + 1.00000000000000e+01 1.67956981957719e+00 1.08259376920955e-02 -1.33105841944400e-01 + 1.06060606060606e+01 1.74690907527218e+00 1.11885089411086e-02 -1.32684705299862e-01 + 1.12121212121212e+01 1.81323021128253e+00 1.16257922728498e-02 -1.32221769620118e-01 + 1.18181818181818e+01 1.87689905702030e+00 1.21342192202469e-02 -1.31467276544395e-01 + 1.24242424242424e+01 1.93788834333692e+00 1.26637994969006e-02 -1.30340779336614e-01 + 1.30303030303030e+01 1.99471009131975e+00 1.32434952108910e-02 -1.28735604126081e-01 + 1.36363636363636e+01 2.04071865887307e+00 1.39768124197742e-02 -1.25591064831201e-01 + 1.42424242424242e+01 2.07017002701934e+00 1.49604190246524e-02 -1.20176574336368e-01 + 1.48484848484848e+01 2.09825671982266e+00 1.63318269534861e-02 -1.15550896209191e-01 + 1.54545454545455e+01 2.12389314988915e+00 1.82097690018714e-02 -1.11718914459831e-01 + 1.60606060606061e+01 2.14392995995129e+00 2.07223581411025e-02 -1.08333586391403e-01 + 1.66666666666667e+01 2.15718849430084e+00 2.38925518683073e-02 -1.05438917448373e-01 + 1.72727272727273e+01 2.16400327381196e+00 2.76835003127118e-02 -1.02840893088527e-01 + 1.78787878787879e+01 2.15899950432838e+00 3.24841156007445e-02 -1.00433653918155e-01 + 1.84848484848485e+01 2.14287385835306e+00 3.83955050665157e-02 -9.85791967667118e-02 + 1.90909090909091e+01 2.11767683722469e+00 4.52963621926643e-02 -9.72118158560593e-02 + 1.96969696969697e+01 2.08490760976966e+00 5.29369716810697e-02 -9.64856721666913e-02 + 2.03030303030303e+01 2.04568628790565e+00 6.09408904953534e-02 -9.66984978208742e-02 + 2.09090909090909e+01 2.00458309518155e+00 6.88434447220074e-02 -9.74700165588655e-02 + 2.15151515151515e+01 1.96821014909615e+00 7.65273144222867e-02 -9.92445577427515e-02 + 2.21212121212121e+01 1.93228528366857e+00 8.42906655144046e-02 -1.02164762715441e-01 + 2.27272727272727e+01 1.90487855490676e+00 9.12543340287485e-02 -1.05585837742795e-01 + 2.33333333333333e+01 1.87911113542456e+00 9.80904680291437e-02 -1.09093545666990e-01 + 2.39393939393939e+01 1.85116666916223e+00 1.04992573762525e-01 -1.13549947788661e-01 + 2.45454545454545e+01 1.83152012113653e+00 1.10820996149011e-01 -1.17883842600159e-01 + 2.51515151515151e+01 1.81244627391822e+00 1.18440152612579e-01 -1.23153701623469e-01 + 2.57575757575758e+01 1.78727676964834e+00 1.32284830323510e-01 -1.30826772889600e-01 + 2.63636363636364e+01 1.76210726537226e+00 1.46129508036895e-01 -1.38519137836866e-01 + 2.69696969696970e+01 1.73693776108941e+00 1.59974185752773e-01 -1.46232579069114e-01 + 2.75757575757576e+01 1.71176825679915e+00 1.73818863471187e-01 -1.53969102215663e-01 + 2.81818181818182e+01 1.68659875250079e+00 1.87663541192178e-01 -1.61730971858514e-01 + 2.87878787878788e+01 1.66142924819350e+00 2.01508218915790e-01 -1.69520754633672e-01 + 2.93939393939394e+01 1.63625974387637e+00 2.15352896642068e-01 -1.77101536053761e-01 + 3.00000000000000e+01 1.61109023954835e+00 2.29197574371055e-01 -1.84480468362812e-01 + 3.30000000000000e+01 1.52485970769444e+00 3.07679465617947e-01 -2.04052219983436e-01 + 3.60000000000000e+01 1.43863007285045e+00 3.86161589561785e-01 -2.23604622768774e-01 + 3.90000000000000e+01 1.35240043800645e+00 4.64643713505623e-01 -2.43318962393429e-01 + 4.20000000000000e+01 1.27563702748693e+00 5.46927140985360e-01 -2.58969785695546e-01 + 4.50000000000000e+01 1.20359384554698e+00 6.31106046638308e-01 -2.72573643809445e-01 + 4.80000000000000e+01 1.13155066360703e+00 7.15284952291257e-01 -2.86177501923344e-01 + 5.10000000000000e+01 1.05853882191086e+00 7.98214871893666e-01 -2.99474736570621e-01 + 5.40000000000000e+01 9.83583758956948e-01 8.78639209707982e-01 -3.12156856122388e-01 + 5.70000000000000e+01 9.08628696003035e-01 9.59063547522299e-01 -3.24838975674156e-01 + 6.00000000000000e+01 8.33648306080890e-01 1.03944002521516e+00 -3.37522494856895e-01 + 6.30000000000000e+01 7.51980467004198e-01 1.10717929636115e+00 -3.50575579037542e-01 + 6.60000000000000e+01 6.70312627927506e-01 1.17491856750713e+00 -3.63628663218189e-01 + 6.90000000000000e+01 5.88644788850814e-01 1.24265783865311e+00 -3.76681747398836e-01 + 7.20000000000000e+01 5.04394618168470e-01 1.29713880713815e+00 -3.89758751701852e-01 + 7.50000000000000e+01 4.18823140587657e-01 1.34483587276208e+00 -4.02847995262842e-01 + 7.80000000000000e+01 3.33251663006844e-01 1.39253293838601e+00 -4.15937238823833e-01 + 8.10000000000000e+01 2.48606189729205e-01 1.43176995146490e+00 -4.28656321974873e-01 + 8.40000000000000e+01 1.65771423163338e-01 1.45446419700726e+00 -4.40651594300811e-01 + 8.70000000000000e+01 8.29366565974713e-02 1.47715844254961e+00 -4.52646866626748e-01 + 9.00000000000000e+01 1.01890031491484e-04 1.49985268809223e+00 -4.64642138952686e-01 + 9.30000000000000e+01 -5.79948157876374e-02 1.47733935866778e+00 -4.67810917368329e-01 + 9.60000000000000e+01 -1.15994917949028e-01 1.45464949086620e+00 -4.70945227779124e-01 + 9.90000000000000e+01 -1.73995020110418e-01 1.43195962306462e+00 -4.74079538189920e-01 + 1.02000000000000e+02 -2.33272648910877e-01 1.39243943835219e+00 -4.74415511754705e-01 + 1.05000000000000e+02 -2.93171134764306e-01 1.34473999487657e+00 -4.73391539378404e-01 + 1.08000000000000e+02 -3.53069620617733e-01 1.29704055140096e+00 -4.72367567002104e-01 + 1.11000000000000e+02 -4.12066311167489e-01 1.24271743927728e+00 -4.70755542770710e-01 + 1.14000000000000e+02 -4.69237877539955e-01 1.17498882621262e+00 -4.67953372999789e-01 + 1.17000000000000e+02 -5.26409443912422e-01 1.10726021314796e+00 -4.65151203228868e-01 + 1.20000000000000e+02 -5.83545571571203e-01 1.03943590131994e+00 -4.62363357961526e-01 + 1.23000000000000e+02 -6.36020718125851e-01 9.59025068104688e-01 -4.61459504339694e-01 + 1.26000000000000e+02 -6.88495864680500e-01 8.78614234889437e-01 -4.60555650717862e-01 + 1.29000000000000e+02 -7.40971011235149e-01 7.98203401674185e-01 -4.59651797096030e-01 + 1.32000000000000e+02 -7.92084214955998e-01 7.15284474655515e-01 -4.63973830861222e-01 + 1.35000000000000e+02 -8.42512226358792e-01 6.31103727709890e-01 -4.70925004267037e-01 + 1.38000000000000e+02 -8.92940237761587e-01 5.46922980764264e-01 -4.77876177672852e-01 + 1.41000000000000e+02 -9.46757867625165e-01 4.64687053351122e-01 -4.90735115781545e-01 + 1.44000000000000e+02 -1.00709307882846e+00 3.86190638110420e-01 -5.14953543883693e-01 + 1.47000000000000e+02 -1.06742829003175e+00 3.07694222869718e-01 -5.39171971985840e-01 + 1.50000000000000e+02 -1.12776350123505e+00 2.29197807629015e-01 -5.63390400087988e-01 + 1.53000000000000e+02 -1.09467027914496e+00 1.65581040354212e-01 -5.76939664418829e-01 + 1.56000000000000e+02 -1.06156613196159e+00 1.01966013037325e-01 -5.90487681146502e-01 + 1.59000000000000e+02 -1.02846198477821e+00 3.83509857204368e-02 -6.04219271214632e-01 + 1.62000000000000e+02 -9.16657914061655e-01 1.34896577434561e-02 -5.84133884888724e-01 + 1.65000000000000e+02 -7.63881594841549e-01 8.80403170495165e-03 -5.46401224105864e-01 + 1.68000000000000e+02 -6.11105275621442e-01 4.11840566644716e-03 -5.08668562985556e-01 + 1.71000000000000e+02 -4.58328956527622e-01 1.00000000000000e-03 -4.35051962577922e-01 + 1.74000000000000e+02 -3.05552637685082e-01 1.00000000000000e-03 -2.90034641718615e-01 + 1.77000000000000e+02 -1.52776318842540e-01 1.00000000000000e-03 -1.45017320859307e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_13.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_13.dat new file mode 100644 index 000000000..298884a24 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_13.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF13_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +12.098469 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.868113 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.848485 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.848485 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.913967 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.342748 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007518 Cd0 ! 2D drag coefficient value at 0-lift. +-0.094660 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.53425977393991e-01 1.00000000000000e-03 1.17698330069717e-01 +-1.74000000000000e+02 3.06851954787982e-01 1.00000000000000e-03 2.35396660139435e-01 +-1.71000000000000e+02 4.60277932181973e-01 1.00000000000000e-03 3.53094990209151e-01 +-1.68000000000000e+02 6.13703909858867e-01 4.54829046522539e-03 4.36775328825201e-01 +-1.65000000000000e+02 7.67129887677943e-01 9.87984895196309e-03 5.03359208636160e-01 +-1.62000000000000e+02 9.20555865497016e-01 1.52114074387007e-02 5.69943088345667e-01 +-1.59000000000000e+02 1.03277298341303e+00 4.04802156652339e-02 6.09304446863879e-01 +-1.56000000000000e+02 1.06583569214451e+00 1.04044701754018e-01 5.96400554840574e-01 +-1.53000000000000e+02 1.09889840087598e+00 1.67609187842801e-01 5.83551792207703e-01 +-1.50000000000000e+02 1.13195013210316e+00 2.31175411766201e-01 5.70701661222575e-01 +-1.47000000000000e+02 1.07112522526301e+00 3.09603125767733e-01 5.46149753036393e-01 +-1.44000000000000e+02 1.01030031842286e+00 3.88030839769265e-01 5.21597844850210e-01 +-1.41000000000000e+02 9.49475411582713e-01 4.66458553770798e-01 4.97045936664027e-01 +-1.38000000000000e+02 8.95284570333457e-01 5.48615381769165e-01 4.83950745976163e-01 +-1.35000000000000e+02 8.44543927865750e-01 6.32711621489028e-01 4.76813885396993e-01 +-1.32000000000000e+02 7.93803285398043e-01 7.16807861208891e-01 4.69677024817822e-01 +-1.29000000000000e+02 7.42411798744731e-01 7.99637834422806e-01 4.65196802683762e-01 +-1.26000000000000e+02 6.89726642341848e-01 8.79950875458685e-01 4.65997126751079e-01 +-1.23000000000000e+02 6.37041485938965e-01 9.60263916494565e-01 4.66797450818395e-01 +-1.20000000000000e+02 5.84356329536082e-01 1.04057695753044e+00 4.67597774885712e-01 +-1.17000000000000e+02 5.27081945989713e-01 1.10829320037709e+00 4.70327688847842e-01 +-1.14000000000000e+02 4.69772669294639e-01 1.17591366632304e+00 4.73072274009509e-01 +-1.11000000000000e+02 4.12463392599565e-01 1.24353413226898e+00 4.75816859171176e-01 +-1.08000000000000e+02 3.53368263105528e-01 1.29774433683347e+00 4.77389265735316e-01 +-1.05000000000000e+02 2.93390742327000e-01 1.34532852061247e+00 4.78382497924657e-01 +-1.02000000000000e+02 2.33413221548472e-01 1.39291270439147e+00 4.79375730113997e-01 +-9.90000000000000e+01 1.74073810390633e-01 1.43231642771251e+00 4.79013794304810e-01 +-9.60000000000000e+01 1.16047426177047e-01 1.45488736141648e+00 4.75863353137985e-01 +-9.30000000000000e+01 5.80210419634608e-02 1.47745829512045e+00 4.72712911971159e-01 +-9.00000000000000e+01 -5.35816385165258e-06 1.49985361462216e+00 4.69523933760748e-01 +-8.70000000000000e+01 -5.80358334601938e-02 1.47727801992691e+00 4.56466470790909e-01 +-8.40000000000000e+01 -1.16066308756476e-01 1.45470242523185e+00 4.43409007821070e-01 +-8.10000000000000e+01 -1.74096784052757e-01 1.43212683053678e+00 4.30351544851230e-01 +-7.80000000000000e+01 -2.33416511460486e-01 1.39300622615548e+00 4.15563514818167e-01 +-7.50000000000000e+01 -2.93395568728383e-01 1.34542442258277e+00 3.99890464291693e-01 +-7.20000000000000e+01 -3.53374625996279e-01 1.29784261901006e+00 3.84217413765218e-01 +-6.90000000000000e+01 -4.12448651438847e-01 1.24347450164535e+00 3.68335690412141e-01 +-6.60000000000000e+01 -4.69753903639274e-01 1.17584336975214e+00 3.52046141718866e-01 +-6.30000000000000e+01 -5.27059155839701e-01 1.10821223785894e+00 3.35756593025591e-01 +-6.00000000000000e+01 -5.84364408040128e-01 1.04058110596574e+00 3.19467044332316e-01 +-5.70000000000000e+01 -6.37060525920064e-01 9.60302443860674e-01 3.04017114791953e-01 +-5.40000000000000e+01 -6.89739187906758e-01 8.79975882535968e-01 2.88570365089988e-01 +-5.10000000000000e+01 -7.42417849893451e-01 7.99649321211261e-01 2.73123615388023e-01 +-4.80000000000000e+01 -7.93804734958434e-01 7.16808315380392e-01 2.58291131774799e-01 +-4.50000000000000e+01 -8.44547693186425e-01 6.32713905598400e-01 2.43764848414067e-01 +-4.20000000000000e+01 -8.95290651414417e-01 5.48619495816408e-01 2.29238565053336e-01 +-3.90000000000000e+01 -9.49396769127705e-01 4.66415299458292e-01 2.13848225563406e-01 +-3.60000000000000e+01 -1.01024756489845e+00 3.88001848397762e-01 1.96725057035634e-01 +-3.30000000000000e+01 -1.07109836066920e+00 3.09588397337232e-01 1.79601888507861e-01 +-3.00000000000000e+01 -1.13194950402645e+00 2.31175610707399e-01 1.62478140905012e-01 +-2.93939393939394e+01 -1.14724535737500e+00 2.21075122910858e-01 1.54016215951988e-01 +-2.87878787878788e+01 -1.16254108787249e+00 2.10975872979147e-01 1.45229715098586e-01 +-2.81818181818182e+01 -1.17783673115381e+00 2.00878267248730e-01 1.36400464021288e-01 +-2.75757575757576e+01 -1.19313231028698e+00 1.90782911749376e-01 1.27612193999923e-01 +-2.69696969696970e+01 -1.20842784086403e+00 1.80690752060876e-01 1.18862447522059e-01 +-2.63636363636364e+01 -1.22372333380260e+00 1.70603349855130e-01 1.10148959717517e-01 +-2.57575757575758e+01 -1.23901879697549e+00 1.60523482299605e-01 1.01476914547536e-01 +-2.51515151515151e+01 -1.25431423620294e+00 1.50456610327136e-01 9.28431520865201e-02 +-2.45454545454545e+01 -1.26960965588064e+00 1.40415153222412e-01 8.42393896669034e-02 +-2.39393939393939e+01 -1.28490505939041e+00 1.30402041294945e-01 7.56639312280186e-02 +-2.33333333333333e+01 -1.30020044937658e+00 1.20193058533914e-01 6.71151951598543e-02 +-2.27272727272727e+01 -1.31549582793667e+00 1.09987823756891e-01 5.85917033319632e-02 +-2.21212121212121e+01 -1.33079119675572e+00 9.97862498378953e-02 5.00920710935021e-02 +-2.15151515151515e+01 -1.34608655720299e+00 8.95882523306292e-02 4.16149980950003e-02 +-2.09090909090909e+01 -1.36138191040258e+00 7.93937493662487e-02 3.31592597939036e-02 +-2.03030303030303e+01 -1.37667725728596e+00 6.92026615557696e-02 2.47236995132663e-02 +-1.96969696969697e+01 -1.39072441577015e+00 6.08552285734373e-02 4.72102950542537e-03 +-1.90909090909091e+01 -1.40140277611468e+00 5.63211282814086e-02 -7.28749398067740e-03 +-1.84848484848485e+01 -1.40843533344362e+00 5.21976538261063e-02 -8.84742902629267e-03 +-1.78787878787879e+01 -1.41461116554583e+00 4.85355632375456e-02 -9.43069456085484e-03 +-1.72727272727273e+01 -1.41846240354133e+00 4.47390435363140e-02 -1.02226423295727e-02 +-1.66666666666667e+01 -1.42132911245610e+00 4.11159551547318e-02 -1.08996874318459e-02 +-1.60606060606061e+01 -1.41816498697195e+00 3.78673065759391e-02 -1.15303198699025e-02 +-1.54545454545455e+01 -1.41016579101680e+00 3.48841462036674e-02 -1.19281198044439e-02 +-1.48484848484848e+01 -1.40069792230525e+00 3.19612245176591e-02 -1.22391561852825e-02 +-1.42424242424242e+01 -1.39085470910418e+00 2.90678409113135e-02 -1.24195314623511e-02 +-1.36363636363636e+01 -1.37862177231956e+00 2.63346523523220e-02 -1.24552654829754e-02 +-1.30303030303030e+01 -1.37274742181115e+00 2.35864695606462e-02 -1.15256494924355e-02 +-1.24242424242424e+01 -1.35329608158092e+00 2.09606169364964e-02 -1.24999199413519e-02 +-1.18181818181818e+01 -1.29460374668013e+00 1.85664074774985e-02 -1.78647985534370e-02 +-1.12121212121212e+01 -1.21888976259852e+00 1.65520795442074e-02 -2.44262858538820e-02 +-1.06060606060606e+01 -1.13394431033881e+00 1.48328566991896e-02 -3.12897086845175e-02 +-1.00000000000000e+01 -1.04245169003261e+00 1.32563517750396e-02 -3.87113991268888e-02 +-9.39393939393939e+00 -9.56285142866184e-01 1.18856770458493e-02 -4.54502597067274e-02 +-8.78787878787879e+00 -8.66314595708444e-01 1.09418266189330e-02 -5.11721805769237e-02 +-8.18181818181818e+00 -7.70522820951153e-01 9.90102351353401e-03 -5.84880094780299e-02 +-7.57575757575758e+00 -6.78602639298875e-01 9.26760997987978e-03 -6.41855698702053e-02 +-6.96969696969697e+00 -5.88212505354883e-01 8.78421627439243e-03 -6.92628988236149e-02 +-6.36363636363636e+00 -4.99631128714722e-01 8.44306717739127e-03 -7.37914843750786e-02 +-5.75757575757576e+00 -4.11402622872774e-01 8.15354250499141e-03 -7.81047569582360e-02 +-5.15151515151515e+00 -3.24210115290796e-01 7.94824722631974e-03 -8.18340348706960e-02 +-4.54545454545454e+00 -2.37135945177080e-01 7.76747914364185e-03 -8.54839654163088e-02 +-3.93939393939394e+00 -1.50973565276327e-01 7.65801980369149e-03 -8.88848592669676e-02 +-3.33333333333333e+00 -6.52030684621118e-02 7.55968186288098e-03 -9.21490524035194e-02 +-2.72727272727273e+00 1.97395461784578e-02 7.50565521136494e-03 -9.54198863480135e-02 +-2.12121212121212e+00 1.05236453473739e-01 7.45837264833072e-03 -9.87215205435385e-02 +-1.51515151515152e+00 1.90428470388775e-01 7.45374047155349e-03 -1.01816567234957e-01 +-9.09090909090912e-01 2.74817337073699e-01 7.45566384293776e-03 -1.04792793122350e-01 +-3.03030303030302e-01 3.58067183021947e-01 7.48718457821601e-03 -1.07533677221632e-01 + 3.03030303030302e-01 4.40994096405118e-01 7.54367751846594e-03 -1.10196367086643e-01 + 9.09090909090912e-01 5.23538128137059e-01 7.62155206248342e-03 -1.12696549743827e-01 + 1.51515151515152e+00 6.05902690744093e-01 7.70977159804431e-03 -1.15213868064213e-01 + 2.12121212121212e+00 6.87681504022368e-01 7.82740147747802e-03 -1.17538059850791e-01 + 2.72727272727273e+00 7.69248891812629e-01 7.95890549925829e-03 -1.19867688253831e-01 + 3.33333333333333e+00 8.50426212900939e-01 8.11009404316777e-03 -1.22106508993504e-01 + 3.93939393939394e+00 9.31147969209069e-01 8.26245332976076e-03 -1.24226165947930e-01 + 4.54545454545455e+00 1.01150021172586e+00 8.44630610563034e-03 -1.26268676555198e-01 + 5.15151515151515e+00 1.09136714608565e+00 8.62999111591902e-03 -1.28164577919800e-01 + 5.75757575757576e+00 1.17077735797252e+00 8.83615200251015e-03 -1.29972532893857e-01 + 6.36363636363637e+00 1.24947064041406e+00 9.06930627989521e-03 -1.31631338792953e-01 + 6.96969696969697e+00 1.32797131323291e+00 9.28339638036739e-03 -1.33278802447895e-01 + 7.57575757575757e+00 1.40499203569211e+00 9.56632987937726e-03 -1.34616762587652e-01 + 8.18181818181818e+00 1.48179268489306e+00 9.81467146198639e-03 -1.35933701767454e-01 + 8.78787878787879e+00 1.55713939227874e+00 1.01148529823465e-02 -1.37029729444565e-01 + 9.39393939393939e+00 1.63159276544710e+00 1.03966724346510e-02 -1.37942130688357e-01 + 1.00000000000000e+01 1.70372649459035e+00 1.07944934068551e-02 -1.38471550151208e-01 + 1.06060606060606e+01 1.77423583818516e+00 1.11533207428452e-02 -1.38656558102466e-01 + 1.12121212121212e+01 1.84268707959184e+00 1.15720177051309e-02 -1.38521614743909e-01 + 1.18181818181818e+01 1.90803072886125e+00 1.20620870539775e-02 -1.37997133220958e-01 + 1.24242424242424e+01 1.97087972407530e+00 1.25552654190131e-02 -1.37059848470381e-01 + 1.30303030303030e+01 2.02902154603023e+00 1.30914211473652e-02 -1.35490523133968e-01 + 1.36363636363636e+01 2.07531581395303e+00 1.37670212217448e-02 -1.32116725213310e-01 + 1.42424242424242e+01 2.10338228638368e+00 1.46829963457780e-02 -1.26114432548760e-01 + 1.48484848484848e+01 2.13043797967638e+00 1.59908013661632e-02 -1.20981282462223e-01 + 1.54545454545455e+01 2.15544526294092e+00 1.78213848097009e-02 -1.16786358991819e-01 + 1.60606060606061e+01 2.17443539462099e+00 2.03231188013917e-02 -1.13067700407431e-01 + 1.66666666666667e+01 2.18747628534371e+00 2.34568468910551e-02 -1.09947032733559e-01 + 1.72727272727273e+01 2.19330157239596e+00 2.72585504885953e-02 -1.07114485023635e-01 + 1.78787878787879e+01 2.18781638597946e+00 3.20624303773336e-02 -1.04541133440941e-01 + 1.84848484848485e+01 2.17018746194585e+00 3.80491864100161e-02 -1.02536033881671e-01 + 1.90909090909091e+01 2.14250162847448e+00 4.50947125231383e-02 -1.01075945298542e-01 + 1.96969696969697e+01 2.10805364906037e+00 5.28466924426444e-02 -1.00314762484020e-01 + 2.03030303030303e+01 2.06593030579342e+00 6.11790473239108e-02 -1.00547475779579e-01 + 2.09090909090909e+01 2.02232792842710e+00 6.95281310166543e-02 -1.01373322751625e-01 + 2.15151515151515e+01 1.98342400886880e+00 7.76110357156911e-02 -1.03245132351293e-01 + 2.21212121212121e+01 1.94537184719308e+00 8.56983959300731e-02 -1.06363323664247e-01 + 2.27272727272727e+01 1.91580364825286e+00 9.29381864661031e-02 -1.09993870233553e-01 + 2.33333333333333e+01 1.88946845531030e+00 9.98373466404917e-02 -1.13830298441142e-01 + 2.39393939393939e+01 1.85986957583271e+00 1.06935982267176e-01 -1.18703558469673e-01 + 2.45454545454545e+01 1.83915855489475e+00 1.12897618585874e-01 -1.23475803927710e-01 + 2.51515151515151e+01 1.82012478144125e+00 1.20507578924322e-01 -1.29012059138599e-01 + 2.57575757575758e+01 1.79474307549256e+00 1.34341028885820e-01 -1.36639836644777e-01 + 2.63636363636364e+01 1.76936136954200e+00 1.48174478849084e-01 -1.44281664245568e-01 + 2.69696969696970e+01 1.74397966358941e+00 1.62007928814143e-01 -1.51938826717650e-01 + 2.75757575757576e+01 1.71859795763460e+00 1.75841378781025e-01 -1.59612769352817e-01 + 2.81818181818182e+01 1.69321625167735e+00 1.89674828749763e-01 -1.67305123810503e-01 + 2.87878787878788e+01 1.66783454571743e+00 2.03508278720387e-01 -1.75017739132529e-01 + 2.93939393939394e+01 1.64245283975454e+00 2.17341728692928e-01 -1.82580143302924e-01 + 3.00000000000000e+01 1.61707113378839e+00 2.31175178667419e-01 -1.89997485059718e-01 + 3.30000000000000e+01 1.53014052084489e+00 3.09588397337233e-01 -2.09675036295042e-01 + 3.60000000000000e+01 1.44321081310342e+00 3.88001848397762e-01 -2.29346497456273e-01 + 3.90000000000000e+01 1.35628110536195e+00 4.66415299458292e-01 -2.49066590293640e-01 + 4.20000000000000e+01 1.27898664973796e+00 5.48619495816409e-01 -2.64667902360385e-01 + 4.50000000000000e+01 1.20649670654229e+00 6.32713905598400e-01 -2.78209201993472e-01 + 4.80000000000000e+01 1.13400676334661e+00 7.16808315380392e-01 -2.91750501626560e-01 + 5.10000000000000e+01 1.06059692618961e+00 7.99649321211261e-01 -3.04985035878456e-01 + 5.40000000000000e+01 9.85341696479579e-01 8.79975882535968e-01 -3.17604170341064e-01 + 5.70000000000000e+01 9.10086466769551e-01 9.60302443860674e-01 -3.30223304803671e-01 + 6.00000000000000e+01 8.34806300064583e-01 1.04058110596574e+00 -3.42843878583613e-01 + 6.30000000000000e+01 7.52941654546392e-01 1.10821223785894e+00 -3.55844496331008e-01 + 6.60000000000000e+01 6.71077009028200e-01 1.17584336975214e+00 -3.68845114078404e-01 + 6.90000000000000e+01 5.89212363510008e-01 1.24347450164535e+00 -3.81845731825799e-01 + 7.20000000000000e+01 5.04820898679464e-01 1.29784261901006e+00 -3.94877266144462e-01 + 7.50000000000000e+01 4.19136531039193e-01 1.34542442258277e+00 -4.07924619608428e-01 + 7.80000000000000e+01 3.33452163398923e-01 1.39300622615548e+00 -4.20971973072395e-01 + 8.10000000000000e+01 2.48719256685169e-01 1.43212683053678e+00 -4.33651081116792e-01 + 8.40000000000000e+01 1.65846834506668e-01 1.45470242523184e+00 -4.45610122903929e-01 + 8.70000000000000e+01 8.29744123281678e-02 1.47727801992691e+00 -4.57569164691067e-01 + 9.00000000000000e+01 1.01990149633426e-04 1.49985361462216e+00 -4.69528206478204e-01 + 9.30000000000000e+01 -5.80210419634608e-02 1.47745829512045e+00 -4.72712911971159e-01 + 9.60000000000000e+01 -1.16047426177047e-01 1.45488736141648e+00 -4.75863353137985e-01 + 9.90000000000000e+01 -1.74073810390633e-01 1.43231642771251e+00 -4.79013794304810e-01 + 1.02000000000000e+02 -2.33413221548472e-01 1.39291270439147e+00 -4.79375730113997e-01 + 1.05000000000000e+02 -2.93390742327000e-01 1.34532852061247e+00 -4.78382497924657e-01 + 1.08000000000000e+02 -3.53368263105528e-01 1.29774433683347e+00 -4.77389265735316e-01 + 1.11000000000000e+02 -4.12463392599565e-01 1.24353413226898e+00 -4.75816859171176e-01 + 1.14000000000000e+02 -4.69772669294639e-01 1.17591366632303e+00 -4.73072274009509e-01 + 1.17000000000000e+02 -5.27081945989713e-01 1.10829320037709e+00 -4.70327688847842e-01 + 1.20000000000000e+02 -5.84356329536082e-01 1.04057695753044e+00 -4.67597774885712e-01 + 1.23000000000000e+02 -6.37041485938965e-01 9.60263916494565e-01 -4.66797450818395e-01 + 1.26000000000000e+02 -6.89726642341848e-01 8.79950875458685e-01 -4.65997126751079e-01 + 1.29000000000000e+02 -7.42411798744731e-01 7.99637834422806e-01 -4.65196802683762e-01 + 1.32000000000000e+02 -7.93803285398043e-01 7.16807861208890e-01 -4.69677024817822e-01 + 1.35000000000000e+02 -8.44543927865750e-01 6.32711621489028e-01 -4.76813885396993e-01 + 1.38000000000000e+02 -8.95284570333457e-01 5.48615381769165e-01 -4.83950745976163e-01 + 1.41000000000000e+02 -9.49475411582714e-01 4.66458553770797e-01 -4.97045936664028e-01 + 1.44000000000000e+02 -1.01030031842286e+00 3.88030839769265e-01 -5.21597844850210e-01 + 1.47000000000000e+02 -1.07112522526301e+00 3.09603125767733e-01 -5.46149753036393e-01 + 1.50000000000000e+02 -1.13195013210316e+00 2.31175411766201e-01 -5.70701661222576e-01 + 1.53000000000000e+02 -1.09889840087598e+00 1.67609187842801e-01 -5.84422770226557e-01 + 1.56000000000000e+02 -1.06583569214451e+00 1.04044701754018e-01 -5.98142612726464e-01 + 1.59000000000000e+02 -1.03277298341303e+00 4.04802156652339e-02 -6.11917584616806e-01 + 1.62000000000000e+02 -9.20555865497016e-01 1.52114074387007e-02 -5.90372751202694e-01 + 1.65000000000000e+02 -7.67129887677943e-01 9.87984895196308e-03 -5.50427425413685e-01 + 1.68000000000000e+02 -6.13703909858867e-01 4.54829046522539e-03 -5.10482099523336e-01 + 1.71000000000000e+02 -4.60277932181973e-01 1.00000000000000e-03 -4.35358715409443e-01 + 1.74000000000000e+02 -3.06851954787982e-01 1.00000000000000e-03 -2.90239143606296e-01 + 1.77000000000000e+02 -1.53425977393991e-01 1.00000000000000e-03 -1.45119571803147e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_14.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_14.dat new file mode 100644 index 000000000..352d2ebbe --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_14.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF14_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +12.337978 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.943935 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.848485 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.848485 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.920385 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.347153 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007408 Cd0 ! 2D drag coefficient value at 0-lift. +-0.096398 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.53664914170132e-01 1.00000000000000e-03 1.17737934784295e-01 +-1.74000000000000e+02 3.07329828340266e-01 1.00000000000000e-03 2.35475869568590e-01 +-1.71000000000000e+02 4.60994742510399e-01 1.00000000000000e-03 3.53213804352885e-01 +-1.68000000000000e+02 6.14659656975643e-01 4.90220482731867e-03 4.37477899058518e-01 +-1.65000000000000e+02 7.68324571589204e-01 1.07655447843980e-02 5.04919011216772e-01 +-1.62000000000000e+02 9.21989486202764e-01 1.66288847414773e-02 5.72360123375026e-01 +-1.59000000000000e+02 1.03435851802188e+00 4.22331621977695e-02 6.12289491010837e-01 +-1.56000000000000e+02 1.06740598617635e+00 1.05756038910994e-01 5.99374011944479e-01 +-1.53000000000000e+02 1.10045345433081e+00 1.69278915624218e-01 5.86458532833611e-01 +-1.50000000000000e+02 1.13348992570482e+00 2.32803528423973e-01 5.73541677973211e-01 +-1.47000000000000e+02 1.07248491456901e+00 3.11174682147431e-01 5.48860265123795e-01 +-1.44000000000000e+02 1.01147990343320e+00 3.89545835870889e-01 5.24178852107317e-01 +-1.41000000000000e+02 9.50474892297390e-01 4.67916989594348e-01 4.99497438830426e-01 +-1.38000000000000e+02 8.96146788289567e-01 5.50008696788808e-01 4.86310499544834e-01 +-1.35000000000000e+02 8.45291163792518e-01 6.34035363605912e-01 4.79101526489359e-01 +-1.32000000000000e+02 7.94435539295469e-01 7.18062030423016e-01 4.71892553188208e-01 +-1.29000000000000e+02 7.42941703451617e-01 8.00818770032907e-01 4.67350897023249e-01 +-1.26000000000000e+02 6.90179307894930e-01 8.81051301163311e-01 4.68111013365532e-01 +-1.23000000000000e+02 6.37416912338242e-01 9.61283832293716e-01 4.68871129532284e-01 +-1.20000000000000e+02 5.84654516781555e-01 1.04151636342412e+00 4.69631245460120e-01 +-1.17000000000000e+02 5.27329284345314e-01 1.10914363560189e+00 4.72338659721890e-01 +-1.14000000000000e+02 4.69969359412759e-01 1.17667506654946e+00 4.75060879735240e-01 +-1.11000000000000e+02 4.12609434480205e-01 1.24420649749702e+00 4.77783099634894e-01 +-1.08000000000000e+02 3.53478100298251e-01 1.29832374765753e+00 4.79340118896316e-01 +-1.05000000000000e+02 2.93471511401102e-01 1.34581304045114e+00 4.80321411614103e-01 +-1.02000000000000e+02 2.33464922503953e-01 1.39330233324474e+00 4.81302704292570e-01 +-9.90000000000000e+01 1.74102788521055e-01 1.43261017637674e+00 4.80930684746393e-01 +-9.60000000000000e+01 1.16066738081377e-01 1.45508319442475e+00 4.77773978504413e-01 +-9.30000000000000e+01 5.80306876416995e-02 1.47755621247276e+00 4.74617272247020e-01 +-9.00000000000000e+01 -5.37882756894689e-06 1.49985437717016e+00 4.71422106453952e-01 +-8.70000000000000e+01 -5.80455501205493e-02 1.47737646500826e+00 4.58378308415043e-01 +-8.40000000000000e+01 -1.16085721413530e-01 1.45489855284635e+00 4.45334510333293e-01 +-8.10000000000000e+01 -1.74125892706511e-01 1.43242064068444e+00 4.32290712200790e-01 +-7.80000000000000e+01 -2.33468130564137e-01 1.39339587296642e+00 4.17516655943249e-01 +-7.50000000000000e+01 -2.93476251656218e-01 1.34590896207008e+00 4.01857737195794e-01 +-7.20000000000000e+01 -3.53484372748298e-01 1.29842205117375e+00 3.86198818436485e-01 +-6.90000000000000e+01 -4.12594774658420e-01 1.24414684158610e+00 3.70331712187099e-01 +-6.60000000000000e+01 -4.69950694987267e-01 1.17660473822872e+00 3.54057729139837e-01 +-6.30000000000000e+01 -5.27306615316114e-01 1.10906263487133e+00 3.37783746078609e-01 +-6.00000000000000e+01 -5.84662535644961e-01 1.04152053151395e+00 3.21509763003549e-01 +-5.70000000000000e+01 -6.37435831600442e-01 9.61322398800946e-01 3.06076667468025e-01 +-5.40000000000000e+01 -6.90191772062185e-01 8.81076334680012e-01 2.90646756495790e-01 +-5.10000000000000e+01 -7.42947712523929e-01 8.00830270559077e-01 2.75216845452700e-01 +-4.80000000000000e+01 -7.94437062167030e-01 7.18062465537573e-01 2.60400125339676e-01 +-4.50000000000000e+01 -8.45295039778396e-01 6.34037619447660e-01 2.45889069522673e-01 +-4.20000000000000e+01 -8.96153017389762e-01 5.50012773357746e-01 2.31378013670339e-01 +-3.90000000000000e+01 -9.50395853526160e-01 4.67873806204481e-01 2.15998100129669e-01 +-3.60000000000000e+01 -1.01142688425196e+00 3.89516891712900e-01 1.98875728175998e-01 +-3.30000000000000e+01 -1.07245791497775e+00 3.11159977221319e-01 1.81753356025789e-01 +-3.00000000000000e+01 -1.13348931013532e+00 2.32803709732531e-01 1.64630396712983e-01 +-2.93939393939394e+01 -1.14896718082719e+00 2.22563557412414e-01 1.56101200241825e-01 +-2.87878787878788e+01 -1.16444505113201e+00 2.12323387643642e-01 1.47576663654155e-01 +-2.81818181818182e+01 -1.17992292101556e+00 2.02083194767562e-01 1.39052741979472e-01 +-2.75757575757576e+01 -1.19540079043948e+00 1.91842970415482e-01 1.30528232738232e-01 +-2.69696969696970e+01 -1.21087865936060e+00 1.81602698718746e-01 1.22003171165059e-01 +-2.63636363636364e+01 -1.22635652773016e+00 1.71362356166006e-01 1.13477589732567e-01 +-2.57575757575758e+01 -1.24183439549290e+00 1.61121905585095e-01 1.04951518416795e-01 +-2.51515151515151e+01 -1.25731226258591e+00 1.50881268679800e-01 9.64249849326116e-02 +-2.45454545454545e+01 -1.27279012893729e+00 1.40640267388424e-01 8.78980149429785e-02 +-2.39393939393939e+01 -1.28826799446444e+00 1.30398801913781e-01 7.93706322453909e-02 +-2.33333333333333e+01 -1.30374585907205e+00 1.20159738093801e-01 7.08428589383573e-02 +-2.27272727272727e+01 -1.31922372264951e+00 1.09920674273821e-01 6.23147155703611e-02 +-2.21212121212121e+01 -1.33470158506771e+00 9.96816104538413e-02 5.37862212734200e-02 +-2.15151515151515e+01 -1.35017944617508e+00 8.94425466338614e-02 4.52573938830698e-02 +-2.09090909090909e+01 -1.36565730579236e+00 7.92034828138817e-02 3.67282500463553e-02 +-2.03030303030303e+01 -1.38113516370607e+00 6.89644189939018e-02 2.81988053192029e-02 +-1.96969696969697e+01 -1.39542912618675e+00 6.05337240530932e-02 5.53759415288846e-03 +-1.90909090909091e+01 -1.40633774982693e+00 5.55326866425667e-02 -7.46343758934331e-03 +-1.84848484848485e+01 -1.41347620822111e+00 5.15444541818042e-02 -8.81107668583831e-03 +-1.78787878787879e+01 -1.42046037189436e+00 4.80622127813374e-02 -9.37043006523408e-03 +-1.72727272727273e+01 -1.42477199695825e+00 4.43809605869028e-02 -1.01500207641927e-02 +-1.66666666666667e+01 -1.42819640468036e+00 4.07452764132593e-02 -1.08166938203091e-02 +-1.60606060606061e+01 -1.42557559464265e+00 3.74832289204551e-02 -1.14394206536711e-02 +-1.54545454545455e+01 -1.41773698098024e+00 3.45091798793470e-02 -1.18272966550498e-02 +-1.48484848484848e+01 -1.40855791000045e+00 3.15868685930832e-02 -1.21303263356145e-02 +-1.42424242424242e+01 -1.39892362874773e+00 2.86988597069033e-02 -1.23030237391161e-02 +-1.36363636363636e+01 -1.38693414388331e+00 2.59695336448971e-02 -1.23263986750667e-02 +-1.30303030303030e+01 -1.38148211945019e+00 2.32307954078414e-02 -1.13606484585175e-02 +-1.24242424242424e+01 -1.36203879961086e+00 2.06068707910490e-02 -1.23620238021442e-02 +-1.18181818181818e+01 -1.30177058782604e+00 1.82150623507910e-02 -1.80014960266187e-02 +-1.12121212121212e+01 -1.22379168643416e+00 1.62273190960240e-02 -2.48393780769121e-02 +-1.06060606060606e+01 -1.13662465536509e+00 1.45354018884174e-02 -3.21060142977251e-02 +-1.00000000000000e+01 -1.04288658659522e+00 1.29993465898726e-02 -4.00016677740688e-02 +-9.39393939393939e+00 -9.48061462690010e-01 1.16733038831158e-02 -4.75715888792010e-02 +-8.78787878787879e+00 -8.52398964964950e-01 1.06083386273385e-02 -5.45907848139492e-02 +-8.18181818181818e+00 -7.55118011330843e-01 9.57353521996280e-03 -6.18404752320700e-02 +-7.57575757575758e+00 -6.63055083199715e-01 8.97388195638535e-03 -6.73051452108595e-02 +-6.96969696969697e+00 -5.72749482471827e-01 8.51225627893813e-03 -7.22198999358373e-02 +-6.36363636363636e+00 -4.84959130982885e-01 8.22331702731394e-03 -7.64053222663050e-02 +-5.75757575757576e+00 -3.97521699426066e-01 7.96847142432695e-03 -8.04010839147626e-02 +-5.15151515151515e+00 -3.11039188842975e-01 7.78600869554353e-03 -8.40515146141736e-02 +-4.54545454545454e+00 -2.24743589005787e-01 7.61879944080646e-03 -8.77181735143649e-02 +-3.93939393939394e+00 -1.39361584566212e-01 7.52358402149091e-03 -9.11272626507955e-02 +-3.33333333333333e+00 -5.43413139489244e-02 7.43718603316696e-03 -9.43999859992806e-02 +-2.72727272727273e+00 3.02356289207477e-02 7.39209436181045e-03 -9.75090792897743e-02 +-2.12121212121212e+00 1.14683512815716e-01 7.35061806130145e-03 -1.00569674806078e-01 +-1.51515151515152e+00 1.98490019486046e-01 7.35202641728760e-03 -1.03527246770684e-01 +-9.09090909090912e-01 2.82232377095174e-01 7.36028137161930e-03 -1.06418155885287e-01 +-3.03030303030302e-01 3.65445584654963e-01 7.39641899690432e-03 -1.09166635565455e-01 + 3.03030303030302e-01 4.48354114203854e-01 7.45976401790573e-03 -1.11833299546736e-01 + 9.09090909090912e-01 5.30871406271504e-01 7.54189017970908e-03 -1.14336331695434e-01 + 1.51515151515152e+00 6.13231545739114e-01 7.63442656508420e-03 -1.16857533374493e-01 + 2.12121212121212e+00 6.94985555106326e-01 7.75561962972900e-03 -1.19184804932746e-01 + 2.72727272727273e+00 7.76547127426499e-01 7.89104930308205e-03 -1.21518130150408e-01 + 3.33333333333333e+00 8.57717421823260e-01 8.04537892065666e-03 -1.23766591583583e-01 + 3.93939393939394e+00 9.38458074357406e-01 8.19430400835756e-03 -1.25893887419227e-01 + 4.54545454545455e+00 1.01880740605361e+00 8.38340675832323e-03 -1.27945397623330e-01 + 5.15151515151515e+00 1.09873341203554e+00 8.56047276727811e-03 -1.29854492510900e-01 + 5.75757575757576e+00 1.17817836950196e+00 8.76873641244798e-03 -1.31672670014205e-01 + 6.36363636363637e+00 1.25693060853406e+00 9.00359943035566e-03 -1.33345394193070e-01 + 6.96969696969697e+00 1.33551558161358e+00 9.21650960160463e-03 -1.35014280249480e-01 + 7.57575757575757e+00 1.41267443982327e+00 9.50065160918970e-03 -1.36381751935241e-01 + 8.18181818181818e+00 1.48961660752305e+00 9.75615809362343e-03 -1.37726959771551e-01 + 8.78787878787879e+00 1.56521406048865e+00 1.00700512386219e-02 -1.38875575910813e-01 + 9.39393939393939e+00 1.63997713480570e+00 1.03862750621671e-02 -1.39851438666235e-01 + 1.00000000000000e+01 1.71270218633569e+00 1.07835075136160e-02 -1.40499541492555e-01 + 1.06060606060606e+01 1.78441619382531e+00 1.11410278703895e-02 -1.40921126766505e-01 + 1.12121212121212e+01 1.85367563820525e+00 1.15531911027952e-02 -1.40915065506490e-01 + 1.18181818181818e+01 1.91965427730549e+00 1.20367909682864e-02 -1.40481720768529e-01 + 1.24242424242424e+01 1.98320778194829e+00 1.25170796653895e-02 -1.39619754959454e-01 + 1.30303030303030e+01 2.04184924968018e+00 1.30377468071559e-02 -1.38066515852419e-01 + 1.36363636363636e+01 2.08824666436184e+00 1.36927143962589e-02 -1.34605980891244e-01 + 1.42424242424242e+01 2.11578128234347e+00 1.45843913726813e-02 -1.28378613987418e-01 + 1.48484848484848e+01 2.14244231483915e+00 1.58692648789726e-02 -1.23051374415018e-01 + 1.54545454545455e+01 2.16720759701164e+00 1.76827691733990e-02 -1.18718044268838e-01 + 1.60606060606061e+01 2.18579921474780e+00 2.01806760086821e-02 -1.14872598083093e-01 + 1.66666666666667e+01 2.19875927106450e+00 2.33012328213971e-02 -1.11666543858016e-01 + 1.72727272727273e+01 2.20421167545537e+00 2.71069332718313e-02 -1.08745340133420e-01 + 1.78787878787879e+01 2.19855305297180e+00 3.19120308436854e-02 -1.06110171736764e-01 + 1.84848484848485e+01 2.18036173065251e+00 3.79261306061483e-02 -1.04048840329265e-01 + 1.90909090909091e+01 2.15173731049040e+00 4.50236733701766e-02 -1.02554920176284e-01 + 1.96969696969697e+01 2.11666387982981e+00 5.28151745963758e-02 -1.01782221318277e-01 + 2.03030303030303e+01 2.07344820140941e+00 6.14567575424190e-02 -1.02024185069167e-01 + 2.09090909090909e+01 2.02890977706493e+00 7.02826180309361e-02 -1.02872683898625e-01 + 2.15151515151515e+01 1.98905495788293e+00 7.87321617779121e-02 -1.04783149620686e-01 + 2.21212121212121e+01 1.95020762259989e+00 8.70559558598610e-02 -1.07978772748529e-01 + 2.27272727272727e+01 1.91982815873214e+00 9.44492425458015e-02 -1.11690908683591e-01 + 2.33333333333333e+01 1.89328589601960e+00 1.01350210161556e-01 -1.16007854373894e-01 + 2.39393939393939e+01 1.86306958028554e+00 1.08509711976991e-01 -1.21340609109153e-01 + 2.45454545454545e+01 1.84196218488361e+00 1.14569404839372e-01 -1.26748364075892e-01 + 2.51515151515151e+01 1.82294880705971e+00 1.22209441076243e-01 -1.32687928293010e-01 + 2.57575757575758e+01 1.79748906072254e+00 1.36033672799981e-01 -1.40117944241741e-01 + 2.63636363636364e+01 1.77202931438537e+00 1.49857904523693e-01 -1.47547757030573e-01 + 2.69696969696970e+01 1.74656956804820e+00 1.63682136247380e-01 -1.54977348217579e-01 + 2.75757575757576e+01 1.72110982171102e+00 1.77506367971042e-01 -1.62406697059084e-01 + 2.81818181818182e+01 1.69565007537385e+00 1.91330599694677e-01 -1.69835780138999e-01 + 2.87878787878788e+01 1.67019032903668e+00 2.05154831418285e-01 -1.77264570924139e-01 + 2.93939393939394e+01 1.64473058269950e+00 2.18979063141866e-01 -1.84695517276523e-01 + 3.00000000000000e+01 1.61927083636232e+00 2.32803294865419e-01 -1.92128543753884e-01 + 3.30000000000000e+01 1.53208274182540e+00 3.11159977221319e-01 -2.11852450028259e-01 + 3.60000000000000e+01 1.44489555550291e+00 3.89516891712900e-01 -2.31575956610458e-01 + 3.90000000000000e+01 1.35770836918043e+00 4.67873806204481e-01 -2.51299462891287e-01 + 4.20000000000000e+01 1.28021860141288e+00 5.50012773357746e-01 -2.66881539479831e-01 + 4.50000000000000e+01 1.20756434468353e+00 6.34037619447660e-01 -2.80398537765825e-01 + 4.80000000000000e+01 1.13491008795419e+00 7.18062465537573e-01 -2.93915536009447e-01 + 5.10000000000000e+01 1.06135387274811e+00 8.00830270559077e-01 -3.07125714014292e-01 + 5.40000000000000e+01 9.85988245233596e-01 8.81076334680012e-01 -3.19720382190488e-01 + 5.70000000000000e+01 9.10622617719082e-01 9.61322398800947e-01 -3.32315050258561e-01 + 6.00000000000000e+01 8.35232196637222e-01 1.04152053151395e+00 -3.44911172932766e-01 + 6.30000000000000e+01 7.53295168023433e-01 1.10906263487133e+00 -3.57891409150847e-01 + 6.60000000000000e+01 6.71358139409644e-01 1.17660473822872e+00 -3.70871645328620e-01 + 6.90000000000000e+01 5.89421110795854e-01 1.24414684158610e+00 -3.83851881464227e-01 + 7.20000000000000e+01 5.04977679640365e-01 1.29842205117375e+00 -3.96865751159368e-01 + 7.50000000000000e+01 4.19251792365981e-01 1.34590896207009e+00 -4.09896830218603e-01 + 7.80000000000000e+01 3.33525905091597e-01 1.39339587296642e+00 -4.22927909274384e-01 + 8.10000000000000e+01 2.48760841388620e-01 1.43242064068444e+00 -4.35591486454801e-01 + 8.40000000000000e+01 1.65874569915453e-01 1.45489855284635e+00 -4.47536451272190e-01 + 8.70000000000000e+01 8.29882984422864e-02 1.47737646500826e+00 -4.59481416043058e-01 + 9.00000000000000e+01 1.02026969120105e-04 1.49985437717016e+00 -4.71426380774515e-01 + 9.30000000000000e+01 -5.80306876416995e-02 1.47755621247276e+00 -4.74617272247020e-01 + 9.60000000000000e+01 -1.16066738081378e-01 1.45508319442475e+00 -4.77773978504413e-01 + 9.90000000000000e+01 -1.74102788521055e-01 1.43261017637674e+00 -4.80930684746393e-01 + 1.02000000000000e+02 -2.33464922503953e-01 1.39330233324474e+00 -4.81302704292570e-01 + 1.05000000000000e+02 -2.93471511401102e-01 1.34581304045114e+00 -4.80321411614103e-01 + 1.08000000000000e+02 -3.53478100298251e-01 1.29832374765753e+00 -4.79340118896316e-01 + 1.11000000000000e+02 -4.12609434480205e-01 1.24420649749702e+00 -4.77783099634894e-01 + 1.14000000000000e+02 -4.69969359412760e-01 1.17667506654946e+00 -4.75060879735240e-01 + 1.17000000000000e+02 -5.27329284345314e-01 1.10914363560189e+00 -4.72338659721890e-01 + 1.20000000000000e+02 -5.84654516781555e-01 1.04151636342412e+00 -4.69631245460120e-01 + 1.23000000000000e+02 -6.37416912338243e-01 9.61283832293716e-01 -4.68871129532284e-01 + 1.26000000000000e+02 -6.90179307894930e-01 8.81051301163311e-01 -4.68111013365532e-01 + 1.29000000000000e+02 -7.42941703451618e-01 8.00818770032906e-01 -4.67350897023249e-01 + 1.32000000000000e+02 -7.94435539295470e-01 7.18062030423016e-01 -4.71892553188209e-01 + 1.35000000000000e+02 -8.45291163792518e-01 6.34035363605912e-01 -4.79101526489359e-01 + 1.38000000000000e+02 -8.96146788289568e-01 5.50008696788807e-01 -4.86310499544834e-01 + 1.41000000000000e+02 -9.50474892297391e-01 4.67916989594347e-01 -4.99497438830427e-01 + 1.44000000000000e+02 -1.01147990343320e+00 3.89545835870889e-01 -5.24178852107317e-01 + 1.47000000000000e+02 -1.07248491456901e+00 3.11174682147431e-01 -5.48860265123795e-01 + 1.50000000000000e+02 -1.13348992570482e+00 2.32803528423973e-01 -5.73541677973212e-01 + 1.53000000000000e+02 -1.10045345433081e+00 1.69278915624218e-01 -5.87329510852466e-01 + 1.56000000000000e+02 -1.06740598617635e+00 1.05756038910994e-01 -6.01116069830369e-01 + 1.59000000000000e+02 -1.03435851802188e+00 4.22331621977695e-02 -6.14902628763764e-01 + 1.62000000000000e+02 -9.21989486202764e-01 1.66288847414773e-02 -5.92789786371643e-01 + 1.65000000000000e+02 -7.68324571589204e-01 1.07655447843980e-02 -5.51987228346126e-01 + 1.68000000000000e+02 -6.14659656975643e-01 4.90220482731867e-03 -5.11184670320609e-01 + 1.71000000000000e+02 -4.60994742510399e-01 1.00000000000000e-03 -4.35477530186550e-01 + 1.74000000000000e+02 -3.07329828340266e-01 1.00000000000000e-03 -2.90318353457700e-01 + 1.77000000000000e+02 -1.53664914170132e-01 1.00000000000000e-03 -1.45159176728850e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_15.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_15.dat new file mode 100644 index 000000000..9f132bc53 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_15.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF15_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +12.443137 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.945055 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.848485 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.848485 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.909511 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.340575 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007249 Cd0 ! 2D drag coefficient value at 0-lift. +-0.096262 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.52625972851385e-01 1.00000000000000e-03 1.17685921542775e-01 +-1.74000000000000e+02 3.05251945702771e-01 1.00000000000000e-03 2.35371843085551e-01 +-1.71000000000000e+02 4.57877918554155e-01 1.00000000000000e-03 3.53057764628326e-01 +-1.68000000000000e+02 6.10503891675763e-01 5.19086434217657e-03 4.36560981687742e-01 +-1.65000000000000e+02 7.63129864933179e-01 1.14879357260658e-02 5.02884961423585e-01 +-1.62000000000000e+02 9.15755838190593e-01 1.77850071099550e-02 5.69208941155685e-01 +-1.59000000000000e+02 1.02746432019387e+00 4.36628998790716e-02 6.08508571954585e-01 +-1.56000000000000e+02 1.06057805696144e+00 1.07151839198415e-01 5.95899353035757e-01 +-1.53000000000000e+02 1.09369179372902e+00 1.70640778517757e-01 5.83289785132614e-01 +-1.50000000000000e+02 1.12679461753249e+00 2.34131452497838e-01 5.70678415496564e-01 +-1.47000000000000e+02 1.06657273353656e+00 3.12456474413995e-01 5.46412611412726e-01 +-1.44000000000000e+02 1.00635084954063e+00 3.90781496330152e-01 5.22145497421614e-01 +-1.41000000000000e+02 9.46128965544708e-01 4.69106518246310e-01 4.97876341577085e-01 +-1.38000000000000e+02 8.92397705495344e-01 5.51145111560227e-01 4.84971010219512e-01 +-1.35000000000000e+02 8.42042044092861e-01 6.35115033308603e-01 4.77975593106867e-01 +-1.32000000000000e+02 7.91686382690377e-01 7.19084955056979e-01 4.70978249688165e-01 +-1.29000000000000e+02 7.40637579962446e-01 8.01781963952016e-01 4.66611700915210e-01 +-1.26000000000000e+02 6.88211034320405e-01 8.81948829859490e-01 4.67478161815577e-01 +-1.23000000000000e+02 6.35784488678363e-01 9.62115695766966e-01 4.68343246406530e-01 +-1.20000000000000e+02 5.83357943036321e-01 1.04228256167444e+00 4.69206457692210e-01 +-1.17000000000000e+02 5.26253811002778e-01 1.10983726773505e+00 4.71965598371654e-01 +-1.14000000000000e+02 4.69114114001008e-01 1.17729608009607e+00 4.74738448178000e-01 +-1.11000000000000e+02 4.11974416999238e-01 1.24475489245709e+00 4.77510406507134e-01 +-1.08000000000000e+02 3.53000507287431e-01 1.29879632695442e+00 4.79099900156001e-01 +-1.05000000000000e+02 2.93120311620711e-01 1.34620822440673e+00 4.80105262076672e-01 +-1.02000000000000e+02 2.33240115953991e-01 1.39362012185904e+00 4.81110315688642e-01 +-9.90000000000000e+01 1.73976784982440e-01 1.43284976300270e+00 4.80758556829895e-01 +-9.60000000000000e+01 1.15982765645525e-01 1.45524291923891e+00 4.77615446307276e-01 +-9.30000000000000e+01 5.79887463086093e-02 1.47763607547512e+00 4.74472214926108e-01 +-9.00000000000000e+01 -5.28855701329494e-06 1.49985499892573e+00 4.71290400462313e-01 +-8.70000000000000e+01 -5.80032999813597e-02 1.47745675852663e+00 4.58263212198257e-01 +-8.40000000000000e+01 -1.16001311405706e-01 1.45505851812739e+00 4.45235688024753e-01 +-8.10000000000000e+01 -1.73999322830052e-01 1.43266027772816e+00 4.32207765899791e-01 +-7.80000000000000e+01 -2.33243681257688e-01 1.39371367626876e+00 4.17443508497086e-01 +-7.50000000000000e+01 -2.93125427662511e-01 1.34630416170887e+00 4.01791366896882e-01 +-7.20000000000000e+01 -3.53007174067334e-01 1.29889464714899e+00 3.86139132351470e-01 +-6.90000000000000e+01 -4.11959404495436e-01 1.24469521496584e+00 3.70274855024051e-01 +-6.60000000000000e+01 -4.69095010422881e-01 1.17722572500983e+00 3.53996259180447e-01 +-6.30000000000000e+01 -5.26230616350325e-01 1.10975623505383e+00 3.37717553829896e-01 +-6.00000000000000e+01 -5.83366222277770e-01 1.04228674509783e+00 3.21438740021866e-01 +-5.70000000000000e+01 -6.35803933669800e-01 9.62154293795549e-01 3.05990813461433e-01 +-5.40000000000000e+01 -6.88223853012440e-01 8.81973884832238e-01 2.90545415857228e-01 +-5.10000000000000e+01 -7.40643772355080e-01 8.01793475868927e-01 2.75099462694987e-01 +-4.80000000000000e+01 -7.91687586628431e-01 7.19085375029600e-01 2.60268481925145e-01 +-4.50000000000000e+01 -8.42045438047250e-01 6.35117266670976e-01 2.45743976529934e-01 +-4.20000000000000e+01 -8.92403289466070e-01 5.51149158312350e-01 2.31219194108010e-01 +-3.90000000000000e+01 -9.46051648157894e-01 4.69063393397380e-01 2.15842130329638e-01 +-3.60000000000000e+01 -1.00629898388282e+00 3.90752590858268e-01 1.98755492641705e-01 +-3.30000000000000e+01 -1.06654631960775e+00 3.12441788319155e-01 1.81667313929179e-01 +-3.00000000000000e+01 -1.12679403590427e+00 2.34131622228226e-01 1.64576341480131e-01 +-2.93939393939394e+01 -1.14225158298505e+00 2.23809979933074e-01 1.56094223420598e-01 +-2.87878787878788e+01 -1.15770609523620e+00 2.13489431333671e-01 1.47989743965247e-01 +-2.81818181818182e+01 -1.17315730440677e+00 2.03170876223297e-01 1.39944059579296e-01 +-2.75757575757576e+01 -1.18860490967150e+00 1.92856212492073e-01 1.31856902865221e-01 +-2.69696969696970e+01 -1.20404857253159e+00 1.82526359970597e-01 1.23730760795593e-01 +-2.63636363636364e+01 -1.21948791072651e+00 1.72170949824099e-01 1.15567925391372e-01 +-2.57575757575758e+01 -1.23492249092588e+00 1.61807914703596e-01 1.07370512457360e-01 +-2.51515151515151e+01 -1.25035181990608e+00 1.51431728211747e-01 9.91404781977424e-02 +-2.45454545454545e+01 -1.26577533383214e+00 1.41029822184120e-01 9.08796339864111e-02 +-2.39393939393939e+01 -1.28119238515257e+00 1.30595152615776e-01 8.25896595267745e-02 +-2.33333333333333e+01 -1.29660222646286e+00 1.20329999520159e-01 7.42721146022847e-02 +-2.27272727272727e+01 -1.31200399048702e+00 1.10064846424542e-01 6.59284495906621e-02 +-2.21212121212121e+01 -1.32739666504197e+00 9.97996933289243e-02 5.75600148909559e-02 +-2.15151515151515e+01 -1.34277906145383e+00 8.95345402333070e-02 4.91680693923681e-02 +-2.09090909090909e+01 -1.35814977433710e+00 7.92693871376898e-02 4.07537880965823e-02 +-2.03030303030303e+01 -1.37350712984922e+00 6.90042340420725e-02 3.23182689906927e-02 +-1.96969696969697e+01 -1.38768270818498e+00 6.05303982546524e-02 8.06407763418659e-03 +-1.90909090909091e+01 -1.39954717003026e+00 5.50395739539362e-02 -7.34114102688385e-03 +-1.84848484848485e+01 -1.40601644254896e+00 5.11945944820066e-02 -8.96179032150286e-03 +-1.78787878787879e+01 -1.41214331716664e+00 4.79331222114491e-02 -9.56365385853527e-03 +-1.72727272727273e+01 -1.41588463182335e+00 4.44247122928276e-02 -1.03616970072043e-02 +-1.66666666666667e+01 -1.41881725071860e+00 4.08735030744961e-02 -1.10283450680005e-02 +-1.60606060606061e+01 -1.41580470477057e+00 3.76808978254673e-02 -1.16529815871061e-02 +-1.54545454545455e+01 -1.40776205149855e+00 3.47579621288641e-02 -1.20626869682576e-02 +-1.48484848484848e+01 -1.39834522785682e+00 3.18800490797678e-02 -1.23886016917650e-02 +-1.42424242424242e+01 -1.38840770242622e+00 2.90356850240749e-02 -1.25879102170132e-02 +-1.36363636363636e+01 -1.37614532078129e+00 2.63422033308864e-02 -1.26397733578713e-02 +-1.30303030303030e+01 -1.36997103143656e+00 2.36407805643358e-02 -1.17500657286130e-02 +-1.24242424242424e+01 -1.35046354232226e+00 2.10473323378239e-02 -1.27250308227523e-02 +-1.18181818181818e+01 -1.29229650054128e+00 1.86750669136023e-02 -1.82151055823557e-02 +-1.12121212121212e+01 -1.21807448373493e+00 1.66826532877800e-02 -2.46824667766957e-02 +-1.06060606060606e+01 -1.13452092117303e+00 1.49383440437542e-02 -3.17359282448491e-02 +-1.00000000000000e+01 -1.04173014550121e+00 1.32675540513138e-02 -3.97647679572990e-02 +-9.39393939393939e+00 -9.41998013027159e-01 1.17404135947798e-02 -4.80083109510141e-02 +-8.78787878787879e+00 -8.43907074425531e-01 1.03930211294978e-02 -5.62078121361363e-02 +-8.18181818181818e+00 -7.47025330057864e-01 9.31096663150825e-03 -6.31564650313806e-02 +-7.57575757575758e+00 -6.55586297740545e-01 8.69855426968032e-03 -6.83081541744151e-02 +-6.96969696969697e+00 -5.65805717735177e-01 8.21103879907010e-03 -7.30582454847230e-02 +-6.36363636363636e+00 -4.79082904569987e-01 7.95430296742220e-03 -7.68767074449635e-02 +-5.75757575757576e+00 -3.92779123337092e-01 7.72521268910259e-03 -8.04967846828998e-02 +-5.15151515151515e+00 -3.07345747983690e-01 7.57502397128471e-03 -8.40351824554527e-02 +-4.54545454545454e+00 -2.22169300294326e-01 7.42943492320432e-03 -8.76701086851023e-02 +-3.93939393939394e+00 -1.37858152935827e-01 7.35152629454684e-03 -9.10479714111368e-02 +-3.33333333333333e+00 -5.38431633720279e-02 7.27396503027930e-03 -9.42901123325282e-02 +-2.72727272727273e+00 3.02001709855944e-02 7.23562363452310e-03 -9.73674670694592e-02 +-2.12121212121212e+00 1.14557507769522e-01 7.19925723892790e-03 -1.00396911349562e-01 +-1.51515151515152e+00 1.98267082534578e-01 7.20672499296794e-03 -1.03323515633659e-01 +-9.09090909090912e-01 2.81910099299414e-01 7.21960456012185e-03 -1.06184432834271e-01 +-3.03030303030302e-01 3.65021140468051e-01 7.26070603525748e-03 -1.08905991210612e-01 + 3.03030303030302e-01 4.47833473173521e-01 7.32967261518404e-03 -1.11545061659243e-01 + 9.09090909090912e-01 5.30261582706884e-01 7.41508497646120e-03 -1.14022753854798e-01 + 1.51515151515152e+00 6.12520983106601e-01 7.51282874387909e-03 -1.16515610854553e-01 + 2.12121212121212e+00 6.94197383284880e-01 7.63605817489612e-03 -1.18822209611484e-01 + 2.72727272727273e+00 7.75669101175069e-01 7.77590313893183e-03 -1.21133044216197e-01 + 3.33333333333333e+00 8.56748062727517e-01 7.93533155311978e-03 -1.23355442586634e-01 + 3.93939393939394e+00 9.37407311190671e-01 8.08345558073462e-03 -1.25458897542087e-01 + 4.54545454545455e+00 1.01766896133449e+00 8.27901458703836e-03 -1.27485241301932e-01 + 5.15151515151515e+00 1.09750917035058e+00 8.45427979028921e-03 -1.29372874416485e-01 + 5.75757575757576e+00 1.17686501885004e+00 8.66769961215687e-03 -1.31167909272998e-01 + 6.36363636363637e+00 1.25553475556552e+00 8.90613381826854e-03 -1.32818114435247e-01 + 6.96969696969697e+00 1.33400581202866e+00 9.12292402066135e-03 -1.34460606173126e-01 + 7.57575757575757e+00 1.41111302933983e+00 9.40209986128806e-03 -1.35810108854354e-01 + 8.18181818181818e+00 1.48794881363385e+00 9.68029183037867e-03 -1.37127376856882e-01 + 8.78787878787879e+00 1.56344813921648e+00 1.00219821906639e-02 -1.38249504754285e-01 + 9.39393939393939e+00 1.63803153670769e+00 1.03878940557395e-02 -1.39187574511241e-01 + 1.00000000000000e+01 1.71060250194793e+00 1.07915978313725e-02 -1.39803013726302e-01 + 1.06060606060606e+01 1.78215624493197e+00 1.11577817788362e-02 -1.40189451923869e-01 + 1.12121212121212e+01 1.85119287707538e+00 1.15784381639558e-02 -1.40140334670203e-01 + 1.18181818181818e+01 1.91682118220852e+00 1.20685488031844e-02 -1.39621126189171e-01 + 1.24242424242424e+01 1.97980228990497e+00 1.25537143259123e-02 -1.38615218715592e-01 + 1.30303030303030e+01 2.03711538365179e+00 1.30816756909543e-02 -1.36749885876379e-01 + 1.36363636363636e+01 2.08270669027972e+00 1.37602631616661e-02 -1.33175035749511e-01 + 1.42424242424242e+01 2.11008860701441e+00 1.46890484479676e-02 -1.27050038541774e-01 + 1.48484848484848e+01 2.13642388595799e+00 1.60216072367470e-02 -1.21827207036283e-01 + 1.54545454545455e+01 2.16055442891237e+00 1.78937997366992e-02 -1.17573176694699e-01 + 1.60606060606061e+01 2.17818442495443e+00 2.04627936790426e-02 -1.13782354715780e-01 + 1.66666666666667e+01 2.18991338358987e+00 2.36676910808608e-02 -1.10616623442094e-01 + 1.72727272727273e+01 2.19406305901853e+00 2.75699173535779e-02 -1.07764436225520e-01 + 1.78787878787879e+01 2.18715277042938e+00 3.24697690559094e-02 -1.05214703448763e-01 + 1.84848484848485e+01 2.16790958278777e+00 3.85625060709541e-02 -1.03238920410527e-01 + 1.90909090909091e+01 2.13873759230503e+00 4.56946655752497e-02 -1.01860584424799e-01 + 1.96969696969697e+01 2.10357470165250e+00 5.34798374076827e-02 -1.01201832724334e-01 + 2.03030303030303e+01 2.06079675089272e+00 6.22767028985472e-02 -1.01550361068788e-01 + 2.09090909090909e+01 2.01685280527720e+00 7.13734093098271e-02 -1.02547720207189e-01 + 2.15151515151515e+01 1.97744679424948e+00 7.99976220344115e-02 -1.04551825171171e-01 + 2.21212121212121e+01 1.93903262483305e+00 8.83755406586647e-02 -1.07858325720131e-01 + 2.27272727272727e+01 1.90891782615912e+00 9.57618805135564e-02 -1.11673584007581e-01 + 2.33333333333333e+01 1.88229162134276e+00 1.02607158047827e-01 -1.16514124581503e-01 + 2.39393939393939e+01 1.85208313363378e+00 1.09713332270397e-01 -1.22298045411619e-01 + 2.45454545454545e+01 1.83028199440191e+00 1.15865245799716e-01 -1.28446033250671e-01 + 2.51515151515151e+01 1.81066931770293e+00 1.23597164435858e-01 -1.34866312291444e-01 + 2.57575757575758e+01 1.78554891831562e+00 1.37413921092496e-01 -1.42003880427192e-01 + 2.63636363636364e+01 1.76042851892427e+00 1.51230677749608e-01 -1.49127108887099e-01 + 2.69696969696970e+01 1.73530811952850e+00 1.65047434407200e-01 -1.56234695980845e-01 + 2.75757575757576e+01 1.71018772012791e+00 1.78864191065283e-01 -1.63325177553501e-01 + 2.81818181818182e+01 1.68506732072204e+00 1.92680947723864e-01 -1.70396900822574e-01 + 2.87878787878788e+01 1.65994692131034e+00 2.06497704382952e-01 -1.77447992990907e-01 + 2.93939393939394e+01 1.63482652189224e+00 2.20314461042555e-01 -1.84680289777859e-01 + 3.00000000000000e+01 1.60970612246704e+00 2.34131217702684e-01 -1.92076042627774e-01 + 3.30000000000000e+01 1.52363760531018e+00 3.12441788319155e-01 -2.11750482918312e-01 + 3.60000000000000e+01 1.43756998326778e+00 3.90752590858268e-01 -2.31420434813501e-01 + 3.90000000000000e+01 1.35150236122538e+00 4.69063393397380e-01 -2.51088023711726e-01 + 4.20000000000000e+01 1.27486184708141e+00 5.51149158312351e-01 -2.66662704096321e-01 + 4.50000000000000e+01 1.20292205654166e+00 6.35117266670976e-01 -2.80196777544421e-01 + 4.80000000000000e+01 1.13098226600191e+00 7.19085375029600e-01 -2.93730518764473e-01 + 5.10000000000000e+01 1.05806252995179e+00 8.01793475868927e-01 -3.06959837799618e-01 + 5.40000000000000e+01 9.83176932374979e-01 8.81973884832238e-01 -3.19578536463395e-01 + 5.70000000000000e+01 9.08291334798169e-01 9.62154293795549e-01 -3.32196387355893e-01 + 6.00000000000000e+01 8.33380320003745e-01 1.04228674509783e+00 -3.44814677573630e-01 + 6.30000000000000e+01 7.51758026192380e-01 1.10975623505383e+00 -3.57804989799169e-01 + 6.60000000000000e+01 6.70135732381016e-01 1.17722572500983e+00 -3.70794985967294e-01 + 6.90000000000000e+01 5.88513438569651e-01 1.24469521496584e+00 -3.83784651521994e-01 + 7.20000000000000e+01 5.04295966744059e-01 1.29889464714899e+00 -3.96798642745512e-01 + 7.50000000000000e+01 4.18750614871828e-01 1.34630416170887e+00 -4.09825173593882e-01 + 7.80000000000000e+01 3.33205262999596e-01 1.39371367626876e+00 -4.22851677350642e-01 + 8.10000000000000e+01 2.48580023957850e-01 1.43266027772816e+00 -4.35507089092760e-01 + 8.40000000000000e+01 1.65753971455558e-01 1.45505851812739e+00 -4.47436629822993e-01 + 8.70000000000000e+01 8.29279189532662e-02 1.47745675852663e+00 -4.59365805790781e-01 + 9.00000000000000e+01 1.01866450974262e-04 1.49985499892573e+00 -4.71294672745462e-01 + 9.30000000000000e+01 -5.79887463086093e-02 1.47763607547512e+00 -4.74472214926108e-01 + 9.60000000000000e+01 -1.15982765645525e-01 1.45524291923891e+00 -4.77615446307276e-01 + 9.90000000000000e+01 -1.73976784982440e-01 1.43284976300270e+00 -4.80758556829895e-01 + 1.02000000000000e+02 -2.33240115953991e-01 1.39362012185904e+00 -4.81110315688642e-01 + 1.05000000000000e+02 -2.93120311620711e-01 1.34620822440673e+00 -4.80105262076672e-01 + 1.08000000000000e+02 -3.53000507287431e-01 1.29879632695442e+00 -4.79099900156001e-01 + 1.11000000000000e+02 -4.11974416999239e-01 1.24475489245709e+00 -4.77510406507134e-01 + 1.14000000000000e+02 -4.69114114001008e-01 1.17729608009607e+00 -4.74738448178000e-01 + 1.17000000000000e+02 -5.26253811002778e-01 1.10983726773505e+00 -4.71965598371654e-01 + 1.20000000000000e+02 -5.83357943036322e-01 1.04228256167444e+00 -4.69206457692210e-01 + 1.23000000000000e+02 -6.35784488678363e-01 9.62115695766965e-01 -4.68343246406530e-01 + 1.26000000000000e+02 -6.88211034320405e-01 8.81948829859491e-01 -4.67478161815577e-01 + 1.29000000000000e+02 -7.40637579962447e-01 8.01781963952015e-01 -4.66611700915210e-01 + 1.32000000000000e+02 -7.91686382690377e-01 7.19084955056978e-01 -4.70978249688165e-01 + 1.35000000000000e+02 -8.42042044092861e-01 6.35115033308603e-01 -4.77975593106867e-01 + 1.38000000000000e+02 -8.92397705495344e-01 5.51145111560226e-01 -4.84971010219512e-01 + 1.41000000000000e+02 -9.46128965544708e-01 4.69106518246309e-01 -4.97876341577086e-01 + 1.44000000000000e+02 -1.00635084954063e+00 3.90781496330152e-01 -5.22145497421615e-01 + 1.47000000000000e+02 -1.06657273353656e+00 3.12456474413995e-01 -5.46412611412726e-01 + 1.50000000000000e+02 -1.12679461753249e+00 2.34131452497838e-01 -5.70678415496564e-01 + 1.53000000000000e+02 -1.09369179372902e+00 1.70640778517757e-01 -5.84160763151468e-01 + 1.56000000000000e+02 -1.06057805696144e+00 1.07151839198415e-01 -5.97641410921647e-01 + 1.59000000000000e+02 -1.02746432019387e+00 4.36628998790716e-02 -6.11121709707512e-01 + 1.62000000000000e+02 -9.15755838190593e-01 1.77850071099550e-02 -5.89638604027846e-01 + 1.65000000000000e+02 -7.63129864933179e-01 1.14879357260658e-02 -5.49953178239227e-01 + 1.68000000000000e+02 -6.10503891675763e-01 5.19086434217657e-03 -5.10267752446836e-01 + 1.71000000000000e+02 -4.57877918554155e-01 1.00000000000000e-03 -4.35321489895840e-01 + 1.74000000000000e+02 -3.05251945702771e-01 1.00000000000000e-03 -2.90214326597227e-01 + 1.77000000000000e+02 -1.52625972851385e-01 1.00000000000000e-03 -1.45107163298613e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_16.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_16.dat new file mode 100644 index 000000000..61a95526e --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_16.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF16_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +12.446425 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.945628 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.848485 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.848485 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.883372 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.325884 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007067 Cd0 ! 2D drag coefficient value at 0-lift. +-0.095933 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.50196158795299e-01 1.00000000000000e-03 1.17563364896183e-01 +-1.74000000000000e+02 3.00392317590599e-01 1.00000000000000e-03 2.35126729792367e-01 +-1.71000000000000e+02 4.50588476385897e-01 1.00000000000000e-03 3.52690094688550e-01 +-1.68000000000000e+02 6.00784635387839e-01 5.44253774588383e-03 4.34400398235672e-01 +-1.65000000000000e+02 7.50980794493635e-01 1.21177662971673e-02 4.98091991358884e-01 +-1.62000000000000e+02 9.01176953599430e-01 1.87929948484508e-02 5.61783584470639e-01 +-1.59000000000000e+02 1.01134058104624e+00 4.49094444368183e-02 5.99597613578187e-01 +-1.56000000000000e+02 1.04460930290519e+00 1.08368794766350e-01 5.87705142095850e-01 +-1.53000000000000e+02 1.07787802476414e+00 1.71828145095882e-01 5.75811602137597e-01 +-1.50000000000000e+02 1.11113602968369e+00 2.35289228843041e-01 5.63915385799074e-01 +-1.47000000000000e+02 1.05274567677474e+00 3.13574029777078e-01 5.40623471108664e-01 +-1.44000000000000e+02 9.94355323865784e-01 3.91858830711115e-01 5.17327545910289e-01 +-1.41000000000000e+02 9.35964970956831e-01 4.70143631645153e-01 4.94025369224071e-01 +-1.38000000000000e+02 8.83629574000971e-01 5.52135916549584e-01 4.81781197530337e-01 +-1.35000000000000e+02 8.34443196506175e-01 6.36056363981503e-01 4.75287675721368e-01 +-1.32000000000000e+02 7.85256819011379e-01 7.19976811413424e-01 4.68788256192808e-01 +-1.29000000000000e+02 7.35248833230138e-01 8.02621742959273e-01 4.64834402294295e-01 +-1.26000000000000e+02 6.83607753369423e-01 8.82731357522346e-01 4.65952051793421e-01 +-1.23000000000000e+02 6.31966673508708e-01 9.62840972085419e-01 4.67065487482930e-01 +-1.20000000000000e+02 5.80325593647994e-01 1.04295058664849e+00 4.68173187723928e-01 +-1.17000000000000e+02 5.23738558058860e-01 1.11044202461439e+00 4.71055475271175e-01 +-1.14000000000000e+02 4.67113917016057e-01 1.17783752313370e+00 4.73949093512914e-01 +-1.11000000000000e+02 4.10489275973254e-01 1.24523302165301e+00 4.76839982342784e-01 +-1.08000000000000e+02 3.51883541230936e-01 1.29920835466747e+00 4.78507436848532e-01 +-1.05000000000000e+02 2.92298946520300e-01 1.34655277326122e+00 4.79570774218707e-01 +-1.02000000000000e+02 2.32714351809664e-01 1.39389719185496e+00 4.80633167648396e-01 +-9.90000000000000e+01 1.73682095431729e-01 1.43305865095190e+00 4.80330443616141e-01 +-9.60000000000000e+01 1.15786375927186e-01 1.45538217820351e+00 4.77220387025197e-01 +-9.30000000000000e+01 5.78906564226418e-02 1.47770570545512e+00 4.74109960404871e-01 +-9.00000000000000e+01 -5.07743918034314e-06 1.49985554097246e+00 4.70960700821800e-01 +-8.70000000000000e+01 -5.79044878829353e-02 1.47752676391297e+00 4.57974032171030e-01 +-8.40000000000000e+01 -1.15803898326689e-01 1.45519798685339e+00 4.44986335075311e-01 +-8.10000000000000e+01 -1.73703308770442e-01 1.43286920979380e+00 4.31997419582287e-01 +-7.80000000000000e+01 -2.32718752612542e-01 1.39399075906777e+00 4.17257369815851e-01 +-7.50000000000000e+01 -2.92304941414405e-01 1.34664872396797e+00 4.01622045266710e-01 +-7.20000000000000e+01 -3.51891130216268e-01 1.29930668886816e+00 3.85986436149717e-01 +-6.90000000000000e+01 -4.10473438591005e-01 1.24517332466393e+00 3.70129256030783e-01 +-6.60000000000000e+01 -4.67093786305228e-01 1.17776714412075e+00 3.53839327371699e-01 +-6.30000000000000e+01 -5.23714134019450e-01 1.11036096357756e+00 3.37549063438135e-01 +-6.00000000000000e+01 -5.80334481733673e-01 1.04295478303438e+00 3.21258467443213e-01 +-5.70000000000000e+01 -6.31987347963119e-01 9.62879597374439e-01 3.05774332994292e-01 +-5.40000000000000e+01 -6.83621401152966e-01 8.82756431164260e-01 2.90291361268460e-01 +-5.10000000000000e+01 -7.35255454342814e-01 8.02633264954080e-01 2.74806688605489e-01 +-4.80000000000000e+01 -7.85257277043556e-01 7.19977218460818e-01 2.59941441336596e-01 +-4.50000000000000e+01 -8.34445463118326e-01 6.36058578123566e-01 2.45384730520619e-01 +-4.20000000000000e+01 -8.83633649193097e-01 5.52139937786313e-01 2.30827171539384e-01 +-3.90000000000000e+01 -9.35891679450775e-01 4.70100558273743e-01 2.15457123581164e-01 +-3.60000000000000e+01 -9.94306155987851e-01 3.91829959071441e-01 1.98456564183743e-01 +-3.30000000000000e+01 -1.05272063252493e+00 3.13559359869138e-01 1.81451286672659e-01 +-3.00000000000000e+01 -1.11113552976020e+00 2.35289390706481e-01 1.64438667846483e-01 +-2.93939393939394e+01 -1.12656650143997e+00 2.24922149898896e-01 1.56075443676195e-01 +-2.87878787878788e+01 -1.14198818146324e+00 2.14560368141967e-01 1.48315036120568e-01 +-2.81818181818182e+01 -1.15739974853328e+00 2.04207493096615e-01 1.40661752371760e-01 +-2.75757575757576e+01 -1.17280028162150e+00 1.93870368739464e-01 1.32951365025451e-01 +-2.69696969696970e+01 -1.18818874435515e+00 1.83492190004628e-01 1.25187298415094e-01 +-2.63636363636364e+01 -1.20356396637746e+00 1.73043873499053e-01 1.17372708443634e-01 +-2.57575757575758e+01 -1.21892462097240e+00 1.62585058102620e-01 1.09510508380501e-01 +-2.51515151515151e+01 -1.23426919805045e+00 1.52108134472338e-01 1.01603391739698e-01 +-2.45454545454545e+01 -1.24959597133322e+00 1.41595797396864e-01 9.36538526171740e-02 +-2.39393939393939e+01 -1.26490295822966e+00 1.31038347926535e-01 8.56642038106845e-02 +-2.33333333333333e+01 -1.28018787043143e+00 1.20714307113654e-01 7.76365929991870e-02 +-2.27272727272727e+01 -1.29544805262292e+00 1.10390266300773e-01 6.95730172199668e-02 +-2.21212121212121e+01 -1.31068040583029e+00 1.00066225487893e-01 6.14753358488355e-02 +-2.15151515151515e+01 -1.32588129072266e+00 8.97421846750116e-02 5.33452822609267e-02 +-2.09090909090909e+01 -1.34104640446889e+00 7.94181438621308e-02 4.51844743259438e-02 +-2.03030303030303e+01 -1.35617062231014e+00 6.90941030492499e-02 3.69944238715543e-02 +-1.96969696969697e+01 -1.37015832552942e+00 6.05285696662899e-02 1.24557803766595e-02 +-1.90909090909091e+01 -1.38411361639945e+00 5.47156093742448e-02 -7.06509789358624e-03 +-1.84848484848485e+01 -1.38913000210191e+00 5.09747828377997e-02 -9.32017203833962e-03 +-1.78787878787879e+01 -1.39337037865818e+00 4.78587533104922e-02 -1.00204867147805e-02 +-1.72727272727273e+01 -1.39582441042987e+00 4.45234669736437e-02 -1.08615037519423e-02 +-1.66666666666667e+01 -1.39764698235440e+00 4.11629314004297e-02 -1.15283579642392e-02 +-1.60606060606061e+01 -1.39375022506031e+00 3.81270685337663e-02 -1.21579145160935e-02 +-1.54545454545455e+01 -1.38524702136870e+00 3.53195039276233e-02 -1.26174303015755e-02 +-1.48484848484848e+01 -1.37529355149237e+00 3.25418048849889e-02 -1.29950421669735e-02 +-1.42424242424242e+01 -1.36467155487687e+00 2.97959542749527e-02 -1.32540211133810e-02 +-1.36363636363636e+01 -1.35179320103415e+00 2.71833791230484e-02 -1.33703023490385e-02 +-1.30303030303030e+01 -1.34398864289640e+00 2.45661834123654e-02 -1.26531003304430e-02 +-1.24242424242424e+01 -1.32433631334368e+00 2.20415253308540e-02 -1.35681185838073e-02 +-1.18181818181818e+01 -1.27091195230359e+00 1.97133716565644e-02 -1.85214221037218e-02 +-1.12121212121212e+01 -1.20506907503785e+00 1.77104162474424e-02 -2.43282925784150e-02 +-1.06060606060606e+01 -1.12953609669354e+00 1.58478496983694e-02 -3.09005841307453e-02 +-1.00000000000000e+01 -1.03892957011593e+00 1.38729416970588e-02 -3.92300467322405e-02 +-9.39393939393939e+00 -9.37195893477981e-01 1.18968261997486e-02 -4.83534611029218e-02 +-8.78787878787879e+00 -8.37219028062203e-01 1.02129494660258e-02 -5.75449787315758e-02 +-8.18181818181818e+00 -7.40557275495663e-01 9.08161757614757e-03 -6.42266979544451e-02 +-7.57575757575758e+00 -6.49399647197428e-01 8.44502721212000e-03 -6.91138793522104e-02 +-6.96969696969697e+00 -5.60094112781002e-01 7.90760607144600e-03 -7.37277908038069e-02 +-6.36363636363636e+00 -4.74296820648252e-01 7.66496907378409e-03 -7.72481025203895e-02 +-5.75757575757576e+00 -3.88956827666839e-01 7.45001535675093e-03 -8.05711130189822e-02 +-5.15151515151515e+00 -3.04397309664320e-01 7.33920691585279e-03 -8.39916498458484e-02 +-4.54545454545454e+00 -2.20134317277038e-01 7.22154593188156e-03 -8.75456838853229e-02 +-3.93939393939394e+00 -1.36680368357849e-01 7.16189499064541e-03 -9.08461140724167e-02 +-3.33333333333333e+00 -5.34561156210820e-02 7.08906579829234e-03 -9.40132453843743e-02 +-2.72727272727273e+00 3.01064261477465e-02 7.05414116935122e-03 -9.70134324439670e-02 +-2.12121212121212e+00 1.14236048973037e-01 7.02131015030288e-03 -9.99675318932246e-02 +-1.51515151515152e+00 1.97708108528446e-01 7.03360788218354e-03 -1.02819717490264e-01 +-9.09090909090912e-01 2.81110100237986e-01 7.04768752543931e-03 -1.05608678787504e-01 +-3.03030303030302e-01 3.63975192071856e-01 7.09277191260938e-03 -1.08265708047464e-01 + 3.03030303030302e-01 4.46556418100065e-01 7.16394933235876e-03 -1.10838863100260e-01 + 9.09090909090912e-01 5.28770386193310e-01 7.25025511469040e-03 -1.13256156387477e-01 + 1.51515151515152e+00 6.10789468906895e-01 7.35293242453967e-03 -1.15681807061255e-01 + 2.12121212121212e+00 6.92279580972973e-01 7.47535209755155e-03 -1.17939079807940e-01 + 2.72727272727273e+00 7.73537366382654e-01 7.61896885191317e-03 -1.20196292627453e-01 + 3.33333333333333e+00 8.54399417919042e-01 7.78489003808061e-03 -1.22357091323496e-01 + 3.93939393939394e+00 9.34864892542763e-01 7.93642933957715e-03 -1.24404236642670e-01 + 4.54545454545455e+00 1.01491869791944e+00 8.13841620669868e-03 -1.26371183551723e-01 + 5.15151515151515e+00 1.09455486595470e+00 8.31981949239466e-03 -1.28208121524910e-01 + 5.75757575757576e+00 1.17369773256875e+00 8.54187461552181e-03 -1.29948447826280e-01 + 6.36363636363637e+00 1.25216803638314e+00 8.78620920046990e-03 -1.31545262588724e-01 + 6.96969696969697e+00 1.33036129976913e+00 9.01420174169135e-03 -1.33124897202971e-01 + 7.57575757575757e+00 1.40732917505094e+00 9.28220941264596e-03 -1.34430288937470e-01 + 8.18181818181818e+00 1.48389491915695e+00 9.59784517230384e-03 -1.35680026524742e-01 + 8.78787878787879e+00 1.55914019112840e+00 9.97648985734806e-03 -1.36737292864701e-01 + 9.39393939393939e+00 1.63328301920583e+00 1.03922538910990e-02 -1.37585002678380e-01 + 1.00000000000000e+01 1.70546009197881e+00 1.08127829094567e-02 -1.38120195123347e-01 + 1.06060606060606e+01 1.77658360207010e+00 1.12010736398829e-02 -1.38417649684574e-01 + 1.12121212121212e+01 1.84504651241060e+00 1.16431344025527e-02 -1.38262939298059e-01 + 1.18181818181818e+01 1.90980616742231e+00 1.21501240015213e-02 -1.37544652637602e-01 + 1.24242424242424e+01 1.97139425705584e+00 1.26484289647651e-02 -1.36211089713436e-01 + 1.30303030303030e+01 2.02555131023099e+00 1.31957116235817e-02 -1.33645932205253e-01 + 1.36363636363636e+01 2.06920456335187e+00 1.39344646514019e-02 -1.29823818490080e-01 + 1.42424242424242e+01 2.09617234117140e+00 1.49565260017331e-02 -1.23942328385224e-01 + 1.48484848484848e+01 2.12169000331291e+00 1.64075817295326e-02 -1.18966023567700e-01 + 1.54545454545455e+01 2.14428710850430e+00 1.84239190642508e-02 -1.14901273473966e-01 + 1.60606060606061e+01 2.15963739760137e+00 2.11652014118834e-02 -1.11244890286174e-01 + 1.66666666666667e+01 2.16848100842877e+00 2.45718477690399e-02 -1.08181758069624e-01 + 1.72727272727273e+01 2.16960649237476e+00 2.87018511876185e-02 -1.05496230316035e-01 + 1.78787878787879e+01 2.15982826139294e+00 3.38217482619959e-02 -1.03150040186412e-01 + 1.84848484848485e+01 2.13821461042342e+00 4.00933800173016e-02 -1.01379001741410e-01 + 1.90909090909091e+01 2.10784540014453e+00 4.73007828709781e-02 -1.00269848249913e-01 + 1.96969696969697e+01 2.07254168602939e+00 5.50655962290217e-02 -9.98769712668181e-02 + 2.03030303030303e+01 2.03082942036125e+00 6.38032184105988e-02 -1.00472932491792e-01 + 2.09090909090909e+01 1.98830951240247e+00 7.28443148052082e-02 -1.01808668893610e-01 + 2.15151515151515e+01 1.94998305836738e+00 8.13956678735846e-02 -1.04029688452295e-01 + 2.21212121212121e+01 1.91261471698810e+00 8.96471448317718e-02 -1.07586457284528e-01 + 2.27272727272727e+01 1.88314230039717e+00 9.69110351013118e-02 -1.11634479410091e-01 + 2.33333333333333e+01 1.85636409516578e+00 1.03674556825114e-01 -1.16894150718224e-01 + 2.39393939393939e+01 1.82621847215721e+00 1.10687978367579e-01 -1.23050275250591e-01 + 2.45454545454545e+01 1.80288516404676e+00 1.16943982635500e-01 -1.29855903191392e-01 + 2.51515151515151e+01 1.78195044957648e+00 1.24806819221530e-01 -1.36709846162185e-01 + 2.57575757575758e+01 1.75762373585909e+00 1.38617090852696e-01 -1.43579290083038e-01 + 2.63636363636364e+01 1.73329702212931e+00 1.52427362488321e-01 -1.50428989583585e-01 + 2.69696969696970e+01 1.70897030838603e+00 1.66237634128479e-01 -1.57257152355472e-01 + 2.75757575757576e+01 1.68464359462797e+00 1.80047905773247e-01 -1.64061762391462e-01 + 2.81818181818182e+01 1.66031688085372e+00 1.93858177422703e-01 -1.70840543961434e-01 + 2.87878787878788e+01 1.63599016706167e+00 2.07668449076927e-01 -1.77590918395226e-01 + 2.93939393939394e+01 1.61166345324999e+00 2.21478720735999e-01 -1.84640195222915e-01 + 3.00000000000000e+01 1.58733673941657e+00 2.35288992400003e-01 -1.91942815336504e-01 + 3.30000000000000e+01 1.50388662314248e+00 3.13559359869139e-01 -2.11496826652831e-01 + 3.60000000000000e+01 1.42043737134060e+00 3.91829959071441e-01 -2.31037920381998e-01 + 3.90000000000000e+01 1.33698811953872e+00 4.70100558273743e-01 -2.50571779386738e-01 + 4.20000000000000e+01 1.26233378917482e+00 5.52139937786313e-01 -2.66128460445407e-01 + 4.50000000000000e+01 1.19206494959412e+00 6.36058578123566e-01 -2.79702813114876e-01 + 4.80000000000000e+01 1.12179611001341e+00 7.19977218460818e-01 -2.93276148610641e-01 + 5.10000000000000e+01 1.05036493349012e+00 8.02633264954080e-01 -3.06550926821449e-01 + 5.40000000000000e+01 9.76602001320971e-01 8.82756431164260e-01 -3.19227012548485e-01 + 5.70000000000000e+01 9.02839069151822e-01 9.62879597374439e-01 -3.31900502676936e-01 + 6.00000000000000e+01 8.29049261209140e-01 1.04295478303438e+00 -3.44572322723479e-01 + 6.30000000000000e+01 7.48163050438022e-01 1.11036096357756e+00 -3.57587017919527e-01 + 6.60000000000000e+01 6.67276839666904e-01 1.17776714412075e+00 -3.70600745451069e-01 + 6.90000000000000e+01 5.86390628895784e-01 1.24517332466393e+00 -3.83613460752351e-01 + 7.20000000000000e+01 5.02701617298023e-01 1.29930668886816e+00 -3.96627634839619e-01 + 7.50000000000000e+01 4.17578490864209e-01 1.34664872396797e+00 -4.09642839654159e-01 + 7.80000000000000e+01 3.32455364430395e-01 1.39399075906777e+00 -4.22657961523040e-01 + 8.10000000000000e+01 2.48157138968221e-01 1.43286920979380e+00 -4.35293189121428e-01 + 8.40000000000000e+01 1.65471922992909e-01 1.45519798685339e+00 -4.47184842027799e-01 + 8.70000000000000e+01 8.27867070175978e-02 1.47752676391297e+00 -4.59075378150778e-01 + 9.00000000000000e+01 1.01491042285875e-04 1.49985554097246e+00 -4.70964968176616e-01 + 9.30000000000000e+01 -5.78906564226417e-02 1.47770570545512e+00 -4.74109960404871e-01 + 9.60000000000000e+01 -1.15786375927186e-01 1.45538217820351e+00 -4.77220387025197e-01 + 9.90000000000000e+01 -1.73682095431730e-01 1.43305865095190e+00 -4.80330443616141e-01 + 1.02000000000000e+02 -2.32714351809664e-01 1.39389719185496e+00 -4.80633167648396e-01 + 1.05000000000000e+02 -2.92298946520300e-01 1.34655277326122e+00 -4.79570774218707e-01 + 1.08000000000000e+02 -3.51883541230936e-01 1.29920835466747e+00 -4.78507436848532e-01 + 1.11000000000000e+02 -4.10489275973254e-01 1.24523302165301e+00 -4.76839982342784e-01 + 1.14000000000000e+02 -4.67113917016057e-01 1.17783752313370e+00 -4.73949093512914e-01 + 1.17000000000000e+02 -5.23738558058860e-01 1.11044202461439e+00 -4.71055475271175e-01 + 1.20000000000000e+02 -5.80325593647994e-01 1.04295058664849e+00 -4.68173187723928e-01 + 1.23000000000000e+02 -6.31966673508709e-01 9.62840972085418e-01 -4.67065487482930e-01 + 1.26000000000000e+02 -6.83607753369423e-01 8.82731357522346e-01 -4.65952051793421e-01 + 1.29000000000000e+02 -7.35248833230138e-01 8.02621742959272e-01 -4.64834402294295e-01 + 1.32000000000000e+02 -7.85256819011379e-01 7.19976811413423e-01 -4.68788256192808e-01 + 1.35000000000000e+02 -8.34443196506175e-01 6.36056363981503e-01 -4.75287675721368e-01 + 1.38000000000000e+02 -8.83629574000972e-01 5.52135916549583e-01 -4.81781197530337e-01 + 1.41000000000000e+02 -9.35964970956832e-01 4.70143631645153e-01 -4.94025369224071e-01 + 1.44000000000000e+02 -9.94355323865784e-01 3.91858830711115e-01 -5.17327545910289e-01 + 1.47000000000000e+02 -1.05274567677474e+00 3.13574029777078e-01 -5.40623471108664e-01 + 1.50000000000000e+02 -1.11113602968369e+00 2.35289228843040e-01 -5.63915385799074e-01 + 1.53000000000000e+02 -1.07787802476414e+00 1.71828145095882e-01 -5.76682580156451e-01 + 1.56000000000000e+02 -1.04460930290519e+00 1.08368794766350e-01 -5.89447199981740e-01 + 1.59000000000000e+02 -1.01134058104624e+00 4.49094444368183e-02 -6.02210751331114e-01 + 1.62000000000000e+02 -9.01176953599430e-01 1.87929948484508e-02 -5.82213247065144e-01 + 1.65000000000000e+02 -7.50980794493636e-01 1.21177662971673e-02 -5.45160207474650e-01 + 1.68000000000000e+02 -6.00784635387839e-01 5.44253774588384e-03 -5.08107167872608e-01 + 1.71000000000000e+02 -4.50588476385897e-01 1.00000000000000e-03 -4.34953818693061e-01 + 1.74000000000000e+02 -3.00392317590599e-01 1.00000000000000e-03 -2.89969212462041e-01 + 1.77000000000000e+02 -1.50196158795299e-01 1.00000000000000e-03 -1.44984606231020e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_17.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_17.dat new file mode 100644 index 000000000..b95d7ccb3 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_17.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF17_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +12.368508 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.945768 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.848485 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.848485 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.889899 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.307323 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006873 Cd0 ! 2D drag coefficient value at 0-lift. +-0.095466 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.46999126013072e-01 1.00000000000000e-03 1.17400591639025e-01 +-1.74000000000000e+02 2.93998252026145e-01 1.00000000000000e-03 2.34801183278050e-01 +-1.71000000000000e+02 4.40997378039216e-01 1.00000000000000e-03 3.52201774917075e-01 +-1.68000000000000e+02 5.87996504166322e-01 5.66781615219987e-03 4.31530678220718e-01 +-1.65000000000000e+02 7.34995630350738e-01 1.26815415122548e-02 4.91725853305860e-01 +-1.62000000000000e+02 8.81994756535153e-01 1.96952668723097e-02 5.51921028371120e-01 +-1.59000000000000e+02 9.90125738455126e-01 4.60252539255532e-02 5.87759016219488e-01 +-1.56000000000000e+02 1.02359838227526e+00 1.09458118505016e-01 5.76810414302318e-01 +-1.53000000000000e+02 1.05707102609539e+00 1.72890983084479e-01 5.65859958266905e-01 +-1.50000000000000e+02 1.09053321089600e+00 2.36325579968827e-01 5.54905877790623e-01 +-1.47000000000000e+02 1.03455269872179e+00 3.14574378173169e-01 5.32898508320314e-01 +-1.44000000000000e+02 9.78572186547586e-01 3.92823176377510e-01 5.10884179445608e-01 +-1.41000000000000e+02 9.22591674373378e-01 4.71071974581852e-01 4.88859002410926e-01 +-1.38000000000000e+02 8.72092887125284e-01 5.53022807785360e-01 4.77489007247132e-01 +-1.35000000000000e+02 8.24444997324877e-01 6.36898969653228e-01 4.71659928786662e-01 +-1.32000000000000e+02 7.76797107524470e-01 7.20775131521097e-01 4.65820616057611e-01 +-1.29000000000000e+02 7.28158578773145e-01 8.03373447502757e-01 4.62415041486993e-01 +-1.26000000000000e+02 6.77550977128655e-01 8.83431815207762e-01 4.63867321318658e-01 +-1.23000000000000e+02 6.26943375484165e-01 9.63490182912767e-01 4.65312288958091e-01 +-1.20000000000000e+02 5.76335773839676e-01 1.04354855061777e+00 4.66747303916733e-01 +-1.17000000000000e+02 5.20429108941060e-01 1.11098335595762e+00 4.69795243673689e-01 +-1.14000000000000e+02 4.64482153815715e-01 1.17832218090141e+00 4.72851695274689e-01 +-1.11000000000000e+02 4.08535198690369e-01 1.24566100584521e+00 4.75903410547741e-01 +-1.08000000000000e+02 3.50413890909161e-01 1.29957716989351e+00 4.77676796078037e-01 +-1.05000000000000e+02 2.91218233756012e-01 1.34686118654661e+00 4.78819222024601e-01 +-1.02000000000000e+02 2.32022576602863e-01 1.39414520319971e+00 4.79960009958320e-01 +-9.90000000000000e+01 1.73294357086687e-01 1.43324563097268e+00 4.79724555018864e-01 +-9.60000000000000e+01 1.15527975775428e-01 1.45550683182930e+00 4.76660084980655e-01 +-9.30000000000000e+01 5.77615944641683e-02 1.47776803268593e+00 4.73594972833232e-01 +-9.00000000000000e+01 -4.79966307054429e-06 1.49985602611511e+00 4.70490764069964e-01 +-8.70000000000000e+01 -5.77744756800396e-02 1.47758942720801e+00 4.57560199487703e-01 +-8.40000000000000e+01 -1.15544151697006e-01 1.45532282830090e+00 4.44627850252635e-01 +-8.10000000000000e+01 -1.73313827713972e-01 1.43305622939380e+00 4.31693386741861e-01 +-7.80000000000000e+01 -2.32028076714378e-01 1.39423878188320e+00 4.16987339989663e-01 +-7.50000000000000e+01 -2.91225384976474e-01 1.34695714913023e+00 4.01375754783293e-01 +-7.20000000000000e+01 -3.50422693238570e-01 1.29967551637726e+00 3.85763675768464e-01 +-6.90000000000000e+01 -4.08518275894676e-01 1.24560129107165e+00 3.69916635889759e-01 +-6.60000000000000e+01 -4.64460671538438e-01 1.17825178017315e+00 3.53610887969093e-01 +-6.30000000000000e+01 -5.20403067182200e-01 1.11090226927466e+00 3.37304558249135e-01 +-6.00000000000000e+01 -5.76345462825962e-01 1.04355275837616e+00 3.20997652305595e-01 +-5.70000000000000e+01 -6.26965667471532e-01 9.63528832471544e-01 3.05463339844949e-01 +-5.40000000000000e+01 -6.77565715707801e-01 8.83456905528148e-01 2.89928671006114e-01 +-5.10000000000000e+01 -7.28165763944071e-01 8.03384978584751e-01 2.74391050543816e-01 +-4.80000000000000e+01 -7.76796584124150e-01 7.20775527136821e-01 2.59479192376652e-01 +-4.50000000000000e+01 -8.24445780641332e-01 6.36901166786642e-01 2.44878856242198e-01 +-4.20000000000000e+01 -8.72094977158514e-01 5.53026806436462e-01 2.30277048292931e-01 +-3.90000000000000e+01 -9.22523679943852e-01 4.71028947522953e-01 2.14916816539736e-01 +-3.60000000000000e+01 -9.78526568259005e-01 3.92794335080517e-01 1.98033691327094e-01 +-3.30000000000000e+01 -1.03452945657416e+00 3.14559722638080e-01 1.81142378807190e-01 +-3.00000000000000e+01 -1.09053282235166e+00 2.36325735790942e-01 1.64238763513243e-01 +-2.93939393939394e+01 -1.10596376535983e+00 2.25929370482640e-01 1.56046628292652e-01 +-2.87878787878788e+01 -1.12137858462615e+00 2.15543723752543e-01 1.48573970849958e-01 +-2.81818181818182e+01 -1.13677585496058e+00 2.05175187152920e-01 1.41244189652330e-01 +-2.75757575757576e+01 -1.15215397810908e+00 1.94836246766825e-01 1.33856551782764e-01 +-2.69696969696970e+01 -1.16751115566181e+00 1.84429280623342e-01 1.26414526734356e-01 +-2.63636363636364e+01 -1.18284535670744e+00 1.73905391868916e-01 1.18921312029668e-01 +-2.57575757575758e+01 -1.19815427900560e+00 1.63370865765694e-01 1.11379859357927e-01 +-2.51515151515151e+01 -1.21343530210926e+00 1.52817992619712e-01 1.03792897754832e-01 +-2.45454545454545e+01 -1.22868543042048e+00 1.42229239000865e-01 9.61629542081278e-02 +-2.39393939393939e+01 -1.24390122356387e+00 1.31594778051068e-01 8.84923720164302e-02 +-2.33333333333333e+01 -1.25907871065514e+00 1.21196803920178e-01 8.07833271819933e-02 +-2.27272727272727e+01 -1.27421328394500e+00 1.10798829789288e-01 7.30378430787569e-02 +-2.21212121212121e+01 -1.28929956580741e+00 1.00400855658398e-01 6.52578036037269e-02 +-2.15151515151515e+01 -1.30433124093878e+00 9.00028815275083e-02 5.74449649915509e-02 +-2.09090909090909e+01 -1.31930084266850e+00 7.96049073966185e-02 4.96009664481768e-02 +-2.03030303030303e+01 -1.33419947804097e+00 6.92069332657286e-02 4.17273397390486e-02 +-1.96969696969697e+01 -1.34808835485971e+00 6.05275041349862e-02 1.76467818664420e-02 +-1.90909090909091e+01 -1.36455353578925e+00 5.44795104834536e-02 -6.71852672889120e-03 +-1.84848484848485e+01 -1.36784528302795e+00 5.08223080553663e-02 -9.80155265100261e-03 +-1.78787878787879e+01 -1.36980102163088e+00 4.78124075815872e-02 -1.06297889700539e-02 +-1.72727272727273e+01 -1.37063887435323e+00 4.46474531215355e-02 -1.15270462248665e-02 +-1.66666666666667e+01 -1.37106778628370e+00 4.15263076265153e-02 -1.21946128339526e-02 +-1.60606060606061e+01 -1.36606090481308e+00 3.86872342592484e-02 -1.28313994537424e-02 +-1.54545454545455e+01 -1.35697948171999e+00 3.60245176437627e-02 -1.33543813203428e-02 +-1.48484848484848e+01 -1.34635225441911e+00 3.33726369271391e-02 -1.37969711356774e-02 +-1.42424242424242e+01 -1.33487090668367e+00 3.07504695951165e-02 -1.41301834191680e-02 +-1.36363636363636e+01 -1.32121920195386e+00 2.82394723158777e-02 -1.43275410445316e-02 +-1.30303030303030e+01 -1.31136784718832e+00 2.57280233720212e-02 -1.38284137582419e-02 +-1.24242424242424e+01 -1.29153367098417e+00 2.32897310710584e-02 -1.46675909078366e-02 +-1.18181818181818e+01 -1.24406372861955e+00 2.10169595407405e-02 -1.88892218644063e-02 +-1.12121212121212e+01 -1.18856677924960e+00 1.90007689604606e-02 -2.38836281416050e-02 +-1.06060606060606e+01 -1.12286937631463e+00 1.69897307886586e-02 -2.98518125888211e-02 +-1.00000000000000e+01 -1.03508472443305e+00 1.46330037169737e-02 -3.85587061502747e-02 +-9.39393939393939e+00 -9.33113254659774e-01 1.21017268052552e-02 -4.86290784124492e-02 +-8.78787878787879e+00 -8.31722951289084e-01 1.00621918513789e-02 -5.86543891941529e-02 +-8.18181818181818e+00 -7.35260225798723e-01 8.88311844278353e-03 -6.51025463873667e-02 +-7.57575757575758e+00 -6.44259699191519e-01 8.21731046800666e-03 -6.97664458735951e-02 +-6.96969696969697e+00 -5.55375776737587e-01 7.61933347831599e-03 -7.42673625999078e-02 +-6.36363636363636e+00 -4.70375088263457e-01 7.37997267261713e-03 -7.75438688927668e-02 +-5.75757575757576e+00 -3.85852425164865e-01 7.17193512174024e-03 -8.06295491657531e-02 +-5.15151515151515e+00 -3.02022154479669e-01 7.09797532959887e-03 -8.39254757386956e-02 +-4.54545454545454e+00 -2.18508963961002e-01 7.00771242725667e-03 -8.73619427283024e-02 +-3.93939393939394e+00 -1.35747174488018e-01 6.96440097243678e-03 -9.05531518241192e-02 +-3.33333333333333e+00 -5.31517176519253e-02 6.89398700161851e-03 -9.36157785282439e-02 +-2.72727272727273e+00 2.99650456824806e-02 6.86061447456203e-03 -9.65095314675673e-02 +-2.12121212121212e+00 1.13768465504698e-01 6.83042988019021e-03 -9.93603442165880e-02 +-1.51515151515152e+00 1.96909980581474e-01 6.84656634974026e-03 -1.02111290038114e-01 +-9.09090909090912e-01 2.79980350891266e-01 6.86005424280926e-03 -1.04802553264818e-01 +-3.03030303030302e-01 3.62510149637827e-01 6.90829616191558e-03 -1.07372065436588e-01 + 3.03030303030302e-01 4.44777081351514e-01 6.97963534830589e-03 -1.09856189313177e-01 + 9.09090909090912e-01 5.26700011781365e-01 7.06548030066741e-03 -1.12192119798239e-01 + 1.51515151515152e+00 6.08395034968629e-01 7.17249113056522e-03 -1.14527817338588e-01 + 2.12121212121212e+00 6.89632068314717e-01 7.29258551223166e-03 -1.16718559288959e-01 + 2.72727272727273e+00 7.70602059173382e-01 7.43916459440667e-03 -1.18903515138770e-01 + 3.33333333333333e+00 8.51173198862612e-01 7.61175811427631e-03 -1.20982188709608e-01 + 3.93939393939394e+00 9.31378061988539e-01 7.76881708455258e-03 -1.22954324213515e-01 + 4.54545454545455e+00 1.01115375978573e+00 7.97673350328440e-03 -1.24842220864836e-01 + 5.15151515151515e+00 1.09051581848002e+00 8.16858133006731e-03 -1.26611620300018e-01 + 5.75757575757576e+00 1.16937081946309e+00 8.40130284298980e-03 -1.28278990219422e-01 + 6.36363636363637e+00 1.24756791333567e+00 8.65351536292232e-03 -1.29804348969634e-01 + 6.96969696969697e+00 1.32537671120688e+00 8.89869799592243e-03 -1.31299399170032e-01 + 7.57575757575757e+00 1.40213029166652e+00 9.15693705876970e-03 -1.32543273904122e-01 + 8.18181818181818e+00 1.47830532378884e+00 9.51619537455681e-03 -1.33700513080358e-01 + 8.78787878787879e+00 1.55317537956001e+00 9.93488690778408e-03 -1.34667582122490e-01 + 9.39393939393939e+00 1.62670459703520e+00 1.03989463672260e-02 -1.35393113082776e-01 + 1.00000000000000e+01 1.69830751319440e+00 1.08444316029759e-02 -1.35816293571190e-01 + 1.06060606060606e+01 1.76877255501024e+00 1.12648851581955e-02 -1.35985357962049e-01 + 1.12121212121212e+01 1.83639285936188e+00 1.17376780711566e-02 -1.35683550086568e-01 + 1.18181818181818e+01 1.89992737741549e+00 1.22696303036888e-02 -1.34706218186436e-01 + 1.24242424242424e+01 1.95959202217218e+00 1.27881140984431e-02 -1.32956524501631e-01 + 1.30303030303030e+01 2.00951428520483e+00 1.33645899618378e-02 -1.29520722814429e-01 + 1.36363636363636e+01 2.05052955304492e+00 1.41907164767953e-02 -1.25406765147815e-01 + 1.42424242424242e+01 2.07685737990946e+00 1.53463249677883e-02 -1.19852490394472e-01 + 1.48484848484848e+01 2.10120629245024e+00 1.69649193078922e-02 -1.15204460320821e-01 + 1.54545454545455e+01 2.12170416920575e+00 1.91823996731765e-02 -1.11395122396924e-01 + 1.60606060606061e+01 2.13400370760062e+00 2.21604308317452e-02 -1.07926775712432e-01 + 1.66666666666667e+01 2.13904069650236e+00 2.58400281405966e-02 -1.05012466289416e-01 + 1.72727272727273e+01 2.13622469506786e+00 3.02731113613207e-02 -1.02554970065037e-01 + 1.78787878787879e+01 2.12277196009408e+00 3.56799328662465e-02 -1.00482811707263e-01 + 1.84848484848485e+01 2.09818870806726e+00 4.21785808324350e-02 -9.89889507420874e-02 + 1.90909090909091e+01 2.06638330513327e+00 4.94754552734901e-02 -9.82320759569005e-02 + 1.96969696969697e+01 2.03100833817823e+00 5.72042195999409e-02 -9.81879936763172e-02 + 2.03030303030303e+01 1.99076819448811e+00 6.57540063244786e-02 -9.91065242153195e-02 + 2.09090909090909e+01 1.95017816151607e+00 7.45469954069896e-02 -1.00871195519317e-01 + 2.15151515151515e+01 1.91332200435778e+00 8.28794145740178e-02 -1.03374147672747e-01 + 2.21212121212121e+01 1.87738433955415e+00 9.08976811870627e-02 -1.07245127437830e-01 + 2.27272727272727e+01 1.84879614880717e+00 9.79718347801640e-02 -1.11585383728069e-01 + 2.33333333333333e+01 1.82189183569736e+00 1.04635827147152e-01 -1.17188262177170e-01 + 2.39393939393939e+01 1.79190321182262e+00 1.11530803930768e-01 -1.23652443877545e-01 + 2.45454545454545e+01 1.76670452606483e+00 1.17886376521071e-01 -1.31029678057192e-01 + 2.51515151515151e+01 1.74416299025168e+00 1.25889485644292e-01 -1.38267711785939e-01 + 2.57575757575758e+01 1.72088063882533e+00 1.39693967623994e-01 -1.44897032389677e-01 + 2.63636363636364e+01 1.69759828737748e+00 1.53498449613210e-01 -1.51506348186395e-01 + 2.69696969696970e+01 1.67431593590619e+00 1.67302931612100e-01 -1.58093843231019e-01 + 2.75757575757576e+01 1.65103358440928e+00 1.81107413620825e-01 -1.64657474929487e-01 + 2.81818181818182e+01 1.62775123288426e+00 1.94911895639551e-01 -1.71194937539658e-01 + 2.87878787878788e+01 1.60446888132835e+00 2.08716377668447e-01 -1.77703618384221e-01 + 2.93939393939394e+01 1.58118652973837e+00 2.22520859707686e-01 -1.84579969422859e-01 + 3.00000000000000e+01 1.55790417811069e+00 2.36325341757446e-01 -1.91750114525704e-01 + 3.30000000000000e+01 1.47789922813721e+00 3.14559722638081e-01 -2.11137767248342e-01 + 3.60000000000000e+01 1.39789510231040e+00 3.92794335080517e-01 -2.30503300952031e-01 + 3.90000000000000e+01 1.31789097648360e+00 4.71028947522953e-01 -2.49856280292673e-01 + 4.20000000000000e+01 1.24584997147109e+00 5.53026806436462e-01 -2.65388109129354e-01 + 4.50000000000000e+01 1.17777968901509e+00 6.36901166786642e-01 -2.79016034194580e-01 + 4.80000000000000e+01 1.10970940655908e+00 7.20775527136821e-01 -2.92642194165906e-01 + 5.10000000000000e+01 1.04023680525561e+00 8.03384978584751e-01 -3.05977941196896e-01 + 5.40000000000000e+01 9.67951022360722e-01 8.83456905528148e-01 -3.18731511336043e-01 + 5.70000000000000e+01 8.95665239465834e-01 9.63528832471544e-01 -3.31480577352429e-01 + 6.00000000000000e+01 8.23350661699793e-01 1.04355275837616e+00 -3.44225639753355e-01 + 6.30000000000000e+01 7.43432953745213e-01 1.11090226927466e+00 -3.57273780324781e-01 + 6.60000000000000e+01 6.63515245790634e-01 1.17825178017315e+00 -3.70320241715248e-01 + 6.90000000000000e+01 5.83597537836053e-01 1.24560129107165e+00 -3.83364946590135e-01 + 7.20000000000000e+01 5.00603848873254e-01 1.29967551637726e+00 -3.96379192295479e-01 + 7.50000000000000e+01 4.16036266411718e-01 1.34695714913023e+00 -4.09378346251456e-01 + 7.80000000000000e+01 3.31468683950182e-01 1.39423878188320e+00 -4.22377356272451e-01 + 8.10000000000000e+01 2.47600727257638e-01 1.43305622939380e+00 -4.34984213806133e-01 + 8.40000000000000e+01 1.65100817205155e-01 1.45532282830090e+00 -4.46822989975735e-01 + 8.70000000000000e+01 8.26009071526720e-02 1.47758942720801e+00 -4.58659828199495e-01 + 9.00000000000000e+01 1.00997100187753e-04 1.49985602611511e+00 -4.70495024667977e-01 + 9.30000000000000e+01 -5.77615944641683e-02 1.47776803268593e+00 -4.73594972833232e-01 + 9.60000000000000e+01 -1.15527975775428e-01 1.45550683182930e+00 -4.76660084980655e-01 + 9.90000000000000e+01 -1.73294357086687e-01 1.43324563097268e+00 -4.79724555018864e-01 + 1.02000000000000e+02 -2.32022576602863e-01 1.39414520319971e+00 -4.79960009958320e-01 + 1.05000000000000e+02 -2.91218233756012e-01 1.34686118654661e+00 -4.78819222024601e-01 + 1.08000000000000e+02 -3.50413890909161e-01 1.29957716989351e+00 -4.77676796078037e-01 + 1.11000000000000e+02 -4.08535198690370e-01 1.24566100584521e+00 -4.75903410547741e-01 + 1.14000000000000e+02 -4.64482153815715e-01 1.17832218090141e+00 -4.72851695274689e-01 + 1.17000000000000e+02 -5.20429108941060e-01 1.11098335595762e+00 -4.69795243673689e-01 + 1.20000000000000e+02 -5.76335773839676e-01 1.04354855061777e+00 -4.66747303916733e-01 + 1.23000000000000e+02 -6.26943375484166e-01 9.63490182912766e-01 -4.65312288958091e-01 + 1.26000000000000e+02 -6.77550977128655e-01 8.83431815207762e-01 -4.63867321318658e-01 + 1.29000000000000e+02 -7.28158578773145e-01 8.03373447502757e-01 -4.62415041486993e-01 + 1.32000000000000e+02 -7.76797107524470e-01 7.20775131521096e-01 -4.65820616057611e-01 + 1.35000000000000e+02 -8.24444997324877e-01 6.36898969653228e-01 -4.71659928786662e-01 + 1.38000000000000e+02 -8.72092887125284e-01 5.53022807785360e-01 -4.77489007247133e-01 + 1.41000000000000e+02 -9.22591674373379e-01 4.71071974581851e-01 -4.88859002410926e-01 + 1.44000000000000e+02 -9.78572186547586e-01 3.92823176377510e-01 -5.10884179445608e-01 + 1.47000000000000e+02 -1.03455269872179e+00 3.14574378173169e-01 -5.32898508320314e-01 + 1.50000000000000e+02 -1.09053321089600e+00 2.36325579968827e-01 -5.54905877790623e-01 + 1.53000000000000e+02 -1.05707102609539e+00 1.72890983084479e-01 -5.66730936285759e-01 + 1.56000000000000e+02 -1.02359838227526e+00 1.09458118505016e-01 -5.78552472188209e-01 + 1.59000000000000e+02 -9.90125738455126e-01 4.60252539255532e-02 -5.90372153972415e-01 + 1.62000000000000e+02 -8.81994756535153e-01 1.96952668723097e-02 -5.72350690622662e-01 + 1.65000000000000e+02 -7.34995630350738e-01 1.26815415122548e-02 -5.38794068557136e-01 + 1.68000000000000e+02 -5.87996504166322e-01 5.66781615219987e-03 -5.05237446471571e-01 + 1.71000000000000e+02 -4.40997378039216e-01 1.00000000000000e-03 -4.34465497361615e-01 + 1.74000000000000e+02 -2.93998252026145e-01 1.00000000000000e-03 -2.89643664907744e-01 + 1.77000000000000e+02 -1.46999126013072e-01 1.00000000000000e-03 -1.44821832453871e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_18.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_18.dat new file mode 100644 index 000000000..a352edc22 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_18.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF18_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +12.187681 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.945536 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.242424 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.242424 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.847090 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.287196 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006672 Cd0 ! 2D drag coefficient value at 0-lift. +-0.094887 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.43360285685417e-01 1.00000000000000e-03 1.17213219683625e-01 +-1.74000000000000e+02 2.86720571370836e-01 1.00000000000000e-03 2.34426439367251e-01 +-1.71000000000000e+02 4.30080857056253e-01 1.00000000000000e-03 3.51639659050876e-01 +-1.68000000000000e+02 5.73441142737890e-01 5.87599460246747e-03 4.28227076798844e-01 +-1.65000000000000e+02 7.16801428417630e-01 1.32025228725879e-02 4.84397142696577e-01 +-1.62000000000000e+02 8.60161714097367e-01 2.05290511427083e-02 5.40567208567233e-01 +-1.59000000000000e+02 9.65979153104477e-01 4.70563669186198e-02 5.74126490802310e-01 +-1.56000000000000e+02 9.99683899489944e-01 1.10464756193631e-01 5.64253313566535e-01 +-1.53000000000000e+02 1.03338864587541e+00 1.73873145468642e-01 5.54377611092462e-01 +-1.50000000000000e+02 1.06708322680395e+00 2.37283266020256e-01 5.44497486004765e-01 +-1.47000000000000e+02 1.01384557845992e+00 3.15498794289743e-01 5.23956538550476e-01 +-1.44000000000000e+02 9.60607930115885e-01 3.93714322559230e-01 5.03406112652956e-01 +-1.41000000000000e+02 9.07370281771853e-01 4.71929850828718e-01 4.82840911975496e-01 +-1.38000000000000e+02 8.58961910841517e-01 5.53842378747644e-01 4.72471792439836e-01 +-1.35000000000000e+02 8.13065116985633e-01 6.37677616581194e-01 4.67404622320524e-01 +-1.32000000000000e+02 7.67168323129750e-01 7.21512854414746e-01 4.62323513517926e-01 +-1.29000000000000e+02 7.20088500804912e-01 8.04068093234109e-01 4.59549294955102e-01 +-1.26000000000000e+02 6.70657196855105e-01 8.84079104048125e-01 4.61388168238959e-01 +-1.23000000000000e+02 6.21225892905299e-01 9.64090114862141e-01 4.63217082596016e-01 +-1.20000000000000e+02 5.71794588955493e-01 1.04410112567616e+00 4.65032441781613e-01 +-1.17000000000000e+02 5.16662317203190e-01 1.11148359714652e+00 4.68273942934823e-01 +-1.14000000000000e+02 4.61486699433992e-01 1.17877005037951e+00 4.71521177811870e-01 +-1.11000000000000e+02 4.06311081664794e-01 1.24605650361250e+00 4.74761961990981e-01 +-1.08000000000000e+02 3.48741145254398e-01 1.29991798992972e+00 4.76660563948299e-01 +-1.05000000000000e+02 2.89988174104230e-01 1.34714618944530e+00 4.77896897160518e-01 +-1.02000000000000e+02 2.31235202954063e-01 1.39437438896087e+00 4.79130999461747e-01 +-9.90000000000000e+01 1.72853036059050e-01 1.43341841801003e+00 4.78975921572340e-01 +-9.60000000000000e+01 1.15233866558647e-01 1.45562202342299e+00 4.75966241332722e-01 +-9.30000000000000e+01 5.76146970582430e-02 1.47782562883595e+00 4.72955686564858e-01 +-9.00000000000000e+01 -4.48350386038226e-06 1.49985647436655e+00 4.69905825320743e-01 +-8.70000000000000e+01 -5.76264967237679e-02 1.47764733392684e+00 4.57042983707359e-01 +-8.40000000000000e+01 -1.15248509943671e-01 1.45543819348727e+00 4.44177711464952e-01 +-8.10000000000000e+01 -1.72870523163575e-01 1.43322905304771e+00 4.31309559659710e-01 +-7.80000000000000e+01 -2.31241954289439e-01 1.39446797826473e+00 4.16645195976375e-01 +-7.50000000000000e+01 -2.89996641412138e-01 1.34724216298669e+00 4.01062864380603e-01 +-7.20000000000000e+01 -3.48751328534836e-01 1.30001634770864e+00 3.85479860236552e-01 +-6.90000000000000e+01 -4.06292923351121e-01 1.24599677232046e+00 3.69645473107682e-01 +-6.60000000000000e+01 -4.61463678654608e-01 1.17869962949209e+00 3.53320461743802e-01 +-6.30000000000000e+01 -5.16634433958094e-01 1.11140248666372e+00 3.36994657991487e-01 +-6.00000000000000e+01 -5.71805189261580e-01 1.04410534383535e+00 3.20668069444639e-01 +-5.70000000000000e+01 -6.21250025769698e-01 9.64128786779169e-01 3.05073129375774e-01 +-5.40000000000000e+01 -6.70673176854857e-01 8.84104209750962e-01 2.89476489765932e-01 +-5.10000000000000e+01 -7.20096327940016e-01 8.04079632722755e-01 2.73875830157563e-01 +-4.80000000000000e+01 -7.67166682662459e-01 7.21513239506994e-01 2.58908807484961e-01 +-4.50000000000000e+01 -8.13064212035211e-01 6.37679798064597e-01 2.44257084213680e-01 +-4.20000000000000e+01 -8.58961741407963e-01 5.53846356622198e-01 2.29603356386787e-01 +-3.90000000000000e+01 -9.07308316459552e-01 4.71886866658435e-01 2.14255108006852e-01 +-3.60000000000000e+01 -9.60566351917335e-01 3.93685509329754e-01 1.97511431716466e-01 +-3.30000000000000e+01 -1.01382438737512e+00 3.15484152001073e-01 1.80756604626006e-01 +-3.00000000000000e+01 -1.06708297040041e+00 2.37283416389961e-01 1.63985243587786e-01 +-2.93939393939394e+01 -1.08256228411381e+00 2.26862086818030e-01 1.56008142482633e-01 +-2.87878787878788e+01 -1.09801963790608e+00 2.16456228817732e-01 1.48781963934181e-01 +-2.81818181818182e+01 -1.11345309072274e+00 2.06074834097755e-01 1.41720218357764e-01 +-2.75757575757576e+01 -1.12886046580279e+00 1.95735335762896e-01 1.34608585127903e-01 +-2.69696969696970e+01 -1.14423931378064e+00 1.85305443492502e-01 1.27450055859278e-01 +-2.63636363636364e+01 -1.15958686863259e+00 1.74719663351310e-01 1.20247387656509e-01 +-2.57575757575758e+01 -1.17489999479506e+00 1.64124711020420e-01 1.13003125651287e-01 +-2.51515151515151e+01 -1.19017512331921e+00 1.53513938717860e-01 1.05719622989456e-01 +-2.45454545454545e+01 -1.20540817431496e+00 1.42872228019852e-01 9.83990585984351e-02 +-2.39393939393939e+01 -1.22059446212228e+00 1.32191105592653e-01 9.10434530173495e-02 +-2.33333333333333e+01 -1.23572857854832e+00 1.21713896941874e-01 8.36546825319015e-02 +-2.27272727272727e+01 -1.25080424801435e+00 1.11236688291094e-01 7.62344918220824e-02 +-2.21212121212121e+01 -1.26581414639892e+00 1.00759479640314e-01 6.87845053021180e-02 +-2.15151515151515e+01 -1.28074967249951e+00 9.02822709895346e-02 6.13062373077373e-02 +-2.09090909090909e+01 -1.29560065699566e+00 7.98050623387550e-02 5.38011012651797e-02 +-2.03030303030303e+01 -1.31035498802120e+00 6.93278536879754e-02 4.62704179587399e-02 +-1.96969696969697e+01 -1.32433693523458e+00 6.05267412531457e-02 2.30598940147371e-02 +-1.90909090909091e+01 -1.34332480243765e+00 5.42786356792088e-02 -6.34710555394935e-03 +-1.84848484848485e+01 -1.34491264999373e+00 5.06969879454639e-02 -1.03630879179400e-02 +-1.78787878787879e+01 -1.34454168337230e+00 4.77772363024901e-02 -1.13346854285580e-02 +-1.72727272727273e+01 -1.34364747300754e+00 4.47803293830876e-02 -1.22955354543795e-02 +-1.66666666666667e+01 -1.34258279607318e+00 4.19157388273408e-02 -1.29645240847646e-02 +-1.60606060606061e+01 -1.33638619177509e+00 3.92875652536166e-02 -1.36105880128537e-02 +-1.54545454545455e+01 -1.32668508951839e+00 3.67800825882064e-02 -1.42029358805888e-02 +-1.48484848484848e+01 -1.31533579471811e+00 3.42630416829597e-02 -1.47152678047273e-02 +-1.42424242424242e+01 -1.30293347826060e+00 3.17734260260913e-02 -1.51270449820697e-02 +-1.36363636363636e+01 -1.28845297147112e+00 2.93712900043859e-02 -1.54115823227369e-02 +-1.30303030303030e+01 -1.27640805969390e+00 2.69731701322528e-02 -1.51483362108603e-02 +-1.24242424242424e+01 -1.25637899798335e+00 2.46274362520530e-02 -1.59053949773849e-02 +-1.18181818181818e+01 -1.21529042084999e+00 2.24140179024962e-02 -1.93061024626252e-02 +-1.12121212121212e+01 -1.17062852249537e+00 2.03836431565304e-02 -2.34070801641639e-02 +-1.06060606060606e+01 -1.11513183831690e+00 1.82134875791933e-02 -2.87278415317085e-02 +-1.00000000000000e+01 -1.03048690636424e+00 1.54475640648143e-02 -3.78392287870634e-02 +-9.39393939393939e+00 -9.29365810467843e-01 1.23336969303758e-02 -4.88511141632854e-02 +-8.78787878787879e+00 -8.26984080273622e-01 9.93565170816341e-03 -5.95785579204147e-02 +-8.18181818181818e+00 -7.30802936347316e-01 8.71198270019705e-03 -6.58236406636858e-02 +-7.57575757575758e+00 -6.39973020649550e-01 8.01539124820457e-03 -7.02988471592443e-02 +-6.96969696969697e+00 -5.51459649994303e-01 7.35349322841352e-03 -7.47056291847607e-02 +-6.36363636363636e+00 -4.67142767295192e-01 7.11093548155147e-03 -7.77815453823309e-02 +-5.75757575757576e+00 -3.83313418454291e-01 6.90527264396357e-03 -8.06759536312937e-02 +-5.15151515151515e+00 -3.00093608361413e-01 6.85993707624535e-03 -8.38378322606214e-02 +-4.54545454545454e+00 -2.17199346155527e-01 6.79256405969054e-03 -8.71250615287000e-02 +-3.93939393939394e+00 -1.35000749269746e-01 6.76202163828141e-03 -9.01817883355465e-02 +-3.33333333333333e+00 -5.29099154653349e-02 6.69280937855733e-03 -9.31174186278051e-02 +-2.72727272727273e+00 2.97791408942764e-02 6.66002555706692e-03 -9.58832396771780e-02 +-2.12121212121212e+00 1.13174443653321e-01 6.63204742587025e-03 -9.86107405866935e-02 +-1.51515151515152e+00 1.95914751758764e-01 6.65120881959236e-03 -1.01241851965671e-01 +-9.09090909090912e-01 2.78587595312176e-01 6.66328933024735e-03 -1.03817729306459e-01 +-3.03030303030302e-01 3.60719577667586e-01 6.71398320060647e-03 -1.06284010385682e-01 + 3.03030303030302e-01 4.42614629525554e-01 6.78424076657428e-03 -1.08663609199901e-01 + 9.09090909090912e-01 5.24193445467654e-01 6.86888322074613e-03 -1.10904310791081e-01 + 1.51515151515152e+00 6.05508735619783e-01 6.97946438523464e-03 -1.13135509793307e-01 + 2.12121212121212e+00 6.86446675172365e-01 7.09648392276210e-03 -1.15248268644708e-01 + 2.72727272727273e+00 7.67080354962266e-01 7.24512762033056e-03 -1.17348621386612e-01 + 3.33333333333333e+00 8.47312744381881e-01 7.42390273010838e-03 -1.19332331084855e-01 + 3.93939393939394e+00 9.27213149372059e-01 7.58738758974338e-03 -1.21217815955518e-01 + 4.54545454545455e+00 1.00666588514257e+00 7.80050755163199e-03 -1.23014493048402e-01 + 5.15151515151515e+00 1.08570813802416e+00 8.00508257010753e-03 -1.24705861972004e-01 + 5.75757575757576e+00 1.16422491576542e+00 8.24980308269815e-03 -1.26288844768311e-01 + 6.36363636363637e+00 1.24209607369597e+00 8.51183008703203e-03 -1.27731199926048e-01 + 6.96969696969697e+00 1.31944101006255e+00 8.77979347381774e-03 -1.29127372136163e-01 + 7.57575757575757e+00 1.39590779598491e+00 9.03442432694617e-03 -1.30296410295357e-01 + 8.18181818181818e+00 1.47158907062669e+00 9.43885751378840e-03 -1.31343318435541e-01 + 8.78787878787879e+00 1.54597533290582e+00 9.89751477082908e-03 -1.32200998596659e-01 + 9.39393939393939e+00 1.61875913550178e+00 1.04078881660177e-02 -1.32782911809525e-01 + 1.00000000000000e+01 1.68963111767551e+00 1.08856829862109e-02 -1.33069696909401e-01 + 1.06060606060606e+01 1.75921869977904e+00 1.13470052539775e-02 -1.33076959861113e-01 + 1.12121212121212e+01 1.82575841354767e+00 1.18583368099573e-02 -1.32596417415734e-01 + 1.18181818181818e+01 1.88778459656832e+00 1.24225169005436e-02 -1.31328249024802e-01 + 1.24242424242424e+01 1.94513450161153e+00 1.29679727410201e-02 -1.29125675186862e-01 + 1.30303030303030e+01 1.99012284327075e+00 1.35829007188561e-02 -1.24768392753199e-01 + 1.36363636363636e+01 2.02801367622860e+00 1.45198500635890e-02 -1.20368662670950e-01 + 1.42424242424242e+01 2.05348143674753e+00 1.58424496627245e-02 -1.15196271157177e-01 + 1.48484848484848e+01 2.07637128718706e+00 1.76678420652499e-02 -1.10927293545709e-01 + 1.54545454545455e+01 2.09436678119082e+00 2.01301722826748e-02 -1.07417483887016e-01 + 1.60606060606061e+01 2.10312301360313e+00 2.33916064732486e-02 -1.04178604103929e-01 + 1.66666666666667e+01 2.10381317365075e+00 2.73922643090108e-02 -1.01452840992378e-01 + 1.72727272727273e+01 2.09656309347750e+00 3.21749956782253e-02 -9.92670095956669e-02 + 1.78787878787879e+01 2.07906521508178e+00 3.79047895096952e-02 -9.75153696864153e-02 + 1.84848484848485e+01 2.05130888198368e+00 4.46502369280183e-02 -9.63477747100706e-02 + 1.90909090909091e+01 2.01806145800162e+00 5.20357443614008e-02 -9.59892305971781e-02 + 1.96969696969697e+01 1.98276337783853e+00 5.97106458295489e-02 -9.63407163457154e-02 + 2.03030303030303e+01 1.94429569496012e+00 6.79918936546815e-02 -9.76222492620742e-02 + 2.09090909090909e+01 1.90598008456052e+00 7.64198657484864e-02 -9.98525689706595e-02 + 2.15151515151515e+01 1.87086649594430e+00 8.44440468613945e-02 -1.02671602996889e-01 + 2.21212121212121e+01 1.83663289679228e+00 9.21624981133108e-02 -1.06879323396357e-01 + 2.27272727272727e+01 1.80910517091025e+00 9.90053877082745e-02 -1.11532767764138e-01 + 2.33333333333333e+01 1.78215968630684e+00 1.05555295340264e-01 -1.17423846099087e-01 + 2.39393939393939e+01 1.75245267247282e+00 1.12312287105045e-01 -1.24143936187544e-01 + 2.45454545454545e+01 1.72533943706335e+00 1.18753771509694e-01 -1.32010310166214e-01 + 2.51515151515151e+01 1.70115280634447e+00 1.26889945612344e-01 -1.39585396111875e-01 + 2.57575757575758e+01 1.67905923602308e+00 1.40689080618818e-01 -1.46002254391878e-01 + 2.63636363636364e+01 1.65696566567242e+00 1.54488215639497e-01 -1.52401863271829e-01 + 2.69696969696970e+01 1.63487209528983e+00 1.68287350674615e-01 -1.58782656929925e-01 + 2.75757575757576e+01 1.61277852487233e+00 1.82086485724416e-01 -1.65142874113376e-01 + 2.81818181818182e+01 1.59068495441657e+00 1.95885620789146e-01 -1.71480526666610e-01 + 2.87878787878788e+01 1.56859138391873e+00 2.09684755869059e-01 -1.77793361775286e-01 + 2.93939393939394e+01 1.54649781337449e+00 2.23483890964411e-01 -1.84501070028956e-01 + 3.00000000000000e+01 1.52440424277889e+00 2.37283026075468e-01 -1.91506668386425e-01 + 3.30000000000000e+01 1.44832055699116e+00 3.15484152001074e-01 -2.10694022759809e-01 + 3.60000000000000e+01 1.37223764944083e+00 3.93685509329754e-01 -2.29851402552735e-01 + 3.90000000000000e+01 1.29615474189051e+00 4.71886866658435e-01 -2.48991683782243e-01 + 4.20000000000000e+01 1.22708820550373e+00 5.53846356622199e-01 -2.64493605658979e-01 + 4.50000000000000e+01 1.16152030537952e+00 6.37679798064597e-01 -2.78183302960353e-01 + 4.80000000000000e+01 1.09595240525530e+00 7.21513239506994e-01 -2.91870596271187e-01 + 5.10000000000000e+01 1.02870904054965e+00 8.04079632722755e-01 -3.05277338865148e-01 + 5.40000000000000e+01 9.58104538591907e-01 8.84104209750962e-01 -3.18121840541213e-01 + 5.70000000000000e+01 8.87500036634160e-01 9.64128786779169e-01 -3.30960207773947e-01 + 6.00000000000000e+01 8.16864555502195e-01 1.04410534383535e+00 -3.43792527623602e-01 + 6.30000000000000e+01 7.38049190755853e-01 1.11140248666372e+00 -3.56880624397273e-01 + 6.60000000000000e+01 6.59233826009511e-01 1.17869962949209e+00 -3.69966434190552e-01 + 6.90000000000000e+01 5.80418461263168e-01 1.24599677232046e+00 -3.83049851676638e-01 + 7.20000000000000e+01 4.98216183677455e-01 1.30001634770864e+00 -3.96063944783621e-01 + 7.50000000000000e+01 4.14280917466509e-01 1.34724216298669e+00 -4.09043238476050e-01 + 7.80000000000000e+01 3.30345651255564e-01 1.39446797826473e+00 -4.22022336134526e-01 + 8.10000000000000e+01 2.46967423446962e-01 1.43322905304771e+00 -4.34594391679397e-01 + 8.40000000000000e+01 1.64678427265447e-01 1.45543819348727e+00 -4.46368792011441e-01 + 8.70000000000000e+01 8.23894310839330e-02 1.47764733392684e+00 -4.58140552935196e-01 + 9.00000000000000e+01 1.00434902416704e-04 1.49985647436655e+00 -4.69910077850911e-01 + 9.30000000000000e+01 -5.76146970582430e-02 1.47782562883595e+00 -4.72955686564858e-01 + 9.60000000000000e+01 -1.15233866558647e-01 1.45562202342299e+00 -4.75966241332722e-01 + 9.90000000000000e+01 -1.72853036059050e-01 1.43341841801003e+00 -4.78975921572340e-01 + 1.02000000000000e+02 -2.31235202954063e-01 1.39437438896087e+00 -4.79130999461747e-01 + 1.05000000000000e+02 -2.89988174104231e-01 1.34714618944530e+00 -4.77896897160518e-01 + 1.08000000000000e+02 -3.48741145254398e-01 1.29991798992972e+00 -4.76660563948299e-01 + 1.11000000000000e+02 -4.06311081664795e-01 1.24605650361250e+00 -4.74761961990981e-01 + 1.14000000000000e+02 -4.61486699433992e-01 1.17877005037951e+00 -4.71521177811870e-01 + 1.17000000000000e+02 -5.16662317203190e-01 1.11148359714652e+00 -4.68273942934823e-01 + 1.20000000000000e+02 -5.71794588955493e-01 1.04410112567616e+00 -4.65032441781613e-01 + 1.23000000000000e+02 -6.21225892905299e-01 9.64090114862141e-01 -4.63217082596016e-01 + 1.26000000000000e+02 -6.70657196855105e-01 8.84079104048125e-01 -4.61388168238959e-01 + 1.29000000000000e+02 -7.20088500804912e-01 8.04068093234108e-01 -4.59549294955102e-01 + 1.32000000000000e+02 -7.67168323129750e-01 7.21512854414745e-01 -4.62323513517926e-01 + 1.35000000000000e+02 -8.13065116985633e-01 6.37677616581194e-01 -4.67404622320524e-01 + 1.38000000000000e+02 -8.58961910841517e-01 5.53842378747643e-01 -4.72471792439836e-01 + 1.41000000000000e+02 -9.07370281771853e-01 4.71929850828718e-01 -4.82840911975496e-01 + 1.44000000000000e+02 -9.60607930115885e-01 3.93714322559230e-01 -5.03406112652956e-01 + 1.47000000000000e+02 -1.01384557845992e+00 3.15498794289743e-01 -5.23956538550476e-01 + 1.50000000000000e+02 -1.06708322680395e+00 2.37283266020255e-01 -5.44497486004766e-01 + 1.53000000000000e+02 -1.03338864587541e+00 1.73873145468643e-01 -5.55248589111316e-01 + 1.56000000000000e+02 -9.99683899489944e-01 1.10464756193631e-01 -5.65995371452425e-01 + 1.59000000000000e+02 -9.65979153104477e-01 4.70563669186198e-02 -5.76739628555237e-01 + 1.62000000000000e+02 -8.60161714097367e-01 2.05290511427083e-02 -5.60996870459400e-01 + 1.65000000000000e+02 -7.16801428417630e-01 1.32025228725879e-02 -5.31465357041999e-01 + 1.68000000000000e+02 -5.73441142737890e-01 5.87599460246747e-03 -5.01933843597306e-01 + 1.71000000000000e+02 -4.30080857056253e-01 1.00000000000000e-03 -4.33903379860941e-01 + 1.74000000000000e+02 -2.86720571370836e-01 1.00000000000000e-03 -2.89268919907294e-01 + 1.77000000000000e+02 -1.43360285685417e-01 1.00000000000000e-03 -1.44634459953647e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_19.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_19.dat new file mode 100644 index 000000000..9e59a486a --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_19.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF19_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +11.900400 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.944939 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.242424 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.242424 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.799883 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.266867 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006465 Cd0 ! 2D drag coefficient value at 0-lift. +-0.094196 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.39441520982865e-01 1.00000000000000e-03 1.17008542080698e-01 +-1.74000000000000e+02 2.78883041965731e-01 1.00000000000000e-03 2.34017084161397e-01 +-1.71000000000000e+02 4.18324562948596e-01 1.00000000000000e-03 3.51025626242096e-01 +-1.68000000000000e+02 5.57766083783760e-01 6.07526986298751e-03 4.24618080503908e-01 +-1.65000000000000e+02 6.97207604544696e-01 1.37012233681148e-02 4.76390865975805e-01 +-1.62000000000000e+02 8.36649125305630e-01 2.13271768732419e-02 5.28163651416163e-01 +-1.59000000000000e+02 9.39975047917214e-01 4.80433822056840e-02 5.59228278291823e-01 +-1.56000000000000e+02 9.73929751801008e-01 1.11428342949703e-01 5.50514792184766e-01 +-1.53000000000000e+02 1.00788445568480e+00 1.74813303693722e-01 5.41798364625255e-01 +-1.50000000000000e+02 1.04182931025710e+00 2.38199994730031e-01 5.33077040844322e-01 +-1.47000000000000e+02 9.91545525476632e-01 3.16383675913985e-01 5.14121315542285e-01 +-1.44000000000000e+02 9.41261740696170e-01 3.94567357097938e-01 4.95154549543561e-01 +-1.41000000000000e+02 8.90977955915707e-01 4.72751038281892e-01 4.76170573560034e-01 +-1.38000000000000e+02 8.44820810370954e-01 5.54626899120548e-01 4.66887422310004e-01 +-1.35000000000000e+02 8.00809818714473e-01 6.38422963124426e-01 4.62648526078093e-01 +-1.32000000000000e+02 7.56798827057992e-01 7.22219027128304e-01 4.58393393764936e-01 +-1.29000000000000e+02 7.11397617503829e-01 8.04733031067767e-01 4.56309141165450e-01 +-1.26000000000000e+02 6.63233100111446e-01 8.84698710294268e-01 4.58572206063996e-01 +-1.23000000000000e+02 6.15068582719063e-01 9.64664389520768e-01 4.60823670588149e-01 +-1.20000000000000e+02 5.66904065326681e-01 1.04463006874727e+00 4.63059345753965e-01 +-1.17000000000000e+02 5.12605758300895e-01 1.11196244449670e+00 4.66516192098920e-01 +-1.14000000000000e+02 4.58260814395497e-01 1.17919876578574e+00 4.69976371541764e-01 +-1.11000000000000e+02 4.03915870490099e-01 1.24643508707478e+00 4.73429037071446e-01 +-1.08000000000000e+02 3.46939720684536e-01 1.30024423406003e+00 4.75468872295334e-01 +-1.05000000000000e+02 2.88663489956651e-01 1.34741900357145e+00 4.76811680590155e-01 +-1.02000000000000e+02 2.30387259228766e-01 1.39459377308287e+00 4.78151890271365e-01 +-9.90000000000000e+01 1.72377765670460e-01 1.43358381541086e+00 4.78088610115713e-01 +-9.60000000000000e+01 1.14917132494972e-01 1.45573228855586e+00 4.75141923943141e-01 +-9.30000000000000e+01 5.74564993194836e-02 1.47788076170086e+00 4.72194219101062e-01 +-9.00000000000000e+01 -4.14302849546499e-06 1.49985690336849e+00 4.69207105752872e-01 +-8.70000000000000e+01 -5.74671342498365e-02 1.47770276407951e+00 4.56422508374088e-01 +-8.40000000000000e+01 -1.14930125471173e-01 1.45554862479080e+00 4.43635079745788e-01 +-8.10000000000000e+01 -1.72393116692509e-01 1.43339448550208e+00 4.30844296940111e-01 +-7.80000000000000e+01 -2.30395358038556e-01 1.39468737258310e+00 4.16228918921412e-01 +-7.50000000000000e+01 -2.88673374546159e-01 1.34751498767264e+00 4.00681160406418e-01 +-7.20000000000000e+01 -3.46951391053761e-01 1.30034260276218e+00 3.85132618492570e-01 +-6.90000000000000e+01 -4.03896381465601e-01 1.24637534009370e+00 3.69313384256449e-01 +-6.60000000000000e+01 -4.58236136543972e-01 1.17912832567983e+00 3.52965898963538e-01 +-6.30000000000000e+01 -5.12575891622343e-01 1.11188131126597e+00 3.36617490679355e-01 +-6.00000000000000e+01 -5.66915646700714e-01 1.04463429685211e+00 3.20268168249444e-01 +-5.70000000000000e+01 -6.15094697815452e-01 9.64703082819885e-01 3.04603106536736e-01 +-5.40000000000000e+01 -6.63250416871888e-01 8.84723830692213e-01 2.88935428983882e-01 +-5.10000000000000e+01 -7.11406135928324e-01 8.04744578564540e-01 2.73263068849369e-01 +-4.80000000000000e+01 -7.56795983581199e-01 7.22219402106520e-01 2.58233735694986e-01 +-4.50000000000000e+01 -8.00807095637791e-01 6.38425129588875e-01 2.43524290922393e-01 +-4.20000000000000e+01 -8.44818207694384e-01 5.54630857071230e-01 2.28812511199853e-01 +-3.90000000000000e+01 -8.90922483551346e-01 4.72708095141029e-01 2.13478281865728e-01 +-3.60000000000000e+01 -9.41224513340801e-01 3.94538570738999e-01 1.96892732136024e-01 +-3.30000000000000e+01 -9.91526543130258e-01 3.16369046336968e-01 1.80294193712032e-01 +-3.00000000000000e+01 -1.04182920353775e+00 2.38200139273921e-01 1.63676510180168e-01 +-2.93939393939394e+01 -1.05742711598731e+00 2.27748640981469e-01 1.55958880201225e-01 +-2.87878787878788e+01 -1.07299944904343e+00 2.17315801874220e-01 1.48948768316479e-01 +-2.81818181818182e+01 -1.08854394172368e+00 2.06912304973490e-01 1.42108173028201e-01 +-2.75757575757576e+01 -1.10405805848954e+00 1.96558768874292e-01 1.35230574810198e-01 +-2.69696969696970e+01 -1.11953894626671e+00 1.86101585956699e-01 1.28318192618467e-01 +-2.63636363636364e+01 -1.13498338313068e+00 1.75465271800541e-01 1.21373071466982e-01 +-2.57575757575758e+01 -1.15038771670885e+00 1.64822154400147e-01 1.14397099144056e-01 +-2.51515151515151e+01 -1.16574778981202e+00 1.54167302928103e-01 1.07392021037262e-01 +-2.45454545454545e+01 -1.18105885009557e+00 1.43489503668509e-01 1.00359453311974e-01 +-2.39393939393939e+01 -1.19631543960084e+00 1.32782471736201e-01 9.33008946529796e-02 +-2.33333333333333e+01 -1.21151125874726e+00 1.22226687790478e-01 8.62177367486659e-02 +-2.27272727272727e+01 -1.22663899760432e+00 1.11670903844754e-01 7.91112736721484e-02 +-2.21212121212121e+01 -1.24169012487617e+00 1.01115119899031e-01 7.19827102923936e-02 +-2.15151515151515e+01 -1.25665462169517e+00 9.05593359533078e-02 6.48331698303728e-02 +-2.09090909090909e+01 -1.27152064261581e+00 8.00035520075846e-02 5.76637006599461e-02 +-2.03030303030303e+01 -1.28627407947315e+00 6.94477680618614e-02 5.04752824401084e-02 +-1.96969696969697e+01 -1.30063869132765e+00 6.05259466573107e-02 2.83427625047181e-02 +-1.90909090909091e+01 -1.32188431237142e+00 5.40733604475050e-02 -5.97877457384177e-03 +-1.84848484848485e+01 -1.32199315374276e+00 5.05689590206214e-02 -1.09865498393828e-02 +-1.78787878787879e+01 -1.31949250081261e+00 4.77409198567854e-02 -1.21094613613413e-02 +-1.72727272727273e+01 -1.31688063798880e+00 4.49121001246406e-02 -1.31382198142628e-02 +-1.66666666666667e+01 -1.31433479873097e+00 4.23019299913394e-02 -1.38095796242860e-02 +-1.60606060606061e+01 -1.30695837000535e+00 3.98829015415361e-02 -1.44670746359196e-02 +-1.54545454545455e+01 -1.29664274426673e+00 3.75293612919999e-02 -1.51301802897745e-02 +-1.48484848484848e+01 -1.28457738951160e+00 3.51460383415514e-02 -1.57118274119498e-02 +-1.42424242424242e+01 -1.27126176671905e+00 3.27878715403711e-02 -1.62000694693168e-02 +-1.36363636363636e+01 -1.25595935343755e+00 3.04936910591362e-02 -1.65714843073448e-02 +-1.30303030303030e+01 -1.24173913486970e+00 2.82079573698025e-02 -1.65453233785656e-02 +-1.24242424242424e+01 -1.22151680908478e+00 2.59540118316168e-02 -1.72197222428287e-02 +-1.18181818181818e+01 -1.18675650472806e+00 2.37994528490460e-02 -1.97724287762577e-02 +-1.12121212121212e+01 -1.15247074654181e+00 2.17550119485322e-02 -2.29344970282491e-02 +-1.06060606060606e+01 -1.10659362827323e+00 1.94270628099042e-02 -2.76132218250004e-02 +-1.00000000000000e+01 -1.02523085337647e+00 1.62553473349088e-02 -3.71257374186772e-02 +-9.39393939393939e+00 -9.25642379363388e-01 1.25817993263034e-02 -4.90296667052313e-02 +-8.78787878787879e+00 -8.22678930014571e-01 9.83004857401391e-03 -6.03447222187410e-02 +-8.18181818181818e+00 -7.26952431820655e-01 8.56588414467578e-03 -6.64152341658841e-02 +-7.57575757575758e+00 -6.36415607133894e-01 7.83906569565448e-03 -7.07320414772134e-02 +-6.96969696969697e+00 -5.48223558200535e-01 7.11433298620340e-03 -7.50607777855880e-02 +-6.36363636363636e+00 -4.64488334038787e-01 6.86479687705747e-03 -7.79722291019355e-02 +-5.75757575757576e+00 -3.81242861384989e-01 6.65862938965587e-03 -8.07127632895905e-02 +-5.15151515151515e+00 -2.98531316804573e-01 6.62893902943059e-03 -8.37265124729809e-02 +-4.54545454545454e+00 -2.16146019281305e-01 6.57677656924304e-03 -8.68318311674325e-02 +-3.93939393939394e+00 -1.34404543740929e-01 6.55400034405478e-03 -8.97297599228192e-02 +-3.33333333333333e+00 -5.27180496220134e-02 6.48552442316951e-03 -9.25175635363840e-02 +-2.72727272727273e+00 2.95446031150638e-02 6.45297458860194e-03 -9.51362826610671e-02 +-2.12121212121212e+00 1.12449781616626e-01 6.42709432302743e-03 -9.77230828910132e-02 +-1.51515151515152e+00 1.94723691333925e-01 6.44856610396830e-03 -1.00218815316879e-01 +-9.09090909090912e-01 2.76940840694084e-01 6.45907782341957e-03 -1.02664678006910e-01 +-3.03030303030302e-01 3.58622161118422e-01 6.51157589536223e-03 -1.05014813148175e-01 + 3.03030303030302e-01 4.40097280129075e-01 6.57999670549212e-03 -1.07277462454247e-01 + 9.09090909090912e-01 5.21287843585050e-01 6.66308020226887e-03 -1.09412006380512e-01 + 1.51515151515152e+00 6.02179224970325e-01 6.77631860115739e-03 -1.11527762730087e-01 + 2.12121212121212e+00 6.82779891369401e-01 6.88999178364233e-03 -1.13553436668516e-01 + 2.72727272727273e+00 7.63039372523818e-01 7.03967816912714e-03 -1.15559434370179e-01 + 3.33333333333333e+00 8.42896460092714e-01 7.22366436306996e-03 -1.17438828150539e-01 + 3.93939393939394e+00 9.22458224714110e-01 7.39372958826329e-03 -1.19229244777399e-01 + 4.54545454545455e+00 1.00155433018083e+00 7.61115204519865e-03 -1.20925974281521e-01 + 5.15151515151515e+00 1.08024143562992e+00 7.82956061009446e-03 -1.22531718090610e-01 + 5.75757575757576e+00 1.15837943926812e+00 8.08735429226550e-03 -1.24021969022057e-01 + 6.36363636363637e+00 1.23587901859403e+00 8.36140534823683e-03 -1.25372636847621e-01 + 6.96969696969697e+00 1.31268832075277e+00 8.65824395198305e-03 -1.26658745929941e-01 + 7.57575757575757e+00 1.38878732429371e+00 8.91959656170256e-03 -1.27740570070991e-01 + 8.18181818181818e+00 1.46386946019403e+00 9.36793437192525e-03 -1.28661720983668e-01 + 8.78787878787879e+00 1.53765677110318e+00 9.86454872045202e-03 -1.29392354382817e-01 + 9.39393939393939e+00 1.60957322719087e+00 1.04193376726670e-02 -1.29813343649964e-01 + 1.00000000000000e+01 1.67955165274743e+00 1.09372925283792e-02 -1.29941006423779e-01 + 1.06060606060606e+01 1.74801840660889e+00 1.14484823855215e-02 -1.29752492076448e-01 + 1.12121212121212e+01 1.81322740211842e+00 1.20062080880448e-02 -1.29063926492120e-01 + 1.18181818181818e+01 1.87347272812607e+00 1.26103378731047e-02 -1.27488054157091e-01 + 1.24242424242424e+01 1.92815740492322e+00 1.31903430788468e-02 -1.24826281970628e-01 + 1.30303030303030e+01 1.96767575610385e+00 1.38538598789616e-02 -1.19572099438924e-01 + 1.36363636363636e+01 2.00203431071318e+00 1.49257866627962e-02 -1.14928370981920e-01 + 1.42424242424242e+01 2.02639491398003e+00 1.64488181799020e-02 -1.10180222880703e-01 + 1.48484848484848e+01 2.04753648859603e+00 1.85190479644075e-02 -1.06326893824099e-01 + 1.54545454545455e+01 2.06268175911276e+00 2.12669245291107e-02 -1.03151772909770e-01 + 1.60606060606061e+01 2.06752460607323e+00 2.48527129874833e-02 -1.00181233978434e-01 + 1.66666666666667e+01 2.06351409566314e+00 2.92134050915926e-02 -9.76848438378818e-02 + 1.72727272727273e+01 2.05156041297869e+00 3.43791189767338e-02 -9.58082299557438e-02 + 1.78787878787879e+01 2.02989465944030e+00 4.04517797102685e-02 -9.44136054196872e-02 + 1.84848484848485e+01 1.99900543178964e+00 4.74470888498150e-02 -9.36121931538154e-02 + 1.90909090909091e+01 1.96446975201981e+00 5.49099064576719e-02 -9.36790076892820e-02 + 1.96969696969697e+01 1.92947154918530e+00 6.25091700378061e-02 -9.44545296248457e-02 + 2.03030303030303e+01 1.89304582174114e+00 7.04669587757101e-02 -9.61212959387589e-02 + 2.09090909090909e+01 1.85728656849785e+00 7.84554205374170e-02 -9.88220839096051e-02 + 2.15151515151515e+01 1.82414452530286e+00 8.61133421396637e-02 -1.01974903437236e-01 + 2.21212121212121e+01 1.79185006520467e+00 9.34861440911383e-02 -1.06516562815612e-01 + 2.27272727272727e+01 1.76553864140815e+00 1.00069176627005e-01 -1.11480589560870e-01 + 2.33333333333333e+01 1.73868946749497e+00 1.06490105669152e-01 -1.17619474700066e-01 + 2.39393939393939e+01 1.70942713368082e+00 1.13090714201511e-01 -1.24550960111958e-01 + 2.45454545454545e+01 1.68053870235289e+00 1.19597293353601e-01 -1.32825362938333e-01 + 2.51515151515151e+01 1.65483293884158e+00 1.27847674172843e-01 -1.40692359995083e-01 + 2.57575757575758e+01 1.63401972964796e+00 1.41641683986415e-01 -1.46924000187139e-01 + 2.63636363636364e+01 1.61320652042025e+00 1.55435693817442e-01 -1.53142846064494e-01 + 2.69696969696970e+01 1.59239331115534e+00 1.69229703666214e-01 -1.59347736217656e-01 + 2.75757575757576e+01 1.57158010184977e+00 1.83023713533027e-01 -1.65537364281049e-01 + 2.81818181818182e+01 1.55076689249963e+00 1.96817723418186e-01 -1.71710255589582e-01 + 2.87878787878788e+01 1.52995368310048e+00 2.10611733322000e-01 -1.77864739174088e-01 + 2.93939393939394e+01 1.50914047364728e+00 2.24405743244787e-01 -1.84401878964121e-01 + 3.00000000000000e+01 1.48832726413426e+00 2.38199753186872e-01 -1.91211359699562e-01 + 3.30000000000000e+01 1.41646649290752e+00 3.16369046336969e-01 -2.10167961697423e-01 + 3.60000000000000e+01 1.34460645046210e+00 3.94538570738999e-01 -2.29089725663088e-01 + 3.90000000000000e+01 1.27274640801669e+00 4.72708095141030e-01 -2.47991572850450e-01 + 4.20000000000000e+01 1.20688315664769e+00 5.54630857071230e-01 -2.63459060752020e-01 + 4.50000000000000e+01 1.14401013915172e+00 6.38425129588875e-01 -2.77216376649652e-01 + 4.80000000000000e+01 1.08113712165574e+00 7.22219402106520e-01 -2.90970892326853e-01 + 5.10000000000000e+01 1.01629448160075e+00 8.04744578564540e-01 -3.04456292130636e-01 + 5.40000000000000e+01 9.47500596124608e-01 8.84723830692213e-01 -3.17402484291935e-01 + 5.70000000000000e+01 8.78706710648464e-01 9.64703082819885e-01 -3.30341530920311e-01 + 6.00000000000000e+01 8.09879493664128e-01 1.04463429685211e+00 -3.43273170411244e-01 + 6.30000000000000e+01 7.32251271986533e-01 1.11188131126597e+00 -3.56406892485614e-01 + 6.60000000000000e+01 6.54623050308937e-01 1.17912832567983e+00 -3.69537950635515e-01 + 6.90000000000000e+01 5.76994828631340e-01 1.24637534009370e+00 -3.82666222174002e-01 + 7.20000000000000e+01 4.95644843205483e-01 1.30034260276219e+00 -3.95679829267639e-01 + 7.50000000000000e+01 4.12390535304433e-01 1.34751498767264e+00 -4.08635548451537e-01 + 7.80000000000000e+01 3.29136227403383e-01 1.39468737258310e+00 -4.21591039290827e-01 + 8.10000000000000e+01 2.46285401735710e-01 1.43339448550208e+00 -4.34122164961554e-01 + 8.40000000000000e+01 1.64223544311009e-01 1.45554862479080e+00 -4.45821477476768e-01 + 8.70000000000000e+01 8.21616868863070e-02 1.47770276407951e+00 -4.57517715551838e-01 + 9.00000000000000e+01 9.98294616029796e-05 1.49985690336849e+00 -4.69211349076144e-01 + 9.30000000000000e+01 -5.74564993194836e-02 1.47788076170086e+00 -4.72194219101062e-01 + 9.60000000000000e+01 -1.14917132494972e-01 1.45573228855586e+00 -4.75141923943141e-01 + 9.90000000000000e+01 -1.72377765670460e-01 1.43358381541086e+00 -4.78088610115713e-01 + 1.02000000000000e+02 -2.30387259228766e-01 1.39459377308287e+00 -4.78151890271365e-01 + 1.05000000000000e+02 -2.88663489956651e-01 1.34741900357145e+00 -4.76811680590155e-01 + 1.08000000000000e+02 -3.46939720684536e-01 1.30024423406003e+00 -4.75468872295334e-01 + 1.11000000000000e+02 -4.03915870490099e-01 1.24643508707478e+00 -4.73429037071446e-01 + 1.14000000000000e+02 -4.58260814395497e-01 1.17919876578574e+00 -4.69976371541764e-01 + 1.17000000000000e+02 -5.12605758300895e-01 1.11196244449670e+00 -4.66516192098920e-01 + 1.20000000000000e+02 -5.66904065326681e-01 1.04463006874727e+00 -4.63059345753965e-01 + 1.23000000000000e+02 -6.15068582719064e-01 9.64664389520768e-01 -4.60823670588149e-01 + 1.26000000000000e+02 -6.63233100111446e-01 8.84698710294267e-01 -4.58572206063996e-01 + 1.29000000000000e+02 -7.11397617503829e-01 8.04733031067767e-01 -4.56309141165450e-01 + 1.32000000000000e+02 -7.56798827057992e-01 7.22219027128304e-01 -4.58393393764936e-01 + 1.35000000000000e+02 -8.00809818714473e-01 6.38422963124426e-01 -4.62648526078093e-01 + 1.38000000000000e+02 -8.44820810370954e-01 5.54626899120547e-01 -4.66887422310004e-01 + 1.41000000000000e+02 -8.90977955915707e-01 4.72751038281891e-01 -4.76170573560034e-01 + 1.44000000000000e+02 -9.41261740696170e-01 3.94567357097938e-01 -4.95154549543561e-01 + 1.47000000000000e+02 -9.91545525476632e-01 3.16383675913985e-01 -5.14121315542285e-01 + 1.50000000000000e+02 -1.04182931025710e+00 2.38199994730031e-01 -5.33077040844322e-01 + 1.53000000000000e+02 -1.00788445568480e+00 1.74813303693722e-01 -5.42669342644109e-01 + 1.56000000000000e+02 -9.73929751801008e-01 1.11428342949703e-01 -5.52256850070657e-01 + 1.59000000000000e+02 -9.39975047917214e-01 4.80433822056840e-02 -5.61841416044750e-01 + 1.62000000000000e+02 -8.36649125305630e-01 2.13271768732419e-02 -5.48593312963883e-01 + 1.65000000000000e+02 -6.97207604544696e-01 1.37012233681148e-02 -5.23459079453002e-01 + 1.68000000000000e+02 -5.57766083783760e-01 6.07526986298752e-03 -4.98324845910330e-01 + 1.71000000000000e+02 -4.18324562948596e-01 1.00000000000000e-03 -4.33289345485788e-01 + 1.74000000000000e+02 -2.78883041965731e-01 1.00000000000000e-03 -2.88859563657193e-01 + 1.77000000000000e+02 -1.39441520982865e-01 1.00000000000000e-03 -1.44429781828596e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_20.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_20.dat new file mode 100644 index 000000000..e17fec3c0 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_20.dat @@ -0,0 +1,742 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF20_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +3 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +11.375826 Re ! Reynolds number in millions +-10 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +3.553291 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.242424 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.242424 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.301360 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.099216 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005386 Cd0 ! 2D drag coefficient value at 0-lift. +0.033704 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.06186217974702e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.12372435949403e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.18558653924104e-01 1.00000000000000e-03 3.58588528580072e-01 +-1.68000000000000e+02 4.24744871898805e-01 1.00000000000000e-03 3.81197000605086e-01 +-1.65000000000000e+02 5.30931089873506e-01 1.00000000000000e-03 3.52992501512716e-01 +-1.62000000000000e+02 6.37117307848208e-01 1.00000000000000e-03 3.24788002420345e-01 +-1.59000000000000e+02 7.43303525822910e-01 1.35238026245825e-02 3.06703545093170e-01 +-1.56000000000000e+02 8.49489743797611e-01 6.90822052708264e-02 3.05663368633692e-01 +-1.53000000000000e+02 8.61532043430977e-01 1.35799371979945e-01 3.05422142839888e-01 +-1.50000000000000e+02 8.27520139601970e-01 2.05357976956505e-01 3.04452164836810e-01 +-1.47000000000000e+02 8.01039628014354e-01 2.81268710030686e-01 2.98089420485111e-01 +-1.44000000000000e+02 7.75942197165984e-01 3.60223967596350e-01 2.91435175249702e-01 +-1.41000000000000e+02 7.51855535952147e-01 4.41541646849583e-01 2.84752685810615e-01 +-1.38000000000000e+02 7.26680697022310e-01 5.26099487180087e-01 2.85875836194745e-01 +-1.35000000000000e+02 6.99986316225046e-01 6.11245990950775e-01 2.88141275333491e-01 +-1.32000000000000e+02 6.71620439373612e-01 6.97040024505663e-01 2.91663232102317e-01 +-1.29000000000000e+02 6.39219412824400e-01 7.82028658934708e-01 2.97085239868618e-01 +-1.26000000000000e+02 6.04657052746180e-01 8.65836379423411e-01 3.03140597967409e-01 +-1.23000000000000e+02 5.67086919395548e-01 9.47825789649790e-01 3.09987643981815e-01 +-1.20000000000000e+02 5.25440351104597e-01 1.02571492185972e+00 3.16607772169247e-01 +-1.17000000000000e+02 4.81679294513381e-01 1.10085095336238e+00 3.23091749660496e-01 +-1.14000000000000e+02 4.34670234641659e-01 1.17115437210513e+00 3.29348809324771e-01 +-1.11000000000000e+02 3.84784017512941e-01 1.23523858113659e+00 3.34869890329883e-01 +-1.08000000000000e+02 3.33305061894541e-01 1.29523804646683e+00 3.39702475169973e-01 +-1.05000000000000e+02 2.79395906461588e-01 1.34725632055081e+00 3.42718854609227e-01 +-1.02000000000000e+02 2.24259696734030e-01 1.39218477095027e+00 3.45246198075894e-01 +-9.90000000000000e+01 1.68378560929726e-01 1.43204060795687e+00 3.47103381135681e-01 +-9.60000000000000e+01 1.11896747284504e-01 1.46112513162159e+00 3.45175063518772e-01 +-9.30000000000000e+01 5.57924450259991e-02 1.48338248427287e+00 3.43246745901863e-01 +-9.00000000000000e+01 -1.99992153201555e-16 1.50000000000000e+00 3.41318428284954e-01 +-8.70000000000000e+01 -5.57924450259993e-02 1.48338248427287e+00 3.28954032893765e-01 +-8.40000000000000e+01 -1.11896747284504e-01 1.46112513162159e+00 3.16589637502575e-01 +-8.10000000000000e+01 -1.68378560929726e-01 1.43204060795687e+00 3.04225242111385e-01 +-7.80000000000000e+01 -2.24259696734031e-01 1.39218477095027e+00 2.89338948067442e-01 +-7.50000000000000e+01 -2.79395906461588e-01 1.34725632055080e+00 2.74006193496456e-01 +-7.20000000000000e+01 -3.33305061894541e-01 1.29523804646683e+00 2.58347643405737e-01 +-6.90000000000000e+01 -3.84784017512941e-01 1.23523858113659e+00 2.41948707987403e-01 +-6.60000000000000e+01 -4.34670234641659e-01 1.17115437210513e+00 2.25269103621346e-01 +-6.30000000000000e+01 -4.81679294513381e-01 1.10085095336238e+00 2.08289473828413e-01 +-6.00000000000000e+01 -5.25440351104598e-01 1.02571492185972e+00 1.91488871298928e-01 +-5.70000000000000e+01 -5.67086919395548e-01 9.47825789649789e-01 1.74795685127512e-01 +-5.40000000000000e+01 -6.04657052746180e-01 8.65836379423411e-01 1.58281526219544e-01 +-5.10000000000000e+01 -6.39219412824400e-01 7.82028658934707e-01 1.42115995872408e-01 +-4.80000000000000e+01 -6.71620439373613e-01 6.97040024505663e-01 1.26229368373939e-01 +-4.50000000000000e+01 -6.99986316225046e-01 6.11245990950775e-01 1.11179449421468e-01 +-4.20000000000000e+01 -7.26680697022310e-01 5.26099487180087e-01 9.61727681069784e-02 +-3.90000000000000e+01 -7.51855535952147e-01 4.41541646849582e-01 8.12053937361077e-02 +-3.60000000000000e+01 -7.75942197165984e-01 3.60223967596350e-01 6.65066168133010e-02 +-3.30000000000000e+01 -8.01039628014354e-01 2.81268710030686e-01 5.14815729306671e-02 +-3.00000000000000e+01 -8.27520139601970e-01 2.05357976956504e-01 3.60127715585705e-02 +-2.93939393939394e+01 -8.33579082790099e-01 1.90620751108506e-01 3.21145473729720e-02 +-2.87878787878788e+01 -8.40655781686524e-01 1.76741920949377e-01 2.71069294637168e-02 +-2.81818181818182e+01 -8.47732480582949e-01 1.62863090790247e-01 2.20993115544615e-02 +-2.75757575757576e+01 -8.54809179479373e-01 1.48984260631118e-01 1.70916936452063e-02 +-2.69696969696970e+01 -8.61885878375798e-01 1.35105430471989e-01 1.20840757359510e-02 +-2.63636363636364e+01 -8.68962577272223e-01 1.21226600312859e-01 7.07645782669574e-03 +-2.57575757575758e+01 -8.76039276168647e-01 1.07347770153730e-01 2.06883991744046e-03 +-2.51515151515151e+01 -8.83115975065072e-01 9.34689399946003e-02 -2.93877799181479e-03 +-2.45454545454545e+01 -9.22788724131216e-01 8.79267972233906e-02 -7.94639590107005e-03 +-2.39393939393939e+01 -9.73326823253932e-01 8.51635502481540e-02 -1.29540138103253e-02 +-2.33333333333333e+01 -1.02386492237665e+00 8.24003032729174e-02 -1.79616317195806e-02 +-2.27272727272727e+01 -1.07440302149936e+00 7.96370562976808e-02 -2.29692496288358e-02 +-2.21212121212121e+01 -1.12494112062208e+00 7.68738093224443e-02 -2.79768675380911e-02 +-2.15151515151515e+01 -1.17547921974480e+00 7.41105623472077e-02 -3.29844854473463e-02 +-2.09090909090909e+01 -1.22601731886751e+00 7.13473153719711e-02 -3.79921033566016e-02 +-2.03030303030303e+01 -1.27655541799023e+00 6.85840683967346e-02 -4.29997212658569e-02 +-1.96969696969697e+01 -1.32709351711295e+00 6.58208214214980e-02 -1.71994301536708e-02 +-1.90909090909091e+01 -1.37763161623566e+00 6.30575744462614e-02 3.94087699799561e-02 +-1.84848484848485e+01 -1.38709873486788e+00 6.06718499927172e-02 4.60515151515151e-02 +-1.78787878787879e+01 -1.38905049007812e+00 5.82342125976675e-02 4.41606060606060e-02 +-1.72727272727273e+01 -1.39316067447907e+00 5.55295787626323e-02 4.25545454545455e-02 +-1.66666666666667e+01 -1.39766420202504e+00 5.27099585881033e-02 4.13000000000000e-02 +-1.60606060606061e+01 -1.40238258086871e+00 4.97956593701583e-02 4.04727272727273e-02 +-1.54545454545455e+01 -1.40645310041471e+00 4.68736470567548e-02 3.99818181818182e-02 +-1.48484848484848e+01 -1.40891058252568e+00 4.39889006166881e-02 3.98151515151515e-02 +-1.42424242424242e+01 -1.41002937578178e+00 4.11210347672287e-02 3.98757575757576e-02 +-1.36363636363636e+01 -1.41011688280892e+00 3.82739158947566e-02 4.01181818181818e-02 +-1.30303030303030e+01 -1.40951686568344e+00 3.54406283402760e-02 4.04818181818182e-02 +-1.24242424242424e+01 -1.40988533209988e+00 3.25010336893332e-02 4.12060606060606e-02 +-1.18181818181818e+01 -1.40941753115759e+00 2.96157771960694e-02 4.20545454545455e-02 +-1.12121212121212e+01 -1.40974302731450e+00 2.66835915026287e-02 4.30757575757576e-02 +-1.06060606060606e+01 -1.41412094948643e+00 2.36683990593947e-02 4.45242424242424e-02 +-1.00000000000000e+01 -1.42506009974958e+00 2.05696066161968e-02 4.65000000000000e-02 +-9.39393939393939e+00 -1.43667024714245e+00 1.70906694933603e-02 4.81636363636364e-02 +-8.78787878787879e+00 -1.43367050629192e+00 1.30409755787526e-02 4.72545454545455e-02 +-8.18181818181818e+00 -1.40376477216053e+00 1.03807187339881e-02 4.65909090909091e-02 +-7.57575757575758e+00 -1.35769560963316e+00 9.25156049972026e-03 4.82030303030303e-02 +-6.96969696969697e+00 -1.30178295226666e+00 8.33994550361567e-03 4.92181818181818e-02 +-6.36363636363636e+00 -1.23687959444269e+00 7.72939621838571e-03 4.95818181818182e-02 +-5.75757575757576e+00 -1.17277614452706e+00 7.01411581316137e-03 4.99454545454545e-02 +-5.15151515151515e+00 -1.10308325546673e+00 6.54831819741822e-03 4.98212121212121e-02 +-4.54545454545454e+00 -1.02887187834559e+00 6.31208794605834e-03 4.91545454545455e-02 +-3.93939393939394e+00 -9.53606077163451e-01 6.12859127271740e-03 4.84030303030303e-02 +-3.33333333333333e+00 -8.77504008622581e-01 5.99060425128934e-03 4.74333333333333e-02 +-2.72727272727273e+00 -8.01269723898511e-01 5.84677631453817e-03 4.64636363636364e-02 +-2.12121212121212e+00 -7.24860252731704e-01 5.71611014662620e-03 4.54939393939394e-02 +-1.51515151515152e+00 -6.47878946572565e-01 5.63410085198544e-03 4.43303030303030e-02 +-9.09090909090912e-01 -5.71079437665323e-01 5.52353734300599e-03 4.32181818181818e-02 +-3.03030303030302e-01 -4.93727926193228e-01 5.45449138971077e-03 4.20060606060606e-02 + 3.03030303030302e-01 -4.16442522812732e-01 5.39068252837727e-03 4.07939393939394e-02 + 9.09090909090912e-01 -3.38776997905541e-01 5.35272295534114e-03 3.95000000000000e-02 + 1.51515151515152e+00 -2.61438708051766e-01 5.32844969623530e-03 3.82666666666667e-02 + 2.12121212121212e+00 -1.83531888610238e-01 5.32949756771449e-03 3.69333333333333e-02 + 2.72727272727273e+00 -1.05948998817546e-01 5.34176588297032e-03 3.56000000000000e-02 + 3.33333333333333e+00 -2.82735576966155e-02 5.37306523051645e-03 3.42000000000000e-02 + 3.93939393939394e+00 4.96299563403320e-02 5.40892414734476e-03 3.28333333333333e-02 + 4.54545454545455e+00 1.27097156972726e-01 5.47850314128088e-03 3.14000000000000e-02 + 5.15151515151515e+00 2.04944479131814e-01 5.54500526929821e-03 3.00363636363636e-02 + 5.75757575757576e+00 2.82352182481768e-01 5.65743802617407e-03 2.86333333333333e-02 + 6.36363636363637e+00 3.59597921007305e-01 5.78341375987475e-03 2.72272727272727e-02 + 6.96969696969697e+00 4.37094870280918e-01 5.91395602278338e-03 2.58666666666667e-02 + 7.57575757575757e+00 5.14066260226317e-01 6.07754745327773e-03 2.44333333333333e-02 + 8.18181818181818e+00 5.90888906965619e-01 6.26998068135491e-03 2.31000000000000e-02 + 8.78787878787879e+00 6.67460342956844e-01 6.47564279477787e-03 2.17666666666667e-02 + 9.39393939393939e+00 7.43668184444273e-01 6.73604296563862e-03 2.04333333333333e-02 + 1.00000000000000e+01 8.19066201809614e-01 7.03813569720804e-03 1.91000000000000e-02 + 1.06060606060606e+01 8.94008073342920e-01 7.39760493150030e-03 1.78878787878788e-02 + 1.12121212121212e+01 9.67862466769420e-01 7.81600034119505e-03 1.67181818181818e-02 + 1.18181818181818e+01 1.04090703607383e+00 8.29083959229898e-03 1.55636363636364e-02 + 1.24242424242424e+01 1.11283768403480e+00 8.80347737461862e-03 1.45212121212121e-02 + 1.30303030303030e+01 1.18248760283559e+00 9.49351664680227e-03 1.35454545454545e-02 + 1.36363636363636e+01 1.25035260316321e+00 1.02147684048133e-02 1.24818181818182e-02 + 1.42424242424242e+01 1.31392718834604e+00 1.12388230744244e-02 1.13666666666667e-02 + 1.48484848484848e+01 1.37476489853667e+00 1.28353394827579e-02 8.84848484848487e-03 + 1.54545454545455e+01 1.41688079718642e+00 1.50688420996375e-02 6.81818181818182e-03 + 1.60606060606061e+01 1.44488261827975e+00 1.75234283752219e-02 6.40000000000000e-03 + 1.66666666666667e+01 1.46155681787756e+00 2.04100904197956e-02 6.43333333333333e-03 + 1.72727272727273e+01 1.47063189234606e+00 2.36553723744734e-02 6.50000000000000e-03 + 1.78787878787879e+01 1.47262017939513e+00 2.74057351566914e-02 6.34848484848485e-03 + 1.84848484848485e+01 1.46818275994076e+00 3.16917606315273e-02 5.91212121212121e-03 + 1.90909090909091e+01 1.45829142292946e+00 3.63753179516807e-02 5.15454545454546e-03 + 1.96969696969697e+01 1.44183555242236e+00 4.15484500949267e-02 4.06666666666667e-03 + 2.03030303030303e+01 1.42214038542691e+00 4.69882809596720e-02 2.52121212121212e-03 + 2.09090909090909e+01 1.40099084041627e+00 5.25646497238682e-02 7.63636363636361e-04 + 2.15151515151515e+01 1.37576903696313e+00 5.84977685429905e-02 -1.46666666666665e-03 + 2.21212121212121e+01 1.34996548230391e+00 6.45382886051633e-02 -4.18181818181818e-03 + 2.27272727272727e+01 1.32941091011767e+00 7.01602190800132e-02 -7.18181818181818e-03 + 2.33333333333333e+01 1.30759367338188e+00 7.59086134908802e-02 -1.07333333333333e-02 + 2.39393939393939e+01 1.28872485753142e+00 8.13630648774115e-02 -1.47000000000000e-02 + 2.45454545454545e+01 1.27363742452043e+00 8.64154468107993e-02 -1.90454545454545e-02 + 2.51515151515151e+01 1.26159425009296e+00 9.34689399946003e-02 -2.37473893130748e-02 + 2.57575757575758e+01 1.25148468024092e+00 1.07347770153730e-01 -2.87369465653743e-02 + 2.63636363636364e+01 1.24137511038889e+00 1.21226600312859e-01 -3.37265038176737e-02 + 2.69696969696970e+01 1.23126554053685e+00 1.35105430471989e-01 -3.87160610699730e-02 + 2.75757575757576e+01 1.22115597068482e+00 1.48984260631118e-01 -4.37056183222724e-02 + 2.81818181818182e+01 1.21104640083278e+00 1.62863090790247e-01 -4.86951755745718e-02 + 2.87878787878788e+01 1.20093683098075e+00 1.76741920949377e-01 -5.36847328268713e-02 + 2.93939393939394e+01 1.19082726112871e+00 1.90620751108506e-01 -5.86742900791707e-02 + 3.00000000000000e+01 1.18217162800281e+00 2.05357976956504e-01 -6.27952519226687e-02 + 3.30000000000000e+01 1.14434232573479e+00 2.81268710030686e-01 -8.01973588876191e-02 + 3.60000000000000e+01 1.10848885309426e+00 3.60223967596350e-01 -9.72520276890491e-02 + 3.90000000000000e+01 1.07407933707450e+00 4.41541646849582e-01 -1.13997871109403e-01 + 4.20000000000000e+01 1.03811528146044e+00 5.26099487180087e-01 -1.28765597433918e-01 + 4.50000000000000e+01 9.99980451750066e-01 6.11245990950775e-01 -1.43243843207822e-01 + 4.80000000000000e+01 9.59457770533732e-01 6.97040024505663e-01 -1.57403660376054e-01 + 5.10000000000000e+01 9.13170589749142e-01 7.82028658934708e-01 -1.71439358772227e-01 + 5.40000000000000e+01 8.63795789637400e-01 8.65836379423411e-01 -1.85433684244379e-01 + 5.70000000000000e+01 8.10124170565068e-01 9.47825789649790e-01 -1.99376293561507e-01 + 6.00000000000000e+01 7.50629073006568e-01 1.02571492185972e+00 -2.13288858150741e-01 + 6.30000000000000e+01 6.88113277876259e-01 1.10085095336238e+00 -2.27183395903238e-01 + 6.60000000000000e+01 6.20957478059513e-01 1.17115437210513e+00 -2.41047888927840e-01 + 6.90000000000000e+01 5.49691453589916e-01 1.23523858113659e+00 -2.54749080640344e-01 + 7.20000000000000e+01 4.76150088420772e-01 1.29523804646683e+00 -2.68297506609273e-01 + 7.50000000000000e+01 3.99137009230839e-01 1.34725632055081e+00 -2.81442947082216e-01 + 7.80000000000000e+01 3.20370995334329e-01 1.39218477095027e+00 -2.94414765059145e-01 + 8.10000000000000e+01 2.40540801328180e-01 1.43204060795687e+00 -3.07148655911906e-01 + 8.40000000000000e+01 1.59852496120720e-01 1.46112513162159e+00 -3.18538580036255e-01 + 8.70000000000000e+01 7.97034928942844e-02 1.48338248427287e+00 -3.29928504160605e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -3.41318428284955e-01 + 9.30000000000000e+01 -5.57924450259990e-02 1.48338248427287e+00 -3.43246745901863e-01 + 9.60000000000000e+01 -1.11896747284504e-01 1.46112513162159e+00 -3.45175063518772e-01 + 9.90000000000000e+01 -1.68378560929726e-01 1.43204060795687e+00 -3.47103381135681e-01 + 1.02000000000000e+02 -2.24259696734030e-01 1.39218477095027e+00 -3.45246198075894e-01 + 1.05000000000000e+02 -2.79395906461588e-01 1.34725632055080e+00 -3.42718854609227e-01 + 1.08000000000000e+02 -3.33305061894541e-01 1.29523804646683e+00 -3.39702475169973e-01 + 1.11000000000000e+02 -3.84784017512941e-01 1.23523858113659e+00 -3.34869890329883e-01 + 1.14000000000000e+02 -4.34670234641659e-01 1.17115437210513e+00 -3.29348809324771e-01 + 1.17000000000000e+02 -4.81679294513381e-01 1.10085095336238e+00 -3.23091749660496e-01 + 1.20000000000000e+02 -5.25440351104598e-01 1.02571492185972e+00 -3.16607772169247e-01 + 1.23000000000000e+02 -5.67086919395548e-01 9.47825789649789e-01 -3.09987643981815e-01 + 1.26000000000000e+02 -6.04657052746180e-01 8.65836379423411e-01 -3.03140597967409e-01 + 1.29000000000000e+02 -6.39219412824400e-01 7.82028658934707e-01 -2.97085239868617e-01 + 1.32000000000000e+02 -6.71620439373613e-01 6.97040024505663e-01 -2.91663232102317e-01 + 1.35000000000000e+02 -6.99986316225046e-01 6.11245990950775e-01 -2.88141275333491e-01 + 1.38000000000000e+02 -7.26680697022310e-01 5.26099487180086e-01 -2.85875836194744e-01 + 1.41000000000000e+02 -7.51855535952147e-01 4.41541646849582e-01 -2.84752685810615e-01 + 1.44000000000000e+02 -7.75942197165984e-01 3.60223967596350e-01 -2.91435175249702e-01 + 1.47000000000000e+02 -8.01039628014354e-01 2.81268710030686e-01 -2.98089420485111e-01 + 1.50000000000000e+02 -8.27520139601970e-01 2.05357976956504e-01 -3.04452164836810e-01 + 1.53000000000000e+02 -8.61532043430977e-01 1.35799371979945e-01 -3.05422142839888e-01 + 1.56000000000000e+02 -8.49489743797611e-01 6.90822052708264e-02 -3.05663368633692e-01 + 1.59000000000000e+02 -7.43303525822909e-01 1.35238026245827e-02 -3.07560687950313e-01 + 1.62000000000000e+02 -6.37117307848208e-01 1.00000000000000e-03 -3.44788002420345e-01 + 1.65000000000000e+02 -5.30931089873506e-01 1.00000000000000e-03 -4.02992501512716e-01 + 1.68000000000000e+02 -4.24744871898805e-01 1.00000000000000e-03 -4.61197000605086e-01 + 1.71000000000000e+02 -3.18558653924104e-01 1.00000000000000e-03 -4.48017100008644e-01 + 1.74000000000000e+02 -2.12372435949403e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.06186217974702e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +! ------------------------------------------------------------------------------ +! data for table 2 +! ------------------------------------------------------------------------------ +11.375826 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-1.484727 alpha0 ! 0-lift angle of attack, depends on airfoil. +13.636364 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-13.636364 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.518635 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.144086 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005426 Cd0 ! 2D drag coefficient value at 0-lift. +-0.060234 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.18270191478415e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.36540382956829e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.54810574435244e-01 1.00000000000000e-03 3.59048560052934e-01 +-1.68000000000000e+02 4.73080765913658e-01 1.00000000000000e-03 4.13399203705374e-01 +-1.65000000000000e+02 5.91350957392073e-01 1.00000000000000e-03 4.33498009263435e-01 +-1.62000000000000e+02 7.09621148870487e-01 1.31649379704876e-03 4.53596814821496e-01 +-1.59000000000000e+02 8.27891340348902e-01 2.97471633695395e-02 4.64743755080357e-01 +-1.56000000000000e+02 9.46161531827317e-01 8.88029448186856e-02 4.60813869572144e-01 +-1.53000000000000e+02 9.52940359583911e-01 1.55020408675617e-01 4.56177257856100e-01 +-1.50000000000000e+02 9.05393401671803e-01 2.24050836158447e-01 4.50608728167409e-01 +-1.47000000000000e+02 8.68353675582041e-01 2.99363294095321e-01 4.38144005481134e-01 +-1.44000000000000e+02 8.33972117509694e-01 3.77677051408732e-01 4.25306515605800e-01 +-1.41000000000000e+02 8.01595278940914e-01 4.58319115831368e-01 4.12435214291062e-01 +-1.38000000000000e+02 7.69673273482848e-01 5.42131815903683e-01 4.09640235024260e-01 +-1.35000000000000e+02 7.36796816506179e-01 6.26501593235432e-01 4.08319839471791e-01 +-1.32000000000000e+02 7.02870462859048e-01 7.11484155552559e-01 4.08621486005087e-01 +-1.29000000000000e+02 6.65778555933871e-01 7.95604670803778e-01 4.11502921715569e-01 +-1.26000000000000e+02 6.26886217940962e-01 8.78518855684472e-01 4.15244287151780e-01 +-1.23000000000000e+02 5.85463873622744e-01 9.59580509596303e-01 4.20060564745152e-01 +-1.20000000000000e+02 5.40515462246218e-01 1.03650089303830e+00 4.24837905631868e-01 +-1.17000000000000e+02 4.93729438786732e-01 1.11064775458064e+00 4.29591884494591e-01 +-1.14000000000000e+02 4.44112418648996e-01 1.17993144660877e+00 4.34306926650660e-01 +-1.11000000000000e+02 3.92009844730891e-01 1.24296929312344e+00 4.38325770991220e-01 +-1.08000000000000e+02 3.38547509368917e-01 1.30190739059114e+00 4.41693333504369e-01 +-1.05000000000000e+02 2.83054563329601e-01 1.35284069260129e+00 4.43342859472798e-01 +-1.02000000000000e+02 2.26635707511257e-01 1.39667000382612e+00 4.44507076046017e-01 +-9.90000000000000e+01 1.69682294157888e-01 1.43541742412719e+00 4.45006239003579e-01 +-9.60000000000000e+01 1.12537330277774e-01 1.46338016535287e+00 4.41748747753782e-01 +-9.30000000000000e+01 5.60125162760664e-02 1.48451167735552e+00 4.38491256503985e-01 +-9.00000000000000e+01 -2.01034620055454e-16 1.50000000000000e+00 4.35233765254188e-01 +-8.70000000000000e+01 -5.60125162760666e-02 1.48451167735552e+00 4.22136261617814e-01 +-8.40000000000000e+01 -1.12537330277774e-01 1.46338016535287e+00 4.09038757981439e-01 +-8.10000000000000e+01 -1.69682294157888e-01 1.43541742412718e+00 3.95941254345065e-01 +-7.80000000000000e+01 -2.26635707511257e-01 1.39667000382612e+00 3.80433194267594e-01 +-7.50000000000000e+01 -2.83054563329602e-01 1.35284069260129e+00 3.64498384963708e-01 +-7.20000000000000e+01 -3.38547509368918e-01 1.30190739059114e+00 3.48252164062169e-01 +-6.90000000000000e+01 -3.92009844730892e-01 1.24296929312344e+00 3.31378866016664e-01 +-6.60000000000000e+01 -4.44112418648996e-01 1.17993144660877e+00 3.14267852452533e-01 +-6.30000000000000e+01 -4.93729438786732e-01 1.11064775458064e+00 2.96902729196076e-01 +-6.00000000000000e+01 -5.40515462246219e-01 1.03650089303830e+00 2.79764994877170e-01 +-5.70000000000000e+01 -5.85463873622744e-01 9.59580509596302e-01 2.62763693920795e-01 +-5.40000000000000e+01 -6.26886217940962e-01 8.78518855684472e-01 2.45989781901971e-01 +-5.10000000000000e+01 -6.65778555933871e-01 7.95604670803777e-01 2.29513868941721e-01 +-4.80000000000000e+01 -7.02870462859048e-01 7.11484155552558e-01 2.13276355228329e-01 +-4.50000000000000e+01 -7.36796816506180e-01 6.26501593235432e-01 1.97754039255514e-01 +-4.20000000000000e+01 -7.69673273482848e-01 5.42131815903682e-01 1.82117274102416e-01 +-3.90000000000000e+01 -8.01595278940914e-01 4.58319115831367e-01 1.66376464239971e-01 +-3.60000000000000e+01 -8.33972117509693e-01 3.77677051408733e-01 1.49924682196984e-01 +-3.30000000000000e+01 -8.68353675582041e-01 2.99363294095321e-01 1.32937727598222e-01 +-3.00000000000000e+01 -9.05393401671804e-01 2.24050836158446e-01 1.15260330638284e-01 +-2.93939393939394e+01 -9.13865799238043e-01 2.09427871821388e-01 1.10486095825134e-01 +-2.87878787878788e+01 -9.23758092996491e-01 1.95653830518661e-01 1.03985755109040e-01 +-2.81818181818182e+01 -9.33650386754938e-01 1.81879789215934e-01 9.74854143929467e-02 +-2.75757575757576e+01 -9.43542680513386e-01 1.68105747913208e-01 9.09850736768532e-02 +-2.69696969696970e+01 -9.53434974271834e-01 1.54331706610481e-01 8.44847329607596e-02 +-2.63636363636364e+01 -9.63327268030281e-01 1.40557665307754e-01 7.79843922446661e-02 +-2.57575757575758e+01 -9.73219561788729e-01 1.26783624005027e-01 7.14840515285726e-02 +-2.51515151515151e+01 -9.83111855547177e-01 1.13009582702300e-01 6.49837108124791e-02 +-2.45454545454545e+01 -9.99880575836849e-01 1.05319736768956e-01 5.84833700963856e-02 +-2.39393939393939e+01 -1.01894143830360e+00 9.96579559587384e-02 5.19830293802920e-02 +-2.33333333333333e+01 -1.03800230077034e+00 9.39961751485212e-02 4.54826886641985e-02 +-2.27272727272727e+01 -1.05706316323709e+00 8.83343943383041e-02 3.89823479481050e-02 +-2.21212121212121e+01 -1.07612402570384e+00 8.26726135280870e-02 3.24820072320115e-02 +-2.15151515151515e+01 -1.09518488817058e+00 7.70108327178698e-02 2.59816665159180e-02 +-2.09090909090909e+01 -1.11424575063733e+00 7.13490519076526e-02 1.94813257998245e-02 +-2.03030303030303e+01 -1.13330661310408e+00 6.56872710974355e-02 1.29190264469231e-02 +-1.96969696969697e+01 -1.15236747557082e+00 6.00254902872183e-02 4.97711478110152e-03 +-1.90909090909091e+01 -1.17142833803757e+00 5.43637094770011e-02 -4.53028510806381e-03 +-1.84848484848485e+01 -1.19001582593545e+00 4.87812691479387e-02 -1.38393939393939e-02 +-1.78787878787879e+01 -1.18990367178894e+00 4.62989390316421e-02 -1.53666666666667e-02 +-1.72727272727273e+01 -1.18824429756078e+00 4.38472513860095e-02 -1.66090909090909e-02 +-1.66666666666667e+01 -1.18610224356356e+00 4.17581317376464e-02 -1.72333333333333e-02 +-1.60606060606061e+01 -1.18102113261637e+00 3.96340304064286e-02 -1.79151515151515e-02 +-1.54545454545455e+01 -1.17331834319750e+00 3.74036337887276e-02 -1.86454545454545e-02 +-1.48484848484848e+01 -1.16468325449867e+00 3.51717849496395e-02 -1.92212121212121e-02 +-1.42424242424242e+01 -1.15425629980783e+00 3.29782994982139e-02 -1.96545454545455e-02 +-1.36363636363636e+01 -1.14324748457348e+00 3.07780601899651e-02 -1.99454545454545e-02 +-1.30303030303030e+01 -1.13307178784462e+00 2.84995901353716e-02 -2.01878787878788e-02 +-1.24242424242424e+01 -1.12446645337812e+00 2.61106760414877e-02 -2.03000000000000e-02 +-1.18181818181818e+01 -1.11592393340212e+00 2.36953041821426e-02 -2.03181818181818e-02 +-1.12121212121212e+01 -1.11029732819538e+00 2.11026004947691e-02 -2.03787878787879e-02 +-1.06060606060606e+01 -1.09418400910191e+00 1.80127002940265e-02 -2.29606060606061e-02 +-1.00000000000000e+01 -1.07242399791558e+00 1.46550788937776e-02 -2.69000000000000e-02 +-9.39393939393939e+00 -9.98561019877181e-01 1.11009108332197e-02 -3.53848484848485e-02 +-8.78787878787879e+00 -9.23980634236818e-01 8.41866185229386e-03 -4.19181818181818e-02 +-8.18181818181818e+00 -8.49803583745944e-01 7.27863913534688e-03 -4.45727272727273e-02 +-7.57575757575758e+00 -7.74882677446586e-01 6.62571587979434e-03 -4.64030303030303e-02 +-6.96969696969697e+00 -6.98378184781609e-01 6.33813286167537e-03 -4.78727272727273e-02 +-6.36363636363636e+00 -6.21539783509268e-01 6.11429076907740e-03 -4.93000000000000e-02 +-5.75757575757576e+00 -5.44648485823879e-01 5.92745406484979e-03 -5.06818181818182e-02 +-5.15151515151515e+00 -4.67525766331407e-01 5.80035500954125e-03 -5.20666666666667e-02 +-4.54545454545454e+00 -3.90389822735672e-01 5.68085292414103e-03 -5.34000000000000e-02 +-3.93939393939394e+00 -3.13247267088306e-01 5.59405723913098e-03 -5.48333333333333e-02 +-3.33333333333333e+00 -2.35856759504779e-01 5.54020815420715e-03 -5.61666666666667e-02 +-2.72727272727273e+00 -1.58515842308483e-01 5.47248861213089e-03 -5.75000000000000e-02 +-2.12121212121212e+00 -8.10492961311999e-02 5.43973032236845e-03 -5.88333333333333e-02 +-1.51515151515152e+00 -3.89351638057239e-03 5.42534623293151e-03 -6.01666666666667e-02 +-9.09090909090912e-01 7.36655985195445e-02 5.42862016439611e-03 -6.15000000000000e-02 +-3.03030303030302e-01 1.50857744554143e-01 5.44677971748978e-03 -6.27939393939394e-02 + 3.03030303030302e-01 2.28026748408033e-01 5.48832557759667e-03 -6.40666666666667e-02 + 9.09090909090912e-01 3.05172610081214e-01 5.54494305854401e-03 -6.53181818181818e-02 + 1.51515151515152e+00 3.81835791985334e-01 5.63171900852408e-03 -6.65303030303030e-02 + 2.12121212121212e+00 4.58753537877247e-01 5.71801446088035e-03 -6.77424242424242e-02 + 2.72727272727273e+00 5.35261336568039e-01 5.82936087398645e-03 -6.89090909090909e-02 + 3.33333333333333e+00 6.11583997813164e-01 5.95886775685609e-03 -7.00000000000000e-02 + 3.93939393939394e+00 6.87738051741699e-01 6.10671086981345e-03 -7.10030303030303e-02 + 4.54545454545455e+00 7.63049069087285e-01 6.28377942693933e-03 -7.19636363636364e-02 + 5.15151515151515e+00 8.38102216419263e-01 6.49546209166224e-03 -7.28121212121212e-02 + 5.75757575757576e+00 9.13016510666990e-01 6.69729365334836e-03 -7.36090909090909e-02 + 6.36363636363637e+00 9.87157194873894e-01 6.93865435054112e-03 -7.43363636363636e-02 + 6.96969696969697e+00 1.06036888582664e+00 7.22235525002886e-03 -7.48757575757576e-02 + 7.57575757575757e+00 1.13262844134454e+00 7.54487840383437e-03 -7.53303030303030e-02 + 8.18181818181818e+00 1.20372758180119e+00 7.88725007661201e-03 -7.55727272727273e-02 + 8.78787878787879e+00 1.27345802757023e+00 8.28108783180105e-03 -7.56424242424242e-02 + 9.39393939393939e+00 1.34111890117878e+00 8.74333136017456e-03 -7.53636363636364e-02 + 1.00000000000000e+01 1.40607544567026e+00 9.28145827279975e-03 -7.48000000000000e-02 + 1.06060606060606e+01 1.46890290953657e+00 9.80197683720062e-03 -7.38666666666667e-02 + 1.12121212121212e+01 1.52695647212531e+00 1.04144356411666e-02 -7.23636363636364e-02 + 1.18181818181818e+01 1.57553496472686e+00 1.10444746533484e-02 -6.94636363636364e-02 + 1.24242424242424e+01 1.61214564387636e+00 1.19073621690708e-02 -6.53303030303030e-02 + 1.30303030303030e+01 1.64566849491418e+00 1.29560230479127e-02 -6.15303030303030e-02 + 1.36363636363636e+01 1.67496293893400e+00 1.44042571469068e-02 -5.82727272727273e-02 + 1.42424242424242e+01 1.69964547694121e+00 1.63316941786360e-02 -5.56303030303030e-02 + 1.48484848484848e+01 1.71745809330384e+00 1.88529148762340e-02 -5.33454545454546e-02 + 1.54545454545455e+01 1.72863882188061e+00 2.19119709868051e-02 -5.14363636363636e-02 + 1.60606060606061e+01 1.73107841820122e+00 2.56021101934952e-02 -4.97666666666667e-02 + 1.66666666666667e+01 1.72416857351564e+00 3.00403799633347e-02 -4.85333333333333e-02 + 1.72727272727273e+01 1.70900027634297e+00 3.52272614575753e-02 -4.77272727272727e-02 + 1.78787878787879e+01 1.68677361405423e+00 4.10390154608310e-02 -4.74242424242424e-02 + 1.84848484848485e+01 1.65985570113332e+00 4.72733081944462e-02 -4.75939393939394e-02 + 1.90909090909091e+01 1.62571246879266e+00 5.41811718177532e-02 -4.86045454545455e-02 + 1.96969696969697e+01 1.59112292296690e+00 6.11524784723331e-02 -4.98909090909091e-02 + 2.03030303030303e+01 1.55727557993673e+00 6.81131061462092e-02 -5.18909090909091e-02 + 2.09090909090909e+01 1.52841041781049e+00 7.46617049216370e-02 -5.44818181818182e-02 + 2.15151515151515e+01 1.50157846156078e+00 8.10123527379542e-02 -5.76909090909091e-02 + 2.21212121212121e+01 1.48156353054261e+00 8.66425682448084e-02 -6.13757575757576e-02 + 2.27272727272727e+01 1.46318838832891e+00 9.20238348513825e-02 -6.55727272727273e-02 + 2.33333333333333e+01 1.44501821971578e+00 9.72586632882891e-02 -7.03666666666666e-02 + 2.39393939393939e+01 1.43020697333118e+00 1.02028872411001e-01 -7.54787878787879e-02 + 2.45454545454545e+01 1.41709833024156e+00 1.06432495147664e-01 -8.09272727272727e-02 + 2.51515151515151e+01 1.40444550792454e+00 1.13009582702300e-01 -8.68081334080713e-02 + 2.57575757575758e+01 1.39031365969818e+00 1.26783624005027e-01 -9.32406670403565e-02 + 2.63636363636364e+01 1.37618181147183e+00 1.40557665307754e-01 -9.96732006726417e-02 + 2.69696969696970e+01 1.36204996324548e+00 1.54331706610481e-01 -1.06105734304927e-01 + 2.75757575757576e+01 1.34791811501912e+00 1.68105747913208e-01 -1.12538267937212e-01 + 2.81818181818182e+01 1.33378626679277e+00 1.81879789215934e-01 -1.18970801569497e-01 + 2.87878787878788e+01 1.31965441856641e+00 1.95653830518661e-01 -1.25403335201783e-01 + 2.93939393939394e+01 1.30552257034006e+00 2.09427871821388e-01 -1.31835868834068e-01 + 3.00000000000000e+01 1.29341914524543e+00 2.24050836158446e-01 -1.36918223780622e-01 + 3.30000000000000e+01 1.24050525083149e+00 2.99363294095321e-01 -1.57417764300295e-01 + 3.60000000000000e+01 1.19138873929956e+00 3.77677051408733e-01 -1.77377233345676e-01 + 3.90000000000000e+01 1.14513611277273e+00 4.58319115831367e-01 -1.96848168534388e-01 + 4.20000000000000e+01 1.09953324783264e+00 5.42131815903682e-01 -2.12896413434129e-01 + 4.50000000000000e+01 1.05256688072311e+00 6.26501593235432e-01 -2.28443776828168e-01 + 4.80000000000000e+01 1.00410066122721e+00 7.11484155552558e-01 -2.43440170565933e-01 + 5.10000000000000e+01 9.51112222762673e-01 7.95604670803778e-01 -2.58069896894384e-01 + 5.40000000000000e+01 8.95551739915661e-01 8.78518855684472e-01 -2.72577400753064e-01 + 5.70000000000000e+01 8.36376962318206e-01 9.59580509596303e-01 -2.86932126524529e-01 + 6.00000000000000e+01 7.72164946066026e-01 1.03650089303830e+00 -3.01269659212033e-01 + 6.30000000000000e+01 7.05327769695331e-01 1.11064775458064e+00 -3.15596876049160e-01 + 6.60000000000000e+01 6.34446312355709e-01 1.17993144660877e+00 -3.29906899802327e-01 + 6.90000000000000e+01 5.60014063901273e-01 1.24296929312344e+00 -3.44089652975456e-01 + 7.20000000000000e+01 4.83639299098453e-01 1.30190739059114e+00 -3.58153346573713e-01 + 7.50000000000000e+01 4.04363661899431e-01 1.35284069260129e+00 -3.71902969224458e-01 + 7.80000000000000e+01 3.23765296444652e-01 1.39667000382612e+00 -3.85491858287239e-01 + 8.10000000000000e+01 2.42403277368412e-01 1.43541742412719e+00 -3.98860482803549e-01 + 8.40000000000000e+01 1.60767614682534e-01 1.46338016535287e+00 -4.10984910287095e-01 + 8.70000000000000e+01 8.00178803943806e-02 1.48451167735552e+00 -4.23109337770642e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -4.35233765254188e-01 + 9.30000000000000e+01 -5.60125162760664e-02 1.48451167735552e+00 -4.38491256503985e-01 + 9.60000000000000e+01 -1.12537330277774e-01 1.46338016535287e+00 -4.41748747753782e-01 + 9.90000000000000e+01 -1.69682294157888e-01 1.43541742412719e+00 -4.45006239003579e-01 + 1.02000000000000e+02 -2.26635707511257e-01 1.39667000382612e+00 -4.44507076046017e-01 + 1.05000000000000e+02 -2.83054563329602e-01 1.35284069260129e+00 -4.43342859472798e-01 + 1.08000000000000e+02 -3.38547509368917e-01 1.30190739059114e+00 -4.41693333504369e-01 + 1.11000000000000e+02 -3.92009844730892e-01 1.24296929312344e+00 -4.38325770991220e-01 + 1.14000000000000e+02 -4.44112418648996e-01 1.17993144660877e+00 -4.34306926650660e-01 + 1.17000000000000e+02 -4.93729438786732e-01 1.11064775458064e+00 -4.29591884494591e-01 + 1.20000000000000e+02 -5.40515462246219e-01 1.03650089303830e+00 -4.24837905631868e-01 + 1.23000000000000e+02 -5.85463873622744e-01 9.59580509596302e-01 -4.20060564745151e-01 + 1.26000000000000e+02 -6.26886217940962e-01 8.78518855684472e-01 -4.15244287151780e-01 + 1.29000000000000e+02 -6.65778555933872e-01 7.95604670803777e-01 -4.11502921715569e-01 + 1.32000000000000e+02 -7.02870462859048e-01 7.11484155552558e-01 -4.08621486005087e-01 + 1.35000000000000e+02 -7.36796816506179e-01 6.26501593235432e-01 -4.08319839471791e-01 + 1.38000000000000e+02 -7.69673273482848e-01 5.42131815903682e-01 -4.09640235024260e-01 + 1.41000000000000e+02 -8.01595278940914e-01 4.58319115831367e-01 -4.12435214291062e-01 + 1.44000000000000e+02 -8.33972117509693e-01 3.77677051408732e-01 -4.25306515605800e-01 + 1.47000000000000e+02 -8.68353675582040e-01 2.99363294095321e-01 -4.38144005481134e-01 + 1.50000000000000e+02 -9.05393401671804e-01 2.24050836158446e-01 -4.50608728167409e-01 + 1.53000000000000e+02 -9.52940359583911e-01 1.55020408675617e-01 -4.56177257856100e-01 + 1.56000000000000e+02 -9.46161531827317e-01 8.88029448186856e-02 -4.60813869572144e-01 + 1.59000000000000e+02 -8.27891340348902e-01 2.97471633695395e-02 -4.65600897937500e-01 + 1.62000000000000e+02 -7.09621148870487e-01 1.31649379704876e-03 -4.73596814821496e-01 + 1.65000000000000e+02 -5.91350957392073e-01 1.00000000000000e-03 -4.83498009263435e-01 + 1.68000000000000e+02 -4.73080765913658e-01 1.00000000000000e-03 -4.93399203705374e-01 + 1.71000000000000e+02 -3.54810574435244e-01 1.00000000000000e-03 -4.48477131481505e-01 + 1.74000000000000e+02 -2.36540382956829e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.18270191478415e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +! ------------------------------------------------------------------------------ +! data for table 3 +! ------------------------------------------------------------------------------ +11.375826 Re ! Reynolds number in millions +10 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-6.296121 alpha0 ! 0-lift angle of attack, depends on airfoil. +12.424242 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-12.424242 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.726808 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.897839 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006889 Cd0 ! 2D drag coefficient value at 0-lift. +-0.148493 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.29929180372746e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.59858360745492e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.89787541118239e-01 1.00000000000000e-03 3.59498066693437e-01 +-1.68000000000000e+02 5.19716721490984e-01 1.00000000000000e-03 4.44864668540581e-01 +-1.65000000000000e+02 6.49645901863730e-01 1.00000000000000e-03 5.12161671351452e-01 +-1.62000000000000e+02 7.79575082236476e-01 2.73663291128801e-03 5.79458674162323e-01 +-1.59000000000000e+02 9.09504262609222e-01 4.73422945175541e-02 6.18778895081229e-01 +-1.56000000000000e+02 1.03943344298197e+00 1.06019947245374e-01 6.10980325445246e-01 +-1.53000000000000e+02 1.04113391136132e+00 1.71801150322234e-01 6.00973062502003e-01 +-1.50000000000000e+02 9.80527917430097e-01 2.40370457512429e-01 5.89923277970316e-01 +-1.47000000000000e+02 9.33300336776142e-01 3.15160597081585e-01 5.71158833684151e-01 +-1.44000000000000e+02 8.89961167520300e-01 3.92914298755453e-01 5.51977380762608e-01 +-1.41000000000000e+02 8.49585711138959e-01 4.72966524133276e-01 5.32786709321265e-01 +-1.38000000000000e+02 8.11153832120128e-01 5.56128686653368e-01 5.26041094105937e-01 +-1.35000000000000e+02 7.72312718112604e-01 6.39820350420886e-01 5.21116706631001e-01 +-1.32000000000000e+02 7.33021445617519e-01 7.24094465560573e-01 5.18195669670497e-01 +-1.29000000000000e+02 6.91403633186907e-01 8.07457077693858e-01 5.18574652121098e-01 +-1.26000000000000e+02 6.48333599471267e-01 8.89591169886138e-01 5.20053641042068e-01 +-1.23000000000000e+02 6.03194523659397e-01 9.69842855050083e-01 5.22907638050997e-01 +-1.20000000000000e+02 5.55060392630828e-01 1.04591748167612e+00 5.25929814046349e-01 +-1.17000000000000e+02 5.05355788200268e-01 1.11920075787644e+00 5.29052897433553e-01 +-1.14000000000000e+02 4.53222527873081e-01 1.18759418728144e+00 5.32344159807179e-01 +-1.11000000000000e+02 3.98981544831074e-01 1.24971851704146e+00 5.34987242096867e-01 +-1.08000000000000e+02 3.43605583756791e-01 1.30772999748140e+00 5.37023962372547e-01 +-1.05000000000000e+02 2.86584547881391e-01 1.35771607503365e+00 5.37461141473347e-01 +-1.02000000000000e+02 2.28928155707703e-01 1.40058579334914e+00 5.37419039745383e-01 +-9.90000000000000e+01 1.70940176031234e-01 1.43836552108155e+00 5.36720145770595e-01 +-9.60000000000000e+01 1.13155384430420e-01 1.46534890091320e+00 5.32311263158339e-01 +-9.30000000000000e+01 5.62248477794174e-02 1.48549750854086e+00 5.27902380546084e-01 +-9.00000000000000e+01 -2.02040424103981e-16 1.50000000000000e+00 5.23493497933829e-01 +-8.70000000000000e+01 -5.62248477794176e-02 1.48549750854086e+00 5.09768895095525e-01 +-8.40000000000000e+01 -1.13155384430420e-01 1.46534890091320e+00 4.96044292257220e-01 +-8.10000000000000e+01 -1.70940176031235e-01 1.43836552108155e+00 4.82319689418916e-01 +-7.80000000000000e+01 -2.28928155707703e-01 1.40058579334913e+00 4.66277832690896e-01 +-7.50000000000000e+01 -2.86584547881392e-01 1.35771607503365e+00 4.49825744413021e-01 +-7.20000000000000e+01 -3.43605583756791e-01 1.30772999748140e+00 4.33074297977145e-01 +-6.90000000000000e+01 -3.98981544831074e-01 1.24971851704146e+00 4.15787772111146e-01 +-6.60000000000000e+01 -4.53222527873082e-01 1.18759418728144e+00 3.98298405676864e-01 +-6.30000000000000e+01 -5.05355788200268e-01 1.11920075787644e+00 3.80592209669592e-01 +-6.00000000000000e+01 -5.55060392630828e-01 1.04591748167612e+00 3.63140277660021e-01 +-5.70000000000000e+01 -6.03194523659397e-01 9.69842855050082e-01 3.45840904049070e-01 +-5.40000000000000e+01 -6.48333599471267e-01 8.89591169886137e-01 3.28795794435821e-01 +-5.10000000000000e+01 -6.91403633186907e-01 8.07457077693857e-01 3.11977197347745e-01 +-4.80000000000000e+01 -7.33021445617519e-01 7.24094465560572e-01 2.95339810279809e-01 +-4.50000000000000e+01 -7.72312718112604e-01 6.39820350420886e-01 2.79246053272290e-01 +-4.20000000000000e+01 -8.11153832120128e-01 5.56128686653368e-01 2.62859197708246e-01 +-3.90000000000000e+01 -8.49585711138959e-01 4.72966524133275e-01 2.46205888910998e-01 +-3.60000000000000e+01 -8.89961167520300e-01 3.92914298755453e-01 2.27731816353521e-01 +-3.30000000000000e+01 -9.33300336776142e-01 3.15160597081585e-01 2.08705773496982e-01 +-3.00000000000000e+01 -9.80527917430098e-01 2.40370457512428e-01 1.89002982071299e-01 +-2.93939393939394e+01 -9.91328889929302e-01 2.25847248091071e-01 1.83843437054215e-01 +-2.87878787878788e+01 -1.00393775611462e+00 2.12164691693897e-01 1.76992020614266e-01 +-2.81818181818182e+01 -1.01654662229995e+00 1.98482135296723e-01 1.70140604174317e-01 +-2.75757575757576e+01 -1.02915548848527e+00 1.84799578899549e-01 1.63289187734368e-01 +-2.69696969696970e+01 -1.04176435467059e+00 1.71117022502375e-01 1.56437771294420e-01 +-2.63636363636364e+01 -1.05437322085591e+00 1.57434466105202e-01 1.49586354854471e-01 +-2.57575757575758e+01 -1.06698208704123e+00 1.43751909708028e-01 1.42734938414522e-01 +-2.51515151515151e+01 -1.07959095322655e+00 1.30069353310854e-01 1.35883521974573e-01 +-2.45454545454545e+01 -1.07098075357612e+00 1.19981231653169e-01 1.29032105534625e-01 +-2.39393939393939e+01 -1.05529753198044e+00 1.11091254908648e-01 1.22180689094676e-01 +-2.33333333333333e+01 -1.03961431038476e+00 1.02201278164127e-01 1.15329272654727e-01 +-2.27272727272727e+01 -1.02393108878908e+00 9.33113014196055e-02 1.08477856214779e-01 +-2.21212121212121e+01 -1.00824786719340e+00 8.44213246750841e-02 1.01626439774830e-01 +-2.15151515151515e+01 -9.92564645597724e-01 7.55313479305628e-02 9.47750233348811e-02 +-2.09090909090909e+01 -9.76881424002044e-01 6.66413711860415e-02 8.79236068949325e-02 +-2.03030303030303e+01 -9.61198202406364e-01 5.77513944415201e-02 8.10721904549837e-02 +-1.96969696969697e+01 -9.45514980810684e-01 4.88614176969987e-02 -3.95951635023153e-02 +-1.90909090909091e+01 -9.34651495526133e-01 4.46153164825509e-02 -8.12090909090909e-02 +-1.84848484848485e+01 -9.24597276876643e-01 4.26329256968199e-02 -8.30424242424243e-02 +-1.78787878787879e+01 -9.12041861744270e-01 4.07073757515610e-02 -8.47151515151515e-02 +-1.72727272727273e+01 -8.96407284407871e-01 3.88674530435047e-02 -8.62454545454545e-02 +-1.66666666666667e+01 -8.78849476309732e-01 3.70663447432112e-02 -8.76333333333333e-02 +-1.60606060606061e+01 -8.61547434651410e-01 3.51688160100844e-02 -8.89666666666667e-02 +-1.54545454545455e+01 -8.44012878047800e-01 3.32300769139150e-02 -9.02909090909091e-02 +-1.48484848484848e+01 -8.26235841572675e-01 3.12245504801730e-02 -9.15030303030303e-02 +-1.42424242424242e+01 -8.09614736539839e-01 2.91213350939312e-02 -9.27151515151515e-02 +-1.36363636363636e+01 -7.92754473277564e-01 2.69651381867203e-02 -9.40000000000000e-02 +-1.30303030303030e+01 -7.78631243085536e-01 2.51734034255521e-02 -9.50515151515152e-02 +-1.24242424242424e+01 -7.62388805249312e-01 2.29867456133883e-02 -9.65939393939394e-02 +-1.18181818181818e+01 -7.32587424460726e-01 2.03197906532718e-02 -1.00836363636364e-01 +-1.12121212121212e+01 -6.73047382169814e-01 1.73848789614861e-02 -1.08142424242424e-01 +-1.06060606060606e+01 -5.95998964498721e-01 1.48081333520775e-02 -1.16021212121212e-01 +-1.00000000000000e+01 -5.02548278258603e-01 1.14545631706507e-02 -1.27300000000000e-01 +-9.39393939393939e+00 -4.16800479991667e-01 1.01605817238069e-02 -1.32463636363636e-01 +-8.78787878787879e+00 -3.32769970677785e-01 9.17509167391516e-03 -1.36615151515152e-01 +-8.18181818181818e+00 -2.50317241349786e-01 8.41974928985095e-03 -1.40118181818182e-01 +-7.57575757575758e+00 -1.69083554663511e-01 7.83087804464492e-03 -1.43136363636364e-01 +-6.96969696969697e+00 -8.82982896574335e-02 7.29546402913772e-03 -1.45921212121212e-01 +-6.36363636363636e+00 -8.77857028213756e-03 6.91954601317971e-03 -1.48263636363636e-01 +-5.75757575757576e+00 7.00236744048414e-02 6.64548783628781e-03 -1.50324242424242e-01 +-5.15151515151515e+00 1.48450573537283e-01 6.41688813009602e-03 -1.52245454545455e-01 +-4.54545454545454e+00 2.25784652426873e-01 6.29466871674866e-03 -1.53881818181818e-01 +-3.93939393939394e+00 3.02683596204566e-01 6.20015993228051e-03 -1.55333333333333e-01 +-3.33333333333333e+00 3.79001252619039e-01 6.17751889065558e-03 -1.56633333333333e-01 +-2.72727272727273e+00 4.55405271727477e-01 6.14991262895568e-03 -1.57845454545455e-01 +-2.12121212121212e+00 5.30862622844385e-01 6.19231785899928e-03 -1.58981818181818e-01 +-1.51515151515152e+00 6.06183786636196e-01 6.24996683837203e-03 -1.59975757575758e-01 +-9.09090909090912e-01 6.81179429504603e-01 6.32954578497888e-03 -1.60909090909091e-01 +-3.03030303030302e-01 7.55274907370540e-01 6.45964485892254e-03 -1.61596969696970e-01 + 3.03030303030302e-01 8.29121262080810e-01 6.60922795602862e-03 -1.62263636363636e-01 + 9.09090909090912e-01 9.02449440627296e-01 6.77154833182243e-03 -1.62827272727273e-01 + 1.51515151515152e+00 9.74648260868098e-01 6.98628013580154e-03 -1.63109090909091e-01 + 2.12121212121212e+00 1.04670092885758e+00 7.19219550209902e-03 -1.63400000000000e-01 + 2.72727272727273e+00 1.11689347728475e+00 7.45605136979940e-03 -1.63263636363636e-01 + 3.33333333333333e+00 1.18283432385523e+00 7.76605314267802e-03 -1.62366666666667e-01 + 3.93939393939394e+00 1.24734686433323e+00 8.10829683486908e-03 -1.61296969696970e-01 + 4.54545454545455e+00 1.31407826171769e+00 8.45940686155258e-03 -1.60536363636364e-01 + 5.15151515151515e+00 1.37962051123910e+00 8.83906200361352e-03 -1.59596969696970e-01 + 5.75757575757576e+00 1.44232275678593e+00 9.30359162188171e-03 -1.58230303030303e-01 + 6.36363636363637e+00 1.50260352525969e+00 9.82325704818665e-03 -1.56509090909091e-01 + 6.96969696969697e+00 1.55956265165790e+00 1.04242130930555e-02 -1.54315151515152e-01 + 7.57575757575757e+00 1.61360205467172e+00 1.10757617866808e-02 -1.51651515151515e-01 + 8.18181818181818e+00 1.66529970002228e+00 1.17723247322326e-02 -1.48718181818182e-01 + 8.78787878787879e+00 1.71230386512009e+00 1.26018587349047e-02 -1.45215151515152e-01 + 9.39393939393939e+00 1.75606942919426e+00 1.34905423641500e-02 -1.41378787878788e-01 + 1.00000000000000e+01 1.79539063617135e+00 1.44938301398738e-02 -1.37000000000000e-01 + 1.06060606060606e+01 1.82700895517525e+00 1.57403983213983e-02 -1.31803030303030e-01 + 1.12121212121212e+01 1.85192752211279e+00 1.72072633119815e-02 -1.26148484848485e-01 + 1.18181818181818e+01 1.87599574867899e+00 1.87056573016204e-02 -1.20636363636364e-01 + 1.24242424242424e+01 1.89726715261759e+00 2.03749584389656e-02 -1.15181818181818e-01 + 1.30303030303030e+01 1.91204142465642e+00 2.24697685167909e-02 -1.09751515151515e-01 + 1.36363636363636e+01 1.92294930531933e+00 2.51160035471797e-02 -1.04945454545455e-01 + 1.42424242424242e+01 1.92753277947040e+00 2.86409313235632e-02 -1.00993939393939e-01 + 1.48484848484848e+01 1.92482192762358e+00 3.30298794615158e-02 -9.78272727272727e-02 + 1.54545454545455e+01 1.91519541697549e+00 3.80559934432079e-02 -9.52818181818182e-02 + 1.60606060606061e+01 1.89494961661188e+00 4.39051073608497e-02 -9.32424242424242e-02 + 1.66666666666667e+01 1.86579517220168e+00 5.05396573004739e-02 -9.18666666666667e-02 + 1.72727272727273e+01 1.83156858034212e+00 5.76587691796766e-02 -9.12363636363636e-02 + 1.78787878787879e+01 1.79340916426512e+00 6.51648295104717e-02 -9.14030303030303e-02 + 1.84848484848485e+01 1.75661826472324e+00 7.25769538603723e-02 -9.23727272727273e-02 + 1.90909090909091e+01 1.72277034006030e+00 7.96698640605964e-02 -9.42636363636364e-02 + 1.96969696969697e+01 1.69365575535500e+00 8.62589590960098e-02 -9.68454545454545e-02 + 2.03030303030303e+01 1.66825144484808e+00 9.23711525382618e-02 -1.00178787878788e-01 + 2.09090909090909e+01 1.64682646154766e+00 9.79581670827555e-02 -1.03936363636364e-01 + 2.15151515151515e+01 1.62831455834749e+00 1.03105942573904e-01 -1.08127272727273e-01 + 2.21212121212121e+01 1.60777313183916e+00 1.08260473609105e-01 -1.13218181818182e-01 + 2.27272727272727e+01 1.59366240438909e+00 1.12585118314718e-01 -1.18309090909091e-01 + 2.33333333333333e+01 1.58024590013280e+00 1.16714463448522e-01 -1.23666666666667e-01 + 2.39393939393939e+01 1.56778270715219e+00 1.20539131078451e-01 -1.29418181818182e-01 + 2.45454545454545e+01 1.55631268515217e+00 1.24034712545393e-01 -1.35481818181818e-01 + 2.51515151515151e+01 1.54227279032365e+00 1.30069353310854e-01 -1.42307233524884e-01 + 2.57575757575758e+01 1.52426012434462e+00 1.43751909708028e-01 -1.50336167624422e-01 + 2.63636363636364e+01 1.50624745836559e+00 1.57434466105202e-01 -1.58365101723960e-01 + 2.69696969696970e+01 1.48823479238656e+00 1.71117022502375e-01 -1.66394035823497e-01 + 2.75757575757576e+01 1.47022212640752e+00 1.84799578899549e-01 -1.74422969923035e-01 + 2.81818181818182e+01 1.45220946042849e+00 1.98482135296723e-01 -1.82451904022573e-01 + 2.87878787878788e+01 1.43419679444946e+00 2.12164691693897e-01 -1.90480838122111e-01 + 2.93939393939394e+01 1.41618412847043e+00 2.25847248091071e-01 -1.98509772221648e-01 + 3.00000000000000e+01 1.40075416775728e+00 2.40370457512428e-01 -2.04661566853322e-01 + 3.30000000000000e+01 1.33328619539449e+00 3.15160597081585e-01 -2.28636819115974e-01 + 3.60000000000000e+01 1.27137309645757e+00 3.92914298755453e-01 -2.51861215591480e-01 + 3.90000000000000e+01 1.21369387305566e+00 4.72966524133275e-01 -2.74399375783489e-01 + 4.20000000000000e+01 1.15879118874304e+00 5.56128686653368e-01 -2.91890663806831e-01 + 4.50000000000000e+01 1.10330388301801e+00 6.39820350420886e-01 -3.08643385171343e-01 + 4.80000000000000e+01 1.04717349373931e+00 7.24094465560572e-01 -3.24583683211142e-01 + 5.10000000000000e+01 9.87719475981296e-01 8.07457077693858e-01 -3.39853832144041e-01 + 5.40000000000000e+01 9.26190856387524e-01 8.89591169886138e-01 -3.54900598041307e-01 + 5.70000000000000e+01 8.61706462370567e-01 9.69842855050083e-01 -3.69668135144031e-01 + 6.00000000000000e+01 7.92943418044039e-01 1.04591748167612e+00 -3.84409606904564e-01 + 6.30000000000000e+01 7.21936840286097e-01 1.11920075787644e+00 -3.99135439459783e-01 + 6.60000000000000e+01 6.47460754104402e-01 1.18759418728144e+00 -4.13835206672811e-01 + 6.90000000000000e+01 5.69973635472963e-01 1.24971851704146e+00 -4.28436375566064e-01 + 7.20000000000000e+01 4.90865119652558e-01 1.30772999748140e+00 -4.42945307321464e-01 + 7.50000000000000e+01 4.09406496973416e-01 1.35771607503365e+00 -4.57210923868387e-01 + 7.80000000000000e+01 3.27040222439576e-01 1.40058579334914e+00 -4.71326838509741e-01 + 8.10000000000000e+01 2.44200251473192e-01 1.43836552108155e+00 -4.85237606095316e-01 + 8.40000000000000e+01 1.61650549186314e-01 1.46534890091320e+00 -4.97989570041487e-01 + 8.70000000000000e+01 8.03212111134534e-02 1.48549750854086e+00 -5.10741533987658e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -5.23493497933829e-01 + 9.30000000000000e+01 -5.62248477794173e-02 1.48549750854086e+00 -5.27902380546084e-01 + 9.60000000000000e+01 -1.13155384430420e-01 1.46534890091320e+00 -5.32311263158340e-01 + 9.90000000000000e+01 -1.70940176031234e-01 1.43836552108155e+00 -5.36720145770595e-01 + 1.02000000000000e+02 -2.28928155707703e-01 1.40058579334914e+00 -5.37419039745383e-01 + 1.05000000000000e+02 -2.86584547881392e-01 1.35771607503365e+00 -5.37461141473347e-01 + 1.08000000000000e+02 -3.43605583756791e-01 1.30772999748140e+00 -5.37023962372547e-01 + 1.11000000000000e+02 -3.98981544831075e-01 1.24971851704146e+00 -5.34987242096867e-01 + 1.14000000000000e+02 -4.53222527873082e-01 1.18759418728144e+00 -5.32344159807179e-01 + 1.17000000000000e+02 -5.05355788200268e-01 1.11920075787644e+00 -5.29052897433553e-01 + 1.20000000000000e+02 -5.55060392630828e-01 1.04591748167612e+00 -5.25929814046349e-01 + 1.23000000000000e+02 -6.03194523659397e-01 9.69842855050082e-01 -5.22907638050997e-01 + 1.26000000000000e+02 -6.48333599471267e-01 8.89591169886138e-01 -5.20053641042068e-01 + 1.29000000000000e+02 -6.91403633186908e-01 8.07457077693857e-01 -5.18574652121098e-01 + 1.32000000000000e+02 -7.33021445617519e-01 7.24094465560572e-01 -5.18195669670497e-01 + 1.35000000000000e+02 -7.72312718112604e-01 6.39820350420886e-01 -5.21116706631001e-01 + 1.38000000000000e+02 -8.11153832120128e-01 5.56128686653367e-01 -5.26041094105937e-01 + 1.41000000000000e+02 -8.49585711138959e-01 4.72966524133275e-01 -5.32786709321264e-01 + 1.44000000000000e+02 -8.89961167520300e-01 3.92914298755453e-01 -5.51977380762608e-01 + 1.47000000000000e+02 -9.33300336776142e-01 3.15160597081585e-01 -5.71158833684151e-01 + 1.50000000000000e+02 -9.80527917430098e-01 2.40370457512429e-01 -5.89923277970316e-01 + 1.53000000000000e+02 -1.04113391136132e+00 1.71801150322234e-01 -6.00973062502003e-01 + 1.56000000000000e+02 -1.03943344298197e+00 1.06019947245374e-01 -6.10980325445246e-01 + 1.59000000000000e+02 -9.09504262609222e-01 4.73422945175541e-02 -6.19636037938372e-01 + 1.62000000000000e+02 -7.79575082236476e-01 2.73663291128801e-03 -5.99458674162323e-01 + 1.65000000000000e+02 -6.49645901863730e-01 1.00000000000000e-03 -5.62161671351452e-01 + 1.68000000000000e+02 -5.19716721490984e-01 1.00000000000000e-03 -5.24864668540581e-01 + 1.71000000000000e+02 -3.89787541118239e-01 1.00000000000000e-03 -4.48926638122008e-01 + 1.74000000000000e+02 -2.59858360745492e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.29929180372746e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_21.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_21.dat new file mode 100644 index 000000000..56f0f0640 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_21.dat @@ -0,0 +1,742 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF21_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +3 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +11.026239 Re ! Reynolds number in millions +-10 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +3.407498 alpha0 ! 0-lift angle of attack, depends on airfoil. +14.242424 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-14.242424 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.274054 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.079860 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005305 Cd0 ! 2D drag coefficient value at 0-lift. +0.031593 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.04162079911784e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.08324159823569e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.12486239735353e-01 1.00000000000000e-03 3.58566125776239e-01 +-1.68000000000000e+02 4.16648319647137e-01 1.00000000000000e-03 3.79628804336743e-01 +-1.65000000000000e+02 5.20810399558921e-01 1.00000000000000e-03 3.49072010841858e-01 +-1.62000000000000e+02 6.24972479470706e-01 1.00000000000000e-03 3.18515217346972e-01 +-1.59000000000000e+02 7.29134559382490e-01 1.64174424311708e-02 2.99274707342995e-01 +-1.56000000000000e+02 8.33296639294275e-01 7.28183037202886e-02 2.99093201113177e-01 +-1.53000000000000e+02 8.46220602046613e-01 1.39440801614036e-01 2.99805085685274e-01 +-1.50000000000000e+02 8.14475900983719e-01 2.08899343248114e-01 2.99788882357380e-01 +-1.47000000000000e+02 7.89764121178056e-01 2.84696732965804e-01 2.94384828569551e-01 +-1.44000000000000e+02 7.66221837342317e-01 3.63530458167433e-01 2.88689539621726e-01 +-1.41000000000000e+02 7.43523830574579e-01 4.44720142042252e-01 2.82957124518306e-01 +-1.38000000000000e+02 7.19479182519659e-01 5.29136815386777e-01 2.84658018205387e-01 +-1.35000000000000e+02 6.93820336573472e-01 6.14136168162588e-01 2.87446713178883e-01 +-1.32000000000000e+02 6.66385872946892e-01 6.99776468312812e-01 2.91431989567435e-01 +-1.29000000000000e+02 6.34770597004850e-01 7.84600637372475e-01 2.97194249247012e-01 +-1.26000000000000e+02 6.00933534206206e-01 8.68239077343502e-01 3.03548836690265e-01 +-1.23000000000000e+02 5.64008669305019e-01 9.50052723931816e-01 3.10643833838111e-01 +-1.20000000000000e+02 5.22915179541197e-01 1.02775832647436e+00 3.17473156428121e-01 +-1.17000000000000e+02 4.79660823049518e-01 1.10270695951025e+00 3.24143074283429e-01 +-1.14000000000000e+02 4.33088612169511e-01 1.17281719080238e+00 3.30547317580902e-01 +-1.11000000000000e+02 3.83573648100643e-01 1.23670316622465e+00 3.36206191473542e-01 +-1.08000000000000e+02 3.32426920489111e-01 1.29650155517964e+00 3.41167784310049e-01 +-1.05000000000000e+02 2.78783059485101e-01 1.34831428106534e+00 3.44289997808827e-01 +-1.02000000000000e+02 2.23861700673330e-01 1.39303449930616e+00 3.46922509317596e-01 +-9.90000000000000e+01 1.68160177791911e-01 1.43268034652384e+00 3.48883947728947e-01 +-9.60000000000000e+01 1.11789445789782e-01 1.46155234825849e+00 3.47054729995421e-01 +-9.30000000000000e+01 5.57555817712362e-02 1.48359641015100e+00 3.45225512261896e-01 +-9.00000000000000e+01 -1.99817533748966e-16 1.50000000000000e+00 3.43396294528370e-01 +-8.70000000000000e+01 -5.57555817712364e-02 1.48359641015100e+00 3.31228745692179e-01 +-8.40000000000000e+01 -1.11789445789782e-01 1.46155234825849e+00 3.19061196855988e-01 +-8.10000000000000e+01 -1.68160177791911e-01 1.43268034652384e+00 3.06893648019797e-01 +-7.80000000000000e+01 -2.23861700673330e-01 1.39303449930616e+00 2.92167558077541e-01 +-7.50000000000000e+01 -2.78783059485101e-01 1.34831428106534e+00 2.76988520666747e-01 +-7.20000000000000e+01 -3.32426920489111e-01 1.29650155517964e+00 2.61478954022155e-01 +-6.90000000000000e+01 -3.83573648100643e-01 1.23670316622465e+00 2.45191655650894e-01 +-6.60000000000000e+01 -4.33088612169511e-01 1.17281719080238e+00 2.28609530873444e-01 +-6.30000000000000e+01 -4.79660823049518e-01 1.10270695951025e+00 2.11712246834207e-01 +-6.00000000000000e+01 -5.22915179541197e-01 1.02775832647436e+00 1.94969980713671e-01 +-5.70000000000000e+01 -5.64008669305019e-01 9.50052723931815e-01 1.78320725344355e-01 +-5.40000000000000e+01 -6.00933534206206e-01 8.68239077343502e-01 1.61826487893739e-01 +-5.10000000000000e+01 -6.34770597004850e-01 7.84600637372474e-01 1.45676883187386e-01 +-4.80000000000000e+01 -6.66385872946892e-01 6.99776468312812e-01 1.29802984676443e-01 +-4.50000000000000e+01 -6.93820336573472e-01 6.14136168162588e-01 1.14756204751729e-01 +-4.20000000000000e+01 -7.19479182519659e-01 5.29136815386776e-01 9.97694978817526e-02 +-3.90000000000000e+01 -7.43523830574579e-01 4.44720142042251e-01 8.48374028797208e-02 +-3.60000000000000e+01 -7.66221837342317e-01 3.63530458167433e-01 7.02784889753059e-02 +-3.30000000000000e+01 -7.89764121178056e-01 2.84696732965804e-01 5.54376970194038e-02 +-3.00000000000000e+01 -8.14475900983719e-01 2.08899343248113e-01 4.02089316908646e-02 +-2.93939393939394e+01 -8.20130576083346e-01 1.94183764268521e-01 3.64563992327767e-02 +-2.87878787878788e+01 -8.26735645947465e-01 1.80324786381310e-01 3.17339333430959e-02 +-2.81818181818182e+01 -8.33340715811583e-01 1.66465808494098e-01 2.70114674534150e-02 +-2.75757575757576e+01 -8.39945785675701e-01 1.52606830606887e-01 2.22890015637342e-02 +-2.69696969696970e+01 -8.46550855539819e-01 1.38747852719675e-01 1.75665356740534e-02 +-2.63636363636364e+01 -8.53155925403937e-01 1.24888874832464e-01 1.28440697843726e-02 +-2.57575757575758e+01 -8.59760995268055e-01 1.11029896945252e-01 8.12160389469173e-03 +-2.51515151515151e+01 -8.66366065132174e-01 9.71709190580405e-02 3.39913800501090e-03 +-2.45454545454545e+01 -9.11309120525827e-01 9.11235433875122e-02 -1.32332788466992e-03 +-2.39393939393939e+01 -9.69031504429325e-01 8.76800351225449e-02 -6.04579377435074e-03 +-2.33333333333333e+01 -1.02675388833282e+00 8.42365268575775e-02 -1.07682596640316e-02 +-2.27272727272727e+01 -1.08447627223632e+00 8.07930185926102e-02 -1.54907255537124e-02 +-2.21212121212121e+01 -1.14219865613982e+00 7.73495103276429e-02 -2.02131914433932e-02 +-2.15151515151515e+01 -1.19992104004332e+00 7.39060020626755e-02 -2.49356573330741e-02 +-2.09090909090909e+01 -1.25764342394682e+00 7.04624937977082e-02 -2.96581232227549e-02 +-2.03030303030303e+01 -1.31536580785031e+00 6.70189855327409e-02 -3.43805891124357e-02 +-1.96969696969697e+01 -1.37308819175381e+00 6.35754772677736e-02 2.80636032491880e-02 +-1.90909090909091e+01 -1.39260973237370e+00 6.10920492059501e-02 4.72818181818182e-02 +-1.84848484848485e+01 -1.39345989396637e+00 5.89893950078127e-02 4.50545454545455e-02 +-1.78787878787879e+01 -1.39241441753462e+00 5.68529774985643e-02 4.32848484848485e-02 +-1.72727272727273e+01 -1.39316184350009e+00 5.44836296423156e-02 4.18000000000000e-02 +-1.66666666666667e+01 -1.39490017116015e+00 5.19264140690055e-02 4.06666666666667e-02 +-1.60606060606061e+01 -1.39808342570596e+00 4.91785975362622e-02 3.97848484848485e-02 +-1.54545454545455e+01 -1.40149866392609e+00 4.63408016351375e-02 3.92727272727273e-02 +-1.48484848484848e+01 -1.40454935637229e+00 4.34534261398340e-02 3.90000000000000e-02 +-1.42424242424242e+01 -1.40661246117639e+00 4.05955403934666e-02 3.90515151515152e-02 +-1.36363636363636e+01 -1.40697214300051e+00 3.77925866797462e-02 3.92454545454545e-02 +-1.30303030303030e+01 -1.40588026983389e+00 3.50438557729829e-02 3.96757575757576e-02 +-1.24242424242424e+01 -1.40367818908304e+00 3.23071759486254e-02 4.03060606060606e-02 +-1.18181818181818e+01 -1.40016705759854e+00 2.95972281524353e-02 4.11545454545455e-02 +-1.12121212121212e+01 -1.39728559608719e+00 2.68555238332512e-02 4.21181818181818e-02 +-1.06060606060606e+01 -1.39613406997574e+00 2.40952852133830e-02 4.32878787878788e-02 +-1.00000000000000e+01 -1.40111685502376e+00 2.12732359437999e-02 4.50000000000000e-02 +-9.39393939393939e+00 -1.40567544135303e+00 1.82246651989600e-02 4.65696969696970e-02 +-8.78787878787879e+00 -1.39898281947788e+00 1.43210477226882e-02 4.54181818181818e-02 +-8.18181818181818e+00 -1.36799487879670e+00 1.12527769769648e-02 4.37000000000000e-02 +-7.57575757575758e+00 -1.32749892152097e+00 9.94935595205027e-03 4.50333333333333e-02 +-6.96969696969697e+00 -1.27317010915093e+00 8.98016862049173e-03 4.59303030303030e-02 +-6.36363636363636e+00 -1.21298205197813e+00 8.10227584384035e-03 4.64818181818182e-02 +-5.75757575757576e+00 -1.14936726453040e+00 7.30325020148577e-03 4.68939393939394e-02 +-5.15151515151515e+00 -1.08364805375136e+00 6.56354536192204e-03 4.71000000000000e-02 +-4.54545454545454e+00 -1.01087322522057e+00 6.21690404568232e-03 4.66454545454545e-02 +-3.93939393939394e+00 -9.35530006009840e-01 6.01840130121529e-03 4.58151515151515e-02 +-3.33333333333333e+00 -8.59457695251252e-01 5.86761849138776e-03 4.49333333333333e-02 +-2.72727272727273e+00 -7.82904846881577e-01 5.74298153137091e-03 4.39090909090909e-02 +-2.12121212121212e+00 -7.06434849824157e-01 5.61075290551793e-03 4.28939393939394e-02 +-1.51515151515152e+00 -6.29484315155652e-01 5.51519175783761e-03 4.18272727272727e-02 +-9.09090909090912e-01 -5.52311738970300e-01 5.43683220943956e-03 4.07181818181818e-02 +-3.03030303030302e-01 -4.75145790889928e-01 5.35804499374478e-03 3.95060606060606e-02 + 3.03030303030302e-01 -3.97665007822982e-01 5.31087872933274e-03 3.82939393939394e-02 + 9.09090909090912e-01 -3.20137828021172e-01 5.26604099636418e-03 3.70000000000000e-02 + 1.51515151515152e+00 -2.42524482854616e-01 5.24626779037922e-03 3.57666666666667e-02 + 2.12121212121212e+00 -1.64858112848216e-01 5.25187660394407e-03 3.44333333333333e-02 + 2.72727272727273e+00 -8.71287758445006e-02 5.25728375192037e-03 3.31000000000000e-02 + 3.33333333333333e+00 -9.50217446798372e-03 5.29945669125766e-03 3.17666666666667e-02 + 3.93939393939394e+00 6.81476252759649e-02 5.34105702538117e-03 3.03454545454546e-02 + 4.54545454545455e+00 1.45860392017229e-01 5.41030944390456e-03 2.90000000000000e-02 + 5.15151515151515e+00 2.23374315609077e-01 5.49291303763229e-03 2.76363636363636e-02 + 5.75757575757576e+00 3.00931321883299e-01 5.58752485911723e-03 2.62333333333333e-02 + 6.36363636363637e+00 3.78173493170947e-01 5.72543054086675e-03 2.49000000000000e-02 + 6.96969696969697e+00 4.55256589939063e-01 5.89197966405847e-03 2.34727272727273e-02 + 7.57575757575757e+00 5.32449050439357e-01 6.03695627048344e-03 2.21333333333333e-02 + 8.18181818181818e+00 6.09293535428174e-01 6.23963946740214e-03 2.08000000000000e-02 + 8.78787878787879e+00 6.85518292601314e-01 6.48001593511948e-03 1.94666666666667e-02 + 9.39393939393939e+00 7.61414958577919e-01 6.76654483860957e-03 1.81333333333333e-02 + 1.00000000000000e+01 8.36844343153399e-01 7.09141399316377e-03 1.69000000000000e-02 + 1.06060606060606e+01 9.11378933556510e-01 7.48726946093661e-03 1.56878787878788e-02 + 1.12121212121212e+01 9.85055184364645e-01 7.94557757943928e-03 1.45181818181818e-02 + 1.18181818181818e+01 1.05772396321574e+00 8.47090357356341e-03 1.34272727272727e-02 + 1.24242424242424e+01 1.12908037728070e+00 9.06323479824903e-03 1.23363636363636e-02 + 1.30303030303030e+01 1.19857097979365e+00 9.78651526403080e-03 1.13454545454546e-02 + 1.36363636363636e+01 1.26456525692938e+00 1.06947735496146e-02 1.02545454545455e-02 + 1.42424242424242e+01 1.32738467177945e+00 1.19551795748827e-02 8.72727272727274e-03 + 1.48484848484848e+01 1.37787581136577e+00 1.39588959431186e-02 6.44090909090911e-03 + 1.54545454545455e+01 1.41890201703994e+00 1.64103640843172e-02 4.07727272727273e-03 + 1.60606060606061e+01 1.44221792620619e+00 1.91217258468344e-02 3.70000000000000e-03 + 1.66666666666667e+01 1.45265211334283e+00 2.23861568919973e-02 3.68333333333333e-03 + 1.72727272727273e+01 1.45722374162421e+00 2.59790872799891e-02 3.62272727272727e-03 + 1.78787878787879e+01 1.45508441361283e+00 3.00912263029188e-02 3.37272727272727e-03 + 1.84848484848485e+01 1.44647936919297e+00 3.47163394719076e-02 2.71818181818181e-03 + 1.90909090909091e+01 1.43222386527722e+00 3.97721678106978e-02 1.71818181818182e-03 + 1.96969696969697e+01 1.41358718396936e+00 4.51753456307361e-02 3.87878787878792e-04 + 2.03030303030303e+01 1.39104986288048e+00 5.09012330762210e-02 -1.30909090909091e-03 + 2.09090909090909e+01 1.36778842132247e+00 5.67339856586614e-02 -3.49545454545455e-03 + 2.15151515151515e+01 1.34481530233111e+00 6.25611985418235e-02 -5.86666666666665e-03 + 2.21212121212121e+01 1.32422664410649e+00 6.82288423118505e-02 -8.67878787878788e-03 + 2.27272727272727e+01 1.30107622330691e+00 7.41407486175430e-02 -1.21181818181818e-02 + 2.33333333333333e+01 1.28370219599784e+00 7.95348844273269e-02 -1.58333333333333e-02 + 2.39393939393939e+01 1.26563553171830e+00 8.49906122724484e-02 -2.01515151515151e-02 + 2.45454545454545e+01 1.25001795222906e+00 9.00969308825845e-02 -2.48727272727273e-02 + 2.51515151515151e+01 1.23766580733168e+00 9.71709190580405e-02 -2.98044894195961e-02 + 2.57575757575758e+01 1.22822999324008e+00 1.11029896945252e-01 -3.46224470979805e-02 + 2.63636363636364e+01 1.21879417914848e+00 1.24888874832464e-01 -3.94404047763648e-02 + 2.69696969696970e+01 1.20935836505688e+00 1.38747852719675e-01 -4.42583624547492e-02 + 2.75757575757576e+01 1.19992255096529e+00 1.52606830606886e-01 -4.90763201331336e-02 + 2.81818181818182e+01 1.19048673687369e+00 1.66465808494098e-01 -5.38942778115179e-02 + 2.87878787878788e+01 1.18105092278209e+00 1.80324786381310e-01 -5.87122354899024e-02 + 2.93939393939394e+01 1.17161510869049e+00 1.94183764268521e-01 -6.35301931682867e-02 + 3.00000000000000e+01 1.16353700140531e+00 2.08899343248113e-01 -6.75436764994254e-02 + 3.30000000000000e+01 1.12823445882579e+00 2.84696732965804e-01 -8.46349824905641e-02 + 3.60000000000000e+01 1.09460262477474e+00 3.63530458167433e-01 -1.01404498742805e-01 + 3.90000000000000e+01 1.06217690082083e+00 4.44720142042251e-01 -1.17888473322148e-01 + 4.20000000000000e+01 1.02782740359951e+00 5.29136815386777e-01 -1.32560273783821e-01 + 4.50000000000000e+01 9.91171909390674e-01 6.14136168162588e-01 -1.46966878033152e-01 + 4.80000000000000e+01 9.51979818495560e-01 6.99776468312812e-01 -1.61081766448908e-01 + 5.10000000000000e+01 9.06815138578356e-01 7.84600637372475e-01 -1.75077712478064e-01 + 5.40000000000000e+01 8.58476477437437e-01 8.68239077343502e-01 -1.89034011045020e-01 + 5.70000000000000e+01 8.05726670435741e-01 9.50052723931816e-01 -2.02940750284226e-01 + 6.00000000000000e+01 7.47021685058853e-01 1.02775832647436e+00 -2.16797380419118e-01 + 6.30000000000000e+01 6.85229747213597e-01 1.10270695951025e+00 -2.30623945091421e-01 + 6.60000000000000e+01 6.18698017385016e-01 1.17281719080238e+00 -2.44400400659409e-01 + 6.90000000000000e+01 5.47962354429490e-01 1.23670316622465e+00 -2.57999417469640e-01 + 7.20000000000000e+01 4.74895600698730e-01 1.29650155517964e+00 -2.71432443183905e-01 + 7.50000000000000e+01 3.98261513550144e-01 1.34831428106534e+00 -2.84427595834672e-01 + 7.80000000000000e+01 3.19802429533329e-01 1.39303449930616e+00 -2.97244516899588e-01 + 8.10000000000000e+01 2.40228825417016e-01 1.43268034652384e+00 -3.09817194680192e-01 + 8.40000000000000e+01 1.59699208271117e-01 1.46155234825849e+00 -3.21010227962918e-01 + 8.70000000000000e+01 7.96508311017660e-02 1.48359641015100e+00 -3.32203261245644e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -3.43396294528370e-01 + 9.30000000000000e+01 -5.57555817712362e-02 1.48359641015100e+00 -3.45225512261896e-01 + 9.60000000000000e+01 -1.11789445789782e-01 1.46155234825849e+00 -3.47054729995421e-01 + 9.90000000000000e+01 -1.68160177791911e-01 1.43268034652384e+00 -3.48883947728947e-01 + 1.02000000000000e+02 -2.23861700673330e-01 1.39303449930616e+00 -3.46922509317596e-01 + 1.05000000000000e+02 -2.78783059485101e-01 1.34831428106534e+00 -3.44289997808827e-01 + 1.08000000000000e+02 -3.32426920489111e-01 1.29650155517964e+00 -3.41167784310049e-01 + 1.11000000000000e+02 -3.83573648100643e-01 1.23670316622465e+00 -3.36206191473542e-01 + 1.14000000000000e+02 -4.33088612169511e-01 1.17281719080238e+00 -3.30547317580902e-01 + 1.17000000000000e+02 -4.79660823049518e-01 1.10270695951025e+00 -3.24143074283429e-01 + 1.20000000000000e+02 -5.22915179541197e-01 1.02775832647436e+00 -3.17473156428121e-01 + 1.23000000000000e+02 -5.64008669305019e-01 9.50052723931815e-01 -3.10643833838111e-01 + 1.26000000000000e+02 -6.00933534206206e-01 8.68239077343502e-01 -3.03548836690265e-01 + 1.29000000000000e+02 -6.34770597004850e-01 7.84600637372474e-01 -2.97194249247012e-01 + 1.32000000000000e+02 -6.66385872946892e-01 6.99776468312812e-01 -2.91431989567435e-01 + 1.35000000000000e+02 -6.93820336573472e-01 6.14136168162588e-01 -2.87446713178883e-01 + 1.38000000000000e+02 -7.19479182519659e-01 5.29136815386776e-01 -2.84658018205387e-01 + 1.41000000000000e+02 -7.43523830574579e-01 4.44720142042251e-01 -2.82957124518306e-01 + 1.44000000000000e+02 -7.66221837342317e-01 3.63530458167433e-01 -2.88689539621726e-01 + 1.47000000000000e+02 -7.89764121178056e-01 2.84696732965804e-01 -2.94384828569551e-01 + 1.50000000000000e+02 -8.14475900983719e-01 2.08899343248113e-01 -2.99788882357380e-01 + 1.53000000000000e+02 -8.46220602046613e-01 1.39440801614036e-01 -2.99805085685274e-01 + 1.56000000000000e+02 -8.33296639294275e-01 7.28183037202886e-02 -2.99093201113177e-01 + 1.59000000000000e+02 -7.29134559382490e-01 1.64174424311710e-02 -3.00131850200137e-01 + 1.62000000000000e+02 -6.24972479470706e-01 1.00000000000000e-03 -3.38515217346972e-01 + 1.65000000000000e+02 -5.20810399558921e-01 1.00000000000000e-03 -3.99072010841858e-01 + 1.68000000000000e+02 -4.16648319647137e-01 1.00000000000000e-03 -4.59628804336743e-01 + 1.71000000000000e+02 -3.12486239735353e-01 1.00000000000000e-03 -4.47994697204810e-01 + 1.74000000000000e+02 -2.08324159823569e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.04162079911784e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +! ------------------------------------------------------------------------------ +! data for table 2 +! ------------------------------------------------------------------------------ +11.026239 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-1.636734 alpha0 ! 0-lift angle of attack, depends on airfoil. +13.030303 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-13.030303 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.520267 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.146642 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005351 Cd0 ! 2D drag coefficient value at 0-lift. +-0.062799 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.16367005373003e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.32734010746005e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.49101016119007e-01 1.00000000000000e-03 3.59029853363225e-01 +-1.68000000000000e+02 4.65468021492009e-01 1.00000000000000e-03 4.12089735425793e-01 +-1.65000000000000e+02 5.81835026865011e-01 1.00000000000000e-03 4.30224338564483e-01 +-1.62000000000000e+02 6.98202032238014e-01 1.59243678726969e-03 4.48358941703173e-01 +-1.59000000000000e+02 8.14569037611016e-01 3.31660207572634e-02 4.58545173939939e-01 +-1.56000000000000e+02 9.30936042984019e-01 9.21483291438025e-02 4.55344676236623e-01 +-1.53000000000000e+02 9.38543850259562e-01 1.58281024471396e-01 4.51516675567366e-01 +-1.50000000000000e+02 8.93128618874250e-01 2.27221853047242e-01 4.46772663510365e-01 +-1.47000000000000e+02 8.57751934359212e-01 3.02432820861923e-01 4.35250167184060e-01 +-1.44000000000000e+02 8.24832595806638e-01 3.80637755436550e-01 4.23361266302656e-01 +-1.41000000000000e+02 7.93761432920487e-01 4.61165209995869e-01 4.11434127692081e-01 +-1.38000000000000e+02 7.62902084011899e-01 5.44851506059159e-01 4.09206182254695e-01 +-1.35000000000000e+02 7.30999283712285e-01 6.29089521169344e-01 4.08397630940216e-01 +-1.32000000000000e+02 6.97948686882543e-01 7.13934427231111e-01 4.09150413160933e-01 +-1.29000000000000e+02 6.61595578197113e-01 7.97907676590866e-01 4.12358012851477e-01 +-1.26000000000000e+02 6.23385197492629e-01 8.80670283990924e-01 4.16383885031963e-01 +-1.23000000000000e+02 5.82569563739141e-01 9.61574555294223e-01 4.21432597824878e-01 +-1.20000000000000e+02 5.38141181795052e-01 1.03833060225505e+00 4.26402464221307e-01 +-1.17000000000000e+02 4.91831580673901e-01 1.11230966310858e+00 4.31325022779846e-01 +-1.14000000000000e+02 4.42625305705395e-01 1.18142037086506e+00 4.36168734941900e-01 +-1.11000000000000e+02 3.90871800696196e-01 1.24428071466724e+00 4.40306201007650e-01 +-1.08000000000000e+02 3.37721841124236e-01 1.30303876394750e+00 4.43782985241372e-01 +-1.05000000000000e+02 2.82478336899319e-01 1.35378801360200e+00 4.45516936366471e-01 +-1.02000000000000e+02 2.26261493624067e-01 1.39743086919432e+00 4.46764664746603e-01 +-9.90000000000000e+01 1.69476960459975e-01 1.43599026004227e+00 4.47346087883633e-01 +-9.60000000000000e+01 1.12436440562005e-01 1.46376270448022e+00 4.44163786809622e-01 +-9.30000000000000e+01 5.59778557775805e-02 1.48470323126908e+00 4.40981485735612e-01 +-9.00000000000000e+01 -2.00870434952675e-16 1.50000000000000e+00 4.37799184661601e-01 +-8.70000000000000e+01 -5.59778557775807e-02 1.48470323126908e+00 4.24864076456967e-01 +-8.40000000000000e+01 -1.12436440562005e-01 1.46376270448022e+00 4.11928968252333e-01 +-8.10000000000000e+01 -1.69476960459975e-01 1.43599026004227e+00 3.98993860047699e-01 +-7.80000000000000e+01 -2.26261493624067e-01 1.39743086919432e+00 3.83616400825290e-01 +-7.50000000000000e+01 -2.82478336899319e-01 1.35378801360200e+00 3.67806563671504e-01 +-7.20000000000000e+01 -3.37721841124236e-01 1.30303876394750e+00 3.51681207486714e-01 +-6.90000000000000e+01 -3.90871800696197e-01 1.24428071466724e+00 3.34897263801713e-01 +-6.60000000000000e+01 -4.42625305705395e-01 1.18142037086506e+00 3.17863659495717e-01 +-6.30000000000000e+01 -4.91831580673901e-01 1.11230966310858e+00 3.00563176594864e-01 +-6.00000000000000e+01 -5.38141181795052e-01 1.03833060225505e+00 2.83471528193297e-01 +-5.70000000000000e+01 -5.82569563739141e-01 9.61574555294222e-01 2.66505180491302e-01 +-5.40000000000000e+01 -6.23385197492628e-01 8.80670283990924e-01 2.49747667288594e-01 +-5.10000000000000e+01 -6.61595578197114e-01 7.97907676590866e-01 2.33288641627241e-01 +-4.80000000000000e+01 -6.97948686882544e-01 7.13934427231110e-01 2.17068405998974e-01 +-4.50000000000000e+01 -7.30999283712285e-01 6.29089521169344e-01 2.01564540469961e-01 +-4.20000000000000e+01 -7.62902084011899e-01 5.44851506059159e-01 1.85966606129425e-01 +-3.90000000000000e+01 -7.93761432920488e-01 4.61165209995868e-01 1.70283154687506e-01 +-3.60000000000000e+01 -8.24832595806638e-01 3.80637755436551e-01 1.54015336386127e-01 +-3.30000000000000e+01 -8.57751934359212e-01 3.02432820861923e-01 1.37238869066134e-01 +-3.00000000000000e+01 -8.93128618874250e-01 2.27221853047241e-01 1.19803206854963e-01 +-2.93939393939394e+01 -9.01220905309241e-01 2.12618271789948e-01 1.15132253693835e-01 +-2.87878787878788e+01 -9.10669752132107e-01 1.98862006646010e-01 1.08813313304761e-01 +-2.81818181818182e+01 -9.20118598954973e-01 1.85105741502073e-01 1.02494372915687e-01 +-2.75757575757576e+01 -9.29567445777839e-01 1.71349476358136e-01 9.61754325266127e-02 +-2.69696969696970e+01 -9.39016292600705e-01 1.57593211214199e-01 8.98564921375386e-02 +-2.63636363636364e+01 -9.48465139423571e-01 1.43836946070262e-01 8.35375517484646e-02 +-2.57575757575758e+01 -9.57913986246437e-01 1.30080680926325e-01 7.72186113593905e-02 +-2.51515151515151e+01 -9.67362833069303e-01 1.16324415782388e-01 7.08996709703165e-02 +-2.45454545454545e+01 -9.85342448538283e-01 1.08341352958681e-01 6.45807305812424e-02 +-2.39393939393939e+01 -1.00616565355597e+00 1.02282690908384e-01 5.82617901921684e-02 +-2.33333333333333e+01 -1.02698885857365e+00 9.62240288580860e-02 5.19428498030943e-02 +-2.27272727272727e+01 -1.04781206359134e+00 9.01653668077886e-02 4.56239094140203e-02 +-2.21212121212121e+01 -1.06863526860902e+00 8.41067047574912e-02 3.93049690249462e-02 +-2.15151515151515e+01 -1.08945847362670e+00 7.80480427071936e-02 3.29860286358721e-02 +-2.09090909090909e+01 -1.11028167864439e+00 7.19893806568962e-02 2.66670882467981e-02 +-2.03030303030303e+01 -1.13110488366207e+00 6.59307186065987e-02 2.02128722982816e-02 +-1.96969696969697e+01 -1.15192808867976e+00 5.98720565563012e-02 1.07465205595128e-02 +-1.90909090909091e+01 -1.17275129369744e+00 5.38133945060038e-02 -2.13779364783543e-03 +-1.84848484848485e+01 -1.19302242821772e+00 4.78479724057103e-02 -1.47363636363636e-02 +-1.78787878787879e+01 -1.19141806904231e+00 4.55273046100793e-02 -1.61666666666667e-02 +-1.72727272727273e+01 -1.18788778259281e+00 4.32485479660914e-02 -1.74545454545455e-02 +-1.66666666666667e+01 -1.18475859287337e+00 4.12640100227453e-02 -1.80666666666667e-02 +-1.60606060606061e+01 -1.17924271186762e+00 3.92215374715831e-02 -1.88030303030303e-02 +-1.54545454545455e+01 -1.17101196952370e+00 3.70726986685059e-02 -1.95454545454545e-02 +-1.48484848484848e+01 -1.16133263816296e+00 3.49381952886442e-02 -2.01515151515152e-02 +-1.42424242424242e+01 -1.15004229018396e+00 3.28316017877248e-02 -2.06545454545455e-02 +-1.36363636363636e+01 -1.13706136921049e+00 3.07599710019565e-02 -2.10181818181818e-02 +-1.30303030303030e+01 -1.12263517406920e+00 2.87013418706331e-02 -2.12878787878788e-02 +-1.24242424242424e+01 -1.10888852297471e+00 2.65524929270426e-02 -2.14303030303030e-02 +-1.18181818181818e+01 -1.09683575972370e+00 2.42866341031516e-02 -2.16363636363636e-02 +-1.12121212121212e+01 -1.08536309504921e+00 2.19377721881929e-02 -2.18151515151515e-02 +-1.06060606060606e+01 -1.07802404708865e+00 1.94547885443510e-02 -2.20575757575758e-02 +-1.00000000000000e+01 -1.05046442017467e+00 1.60964962568605e-02 -2.67000000000000e-02 +-9.39393939393939e+00 -9.85957486209072e-01 1.24270297435178e-02 -3.50636363636364e-02 +-8.78787878787879e+00 -9.07209960901854e-01 9.47210899298240e-03 -4.26212121212121e-02 +-8.18181818181818e+00 -8.29596113955631e-01 7.69861419450720e-03 -4.70272727272727e-02 +-7.57575757575758e+00 -7.55714786993269e-01 6.63402702900794e-03 -4.93424242424242e-02 +-6.96969696969697e+00 -6.79612511195040e-01 6.23927919116099e-03 -5.08727272727273e-02 +-6.36363636363636e+00 -6.02641744956515e-01 6.03116792971982e-03 -5.23000000000000e-02 +-5.75757575757576e+00 -5.25617941133851e-01 5.83663759794498e-03 -5.36333333333333e-02 +-5.15151515151515e+00 -4.48514580934977e-01 5.69046048948113e-03 -5.50363636363636e-02 +-4.54545454545454e+00 -3.71212329795577e-01 5.58901126425354e-03 -5.64000000000000e-02 +-3.93939393939394e+00 -2.93966431089326e-01 5.49943689545967e-03 -5.77333333333333e-02 +-3.33333333333333e+00 -2.16657550251909e-01 5.43374057466875e-03 -5.90666666666667e-02 +-2.72727272727273e+00 -1.39216075454141e-01 5.38550229534297e-03 -6.04000000000000e-02 +-2.12121212121212e+00 -6.18475273345664e-02 5.34945291193248e-03 -6.17333333333333e-02 +-1.51515151515152e+00 1.55210207850083e-02 5.35171903403345e-03 -6.30666666666667e-02 +-9.09090909090912e-01 9.28895689045829e-02 5.33511821259646e-03 -6.43818181818182e-02 +-3.03030303030302e-01 1.70128837912817e-01 5.37756709395711e-03 -6.56333333333333e-02 + 3.03030303030302e-01 2.47364792072041e-01 5.41855831068897e-03 -6.69060606060606e-02 + 9.09090909090912e-01 3.24507930459021e-01 5.46678630773541e-03 -6.81181818181818e-02 + 1.51515151515152e+00 4.01253286964949e-01 5.55451532219355e-03 -6.93303030303030e-02 + 2.12121212121212e+00 4.77985384074843e-01 5.65224928433392e-03 -7.05181818181818e-02 + 2.72727272727273e+00 5.54525219942229e-01 5.76957406493971e-03 -7.16090909090909e-02 + 3.33333333333333e+00 6.30713681814686e-01 5.90907121696220e-03 -7.27000000000000e-02 + 3.93939393939394e+00 7.06925347630204e-01 6.04917162467828e-03 -7.37030303030303e-02 + 4.54545454545455e+00 7.82364653626682e-01 6.23261352871243e-03 -7.46636363636364e-02 + 5.15151515151515e+00 8.57313361969864e-01 6.45071065284816e-03 -7.54818181818182e-02 + 5.75757575757576e+00 9.31539433229136e-01 6.70915124053314e-03 -7.62090909090909e-02 + 6.36363636363637e+00 1.00530142562718e+00 6.98407842553316e-03 -7.68636363636364e-02 + 6.96969696969697e+00 1.07834078094132e+00 7.29083696619054e-03 -7.73757575757576e-02 + 7.57575757575757e+00 1.15036247760977e+00 7.62577178680327e-03 -7.77454545454545e-02 + 8.18181818181818e+00 1.22128695925632e+00 8.00076465562896e-03 -7.80000000000000e-02 + 8.78787878787879e+00 1.29015291966843e+00 8.45567125260149e-03 -7.78848484848485e-02 + 9.39393939393939e+00 1.35719902797474e+00 8.96076549163423e-03 -7.75636363636364e-02 + 1.00000000000000e+01 1.42218661504660e+00 9.49001043760469e-03 -7.69000000000000e-02 + 1.06060606060606e+01 1.48316323481787e+00 1.01157792638382e-02 -7.57666666666667e-02 + 1.12121212121212e+01 1.54031783368204e+00 1.07666691809955e-02 -7.41363636363636e-02 + 1.18181818181818e+01 1.58437214926360e+00 1.15331538436798e-02 -7.07454545454546e-02 + 1.24242424242424e+01 1.61866091966536e+00 1.24669012701639e-02 -6.64303030303030e-02 + 1.30303030303030e+01 1.64916081765012e+00 1.36929042094223e-02 -6.26545454545455e-02 + 1.36363636363636e+01 1.67521550311412e+00 1.54780394628355e-02 -5.97454545454545e-02 + 1.42424242424242e+01 1.69888349729183e+00 1.75209713794997e-02 -5.71757575757576e-02 + 1.48484848484848e+01 1.71432072138078e+00 2.03030705607918e-02 -5.51848484848485e-02 + 1.54545454545455e+01 1.72055260977242e+00 2.37678577064924e-02 -5.33363636363636e-02 + 1.60606060606061e+01 1.71661454140519e+00 2.79489512842208e-02 -5.18787878787879e-02 + 1.66666666666667e+01 1.70229768079154e+00 3.30173464705956e-02 -5.08000000000000e-02 + 1.72727272727273e+01 1.68124173214308e+00 3.87410298639147e-02 -5.02909090909091e-02 + 1.78787878787879e+01 1.65455716987776e+00 4.49948829791610e-02 -5.03515151515152e-02 + 1.84848484848485e+01 1.62417986581668e+00 5.15903568468173e-02 -5.08848484848485e-02 + 1.90909090909091e+01 1.58841924696537e+00 5.87311430524023e-02 -5.20545454545455e-02 + 1.96969696969697e+01 1.55560221403385e+00 6.56487914307387e-02 -5.38303030303030e-02 + 2.03030303030303e+01 1.52636521803178e+00 7.22719645105716e-02 -5.60727272727273e-02 + 2.09090909090909e+01 1.50039500572784e+00 7.85797702917805e-02 -5.91500000000000e-02 + 2.15151515151515e+01 1.47618497824755e+00 8.47078221739669e-02 -6.24939393939394e-02 + 2.21212121212121e+01 1.45843061921182e+00 9.01267016807234e-02 -6.64212121212121e-02 + 2.27272727272727e+01 1.43902215052072e+00 9.55929491361272e-02 -7.11181818181818e-02 + 2.33333333333333e+01 1.42346222152878e+00 1.00532104531811e-01 -7.61000000000000e-02 + 2.39393939393939e+01 1.40925475093242e+00 1.05182486455009e-01 -8.14545454545454e-02 + 2.45454545454545e+01 1.39556439678142e+00 1.09592948690553e-01 -8.74000000000000e-02 + 2.51515151515151e+01 1.38194690438472e+00 1.16324415782388e-01 -9.34596504786915e-02 + 2.57575757575758e+01 1.36844855178062e+00 1.30080680926325e-01 -9.96982523934576e-02 + 2.63636363636364e+01 1.35495019917653e+00 1.43836946070262e-01 -1.05936854308224e-01 + 2.69696969696970e+01 1.34145184657244e+00 1.57593211214199e-01 -1.12175456222990e-01 + 2.75757575757576e+01 1.32795349396834e+00 1.71349476358136e-01 -1.18414058137756e-01 + 2.81818181818182e+01 1.31445514136425e+00 1.85105741502073e-01 -1.24652660052522e-01 + 2.87878787878788e+01 1.30095678876015e+00 1.98862006646011e-01 -1.30891261967288e-01 + 2.93939393939394e+01 1.28745843615606e+00 2.12618271789948e-01 -1.37129863882054e-01 + 3.00000000000000e+01 1.27589802696321e+00 2.27221853047241e-01 -1.42088693708299e-01 + 3.30000000000000e+01 1.22535990622745e+00 3.02432820861923e-01 -1.62219687642813e-01 + 3.60000000000000e+01 1.17833227972377e+00 3.80637755436551e-01 -1.81838772741919e-01 + 3.90000000000000e+01 1.13394490417213e+00 4.61165209995868e-01 -2.00995193775351e-01 + 4.20000000000000e+01 1.08986012001700e+00 5.44851506059159e-01 -2.16923584804975e-01 + 4.50000000000000e+01 1.04428469101755e+00 6.29089521169344e-01 -2.32379581199897e-01 + 4.80000000000000e+01 9.97069552689348e-01 7.13934427231110e-01 -2.47315943496645e-01 + 5.10000000000000e+01 9.45136540281591e-01 7.97907676590866e-01 -2.61902953174768e-01 + 5.40000000000000e+01 8.90550282132326e-01 8.80670283990924e-01 -2.76373511980017e-01 + 5.70000000000000e+01 8.32242233913058e-01 9.61574555294222e-01 -2.90698507194173e-01 + 6.00000000000000e+01 7.68773116850074e-01 1.03833060225505e+00 -3.04991576990732e-01 + 6.30000000000000e+01 7.02616543819859e-01 1.11230966310858e+00 -3.19265491536733e-01 + 6.60000000000000e+01 6.32321865293421e-01 1.18142037086506e+00 -3.33507480665136e-01 + 6.90000000000000e+01 5.58388286708852e-01 1.24428071466724e+00 -3.47610154119730e-01 + 7.20000000000000e+01 4.82459773034623e-01 1.30303876394750e+00 -3.61582500008503e-01 + 7.50000000000000e+01 4.03540481284741e-01 1.35378801360200e+00 -3.75211050766748e-01 + 7.80000000000000e+01 3.23230705177238e-01 1.39743086919432e+00 -3.88674794121474e-01 + 8.10000000000000e+01 2.42109943514250e-01 1.43599026004227e+00 -4.01912690293600e-01 + 8.40000000000000e+01 1.60623486517149e-01 1.46376270448022e+00 -4.13874855082934e-01 + 8.70000000000000e+01 7.99683653965436e-02 1.48470323126908e+00 -4.25837019872268e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -4.37799184661601e-01 + 9.30000000000000e+01 -5.59778557775805e-02 1.48470323126908e+00 -4.40981485735612e-01 + 9.60000000000000e+01 -1.12436440562005e-01 1.46376270448022e+00 -4.44163786809622e-01 + 9.90000000000000e+01 -1.69476960459975e-01 1.43599026004227e+00 -4.47346087883633e-01 + 1.02000000000000e+02 -2.26261493624067e-01 1.39743086919432e+00 -4.46764664746603e-01 + 1.05000000000000e+02 -2.82478336899319e-01 1.35378801360200e+00 -4.45516936366471e-01 + 1.08000000000000e+02 -3.37721841124236e-01 1.30303876394750e+00 -4.43782985241372e-01 + 1.11000000000000e+02 -3.90871800696197e-01 1.24428071466724e+00 -4.40306201007650e-01 + 1.14000000000000e+02 -4.42625305705395e-01 1.18142037086506e+00 -4.36168734941900e-01 + 1.17000000000000e+02 -4.91831580673901e-01 1.11230966310858e+00 -4.31325022779846e-01 + 1.20000000000000e+02 -5.38141181795052e-01 1.03833060225505e+00 -4.26402464221307e-01 + 1.23000000000000e+02 -5.82569563739141e-01 9.61574555294222e-01 -4.21432597824877e-01 + 1.26000000000000e+02 -6.23385197492629e-01 8.80670283990924e-01 -4.16383885031963e-01 + 1.29000000000000e+02 -6.61595578197114e-01 7.97907676590865e-01 -4.12358012851477e-01 + 1.32000000000000e+02 -6.97948686882544e-01 7.13934427231110e-01 -4.09150413160933e-01 + 1.35000000000000e+02 -7.30999283712285e-01 6.29089521169344e-01 -4.08397630940216e-01 + 1.38000000000000e+02 -7.62902084011899e-01 5.44851506059159e-01 -4.09206182254695e-01 + 1.41000000000000e+02 -7.93761432920488e-01 4.61165209995868e-01 -4.11434127692081e-01 + 1.44000000000000e+02 -8.24832595806638e-01 3.80637755436550e-01 -4.23361266302656e-01 + 1.47000000000000e+02 -8.57751934359212e-01 3.02432820861923e-01 -4.35250167184060e-01 + 1.50000000000000e+02 -8.93128618874250e-01 2.27221853047241e-01 -4.46772663510365e-01 + 1.53000000000000e+02 -9.38543850259562e-01 1.58281024471396e-01 -4.51516675567366e-01 + 1.56000000000000e+02 -9.30936042984019e-01 9.21483291438025e-02 -4.55344676236623e-01 + 1.59000000000000e+02 -8.14569037611016e-01 3.31660207572634e-02 -4.59402316797082e-01 + 1.62000000000000e+02 -6.98202032238014e-01 1.59243678726969e-03 -4.68358941703173e-01 + 1.65000000000000e+02 -5.81835026865011e-01 1.00000000000000e-03 -4.80224338564483e-01 + 1.68000000000000e+02 -4.65468021492009e-01 1.00000000000000e-03 -4.92089735425793e-01 + 1.71000000000000e+02 -3.49101016119007e-01 1.00000000000000e-03 -4.48458424791797e-01 + 1.74000000000000e+02 -2.32734010746005e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.16367005373003e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +! ------------------------------------------------------------------------------ +! data for table 3 +! ------------------------------------------------------------------------------ +11.026239 Re ! Reynolds number in millions +10 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-6.463561 alpha0 ! 0-lift angle of attack, depends on airfoil. +12.424242 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-12.424242 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.684168 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.892450 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006785 Cd0 ! 2D drag coefficient value at 0-lift. +-0.151793 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.34117873008563e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.68235746017127e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 4.02353619025690e-01 1.00000000000000e-03 3.58843681866106e-01 +-1.68000000000000e+02 5.36471492034253e-01 1.00000000000000e-03 4.47623092250969e-01 +-1.65000000000000e+02 6.70589365042818e-01 1.00000000000000e-03 5.19057730627422e-01 +-1.62000000000000e+02 8.04707238051381e-01 1.52938454423931e-02 5.90492369003876e-01 +-1.59000000000000e+02 9.38825111059944e-01 6.69642720511800e-02 6.32574404342883e-01 +-1.56000000000000e+02 1.07294298406851e+00 1.24980272343667e-01 6.15951233606998e-01 +-1.53000000000000e+02 1.01073087143852e+00 1.90531323516978e-01 5.99328062871114e-01 +-1.50000000000000e+02 9.55625870671613e-01 2.59275814397163e-01 5.82439538647765e-01 +-1.47000000000000e+02 9.09997019055498e-01 3.32278224886513e-01 5.65197209774466e-01 +-1.44000000000000e+02 8.70650411920798e-01 4.10040084522396e-01 5.47755865785570e-01 +-1.41000000000000e+02 8.32955216012652e-01 4.89599130626454e-01 5.32963166633445e-01 +-1.38000000000000e+02 7.96770946303636e-01 5.71668039089893e-01 5.24875002538084e-01 +-1.35000000000000e+02 7.59916176408364e-01 6.54729256046225e-01 5.21144786229619e-01 +-1.32000000000000e+02 7.22408176780890e-01 7.38078216376981e-01 5.19521109569109e-01 +-1.29000000000000e+02 6.82589999207217e-01 8.20772096571332e-01 5.20077596107775e-01 +-1.26000000000000e+02 6.40719200053890e-01 9.01815022218305e-01 5.22178364912526e-01 +-1.23000000000000e+02 5.97308934715824e-01 9.81619731954745e-01 5.25437345416839e-01 +-1.20000000000000e+02 5.50025648943680e-01 1.05649561515504e+00 5.28756104091742e-01 +-1.17000000000000e+02 5.01162259456668e-01 1.12844482347443e+00 5.32119696394588e-01 +-1.14000000000000e+02 4.50192065016500e-01 1.19649179861928e+00 5.35543066868024e-01 +-1.11000000000000e+02 3.96535344244900e-01 1.25721970878415e+00 5.38347284702171e-01 +-1.08000000000000e+02 3.41776516426962e-01 1.31386677553652e+00 5.40403359763842e-01 +-1.05000000000000e+02 2.85381806964607e-01 1.36336134416598e+00 5.40847058160697e-01 +-1.02000000000000e+02 2.28118393134576e-01 1.40484610372260e+00 5.40868814326443e-01 +-9.90000000000000e+01 1.70512366965218e-01 1.44139720915082e+00 5.40109977364638e-01 +-9.60000000000000e+01 1.12935557242318e-01 1.46756993158346e+00 5.35680242992184e-01 +-9.30000000000000e+01 5.61653155934108e-02 1.48650069894383e+00 5.31250508619729e-01 +-9.00000000000000e+01 -2.01758423021909e-16 1.50000000000000e+00 5.26820774247275e-01 +-8.70000000000000e+01 -5.61653155934110e-02 1.48650069894383e+00 5.13627915272337e-01 +-8.40000000000000e+01 -1.12935557242318e-01 1.46756993158346e+00 5.00435056297398e-01 +-8.10000000000000e+01 -1.70512366965218e-01 1.44139720915082e+00 4.87242197322460e-01 +-7.80000000000000e+01 -2.28118393134576e-01 1.40484610372260e+00 4.71656935689818e-01 +-7.50000000000000e+01 -2.85381806964607e-01 1.36336134416598e+00 4.55562944756401e-01 +-7.20000000000000e+01 -3.41776516426962e-01 1.31386677553652e+00 4.39193965011753e-01 +-6.90000000000000e+01 -3.96535344244900e-01 1.25721970878415e+00 4.22209662155372e-01 +-6.60000000000000e+01 -4.50192065016500e-01 1.19649179861928e+00 4.04939849375146e-01 +-6.30000000000000e+01 -5.01162259456668e-01 1.12844482347443e+00 3.87433752520014e-01 +-6.00000000000000e+01 -5.50025648943680e-01 1.05649561515504e+00 3.70112733579748e-01 +-5.70000000000000e+01 -5.97308934715824e-01 9.81619731954745e-01 3.52930523075631e-01 +-5.40000000000000e+01 -6.40719200053890e-01 9.01815022218305e-01 3.35933390486379e-01 +-5.10000000000000e+01 -6.82589999207217e-01 8.20772096571331e-01 3.19144128139376e-01 +-4.80000000000000e+01 -7.22408176780890e-01 7.38078216376980e-01 3.02632026115373e-01 +-4.50000000000000e+01 -7.59916176408364e-01 6.54729256046225e-01 2.86511209253250e-01 +-4.20000000000000e+01 -7.96770946303637e-01 5.71668039089893e-01 2.70230066860021e-01 +-3.90000000000000e+01 -8.32955216012652e-01 4.89599130626453e-01 2.53385075154906e-01 +-3.60000000000000e+01 -8.70650411920798e-01 4.10040084522395e-01 2.35672622969967e-01 +-3.30000000000000e+01 -9.09997019055498e-01 3.32278224886512e-01 2.17039160941687e-01 +-3.00000000000000e+01 -9.55625870671613e-01 2.59275814397162e-01 1.94961545004928e-01 +-2.93939393939394e+01 -9.64843820493051e-01 2.44527852682142e-01 1.90501420573260e-01 +-2.87878787878788e+01 -9.74061770314488e-01 2.29779890967122e-01 1.86041296141592e-01 +-2.81818181818182e+01 -9.86223069493367e-01 2.16354464888282e-01 1.79679349349686e-01 +-2.75757575757576e+01 -9.98791173054982e-01 2.03111828287613e-01 1.73054549060838e-01 +-2.69696969696970e+01 -1.01135927661660e+00 1.89869191686944e-01 1.66429748771990e-01 +-2.63636363636364e+01 -1.02392738017821e+00 1.76626555086275e-01 1.59804948483141e-01 +-2.57575757575758e+01 -1.03649548373983e+00 1.63383918485606e-01 1.53180148194293e-01 +-2.51515151515151e+01 -1.04906358730144e+00 1.50141281884938e-01 1.46555347905444e-01 +-2.45454545454545e+01 -1.06163169086305e+00 1.36898645284269e-01 1.39930547616596e-01 +-2.39393939393939e+01 -1.07110183666912e+00 1.23913655114562e-01 1.33305747327747e-01 +-2.33333333333333e+01 -1.05269036267523e+00 1.13247482823512e-01 1.26680947038899e-01 +-2.27272727272727e+01 -1.03427888868134e+00 1.02581310532462e-01 1.20056146750050e-01 +-2.21212121212121e+01 -1.01586741468745e+00 9.19151382414127e-02 1.13431346461202e-01 +-2.15151515151515e+01 -9.97455940693560e-01 8.12489659503629e-02 1.06806546172353e-01 +-2.09090909090909e+01 -9.79044466699671e-01 7.05827936593133e-02 1.00181745883505e-01 +-2.03030303030303e+01 -9.60632992705781e-01 5.99166213682635e-02 9.35569455946565e-02 +-1.96969696969697e+01 -9.42221518711891e-01 4.92504490772137e-02 -2.78445939320982e-02 +-1.90909090909091e+01 -9.28977316639773e-01 4.45346749416318e-02 -8.20090909090909e-02 +-1.84848484848485e+01 -9.18194419337520e-01 4.26580261174306e-02 -8.39424242424242e-02 +-1.78787878787879e+01 -9.06132755463468e-01 4.07444644090039e-02 -8.56393939393939e-02 +-1.72727272727273e+01 -8.92112980276348e-01 3.88612486991988e-02 -8.72454545454545e-02 +-1.66666666666667e+01 -8.75402467094402e-01 3.70318853108477e-02 -8.87000000000000e-02 +-1.60606060606061e+01 -8.56790454661160e-01 3.52240292226534e-02 -9.00666666666667e-02 +-1.54545454545455e+01 -8.35557636779986e-01 3.34526279498438e-02 -9.14000000000000e-02 +-1.48484848484848e+01 -8.13445666880700e-01 3.16469713857704e-02 -9.27030303030303e-02 +-1.42424242424242e+01 -7.91406959649590e-01 2.97605932004089e-02 -9.39666666666667e-02 +-1.36363636363636e+01 -7.68822112528441e-01 2.78317463903436e-02 -9.53000000000000e-02 +-1.30303030303030e+01 -7.48348562299273e-01 2.62645993394616e-02 -9.63515151515151e-02 +-1.24242424242424e+01 -7.29689928168101e-01 2.42753113065784e-02 -9.76818181818182e-02 +-1.18181818181818e+01 -7.04494265962862e-01 2.20578661645697e-02 -1.00300000000000e-01 +-1.12121212121212e+01 -6.54965407559351e-01 1.89022291839190e-02 -1.07360606060606e-01 +-1.06060606060606e+01 -5.82089068856664e-01 1.55547532106641e-02 -1.16881818181818e-01 +-1.00000000000000e+01 -4.93228148006487e-01 1.26414749159199e-02 -1.26700000000000e-01 +-9.39393939393939e+00 -3.97054280823835e-01 1.00194374168361e-02 -1.36069696969697e-01 +-8.78787878787879e+00 -3.11843172897335e-01 8.94646750829054e-03 -1.40572727272727e-01 +-8.18181818181818e+00 -2.29113005324977e-01 8.20624166455076e-03 -1.44018181818182e-01 +-7.57575757575758e+00 -1.47291960862257e-01 7.58665184917433e-03 -1.47121212121212e-01 +-6.96969696969697e+00 -6.63200973261228e-02 7.07595581368466e-03 -1.49915151515152e-01 +-6.36363636363636e+00 1.30932694506315e-02 6.72813409540812e-03 -1.52163636363636e-01 +-5.75757575757576e+00 9.16774360284849e-02 6.49411967146370e-03 -1.54175757575758e-01 +-5.15151515151515e+00 1.69795385627036e-01 6.30074521663437e-03 -1.55975757575758e-01 +-4.54545454545454e+00 2.47087465147967e-01 6.19318731815565e-03 -1.57490909090909e-01 +-3.93939393939394e+00 3.24099814481317e-01 6.11816782863159e-03 -1.58933333333333e-01 +-3.33333333333333e+00 4.00466120286206e-01 6.09447166833506e-03 -1.60233333333333e-01 +-2.72727272727273e+00 4.76905688759271e-01 6.08139706594612e-03 -1.61445454545455e-01 +-2.12121212121212e+00 5.52532707639839e-01 6.13078521852118e-03 -1.62506060606061e-01 +-1.51515151515152e+00 6.27973239728685e-01 6.18137381764795e-03 -1.63572727272727e-01 +-9.09090909090912e-01 7.03107400659705e-01 6.27069649558757e-03 -1.64427272727273e-01 +-3.03030303030302e-01 7.77365739693895e-01 6.40076260655315e-03 -1.65196969696970e-01 + 3.03030303030302e-01 8.51261095508484e-01 6.55160045662046e-03 -1.65863636363636e-01 + 9.09090909090912e-01 9.24793468103475e-01 6.72177273378517e-03 -1.66427272727273e-01 + 1.51515151515152e+00 9.97436698316511e-01 6.92742534574733e-03 -1.66806060606061e-01 + 2.12121212121212e+00 1.06914749457094e+00 7.17396508619482e-03 -1.67024242424242e-01 + 2.72727272727273e+00 1.14024554850972e+00 7.42577907384357e-03 -1.67054545454545e-01 + 3.33333333333333e+00 1.20884601148796e+00 7.73685347632107e-03 -1.66666666666667e-01 + 3.93939393939394e+00 1.27305071437563e+00 8.07315137103847e-03 -1.65445454545455e-01 + 4.54545454545455e+00 1.33748519563168e+00 8.46849428358189e-03 -1.64227272727273e-01 + 5.15151515151515e+00 1.40172319973216e+00 8.91525252278405e-03 -1.63136363636364e-01 + 5.75757575757576e+00 1.46365675990638e+00 9.41558946085341e-03 -1.61578787878788e-01 + 6.36363636363637e+00 1.52244668559159e+00 9.98380792626802e-03 -1.59590909090909e-01 + 6.96969696969697e+00 1.57851257206917e+00 1.06114618914147e-02 -1.57221212121212e-01 + 7.57575757575757e+00 1.63188106030935e+00 1.12733728404990e-02 -1.54475757575758e-01 + 8.18181818181818e+00 1.68013448226235e+00 1.20834527399392e-02 -1.51009090909091e-01 + 8.78787878787879e+00 1.72445836110408e+00 1.29865941329312e-02 -1.47084848484848e-01 + 9.39393939393939e+00 1.76563860545681e+00 1.39581909017830e-02 -1.42842424242424e-01 + 1.00000000000000e+01 1.79882988885707e+00 1.51680957104290e-02 -1.37800000000000e-01 + 1.06060606060606e+01 1.82484809101865e+00 1.66115494857784e-02 -1.32024242424242e-01 + 1.12121212121212e+01 1.85013033637719e+00 1.80733692178613e-02 -1.26406060606061e-01 + 1.18181818181818e+01 1.87185934232919e+00 1.96842567779020e-02 -1.20836363636364e-01 + 1.24242424242424e+01 1.88851657357065e+00 2.16049229530431e-02 -1.15212121212121e-01 + 1.30303030303030e+01 1.90230990051068e+00 2.38927942570782e-02 -1.09957575757576e-01 + 1.36363636363636e+01 1.90848390996040e+00 2.70512942389668e-02 -1.05381818181818e-01 + 1.42424242424242e+01 1.90866370110482e+00 3.11395760539701e-02 -1.01939393939394e-01 + 1.48484848484848e+01 1.90088783250958e+00 3.60637858915557e-02 -9.91363636363636e-02 + 1.54545454545455e+01 1.88393747978594e+00 4.17197915995720e-02 -9.68636363636364e-02 + 1.60606060606061e+01 1.85533836282232e+00 4.83373874516724e-02 -9.52030303030303e-02 + 1.66666666666667e+01 1.81989251650552e+00 5.56343550898850e-02 -9.43666666666667e-02 + 1.72727272727273e+01 1.78327446749791e+00 6.30735610702097e-02 -9.43727272727273e-02 + 1.78787878787879e+01 1.74687620649482e+00 7.05267471316216e-02 -9.49787878787879e-02 + 1.84848484848485e+01 1.71346173415926e+00 7.76999938774988e-02 -9.64575757575758e-02 + 1.90909090909091e+01 1.68389022178167e+00 8.44252752234867e-02 -9.88000000000000e-02 + 1.96969696969697e+01 1.65919400695906e+00 9.05768466125614e-02 -1.01742424242424e-01 + 2.03030303030303e+01 1.63638264078134e+00 9.64282258471140e-02 -1.05378787878788e-01 + 2.09090909090909e+01 1.61572586307225e+00 1.01920481188095e-01 -1.09545454545455e-01 + 2.15151515151515e+01 1.59869891755915e+00 1.06868179723267e-01 -1.14121212121212e-01 + 2.21212121212121e+01 1.58390648342542e+00 1.11414243958366e-01 -1.19042424242424e-01 + 2.27272727272727e+01 1.56802176951161e+00 1.15904407610836e-01 -1.24572727272727e-01 + 2.33333333333333e+01 1.55050529617025e+00 1.20411116198630e-01 -1.30833333333333e-01 + 2.39393939393939e+01 1.53435084243270e+00 1.24573174292406e-01 -1.37345454545455e-01 + 2.45454545454545e+01 1.51661670123294e+00 1.36898645284269e-01 -1.45203659692363e-01 + 2.51515151515151e+01 1.49866226757349e+00 1.50141281884938e-01 -1.53207726017211e-01 + 2.57575757575758e+01 1.48070783391404e+00 1.63383918485607e-01 -1.61211792342059e-01 + 2.63636363636364e+01 1.46275340025459e+00 1.76626555086275e-01 -1.69215858666906e-01 + 2.69696969696970e+01 1.44479896659514e+00 1.89869191686944e-01 -1.77219924991754e-01 + 2.75757575757576e+01 1.42684453293569e+00 2.03111828287613e-01 -1.85223991316602e-01 + 2.81818181818182e+01 1.40889009927624e+00 2.16354464888282e-01 -1.93228057641450e-01 + 2.87878787878788e+01 1.39151681473498e+00 2.29779890967122e-01 -2.00914782946586e-01 + 2.93939393939394e+01 1.37834831499007e+00 2.44527852682142e-01 -2.06305452638513e-01 + 3.00000000000000e+01 1.36517981524516e+00 2.59275814397162e-01 -2.11696122330440e-01 + 3.30000000000000e+01 1.29999574150785e+00 3.32278224886512e-01 -2.38379937305481e-01 + 3.60000000000000e+01 1.24378630274400e+00 4.10040084522395e-01 -2.60905651566357e-01 + 3.90000000000000e+01 1.18993602287522e+00 4.89599130626453e-01 -2.81689880153459e-01 + 4.20000000000000e+01 1.13824420900519e+00 5.71668039089893e-01 -2.99852936520364e-01 + 4.50000000000000e+01 1.08559453772623e+00 6.54729256046225e-01 -3.16312230944141e-01 + 4.80000000000000e+01 1.03201168111556e+00 7.38078216376980e-01 -3.32013747206891e-01 + 5.10000000000000e+01 9.75128570296024e-01 8.20772096571331e-01 -3.47257623166989e-01 + 5.40000000000000e+01 9.15313142934129e-01 9.01815022218305e-01 -3.62177337246042e-01 + 5.70000000000000e+01 8.53298478165463e-01 9.81619731954745e-01 -3.76853929914311e-01 + 6.00000000000000e+01 7.85750927062400e-01 1.05649561515504e+00 -3.91461324252052e-01 + 6.30000000000000e+01 7.15946084938098e-01 1.12844482347443e+00 -4.06016819841897e-01 + 6.60000000000000e+01 6.43131521452143e-01 1.19649179861928e+00 -4.20503117101213e-01 + 6.90000000000000e+01 5.66479063206999e-01 1.25721970878415e+00 -4.34863535607627e-01 + 7.20000000000000e+01 4.88252166324231e-01 1.31386677553652e+00 -4.49071850620948e-01 + 7.50000000000000e+01 4.07688295663725e-01 1.36336134416598e+00 -4.62952356381917e-01 + 7.80000000000000e+01 3.25883418763680e-01 1.40484610372260e+00 -4.76689119001600e-01 + 8.10000000000000e+01 2.43589095664598e-01 1.44139720915082e+00 -4.90159956809906e-01 + 8.40000000000000e+01 1.61336510346168e-01 1.46756993158346e+00 -5.02380229289029e-01 + 8.70000000000000e+01 8.02361651334440e-02 1.48650069894383e+00 -5.14600501768152e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -5.26820774247275e-01 + 9.30000000000000e+01 -5.61653155934108e-02 1.48650069894383e+00 -5.31250508619729e-01 + 9.60000000000000e+01 -1.12935557242318e-01 1.46756993158346e+00 -5.35680242992184e-01 + 9.90000000000000e+01 -1.70512366965218e-01 1.44139720915082e+00 -5.40109977364638e-01 + 1.02000000000000e+02 -2.28118393134576e-01 1.40484610372260e+00 -5.40868814326443e-01 + 1.05000000000000e+02 -2.85381806964607e-01 1.36336134416598e+00 -5.40847058160697e-01 + 1.08000000000000e+02 -3.41776516426961e-01 1.31386677553652e+00 -5.40403359763842e-01 + 1.11000000000000e+02 -3.96535344244900e-01 1.25721970878415e+00 -5.38347284702171e-01 + 1.14000000000000e+02 -4.50192065016500e-01 1.19649179861928e+00 -5.35543066868024e-01 + 1.17000000000000e+02 -5.01162259456668e-01 1.12844482347443e+00 -5.32119696394588e-01 + 1.20000000000000e+02 -5.50025648943680e-01 1.05649561515504e+00 -5.28756104091742e-01 + 1.23000000000000e+02 -5.97308934715824e-01 9.81619731954744e-01 -5.25437345416839e-01 + 1.26000000000000e+02 -6.40719200053890e-01 9.01815022218305e-01 -5.22178364912526e-01 + 1.29000000000000e+02 -6.82589999207217e-01 8.20772096571331e-01 -5.20077596107775e-01 + 1.32000000000000e+02 -7.22408176780890e-01 7.38078216376980e-01 -5.19521109569109e-01 + 1.35000000000000e+02 -7.59916176408364e-01 6.54729256046225e-01 -5.21144786229619e-01 + 1.38000000000000e+02 -7.96770946303637e-01 5.71668039089892e-01 -5.24875002538084e-01 + 1.41000000000000e+02 -8.32955216012652e-01 4.89599130626454e-01 -5.32963166633445e-01 + 1.44000000000000e+02 -8.70650411920798e-01 4.10040084522396e-01 -5.47755865785570e-01 + 1.47000000000000e+02 -9.09997019055498e-01 3.32278224886513e-01 -5.65197209774466e-01 + 1.50000000000000e+02 -9.55625870671613e-01 2.59275814397163e-01 -5.82439538647766e-01 + 1.53000000000000e+02 -1.01073087143852e+00 1.90531323516978e-01 -5.99328062871114e-01 + 1.56000000000000e+02 -1.07294298406851e+00 1.24980272343667e-01 -6.15951233606998e-01 + 1.59000000000000e+02 -9.38825111059944e-01 6.69642720511800e-02 -6.32574404342883e-01 + 1.62000000000000e+02 -8.04707238051381e-01 1.52938454423931e-02 -6.10492369003876e-01 + 1.65000000000000e+02 -6.70589365042818e-01 1.00000000000000e-03 -5.69057730627422e-01 + 1.68000000000000e+02 -5.36471492034253e-01 1.00000000000000e-03 -5.27623092250969e-01 + 1.71000000000000e+02 -4.02353619025690e-01 1.00000000000000e-03 -4.47415110437535e-01 + 1.74000000000000e+02 -2.68235746017127e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.34117873008563e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_22.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_22.dat new file mode 100644 index 000000000..9edd95dd4 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_22.dat @@ -0,0 +1,742 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF22_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +3 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +10.450183 Re ! Reynolds number in millions +-10 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +3.195774 alpha0 ! 0-lift angle of attack, depends on airfoil. +13.636364 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-13.636364 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.257874 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.981531 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005185 Cd0 ! 2D drag coefficient value at 0-lift. +0.028769 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 9.87925594426931e-02 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 1.97585118885386e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 2.96377678328079e-01 1.00000000000000e-03 3.58501969936754e-01 +-1.68000000000000e+02 3.95170237770772e-01 1.00000000000000e-03 3.75137895572804e-01 +-1.65000000000000e+02 4.93962797213464e-01 1.00000000000000e-03 3.37844738932010e-01 +-1.62000000000000e+02 5.92755356656157e-01 1.00000000000000e-03 3.00551582291217e-01 +-1.59000000000000e+02 6.91547916098850e-01 2.34845905795865e-02 2.77868679007555e-01 +-1.56000000000000e+02 7.90340475541543e-01 8.19429920036401e-02 2.79792518220114e-01 +-1.53000000000000e+02 8.05603265002839e-01 1.48334279868501e-01 2.82869798487184e-01 +-1.50000000000000e+02 7.79872872886181e-01 2.17548436398417e-01 2.85228680486565e-01 +-1.47000000000000e+02 7.59853086023847e-01 2.93069007180268e-01 2.82271415305044e-01 +-1.44000000000000e+02 7.40436209377348e-01 3.71605913399967e-01 2.79026790816447e-01 +-1.41000000000000e+02 7.21421947611706e-01 4.52482993646821e-01 2.75724928869035e-01 +-1.38000000000000e+02 7.00375406824280e-01 5.36554894293199e-01 2.78912629802805e-01 +-1.35000000000000e+02 6.77463569929097e-01 6.21194859601844e-01 2.83050022865528e-01 +-1.32000000000000e+02 6.52499907315382e-01 7.06459696038981e-01 2.88232077270099e-01 +-1.29000000000000e+02 6.22969026724675e-01 7.90882190664922e-01 2.94877096978217e-01 +-1.26000000000000e+02 5.91055992064333e-01 8.74107196146164e-01 3.02009771787517e-01 +-1.23000000000000e+02 5.55842859287961e-01 9.55491574493669e-01 3.09752015473295e-01 +-1.20000000000000e+02 5.16216545368929e-01 1.03274894179073e+00 3.17128653547121e-01 +-1.17000000000000e+02 4.74306334618094e-01 1.10723989079680e+00 3.24285928253775e-01 +-1.14000000000000e+02 4.28892972359084e-01 1.17687829960062e+00 3.31077597348476e-01 +-1.11000000000000e+02 3.80362847684622e-01 1.24028012828113e+00 3.37099139728156e-01 +-1.08000000000000e+02 3.30097435985263e-01 1.29958742759538e+00 3.42400240987331e-01 +-1.05000000000000e+02 2.77157333234034e-01 1.35089814228896e+00 3.45800868256209e-01 +-1.02000000000000e+02 2.22805918939021e-01 1.39510979429046e+00 3.48709773997374e-01 +-9.90000000000000e+01 1.67580863193720e-01 1.43424278260133e+00 3.50944839126487e-01 +-9.60000000000000e+01 1.11504802373983e-01 1.46259574117064e+00 3.49373615392926e-01 +-9.30000000000000e+01 5.56577929866504e-02 1.48411888218436e+00 3.47802391659364e-01 +-9.00000000000000e+01 -1.99354313012125e-16 1.50000000000000e+00 3.46231167925803e-01 +-8.70000000000000e+01 -5.56577929866506e-02 1.48411888218436e+00 3.34558841323088e-01 +-8.40000000000000e+01 -1.11504802373983e-01 1.46259574117064e+00 3.22886514720372e-01 +-8.10000000000000e+01 -1.67580863193720e-01 1.43424278260133e+00 3.11214188117657e-01 +-7.80000000000000e+01 -2.22805918939021e-01 1.39510979429046e+00 2.96890119563205e-01 +-7.50000000000000e+01 -2.77157333234034e-01 1.35089814228896e+00 2.82096603868971e-01 +-7.20000000000000e+01 -3.30097435985264e-01 1.29958742759538e+00 2.66960518640302e-01 +-6.90000000000000e+01 -3.80362847684622e-01 1.24028012828113e+00 2.50950054379163e-01 +-6.60000000000000e+01 -4.28892972359084e-01 1.17687829960062e+00 2.34608126171074e-01 +-6.30000000000000e+01 -4.74306334618094e-01 1.10723989079680e+00 2.17911874433487e-01 +-6.00000000000000e+01 -5.16216545368929e-01 1.03274894179073e+00 2.01306657959851e-01 +-5.70000000000000e+01 -5.55842859287961e-01 9.55491574493668e-01 1.84756062644586e-01 +-5.40000000000000e+01 -5.91055992064333e-01 8.74107196146164e-01 1.68296502593272e-01 +-5.10000000000000e+01 -6.22969026724675e-01 7.90882190664921e-01 1.52167610236562e-01 +-4.80000000000000e+01 -6.52499907315383e-01 7.06459696038980e-01 1.36303252035535e-01 +-4.50000000000000e+01 -6.77463569929097e-01 6.21194859601844e-01 1.21232496301559e-01 +-4.20000000000000e+01 -7.00375406824280e-01 5.36554894293199e-01 1.06260323838730e-01 +-3.90000000000000e+01 -7.21421947611707e-01 4.52482993646820e-01 9.13777725314885e-02 +-3.60000000000000e+01 -7.40436209377348e-01 3.71605913399967e-01 7.71076324540988e-02 +-3.30000000000000e+01 -7.59853086023847e-01 2.93069007180267e-01 6.26843870778669e-02 +-3.00000000000000e+01 -7.79872872886181e-01 2.17548436398416e-01 4.80370854908262e-02 +-2.93939393939394e+01 -7.84455128166244e-01 2.02885725652674e-01 4.46876336917822e-02 +-2.87878787878788e+01 -7.89809086859052e-01 1.89075233049086e-01 4.07780413657157e-02 +-2.81818181818182e+01 -7.95163045551861e-01 1.75264740445498e-01 3.68684490396493e-02 +-2.75757575757576e+01 -8.00517004244670e-01 1.61454247841910e-01 3.29588567135829e-02 +-2.69696969696970e+01 -8.05870962937479e-01 1.47643755238322e-01 2.90492643875165e-02 +-2.63636363636364e+01 -8.11224921630288e-01 1.33833262634734e-01 2.51396720614501e-02 +-2.57575757575758e+01 -8.16578880323097e-01 1.20022770031146e-01 2.12300797353837e-02 +-2.51515151515151e+01 -8.21932839015906e-01 1.06212277427558e-01 1.73204874093173e-02 +-2.45454545454545e+01 -8.71495776455967e-01 9.92276991711495e-02 1.34108950832509e-02 +-2.39393939393939e+01 -9.35795040145111e-01 9.45184256971344e-02 9.50130275718444e-03 +-2.33333333333333e+01 -1.00009430383426e+00 8.98091522231192e-02 5.59171043111801e-03 +-2.27272727272727e+01 -1.06439356752340e+00 8.50998787491041e-02 1.68211810505162e-03 +-2.21212121212121e+01 -1.12869283121254e+00 8.03906052750890e-02 -2.22747422101478e-03 +-2.15151515151515e+01 -1.19299209490169e+00 7.56813318010739e-02 -6.13706654708121e-03 +-2.09090909090909e+01 -1.25729135859083e+00 7.09720583270588e-02 -1.00466588731476e-02 +-2.03030303030303e+01 -1.32159062227998e+00 6.62627848530437e-02 -1.39562511992140e-02 +-1.96969696969697e+01 -1.38588988596912e+00 6.15535113790286e-02 3.22154716276137e-02 +-1.90909090909091e+01 -1.40658011760659e+00 5.87912135138575e-02 4.60636363636364e-02 +-1.84848484848485e+01 -1.40642975938374e+00 5.68489511249081e-02 4.39545454545454e-02 +-1.78787878787879e+01 -1.40817225227384e+00 5.46318913373962e-02 4.21606060606061e-02 +-1.72727272727273e+01 -1.41041041267858e+00 5.22383778248470e-02 4.06454545454545e-02 +-1.66666666666667e+01 -1.41194000140132e+00 4.98008894125208e-02 3.95666666666667e-02 +-1.60606060606061e+01 -1.41318183683536e+00 4.72607849167754e-02 3.89045454545455e-02 +-1.54545454545455e+01 -1.41433052669618e+00 4.46832284980528e-02 3.83818181818182e-02 +-1.48484848484848e+01 -1.41420678149425e+00 4.20838850171988e-02 3.82151515151515e-02 +-1.42424242424242e+01 -1.41303514859359e+00 3.94893232369637e-02 3.82757575757576e-02 +-1.36363636363636e+01 -1.41078568834567e+00 3.69101420485296e-02 3.84454545454545e-02 +-1.30303030303030e+01 -1.40926143291782e+00 3.42257429744119e-02 3.88757575757576e-02 +-1.24242424242424e+01 -1.40471992624315e+00 3.16703399974203e-02 3.93909090909091e-02 +-1.18181818181818e+01 -1.39943658161032e+00 2.91151931461500e-02 4.01545454545455e-02 +-1.12121212121212e+01 -1.39549220459255e+00 2.65086262499513e-02 4.11469696969697e-02 +-1.06060606060606e+01 -1.39179233470447e+00 2.39540912539559e-02 4.22984848484848e-02 +-1.00000000000000e+01 -1.39177005164480e+00 2.13507065792318e-02 4.38000000000000e-02 +-9.39393939393939e+00 -1.38725183136344e+00 1.86887157743847e-02 4.50060606060606e-02 +-8.78787878787879e+00 -1.37013234567637e+00 1.57294257325384e-02 4.45090909090909e-02 +-8.18181818181818e+00 -1.33735775043302e+00 1.25872782418771e-02 4.19636363636364e-02 +-7.57575757575758e+00 -1.29154277493878e+00 1.09111337479172e-02 4.15393939393939e-02 +-6.96969696969697e+00 -1.23623859417270e+00 9.85184797480780e-03 4.21833333333333e-02 +-6.36363636363636e+00 -1.17880537173301e+00 8.82894488139779e-03 4.27545454545455e-02 +-5.75757575757576e+00 -1.11441450763650e+00 8.00900837259168e-03 4.29000000000000e-02 +-5.15151515151515e+00 -1.04954460916343e+00 7.12642796544397e-03 4.30393939393939e-02 +-4.54545454545454e+00 -9.84135797016719e-01 6.19445528164933e-03 4.31909090909091e-02 +-3.93939393939394e+00 -9.09728457171382e-01 5.90057180445947e-03 4.25151515151515e-02 +-3.33333333333333e+00 -8.33464859116865e-01 5.73018812366993e-03 4.16333333333333e-02 +-2.72727272727273e+00 -7.56732206568628e-01 5.60475295869161e-03 4.06090909090909e-02 +-2.12121212121212e+00 -6.79946327978552e-01 5.48829707241607e-03 3.95939393939394e-02 +-1.51515151515152e+00 -6.02940891965884e-01 5.37411039718938e-03 3.85272727272727e-02 +-9.09090909090912e-01 -5.25526280756569e-01 5.30493794166305e-03 3.73363636363636e-02 +-3.03030303030302e-01 -4.48268021045160e-01 5.23296053239813e-03 3.62060606060606e-02 + 3.03030303030302e-01 -3.70650485551328e-01 5.18987431384077e-03 3.49939393939394e-02 + 9.09090909090912e-01 -2.93122769003102e-01 5.15635726542352e-03 3.37000000000000e-02 + 1.51515151515152e+00 -2.15308962479984e-01 5.14423320747356e-03 3.24666666666667e-02 + 2.12121212121212e+00 -1.37744653027993e-01 5.14319604788904e-03 3.11333333333333e-02 + 2.72727272727273e+00 -6.00106855676357e-02 5.15144324184057e-03 2.98000000000000e-02 + 3.33333333333333e+00 1.76201564366557e-02 5.19476136304237e-03 2.84666666666667e-02 + 3.93939393939394e+00 9.52742848342522e-02 5.23092026656405e-03 2.71333333333333e-02 + 4.54545454545455e+00 1.72981639273690e-01 5.30908748696262e-03 2.57909090909091e-02 + 5.15151515151515e+00 2.50432843386770e-01 5.39513436061072e-03 2.43666666666667e-02 + 5.75757575757576e+00 3.28013785976836e-01 5.49686650462163e-03 2.30333333333333e-02 + 6.36363636363637e+00 4.05285352198706e-01 5.62785059910082e-03 2.17000000000000e-02 + 6.96969696969697e+00 4.82400566922669e-01 5.81086585511850e-03 2.02727272727273e-02 + 7.57575757575757e+00 5.59326163872576e-01 5.99175955240291e-03 1.89333333333333e-02 + 8.18181818181818e+00 6.35852565508681e-01 6.23405608924071e-03 1.76363636363636e-02 + 8.78787878787879e+00 7.12006384851903e-01 6.51112430979265e-03 1.63666666666667e-02 + 9.39393939393939e+00 7.87900727241154e-01 6.82954367000404e-03 1.50333333333333e-02 + 1.00000000000000e+01 8.62777121580209e-01 7.21770606190631e-03 1.38000000000000e-02 + 1.06060606060606e+01 9.36991517023874e-01 7.68954384638547e-03 1.25878787878788e-02 + 1.12121212121212e+01 1.01012475849266e+00 8.23864692749871e-03 1.14181818181818e-02 + 1.18181818181818e+01 1.08245628270622e+00 8.85036352220000e-03 1.02636363636364e-02 + 1.24242424242424e+01 1.15291491557253e+00 9.58240798758125e-03 9.13636363636364e-03 + 1.30303030303030e+01 1.22044944276523e+00 1.05515531023372e-02 8.03333333333334e-03 + 1.36363636363636e+01 1.28479040744752e+00 1.17798391720745e-02 6.50909090909091e-03 + 1.42424242424242e+01 1.34785062049802e+00 1.34967763934124e-02 3.55151515151517e-03 + 1.48484848484848e+01 1.39307345627678e+00 1.60355578266168e-02 5.45454545454558e-04 + 1.54545454545455e+01 1.41447098507676e+00 1.90446973802425e-02 -2.27272727272728e-04 + 1.60606060606061e+01 1.43043945760903e+00 2.21940588562880e-02 -5.00000000000000e-04 + 1.66666666666667e+01 1.43260907879420e+00 2.60127201405033e-02 -5.66666666666666e-04 + 1.72727272727273e+01 1.42834500217191e+00 3.03358853642404e-02 -9.18181818181819e-04 + 1.78787878787879e+01 1.41744097683004e+00 3.52065221638920e-02 -1.63030303030303e-03 + 1.84848484848485e+01 1.40295084691918e+00 4.03794385118268e-02 -2.57575757575758e-03 + 1.90909090909091e+01 1.38471493431381e+00 4.58706890403547e-02 -4.01818181818182e-03 + 1.96969696969697e+01 1.36557085236954e+00 5.14502498402337e-02 -5.63030303030303e-03 + 2.03030303030303e+01 1.34565166619096e+00 5.71241912829576e-02 -7.63030303030304e-03 + 2.09090909090909e+01 1.32244244530113e+00 6.30928056774355e-02 -1.01000000000000e-02 + 2.15151515151515e+01 1.30069694056192e+00 6.89612930849843e-02 -1.28878787878788e-02 + 2.21212121212121e+01 1.27354788370003e+00 7.53847513698340e-02 -1.66858585858586e-02 + 2.27272727272727e+01 1.24143106293305e+00 8.23246879940838e-02 -2.16151515151515e-02 + 2.33333333333333e+01 1.20931424216607e+00 8.92646246183335e-02 -2.65444444444444e-02 + 2.39393939393939e+01 1.19163609412415e+00 9.48184664030055e-02 -3.15030303030303e-02 + 2.45454545454545e+01 1.18235878968602e+00 9.94526360459273e-02 -3.66090909090909e-02 + 2.51515151515151e+01 1.17418977002272e+00 1.06212277427558e-01 -4.18046908161832e-02 + 2.57575757575758e+01 1.16654125760442e+00 1.20022770031146e-01 -4.62234540809160e-02 + 2.63636363636364e+01 1.15889274518613e+00 1.33833262634734e-01 -5.06422173456488e-02 + 2.69696969696970e+01 1.15124423276783e+00 1.47643755238322e-01 -5.50609806103816e-02 + 2.75757575757576e+01 1.14359572034953e+00 1.61454247841910e-01 -5.94797438751144e-02 + 2.81818181818182e+01 1.13594720793123e+00 1.75264740445498e-01 -6.38985071398472e-02 + 2.87878787878788e+01 1.12829869551293e+00 1.89075233049086e-01 -6.83172704045801e-02 + 2.93939393939394e+01 1.12065018309463e+00 2.02885725652674e-01 -7.27360336693129e-02 + 3.00000000000000e+01 1.11410410412312e+00 2.17548436398416e-01 -7.65041218145710e-02 + 3.30000000000000e+01 1.08550440860550e+00 2.93069007180268e-01 -9.29113289714108e-02 + 3.60000000000000e+01 1.05776601339621e+00 3.71605913399967e-01 -1.09058266080461e-01 + 3.90000000000000e+01 1.03060278230244e+00 4.52482993646820e-01 -1.24975149676042e-01 + 4.20000000000000e+01 1.00053629546326e+00 5.36554894293199e-01 -1.39463143188952e-01 + 4.50000000000000e+01 9.67805099898710e-01 6.21194859601844e-01 -1.53742030836105e-01 + 4.80000000000000e+01 9.32142724736261e-01 7.06459696038980e-01 -1.67790902030925e-01 + 5.10000000000000e+01 8.89955752463822e-01 7.90882190664922e-01 -1.81720358430556e-01 + 5.40000000000000e+01 8.44365702949048e-01 8.74107196146164e-01 -1.95610009898457e-01 + 5.70000000000000e+01 7.94061227554229e-01 9.55491574493668e-01 -2.09449905201695e-01 + 6.00000000000000e+01 7.37452207669898e-01 1.03274894179073e+00 -2.23184009772407e-01 + 6.30000000000000e+01 6.77580478025849e-01 1.10723989079680e+00 -2.36854639903603e-01 + 6.60000000000000e+01 6.12704246227263e-01 1.17687829960062e+00 -2.50419479302273e-01 + 6.90000000000000e+01 5.43375496692318e-01 1.24028012828113e+00 -2.63769669271706e-01 + 7.20000000000000e+01 4.71567765693233e-01 1.29958742759538e+00 -2.76919058162177e-01 + 7.50000000000000e+01 3.95939047477191e-01 1.35089814228896e+00 -2.89538747654694e-01 + 7.80000000000000e+01 3.18294169912887e-01 1.39510979429046e+00 -3.01968368208564e-01 + 8.10000000000000e+01 2.39401233133886e-01 1.43424278260133e+00 -3.14137523920581e-01 + 8.40000000000000e+01 1.59292574819976e-01 1.46259574117064e+00 -3.24835405255655e-01 + 8.70000000000000e+01 7.95111328380720e-02 1.48411888218436e+00 -3.35533286590729e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -3.46231167925803e-01 + 9.30000000000000e+01 -5.56577929866504e-02 1.48411888218436e+00 -3.47802391659364e-01 + 9.60000000000000e+01 -1.11504802373983e-01 1.46259574117064e+00 -3.49373615392926e-01 + 9.90000000000000e+01 -1.67580863193720e-01 1.43424278260133e+00 -3.50944839126487e-01 + 1.02000000000000e+02 -2.22805918939021e-01 1.39510979429046e+00 -3.48709773997374e-01 + 1.05000000000000e+02 -2.77157333234034e-01 1.35089814228896e+00 -3.45800868256209e-01 + 1.08000000000000e+02 -3.30097435985263e-01 1.29958742759538e+00 -3.42400240987331e-01 + 1.11000000000000e+02 -3.80362847684623e-01 1.24028012828113e+00 -3.37099139728156e-01 + 1.14000000000000e+02 -4.28892972359084e-01 1.17687829960062e+00 -3.31077597348476e-01 + 1.17000000000000e+02 -4.74306334618094e-01 1.10723989079680e+00 -3.24285928253775e-01 + 1.20000000000000e+02 -5.16216545368929e-01 1.03274894179073e+00 -3.17128653547121e-01 + 1.23000000000000e+02 -5.55842859287961e-01 9.55491574493668e-01 -3.09752015473295e-01 + 1.26000000000000e+02 -5.91055992064333e-01 8.74107196146164e-01 -3.02009771787517e-01 + 1.29000000000000e+02 -6.22969026724675e-01 7.90882190664921e-01 -2.94877096978217e-01 + 1.32000000000000e+02 -6.52499907315383e-01 7.06459696038980e-01 -2.88232077270099e-01 + 1.35000000000000e+02 -6.77463569929097e-01 6.21194859601844e-01 -2.83050022865528e-01 + 1.38000000000000e+02 -7.00375406824280e-01 5.36554894293199e-01 -2.78912629802805e-01 + 1.41000000000000e+02 -7.21421947611707e-01 4.52482993646820e-01 -2.75724928869035e-01 + 1.44000000000000e+02 -7.40436209377348e-01 3.71605913399967e-01 -2.79026790816447e-01 + 1.47000000000000e+02 -7.59853086023847e-01 2.93069007180268e-01 -2.82271415305044e-01 + 1.50000000000000e+02 -7.79872872886181e-01 2.17548436398416e-01 -2.85228680486565e-01 + 1.53000000000000e+02 -8.05603265002839e-01 1.48334279868501e-01 -2.82869798487184e-01 + 1.56000000000000e+02 -7.90340475541544e-01 8.19429920036401e-02 -2.79792518220114e-01 + 1.59000000000000e+02 -6.91547916098850e-01 2.34845905795865e-02 -2.78725821864698e-01 + 1.62000000000000e+02 -5.92755356656157e-01 1.00000000000000e-03 -3.20551582291217e-01 + 1.65000000000000e+02 -4.93962797213464e-01 1.00000000000000e-03 -3.87844738932010e-01 + 1.68000000000000e+02 -3.95170237770772e-01 1.00000000000000e-03 -4.55137895572804e-01 + 1.71000000000000e+02 -2.96377678328079e-01 1.00000000000000e-03 -4.47930541365326e-01 + 1.74000000000000e+02 -1.97585118885386e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -9.87925594426931e-02 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +! ------------------------------------------------------------------------------ +! data for table 2 +! ------------------------------------------------------------------------------ +10.450183 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-1.859560 alpha0 ! 0-lift angle of attack, depends on airfoil. +13.030303 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-13.030303 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.501383 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.159999 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005232 Cd0 ! 2D drag coefficient value at 0-lift. +-0.066309 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.12349590762901e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.24699181525802e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.37048772288704e-01 1.00000000000000e-03 3.58984337234524e-01 +-1.68000000000000e+02 4.49398363051604e-01 1.00000000000000e-03 4.08903606416692e-01 +-1.65000000000000e+02 5.61747953814505e-01 1.00000000000000e-03 4.22259016041729e-01 +-1.62000000000000e+02 6.74097544577406e-01 2.19977306049249e-03 4.35614425666766e-01 +-1.59000000000000e+02 7.86447135340308e-01 4.06907493357211e-02 4.43367744931747e-01 +-1.56000000000000e+02 8.98796726103209e-01 9.95113473052269e-02 4.41685964642947e-01 +-1.53000000000000e+02 9.08154417124450e-01 1.65457471476752e-01 4.39561914062564e-01 +-1.50000000000000e+02 8.67239023810221e-01 2.34201097484745e-01 4.36555996076931e-01 +-1.47000000000000e+02 8.35372835457648e-01 3.09188690780898e-01 4.27024259292456e-01 +-1.44000000000000e+02 8.05540080001288e-01 3.87154112126499e-01 4.17139775545881e-01 +-1.41000000000000e+02 7.77225053547896e-01 4.67429316294510e-01 4.07207946409469e-01 +-1.38000000000000e+02 7.48608854657715e-01 5.50837403660782e-01 4.06181925374295e-01 +-1.35000000000000e+02 7.18761335525034e-01 6.34785416924814e-01 4.06459193329546e-01 +-1.32000000000000e+02 6.87559364125603e-01 7.19327348676383e-01 4.08170079174265e-01 +-1.29000000000000e+02 6.52765776515823e-01 8.02976473413069e-01 4.12073985249037e-01 +-1.26000000000000e+02 6.15994931948234e-01 8.85405466604913e-01 4.16708898067160e-01 +-1.23000000000000e+02 5.76459996850500e-01 9.65963346913248e-01 4.22257569314472e-01 +-1.20000000000000e+02 5.33129339313716e-01 1.04235769776452e+00 4.27644501350127e-01 +-1.17000000000000e+02 4.87825412864719e-01 1.11596743796630e+00 4.32934389858789e-01 +-1.14000000000000e+02 4.39486175354713e-01 1.18469741627290e+00 4.38062539155794e-01 +-1.11000000000000e+02 3.88469516064693e-01 1.24716708577020e+00 4.42463930069130e-01 +-1.08000000000000e+02 3.35978947110956e-01 1.30552885828665e+00 4.46185450236451e-01 +-1.05000000000000e+02 2.81261986867569e-01 1.35587301820987e+00 4.48113518263426e-01 +-1.02000000000000e+02 2.25471569646887e-01 1.39910549458263e+00 4.49553645505176e-01 +-9.90000000000000e+01 1.69043523816235e-01 1.43725104231311e+00 4.50325113152356e-01 +-9.60000000000000e+01 1.12223473571026e-01 1.46460465334719e+00 4.47319557684270e-01 +-9.30000000000000e+01 5.59046913126790e-02 1.48512483154199e+00 4.44314002216184e-01 +-9.00000000000000e+01 -2.00523858425664e-16 1.50000000000000e+00 4.41308446748098e-01 +-8.70000000000000e+01 -5.59046913126792e-02 1.48512483154199e+00 4.28742621531593e-01 +-8.40000000000000e+01 -1.12223473571027e-01 1.46460465334719e+00 4.16176796315089e-01 +-8.10000000000000e+01 -1.69043523816235e-01 1.43725104231311e+00 4.03610971098584e-01 +-7.80000000000000e+01 -2.25471569646887e-01 1.39910549458263e+00 3.88533271063726e-01 +-7.50000000000000e+01 -2.81261986867569e-01 1.35587301820987e+00 3.73010885056240e-01 +-7.20000000000000e+01 -3.35978947110957e-01 1.30552885828665e+00 3.57163998474134e-01 +-6.90000000000000e+01 -3.88469516064693e-01 1.24716708577020e+00 3.40589211645476e-01 +-6.60000000000000e+01 -4.39486175354713e-01 1.18469741627290e+00 3.23738488775641e-01 +-6.30000000000000e+01 -4.87825412864719e-01 1.11596743796630e+00 3.06592799792825e-01 +-6.00000000000000e+01 -5.33129339313716e-01 1.04235769776452e+00 2.89614434869881e-01 +-5.70000000000000e+01 -5.76459996850500e-01 9.65963346913247e-01 2.72736464382861e-01 +-5.40000000000000e+01 -6.15994931948234e-01 8.85405466604912e-01 2.56025817955714e-01 +-5.10000000000000e+01 -6.52765776515823e-01 8.02976473413068e-01 2.39613156949535e-01 +-4.80000000000000e+01 -6.87559364125603e-01 7.19327348676383e-01 2.23438884280130e-01 +-4.50000000000000e+01 -7.18761335525034e-01 6.34785416924814e-01 2.07979776621050e-01 +-4.20000000000000e+01 -7.48608854657715e-01 5.50837403660782e-01 1.92468832813857e-01 +-3.90000000000000e+01 -7.77225053547896e-01 4.67429316294509e-01 1.76910765235653e-01 +-3.60000000000000e+01 -8.05540080001287e-01 3.87154112126500e-01 1.61030685222204e-01 +-3.30000000000000e+01 -8.35372835457648e-01 3.09188690780898e-01 1.44690173585060e-01 +-3.00000000000000e+01 -8.67239023810221e-01 2.34201097484744e-01 1.27746225065438e-01 +-2.93939393939394e+01 -8.74528937840436e-01 2.19640177385171e-01 1.23271762109679e-01 +-2.87878787878788e+01 -8.83041717406009e-01 2.05923036648862e-01 1.17288706947722e-01 +-2.81818181818182e+01 -8.91554496971582e-01 1.92205895912554e-01 1.11305651785765e-01 +-2.75757575757576e+01 -9.00067276537156e-01 1.78488755176245e-01 1.05322596623808e-01 +-2.69696969696970e+01 -9.08580056102729e-01 1.64771614439937e-01 9.93395414618513e-02 +-2.63636363636364e+01 -9.17092835668302e-01 1.51054473703628e-01 9.33564862998945e-02 +-2.57575757575758e+01 -9.25605615233876e-01 1.37337332967320e-01 8.73734311379376e-02 +-2.51515151515151e+01 -9.34118394799449e-01 1.23620192231011e-01 8.13903759759808e-02 +-2.45454545454545e+01 -9.58968550051168e-01 1.14369056813381e-01 7.54073208140240e-02 +-2.39393939393939e+01 -9.89264497198267e-01 1.06606589835310e-01 6.94242656520671e-02 +-2.33333333333333e+01 -1.01956044434537e+00 9.88441228572387e-02 6.34412104901102e-02 +-2.27272727272727e+01 -1.04985639149247e+00 9.10816558791677e-02 5.74581553281534e-02 +-2.21212121212121e+01 -1.08015233863957e+00 8.33191889010967e-02 5.14751001661966e-02 +-2.15151515151515e+01 -1.11044828578667e+00 7.55567219230256e-02 4.54920450042397e-02 +-2.09090909090909e+01 -1.14074423293377e+00 6.77942549449546e-02 3.95089898422829e-02 +-2.03030303030303e+01 -1.17104018008087e+00 6.00317879668835e-02 3.35259346803260e-02 +-1.96969696969697e+01 -1.20133612722797e+00 5.22693209888124e-02 -1.22946525485246e-03 +-1.90909090909091e+01 -1.21079499194780e+00 4.82989975200407e-02 -1.41090909090909e-02 +-1.84848484848485e+01 -1.20882051068027e+00 4.61713160340316e-02 -1.58363636363636e-02 +-1.78787878787879e+01 -1.20481321837785e+00 4.40823356921799e-02 -1.72666666666667e-02 +-1.72727272727273e+01 -1.20013054041244e+00 4.19615039636025e-02 -1.85090909090909e-02 +-1.66666666666667e+01 -1.19495879007039e+00 4.01266575623264e-02 -1.91333333333333e-02 +-1.60606060606061e+01 -1.18620549950074e+00 3.83057741947387e-02 -1.98151515151515e-02 +-1.54545454545455e+01 -1.17599164584710e+00 3.63940476008032e-02 -2.06454545454545e-02 +-1.48484848484848e+01 -1.16380653108351e+00 3.44316929949223e-02 -2.12212121212121e-02 +-1.42424242424242e+01 -1.14981484284701e+00 3.25001193369683e-02 -2.17060606060606e-02 +-1.36363636363636e+01 -1.13417627824018e+00 3.05775621798888e-02 -2.21181818181818e-02 +-1.30303030303030e+01 -1.11738323666264e+00 2.86673175232091e-02 -2.24818181818182e-02 +-1.24242424242424e+01 -1.09871375412980e+00 2.67666824061869e-02 -2.27378787878788e-02 +-1.18181818181818e+01 -1.07937553997992e+00 2.47989977458434e-02 -2.30409090909091e-02 +-1.12121212121212e+01 -1.05927876459280e+00 2.28239669073612e-02 -2.33727272727273e-02 +-1.06060606060606e+01 -1.03834357941715e+00 2.07856203391971e-02 -2.38939393939394e-02 +-1.00000000000000e+01 -1.01356568271072e+00 1.84444191536218e-02 -2.60000000000000e-02 +-9.39393939393939e+00 -9.59326997601675e-01 1.48889117490278e-02 -3.34393939393939e-02 +-8.78787878787879e+00 -8.83775403344455e-01 1.09609983183834e-02 -4.31242424242424e-02 +-8.18181818181818e+00 -8.02720913094247e-01 8.53034282653009e-03 -4.95363636363636e-02 +-7.57575757575758e+00 -7.26597070886125e-01 7.25200076695745e-03 -5.26515151515151e-02 +-6.96969696969697e+00 -6.52050237565956e-01 6.23497427528131e-03 -5.47787878787879e-02 +-6.36363636363636e+00 -5.75337512292079e-01 5.89572500107737e-03 -5.63000000000000e-02 +-5.75757575757576e+00 -4.98055866090268e-01 5.70931600155158e-03 -5.76818181818182e-02 +-5.15151515151515e+00 -4.20694371337169e-01 5.55062190851278e-03 -5.90666666666667e-02 +-4.54545454545454e+00 -3.43332876584069e-01 5.43405457551692e-03 -6.04000000000000e-02 +-3.93939393939394e+00 -2.65861590072947e-01 5.36325100837953e-03 -6.17333333333333e-02 +-3.33333333333333e+00 -1.88463498067174e-01 5.30813070856165e-03 -6.30666666666667e-02 +-2.72727272727273e+00 -1.10909035981793e-01 5.26224244207573e-03 -6.44000000000000e-02 +-2.12121212121212e+00 -3.33645549653231e-02 5.23074560534732e-03 -6.57333333333333e-02 +-1.51515151515152e+00 4.39170912364873e-02 5.23273746152894e-03 -6.70666666666667e-02 +-9.09090909090912e-01 1.21494842482660e-01 5.23893809330785e-03 -6.84000000000000e-02 +-3.03030303030302e-01 1.98813085937146e-01 5.26478791153835e-03 -6.96939393939394e-02 + 3.03030303030302e-01 2.76108040230838e-01 5.30596313766792e-03 -7.09060606060606e-02 + 9.09090909090912e-01 3.53289875743538e-01 5.37132218549743e-03 -7.21181818181818e-02 + 1.51515151515152e+00 4.30055833384941e-01 5.46013340319839e-03 -7.33303030303030e-02 + 2.12121212121212e+00 5.07044701565359e-01 5.54913704040580e-03 -7.45181818181818e-02 + 2.72727272727273e+00 5.83507900116460e-01 5.67382373077323e-03 -7.56090909090909e-02 + 3.33333333333333e+00 6.59804747519041e-01 5.81626822918754e-03 -7.67000000000000e-02 + 3.93939393939394e+00 7.35908627589341e-01 5.95940433180996e-03 -7.77030303030303e-02 + 4.54545454545455e+00 8.11550051466761e-01 6.15356197264363e-03 -7.86636363636364e-02 + 5.15151515151515e+00 8.86549359910899e-01 6.38075149805006e-03 -7.94818181818182e-02 + 5.75757575757576e+00 9.60623755969274e-01 6.66546135775238e-03 -8.01575757575757e-02 + 6.36363636363637e+00 1.03407267170922e+00 6.98128636331177e-03 -8.07636363636364e-02 + 6.96969696969697e+00 1.10658669399449e+00 7.33798854489919e-03 -8.11818181818182e-02 + 7.57575757575757e+00 1.17811924450351e+00 7.73214844295483e-03 -8.15000000000000e-02 + 8.18181818181818e+00 1.24768219741407e+00 8.21867102284280e-03 -8.15000000000000e-02 + 8.78787878787879e+00 1.31573135487310e+00 8.74164641068361e-03 -8.13272727272727e-02 + 9.39393939393939e+00 1.38162127442437e+00 9.32901976279553e-03 -8.08848484848485e-02 + 1.00000000000000e+01 1.44516231575856e+00 9.95454222032593e-03 -8.01000000000000e-02 + 1.06060606060606e+01 1.50326034751323e+00 1.07192311493364e-02 -7.86181818181818e-02 + 1.12121212121212e+01 1.55344671864436e+00 1.16182543360407e-02 -7.61393939393940e-02 + 1.18181818181818e+01 1.59305648375270e+00 1.24924303295800e-02 -7.22818181818182e-02 + 1.24242424242424e+01 1.62530354702760e+00 1.35299782257634e-02 -6.81000000000000e-02 + 1.30303030303030e+01 1.65396407954045e+00 1.49805886296681e-02 -6.47606060606061e-02 + 1.36363636363636e+01 1.67655279513238e+00 1.71159190063777e-02 -6.20818181818182e-02 + 1.42424242424242e+01 1.69110009620493e+00 1.99964991096406e-02 -5.99242424242424e-02 + 1.48484848484848e+01 1.69549997721785e+00 2.36790316387546e-02 -5.81242424242424e-02 + 1.54545454545455e+01 1.68580991595127e+00 2.83949312756944e-02 -5.67000000000000e-02 + 1.60606060606061e+01 1.67205755963787e+00 3.34354920533778e-02 -5.54393939393939e-02 + 1.66666666666667e+01 1.65067301263044e+00 3.93047854828227e-02 -5.49666666666667e-02 + 1.72727272727273e+01 1.62447093636192e+00 4.56452062634313e-02 -5.50090909090909e-02 + 1.78787878787879e+01 1.59518470979987e+00 5.22986308745702e-02 -5.55545454545455e-02 + 1.84848484848485e+01 1.56326015402231e+00 5.92193430466121e-02 -5.66696969696970e-02 + 1.90909090909091e+01 1.53161174115130e+00 6.61610780772174e-02 -5.83909090909091e-02 + 1.96969696969697e+01 1.49898629253465e+00 7.32453017276737e-02 -6.10262626262626e-02 + 2.03030303030303e+01 1.45821629168655e+00 8.11654155259905e-02 -6.51070707070707e-02 + 2.09090909090909e+01 1.41744629083844e+00 8.90855293243074e-02 -6.91878787878788e-02 + 2.15151515151515e+01 1.39918082786573e+00 9.47306485570657e-02 -7.32166666666666e-02 + 2.21212121212121e+01 1.38611383828422e+00 9.97431347455706e-02 -7.78833333333333e-02 + 2.27272727272727e+01 1.37362076016510e+00 1.04619438065178e-01 -8.27545454545454e-02 + 2.33333333333333e+01 1.36288934070879e+00 1.09109621739551e-01 -8.81000000000000e-02 + 2.39393939393939e+01 1.35349205746360e+00 1.13321092217681e-01 -9.37303030303030e-02 + 2.45454545454545e+01 1.34415133360891e+00 1.17315761606769e-01 -9.97727272727272e-02 + 2.51515151515151e+01 1.33445484971350e+00 1.23620192231011e-01 -1.05957364872395e-01 + 2.57575757575758e+01 1.32229373604839e+00 1.37337332967320e-01 -1.11786824361975e-01 + 2.63636363636364e+01 1.31013262238329e+00 1.51054473703628e-01 -1.17616283851556e-01 + 2.69696969696970e+01 1.29797150871818e+00 1.64771614439937e-01 -1.23445743341136e-01 + 2.75757575757576e+01 1.28581039505308e+00 1.78488755176245e-01 -1.29275202830716e-01 + 2.81818181818182e+01 1.27364928138797e+00 1.92205895912553e-01 -1.35104662320296e-01 + 2.87878787878788e+01 1.26148816772287e+00 2.05923036648862e-01 -1.40934121809877e-01 + 2.93939393939394e+01 1.24932705405777e+00 2.19640177385171e-01 -1.46763581299457e-01 + 3.00000000000000e+01 1.23891289115746e+00 2.34201097484744e-01 -1.51461089495699e-01 + 3.30000000000000e+01 1.19338976493950e+00 3.09188690780898e-01 -1.70808523105081e-01 + 3.60000000000000e+01 1.15077154285898e+00 3.87154112126500e-01 -1.89703176197128e-01 + 3.90000000000000e+01 1.11032150506842e+00 4.67429316294510e-01 -2.08189414382020e-01 + 4.20000000000000e+01 1.06944122093959e+00 5.50837403660782e-01 -2.23853642281599e-01 + 4.50000000000000e+01 1.02680190789291e+00 6.34785416924814e-01 -2.39104893066255e-01 + 4.80000000000000e+01 9.82227663036576e-01 7.19327348676383e-01 -2.53901869024494e-01 + 5.10000000000000e+01 9.32522537879747e-01 8.02976473413069e-01 -2.68383203139189e-01 + 5.40000000000000e+01 8.79992759926048e-01 8.85405466604913e-01 -2.82759323306035e-01 + 5.70000000000000e+01 8.23514281215000e-01 9.65963346913248e-01 -2.97003926038071e-01 + 6.00000000000000e+01 7.61613341876737e-01 1.04235769776452e+00 -3.11183963979952e-01 + 6.30000000000000e+01 6.96893446949599e-01 1.11596743796630e+00 -3.25325263047741e-01 + 6.60000000000000e+01 6.27837393363876e-01 1.18469741627290e+00 -3.39401997325375e-01 + 6.90000000000000e+01 5.54956451520990e-01 1.24716708577020e+00 -3.53313296216145e-01 + 7.20000000000000e+01 4.79969924444224e-01 1.30552885828665e+00 -3.67069832970815e-01 + 7.50000000000000e+01 4.01802838382241e-01 1.35587301820987e+00 -3.80418117883705e-01 + 7.80000000000000e+01 3.22102242352696e-01 1.39910549458263e+00 -3.93592798858241e-01 + 8.10000000000000e+01 2.41490748308907e-01 1.43725104231311e+00 -4.06529578139479e-01 + 8.40000000000000e+01 1.60319247958609e-01 1.46460465334719e+00 -4.18122534342352e-01 + 8.70000000000000e+01 7.98638447323985e-02 1.48512483154199e+00 -4.29715490545225e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -4.41308446748098e-01 + 9.30000000000000e+01 -5.59046913126789e-02 1.48512483154199e+00 -4.44314002216184e-01 + 9.60000000000000e+01 -1.12223473571027e-01 1.46460465334719e+00 -4.47319557684270e-01 + 9.90000000000000e+01 -1.69043523816235e-01 1.43725104231311e+00 -4.50325113152356e-01 + 1.02000000000000e+02 -2.25471569646887e-01 1.39910549458263e+00 -4.49553645505176e-01 + 1.05000000000000e+02 -2.81261986867569e-01 1.35587301820987e+00 -4.48113518263426e-01 + 1.08000000000000e+02 -3.35978947110957e-01 1.30552885828665e+00 -4.46185450236451e-01 + 1.11000000000000e+02 -3.88469516064694e-01 1.24716708577020e+00 -4.42463930069130e-01 + 1.14000000000000e+02 -4.39486175354713e-01 1.18469741627290e+00 -4.38062539155794e-01 + 1.17000000000000e+02 -4.87825412864719e-01 1.11596743796630e+00 -4.32934389858789e-01 + 1.20000000000000e+02 -5.33129339313716e-01 1.04235769776452e+00 -4.27644501350127e-01 + 1.23000000000000e+02 -5.76459996850500e-01 9.65963346913248e-01 -4.22257569314472e-01 + 1.26000000000000e+02 -6.15994931948234e-01 8.85405466604913e-01 -4.16708898067160e-01 + 1.29000000000000e+02 -6.52765776515823e-01 8.02976473413068e-01 -4.12073985249037e-01 + 1.32000000000000e+02 -6.87559364125603e-01 7.19327348676383e-01 -4.08170079174265e-01 + 1.35000000000000e+02 -7.18761335525034e-01 6.34785416924814e-01 -4.06459193329546e-01 + 1.38000000000000e+02 -7.48608854657715e-01 5.50837403660781e-01 -4.06181925374295e-01 + 1.41000000000000e+02 -7.77225053547896e-01 4.67429316294509e-01 -4.07207946409469e-01 + 1.44000000000000e+02 -8.05540080001288e-01 3.87154112126499e-01 -4.17139775545881e-01 + 1.47000000000000e+02 -8.35372835457648e-01 3.09188690780898e-01 -4.27024259292456e-01 + 1.50000000000000e+02 -8.67239023810221e-01 2.34201097484744e-01 -4.36555996076931e-01 + 1.53000000000000e+02 -9.08154417124450e-01 1.65457471476752e-01 -4.39561914062564e-01 + 1.56000000000000e+02 -8.98796726103209e-01 9.95113473052269e-02 -4.41685964642947e-01 + 1.59000000000000e+02 -7.86447135340307e-01 4.06907493357210e-02 -4.44224887788890e-01 + 1.62000000000000e+02 -6.74097544577406e-01 2.19977306049249e-03 -4.55614425666766e-01 + 1.65000000000000e+02 -5.61747953814505e-01 1.00000000000000e-03 -4.72259016041729e-01 + 1.68000000000000e+02 -4.49398363051604e-01 1.00000000000000e-03 -4.88903606416692e-01 + 1.71000000000000e+02 -3.37048772288704e-01 1.00000000000000e-03 -4.48412908663095e-01 + 1.74000000000000e+02 -2.24699181525802e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.12349590762901e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +! ------------------------------------------------------------------------------ +! data for table 3 +! ------------------------------------------------------------------------------ +10.450183 Re ! Reynolds number in millions +10 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-6.712263 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.818182 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.818182 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.661529 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.901815 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006665 Cd0 ! 2D drag coefficient value at 0-lift. +-0.156459 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.23682119142102e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.47364238284204e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.71046357426306e-01 1.00000000000000e-03 3.59434208467183e-01 +-1.68000000000000e+02 4.94728476568408e-01 1.00000000000000e-03 4.40394592702845e-01 +-1.65000000000000e+02 6.18410595710510e-01 1.00000000000000e-03 5.00986481757112e-01 +-1.62000000000000e+02 7.42092714852612e-01 5.38297915331498e-03 5.61578370811380e-01 +-1.59000000000000e+02 8.65774833994714e-01 5.74427646214003e-02 5.97623796754111e-01 +-1.56000000000000e+02 9.89456953136816e-01 1.15903352877632e-01 5.92327811140571e-01 +-1.53000000000000e+02 9.93878482687801e-01 1.81434120823914e-01 5.85093946860330e-01 +-1.50000000000000e+02 9.40269716248942e-01 2.49738722301441e-01 5.76866235074035e-01 +-1.47000000000000e+02 8.98500940972385e-01 3.24229025454861e-01 5.61284051742934e-01 +-1.44000000000000e+02 8.59961394226760e-01 4.01661227664126e-01 5.45304329409410e-01 +-1.41000000000000e+02 8.23871717314673e-01 4.81374856438827e-01 5.29298672698381e-01 +-1.38000000000000e+02 7.88927926251533e-01 5.64163578429128e-01 5.24454030834080e-01 +-1.35000000000000e+02 7.53282765000226e-01 6.47465971680564e-01 5.21242708215641e-01 +-1.32000000000000e+02 7.16866096541937e-01 7.31333403319246e-01 5.19828036767652e-01 +-1.29000000000000e+02 6.77673332207074e-01 8.14260941810857e-01 5.21286608604852e-01 +-1.26000000000000e+02 6.36841770559590e-01 8.95947222457359e-01 5.23702928203783e-01 +-1.23000000000000e+02 5.93694175263667e-01 9.75733945748941e-01 5.27316432504877e-01 +-1.20000000000000e+02 5.47267000636751e-01 1.05132306639251e+00 5.30960203144312e-01 +-1.17000000000000e+02 4.99126215693296e-01 1.12411060216010e+00 5.34622133586753e-01 +-1.14000000000000e+02 4.48341194623988e-01 1.19199297706179e+00 5.38314330367534e-01 +-1.11000000000000e+02 3.95246003284354e-01 1.25359290330404e+00 5.41322531871513e-01 +-1.08000000000000e+02 3.40895391586905e-01 1.31107246002555e+00 5.43690866826225e-01 +-1.05000000000000e+02 2.84693129179639e-01 1.36051478418157e+00 5.44371277952696e-01 +-1.02000000000000e+02 2.27699827558403e-01 1.40283364900179e+00 5.44568581429490e-01 +-9.90000000000000e+01 1.70266184044885e-01 1.44005787363637e+00 5.44103848497467e-01 +-9.60000000000000e+01 1.12824221739519e-01 1.46647905189089e+00 5.39899504499419e-01 +-9.30000000000000e+01 5.61110773731969e-02 1.48606342409620e+00 5.35695160501372e-01 +-9.00000000000000e+01 -2.01501499199419e-16 1.50000000000000e+00 5.31490816503325e-01 +-8.70000000000000e+01 -5.61110773731971e-02 1.48606342409620e+00 5.18226189206707e-01 +-8.40000000000000e+01 -1.12824221739519e-01 1.46647905189089e+00 5.04961561910089e-01 +-8.10000000000000e+01 -1.70266184044886e-01 1.44005787363637e+00 4.91696934613470e-01 +-7.80000000000000e+01 -2.27699827558404e-01 1.40283364900179e+00 4.76019961547214e-01 +-7.50000000000000e+01 -2.84693129179639e-01 1.36051478418157e+00 4.59915922483462e-01 +-7.20000000000000e+01 -3.40895391586906e-01 1.31107246002555e+00 4.43500240664780e-01 +-6.90000000000000e+01 -3.95246003284354e-01 1.25359290330404e+00 4.26456951923062e-01 +-6.60000000000000e+01 -4.48341194623988e-01 1.19199297706179e+00 4.09175746831435e-01 +-6.30000000000000e+01 -4.99126215693296e-01 1.12411060216010e+00 3.91640217365767e-01 +-6.00000000000000e+01 -5.47267000636751e-01 1.05132306639250e+00 3.74308574262964e-01 +-5.70000000000000e+01 -5.93694175263667e-01 9.75733945748940e-01 3.57099262977881e-01 +-5.40000000000000e+01 -6.36841770559590e-01 8.95947222457359e-01 3.40093838055664e-01 +-5.10000000000000e+01 -6.77673332207074e-01 8.14260941810857e-01 3.23325975087993e-01 +-4.80000000000000e+01 -7.16866096541937e-01 7.31333403319245e-01 3.06748161683959e-01 +-4.50000000000000e+01 -7.53282765000226e-01 6.47465971680564e-01 2.90740496970837e-01 +-4.20000000000000e+01 -7.88927926251533e-01 5.64163578429128e-01 2.74515350941148e-01 +-3.90000000000000e+01 -8.23871717314673e-01 4.81374856438826e-01 2.58092494623669e-01 +-3.60000000000000e+01 -8.59961394226760e-01 4.01661227664126e-01 2.40318618006302e-01 +-3.30000000000000e+01 -8.98500940972385e-01 3.24229025454861e-01 2.22032593805482e-01 +-3.00000000000000e+01 -9.40269716248943e-01 2.49738722301440e-01 2.03107641779568e-01 +-2.93939393939394e+01 -9.49823003351221e-01 2.35272777104785e-01 1.98171135816465e-01 +-2.87878787878788e+01 -9.60976289259216e-01 2.21642737540008e-01 1.91637310290624e-01 +-2.81818181818182e+01 -9.72129575167211e-01 2.08012697975230e-01 1.85103484764784e-01 +-2.75757575757576e+01 -9.83282861075206e-01 1.94382658410453e-01 1.78569659238944e-01 +-2.69696969696970e+01 -9.94436146983200e-01 1.80752618845675e-01 1.72035833713103e-01 +-2.63636363636364e+01 -1.00558943289120e+00 1.67122579280898e-01 1.65502008187263e-01 +-2.57575757575758e+01 -1.01674271879919e+00 1.53492539716121e-01 1.58968182661422e-01 +-2.51515151515151e+01 -1.02789600470719e+00 1.39862500151343e-01 1.52434357135582e-01 +-2.45454545454545e+01 -1.02373654029149e+00 1.28910481611340e-01 1.45900531609741e-01 +-2.39393939393939e+01 -1.01447282576790e+00 1.18851136746261e-01 1.39366706083901e-01 +-2.33333333333333e+01 -1.00520911124430e+00 1.08791791881183e-01 1.32832880558060e-01 +-2.27272727272727e+01 -9.95945396720709e-01 9.87324470161041e-02 1.26299055032220e-01 +-2.21212121212121e+01 -9.86681682197116e-01 8.86731021510255e-02 1.19765229506380e-01 +-2.15151515151515e+01 -9.77417967673523e-01 7.86137572859468e-02 1.13231403980539e-01 +-2.09090909090909e+01 -9.68154253149930e-01 6.85544124208683e-02 1.06697578454699e-01 +-2.03030303030303e+01 -9.58890538626337e-01 5.84950675557896e-02 1.00163752928858e-01 +-1.96969696969697e+01 -9.49626824102744e-01 4.84357226907110e-02 -3.62305411290391e-02 +-1.90909090909091e+01 -9.39074833875635e-01 4.39916428091803e-02 -8.31909090909091e-02 +-1.84848484848485e+01 -9.25409270554459e-01 4.22859712764414e-02 -8.50454545454545e-02 +-1.78787878787879e+01 -9.10854678111108e-01 4.05363665138981e-02 -8.68151515151515e-02 +-1.72727272727273e+01 -8.93465887563984e-01 3.88299077580416e-02 -8.83909090909091e-02 +-1.66666666666667e+01 -8.74569758166857e-01 3.71334121995760e-02 -8.99000000000000e-02 +-1.60606060606061e+01 -8.52404942749104e-01 3.55172265333622e-02 -9.12666666666667e-02 +-1.54545454545455e+01 -8.29087063244321e-01 3.38632969770155e-02 -9.26000000000000e-02 +-1.48484848484848e+01 -8.03743801604058e-01 3.21928795984728e-02 -9.39333333333333e-02 +-1.42424242424242e+01 -7.76746143665012e-01 3.05015981736519e-02 -9.52666666666667e-02 +-1.36363636363636e+01 -7.47472437484610e-01 2.88123626638349e-02 -9.66727272727273e-02 +-1.30303030303030e+01 -7.19211422371948e-01 2.74844149930265e-02 -9.78454545454546e-02 +-1.24242424242424e+01 -6.92056680339887e-01 2.58009357165527e-02 -9.92121212121212e-02 +-1.18181818181818e+01 -6.63932696031770e-01 2.38871234868574e-02 -1.01163636363636e-01 +-1.12121212121212e+01 -6.26721229831955e-01 2.12563405465704e-02 -1.05839393939394e-01 +-1.06060606060606e+01 -5.64453179688753e-01 1.77862973403498e-02 -1.14839393939394e-01 +-1.00000000000000e+01 -4.78552329083541e-01 1.42734406864806e-02 -1.26000000000000e-01 +-9.39393939393939e+00 -3.78383563731856e-01 1.10612511137778e-02 -1.37336363636364e-01 +-8.78787878787879e+00 -2.80099807496360e-01 8.61356941472191e-03 -1.46384848484848e-01 +-8.18181818181818e+00 -1.95943592988046e-01 7.77797754911734e-03 -1.50118181818182e-01 +-7.57575757575758e+00 -1.14183746451911e-01 7.21750982691154e-03 -1.53051515151515e-01 +-6.96969696969697e+00 -3.37875235317407e-02 6.80125998297607e-03 -1.55515151515152e-01 +-6.36363636363636e+00 4.57564346284501e-02 6.47972139535548e-03 -1.57736363636364e-01 +-5.75757575757576e+00 1.24147328701610e-01 6.28032688529307e-03 -1.59578787878788e-01 +-5.15151515151515e+00 2.01896517543727e-01 6.14781832754602e-03 -1.61206060606061e-01 +-4.54545454545454e+00 2.79445173501143e-01 6.03713762438154e-03 -1.62781818181818e-01 +-3.93939393939394e+00 3.56295306576850e-01 5.99686140157595e-03 -1.64133333333333e-01 +-3.33333333333333e+00 4.32974986700562e-01 5.97709995907123e-03 -1.65466666666667e-01 +-2.72727272727273e+00 5.09474187228043e-01 5.97213637030755e-03 -1.66745454545455e-01 +-2.12121212121212e+00 5.85418580107851e-01 6.01595884224745e-03 -1.67881818181818e-01 +-1.51515151515152e+00 6.61162440102958e-01 6.08146564985479e-03 -1.68875757575758e-01 +-9.09090909090912e-01 7.36505234328663e-01 6.16642335822808e-03 -1.69827272727273e-01 +-3.03030303030302e-01 8.11045897015565e-01 6.30850319663166e-03 -1.70636363636364e-01 + 3.03030303030302e-01 8.85519715407566e-01 6.44337746847997e-03 -1.71363636363636e-01 + 9.09090909090912e-01 9.59204771119743e-01 6.61869405085749e-03 -1.71927272727273e-01 + 1.51515151515152e+00 1.03180360703979e+00 6.85171141049589e-03 -1.72257575757576e-01 + 2.12121212121212e+00 1.10417851457192e+00 7.09117673893743e-03 -1.72548484848485e-01 + 2.72727272727273e+00 1.17527669607146e+00 7.37257460802435e-03 -1.72609090909091e-01 + 3.33333333333333e+00 1.24472382348695e+00 7.71438952992128e-03 -1.72300000000000e-01 + 3.93939393939394e+00 1.31279061621276e+00 8.09709116978931e-03 -1.71760606060606e-01 + 4.54545454545455e+00 1.37540625668944e+00 8.53215917891055e-03 -1.70272727272727e-01 + 5.15151515151515e+00 1.43687885972333e+00 8.99844585185709e-03 -1.68575757575758e-01 + 5.75757575757576e+00 1.49691431041686e+00 9.58938828425611e-03 -1.66724242424242e-01 + 6.36363636363637e+00 1.55404871871172e+00 1.02280012962855e-02 -1.64445454545455e-01 + 6.96969696969697e+00 1.60737300219726e+00 1.09530783796751e-02 -1.61645454545455e-01 + 7.57575757575757e+00 1.65536311094975e+00 1.17965584645881e-02 -1.58015151515152e-01 + 8.18181818181818e+00 1.70018480012397e+00 1.26996465201901e-02 -1.54063636363636e-01 + 8.78787878787879e+00 1.73904063597833e+00 1.37800342263839e-02 -1.49424242424242e-01 + 9.39393939393939e+00 1.76936156944550e+00 1.51141382730588e-02 -1.43975757575758e-01 + 1.00000000000000e+01 1.79746772860831e+00 1.65079054693513e-02 -1.38400000000000e-01 + 1.06060606060606e+01 1.82473944815645e+00 1.79301702743001e-02 -1.32781818181818e-01 + 1.12121212121212e+01 1.84611215867963e+00 1.95745798473360e-02 -1.26921212121212e-01 + 1.18181818181818e+01 1.86186994843119e+00 2.15210125695427e-02 -1.21045454545455e-01 + 1.24242424242424e+01 1.87238714546256e+00 2.38997942568661e-02 -1.15312121212121e-01 + 1.30303030303030e+01 1.87675466736310e+00 2.70602210610554e-02 -1.10306060606061e-01 + 1.36363636363636e+01 1.87397987635354e+00 3.14415255137654e-02 -1.06686363636364e-01 + 1.42424242424242e+01 1.86322721874763e+00 3.67350293316170e-02 -1.03959090909091e-01 + 1.48484848484848e+01 1.84647862788916e+00 4.25237583022615e-02 -1.01684848484848e-01 + 1.54545454545455e+01 1.81988387239187e+00 4.91368124786442e-02 -1.00018181818182e-01 + 1.60606060606061e+01 1.78793488887307e+00 5.62789040845881e-02 -9.92060606060606e-02 + 1.66666666666667e+01 1.75271721933364e+00 6.37569589933190e-02 -9.92666666666667e-02 + 1.72727272727273e+01 1.71786050898667e+00 7.11977660936210e-02 -9.97909090909091e-02 + 1.78787878787879e+01 1.68428052467230e+00 7.85149948733363e-02 -1.01336363636364e-01 + 1.84848484848485e+01 1.65259223390360e+00 8.56158909349841e-02 -1.03736363636364e-01 + 1.90909090909091e+01 1.60815172277530e+00 9.38925671439292e-02 -1.08231818181818e-01 + 1.96969696969697e+01 1.57226059696475e+00 1.01260735401542e-01 -1.12639393939394e-01 + 2.03030303030303e+01 1.55716306019031e+00 1.06363802944500e-01 -1.16821212121212e-01 + 2.09090909090909e+01 1.54232955838074e+00 1.11310110196530e-01 -1.21554545454545e-01 + 2.15151515151515e+01 1.52960165186052e+00 1.15817617521663e-01 -1.26533333333333e-01 + 2.21212121212121e+01 1.51898268284441e+00 1.19903055594675e-01 -1.31915151515152e-01 + 2.27272727272727e+01 1.50894860140868e+00 1.23766992751077e-01 -1.37627272727273e-01 + 2.33333333333333e+01 1.49921866151474e+00 1.27404602053729e-01 -1.43633333333333e-01 + 2.39393939393939e+01 1.48966920121703e+00 1.30847440681299e-01 -1.50045454545455e-01 + 2.45454545454545e+01 1.47996934125580e+00 1.34112803175114e-01 -1.56827272727273e-01 + 2.51515151515151e+01 1.46842286386741e+00 1.39862500151343e-01 -1.63933964735089e-01 + 2.57575757575758e+01 1.45248959828456e+00 1.53492539716121e-01 -1.71269823675443e-01 + 2.63636363636364e+01 1.43655633270171e+00 1.67122579280898e-01 -1.78605682615798e-01 + 2.69696969696970e+01 1.42062306711886e+00 1.80752618845675e-01 -1.85941541556152e-01 + 2.75757575757576e+01 1.40468980153601e+00 1.94382658410453e-01 -1.93277400496507e-01 + 2.81818181818182e+01 1.38875653595316e+00 2.08012697975230e-01 -2.00613259436861e-01 + 2.87878787878788e+01 1.37282327037031e+00 2.21642737540008e-01 -2.07949118377216e-01 + 2.93939393939394e+01 1.35689000478746e+00 2.35272777104785e-01 -2.15284977317570e-01 + 3.00000000000000e+01 1.34324245178420e+00 2.49738722301440e-01 -2.20992692095358e-01 + 3.30000000000000e+01 1.28357277281769e+00 3.24229025454861e-01 -2.43628782884551e-01 + 3.60000000000000e+01 1.22851627746680e+00 4.01661227664126e-01 -2.65613616008717e-01 + 3.90000000000000e+01 1.17695959616382e+00 4.81374856438826e-01 -2.87004239034480e-01 + 4.20000000000000e+01 1.12703989464505e+00 5.64163578429128e-01 -3.04058421225294e-01 + 4.50000000000000e+01 1.07611823571461e+00 6.47465971680564e-01 -3.20478002318310e-01 + 4.80000000000000e+01 1.02409442363134e+00 7.31333403319246e-01 -3.36199522203750e-01 + 5.10000000000000e+01 9.68104760295821e-01 8.14260941810857e-01 -3.51333235959452e-01 + 5.40000000000000e+01 9.09773957942272e-01 8.95947222457359e-01 -3.66271014338575e-01 + 5.70000000000000e+01 8.48134536090953e-01 9.75733945748940e-01 -3.80963873496974e-01 + 6.00000000000000e+01 7.81810000909645e-01 1.05132306639251e+00 -3.95592130990692e-01 + 6.30000000000000e+01 7.13037450990422e-01 1.12411060216010e+00 -4.10181627485601e-01 + 6.60000000000000e+01 6.40487420891411e-01 1.19199297706179e+00 -4.24706522315829e-01 + 6.90000000000000e+01 5.64637147549077e-01 1.25359290330404e+00 -4.39096854706191e-01 + 7.20000000000000e+01 4.86993416552722e-01 1.31107246002555e+00 -4.53361306104418e-01 + 7.50000000000000e+01 4.06704470256627e-01 1.36051478418157e+00 -4.67293692126843e-01 + 7.80000000000000e+01 3.25285467940576e-01 1.40283364900179e+00 -4.81063935561508e-01 + 8.10000000000000e+01 2.43237405778408e-01 1.44005787363637e+00 -4.94611983598130e-01 + 8.40000000000000e+01 1.61177459627884e-01 1.46647905189089e+00 -5.06904927899862e-01 + 8.70000000000000e+01 8.01586819617099e-02 1.48606342409620e+00 -5.19197872201593e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -5.31490816503325e-01 + 9.30000000000000e+01 -5.61110773731969e-02 1.48606342409620e+00 -5.35695160501372e-01 + 9.60000000000000e+01 -1.12824221739519e-01 1.46647905189089e+00 -5.39899504499419e-01 + 9.90000000000000e+01 -1.70266184044885e-01 1.44005787363637e+00 -5.44103848497467e-01 + 1.02000000000000e+02 -2.27699827558403e-01 1.40283364900179e+00 -5.44568581429490e-01 + 1.05000000000000e+02 -2.84693129179639e-01 1.36051478418157e+00 -5.44371277952696e-01 + 1.08000000000000e+02 -3.40895391586905e-01 1.31107246002555e+00 -5.43690866826225e-01 + 1.11000000000000e+02 -3.95246003284354e-01 1.25359290330404e+00 -5.41322531871513e-01 + 1.14000000000000e+02 -4.48341194623988e-01 1.19199297706179e+00 -5.38314330367534e-01 + 1.17000000000000e+02 -4.99126215693296e-01 1.12411060216010e+00 -5.34622133586753e-01 + 1.20000000000000e+02 -5.47267000636752e-01 1.05132306639250e+00 -5.30960203144312e-01 + 1.23000000000000e+02 -5.93694175263668e-01 9.75733945748940e-01 -5.27316432504877e-01 + 1.26000000000000e+02 -6.36841770559590e-01 8.95947222457359e-01 -5.23702928203783e-01 + 1.29000000000000e+02 -6.77673332207075e-01 8.14260941810857e-01 -5.21286608604852e-01 + 1.32000000000000e+02 -7.16866096541937e-01 7.31333403319246e-01 -5.19828036767652e-01 + 1.35000000000000e+02 -7.53282765000226e-01 6.47465971680564e-01 -5.21242708215641e-01 + 1.38000000000000e+02 -7.88927926251533e-01 5.64163578429127e-01 -5.24454030834080e-01 + 1.41000000000000e+02 -8.23871717314673e-01 4.81374856438826e-01 -5.29298672698381e-01 + 1.44000000000000e+02 -8.59961394226760e-01 4.01661227664126e-01 -5.45304329409410e-01 + 1.47000000000000e+02 -8.98500940972385e-01 3.24229025454861e-01 -5.61284051742934e-01 + 1.50000000000000e+02 -9.40269716248942e-01 2.49738722301441e-01 -5.76866235074035e-01 + 1.53000000000000e+02 -9.93878482687801e-01 1.81434120823914e-01 -5.85093946860330e-01 + 1.56000000000000e+02 -9.89456953136816e-01 1.15903352877632e-01 -5.92327811140571e-01 + 1.59000000000000e+02 -8.65774833994714e-01 5.74427646214003e-02 -5.98480939611254e-01 + 1.62000000000000e+02 -7.42092714852612e-01 5.38297915331497e-03 -5.81578370811380e-01 + 1.65000000000000e+02 -6.18410595710510e-01 1.00000000000000e-03 -5.50986481757112e-01 + 1.68000000000000e+02 -4.94728476568408e-01 1.00000000000000e-03 -5.20394592702845e-01 + 1.71000000000000e+02 -3.71046357426306e-01 1.00000000000000e-03 -4.48862779895755e-01 + 1.74000000000000e+02 -2.47364238284204e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.23682119142102e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_23.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_23.dat new file mode 100644 index 000000000..bb3876a5c --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_23.dat @@ -0,0 +1,742 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF23_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +3 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +9.619191 Re ! Reynolds number in millions +-10 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +2.992546 alpha0 ! 0-lift angle of attack, depends on airfoil. +13.030303 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-13.030303 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.207742 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.384958 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005061 Cd0 ! 2D drag coefficient value at 0-lift. +0.027716 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.00257546964744e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.00515093929487e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.00772640894231e-01 1.00000000000000e-03 3.58509910050977e-01 +-1.68000000000000e+02 4.01030187858974e-01 1.00000000000000e-03 3.75693703568389e-01 +-1.65000000000000e+02 5.01287734823717e-01 1.00000000000000e-03 3.39234258920972e-01 +-1.62000000000000e+02 6.01545281788461e-01 1.00000000000000e-03 3.02774814273556e-01 +-1.59000000000000e+02 7.01802828753205e-01 2.44540498226770e-02 2.80576396233625e-01 +-1.56000000000000e+02 8.02060375717949e-01 8.31947010680097e-02 2.82396549322093e-01 +-1.53000000000000e+02 8.16685053831204e-01 1.49554271938280e-01 2.85342572932205e-01 +-1.50000000000000e+02 7.89313754000214e-01 2.18734904139410e-01 2.87546553626193e-01 +-1.47000000000000e+02 7.68013832132326e-01 2.94217501375160e-01 2.84259416740874e-01 +-1.44000000000000e+02 7.47471404314097e-01 3.72713690476792e-01 2.80675462689106e-01 +-1.41000000000000e+02 7.27452091819335e-01 4.53547888294951e-01 2.77030433421061e-01 +-1.38000000000000e+02 7.05587565559661e-01 5.37572493614846e-01 2.80008448153969e-01 +-1.35000000000000e+02 6.81926251312479e-01 6.22163158768099e-01 2.83955688838237e-01 +-1.32000000000000e+02 6.56288470279037e-01 7.07376489738044e-01 2.88969078068999e-01 +-1.29000000000000e+02 6.26188895854625e-01 7.91743883355161e-01 2.95507426834010e-01 +-1.26000000000000e+02 5.93750920982040e-01 8.74912174603290e-01 3.02554095443771e-01 +-1.23000000000000e+02 5.58070769555048e-01 9.56237666670915e-01 3.10236163859469e-01 +-1.20000000000000e+02 5.18044160243226e-01 1.03343354582698e+00 3.17582199782869e-01 +-1.17000000000000e+02 4.75767220889812e-01 1.10786171052405e+00 3.24726616210890e-01 +-1.14000000000000e+02 4.30037685374832e-01 1.17743539552941e+00 3.31535000146613e-01 +-1.11000000000000e+02 3.81238863070417e-01 1.24077080979155e+00 3.37585476927969e-01 +-1.08000000000000e+02 3.30732998462507e-01 1.30001074227247e+00 3.42926943790722e-01 +-1.05000000000000e+02 2.77600886561708e-01 1.35125259193308e+00 3.46398091385439e-01 +-1.02000000000000e+02 2.23093972048358e-01 1.39539447969148e+00 3.49380611222544e-01 +-9.90000000000000e+01 1.67738919888461e-01 1.43445711489850e+00 3.51693530058480e-01 +-9.60000000000000e+01 1.11582462763729e-01 1.46273887201799e+00 3.50224108104020e-01 +-9.30000000000000e+01 5.56844730877953e-02 1.48419055400040e+00 3.48754686149560e-01 +-9.00000000000000e+01 -1.99480695359177e-16 1.50000000000000e+00 3.47285264195101e-01 +-8.70000000000000e+01 -5.56844730877955e-02 1.48419055400040e+00 3.35755028753828e-01 +-8.40000000000000e+01 -1.11582462763729e-01 1.46273887201799e+00 3.24224793312556e-01 +-8.10000000000000e+01 -1.67738919888462e-01 1.43445711489850e+00 3.12694557871283e-01 +-7.80000000000000e+01 -2.23093972048358e-01 1.39539447969148e+00 2.98508591817558e-01 +-7.50000000000000e+01 -2.77600886561709e-01 1.35125259193308e+00 2.83852472497512e-01 +-7.20000000000000e+01 -3.30732998462507e-01 1.30001074227247e+00 2.68853268361504e-01 +-6.90000000000000e+01 -3.81238863070417e-01 1.24077080979155e+00 2.52979229773006e-01 +-6.60000000000000e+01 -4.30037685374832e-01 1.17743539552941e+00 2.36773554594674e-01 +-6.30000000000000e+01 -4.75767220889811e-01 1.10786171052405e+00 2.20213371337556e-01 +-6.00000000000000e+01 -5.18044160243226e-01 1.03343354582698e+00 2.03747053501255e-01 +-5.70000000000000e+01 -5.58070769555048e-01 9.56237666670914e-01 1.87337054917444e-01 +-5.40000000000000e+01 -5.93750920982040e-01 8.74912174603290e-01 1.71020921754449e-01 +-5.10000000000000e+01 -6.26188895854625e-01 7.91743883355161e-01 1.55040463481088e-01 +-4.80000000000000e+01 -6.56288470279037e-01 7.07376489738043e-01 1.39328545119435e-01 +-4.50000000000000e+01 -6.81926251312479e-01 6.22163158768099e-01 1.24422246492903e-01 +-4.20000000000000e+01 -7.05587565559661e-01 5.37572493614846e-01 1.09619581856297e-01 +-3.90000000000000e+01 -7.27452091819335e-01 4.53547888294950e-01 9.49111299378057e-02 +-3.60000000000000e+01 -7.47471404314097e-01 3.72713690476792e-01 8.08464649264337e-02 +-3.30000000000000e+01 -7.68013832132326e-01 2.94217501375160e-01 6.66529135136129e-02 +-3.00000000000000e+01 -7.89313754000215e-01 2.18734904139409e-01 5.22665774059462e-02 +-2.93939393939394e+01 -7.94188601824268e-01 2.04079445767170e-01 4.90243341532769e-02 +-2.87878787878788e+01 -7.99883906129821e-01 1.90275604291501e-01 4.53001291634926e-02 +-2.81818181818182e+01 -8.05579210435375e-01 1.76471762815833e-01 4.15759241737083e-02 +-2.75757575757576e+01 -8.11274514740928e-01 1.62667921340165e-01 3.78517191839240e-02 +-2.69696969696970e+01 -8.16969819046481e-01 1.48864079864496e-01 3.41275141941397e-02 +-2.63636363636364e+01 -8.22665123352035e-01 1.35060238388828e-01 3.04033092043555e-02 +-2.57575757575758e+01 -8.28360427657588e-01 1.21256396913160e-01 2.66791042145712e-02 +-2.51515151515151e+01 -8.34055731963142e-01 1.07452555437491e-01 2.29548992247869e-02 +-2.45454545454545e+01 -8.85226830419508e-01 1.00106664777379e-01 1.92306942350026e-02 +-2.39393939393939e+01 -9.51556526926145e-01 9.49134243891176e-02 1.55064892452183e-02 +-2.33333333333333e+01 -1.01788622343278e+00 8.97201840008567e-02 1.17822842554340e-02 +-2.27272727272727e+01 -1.08421591993942e+00 8.45269436125958e-02 8.05807926564973e-03 +-2.21212121212121e+01 -1.15054561644606e+00 7.93337032243349e-02 4.33387427586544e-03 +-2.15151515151515e+01 -1.21687531295269e+00 7.41404628360740e-02 6.09669286081129e-04 +-2.09090909090909e+01 -1.28320500945933e+00 6.89472224478131e-02 -3.11453570370313e-03 +-2.03030303030303e+01 -1.34953470596597e+00 6.37539820595521e-02 -6.83874069348744e-03 +-1.96969696969697e+01 -1.41586440247260e+00 5.85607416712912e-02 3.35514921871053e-02 +-1.90909090909091e+01 -1.43889244237551e+00 5.55957081949549e-02 4.54636363636364e-02 +-1.84848484848485e+01 -1.44073063094303e+00 5.36211809154822e-02 4.33575757575758e-02 +-1.78787878787879e+01 -1.44307015122116e+00 5.14744927159804e-02 4.16848484848485e-02 +-1.72727272727273e+01 -1.44702897292458e+00 4.90768059615446e-02 4.03363636363636e-02 +-1.66666666666667e+01 -1.44994335356422e+00 4.66819567818981e-02 3.93666666666667e-02 +-1.60606060606061e+01 -1.45145233430843e+00 4.42993485919609e-02 3.87484848484848e-02 +-1.54545454545455e+01 -1.45096434373871e+00 4.19381134251355e-02 3.84000000000000e-02 +-1.48484848484848e+01 -1.45003518126364e+00 3.95147760639734e-02 3.84000000000000e-02 +-1.42424242424242e+01 -1.44821030613227e+00 3.70797197403042e-02 3.85030303030303e-02 +-1.36363636363636e+01 -1.44410604282332e+00 3.47204204802375e-02 3.88909090909091e-02 +-1.30303030303030e+01 -1.43857799745622e+00 3.23671610418455e-02 3.93757575757576e-02 +-1.24242424242424e+01 -1.43416290848669e+00 2.98787769395071e-02 4.00909090909091e-02 +-1.18181818181818e+01 -1.42648916339817e+00 2.75350432904609e-02 4.08545454545455e-02 +-1.12121212121212e+01 -1.42075055871261e+00 2.51854809803779e-02 4.18757575757576e-02 +-1.06060606060606e+01 -1.41756874575119e+00 2.28190631637046e-02 4.32454545454545e-02 +-1.00000000000000e+01 -1.41323386985535e+00 2.03593171720583e-02 4.45000000000000e-02 +-9.39393939393939e+00 -1.40085094889846e+00 1.77244156981433e-02 4.49515151515152e-02 +-8.78787878787879e+00 -1.37192742370273e+00 1.45728951809504e-02 4.27030303030303e-02 +-8.18181818181818e+00 -1.32432762118093e+00 1.23095438616745e-02 4.03363636363636e-02 +-7.57575757575758e+00 -1.26692177039953e+00 1.14672506566100e-02 4.04696969696970e-02 +-6.96969696969697e+00 -1.20515901283176e+00 1.07250126842289e-02 4.05987878787879e-02 +-6.36363636363636e+00 -1.14038692811574e+00 9.82118266074473e-03 4.05745454545455e-02 +-5.75757575757576e+00 -1.07561484339972e+00 8.91735263726057e-03 4.05503030303030e-02 +-5.15151515151515e+00 -1.01084275868370e+00 8.01352261377642e-03 4.05260606060606e-02 +-4.54545454545454e+00 -9.46070673967686e-01 7.10969259029226e-03 4.05018181818182e-02 +-3.93939393939394e+00 -8.78573350072773e-01 6.17442429650958e-03 4.03636363636364e-02 +-3.33333333333333e+00 -8.07026602840663e-01 5.56056385307351e-03 3.98666666666667e-02 +-2.72727272727273e+00 -7.30429774176970e-01 5.41031656406452e-03 3.89090909090909e-02 +-2.12121212121212e+00 -6.53381746973726e-01 5.30097918606165e-03 3.78939393939394e-02 +-1.51515151515152e+00 -5.76390537364351e-01 5.20154642273874e-03 3.68272727272727e-02 +-9.09090909090912e-01 -4.98924733735596e-01 5.13335509119118e-03 3.57181818181818e-02 +-3.03030303030302e-01 -4.21559196448962e-01 5.07843624877927e-03 3.45454545454545e-02 + 3.03030303030302e-01 -3.44059970706166e-01 5.04098848367056e-03 3.33939393939394e-02 + 9.09090909090912e-01 -2.66607535923026e-01 5.01484803036489e-03 3.21000000000000e-02 + 1.51515151515152e+00 -1.89018070472319e-01 5.02447964689837e-03 3.08666666666667e-02 + 2.12121212121212e+00 -1.11492107038290e-01 5.01037255151620e-03 2.95575757575758e-02 + 2.72727272727273e+00 -3.39594591814520e-02 5.04623160613883e-03 2.83000000000000e-02 + 3.33333333333333e+00 4.36266640578507e-02 5.08105462598480e-03 2.69666666666667e-02 + 3.93939393939394e+00 1.21102494320819e-01 5.13707534028973e-03 2.56333333333333e-02 + 4.54545454545455e+00 1.98608404486424e-01 5.21732038525648e-03 2.42909090909091e-02 + 5.15151515151515e+00 2.76274740799425e-01 5.28716337791564e-03 2.28666666666667e-02 + 5.75757575757576e+00 3.53697095679927e-01 5.39631208893391e-03 2.15333333333333e-02 + 6.36363636363637e+00 4.31116108349026e-01 5.49831151329194e-03 2.02000000000000e-02 + 6.96969696969697e+00 5.08378037082132e-01 5.64287947282593e-03 1.87727272727273e-02 + 7.57575757575757e+00 5.85322455731849e-01 5.84997138887808e-03 1.74333333333333e-02 + 8.18181818181818e+00 6.61859124590268e-01 6.09474297694204e-03 1.61000000000000e-02 + 8.78787878787879e+00 7.37830959721395e-01 6.43892346433617e-03 1.47666666666667e-02 + 9.39393939393939e+00 8.13157748051532e-01 6.84477739400739e-03 1.34333333333333e-02 + 1.00000000000000e+01 8.87809409678044e-01 7.35948706823393e-03 1.22000000000000e-02 + 1.06060606060606e+01 9.61448381249115e-01 7.94929253232175e-03 1.08878787878788e-02 + 1.12121212121212e+01 1.03355327778571e+00 8.71958594292281e-03 9.61212121212122e-03 + 1.18181818181818e+01 1.10383332689567e+00 9.67306377969517e-03 8.21818181818182e-03 + 1.24242424242424e+01 1.17224173761934e+00 1.08012315559349e-02 6.78181818181818e-03 + 1.30303030303030e+01 1.23880858985935e+00 1.21326782916993e-02 4.83030303030305e-03 + 1.36363636363636e+01 1.30376449620259e+00 1.41734003805526e-02 9.99999999999997e-04 + 1.42424242424242e+01 1.34757423099215e+00 1.71779708355600e-02 -2.73333333333333e-03 + 1.48484848484848e+01 1.36852323977772e+00 2.05261857414604e-02 -4.06666666666666e-03 + 1.54545454545455e+01 1.37814215190343e+00 2.42173443399157e-02 -4.58181818181818e-03 + 1.60606060606061e+01 1.37575249845423e+00 2.85107351964953e-02 -4.86060606060606e-03 + 1.66666666666667e+01 1.36539055673581e+00 3.34970384952830e-02 -5.60000000000000e-03 + 1.72727272727273e+01 1.34614390303485e+00 3.92031280617688e-02 -6.69090909090909e-03 + 1.78787878787879e+01 1.32689724933389e+00 4.49092176282546e-02 -7.78181818181818e-03 + 1.84848484848485e+01 1.31531540045297e+00 5.01023252128120e-02 -9.16363636363637e-03 + 1.90909090909091e+01 1.30336368017667e+00 5.53614251306732e-02 -1.08727272727273e-02 + 1.96969696969697e+01 1.29146877749424e+00 6.05896968637356e-02 -1.28484848484848e-02 + 2.03030303030303e+01 1.27785932036151e+00 6.59494448872558e-02 -1.51515151515152e-02 + 2.09090909090909e+01 1.26569369855535e+00 7.11619713666934e-02 -1.77000000000000e-02 + 2.15151515151515e+01 1.25085764983732e+00 7.66210333607422e-02 -2.07878787878788e-02 + 2.21212121212121e+01 1.24012249451211e+00 8.16264804671353e-02 -2.43030303030303e-02 + 2.27272727272727e+01 1.22988867089751e+00 8.65530939274171e-02 -2.80454545454545e-02 + 2.33333333333333e+01 1.22034334283216e+00 9.13430425273053e-02 -3.23666666666666e-02 + 2.39393939393939e+01 1.20932075732619e+00 9.61833020620694e-02 -3.72909090909091e-02 + 2.45454545454545e+01 1.19988906444858e+00 1.00734724933030e-01 -4.25181818181818e-02 + 2.51515151515151e+01 1.19150818851877e+00 1.07452555437491e-01 -4.77841353084582e-02 + 2.57575757575758e+01 1.18337203951084e+00 1.21256396913160e-01 -5.21206765422909e-02 + 2.63636363636364e+01 1.17523589050291e+00 1.35060238388828e-01 -5.64572177761236e-02 + 2.69696969696970e+01 1.16709974149497e+00 1.48864079864496e-01 -6.07937590099563e-02 + 2.75757575757576e+01 1.15896359248704e+00 1.62667921340165e-01 -6.51303002437890e-02 + 2.81818181818182e+01 1.15082744347911e+00 1.76471762815833e-01 -6.94668414776216e-02 + 2.87878787878788e+01 1.14269129447117e+00 1.90275604291501e-01 -7.38033827114544e-02 + 2.93939393939394e+01 1.13455514546324e+00 2.04079445767170e-01 -7.81399239452871e-02 + 3.00000000000000e+01 1.12759107714316e+00 2.18734904139409e-01 -8.18334547012797e-02 + 3.30000000000000e+01 1.09716261733189e+00 2.94217501375160e-01 -9.78980457948949e-02 + 3.60000000000000e+01 1.06781629187728e+00 3.72713690476792e-01 -1.13705432697374e-01 + 3.90000000000000e+01 1.03921727402762e+00 4.53547888294950e-01 -1.29286423685580e-01 + 4.20000000000000e+01 1.00798223651380e+00 5.37572493614846e-01 -1.43494211065997e-01 + 4.50000000000000e+01 9.74180359017827e-01 6.22163158768099e-01 -1.57501041820884e-01 + 4.80000000000000e+01 9.37554957541482e-01 7.07376489738043e-01 -1.71286820287688e-01 + 5.10000000000000e+01 8.94555565506607e-01 7.91743883355161e-01 -1.84983411969294e-01 + 5.40000000000000e+01 8.48215601402915e-01 8.74912174603290e-01 -1.98650274722499e-01 + 5.70000000000000e+01 7.97243956507212e-01 9.56237666670915e-01 -2.12279976315206e-01 + 6.00000000000000e+01 7.40063086061751e-01 1.03343354582698e+00 -2.25817931623056e-01 + 6.30000000000000e+01 6.79667458414017e-01 1.10786171052405e+00 -2.39300839159993e-01 + 6.60000000000000e+01 6.14339550535474e-01 1.17743539552941e+00 -2.52692000412073e-01 + 6.90000000000000e+01 5.44626947243453e-01 1.24077080979155e+00 -2.65873495231987e-01 + 7.20000000000000e+01 4.72475712089296e-01 1.30001074227247e+00 -2.78858850486326e-01 + 7.50000000000000e+01 3.96572695088155e-01 1.35125259193308e+00 -2.91326803093543e-01 + 7.80000000000000e+01 3.18705674354797e-01 1.39539447969148e+00 -3.03605420368637e-01 + 8.10000000000000e+01 2.39627028412088e-01 1.43445711489850e+00 -3.15624578114525e-01 + 8.40000000000000e+01 1.59403518233899e-01 1.46273887201799e+00 -3.26178140141383e-01 + 8.70000000000000e+01 7.95492472682790e-02 1.48419055400040e+00 -3.36731702168242e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -3.47285264195101e-01 + 9.30000000000000e+01 -5.56844730877952e-02 1.48419055400040e+00 -3.48754686149560e-01 + 9.60000000000000e+01 -1.11582462763729e-01 1.46273887201799e+00 -3.50224108104020e-01 + 9.90000000000000e+01 -1.67738919888462e-01 1.43445711489850e+00 -3.51693530058480e-01 + 1.02000000000000e+02 -2.23093972048358e-01 1.39539447969148e+00 -3.49380611222544e-01 + 1.05000000000000e+02 -2.77600886561709e-01 1.35125259193308e+00 -3.46398091385439e-01 + 1.08000000000000e+02 -3.30732998462507e-01 1.30001074227247e+00 -3.42926943790722e-01 + 1.11000000000000e+02 -3.81238863070418e-01 1.24077080979155e+00 -3.37585476927969e-01 + 1.14000000000000e+02 -4.30037685374832e-01 1.17743539552941e+00 -3.31535000146613e-01 + 1.17000000000000e+02 -4.75767220889812e-01 1.10786171052405e+00 -3.24726616210890e-01 + 1.20000000000000e+02 -5.18044160243226e-01 1.03343354582698e+00 -3.17582199782869e-01 + 1.23000000000000e+02 -5.58070769555049e-01 9.56237666670915e-01 -3.10236163859469e-01 + 1.26000000000000e+02 -5.93750920982040e-01 8.74912174603290e-01 -3.02554095443771e-01 + 1.29000000000000e+02 -6.26188895854625e-01 7.91743883355160e-01 -2.95507426834010e-01 + 1.32000000000000e+02 -6.56288470279037e-01 7.07376489738043e-01 -2.88969078068999e-01 + 1.35000000000000e+02 -6.81926251312479e-01 6.22163158768099e-01 -2.83955688838237e-01 + 1.38000000000000e+02 -7.05587565559662e-01 5.37572493614846e-01 -2.80008448153969e-01 + 1.41000000000000e+02 -7.27452091819335e-01 4.53547888294950e-01 -2.77030433421061e-01 + 1.44000000000000e+02 -7.47471404314097e-01 3.72713690476792e-01 -2.80675462689106e-01 + 1.47000000000000e+02 -7.68013832132326e-01 2.94217501375160e-01 -2.84259416740874e-01 + 1.50000000000000e+02 -7.89313754000215e-01 2.18734904139409e-01 -2.87546553626193e-01 + 1.53000000000000e+02 -8.16685053831204e-01 1.49554271938280e-01 -2.85342572932205e-01 + 1.56000000000000e+02 -8.02060375717949e-01 8.31947010680097e-02 -2.82396549322093e-01 + 1.59000000000000e+02 -7.01802828753205e-01 2.44540498226770e-02 -2.81433539090768e-01 + 1.62000000000000e+02 -6.01545281788461e-01 1.00000000000000e-03 -3.22774814273555e-01 + 1.65000000000000e+02 -5.01287734823717e-01 1.00000000000000e-03 -3.89234258920972e-01 + 1.68000000000000e+02 -4.01030187858974e-01 1.00000000000000e-03 -4.55693703568389e-01 + 1.71000000000000e+02 -3.00772640894231e-01 1.00000000000000e-03 -4.47938481479548e-01 + 1.74000000000000e+02 -2.00515093929487e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.00257546964744e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +! ------------------------------------------------------------------------------ +! data for table 2 +! ------------------------------------------------------------------------------ +9.619191 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.084236 alpha0 ! 0-lift angle of attack, depends on airfoil. +12.424242 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-12.424242 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.435379 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.197488 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005070 Cd0 ! 2D drag coefficient value at 0-lift. +-0.068409 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.13565356296013e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.27130712592025e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.40696068888038e-01 1.00000000000000e-03 3.58993805057157e-01 +-1.68000000000000e+02 4.54261425184050e-01 1.00000000000000e-03 4.09566354001006e-01 +-1.65000000000000e+02 5.67826781480062e-01 1.00000000000000e-03 4.23915885002516e-01 +-1.62000000000000e+02 6.81392137776075e-01 2.27958954479830e-03 4.38265416004025e-01 +-1.59000000000000e+02 7.94957494072088e-01 4.16796535177501e-02 4.46606529686473e-01 +-1.56000000000000e+02 9.08522850368100e-01 1.00478999410717e-01 4.44828203673657e-01 +-1.53000000000000e+02 9.17350984808445e-01 1.66400604293001e-01 4.42575528925125e-01 +-1.50000000000000e+02 8.75073833109196e-01 2.35118313825466e-01 4.39426054733885e-01 +-1.47000000000000e+02 8.42145284842933e-01 3.10076551113196e-01 4.29640264666595e-01 +-1.44000000000000e+02 8.11378455683045e-01 3.88010495491706e-01 4.19495754822222e-01 +-1.41000000000000e+02 7.82229356572309e-01 4.68252548767391e-01 4.09301935292722e-01 +-1.38000000000000e+02 7.52934326955740e-01 5.51624073785787e-01 4.08117051818339e-01 +-1.35000000000000e+02 7.22464830694453e-01 6.35533974839463e-01 4.08250549230071e-01 +-1.32000000000000e+02 6.90703421123977e-01 7.20036089531948e-01 4.09834265616529e-01 +-1.29000000000000e+02 6.55437885220095e-01 8.03642617623198e-01 4.13661367035361e-01 +-1.26000000000000e+02 6.18231402664207e-01 8.86027767042838e-01 4.18236263464984e-01 +-1.23000000000000e+02 5.78308897590486e-01 9.66540124446266e-01 4.23745903658097e-01 +-1.20000000000000e+02 5.34646042451817e-01 1.04288694098561e+00 4.29118708688917e-01 +-1.17000000000000e+02 4.89037774847477e-01 1.11644814485373e+00 4.34409412622363e-01 +-1.14000000000000e+02 4.40436151111436e-01 1.18512808747582e+00 4.39563281393518e-01 +-1.11000000000000e+02 3.89196504722613e-01 1.24754641433000e+00 4.44000914245473e-01 +-1.08000000000000e+02 3.36506388432020e-01 1.30585610792496e+00 4.47768519947208e-01 +-1.05000000000000e+02 2.81630083414309e-01 1.35614703072139e+00 4.49768640235434e-01 +-1.02000000000000e+02 2.25710619493228e-01 1.39932557481975e+00 4.51283515293995e-01 +-9.90000000000000e+01 1.69174692088218e-01 1.43741673504837e+00 4.52133424667459e-01 +-9.60000000000000e+01 1.12287922464768e-01 1.46471530275426e+00 4.49227176522403e-01 +-9.30000000000000e+01 5.59268326257643e-02 1.48518023849371e+00 4.46320928377347e-01 +-9.00000000000000e+01 -2.00628740753484e-16 1.50000000000000e+00 4.43414680232290e-01 +-8.70000000000000e+01 -5.59268326257645e-02 1.48518023849371e+00 4.30979601524870e-01 +-8.40000000000000e+01 -1.12287922464768e-01 1.46471530275426e+00 4.18544522817449e-01 +-8.10000000000000e+01 -1.69174692088218e-01 1.43741673504837e+00 4.06109444110029e-01 +-7.80000000000000e+01 -2.25710619493228e-01 1.39932557481975e+00 3.91158373963516e-01 +-7.50000000000000e+01 -2.81630083414309e-01 1.35614703072139e+00 3.75761889064628e-01 +-7.20000000000000e+01 -3.36506388432020e-01 1.30585610792496e+00 3.60040371778872e-01 +-6.90000000000000e+01 -3.89196504722613e-01 1.24754641433000e+00 3.43589887956017e-01 +-6.60000000000000e+01 -4.40436151111437e-01 1.18512808747582e+00 3.26863063877268e-01 +-6.30000000000000e+01 -4.89037774847477e-01 1.11644814485373e+00 3.09840841593943e-01 +-6.00000000000000e+01 -5.34646042451817e-01 1.04288694098561e+00 2.92988164343268e-01 +-5.70000000000000e+01 -5.78308897590487e-01 9.66540124446265e-01 2.76237214112183e-01 +-5.40000000000000e+01 -6.18231402664207e-01 8.86027767042838e-01 2.59655808913748e-01 +-5.10000000000000e+01 -6.55437885220095e-01 8.03642617623197e-01 2.43377160586441e-01 +-4.80000000000000e+01 -6.90703421123977e-01 7.20036089531947e-01 2.27340717756036e-01 +-4.50000000000000e+01 -7.22464830694453e-01 6.35533974839463e-01 2.12030891416340e-01 +-4.20000000000000e+01 -7.52934326955740e-01 5.51624073785786e-01 1.96674734884619e-01 +-3.90000000000000e+01 -7.82229356572309e-01 4.68252548767390e-01 1.81276459996512e-01 +-3.60000000000000e+01 -8.11378455683045e-01 3.88010495491706e-01 1.65590376339766e-01 +-3.30000000000000e+01 -8.42145284842933e-01 3.10076551113196e-01 1.49458711990682e-01 +-3.00000000000000e+01 -8.75073833109196e-01 2.35118313825465e-01 1.32742299686566e-01 +-2.93939393939394e+01 -8.82606564177013e-01 2.20563000279914e-01 1.28346367683278e-01 +-2.87878787878788e+01 -8.91402620033072e-01 2.06851001295885e-01 1.22488565792410e-01 +-2.81818181818182e+01 -9.00198675889130e-01 1.93139002311856e-01 1.16630763901541e-01 +-2.75757575757576e+01 -9.08994731745189e-01 1.79427003327828e-01 1.10772962010672e-01 +-2.69696969696970e+01 -9.17790787601248e-01 1.65715004343799e-01 1.04915160119803e-01 +-2.63636363636364e+01 -9.26586843457306e-01 1.52003005359771e-01 9.90573582289344e-02 +-2.57575757575758e+01 -9.35382899313365e-01 1.38291006375742e-01 9.31995563380655e-02 +-2.51515151515151e+01 -9.44178955169423e-01 1.24579007391713e-01 8.73417544471967e-02 +-2.45454545454545e+01 -9.67469399216682e-01 1.15758396965946e-01 8.14839525563280e-02 +-2.39393939393939e+01 -9.95591305994340e-01 1.08568249392931e-01 7.56261506654592e-02 +-2.33333333333333e+01 -1.02371321277200e+00 1.01378101819917e-01 6.97683487745904e-02 +-2.27272727272727e+01 -1.05183511954966e+00 9.41879542469032e-02 6.39105468837216e-02 +-2.21212121212121e+01 -1.07995702632731e+00 8.69978066738891e-02 5.80527449928528e-02 +-2.15151515151515e+01 -1.10807893310497e+00 7.98076591008750e-02 5.21949431019840e-02 +-2.09090909090909e+01 -1.13620083988263e+00 7.26175115278609e-02 4.63371412111153e-02 +-2.03030303030303e+01 -1.16432274666029e+00 6.54273639548468e-02 4.01583904466624e-02 +-1.96969696969697e+01 -1.19244465343795e+00 5.82372163818327e-02 2.68331780970722e-02 +-1.90909090909091e+01 -1.22056656021560e+00 5.10470688088186e-02 5.39865754159260e-03 +-1.84848484848485e+01 -1.24792625036728e+00 4.39855575145951e-02 -1.55363636363636e-02 +-1.78787878787879e+01 -1.24513167055711e+00 4.19523604592809e-02 -1.69424242424242e-02 +-1.72727272727273e+01 -1.23952282712409e+00 3.99955885761813e-02 -1.81090909090909e-02 +-1.66666666666667e+01 -1.23207568797544e+00 3.84050658791526e-02 -1.86000000000000e-02 +-1.60606060606061e+01 -1.22157530676090e+00 3.67734354648480e-02 -1.91712121212121e-02 +-1.54545454545455e+01 -1.20965108195570e+00 3.50297370900564e-02 -1.99454545454545e-02 +-1.48484848484848e+01 -1.19414886521670e+00 3.32961757556193e-02 -2.05212121212121e-02 +-1.42424242424242e+01 -1.17728965200398e+00 3.15405415151429e-02 -2.09545454545455e-02 +-1.36363636363636e+01 -1.15829133104942e+00 2.98182696820514e-02 -2.13181818181818e-02 +-1.30303030303030e+01 -1.13775886876127e+00 2.80913845846989e-02 -2.16818181818182e-02 +-1.24242424242424e+01 -1.11529452479377e+00 2.63490995453841e-02 -2.20454545454545e-02 +-1.18181818181818e+01 -1.08970507810969e+00 2.46785680130065e-02 -2.24454545454545e-02 +-1.12121212121212e+01 -1.06263831014141e+00 2.29690915678933e-02 -2.29878787878788e-02 +-1.06060606060606e+01 -1.03460894368930e+00 2.11692106019282e-02 -2.38303030303030e-02 +-1.00000000000000e+01 -9.96512401427179e-01 1.90112950019132e-02 -2.68000000000000e-02 +-9.39393939393939e+00 -9.35557487530063e-01 1.63732410383108e-02 -3.26090909090909e-02 +-8.78787878787879e+00 -8.61450403376516e-01 1.33695555734029e-02 -4.02393939393939e-02 +-8.18181818181818e+00 -7.80142213551437e-01 1.04961884521033e-02 -4.77136363636364e-02 +-7.57575757575758e+00 -6.98294233257130e-01 8.13566508840129e-03 -5.38348484848485e-02 +-6.96969696969697e+00 -6.21093798767540e-01 7.00629047947216e-03 -5.67030303030303e-02 +-6.36363636363636e+00 -5.45242004862060e-01 6.15272600974346e-03 -5.87090909090909e-02 +-5.75757575757576e+00 -4.69316679127955e-01 5.53875369812555e-03 -6.03818181818182e-02 +-5.15151515151515e+00 -3.92117915816289e-01 5.35957575903820e-03 -6.17666666666667e-02 +-4.54545454545454e+00 -3.14648421681047e-01 5.23627621922418e-03 -6.31000000000000e-02 +-3.93939393939394e+00 -2.37145503987339e-01 5.15493622493167e-03 -6.43333333333333e-02 +-3.33333333333333e+00 -1.59679352207945e-01 5.11831967521570e-03 -6.56666666666667e-02 +-2.72727272727273e+00 -8.21898039376232e-02 5.07901630526763e-03 -6.70000000000000e-02 +-2.12121212121212e+00 -4.72030980238143e-03 5.07031198271493e-03 -6.83333333333333e-02 +-1.51515151515152e+00 7.26489136574615e-02 5.06792426733443e-03 -6.95696969696970e-02 +-9.09090909090912e-01 1.49998082982225e-01 5.09601671930492e-03 -7.08818181818182e-02 +-3.03030303030302e-01 2.27190161582198e-01 5.12077496141103e-03 -7.21136363636364e-02 + 3.03030303030302e-01 3.04291996574311e-01 5.17552303537499e-03 -7.33863636363636e-02 + 9.09090909090912e-01 3.81303587958567e-01 5.25178025762070e-03 -7.46181818181818e-02 + 1.51515151515152e+00 4.58044448519247e-01 5.35094678520786e-03 -7.57303030303030e-02 + 2.12121212121212e+00 5.34745200809767e-01 5.45869586410381e-03 -7.69181818181818e-02 + 2.72727272727273e+00 6.11295547087190e-01 5.57017219179889e-03 -7.80090909090909e-02 + 3.33333333333333e+00 6.87521684847490e-01 5.72059159824001e-03 -7.91000000000000e-02 + 3.93939393939394e+00 7.63881516841655e-01 5.85138932029248e-03 -8.01030303030303e-02 + 4.54545454545455e+00 8.39783446084835e-01 6.02222102165218e-03 -8.10727272727273e-02 + 5.15151515151515e+00 9.14913291127446e-01 6.24046549279617e-03 -8.19818181818182e-02 + 5.75757575757576e+00 9.89571863995684e-01 6.49869128270460e-03 -8.27090909090909e-02 + 6.36363636363637e+00 1.06303721582668e+00 6.83961585222194e-03 -8.33636363636364e-02 + 6.96969696969697e+00 1.13523915714766e+00 7.25503099117694e-03 -8.37818181818182e-02 + 7.57575757575757e+00 1.20599385838705e+00 7.75203600794956e-03 -8.40000000000000e-02 + 8.18181818181818e+00 1.27413817971023e+00 8.37692634447822e-03 -8.38909090909091e-02 + 8.78787878787879e+00 1.33990274367063e+00 9.10506382773046e-03 -8.34696969696970e-02 + 9.39393939393939e+00 1.40328086555654e+00 9.89162202558102e-03 -8.27484848484849e-02 + 1.00000000000000e+01 1.46236740253540e+00 1.07986309974867e-02 -8.15000000000000e-02 + 1.06060606060606e+01 1.51577861928671e+00 1.17936621087953e-02 -7.95969696969697e-02 + 1.12121212121212e+01 1.56275245867743e+00 1.27183998475413e-02 -7.67848484848485e-02 + 1.18181818181818e+01 1.59882687565235e+00 1.37179555133030e-02 -7.29000000000000e-02 + 1.24242424242424e+01 1.62569978698153e+00 1.52086947069486e-02 -6.90696969696970e-02 + 1.30303030303030e+01 1.64605510440981e+00 1.74937513418845e-02 -6.63030303030303e-02 + 1.36363636363636e+01 1.65790746856430e+00 2.07483650904090e-02 -6.44454545454545e-02 + 1.42424242424242e+01 1.66091595914866e+00 2.47445244549139e-02 -6.29181818181818e-02 + 1.48484848484848e+01 1.65298491904703e+00 2.94941569134984e-02 -6.15333333333333e-02 + 1.54545454545455e+01 1.63449537682596e+00 3.50500579526413e-02 -6.04727272727273e-02 + 1.60606060606061e+01 1.59991239120343e+00 4.22046137979025e-02 -6.05494949494950e-02 + 1.66666666666667e+01 1.56417629281381e+00 4.94758215150433e-02 -6.07111111111111e-02 + 1.72727272727273e+01 1.53427594773239e+00 5.63351905952727e-02 -6.12363636363636e-02 + 1.78787878787879e+01 1.51117395444299e+00 6.27217761721428e-02 -6.23575757575758e-02 + 1.84848484848485e+01 1.49043834909298e+00 6.88725282847793e-02 -6.37636363636364e-02 + 1.90909090909091e+01 1.46908106555551e+00 7.50713516002983e-02 -6.58636363636364e-02 + 1.96969696969697e+01 1.45265542806972e+00 8.07428729470218e-02 -6.85045454545455e-02 + 2.03030303030303e+01 1.43690661764286e+00 8.62902368975451e-02 -7.15954545454545e-02 + 2.09090909090909e+01 1.42291755756925e+00 9.15659019094737e-02 -7.52590909090909e-02 + 2.15151515151515e+01 1.40984597417554e+00 9.66970847594659e-02 -7.92151515151515e-02 + 2.21212121212121e+01 1.39951178022020e+00 1.01295365585328e-01 -8.38212121212121e-02 + 2.27272727272727e+01 1.38952853362876e+00 1.05777923967719e-01 -8.86090909090909e-02 + 2.33333333333333e+01 1.38042432662497e+00 1.09979881349841e-01 -9.39000000000000e-02 + 2.39393939393939e+01 1.37126998428349e+00 1.14036278855063e-01 -9.96181818181818e-02 + 2.45454545454545e+01 1.36142377428176e+00 1.18010437709443e-01 -1.05927272727273e-01 + 2.51515151515151e+01 1.34882707881346e+00 1.24579007391713e-01 -1.12636764159039e-01 + 2.57575757575758e+01 1.33626128473338e+00 1.38291006375742e-01 -1.18383820795193e-01 + 2.63636363636364e+01 1.32369549065329e+00 1.52003005359771e-01 -1.24130877431347e-01 + 2.69696969696970e+01 1.31112969657321e+00 1.65715004343799e-01 -1.29877934067502e-01 + 2.75757575757576e+01 1.29856390249313e+00 1.79427003327828e-01 -1.35624990703656e-01 + 2.81818181818182e+01 1.28599810841304e+00 1.93139002311856e-01 -1.41372047339810e-01 + 2.87878787878788e+01 1.27343231433296e+00 2.06851001295885e-01 -1.47119103975965e-01 + 2.93939393939394e+01 1.26086652025288e+00 2.20563000279914e-01 -1.52866160612119e-01 + 3.00000000000000e+01 1.25010547587028e+00 2.35118313825465e-01 -1.57491222290968e-01 + 3.30000000000000e+01 1.20306469263276e+00 3.10076551113196e-01 -1.76514394998562e-01 + 3.60000000000000e+01 1.15911207954721e+00 3.88010495491706e-01 -1.95088769723233e-01 + 3.90000000000000e+01 1.11747050938901e+00 4.68252548767390e-01 -2.13259150239222e-01 + 4.20000000000000e+01 1.07562046707963e+00 5.51624073785787e-01 -2.28666306174068e-01 + 4.50000000000000e+01 1.03209261527779e+00 6.35533974839463e-01 -2.43669087779968e-01 + 4.80000000000000e+01 9.86719173034253e-01 7.20036089531947e-01 -2.58227057624025e-01 + 5.10000000000000e+01 9.36339836028707e-01 8.03642617623198e-01 -2.72497754569363e-01 + 5.40000000000000e+01 8.83187718091725e-01 8.86027767042838e-01 -2.86672693881796e-01 + 5.70000000000000e+01 8.26155567986409e-01 9.66540124446265e-01 -3.00727936153096e-01 + 6.00000000000000e+01 7.63780060645453e-01 1.04288694098561e+00 -3.14730996996236e-01 + 6.30000000000000e+01 6.98625392639253e-01 1.11644814485373e+00 -3.28702748982480e-01 + 6.60000000000000e+01 6.29194501587767e-01 1.18512808747582e+00 -3.42622319540564e-01 + 6.90000000000000e+01 5.55995006746590e-01 1.24754641433000e+00 -3.56380663271060e-01 + 7.20000000000000e+01 4.80723412045743e-01 1.30585610792496e+00 -3.69988181904780e-01 + 7.50000000000000e+01 4.02328690591870e-01 1.35614703072139e+00 -3.83197834334934e-01 + 7.80000000000000e+01 3.22443742133183e-01 1.39932557481975e+00 -3.96234466722405e-01 + 8.10000000000000e+01 2.41678131554597e-01 1.43741673504837e+00 -4.09033997569901e-01 + 8.40000000000000e+01 1.60411317806811e-01 1.46471530275426e+00 -4.20494225124031e-01 + 8.70000000000000e+01 7.98954751796633e-02 1.48518023849371e+00 -4.31954452678161e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -4.43414680232290e-01 + 9.30000000000000e+01 -5.59268326257643e-02 1.48518023849371e+00 -4.46320928377347e-01 + 9.60000000000000e+01 -1.12287922464768e-01 1.46471530275426e+00 -4.49227176522403e-01 + 9.90000000000000e+01 -1.69174692088218e-01 1.43741673504837e+00 -4.52133424667459e-01 + 1.02000000000000e+02 -2.25710619493228e-01 1.39932557481975e+00 -4.51283515293995e-01 + 1.05000000000000e+02 -2.81630083414309e-01 1.35614703072139e+00 -4.49768640235434e-01 + 1.08000000000000e+02 -3.36506388432020e-01 1.30585610792496e+00 -4.47768519947208e-01 + 1.11000000000000e+02 -3.89196504722614e-01 1.24754641433000e+00 -4.44000914245473e-01 + 1.14000000000000e+02 -4.40436151111437e-01 1.18512808747582e+00 -4.39563281393518e-01 + 1.17000000000000e+02 -4.89037774847477e-01 1.11644814485373e+00 -4.34409412622363e-01 + 1.20000000000000e+02 -5.34646042451817e-01 1.04288694098561e+00 -4.29118708688917e-01 + 1.23000000000000e+02 -5.78308897590487e-01 9.66540124446265e-01 -4.23745903658097e-01 + 1.26000000000000e+02 -6.18231402664207e-01 8.86027767042838e-01 -4.18236263464984e-01 + 1.29000000000000e+02 -6.55437885220095e-01 8.03642617623197e-01 -4.13661367035361e-01 + 1.32000000000000e+02 -6.90703421123977e-01 7.20036089531947e-01 -4.09834265616529e-01 + 1.35000000000000e+02 -7.22464830694453e-01 6.35533974839463e-01 -4.08250549230071e-01 + 1.38000000000000e+02 -7.52934326955740e-01 5.51624073785786e-01 -4.08117051818339e-01 + 1.41000000000000e+02 -7.82229356572309e-01 4.68252548767390e-01 -4.09301935292721e-01 + 1.44000000000000e+02 -8.11378455683045e-01 3.88010495491706e-01 -4.19495754822222e-01 + 1.47000000000000e+02 -8.42145284842933e-01 3.10076551113196e-01 -4.29640264666595e-01 + 1.50000000000000e+02 -8.75073833109196e-01 2.35118313825465e-01 -4.39426054733885e-01 + 1.53000000000000e+02 -9.17350984808445e-01 1.66400604293001e-01 -4.42575528925125e-01 + 1.56000000000000e+02 -9.08522850368101e-01 1.00478999410717e-01 -4.44828203673657e-01 + 1.59000000000000e+02 -7.94957494072088e-01 4.16796535177501e-02 -4.47463672543615e-01 + 1.62000000000000e+02 -6.81392137776075e-01 2.27958954479830e-03 -4.58265416004025e-01 + 1.65000000000000e+02 -5.67826781480062e-01 1.00000000000000e-03 -4.73915885002516e-01 + 1.68000000000000e+02 -4.54261425184050e-01 1.00000000000000e-03 -4.89566354001006e-01 + 1.71000000000000e+02 -3.40696068888038e-01 1.00000000000000e-03 -4.48422376485728e-01 + 1.74000000000000e+02 -2.27130712592025e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.13565356296013e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +! ------------------------------------------------------------------------------ +! data for table 3 +! ------------------------------------------------------------------------------ +9.619191 Re ! Reynolds number in millions +10 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-6.999110 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.212121 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.212121 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.639783 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.939718 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006350 Cd0 ! 2D drag coefficient value at 0-lift. +-0.160689 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.23624919361317e-01 1.00000000000000e-03 1.20000000000000e-01 +-1.74000000000000e+02 2.47249838722633e-01 1.00000000000000e-03 2.40000000000000e-01 +-1.71000000000000e+02 3.70874758083949e-01 1.00000000000000e-03 3.59436972105950e-01 +-1.68000000000000e+02 4.94499677445265e-01 1.00000000000000e-03 4.40588047416542e-01 +-1.65000000000000e+02 6.18124596806581e-01 1.00000000000000e-03 5.01470118541354e-01 +-1.62000000000000e+02 7.41749516167898e-01 6.89495067053369e-03 5.62352189666167e-01 +-1.59000000000000e+02 8.65374435529214e-01 5.89268741326601e-02 5.98681330025488e-01 +-1.56000000000000e+02 9.88999354890530e-01 1.17355568086594e-01 5.93658165937668e-01 +-1.53000000000000e+02 9.93445799212921e-01 1.82849538422922e-01 5.86696612578888e-01 +-1.50000000000000e+02 9.39901101279860e-01 2.51115245446842e-01 5.78738702486779e-01 +-1.47000000000000e+02 8.98182308300484e-01 3.25561492227455e-01 5.63407752568036e-01 +-1.44000000000000e+02 8.59686708195575e-01 4.02946455010399e-01 5.47678259955961e-01 +-1.41000000000000e+02 8.23636273038465e-01 4.82610332195915e-01 5.31919679510299e-01 +-1.38000000000000e+02 7.88724419851241e-01 5.65344182815236e-01 5.27223685707500e-01 +-1.35000000000000e+02 7.53108521607021e-01 6.48589378721455e-01 5.24146607023167e-01 +-1.32000000000000e+02 7.16718173800103e-01 7.32397054443264e-01 5.22850334969149e-01 +-1.29000000000000e+02 6.77547613860932e-01 8.15260665521293e-01 5.24404982516290e-01 +-1.26000000000000e+02 6.36736548268611e-01 8.96881147114135e-01 5.26909936597149e-01 +-1.23000000000000e+02 5.93607187506455e-01 9.76599551374023e-01 5.30602773845158e-01 +-1.20000000000000e+02 5.47195642233627e-01 1.05211733434331e+00 5.34324114126957e-01 +-1.17000000000000e+02 4.99069176043990e-01 1.12483202864078e+00 5.38062556229029e-01 +-1.14000000000000e+02 4.48296499817665e-01 1.19263931190402e+00 5.41829501364892e-01 +-1.11000000000000e+02 3.95211799656488e-01 1.25416218507444e+00 5.44914475567791e-01 +-1.08000000000000e+02 3.40870576335016e-01 1.31156358374571e+00 5.47361476962433e-01 +-1.05000000000000e+02 2.84675810838883e-01 1.36092601166138e+00 5.48125550087020e-01 +-1.02000000000000e+02 2.27688580653934e-01 1.40316393699034e+00 5.48407652808097e-01 +-9.90000000000000e+01 1.70260012792124e-01 1.44030653894573e+00 5.48029277568807e-01 +-9.60000000000000e+01 1.12821189524430e-01 1.46664511028202e+00 5.43920094391231e-01 +-9.30000000000000e+01 5.61100356606131e-02 1.48614657672668e+00 5.39810911213655e-01 +-9.00000000000000e+01 -2.01496564657357e-16 1.50000000000000e+00 5.35701728036079e-01 +-8.70000000000000e+01 -5.61100356606133e-02 1.48614657672668e+00 5.22572822750980e-01 +-8.40000000000000e+01 -1.12821189524430e-01 1.46664511028202e+00 5.09443917465881e-01 +-8.10000000000000e+01 -1.70260012792124e-01 1.44030653894573e+00 4.96315012180782e-01 +-7.80000000000000e+01 -2.27688580653935e-01 1.40316393699034e+00 4.80760273106874e-01 +-7.50000000000000e+01 -2.84675810838884e-01 1.36092601166138e+00 4.64776080204325e-01 +-7.20000000000000e+01 -3.40870576335017e-01 1.31156358374571e+00 4.48478502075471e-01 +-6.90000000000000e+01 -3.95211799656488e-01 1.25416218507444e+00 4.31541810266654e-01 +-6.60000000000000e+01 -4.48296499817665e-01 1.19263931190402e+00 4.14362840069354e-01 +-6.30000000000000e+01 -4.99069176043990e-01 1.12483202864078e+00 3.96924882629193e-01 +-6.00000000000000e+01 -5.47195642233627e-01 1.05211733434331e+00 3.79686367379363e-01 +-5.70000000000000e+01 -5.93607187506455e-01 9.76599551374022e-01 3.62567517443731e-01 +-5.40000000000000e+01 -6.36736548268611e-01 8.96881147114135e-01 3.45648109698429e-01 +-5.10000000000000e+01 -6.77547613860932e-01 8.15260665521292e-01 3.28970882801247e-01 +-4.80000000000000e+01 -7.16718173800103e-01 7.32397054443263e-01 3.12487400582562e-01 +-4.50000000000000e+01 -7.53108521607021e-01 6.48589378721455e-01 2.96585152399364e-01 +-4.20000000000000e+01 -7.88724419851242e-01 5.65344182815235e-01 2.80478464215652e-01 +-3.90000000000000e+01 -8.23636273038465e-01 4.82610332195914e-01 2.64185921486019e-01 +-3.60000000000000e+01 -8.59686708195575e-01 4.02946455010399e-01 2.46623372692590e-01 +-3.30000000000000e+01 -8.98182308300484e-01 3.25561492227455e-01 2.28536211896613e-01 +-3.00000000000000e+01 -9.39901101279860e-01 2.51115245446841e-01 2.09790869440775e-01 +-2.93939393939394e+01 -9.49442964237479e-01 2.36657714351675e-01 2.04857099890850e-01 +-2.87878787878788e+01 -9.60582922459110e-01 2.23035391331737e-01 1.98277876191274e-01 +-2.81818181818182e+01 -9.71722880680741e-01 2.09413068311800e-01 1.91698652491699e-01 +-2.75757575757576e+01 -9.82862838902372e-01 1.95790745291862e-01 1.85119428792123e-01 +-2.69696969696970e+01 -9.94002797124003e-01 1.82168422271925e-01 1.78540205092548e-01 +-2.63636363636364e+01 -1.00514275534563e+00 1.68546099251987e-01 1.71960981392973e-01 +-2.57575757575758e+01 -1.01628271356726e+00 1.54923776232050e-01 1.65381757693397e-01 +-2.51515151515151e+01 -1.02742267178890e+00 1.41301453212112e-01 1.58802533993822e-01 +-2.45454545454545e+01 -1.02666123802396e+00 1.30128244028650e-01 1.52223310294247e-01 +-2.39393939393939e+01 -1.02193267359685e+00 1.19771406124012e-01 1.45644086594671e-01 +-2.33333333333333e+01 -1.01720410916973e+00 1.09414568219375e-01 1.39064862895096e-01 +-2.27272727272727e+01 -1.01247554474261e+00 9.90577303147373e-02 1.32485639195521e-01 +-2.21212121212121e+01 -1.00774698031549e+00 8.87008924100998e-02 1.25906415495945e-01 +-2.15151515151515e+01 -1.00301841588837e+00 7.83440545054623e-02 1.19327191796370e-01 +-2.09090909090909e+01 -9.98289851461251e-01 6.79872166008249e-02 1.12747968096794e-01 +-2.03030303030303e+01 -9.93561287034132e-01 5.76303786961875e-02 1.06168744397219e-01 +-1.96969696969697e+01 -9.88832722607013e-01 4.72735407915500e-02 -3.41260337230635e-02 +-1.90909090909091e+01 -9.79599601155814e-01 4.27900230958654e-02 -8.23909090909091e-02 +-1.84848484848485e+01 -9.65808255694707e-01 4.11749810547970e-02 -8.42424242424242e-02 +-1.78787878787879e+01 -9.46916022459426e-01 3.96889759964811e-02 -8.59151515151515e-02 +-1.72727272727273e+01 -9.26134447239368e-01 3.82072443768160e-02 -8.74454545454545e-02 +-1.66666666666667e+01 -9.03980330506391e-01 3.66915671378766e-02 -8.89000000000000e-02 +-1.60606060606061e+01 -8.79913380858099e-01 3.51676430066993e-02 -9.02666666666667e-02 +-1.54545454545455e+01 -8.52987249378493e-01 3.36568428519931e-02 -9.17000000000000e-02 +-1.48484848484848e+01 -8.23665042983912e-01 3.21320524138430e-02 -9.30333333333333e-02 +-1.42424242424242e+01 -7.90698386508573e-01 3.06732991674067e-02 -9.43666666666667e-02 +-1.36363636363636e+01 -7.55859167284556e-01 2.91926877383336e-02 -9.57727272727273e-02 +-1.30303030303030e+01 -7.20489724199803e-01 2.80889320410793e-02 -9.71333333333333e-02 +-1.24242424242424e+01 -6.83999428143619e-01 2.66927278423278e-02 -9.86272727272727e-02 +-1.18181818181818e+01 -6.45925172199665e-01 2.51193039332102e-02 -1.00554545454545e-01 +-1.12121212121212e+01 -6.00565371941413e-01 2.32439281001824e-02 -1.03945454545455e-01 +-1.06060606060606e+01 -5.41805673734293e-01 2.06531977085793e-02 -1.10248484848485e-01 +-1.00000000000000e+01 -4.65488182872908e-01 1.70194866814791e-02 -1.20900000000000e-01 +-9.39393939393939e+00 -3.63854180584961e-01 1.29779995411536e-02 -1.34733333333333e-01 +-8.78787878787879e+00 -2.59008632507617e-01 9.80182505728077e-03 -1.46263636363636e-01 +-8.18181818181818e+00 -1.61361376716854e-01 7.60991528866698e-03 -1.54445454545455e-01 +-7.57575757575758e+00 -7.55065680566507e-02 6.64285392741935e-03 -1.58681818181818e-01 +-6.96969696969697e+00 3.85132038591996e-03 6.33474322209687e-03 -1.60790909090909e-01 +-6.36363636363636e+00 8.22796391485917e-02 6.13610563702448e-03 -1.62581818181818e-01 +-5.75757575757576e+00 1.60288477008782e-01 5.98001443743811e-03 -1.64278787878788e-01 +-5.15151515151515e+00 2.37904680744249e-01 5.87603428643774e-03 -1.65836363636364e-01 +-4.54545454545454e+00 3.15148385438313e-01 5.80801120087532e-03 -1.67290909090909e-01 +-3.93939393939394e+00 3.91939050757697e-01 5.78098756911931e-03 -1.68633333333333e-01 +-3.33333333333333e+00 4.68615617271605e-01 5.77955733909565e-03 -1.69966666666667e-01 +-2.72727272727273e+00 5.44966666605189e-01 5.80434505629122e-03 -1.71190909090909e-01 +-2.12121212121212e+00 6.20758967376667e-01 5.87657918423357e-03 -1.72243939393939e-01 +-1.51515151515152e+00 6.96526099293996e-01 5.94661672641549e-03 -1.73274242424242e-01 +-9.09090909090912e-01 7.71935833482410e-01 6.04581766418852e-03 -1.74309090909091e-01 +-3.03030303030302e-01 8.46514995483912e-01 6.19615480030186e-03 -1.75075757575758e-01 + 3.03030303030302e-01 9.21074022402094e-01 6.34605451472512e-03 -1.75863636363636e-01 + 9.09090909090912e-01 9.94978659112406e-01 6.52651007005074e-03 -1.76427272727273e-01 + 1.51515151515152e+00 1.06809467172605e+00 6.75320102943668e-03 -1.76909090909091e-01 + 2.12121212121212e+00 1.14111000892310e+00 6.97738112147446e-03 -1.77272727272727e-01 + 2.72727272727273e+00 1.21342061820398e+00 7.21640061361330e-03 -1.77500000000000e-01 + 3.33333333333333e+00 1.28396605184722e+00 7.54461230506067e-03 -1.77433333333333e-01 + 3.93939393939394e+00 1.35266576951954e+00 7.94791581479217e-03 -1.77048484848485e-01 + 4.54545454545455e+00 1.41848281443001e+00 8.45948219129669e-03 -1.76100000000000e-01 + 5.15151515151515e+00 1.48049097274595e+00 9.08561517025210e-03 -1.74584848484848e-01 + 5.75757575757576e+00 1.53602234592757e+00 9.78741095717578e-03 -1.72009090909091e-01 + 6.36363636363637e+00 1.58785557547292e+00 1.05922977506583e-02 -1.68809090909091e-01 + 6.96969696969697e+00 1.63490672272998e+00 1.15367139899402e-02 -1.65000000000000e-01 + 7.57575757575757e+00 1.67474615431157e+00 1.26572989727620e-02 -1.60287878787879e-01 + 8.18181818181818e+00 1.70553151009401e+00 1.40538223957697e-02 -1.54481818181818e-01 + 8.78787878787879e+00 1.73528662077995e+00 1.54434458615877e-02 -1.48766666666667e-01 + 9.39393939393939e+00 1.76417256703595e+00 1.68434189524164e-02 -1.43196969696970e-01 + 1.00000000000000e+01 1.78919928898912e+00 1.83772295010066e-02 -1.37400000000000e-01 + 1.06060606060606e+01 1.80614513083689e+00 2.02662967551518e-02 -1.31175757575758e-01 + 1.12121212121212e+01 1.81652693552262e+00 2.25302520011326e-02 -1.24836363636364e-01 + 1.18181818181818e+01 1.82221726579501e+00 2.52890952886048e-02 -1.18972727272727e-01 + 1.24242424242424e+01 1.82471954120853e+00 2.88588453143937e-02 -1.14245454545455e-01 + 1.30303030303030e+01 1.81888253628073e+00 3.37688451839700e-02 -1.10981818181818e-01 + 1.36363636363636e+01 1.79095398910464e+00 4.07616898159528e-02 -1.08618181818182e-01 + 1.42424242424242e+01 1.76554903903787e+00 4.75409025739243e-02 -1.06666666666667e-01 + 1.48484848484848e+01 1.74145958108129e+00 5.42458673622915e-02 -1.05542424242424e-01 + 1.54545454545455e+01 1.71423576182137e+00 6.12562517257162e-02 -1.05209090909091e-01 + 1.60606060606061e+01 1.68672333970054e+00 6.82899934622990e-02 -1.05172727272727e-01 + 1.66666666666667e+01 1.66127811946714e+00 7.50735266043305e-02 -1.06116666666667e-01 + 1.72727272727273e+01 1.63777929062125e+00 8.16195560333448e-02 -1.07631818181818e-01 + 1.78787878787879e+01 1.61839137461969e+00 8.76634868366940e-02 -1.09563636363636e-01 + 1.84848484848485e+01 1.59996658677022e+00 9.34865696998436e-02 -1.12230303030303e-01 + 1.90909090909091e+01 1.58594802632041e+00 9.86627200373291e-02 -1.15472727272727e-01 + 1.96969696969697e+01 1.57244962218968e+00 1.03634962692599e-01 -1.19290909090909e-01 + 2.03030303030303e+01 1.55979017986392e+00 1.08401574580259e-01 -1.23381818181818e-01 + 2.09090909090909e+01 1.54878517021754e+00 1.12742323982775e-01 -1.27990909090909e-01 + 2.15151515151515e+01 1.53863254576500e+00 1.16838057484310e-01 -1.32933333333333e-01 + 2.21212121212121e+01 1.52863764613180e+00 1.20747880510702e-01 -1.38363636363636e-01 + 2.27272727272727e+01 1.51752189352717e+00 1.24562113156465e-01 -1.44454545454545e-01 + 2.33333333333333e+01 1.50489600967360e+00 1.28427568456208e-01 -1.51000000000000e-01 + 2.39393939393939e+01 1.49285404323629e+00 1.32044462367877e-01 -1.57896969696970e-01 + 2.45454545454545e+01 1.48089261713225e+00 1.35460478151527e-01 -1.65172727272727e-01 + 2.51515151515151e+01 1.46774667398414e+00 1.41301453212112e-01 -1.72699211486750e-01 + 2.57575757575758e+01 1.45183244795323e+00 1.54923776232050e-01 -1.79896057433752e-01 + 2.63636363636364e+01 1.43591822192233e+00 1.68546099251987e-01 -1.87092903380754e-01 + 2.69696969696970e+01 1.42000399589143e+00 1.82168422271925e-01 -1.94289749327756e-01 + 2.75757575757576e+01 1.40408976986053e+00 1.95790745291862e-01 -2.01486595274757e-01 + 2.81818181818182e+01 1.38817554382963e+00 2.09413068311799e-01 -2.08683441221759e-01 + 2.87878787878788e+01 1.37226131779873e+00 2.23035391331737e-01 -2.15880287168761e-01 + 2.93939393939394e+01 1.35634709176783e+00 2.36657714351675e-01 -2.23077133115763e-01 + 3.00000000000000e+01 1.34271585897123e+00 2.51115245446841e-01 -2.28683447851832e-01 + 3.30000000000000e+01 1.28311758328641e+00 3.25561492227455e-01 -2.50947373117663e-01 + 3.60000000000000e+01 1.22812386885082e+00 4.02946455010399e-01 -2.72575085899121e-01 + 3.90000000000000e+01 1.17662324719781e+00 4.82610332195915e-01 -2.93622955865723e-01 + 4.20000000000000e+01 1.12674917121606e+00 5.65344182815235e-01 -3.10460804317714e-01 + 4.50000000000000e+01 1.07586931658146e+00 6.48589378721455e-01 -3.26682552060250e-01 + 4.80000000000000e+01 1.02388310542872e+00 7.32397054443264e-01 -3.42226589022384e-01 + 5.10000000000000e+01 9.67925162658474e-01 8.15260665521293e-01 -3.57211338114160e-01 + 5.40000000000000e+01 9.09623640383730e-01 8.96881147114135e-01 -3.72009657915817e-01 + 5.70000000000000e+01 8.48010267866364e-01 9.76599551374023e-01 -3.86574941104823e-01 + 6.00000000000000e+01 7.81708060333753e-01 1.05211733434331e+00 -4.01078940236869e-01 + 6.30000000000000e+01 7.12955965777128e-01 1.12483202864078e+00 -4.15546168934738e-01 + 6.60000000000000e+01 6.40423571168093e-01 1.19263931190402e+00 -4.29952113575646e-01 + 6.90000000000000e+01 5.64588285223554e-01 1.25416218507444e+00 -4.44221895787882e-01 + 7.20000000000000e+01 4.86957966192881e-01 1.31156358374571e+00 -4.58364300244262e-01 + 7.50000000000000e+01 4.06679729769834e-01 1.36092601166138e+00 -4.72170690965369e-01 + 7.80000000000000e+01 3.25269400934192e-01 1.40316393699034e+00 -4.85813867679399e-01 + 8.10000000000000e+01 2.43228589703034e-01 1.44030653894573e+00 -4.99233380754100e-01 + 8.40000000000000e+01 1.61173127892043e-01 1.46664511028202e+00 -5.11389496514760e-01 + 8.70000000000000e+01 8.01571938008759e-02 1.48614657672668e+00 -5.23545612275420e-01 + 9.00000000000000e+01 9.18485099360515e-17 1.50000000000000e+00 -5.35701728036079e-01 + 9.30000000000000e+01 -5.61100356606131e-02 1.48614657672668e+00 -5.39810911213655e-01 + 9.60000000000000e+01 -1.12821189524430e-01 1.46664511028202e+00 -5.43920094391231e-01 + 9.90000000000000e+01 -1.70260012792124e-01 1.44030653894573e+00 -5.48029277568807e-01 + 1.02000000000000e+02 -2.27688580653934e-01 1.40316393699034e+00 -5.48407652808097e-01 + 1.05000000000000e+02 -2.84675810838884e-01 1.36092601166138e+00 -5.48125550087020e-01 + 1.08000000000000e+02 -3.40870576335016e-01 1.31156358374571e+00 -5.47361476962433e-01 + 1.11000000000000e+02 -3.95211799656488e-01 1.25416218507444e+00 -5.44914475567790e-01 + 1.14000000000000e+02 -4.48296499817665e-01 1.19263931190402e+00 -5.41829501364892e-01 + 1.17000000000000e+02 -4.99069176043990e-01 1.12483202864078e+00 -5.38062556229029e-01 + 1.20000000000000e+02 -5.47195642233627e-01 1.05211733434331e+00 -5.34324114126957e-01 + 1.23000000000000e+02 -5.93607187506455e-01 9.76599551374023e-01 -5.30602773845158e-01 + 1.26000000000000e+02 -6.36736548268611e-01 8.96881147114135e-01 -5.26909936597149e-01 + 1.29000000000000e+02 -6.77547613860932e-01 8.15260665521292e-01 -5.24404982516290e-01 + 1.32000000000000e+02 -7.16718173800103e-01 7.32397054443263e-01 -5.22850334969149e-01 + 1.35000000000000e+02 -7.53108521607021e-01 6.48589378721455e-01 -5.24146607023167e-01 + 1.38000000000000e+02 -7.88724419851242e-01 5.65344182815235e-01 -5.27223685707499e-01 + 1.41000000000000e+02 -8.23636273038465e-01 4.82610332195914e-01 -5.31919679510299e-01 + 1.44000000000000e+02 -8.59686708195575e-01 4.02946455010399e-01 -5.47678259955961e-01 + 1.47000000000000e+02 -8.98182308300484e-01 3.25561492227455e-01 -5.63407752568036e-01 + 1.50000000000000e+02 -9.39901101279860e-01 2.51115245446841e-01 -5.78738702486779e-01 + 1.53000000000000e+02 -9.93445799212921e-01 1.82849538422922e-01 -5.86696612578888e-01 + 1.56000000000000e+02 -9.88999354890531e-01 1.17355568086594e-01 -5.93658165937668e-01 + 1.59000000000000e+02 -8.65374435529214e-01 5.89268741326601e-02 -5.99538472882631e-01 + 1.62000000000000e+02 -7.41749516167898e-01 6.89495067053369e-03 -5.82352189666167e-01 + 1.65000000000000e+02 -6.18124596806581e-01 1.00000000000000e-03 -5.51470118541354e-01 + 1.68000000000000e+02 -4.94499677445265e-01 1.00000000000000e-03 -5.20588047416542e-01 + 1.71000000000000e+02 -3.70874758083949e-01 1.00000000000000e-03 -4.48865543534522e-01 + 1.74000000000000e+02 -2.47249838722633e-01 1.00000000000000e-03 -3.00000000000000e-01 + 1.77000000000000e+02 -1.23624919361317e-01 1.00000000000000e-03 -1.50000000000000e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_24.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_24.dat new file mode 100644 index 000000000..53fb07bd6 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_24.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF24_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +8.974203 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.859882 alpha0 ! 0-lift angle of attack, depends on airfoil. +12.424242 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-12.424242 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.542132 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.218822 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005184 Cd0 ! 2D drag coefficient value at 0-lift. +-0.082768 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.19194698620399e-01 1.00000000000000e-03 1.15715826538831e-01 +-1.74000000000000e+02 2.38389397240799e-01 1.00000000000000e-03 2.31431653077663e-01 +-1.71000000000000e+02 3.57584095861198e-01 1.00000000000000e-03 3.47147479616494e-01 +-1.68000000000000e+02 4.76778792713600e-01 7.06302052461390e-03 4.01807459197899e-01 +-1.65000000000000e+02 5.95973488677458e-01 1.61731395664654e-02 4.25782538577691e-01 +-1.62000000000000e+02 7.15168184641315e-01 2.52832586083169e-02 4.49757617968531e-01 +-1.59000000000000e+02 8.05994507226654e-01 5.29355242877592e-02 4.64731974942933e-01 +-1.56000000000000e+02 8.42221007921536e-01 1.16203744118300e-01 4.62418233507801e-01 +-1.53000000000000e+02 8.78307922770145e-01 1.79471971600731e-01 4.60105522427088e-01 +-1.50000000000000e+02 9.14271300805761e-01 2.42741932710932e-01 4.57793204574142e-01 +-1.47000000000000e+02 8.78916084422597e-01 3.20768260641858e-01 4.47761699664923e-01 +-1.44000000000000e+02 8.43560847142294e-01 3.98794592872910e-01 4.37734062175217e-01 +-1.41000000000000e+02 8.08205577790801e-01 4.76820929976505e-01 4.27712453130360e-01 +-1.38000000000000e+02 7.73420181551544e-01 5.58515315135571e-01 4.24641724748947e-01 +-1.35000000000000e+02 7.38931177110483e-01 6.42117351742129e-01 4.25186271286218e-01 +-1.32000000000000e+02 7.04442172627805e-01 7.25719388844931e-01 4.25736505121966e-01 +-1.29000000000000e+02 6.67516212593125e-01 8.08029072909393e-01 4.27724763768992e-01 +-1.26000000000000e+02 6.25746364731634e-01 8.87769972278359e-01 4.32560039375893e-01 +-1.23000000000000e+02 5.83976514758784e-01 9.67510871832057e-01 4.37399378450488e-01 +-1.20000000000000e+02 5.42206661025352e-01 1.04725177161710e+00 4.42244248342048e-01 +-1.17000000000000e+02 4.92119100095114e-01 1.11433571794073e+00 4.47123362550106e-01 +-1.14000000000000e+02 4.41968296189796e-01 1.18132343077391e+00 4.52004821969163e-01 +-1.11000000000000e+02 3.91817489833844e-01 1.24831114470156e+00 4.56888913419081e-01 +-1.08000000000000e+02 3.37840080944430e-01 1.30186081004284e+00 4.59945936667527e-01 +-1.05000000000000e+02 2.81971946231573e-01 1.34877072501270e+00 4.62099834989362e-01 +-1.02000000000000e+02 2.26103811453667e-01 1.39568064108958e+00 4.64254643573409e-01 +-9.90000000000000e+01 1.69976786819614e-01 1.43440313249617e+00 4.64924140853440e-01 +-9.60000000000000e+01 1.13317049464654e-01 1.45627850080733e+00 4.62535752263671e-01 +-9.30000000000000e+01 5.66573121096807e-02 1.47815386911867e+00 4.60147720501233e-01 +-9.00000000000000e+01 -2.42491126578282e-06 1.49985902820400e+00 4.57722215287114e-01 +-8.70000000000000e+01 -5.66620816790500e-02 1.47797734900291e+00 4.45597546017532e-01 +-8.40000000000000e+01 -1.13321738427226e-01 1.45609566987240e+00 4.33473868499644e-01 +-8.10000000000000e+01 -1.69981395175388e-01 1.43421399074208e+00 4.21351365908611e-01 +-7.80000000000000e+01 -2.26118729242613e-01 1.39577430175819e+00 4.07201543115590e-01 +-7.50000000000000e+01 -2.81988944841910e-01 1.34886676660521e+00 3.92014684348837e-01 +-7.20000000000000e+01 -3.37859160411308e-01 1.30195923239578e+00 3.76828099997013e-01 +-6.90000000000000e+01 -3.91791199472373e-01 1.24825131921933e+00 3.61225511303243e-01 +-6.60000000000000e+01 -4.41935307441861e-01 1.18125290302149e+00 3.44809618818943e-01 +-6.30000000000000e+01 -4.92079412441728e-01 1.11425448807410e+00 3.28394049647072e-01 +-6.00000000000000e+01 -5.42223515990050e-01 1.04725607403072e+00 3.11978800689144e-01 +-5.70000000000000e+01 -5.84012834605712e-01 9.67549687275373e-01 2.95903422479866e-01 +-5.40000000000000e+01 -6.25770508466588e-01 8.87795172577511e-01 2.79831155494791e-01 +-5.10000000000000e+01 -6.67528180532210e-01 8.08040658030631e-01 2.63760528760164e-01 +-4.80000000000000e+01 -7.04433238665521e-01 7.25719705923073e-01 2.48398456441558e-01 +-4.50000000000000e+01 -7.38919359128585e-01 6.42119432741871e-01 2.33389812568979e-01 +-4.20000000000000e+01 -7.73405479569735e-01 5.58519160071063e-01 2.18381986600492e-01 +-3.90000000000000e+01 -8.08183234141552e-01 4.76778179415647e-01 2.03225140669952e-01 +-3.60000000000000e+01 -8.43545817348300e-01 3.98765935258860e-01 1.87770500355644e-01 +-3.30000000000000e+01 -8.78908367630605e-01 3.20753695929176e-01 1.72320409820320e-01 +-3.00000000000000e+01 -9.14272571825183e-01 2.42742004837443e-01 1.56876452418595e-01 +-2.93939393939394e+01 -9.35404385236971e-01 2.31683194270142e-01 1.50332407854228e-01 +-2.87878787878788e+01 -9.55828178376470e-01 2.20626417475211e-01 1.43643186744899e-01 +-2.81818181818182e+01 -9.75799134656346e-01 2.09568096930495e-01 1.36908107297073e-01 +-2.75757575757576e+01 -9.95464914463943e-01 1.98501124570474e-01 1.30327409463528e-01 +-2.69696969696970e+01 -1.01491713683441e+00 1.87380632508162e-01 1.24285468437037e-01 +-2.63636363636364e+01 -1.03421590698032e+00 1.76219853510973e-01 1.17983682326836e-01 +-2.57575757575758e+01 -1.05340254056189e+00 1.65059074513785e-01 1.11563145871659e-01 +-2.51515151515151e+01 -1.07250662800980e+00 1.53898295516596e-01 1.05078457712927e-01 +-2.45454545454545e+01 -1.09155018303601e+00 1.42737516519407e-01 9.85551935981259e-02 +-2.39393939393939e+01 -1.11055019995173e+00 1.31576737522219e-01 9.20069287925147e-02 +-2.33333333333333e+01 -1.12952030158000e+00 1.20415958525030e-01 8.54415376066461e-02 +-2.27272727272727e+01 -1.14847184855866e+00 1.09255179527842e-01 7.88639017124246e-02 +-2.21212121212121e+01 -1.16741472202472e+00 9.80944005306529e-02 7.22772084784232e-02 +-2.15151515151515e+01 -1.18635790704727e+00 8.69336215334642e-02 6.56836273435242e-02 +-2.09090909090909e+01 -1.20530995777874e+00 7.57728425362756e-02 5.90846861336363e-02 +-2.03030303030303e+01 -1.22427939975970e+00 6.46120635390870e-02 5.24814919281662e-02 +-1.96969696969697e+01 -1.24769272262544e+00 5.47655514311394e-02 2.32473185918552e-02 +-1.90909090909091e+01 -1.26665719880586e+00 4.87092011046821e-02 -9.82001034895980e-03 +-1.84848484848485e+01 -1.26973037463211e+00 4.60488444772056e-02 -1.48373639307270e-02 +-1.78787878787879e+01 -1.27042137419244e+00 4.37532671554290e-02 -1.64504703071393e-02 +-1.72727272727273e+01 -1.26844452259028e+00 4.15514205434581e-02 -1.77419995044801e-02 +-1.66666666666667e+01 -1.26733926211986e+00 3.95563020113277e-02 -1.84473416007093e-02 +-1.60606060606061e+01 -1.26482700914897e+00 3.78143207956994e-02 -1.92164915246238e-02 +-1.54545454545455e+01 -1.25789007999322e+00 3.60894674251133e-02 -2.00271329026143e-02 +-1.48484848484848e+01 -1.24547721356136e+00 3.42384925195469e-02 -2.06849698664834e-02 +-1.42424242424242e+01 -1.22981476484546e+00 3.23685588287559e-02 -2.12059420401089e-02 +-1.36363636363636e+01 -1.21160187138021e+00 3.05031598048661e-02 -2.17200414644596e-02 +-1.30303030303030e+01 -1.19009676467991e+00 2.86867207231004e-02 -2.22006432954369e-02 +-1.24242424242424e+01 -1.16610083731284e+00 2.68524474826819e-02 -2.26893982451888e-02 +-1.18181818181818e+01 -1.13791765449533e+00 2.49429527345148e-02 -2.34423406920433e-02 +-1.12121212121212e+01 -1.10448185282218e+00 2.28768014562039e-02 -2.44670075188266e-02 +-1.06060606060606e+01 -1.05696220043782e+00 2.03605727461502e-02 -2.85176441961268e-02 +-1.00000000000000e+01 -9.83985260252629e-01 1.71984493044185e-02 -3.71185663261045e-02 +-9.39393939393939e+00 -8.96098971195836e-01 1.38576909963529e-02 -4.71415358752709e-02 +-8.78787878787879e+00 -8.01959579886673e-01 1.11976832385552e-02 -5.53899189929150e-02 +-8.18181818181818e+00 -7.14753725937160e-01 9.92958126859652e-03 -6.00380614081845e-02 +-7.57575757575758e+00 -6.30840875005589e-01 9.03073389402355e-03 -6.35739536150029e-02 +-6.96969696969697e+00 -5.47213500072116e-01 8.04997006180150e-03 -6.72029368260486e-02 +-6.36363636363636e+00 -4.64815306652771e-01 7.02840258869475e-03 -7.04710677348647e-02 +-5.75757575757576e+00 -3.82758908425607e-01 6.31240361864749e-03 -7.34508062158609e-02 +-5.15151515151515e+00 -3.01452196226151e-01 5.78191072678144e-03 -7.59289062161703e-02 +-4.54545454545454e+00 -2.21084943566850e-01 5.45938012953026e-03 -7.79442960204590e-02 +-3.93939393939394e+00 -1.41107304789004e-01 5.23331044447945e-03 -7.98531651846389e-02 +-3.33333333333333e+00 -6.16870624476229e-02 5.19293595724249e-03 -8.15340213497750e-02 +-2.72727272727273e+00 1.72779492517745e-02 5.18210161575277e-03 -8.31132593635292e-02 +-2.12121212121212e+00 9.59974394220963e-02 5.18121929128226e-03 -8.47034273790392e-02 +-1.51515151515152e+00 1.74632537843438e-01 5.19393509348815e-03 -8.63422323843282e-02 +-9.09090909090912e-01 2.53242683755374e-01 5.22640229105836e-03 -8.79173558530408e-02 +-3.03030303030302e-01 3.31650483636592e-01 5.26771366504647e-03 -8.94587041431882e-02 + 3.03030303030302e-01 4.09940880567389e-01 5.32583458973280e-03 -9.09579302873511e-02 + 9.09090909090912e-01 4.88076495314438e-01 5.40907313193200e-03 -9.24195525359352e-02 + 1.51515151515152e+00 5.66078445166423e-01 5.49318385132194e-03 -9.39036400130953e-02 + 2.12121212121212e+00 6.43905290858244e-01 5.60654954613295e-03 -9.53189258438169e-02 + 2.72727272727273e+00 7.21614046856853e-01 5.71497401606241e-03 -9.66679270795550e-02 + 3.33333333333333e+00 7.99025942488891e-01 5.85690325326736e-03 -9.79880084271899e-02 + 3.93939393939394e+00 8.76199088817593e-01 6.01905621775604e-03 -9.92642999478769e-02 + 4.54545454545455e+00 9.53009992122147e-01 6.20518818964859e-03 -1.00419681450972e-01 + 5.15151515151515e+00 1.02919278136668e+00 6.46109710003113e-03 -1.01537776196546e-01 + 5.75757575757576e+00 1.10433880886205e+00 6.81299979891501e-03 -1.02478072780226e-01 + 6.36363636363637e+00 1.17827879165167e+00 7.26462544882887e-03 -1.03231213674186e-01 + 6.96969696969697e+00 1.24931434885495e+00 7.97375301806594e-03 -1.03713351535921e-01 + 7.57575757575757e+00 1.31784230998322e+00 8.78664442897229e-03 -1.03780712978971e-01 + 8.18181818181818e+00 1.38331809669668e+00 9.58114154371982e-03 -1.03498811619546e-01 + 8.78787878787879e+00 1.44594681948237e+00 1.04404993756110e-02 -1.02788176086371e-01 + 9.39393939393939e+00 1.50882991673074e+00 1.13717952870507e-02 -1.01934487727040e-01 + 1.00000000000000e+01 1.56730817181079e+00 1.24878464280629e-02 -1.00189322477513e-01 + 1.06060606060606e+01 1.60953236611816e+00 1.37850232404064e-02 -9.70013869705466e-02 + 1.12121212121212e+01 1.64861775788578e+00 1.49171464820336e-02 -9.38832661846324e-02 + 1.18181818181818e+01 1.68612022407500e+00 1.65661358848030e-02 -9.17048402757566e-02 + 1.24242424242424e+01 1.71691498425690e+00 1.86773881891052e-02 -8.95699153277086e-02 + 1.30303030303030e+01 1.73451917339124e+00 2.11916286011068e-02 -8.64453633255110e-02 + 1.36363636363636e+01 1.73898723208864e+00 2.48513067803391e-02 -8.41948009224961e-02 + 1.42424242424242e+01 1.73619935538210e+00 2.93669523116644e-02 -8.24892885242324e-02 + 1.48484848484848e+01 1.72839221771971e+00 3.45337321320260e-02 -8.13216952267511e-02 + 1.54545454545455e+01 1.71524032484682e+00 4.02353114137644e-02 -8.06242632189840e-02 + 1.60606060606061e+01 1.69667701826533e+00 4.63669888738091e-02 -8.02020230193613e-02 + 1.66666666666667e+01 1.67385535123343e+00 5.28508958862585e-02 -8.02754292202699e-02 + 1.72727272727273e+01 1.64912581903068e+00 5.95058317335446e-02 -8.09545175786627e-02 + 1.78787878787879e+01 1.62500348614442e+00 6.59384875623590e-02 -8.20046660091836e-02 + 1.84848484848485e+01 1.60184515145600e+00 7.23216545215890e-02 -8.37575359177880e-02 + 1.90909090909091e+01 1.58094657736938e+00 7.85375552789494e-02 -8.57571876510872e-02 + 1.96969696969697e+01 1.56415385505872e+00 8.43335486486114e-02 -8.85916654219508e-02 + 2.03030303030303e+01 1.54937168278280e+00 8.98939291009326e-02 -9.19967212787341e-02 + 2.09090909090909e+01 1.53667609139779e+00 9.51677869078979e-02 -9.59753101319285e-02 + 2.15151515151515e+01 1.52250038379529e+00 1.00291903795246e-01 -1.00570017887042e-01 + 2.21212121212121e+01 1.50987764424922e+00 1.04857792526901e-01 -1.05857925671357e-01 + 2.27272727272727e+01 1.49725589618573e+00 1.09448206789267e-01 -1.11525089646718e-01 + 2.33333333333333e+01 1.48178179756744e+00 1.14297871956356e-01 -1.18264176066086e-01 + 2.39393939393939e+01 1.46521845947076e+00 1.19302815753094e-01 -1.25520691065587e-01 + 2.45454545454545e+01 1.44212641408361e+00 1.24858035346085e-01 -1.33961993363230e-01 + 2.51515151515151e+01 1.42072119520373e+00 1.32596090725447e-01 -1.41887238216959e-01 + 2.57575757575758e+01 1.40639381379775e+00 1.46364289781779e-01 -1.47318697321539e-01 + 2.63636363636364e+01 1.39206642108068e+00 1.60132489120426e-01 -1.52750156426120e-01 + 2.69696969696970e+01 1.37773901604916e+00 1.73900688747254e-01 -1.58181615530701e-01 + 2.75757575757576e+01 1.36341159757750e+00 1.87668888668294e-01 -1.63613074635282e-01 + 2.81818181818182e+01 1.34908416439853e+00 2.01437088889743e-01 -1.69044533739862e-01 + 2.87878787878788e+01 1.33475671508059e+00 2.15205289417975e-01 -1.74475992844443e-01 + 2.93939393939394e+01 1.32042924799999e+00 2.28973490259545e-01 -1.79820881348394e-01 + 3.00000000000000e+01 1.30610176130767e+00 2.42741691421196e-01 -1.85116212343853e-01 + 3.30000000000000e+01 1.25558338311528e+00 3.20753695929176e-01 -2.02341094525012e-01 + 3.60000000000000e+01 1.20506545140415e+00 3.98765935258860e-01 -2.19577849051384e-01 + 3.90000000000000e+01 1.15454747266113e+00 4.76778179415647e-01 -2.36821580178894e-01 + 4.20000000000000e+01 1.10486496774403e+00 5.58519160071063e-01 -2.51923882614006e-01 + 4.50000000000000e+01 1.05559908517991e+00 6.42119432741871e-01 -2.65957567817741e-01 + 4.80000000000000e+01 1.00633320258441e+00 7.25719705923073e-01 -2.79992233904065e-01 + 5.10000000000000e+01 9.53611692819448e-01 8.08040658030632e-01 -2.93840240854892e-01 + 5.40000000000000e+01 8.93957873572826e-01 8.87795172577511e-01 -3.07313559776687e-01 + 5.70000000000000e+01 8.34304051761578e-01 9.67549687275373e-01 -3.20789381690301e-01 + 6.00000000000000e+01 7.74605023170288e-01 1.04725607403072e+00 -3.34267492245922e-01 + 6.30000000000000e+01 7.02970590824512e-01 1.11425448807410e+00 -3.47594021652899e-01 + 6.60000000000000e+01 6.31336156406481e-01 1.18125290302149e+00 -3.60921484199674e-01 + 6.90000000000000e+01 5.59701717748958e-01 1.24825131921934e+00 -3.74249922861967e-01 + 7.20000000000000e+01 4.82655947430981e-01 1.30195923239578e+00 -3.87139388190593e-01 + 7.50000000000000e+01 4.02841352745088e-01 1.34886676660521e+00 -3.99803968971405e-01 + 7.80000000000000e+01 3.23026758016320e-01 1.39577430175819e+00 -4.12468629738509e-01 + 8.10000000000000e+01 2.42840023100877e-01 1.43421399074208e+00 -4.24585353924756e-01 + 8.40000000000000e+01 1.61925606345606e-01 1.45609566987240e+00 -4.35631348407234e-01 + 8.70000000000000e+01 8.10111895903240e-02 1.47797734900291e+00 -4.46678419828074e-01 + 9.00000000000000e+01 9.67728239654923e-05 1.49985902820400e+00 -4.57726403590837e-01 + 9.30000000000000e+01 -5.66573121096807e-02 1.47815386911867e+00 -4.60147720501233e-01 + 9.60000000000000e+01 -1.13317049464655e-01 1.45627850080733e+00 -4.62535752263671e-01 + 9.90000000000000e+01 -1.69976786819614e-01 1.43440313249617e+00 -4.64924140853440e-01 + 1.02000000000000e+02 -2.26103811453667e-01 1.39568064108958e+00 -4.64254643573409e-01 + 1.05000000000000e+02 -2.81971946231574e-01 1.34877072501270e+00 -4.62099834989362e-01 + 1.08000000000000e+02 -3.37840080944430e-01 1.30186081004284e+00 -4.59945936667527e-01 + 1.11000000000000e+02 -3.91817489833845e-01 1.24831114470156e+00 -4.56888913419081e-01 + 1.14000000000000e+02 -4.41968296189796e-01 1.18132343077391e+00 -4.52004821969163e-01 + 1.17000000000000e+02 -4.92119100095114e-01 1.11433571794073e+00 -4.47123362550105e-01 + 1.20000000000000e+02 -5.42206661025352e-01 1.04725177161709e+00 -4.42244248342048e-01 + 1.23000000000000e+02 -5.83976514758784e-01 9.67510871832056e-01 -4.37399378450488e-01 + 1.26000000000000e+02 -6.25746364731634e-01 8.87769972278359e-01 -4.32560039375893e-01 + 1.29000000000000e+02 -6.67516212593125e-01 8.08029072909392e-01 -4.27724763768992e-01 + 1.32000000000000e+02 -7.04442172627805e-01 7.25719388844930e-01 -4.25736505121966e-01 + 1.35000000000000e+02 -7.38931177110483e-01 6.42117351742129e-01 -4.25186271286218e-01 + 1.38000000000000e+02 -7.73420181551544e-01 5.58515315135570e-01 -4.24641724748947e-01 + 1.41000000000000e+02 -8.08205577790801e-01 4.76820929976504e-01 -4.27712453130361e-01 + 1.44000000000000e+02 -8.43560847142294e-01 3.98794592872910e-01 -4.37734062175217e-01 + 1.47000000000000e+02 -8.78916084422597e-01 3.20768260641858e-01 -4.47761699664923e-01 + 1.50000000000000e+02 -9.14271300805761e-01 2.42741932710932e-01 -4.57793204574142e-01 + 1.53000000000000e+02 -8.78307922770145e-01 1.79471971600731e-01 -4.60976500445942e-01 + 1.56000000000000e+02 -8.42221007921536e-01 1.16203744118300e-01 -4.64160291393692e-01 + 1.59000000000000e+02 -8.05994507226654e-01 5.29355242877592e-02 -4.67345112695860e-01 + 1.62000000000000e+02 -7.15168184641315e-01 2.52832586083169e-02 -4.70187280267095e-01 + 1.65000000000000e+02 -5.95973488677458e-01 1.61731395664655e-02 -4.72850753947541e-01 + 1.68000000000000e+02 -4.76778792713600e-01 7.06302052461390e-03 -4.75514227639123e-01 + 1.71000000000000e+02 -3.57584095861199e-01 1.00000000000000e-03 -4.29411202277536e-01 + 1.74000000000000e+02 -2.38389397240799e-01 1.00000000000000e-03 -2.86274134851691e-01 + 1.77000000000000e+02 -1.19194698620399e-01 1.00000000000000e-03 -1.43137067425845e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_25.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_25.dat new file mode 100644 index 000000000..f163ec616 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_25.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF25_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +8.038577 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.814892 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.212121 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.212121 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.479018 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.209188 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.004981 Cd0 ! 2D drag coefficient value at 0-lift. +-0.078807 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.15522752076978e-01 1.00000000000000e-03 1.15501099657323e-01 +-1.74000000000000e+02 2.31045504153958e-01 1.00000000000000e-03 2.31002199314648e-01 +-1.71000000000000e+02 3.46568256230936e-01 1.00000000000000e-03 3.46503298971971e-01 +-1.68000000000000e+02 4.62091006097342e-01 7.31880873329870e-03 3.98015468402122e-01 +-1.65000000000000e+02 5.77613754852778e-01 1.68132677293299e-02 4.17368654772951e-01 +-1.62000000000000e+02 6.93136503608213e-01 2.63077267253610e-02 4.36721841144602e-01 +-1.59000000000000e+02 7.81453512483691e-01 5.42025490160470e-02 4.48962759253956e-01 +-1.56000000000000e+02 8.17455194423130e-01 1.17440984225075e-01 4.47542401473326e-01 +-1.53000000000000e+02 8.53382648939168e-01 1.80679423503142e-01 4.46122120327865e-01 +-1.50000000000000e+02 8.89240859702063e-01 2.43919591299160e-01 4.44701077001504e-01 +-1.47000000000000e+02 8.56809364168247e-01 3.21904805119317e-01 4.35937820825171e-01 +-1.44000000000000e+02 8.24377857521980e-01 3.99890021226147e-01 4.27174852297769e-01 +-1.41000000000000e+02 7.91946333821250e-01 4.77875239924045e-01 4.18412332150925e-01 +-1.38000000000000e+02 7.59391882691523e-01 5.59522432227278e-01 4.16212047914796e-01 +-1.35000000000000e+02 7.26773508903678e-01 6.43074117533313e-01 4.17424628772815e-01 +-1.32000000000000e+02 6.94155135093701e-01 7.26625803103235e-01 4.18637632637783e-01 +-1.29000000000000e+02 6.58894552777877e-01 8.08882525307725e-01 4.21183356372727e-01 +-1.26000000000000e+02 6.18382105908779e-01 8.88565274719536e-01 4.26377258651834e-01 +-1.23000000000000e+02 5.77869657916925e-01 9.68248024229583e-01 4.31571463161444e-01 +-1.20000000000000e+02 5.37357207925310e-01 1.04793077386265e+00 4.36766079039301e-01 +-1.17000000000000e+02 4.88096992378152e-01 1.11495047200455e+00 4.41853812671397e-01 +-1.14000000000000e+02 4.38770264553926e-01 1.18187388992241e+00 4.46940888713865e-01 +-1.11000000000000e+02 3.89443535426530e-01 1.24879730842226e+00 4.52028160520165e-01 +-1.08000000000000e+02 3.36054886142539e-01 1.30227981600935e+00 4.55244558724525e-01 +-1.05000000000000e+02 2.80659239697481e-01 1.34912115890324e+00 4.57536529347034e-01 +-1.02000000000000e+02 2.25263593217832e-01 1.39596250238580e+00 4.59828567672556e-01 +-9.90000000000000e+01 1.69505902117672e-01 1.43461567639767e+00 4.60627546421412e-01 +-9.60000000000000e+01 1.13003238372762e-01 1.45642019631585e+00 4.58354164706143e-01 +-9.30000000000000e+01 5.65005746278451e-02 1.47822471623413e+00 4.56080809530793e-01 +-9.00000000000000e+01 -2.08689464189075e-06 1.49985957740803e+00 4.53769626283541e-01 +-8.70000000000000e+01 -5.65041821118407e-02 1.47804857536803e+00 4.41763846268864e-01 +-8.40000000000000e+01 -1.13006277318612e-01 1.45623757336564e+00 4.29758140018182e-01 +-8.10000000000000e+01 -1.69508372525376e-01 1.43442657136335e+00 4.17752521155603e-01 +-7.80000000000000e+01 -2.25279840446788e-01 1.39605617220932e+00 4.03696413907471e-01 +-7.50000000000000e+01 -2.80677661942218e-01 1.34921721677283e+00 3.88591657904144e-01 +-7.20000000000000e+01 -3.36075483421748e-01 1.30237826183809e+00 3.73486922311109e-01 +-6.90000000000000e+01 -3.89415957284953e-01 1.24873747428053e+00 3.57951114876236e-01 +-6.60000000000000e+01 -4.38735596584261e-01 1.18180334263568e+00 3.41572810196318e-01 +-6.30000000000000e+01 -4.88055234304416e-01 1.11486921165580e+00 3.25194529563564e-01 +-6.00000000000000e+01 -5.37374871252686e-01 1.04793508115663e+00 3.08816272747518e-01 +-5.70000000000000e+01 -5.77907841474934e-01 9.68286861162596e-01 2.92738396088506e-01 +-5.40000000000000e+01 -6.18407532795301e-01 8.88590489972621e-01 2.76661792709370e-01 +-5.10000000000000e+01 -6.58907223161007e-01 8.08894118862933e-01 2.60585311327934e-01 +-4.80000000000000e+01 -6.94145014924694e-01 7.26626106633912e-01 2.45220146509083e-01 +-4.50000000000000e+01 -7.26759848026148e-01 6.43076179242666e-01 2.30209576703343e-01 +-4.20000000000000e+01 -7.59374681115949e-01 5.59526252122832e-01 2.15199067731251e-01 +-3.90000000000000e+01 -7.91930271139219e-01 4.77832541751668e-01 2.00094971563131e-01 +-3.60000000000000e+01 -8.24367034812790e-01 3.99861399240434e-01 1.84803268889035e-01 +-3.30000000000000e+01 -8.56803780978162e-01 3.21890259296104e-01 1.69511904616052e-01 +-3.00000000000000e+01 -8.89242298883537e-01 2.43919633110006e-01 1.54220588552335e-01 +-2.93939393939394e+01 -9.10939725430047e-01 2.32588870970307e-01 1.47352447622733e-01 +-2.87878787878788e+01 -9.32256550462754e-01 2.21262358952634e-01 1.40473508827042e-01 +-2.81818181818182e+01 -9.53328110353875e-01 2.09939965043225e-01 1.33591159203532e-01 +-2.75757575757576e+01 -9.74232520076905e-01 1.98621300547222e-01 1.26790904933917e-01 +-2.69696969696970e+01 -9.95018042677384e-01 1.87258032111477e-01 1.20277144823238e-01 +-2.63636363636364e+01 -1.01571612403083e+00 1.75845328424724e-01 1.13625207156867e-01 +-2.57575757575758e+01 -1.03634814934588e+00 1.64432624737971e-01 1.06910121740413e-01 +-2.51515151515151e+01 -1.05692918783673e+00 1.53019921051218e-01 1.00160922437854e-01 +-2.45454545454545e+01 -1.07747018429867e+00 1.41607217364465e-01 9.33912096383993e-02 +-2.39393939393939e+01 -1.09797930131286e+00 1.30194513677712e-01 8.66082022470384e-02 +-2.33333333333333e+01 -1.11846277376415e+00 1.18781809990959e-01 7.98160875778793e-02 +-2.27272727272727e+01 -1.13892547170062e+00 1.07369106304206e-01 7.30174615526221e-02 +-2.21212121212121e+01 -1.15937128273231e+00 9.59564026174530e-02 6.62140191150090e-02 +-2.15151515151515e+01 -1.17980337963145e+00 8.45436989307000e-02 5.94069139053460e-02 +-2.09090909090909e+01 -1.20022441337045e+00 7.31309952439470e-02 5.25969583740617e-02 +-2.03030303030303e+01 -1.22063665717709e+00 6.17182915571939e-02 4.57847412316454e-02 +-1.96969696969697e+01 -1.24660187613538e+00 5.14931639597652e-02 1.07388967258648e-02 +-1.90909090909091e+01 -1.26339870313710e+00 4.67029020234176e-02 -1.35405850977260e-02 +-1.84848484848485e+01 -1.26836917643525e+00 4.41987470671255e-02 -1.60883492301509e-02 +-1.78787878787879e+01 -1.27196418929245e+00 4.17441376952767e-02 -1.77682825931712e-02 +-1.72727272727273e+01 -1.27237001176410e+00 3.94833368930716e-02 -1.91259148797848e-02 +-1.66666666666667e+01 -1.27382770144775e+00 3.75389465608470e-02 -1.98676846370952e-02 +-1.60606060606061e+01 -1.27547264821378e+00 3.55780461325231e-02 -2.06992879625285e-02 +-1.54545454545455e+01 -1.27118212506359e+00 3.36595380851330e-02 -2.14648867623383e-02 +-1.48484848484848e+01 -1.25941404627014e+00 3.18496024651821e-02 -2.20375531498266e-02 +-1.42424242424242e+01 -1.24349040430214e+00 3.00831765427458e-02 -2.24413656510476e-02 +-1.36363636363636e+01 -1.22458791193261e+00 2.83477032658948e-02 -2.28967113275479e-02 +-1.30303030303030e+01 -1.20149570550535e+00 2.67040708430826e-02 -2.33078718111612e-02 +-1.24242424242424e+01 -1.17557911970470e+00 2.50491924135225e-02 -2.38134357152148e-02 +-1.18181818181818e+01 -1.14369325726810e+00 2.32532763669277e-02 -2.51511490650233e-02 +-1.12121212121212e+01 -1.10135100498185e+00 2.12240967758531e-02 -2.77019298854526e-02 +-1.06060606060606e+01 -1.04143621601902e+00 1.88749242649677e-02 -3.25404150421599e-02 +-1.00000000000000e+01 -9.66060079102499e-01 1.64502709096031e-02 -3.90675841328874e-02 +-9.39393939393939e+00 -8.83781748751916e-01 1.40236629251415e-02 -4.59059555489004e-02 +-8.78787878787879e+00 -7.96497099816432e-01 1.20769033549576e-02 -5.18459586556093e-02 +-8.18181818181818e+00 -7.12808756631351e-01 1.08497943265592e-02 -5.58580919295564e-02 +-7.57575757575758e+00 -6.31031975324235e-01 9.88823457851174e-03 -5.91018232424267e-02 +-6.96969696969697e+00 -5.49679544880327e-01 8.85143654582720e-03 -6.24061874092260e-02 +-6.36363636363636e+00 -4.67472253498755e-01 7.53496958159715e-03 -6.60300663448026e-02 +-5.75757575757576e+00 -3.85528468464302e-01 6.46202236434530e-03 -6.92846194614342e-02 +-5.15151515151515e+00 -3.04538396393766e-01 5.71265577627048e-03 -7.19838194092852e-02 +-4.54545454545454e+00 -2.24845144087395e-01 5.31255848122156e-03 -7.40967351982278e-02 +-3.93939393939394e+00 -1.45453744434141e-01 5.01676630444975e-03 -7.60073595802002e-02 +-3.33333333333333e+00 -6.69615651367825e-02 4.98463534862704e-03 -7.75572421388844e-02 +-2.72727272727273e+00 1.13168541325098e-02 4.98047704043843e-03 -7.90185062731812e-02 +-2.12121212121212e+00 8.94993327489349e-02 4.98548224818262e-03 -8.04805233022282e-02 +-1.51515151515152e+00 1.67630103528638e-01 4.99290364208042e-03 -8.20366077525127e-02 +-9.09090909090912e-01 2.45636616020207e-01 5.03397118032574e-03 -8.35006802467317e-02 +-3.03030303030302e-01 3.23545655873530e-01 5.06973423396183e-03 -8.49229558817595e-02 + 3.03030303030302e-01 4.01277267482665e-01 5.12621572525867e-03 -8.63227513526388e-02 + 9.09090909090912e-01 4.78829089195321e-01 5.21100974314385e-03 -8.77003891246918e-02 + 1.51515151515152e+00 5.56388385888612e-01 5.28258600842204e-03 -8.91362744924022e-02 + 2.12121212121212e+00 6.33637380868182e-01 5.39931074064351e-03 -9.04514524679750e-02 + 2.72727272727273e+00 7.10938996891778e-01 5.49259292718578e-03 -9.16928472325579e-02 + 3.33333333333333e+00 7.87985575886664e-01 5.61379412918656e-03 -9.29679880505711e-02 + 3.93939393939394e+00 8.64743026552659e-01 5.76528484584531e-03 -9.41992680880254e-02 + 4.54545454545455e+00 9.41212922845356e-01 5.93412946284522e-03 -9.53050604063924e-02 + 5.15151515151515e+00 1.01695270425338e+00 6.18602678569976e-03 -9.63688091787328e-02 + 5.75757575757576e+00 1.09148560626971e+00 6.55566604475178e-03 -9.72395871684262e-02 + 6.36363636363637e+00 1.16455501975261e+00 7.05766123825350e-03 -9.78997659799843e-02 + 6.96969696969697e+00 1.23405796455084e+00 7.87479271262625e-03 -9.82321767972868e-02 + 7.57575757575757e+00 1.29994773721940e+00 8.90657162382959e-03 -9.80178475916757e-02 + 8.18181818181818e+00 1.36228702181816e+00 9.98296644227831e-03 -9.74419434686680e-02 + 8.78787878787879e+00 1.42103945662573e+00 1.11188382587459e-02 -9.63362622920491e-02 + 9.39393939393939e+00 1.48039635272425e+00 1.22693257980618e-02 -9.52212284264049e-02 + 1.00000000000000e+01 1.53122992978142e+00 1.36687788197850e-02 -9.29517555285143e-02 + 1.06060606060606e+01 1.56232811562748e+00 1.53435164470887e-02 -8.88116210354873e-02 + 1.12121212121212e+01 1.59053254265686e+00 1.67458520630688e-02 -8.50125506597006e-02 + 1.18181818181818e+01 1.61890595494237e+00 1.89903324960865e-02 -8.31397769252660e-02 + 1.24242424242424e+01 1.64183929100654e+00 2.19966686222203e-02 -8.19949607866413e-02 + 1.30303030303030e+01 1.65574499371961e+00 2.56872913518659e-02 -8.08867726863285e-02 + 1.36363636363636e+01 1.65400238028966e+00 3.03311719552390e-02 -7.97002633817427e-02 + 1.42424242424242e+01 1.64216498736661e+00 3.56703071269882e-02 -7.85509294546593e-02 + 1.48484848484848e+01 1.62624182082409e+00 4.14759601734250e-02 -7.78324591852684e-02 + 1.54545454545455e+01 1.60801744814973e+00 4.76050385317153e-02 -7.75921499543514e-02 + 1.60606060606061e+01 1.58857565498397e+00 5.38652797850108e-02 -7.76987859616279e-02 + 1.66666666666667e+01 1.56816577430770e+00 6.02072306287337e-02 -7.82793576244135e-02 + 1.72727272727273e+01 1.54801725657533e+00 6.64895407143407e-02 -7.93305083891007e-02 + 1.78787878787879e+01 1.53071543119534e+00 7.23881448183565e-02 -8.07557073052620e-02 + 1.84848484848485e+01 1.51566705830932e+00 7.80528320830629e-02 -8.28919002973625e-02 + 1.90909090909091e+01 1.50156122983116e+00 8.36252441157385e-02 -8.51938860590456e-02 + 1.96969696969697e+01 1.49017404941297e+00 8.88139410455845e-02 -8.82802840476036e-02 + 2.03030303030303e+01 1.47936873743021e+00 9.38828514563680e-02 -9.18463489871026e-02 + 2.09090909090909e+01 1.47005199886713e+00 9.86963032149694e-02 -9.58695251463193e-02 + 2.15151515151515e+01 1.45859345721841e+00 1.03499721933982e-01 -1.00619557942821e-01 + 2.21212121212121e+01 1.44870108751463e+00 1.07826543700187e-01 -1.05984433915949e-01 + 2.27272727272727e+01 1.43760847019480e+00 1.12296527074530e-01 -1.11735481206051e-01 + 2.33333333333333e+01 1.42449126752566e+00 1.16887928088715e-01 -1.18380817627251e-01 + 2.39393939393939e+01 1.41055472151384e+00 1.21530519948770e-01 -1.25616028956430e-01 + 2.45454545454545e+01 1.39234019476590e+00 1.26527274475410e-01 -1.33836396072869e-01 + 2.51515151515151e+01 1.37483694829752e+00 1.33829365095093e-01 -1.41501451646911e-01 + 2.57575757575758e+01 1.36177535854214e+00 1.47590612901887e-01 -1.46665188164637e-01 + 2.63636363636364e+01 1.34871376276641e+00 1.61351860861859e-01 -1.51828924682364e-01 + 2.69696969696970e+01 1.33565216043628e+00 1.75113108978180e-01 -1.56992661200091e-01 + 2.75757575757576e+01 1.32259055095259e+00 1.88874357254107e-01 -1.62156397717817e-01 + 2.81818181818182e+01 1.30952893364086e+00 2.02635605692991e-01 -1.67320134235544e-01 + 2.87878787878788e+01 1.29646730773908e+00 2.16396854298274e-01 -1.72483870753271e-01 + 2.93939393939394e+01 1.28340567238300e+00 2.30158103073498e-01 -1.77641168367571e-01 + 3.00000000000000e+01 1.27034402658843e+00 2.43919352022305e-01 -1.82794780019097e-01 + 3.30000000000000e+01 1.22400540230883e+00 3.21890259296104e-01 -1.99782674743980e-01 + 3.60000000000000e+01 1.17766719006936e+00 3.99861399240434e-01 -2.16771268837827e-01 + 3.90000000000000e+01 1.13132895281979e+00 4.77832541751668e-01 -2.33760381833711e-01 + 4.20000000000000e+01 1.08482096879316e+00 5.59526252122832e-01 -2.48766284815800e-01 + 4.50000000000000e+01 1.03822835438208e+00 6.43076179242666e-01 -2.62783221155819e-01 + 4.80000000000000e+01 9.91635739954321e-01 7.26626106633912e-01 -2.76800230451418e-01 + 5.10000000000000e+01 9.41296039817132e-01 8.08894118862934e-01 -2.90639477586966e-01 + 5.40000000000000e+01 8.83439337853063e-01 8.88590489972621e-01 -3.04122100059492e-01 + 5.70000000000000e+01 8.25582634525205e-01 9.68286861162596e-01 -3.17604908698251e-01 + 6.00000000000000e+01 7.67678389920998e-01 1.04793508115663e+00 -3.31087214918293e-01 + 6.30000000000000e+01 6.97221767456339e-01 1.11486921165580e+00 -3.44380639387326e-01 + 6.60000000000000e+01 6.26765143889721e-01 1.18180334263568e+00 -3.57674133260949e-01 + 6.90000000000000e+01 5.56308518068671e-01 1.24873747428053e+00 -3.70967699735588e-01 + 7.20000000000000e+01 4.80107840345057e-01 1.30237826183809e+00 -3.83792043470164e-01 + 7.50000000000000e+01 4.00968093304842e-01 1.34921721677283e+00 -3.96376278653273e-01 + 7.80000000000000e+01 3.21828346241827e-01 1.39605617220932e+00 -4.08960519785561e-01 + 8.10000000000000e+01 2.42164264616284e-01 1.43442657136335e+00 -4.20984863358251e-01 + 8.40000000000000e+01 1.61474900503363e-01 1.45623757336564e+00 -4.31914436894016e-01 + 8.70000000000000e+01 8.07855363904363e-02 1.47804857536803e+00 -4.42844090529747e-01 + 9.00000000000000e+01 9.61722716191302e-05 1.49985957740803e+00 -4.53773812023174e-01 + 9.30000000000000e+01 -5.65005746278451e-02 1.47822471623413e+00 -4.56080809530793e-01 + 9.60000000000000e+01 -1.13003238372763e-01 1.45642019631585e+00 -4.58354164706143e-01 + 9.90000000000000e+01 -1.69505902117672e-01 1.43461567639767e+00 -4.60627546421412e-01 + 1.02000000000000e+02 -2.25263593217832e-01 1.39596250238580e+00 -4.59828567672556e-01 + 1.05000000000000e+02 -2.80659239697481e-01 1.34912115890324e+00 -4.57536529347034e-01 + 1.08000000000000e+02 -3.36054886142539e-01 1.30227981600935e+00 -4.55244558724525e-01 + 1.11000000000000e+02 -3.89443535426530e-01 1.24879730842226e+00 -4.52028160520165e-01 + 1.14000000000000e+02 -4.38770264553926e-01 1.18187388992241e+00 -4.46940888713865e-01 + 1.17000000000000e+02 -4.88096992378151e-01 1.11495047200455e+00 -4.41853812671397e-01 + 1.20000000000000e+02 -5.37357207925311e-01 1.04793077386265e+00 -4.36766079039301e-01 + 1.23000000000000e+02 -5.77869657916925e-01 9.68248024229582e-01 -4.31571463161444e-01 + 1.26000000000000e+02 -6.18382105908779e-01 8.88565274719536e-01 -4.26377258651834e-01 + 1.29000000000000e+02 -6.58894552777877e-01 8.08882525307724e-01 -4.21183356372727e-01 + 1.32000000000000e+02 -6.94155135093701e-01 7.26625803103234e-01 -4.18637632637783e-01 + 1.35000000000000e+02 -7.26773508903678e-01 6.43074117533313e-01 -4.17424628772815e-01 + 1.38000000000000e+02 -7.59391882691524e-01 5.59522432227278e-01 -4.16212047914796e-01 + 1.41000000000000e+02 -7.91946333821250e-01 4.77875239924044e-01 -4.18412332150925e-01 + 1.44000000000000e+02 -8.24377857521980e-01 3.99890021226147e-01 -4.27174852297769e-01 + 1.47000000000000e+02 -8.56809364168247e-01 3.21904805119317e-01 -4.35937820825171e-01 + 1.50000000000000e+02 -8.89240859702063e-01 2.43919591299160e-01 -4.44701077001505e-01 + 1.53000000000000e+02 -8.53382648939168e-01 1.80679423503142e-01 -4.46993098346719e-01 + 1.56000000000000e+02 -8.17455194423130e-01 1.17440984225075e-01 -4.49284459359217e-01 + 1.59000000000000e+02 -7.81453512483691e-01 5.42025490160470e-02 -4.51575897006883e-01 + 1.62000000000000e+02 -6.93136503608213e-01 2.63077267253610e-02 -4.57151504098541e-01 + 1.65000000000000e+02 -5.77613754852778e-01 1.68132677293299e-02 -4.64436871794730e-01 + 1.68000000000000e+02 -4.62091006097342e-01 7.31880873329870e-03 -4.71722239491748e-01 + 1.71000000000000e+02 -3.46568256230936e-01 1.00000000000000e-03 -4.28767024611677e-01 + 1.74000000000000e+02 -2.31045504153958e-01 1.00000000000000e-03 -2.85844683074452e-01 + 1.77000000000000e+02 -1.15522752076978e-01 1.00000000000000e-03 -1.42922341537225e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_26.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_26.dat new file mode 100644 index 000000000..5a08310cb --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_26.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF26_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.963015 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.894377 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.212121 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.212121 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.459482 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.170539 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005002 Cd0 ! 2D drag coefficient value at 0-lift. +-0.080172 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.12762286176952e-01 1.00000000000000e-03 1.15592140508072e-01 +-1.74000000000000e+02 2.25524572353904e-01 1.00000000000000e-03 2.31184281016144e-01 +-1.71000000000000e+02 3.38286858530856e-01 1.00000000000000e-03 3.46776421524216e-01 +-1.68000000000000e+02 4.51049142302829e-01 7.92119872891197e-03 3.97989172895214e-01 +-1.65000000000000e+02 5.63811424866131e-01 1.83207914858101e-02 4.16928783626827e-01 +-1.62000000000000e+02 6.76573707429432e-01 2.87203842427082e-02 4.36010246071017e-01 +-1.59000000000000e+02 7.62377952865584e-01 5.71900788384902e-02 4.48087465495939e-01 +-1.56000000000000e+02 7.96503394923109e-01 1.20369009472670e-01 4.46710861658600e-01 +-1.53000000000000e+02 8.30759405523407e-01 1.83547932949273e-01 4.45334257821261e-01 +-1.50000000000000e+02 8.65115689230411e-01 2.46728567674792e-01 4.43956803760593e-01 +-1.47000000000000e+02 8.35485774058555e-01 3.24608019281676e-01 4.35308470490885e-01 +-1.44000000000000e+02 8.05855878433875e-01 4.02487466866225e-01 4.26824976465205e-01 +-1.41000000000000e+02 7.76226012808571e-01 4.80366909892999e-01 4.18487921170909e-01 +-1.38000000000000e+02 7.45820329866800e-01 5.61898249532024e-01 4.16565016694362e-01 +-1.35000000000000e+02 7.15011150137701e-01 6.45328843635900e-01 4.17977939250706e-01 +-1.32000000000000e+02 6.84201970447531e-01 7.28759437275591e-01 4.19390861807050e-01 +-1.29000000000000e+02 6.50553177951074e-01 8.10890231811215e-01 4.22102879768611e-01 +-1.26000000000000e+02 6.11260145626438e-01 8.90437442898439e-01 4.27397083243547e-01 +-1.23000000000000e+02 5.71967115276766e-01 9.69984653812866e-01 4.32691286718484e-01 +-1.20000000000000e+02 5.32674088444743e-01 1.04953186451090e+00 4.37985490193421e-01 +-1.17000000000000e+02 4.84214416201129e-01 1.11640229176566e+00 4.43113419253265e-01 +-1.14000000000000e+02 4.35685048543560e-01 1.18317633323359e+00 4.48240084083270e-01 +-1.11000000000000e+02 3.87155683178314e-01 1.24995037367776e+00 4.53366748913275e-01 +-1.08000000000000e+02 3.34335431661673e-01 1.30327564473767e+00 4.56598629789541e-01 +-1.05000000000000e+02 2.79395048468985e-01 1.34995586808940e+00 4.58894296411338e-01 +-1.02000000000000e+02 2.24454665337145e-01 1.39663609040562e+00 4.61189963033134e-01 +-9.90000000000000e+01 1.69052778966665e-01 1.43512527752531e+00 4.61986664302227e-01 +-9.60000000000000e+01 1.12701265140033e-01 1.45675991869965e+00 4.59698970926914e-01 +-9.30000000000000e+01 5.63497513134149e-02 1.47839455987383e+00 4.57411277551601e-01 +-9.00000000000000e+01 -1.75838536716933e-06 1.49986086183555e+00 4.55085909681123e-01 +-8.70000000000000e+01 -5.63522060935779e-02 1.47821923153443e+00 4.43112936629718e-01 +-8.40000000000000e+01 -1.12702653820132e-01 1.45657760116715e+00 4.31139963578313e-01 +-8.10000000000000e+01 -1.69053101546699e-01 1.43493597079970e+00 4.19166990526908e-01 +-7.80000000000000e+01 -2.24472169118031e-01 1.39672960878880e+00 4.05130080051344e-01 +-7.50000000000000e+01 -2.79414924383586e-01 1.35005196039766e+00 3.90037661842901e-01 +-7.20000000000000e+01 -3.34357679677109e-01 1.30337431112392e+00 3.74945243634458e-01 +-6.90000000000000e+01 -3.87127004402688e-01 1.24989071978259e+00 3.59413585409240e-01 +-6.60000000000000e+01 -4.35648630314201e-01 1.18310575271637e+00 3.43023486666458e-01 +-6.30000000000000e+01 -4.84170259003496e-01 1.11632078448047e+00 3.26633387923676e-01 +-6.00000000000000e+01 -5.32691889050566e-01 1.04953581539896e+00 3.10243289180893e-01 +-5.70000000000000e+01 -5.72006702963289e-01 9.70023290094558e-01 2.94131564378721e-01 +-5.40000000000000e+01 -6.11286651444468e-01 8.90462562317667e-01 2.78020893845192e-01 +-5.10000000000000e+01 -6.50566601604927e-01 8.10901834399547e-01 2.61910223311663e-01 +-4.80000000000000e+01 -6.84190733200534e-01 7.28759772948211e-01 2.46502960763798e-01 +-4.50000000000000e+01 -7.14995543789760e-01 6.45330964184632e-01 2.31446334050736e-01 +-4.20000000000000e+01 -7.45800354399485e-01 5.61902154943629e-01 2.16389707337674e-01 +-3.90000000000000e+01 -7.76215366198295e-01 4.80324433758262e-01 2.01189354075741e-01 +-3.60000000000000e+01 -8.05848682089568e-01 4.02458990920789e-01 1.85700763129963e-01 +-3.30000000000000e+01 -8.35482028778351e-01 3.24593543568045e-01 1.70212172184184e-01 +-3.00000000000000e+01 -8.65116724398655e-01 2.46728574199746e-01 1.54723120371879e-01 +-2.93939393939394e+01 -8.83041875572607e-01 2.35157870658025e-01 1.47612630939968e-01 +-2.87878787878788e+01 -9.01637689932028e-01 2.23578784653086e-01 1.40502141508057e-01 +-2.81818181818182e+01 -9.20666209849465e-01 2.11991041995004e-01 1.33397444974561e-01 +-2.75757575757576e+01 -9.39990144651552e-01 2.00394356403712e-01 1.26273217799821e-01 +-2.69696969696970e+01 -9.59524728765974e-01 1.88880748435041e-01 1.18377903322134e-01 +-2.63636363636364e+01 -9.79214795494066e-01 1.77462111282239e-01 1.10862111481722e-01 +-2.57575757575758e+01 -9.99022894916771e-01 1.66043474129437e-01 1.03457398664801e-01 +-2.51515151515151e+01 -1.01892271029758e+00 1.54624836976636e-01 9.61126933248081e-02 +-2.45454545454545e+01 -1.03889520716749e+00 1.43206199823834e-01 8.88040719181408e-02 +-2.39393939393939e+01 -1.05892627740360e+00 1.31787562671033e-01 8.15188361472990e-02 +-2.33333333333333e+01 -1.07900524233656e+00 1.20368925518231e-01 7.42496203854546e-02 +-2.27272727272727e+01 -1.09912387039430e+00 1.08950288365429e-01 6.69918583187306e-02 +-2.21212121212121e+01 -1.11927571412042e+00 9.75316512126276e-02 5.97425684838841e-02 +-2.15151515151515e+01 -1.13945565165625e+00 8.61130140598260e-02 5.24997215886837e-02 +-2.09090909090909e+01 -1.15965956271685e+00 7.46943769070244e-02 4.52618885054073e-02 +-2.03030303030303e+01 -1.17988409518106e+00 6.32757397542227e-02 3.80280336724364e-02 +-1.96969696969697e+01 -1.20761566487742e+00 5.31249410936285e-02 3.43775264757222e-03 +-1.90909090909091e+01 -1.22191471800189e+00 4.83953823299091e-02 -1.58322258521928e-02 +-1.84848484848485e+01 -1.23137348395875e+00 4.55856252209574e-02 -1.81685556944139e-02 +-1.78787878787879e+01 -1.24123595912953e+00 4.26164028684985e-02 -2.06572929353526e-02 +-1.72727272727273e+01 -1.24702596707318e+00 3.98301382701107e-02 -2.27697154748492e-02 +-1.66666666666667e+01 -1.25284778132126e+00 3.74823659483528e-02 -2.41042978471066e-02 +-1.60606060606061e+01 -1.25779573981491e+00 3.47685160982786e-02 -2.54018108787327e-02 +-1.54545454545455e+01 -1.25589385410755e+00 3.21434723642342e-02 -2.64135000565484e-02 +-1.48484848484848e+01 -1.24586270892406e+00 3.01141127344471e-02 -2.70804348684320e-02 +-1.42424242424242e+01 -1.23113137865585e+00 2.82936870293523e-02 -2.74762188384712e-02 +-1.36363636363636e+01 -1.21275563447758e+00 2.65713578599712e-02 -2.79432429074871e-02 +-1.30303030303030e+01 -1.18961323821493e+00 2.49918723311453e-02 -2.83457853444812e-02 +-1.24242424242424e+01 -1.16324752020927e+00 2.34233148354734e-02 -2.88896525487482e-02 +-1.18181818181818e+01 -1.13030392283960e+00 2.17175181938398e-02 -3.06610597161019e-02 +-1.12121212121212e+01 -1.08252857109361e+00 1.97720987674956e-02 -3.42573810024318e-02 +-1.06060606060606e+01 -1.01083108374355e+00 1.76245828901335e-02 -3.95261908104938e-02 +-1.00000000000000e+01 -9.34491612399659e-01 1.57049739817079e-02 -4.40692810910897e-02 +-9.39393939393939e+00 -8.57444386069199e-01 1.39146540164326e-02 -4.87428146565005e-02 +-8.78787878787879e+00 -7.77056340313991e-01 1.21039120609659e-02 -5.41634229784632e-02 +-8.18181818181818e+00 -6.97641704768120e-01 1.09035825254010e-02 -5.79484643600147e-02 +-7.57575757575758e+00 -6.18648843798995e-01 9.94078752601834e-03 -6.10413192848593e-02 +-6.96969696969697e+00 -5.37855895934079e-01 8.93334498847536e-03 -6.41917360430067e-02 +-6.36363636363636e+00 -4.56012903856413e-01 7.84389364093056e-03 -6.77225858646413e-02 +-5.75757575757576e+00 -3.74391934369590e-01 6.66935232846997e-03 -7.09064484755505e-02 +-5.15151515151515e+00 -2.93671170140120e-01 5.80325833492567e-03 -7.35608983296187e-02 +-4.54545454545454e+00 -2.14198280614170e-01 5.38499407385564e-03 -7.56601773423780e-02 +-3.93939393939394e+00 -1.34964948723211e-01 5.07363540392791e-03 -7.75624743095963e-02 +-3.33333333333333e+00 -5.66153096669881e-02 5.02088257810785e-03 -7.91101104836886e-02 +-2.72727272727273e+00 2.15525694944544e-02 4.99434615849372e-03 -8.05757461339111e-02 +-2.12121212121212e+00 9.96045090367279e-02 4.98919274906620e-03 -8.20242156034116e-02 +-1.51515151515152e+00 1.77591109502135e-01 4.99496776694082e-03 -8.35565271090211e-02 +-9.09090909090912e-01 2.55435417928352e-01 5.03634677341763e-03 -8.49979729028244e-02 +-3.03030303030302e-01 3.33194587032246e-01 5.07194184445094e-03 -8.63935417365672e-02 + 3.03030303030302e-01 4.10759696928075e-01 5.12982117200570e-03 -8.77689843220170e-02 + 9.09090909090912e-01 4.88142639935968e-01 5.21551358165003e-03 -8.91242860943733e-02 + 1.51515151515152e+00 5.65547689954948e-01 5.28713852887763e-03 -9.05385541950359e-02 + 2.12121212121212e+00 6.42623725364584e-01 5.40468926048184e-03 -9.18329287923164e-02 + 2.72727272727273e+00 7.19746894945224e-01 5.50025118584059e-03 -9.30458631689180e-02 + 3.33333333333333e+00 7.96595478271709e-01 5.62405613636015e-03 -9.42938531157364e-02 + 3.93939393939394e+00 8.73127129639124e-01 5.77987474960735e-03 -9.54925797899767e-02 + 4.54545454545455e+00 9.49327397250222e-01 5.95515191571765e-03 -9.65617689409079e-02 + 5.15151515151515e+00 1.02462390335579e+00 6.22345004579735e-03 -9.75587893767819e-02 + 5.75757575757576e+00 1.09852884423387e+00 6.61728972174035e-03 -9.83429928598799e-02 + 6.36363636363637e+00 1.17049176769968e+00 7.16669458404765e-03 -9.88499820737716e-02 + 6.96969696969697e+00 1.23856517761165e+00 8.03391595907830e-03 -9.89795437971402e-02 + 7.57575757575757e+00 1.30269444307285e+00 9.20673178396630e-03 -9.85231412718272e-02 + 8.18181818181818e+00 1.36305499189149e+00 1.05038524336110e-02 -9.76717025644878e-02 + 8.78787878787879e+00 1.41967373651676e+00 1.18464443922000e-02 -9.62994857032447e-02 + 9.39393939393939e+00 1.47627257299270e+00 1.31779231860319e-02 -9.49791818957183e-02 + 1.00000000000000e+01 1.51798824474045e+00 1.47892696844747e-02 -9.25810526987313e-02 + 1.06060606060606e+01 1.54615696033648e+00 1.67065147482784e-02 -8.83880156496757e-02 + 1.12121212121212e+01 1.57106634145670e+00 1.83595156570993e-02 -8.45530329083508e-02 + 1.18181818181818e+01 1.59413500995828e+00 2.09263590879435e-02 -8.26779171061119e-02 + 1.24242424242424e+01 1.61105378451395e+00 2.42919025527506e-02 -8.15830501844008e-02 + 1.30303030303030e+01 1.61307338801129e+00 2.86781232301240e-02 -8.05830320492623e-02 + 1.36363636363636e+01 1.61112501454921e+00 3.34465017216701e-02 -7.94575806516785e-02 + 1.42424242424242e+01 1.60136141716343e+00 3.86255767291426e-02 -7.83349117934877e-02 + 1.48484848484848e+01 1.58871127950206e+00 4.39806714530726e-02 -7.76350480506704e-02 + 1.54545454545455e+01 1.57447942136026e+00 4.95887527172415e-02 -7.74168026246731e-02 + 1.60606060606061e+01 1.55860277200630e+00 5.53092194822730e-02 -7.75506160999156e-02 + 1.66666666666667e+01 1.54170172912845e+00 6.10859723105774e-02 -7.80620566365260e-02 + 1.72727272727273e+01 1.52510916286069e+00 6.69313418080884e-02 -7.89061007648473e-02 + 1.78787878787879e+01 1.51006020786140e+00 7.27863876442633e-02 -8.03242102601578e-02 + 1.84848484848485e+01 1.49593890345371e+00 7.83989529666090e-02 -8.24646118779360e-02 + 1.90909090909091e+01 1.48155105839828e+00 8.39266980157675e-02 -8.50711085144629e-02 + 1.96969696969697e+01 1.46809611815722e+00 8.90776361279475e-02 -8.82712883660989e-02 + 2.03030303030303e+01 1.45424642894010e+00 9.41191795159176e-02 -9.19336939633975e-02 + 2.09090909090909e+01 1.44064827960941e+00 9.89120202960169e-02 -9.60731058328342e-02 + 2.15151515151515e+01 1.42499249533699e+00 1.04051562093546e-01 -1.01023109341774e-01 + 2.21212121212121e+01 1.41097163250115e+00 1.09212900107685e-01 -1.06646441338546e-01 + 2.27272727272727e+01 1.39557114473554e+00 1.14310750284442e-01 -1.12725917009255e-01 + 2.33333333333333e+01 1.37866611645634e+00 1.19359234634780e-01 -1.19616463257552e-01 + 2.39393939393939e+01 1.36119693166623e+00 1.24305292331260e-01 -1.27189331019689e-01 + 2.45454545454545e+01 1.34560640945646e+00 1.29480467214066e-01 -1.35161112693784e-01 + 2.51515151515151e+01 1.33080894431587e+00 1.36788733967929e-01 -1.42662210824968e-01 + 2.57575757575758e+01 1.31894272196118e+00 1.50531183501081e-01 -1.47787702046404e-01 + 2.63636363636364e+01 1.30707651019804e+00 1.64273632763913e-01 -1.52913193267840e-01 + 2.69696969696970e+01 1.29521030996603e+00 1.78016081750835e-01 -1.58038684489275e-01 + 2.75757575757576e+01 1.28334412231923e+00 1.91758530456100e-01 -1.63164175710711e-01 + 2.81818181818182e+01 1.27147794844426e+00 2.05500978873804e-01 -1.68289666932146e-01 + 2.87878787878788e+01 1.25961178968172e+00 2.19243426997872e-01 -1.73415158153582e-01 + 2.93939393939394e+01 1.24774564755209e+00 2.32985874822060e-01 -1.78540649375018e-01 + 3.00000000000000e+01 1.23587952378685e+00 2.46728322339944e-01 -1.83666140596453e-01 + 3.30000000000000e+01 1.19354575600261e+00 3.24593543568045e-01 -2.00693000086435e-01 + 3.60000000000000e+01 1.15121240046796e+00 4.02458990920789e-01 -2.17719664445307e-01 + 3.90000000000000e+01 1.10887908892692e+00 4.80324433758262e-01 -2.34746328804179e-01 + 4.20000000000000e+01 1.06542907372557e+00 5.61902154943630e-01 -2.49807730317816e-01 + 4.50000000000000e+01 1.02142220546444e+00 6.45330964184632e-01 -2.63889175142231e-01 + 4.80000000000000e+01 9.77415337232660e-01 7.28759772948211e-01 -2.77970619966647e-01 + 5.10000000000000e+01 9.29380865911218e-01 8.10901834399547e-01 -2.91869431564403e-01 + 5.40000000000000e+01 8.73266650468661e-01 8.90462562317667e-01 -3.05401863980889e-01 + 5.70000000000000e+01 8.17152437425055e-01 9.70023290094558e-01 -3.18934296397374e-01 + 6.00000000000000e+01 7.60988416630751e-01 1.04953581539896e+00 -3.32465905716762e-01 + 6.30000000000000e+01 6.91671803653267e-01 1.11632078448047e+00 -3.45780180693575e-01 + 6.60000000000000e+01 6.22355192614168e-01 1.18310575271637e+00 -3.59094455670389e-01 + 6.90000000000000e+01 5.53038585540688e-01 1.24989071978259e+00 -3.72408730647202e-01 + 7.20000000000000e+01 4.77653835063235e-01 1.30337431112392e+00 -3.85234445147891e-01 + 7.50000000000000e+01 3.99164182629557e-01 1.35005196039766e+00 -3.97810176909720e-01 + 7.80000000000000e+01 3.20674530235984e-01 1.39672960878880e+00 -4.10385908671549e-01 + 8.10000000000000e+01 2.41513866357799e-01 1.43493597079970e+00 -4.22394172626061e-01 + 8.40000000000000e+01 1.61041107925321e-01 1.45657760116715e+00 -4.33292811318683e-01 + 8.70000000000000e+01 8.05683494928513e-02 1.47821923153443e+00 -4.44191450011304e-01 + 9.00000000000000e+01 9.55910707449333e-05 1.49986086183555e+00 -4.55090088703925e-01 + 9.30000000000000e+01 -5.63497513134149e-02 1.47839455987383e+00 -4.57411277551601e-01 + 9.60000000000000e+01 -1.12701265140034e-01 1.45675991869965e+00 -4.59698970926914e-01 + 9.90000000000000e+01 -1.69052778966665e-01 1.43512527752531e+00 -4.61986664302227e-01 + 1.02000000000000e+02 -2.24454665337145e-01 1.39663609040562e+00 -4.61189963033134e-01 + 1.05000000000000e+02 -2.79395048468985e-01 1.34995586808940e+00 -4.58894296411338e-01 + 1.08000000000000e+02 -3.34335431661673e-01 1.30327564473767e+00 -4.56598629789541e-01 + 1.11000000000000e+02 -3.87155683178314e-01 1.24995037367776e+00 -4.53366748913275e-01 + 1.14000000000000e+02 -4.35685048543560e-01 1.18317633323359e+00 -4.48240084083270e-01 + 1.17000000000000e+02 -4.84214416201129e-01 1.11640229176566e+00 -4.43113419253265e-01 + 1.20000000000000e+02 -5.32674088444743e-01 1.04953186451090e+00 -4.37985490193421e-01 + 1.23000000000000e+02 -5.71967115276767e-01 9.69984653812866e-01 -4.32691286718484e-01 + 1.26000000000000e+02 -6.11260145626438e-01 8.90437442898439e-01 -4.27397083243547e-01 + 1.29000000000000e+02 -6.50553177951074e-01 8.10890231811215e-01 -4.22102879768610e-01 + 1.32000000000000e+02 -6.84201970447532e-01 7.28759437275590e-01 -4.19390861807050e-01 + 1.35000000000000e+02 -7.15011150137701e-01 6.45328843635900e-01 -4.17977939250706e-01 + 1.38000000000000e+02 -7.45820329866800e-01 5.61898249532023e-01 -4.16565016694362e-01 + 1.41000000000000e+02 -7.76226012808571e-01 4.80366909892999e-01 -4.18487921170909e-01 + 1.44000000000000e+02 -8.05855878433875e-01 4.02487466866225e-01 -4.26824976465205e-01 + 1.47000000000000e+02 -8.35485774058555e-01 3.24608019281676e-01 -4.35308470490885e-01 + 1.50000000000000e+02 -8.65115689230411e-01 2.46728567674791e-01 -4.43956803760593e-01 + 1.53000000000000e+02 -8.30759405523407e-01 1.83547932949273e-01 -4.46207843163076e-01 + 1.56000000000000e+02 -7.96503394923109e-01 1.20369009472670e-01 -4.48458134495300e-01 + 1.59000000000000e+02 -7.62377952865584e-01 5.71900788384901e-02 -4.50708425827524e-01 + 1.62000000000000e+02 -6.76573707429432e-01 2.87203842427082e-02 -4.56453015065385e-01 + 1.65000000000000e+02 -5.63811424866131e-01 1.83207914858101e-02 -4.64052277284869e-01 + 1.68000000000000e+02 -4.51049142302829e-01 7.92119872891197e-03 -4.71879652108854e-01 + 1.71000000000000e+02 -3.38286858530856e-01 1.00000000000000e-03 -4.29233184252753e-01 + 1.74000000000000e+02 -2.25524572353904e-01 1.00000000000000e-03 -2.86155456168502e-01 + 1.77000000000000e+02 -1.12762286176952e-01 1.00000000000000e-03 -1.43077728084250e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_27.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_27.dat new file mode 100644 index 000000000..1f5dedf9e --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_27.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF27_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +5.746014 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-3.238823 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.212121 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.212121 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.448404 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.102173 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005223 Cd0 ! 2D drag coefficient value at 0-lift. +-0.087108 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.10381051124531e-01 1.00000000000000e-03 1.16041276835888e-01 +-1.74000000000000e+02 2.20762102249064e-01 1.00000000000000e-03 2.32082553671776e-01 +-1.71000000000000e+02 3.31143153373595e-01 1.00000000000000e-03 3.48123830507664e-01 +-1.68000000000000e+02 4.41524201964485e-01 9.28964569579201e-03 3.99182361066371e-01 +-1.65000000000000e+02 5.51905249282042e-01 2.17454272318848e-02 4.17886775101839e-01 +-1.62000000000000e+02 6.62286296599598e-01 3.42012087679775e-02 4.37117162756971e-01 +-1.59000000000000e+02 7.45704320061756e-01 6.39827401989939e-02 4.49248279091115e-01 +-1.56000000000000e+02 7.77435553934518e-01 1.27043748596305e-01 4.47743040806968e-01 +-1.53000000000000e+02 8.09299385215334e-01 1.90104749724820e-01 4.46237802522821e-01 +-1.50000000000000e+02 8.41265765918926e-01 2.53167445980575e-01 4.44731785017469e-01 +-1.47000000000000e+02 8.14393557928232e-01 3.30792095976451e-01 4.36562079202687e-01 +-1.44000000000000e+02 7.87521369788452e-01 4.08416741887490e-01 4.29003582743569e-01 +-1.41000000000000e+02 7.60649212114200e-01 4.86041383169933e-01 4.21988068164658e-01 +-1.38000000000000e+02 7.32366651622595e-01 5.67301901363781e-01 4.20909643114948e-01 +-1.35000000000000e+02 7.03350563286718e-01 6.50453342629805e-01 4.22918938374744e-01 +-1.32000000000000e+02 6.74334474990374e-01 7.33604783424432e-01 4.24928233634541e-01 +-1.29000000000000e+02 6.42283938717764e-01 8.15447564774730e-01 4.28134145232959e-01 +-1.26000000000000e+02 6.04201892724816e-01 8.94689151170829e-01 4.33718546788505e-01 +-1.23000000000000e+02 5.66119848737520e-01 9.73930737391446e-01 4.39302948344051e-01 +-1.20000000000000e+02 5.28037808322532e-01 1.05317232339230e+00 4.44887349899597e-01 +-1.17000000000000e+02 4.80371820354459e-01 1.11970695241265e+00 4.50109251780949e-01 +-1.14000000000000e+02 4.32632964127207e-01 1.18614496621706e+00 4.55328397478168e-01 +-1.11000000000000e+02 3.84894110227896e-01 1.25258297898181e+00 4.60547543175387e-01 +-1.08000000000000e+02 3.32636446127559e-01 1.30555255935390e+00 4.63788459735020e-01 +-1.05000000000000e+02 2.78146032875319e-01 1.35186737650840e+00 4.66051931708656e-01 +-1.02000000000000e+02 2.23655619684873e-01 1.39818219261129e+00 4.68315403682292e-01 +-9.90000000000000e+01 1.68605354225697e-01 1.43629765643747e+00 4.69058243261465e-01 +-9.60000000000000e+01 1.12403090235223e-01 1.45754146045724e+00 4.66672104305456e-01 +-9.30000000000000e+01 5.62008262447612e-02 1.47878526447684e+00 4.64285965349447e-01 +-9.00000000000000e+01 -1.43162831998532e-06 1.49986376475557e+00 4.61862902261039e-01 +-8.70000000000000e+01 -5.62021179558914e-02 1.47861165020370e+00 4.49984385304651e-01 +-8.40000000000000e+01 -1.12402804302091e-01 1.45735953558462e+00 4.38105868348263e-01 +-8.10000000000000e+01 -1.68603490648304e-01 1.43610742096539e+00 4.26227351391875e-01 +-7.80000000000000e+01 -2.23674347762949e-01 1.39827508517967e+00 4.12237454796919e-01 +-7.50000000000000e+01 -2.78167404740997e-01 1.35196354157563e+00 3.97167788287687e-01 +-7.20000000000000e+01 -3.32660461747448e-01 1.30565199707528e+00 3.82098121778455e-01 +-6.90000000000000e+01 -3.84864445078084e-01 1.25252406237688e+00 3.66560761725125e-01 +-6.60000000000000e+01 -4.32594719437814e-01 1.18607433236704e+00 3.50109352239310e-01 +-6.30000000000000e+01 -4.80324996618490e-01 1.11962460116935e+00 3.33657942753495e-01 +-6.00000000000000e+01 -5.28055275178038e-01 1.05317486911290e+00 3.17206533267680e-01 +-5.70000000000000e+01 -5.66160536705309e-01 9.73968511130190e-01 3.00956418018259e-01 +-5.40000000000000e+01 -6.04229349020616e-01 8.94713840578351e-01 2.84707065118221e-01 +-5.10000000000000e+01 -6.42298163041298e-01 8.15459169883088e-01 2.68457712218182e-01 +-4.80000000000000e+01 -6.74322152719743e-01 7.33605295123671e-01 2.52878160606841e-01 +-4.50000000000000e+01 -7.03332909221204e-01 6.50455764917226e-01 2.37632492515164e-01 +-4.20000000000000e+01 -7.32343665743482e-01 5.67306234225940e-01 2.22386824423487e-01 +-3.90000000000000e+01 -7.60643451702852e-01 4.85999570616562e-01 2.06771509516446e-01 +-3.60000000000000e+01 -7.87517445472007e-01 4.08388698489404e-01 1.90414883120759e-01 +-3.30000000000000e+01 -8.14391470517226e-01 3.30777821776814e-01 1.74058256725072e-01 +-3.00000000000000e+01 -8.41266000270460e-01 2.53167423857855e-01 1.57701086662832e-01 +-2.93939393939394e+01 -8.51344793761717e-01 2.41655610582020e-01 1.49699917185684e-01 +-2.87878787878788e+01 -8.62104671671794e-01 2.30135284590396e-01 1.41698747708537e-01 +-2.81818181818182e+01 -8.73303978821298e-01 2.18606167432501e-01 1.33719057786995e-01 +-2.75757575757576e+01 -8.84803291218418e-01 2.07067968379849e-01 1.26055751509052e-01 +-2.69696969696970e+01 -8.96516526144127e-01 1.95614137867987e-01 1.16890150774227e-01 +-2.63636363636364e+01 -9.08387659681035e-01 1.84256753894914e-01 1.08477381016459e-01 +-2.57575757575758e+01 -9.20378659987067e-01 1.72899369921841e-01 1.00177416305691e-01 +-2.51515151515151e+01 -9.32462801397871e-01 1.61541985948768e-01 9.19383915099707e-02 +-2.45454545454545e+01 -9.44620753673553e-01 1.50184601975695e-01 8.37360113449543e-02 +-2.39393939393939e+01 -9.56838189469334e-01 1.38827218002622e-01 7.55573801981188e-02 +-2.33333333333333e+01 -9.69104264183248e-01 1.27469834029549e-01 6.73950179903780e-02 +-2.27272727272727e+01 -9.81410618335298e-01 1.16112450056476e-01 5.92442874532785e-02 +-2.21212121212121e+01 -9.93750704284004e-01 1.04755066083403e-01 5.11021607955171e-02 +-2.15151515151515e+01 -1.00611932058366e+00 9.33976821103304e-02 4.29665771923015e-02 +-2.09090909090909e+01 -1.01851228292549e+00 8.20402981372575e-02 3.48360853091241e-02 +-2.03030303030303e+01 -1.03092618710070e+00 7.06829141641845e-02 2.67096334930861e-02 +-1.96969696969697e+01 -1.05279742730783e+00 6.09674732210374e-02 -2.63287413320726e-03 +-1.90909090909091e+01 -1.06794644360380e+00 5.60594079558306e-02 -1.77825764436920e-02 +-1.84848484848485e+01 -1.08619665260457e+00 5.19357000347968e-02 -2.18888820796463e-02 +-1.78787878787879e+01 -1.11399552320007e+00 4.68975810144697e-02 -2.71136710661961e-02 +-1.72727272727273e+01 -1.14117781176882e+00 4.19639573096705e-02 -3.19284828483238e-02 +-1.66666666666667e+01 -1.16412409105770e+00 3.79354783686350e-02 -3.55018045166318e-02 +-1.60606060606061e+01 -1.18127828471559e+00 3.41888647868260e-02 -3.84416018915293e-02 +-1.54545454545455e+01 -1.18832605638273e+00 3.08452816282225e-02 -4.05768771754785e-02 +-1.48484848484848e+01 -1.18523818818325e+00 2.84898292528993e-02 -4.19147005183867e-02 +-1.42424242424242e+01 -1.17551252563821e+00 2.65232785203023e-02 -4.26985037493691e-02 +-1.36363636363636e+01 -1.15954360487350e+00 2.47379836584989e-02 -4.34118463326268e-02 +-1.30303030303030e+01 -1.13673427377681e+00 2.31494739639343e-02 -4.39829354579528e-02 +-1.24242424242424e+01 -1.10916998179171e+00 2.16010672678837e-02 -4.46393174212617e-02 +-1.18181818181818e+01 -1.07312444677568e+00 1.99827689747047e-02 -4.64162105734561e-02 +-1.12121212121212e+01 -1.02105111947364e+00 1.81845152850035e-02 -4.99576222520499e-02 +-1.06060606060606e+01 -9.47561294825957e-01 1.63101616110296e-02 -5.45245638857324e-02 +-1.00000000000000e+01 -8.72625832473579e-01 1.47807389005216e-02 -5.77247053889921e-02 +-9.39393939393939e+00 -7.98516708264177e-01 1.34080389150318e-02 -6.08617313715767e-02 +-8.78787878787879e+00 -7.21810027981078e-01 1.19161208211703e-02 -6.49259488626324e-02 +-8.18181818181818e+00 -6.44835577787486e-01 1.08149415086819e-02 -6.79909325804423e-02 +-7.57575757575758e+00 -5.67518908545878e-01 9.88866039785909e-03 -7.05610236357801e-02 +-6.96969696969697e+00 -4.88259040418564e-01 8.95494674471531e-03 -7.31870568009628e-02 +-6.36363636363636e+00 -4.07853369375089e-01 8.10560780573684e-03 -7.62132292227694e-02 +-5.75757575757576e+00 -3.27525291375187e-01 7.03411094673450e-03 -7.90120720646207e-02 +-5.15151515151515e+00 -2.47807343008973e-01 6.20081195463872e-03 -8.14075825504480e-02 +-4.54545454545454e+00 -1.69013834885520e-01 5.73423767247779e-03 -8.34185975770790e-02 +-3.93939393939394e+00 -9.02328575820302e-02 5.38253380171758e-03 -8.52868236342689e-02 +-3.33333333333333e+00 -1.21552306242337e-02 5.24191809496837e-03 -8.68705077180308e-02 +-2.72727272727273e+00 6.57921422638616e-02 5.12081385372584e-03 -8.83950021762932e-02 +-2.12121212121212e+00 1.43491407569329e-01 5.07175064477059e-03 -8.98318376364227e-02 +-1.51515151515152e+00 2.21057425967149e-01 5.07254189431993e-03 -9.12948259958143e-02 +-9.09090909090912e-01 2.98440335692270e-01 5.11226409619415e-03 -9.26812828739440e-02 +-3.03030303030302e-01 3.75753099554174e-01 5.14905983171105e-03 -9.40077051534541e-02 + 3.03030303030302e-01 4.52823476228958e-01 5.21326420901989e-03 -9.53170083099712e-02 + 9.09090909090912e-01 5.29710251923523e-01 5.30213008821404e-03 -9.66091783841103e-02 + 1.51515151515152e+00 6.06631459772926e-01 5.37823609490530e-03 -9.79511063013953e-02 + 2.12121212121212e+00 6.83192261688409e-01 5.49804819221861e-03 -9.91940884475693e-02 + 2.72727272727273e+00 7.59719484917480e-01 5.60818446760753e-03 -1.00326630341709e-01 + 3.33333333333333e+00 8.35877229954890e-01 5.74980022588771e-03 -1.01478294174507e-01 + 3.93939393939394e+00 9.11620439687494e-01 5.92709855135066e-03 -1.02558406173776e-01 + 4.54545454545455e+00 9.86826098105143e-01 6.13479560782541e-03 -1.03493849783136e-01 + 5.15151515151515e+00 1.06044668364020e+00 6.47207248939306e-03 -1.04234472300674e-01 + 5.75757575757576e+00 1.13197217401375e+00 6.95962595111516e-03 -1.04685627343830e-01 + 6.36363636363637e+00 1.19967008385224e+00 7.68731296907946e-03 -1.04592852456255e-01 + 6.96969696969697e+00 1.26237252433414e+00 8.72413000958224e-03 -1.03937271720583e-01 + 7.57575757575757e+00 1.32014242721859e+00 1.00163710077684e-02 -1.02578912399321e-01 + 8.18181818181818e+00 1.37341414253528e+00 1.13605533172376e-02 -1.00691834393862e-01 + 8.78787878787879e+00 1.42239978386925e+00 1.28231348386754e-02 -9.83555445996783e-02 + 9.39393939393939e+00 1.47451028311417e+00 1.43128622622103e-02 -9.62783164943339e-02 + 1.00000000000000e+01 1.50861840984454e+00 1.60735106314446e-02 -9.35288579185826e-02 + 1.06060606060606e+01 1.53502566774134e+00 1.81393539142332e-02 -8.94428679243601e-02 + 1.12121212121212e+01 1.55778244431364e+00 2.00579867404737e-02 -8.56925437846096e-02 + 1.18181818181818e+01 1.57653014120583e+00 2.28085311334494e-02 -8.36548467446615e-02 + 1.24242424242424e+01 1.58817018601872e+00 2.63309093168745e-02 -8.23583677484056e-02 + 1.30303030303030e+01 1.57879866093725e+00 3.12850998343492e-02 -8.10541556226807e-02 + 1.36363636363636e+01 1.57698733019551e+00 3.59899951859092e-02 -7.98388069875862e-02 + 1.42424242424242e+01 1.57039223520950e+00 4.09450822179521e-02 -7.86203383192099e-02 + 1.48484848484848e+01 1.56214591825226e+00 4.57527572492915e-02 -7.78084591984725e-02 + 1.54545454545455e+01 1.55230277734431e+00 5.08185060743282e-02 -7.75134828011016e-02 + 1.60606060606061e+01 1.53980277454308e+00 5.60603678983116e-02 -7.75773179671169e-02 + 1.66666666666667e+01 1.52585627959219e+00 6.13926623516483e-02 -7.79887300906002e-02 + 1.72727272727273e+01 1.51203279773266e+00 6.68967015196456e-02 -7.86463318377633e-02 + 1.78787878787879e+01 1.49845934544653e+00 7.26638451873208e-02 -8.00311773007297e-02 + 1.84848484848485e+01 1.48460639271839e+00 7.82221528171530e-02 -8.21367883837934e-02 + 1.90909090909091e+01 1.46952646213453e+00 8.37162209486962e-02 -8.50011501993344e-02 + 1.96969696969697e+01 1.45384118673932e+00 8.88821504908669e-02 -8.83419939252456e-02 + 2.03030303030303e+01 1.43679723099613e+00 9.39668986571488e-02 -9.23460380066794e-02 + 2.09090909090909e+01 1.41850839348480e+00 9.88593544441830e-02 -9.69493089152755e-02 + 2.15151515151515e+01 1.39792377372645e+00 1.04321934992000e-01 -1.02503692670998e-01 + 2.21212121212121e+01 1.38000091860197e+00 1.10286392204778e-01 -1.08911024419604e-01 + 2.27272727272727e+01 1.35982348192645e+00 1.16041821130711e-01 -1.16038200727548e-01 + 2.33333333333333e+01 1.33763483052370e+00 1.21900785815267e-01 -1.24128109914574e-01 + 2.39393939393939e+01 1.31388013846735e+00 1.27986055932280e-01 -1.33175245676618e-01 + 2.45454545454545e+01 1.29995334252762e+00 1.34936014829041e-01 -1.40666646272059e-01 + 2.51515151515151e+01 1.28742346793486e+00 1.43601667522656e-01 -1.47580158724305e-01 + 2.57575757575758e+01 1.27672151684747e+00 1.57297356407635e-01 -1.52639032769620e-01 + 2.63636363636364e+01 1.26601957651621e+00 1.70993045018095e-01 -1.57697906814935e-01 + 2.69696969696970e+01 1.25531764789525e+00 1.84688733348356e-01 -1.62756780860250e-01 + 2.75757575757576e+01 1.24461573205506e+00 1.98384421392586e-01 -1.67815654905566e-01 + 2.81818181818182e+01 1.23391383020069e+00 2.12080109144784e-01 -1.72874528950881e-01 + 2.87878787878788e+01 1.22321194369359e+00 2.25775796598785e-01 -1.77933402996196e-01 + 2.93939393939394e+01 1.21251007407785e+00 2.39471483748245e-01 -1.82992277041511e-01 + 3.00000000000000e+01 1.20180822311186e+00 2.53167170586642e-01 -1.88051151086826e-01 + 3.30000000000000e+01 1.16341638650781e+00 3.30777821776815e-01 -2.05320424364792e-01 + 3.60000000000000e+01 1.12502492000960e+00 4.08388698489404e-01 -2.22589515891756e-01 + 3.90000000000000e+01 1.08663349818860e+00 4.85999570616562e-01 -2.39858607418721e-01 + 4.20000000000000e+01 1.04620523398024e+00 5.67306234225940e-01 -2.55181834989218e-01 + 4.50000000000000e+01 1.00476129933499e+00 6.50455764917226e-01 -2.69534778912885e-01 + 4.80000000000000e+01 9.63317364719549e-01 7.33605295123671e-01 -2.83887722836552e-01 + 5.10000000000000e+01 9.17568810078066e-01 8.15459169883089e-01 -2.98034862779250e-01 + 5.40000000000000e+01 8.63184789679484e-01 8.94713840578351e-01 -3.11769140859792e-01 + 5.70000000000000e+01 8.08800771717127e-01 9.73968511130190e-01 -3.25503418940334e-01 + 6.00000000000000e+01 7.54364683455067e-01 1.05317486911290e+00 -3.39236478505739e-01 + 6.30000000000000e+01 6.86178571690353e-01 1.11962460116935e+00 -3.52647795731386e-01 + 6.60000000000000e+01 6.17992461894145e-01 1.18607433236704e+00 -3.66059112957032e-01 + 6.90000000000000e+01 5.49806356125177e-01 1.25252406237688e+00 -3.79470430182678e-01 + 7.20000000000000e+01 4.75229236390703e-01 1.30565199707528e+00 -3.92323967414762e-01 + 7.50000000000000e+01 3.97382010818501e-01 1.35196354157563e+00 -4.04892104215813e-01 + 7.80000000000000e+01 3.19534785287027e-01 1.39827508517967e+00 -4.17460241016864e-01 + 8.10000000000000e+01 2.40871554274105e-01 1.43610742096539e+00 -4.29433849248443e-01 + 8.40000000000000e+01 1.60612707771278e-01 1.45735953558462e+00 -4.40244917665258e-01 + 8.70000000000000e+01 8.03538612684614e-02 1.47861165020370e+00 -4.51055986082073e-01 + 9.00000000000000e+01 9.50147761683111e-05 1.49986376475557e+00 -4.61867054498888e-01 + 9.30000000000000e+01 -5.62008262447612e-02 1.47878526447684e+00 -4.64285965349447e-01 + 9.60000000000000e+01 -1.12403090235223e-01 1.45754146045724e+00 -4.66672104305456e-01 + 9.90000000000000e+01 -1.68605354225697e-01 1.43629765643747e+00 -4.69058243261465e-01 + 1.02000000000000e+02 -2.23655619684873e-01 1.39818219261129e+00 -4.68315403682292e-01 + 1.05000000000000e+02 -2.78146032875320e-01 1.35186737650840e+00 -4.66051931708655e-01 + 1.08000000000000e+02 -3.32636446127559e-01 1.30555255935390e+00 -4.63788459735020e-01 + 1.11000000000000e+02 -3.84894110227896e-01 1.25258297898181e+00 -4.60547543175387e-01 + 1.14000000000000e+02 -4.32632964127207e-01 1.18614496621706e+00 -4.55328397478168e-01 + 1.17000000000000e+02 -4.80371820354459e-01 1.11970695241265e+00 -4.50109251780949e-01 + 1.20000000000000e+02 -5.28037808322532e-01 1.05317232339230e+00 -4.44887349899597e-01 + 1.23000000000000e+02 -5.66119848737520e-01 9.73930737391446e-01 -4.39302948344051e-01 + 1.26000000000000e+02 -6.04201892724816e-01 8.94689151170829e-01 -4.33718546788505e-01 + 1.29000000000000e+02 -6.42283938717764e-01 8.15447564774730e-01 -4.28134145232959e-01 + 1.32000000000000e+02 -6.74334474990374e-01 7.33604783424431e-01 -4.24928233634541e-01 + 1.35000000000000e+02 -7.03350563286718e-01 6.50453342629805e-01 -4.22918938374744e-01 + 1.38000000000000e+02 -7.32366651622596e-01 5.67301901363780e-01 -4.20909643114948e-01 + 1.41000000000000e+02 -7.60649212114200e-01 4.86041383169932e-01 -4.21988068164658e-01 + 1.44000000000000e+02 -7.87521369788452e-01 4.08416741887490e-01 -4.29003582743569e-01 + 1.47000000000000e+02 -8.14393557928232e-01 3.30792095976451e-01 -4.36562079202687e-01 + 1.50000000000000e+02 -8.41265765918927e-01 2.53167445980575e-01 -4.44731785017469e-01 + 1.53000000000000e+02 -8.09299385215334e-01 1.90104749724819e-01 -4.47144079111512e-01 + 1.56000000000000e+02 -7.77435553934518e-01 1.27043748596305e-01 -4.49555699960185e-01 + 1.59000000000000e+02 -7.45704320061756e-01 6.39827401989938e-02 -4.51967320808858e-01 + 1.62000000000000e+02 -6.62286296599598e-01 3.42012087679775e-02 -4.57724257925745e-01 + 1.65000000000000e+02 -5.51905249282042e-01 2.17454272318848e-02 -4.65354420936756e-01 + 1.68000000000000e+02 -4.41524201964485e-01 9.28964569579201e-03 -4.73830405334770e-01 + 1.71000000000000e+02 -3.31143153373595e-01 1.00000000000000e-03 -4.31376628475771e-01 + 1.74000000000000e+02 -2.20762102249064e-01 1.00000000000000e-03 -2.87584418983848e-01 + 1.77000000000000e+02 -1.10381051124531e-01 1.00000000000000e-03 -1.43792209491923e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_28.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_28.dat new file mode 100644 index 000000000..22bda8a62 --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_28.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF28_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +4.382146 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-3.749977 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.212121 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.212121 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.441634 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.035703 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.005794 Cd0 ! 2D drag coefficient value at 0-lift. +-0.097721 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.08381817800767e-01 1.00000000000000e-03 1.16740867109759e-01 +-1.74000000000000e+02 2.16763635601536e-01 1.00000000000000e-03 2.33481734219519e-01 +-1.71000000000000e+02 3.25145453402303e-01 1.00000000000000e-03 3.50222601329277e-01 +-1.68000000000000e+02 4.33527268615081e-01 1.11387881145699e-02 4.01709970905275e-01 +-1.65000000000000e+02 5.41909082527211e-01 2.63730374938796e-02 4.20763772916271e-01 +-1.62000000000000e+02 6.50290896439340e-01 4.16072868731891e-02 4.40441406207268e-01 +-1.59000000000000e+02 7.31396311067634e-01 7.31629088271870e-02 4.52734383365937e-01 +-1.56000000000000e+02 7.60147647865092e-01 1.36068792220022e-01 4.50842835775309e-01 +-1.53000000000000e+02 7.88948313060731e-01 1.98974672908746e-01 4.48951288184680e-01 +-1.50000000000000e+02 8.17783490088021e-01 2.61882231012209e-01 4.47059174603299e-01 +-1.47000000000000e+02 7.93616631181013e-01 3.39159020893009e-01 4.40326861685706e-01 +-1.44000000000000e+02 7.69449779658869e-01 4.16435809254183e-01 4.34319473936291e-01 +-1.41000000000000e+02 7.45282939470397e-01 4.93712595893445e-01 4.28956090122972e-01 +-1.38000000000000e+02 7.19089851488667e-01 5.74605292498552e-01 4.28918289142082e-01 +-1.35000000000000e+02 6.91842960914213e-01 6.57378526996789e-01 4.31650180312670e-01 +-1.32000000000000e+02 6.64596070354466e-01 7.40151761319658e-01 4.34382071483258e-01 +-1.29000000000000e+02 6.34123159966317e-01 8.21604883292793e-01 4.38183581557063e-01 +-1.26000000000000e+02 5.97237955880590e-01 9.00434045098963e-01 4.44111151368767e-01 +-1.23000000000000e+02 5.60352752540999e-01 9.79263206839850e-01 4.50038721180471e-01 +-1.20000000000000e+02 5.23467550530364e-01 1.05809236849898e+00 4.55966290992174e-01 +-1.17000000000000e+02 4.76584890684131e-01 1.12417405028900e+00 4.61278885597158e-01 +-1.14000000000000e+02 4.29626217847160e-01 1.19015880922610e+00 4.66586804377505e-01 +-1.11000000000000e+02 3.82667545876222e-01 1.25614356777643e+00 4.71894723157853e-01 +-1.08000000000000e+02 3.30964355229124e-01 1.30863288092824e+00 4.75113891442843e-01 +-1.05000000000000e+02 2.76916893602407e-01 1.35445408377092e+00 4.77301006451297e-01 +-1.02000000000000e+02 2.22869431998678e-01 1.40027528622240e+00 4.79488121459751e-01 +-9.90000000000000e+01 1.68165264352165e-01 1.43788545601865e+00 4.80125091483197e-01 +-9.60000000000000e+01 1.12109804095335e-01 1.45859992950596e+00 4.77572355432923e-01 +-9.30000000000000e+01 5.60543438385097e-02 1.47931440299321e+00 4.75019619382650e-01 +-9.00000000000000e+01 -1.10826617202455e-06 1.49986768373277e+00 4.72431045512309e-01 +-8.70000000000000e+01 -5.60544709197625e-02 1.47914307271135e+00 4.60665198342328e-01 +-8.40000000000000e+01 -1.12107833580283e-01 1.45841846166493e+00 4.48899351172347e-01 +-8.10000000000000e+01 -1.68161196240809e-01 1.43769385061845e+00 4.37133504002366e-01 +-7.80000000000000e+01 -2.22889350657947e-01 1.40036726430122e+00 4.23193048380158e-01 +-7.50000000000000e+01 -2.76939787102261e-01 1.35455034582821e+00 4.08140487317909e-01 +-7.20000000000000e+01 -3.30990223557143e-01 1.30873342702175e+00 3.93087926255660e-01 +-6.90000000000000e+01 -3.82636993686303e-01 1.25608572762063e+00 3.77530318399349e-01 +-6.60000000000000e+01 -4.29586095353354e-01 1.19008810874528e+00 3.60985658783790e-01 +-6.30000000000000e+01 -4.76535198069843e-01 1.12409048942802e+00 3.44440999168231e-01 +-6.00000000000000e+01 -5.23484301299294e-01 1.05809286979129e+00 3.27896339552672e-01 +-5.70000000000000e+01 -5.60394286504038e-01 9.79299715553280e-01 3.11450741652785e-01 +-5.40000000000000e+01 -5.97266252295924e-01 9.00458101501439e-01 2.95005518923290e-01 +-5.10000000000000e+01 -6.34138218722237e-01 8.21616487396242e-01 2.78560296193795e-01 +-4.80000000000000e+01 -6.64582695678420e-01 7.40152536071339e-01 2.62734495696330e-01 +-4.50000000000000e+01 -6.91823188211713e-01 6.57381398119365e-01 2.47217465693157e-01 +-4.20000000000000e+01 -7.19063680752751e-01 5.74610259987022e-01 2.31700435689984e-01 +-3.90000000000000e+01 -7.45281604208088e-01 4.93671718936574e-01 2.15470502014869e-01 +-3.60000000000000e+01 -7.69448818584302e-01 4.16408374984461e-01 1.97810869339678e-01 +-3.30000000000000e+01 -7.93616044595722e-01 3.39145029326493e-01 1.80151236664487e-01 +-3.00000000000000e+01 -8.17782604959693e-01 2.61882182673274e-01 1.62490943092495e-01 +-2.93939393939394e+01 -8.17021950256037e-01 2.50595844489753e-01 1.53213773856932e-01 +-2.87878787878788e+01 -8.16514670063232e-01 2.39306339437134e-01 1.43936604621368e-01 +-2.81818181818182e+01 -8.16170864713658e-01 2.28013563927296e-01 1.34684911223691e-01 +-2.75757575757576e+01 -8.15938666208648e-01 2.16717409804503e-01 1.25927844892245e-01 +-2.69696969696970e+01 -8.15786050372899e-01 2.05452642154756e-01 1.15805590862317e-01 +-2.63636363636364e+01 -8.15692175395508e-01 1.94223754190278e-01 1.06375299610031e-01 +-2.57575757575758e+01 -8.15642892811006e-01 1.82994866225800e-01 9.69869736748408e-02 +-2.51515151515151e+01 -8.15628260236414e-01 1.71765978261323e-01 8.76213183818501e-02 +-2.45454545454545e+01 -8.15641086507256e-01 1.60537090296845e-01 7.82692954890778e-02 +-2.39393939393939e+01 -8.15676041617625e-01 1.49308202332367e-01 6.89261076183651e-02 +-2.33333333333333e+01 -8.15729091198738e-01 1.38079314367889e-01 5.95889720583077e-02 +-2.27272727272727e+01 -8.15797125387710e-01 1.26850426403411e-01 5.02561636694169e-02 +-2.21212121212121e+01 -8.15877708355132e-01 1.15621538438933e-01 4.09265560639509e-02 +-2.15151515151515e+01 -8.15968905078378e-01 1.04392650474455e-01 3.15993825814794e-02 +-2.09090909090909e+01 -8.16069158926343e-01 9.31637625099777e-02 2.22741033018973e-02 +-2.03030303030303e+01 -8.16177203477844e-01 8.19348745454998e-02 1.29503269931760e-02 +-1.96969696969697e+01 -8.27795254233132e-01 7.29134384500483e-02 -7.70659364801550e-03 +-1.90909090909091e+01 -8.45630729248905e-01 6.75826855837017e-02 -1.94702528290928e-02 +-1.84848484848485e+01 -8.75440792168341e-01 6.15084984370657e-02 -2.66693893817318e-02 +-1.78787878787879e+01 -9.28198262204721e-01 5.34627025630433e-02 -3.58149568035959e-02 +-1.72727272727273e+01 -9.86206902395062e-01 4.53972955409752e-02 -4.45216240942129e-02 +-1.66666666666667e+01 -1.03372765943202e+00 3.89099198325349e-02 -5.13355720145501e-02 +-1.60606060606061e+01 -1.06803609980751e+00 3.38074435481444e-02 -5.66354138681176e-02 +-1.54545454545455e+01 -1.08772388082035e+00 2.97126080866563e-02 -6.04237421852765e-02 +-1.48484848484848e+01 -1.09466128691436e+00 2.69301923988685e-02 -6.27765652082606e-02 +-1.42424242424242e+01 -1.09227610441348e+00 2.47448165958643e-02 -6.41806525299437e-02 +-1.36363636363636e+01 -1.07992432323090e+00 2.28407308981254e-02 -6.52786134722744e-02 +-1.30303030303030e+01 -1.05784747007723e+00 2.11922785404243e-02 -6.61211556748176e-02 +-1.24242424242424e+01 -1.02883389635505e+00 1.96198851057243e-02 -6.69360480606678e-02 +-1.18181818181818e+01 -9.88840433047497e-01 1.80887635429202e-02 -6.84957429278371e-02 +-1.12121212121212e+01 -9.33500284217800e-01 1.64821593971130e-02 -7.14017880513199e-02 +-1.06060606060606e+01 -8.63565956198146e-01 1.49336769303554e-02 -7.46178979648206e-02 +-1.00000000000000e+01 -7.91374182925581e-01 1.37249281701633e-02 -7.67507778709760e-02 +-9.39393939393939e+00 -7.19066863724302e-01 1.26326837403017e-02 -7.87271085092497e-02 +-8.78787878787879e+00 -6.44482317926868e-01 1.15055599068882e-02 -8.11721795538015e-02 +-8.18181818181818e+00 -5.69090198088371e-01 1.05487387104086e-02 -8.32859747648033e-02 +-7.57575757575758e+00 -4.92925344197248e-01 9.73211450188971e-03 -8.51391334922193e-02 +-6.96969696969697e+00 -4.15547490188550e-01 8.96734790977310e-03 -8.70509188418998e-02 +-6.36363636363636e+00 -3.37208212994531e-01 8.33062808195910e-03 -8.92857980180439e-02 +-5.75757575757576e+00 -2.58748076559198e-01 7.50204461681594e-03 -9.14804303485038e-02 +-5.15151515151515e+00 -1.80443324337912e-01 6.79773797242044e-03 -9.34784627007051e-02 +-4.54545454545454e+00 -1.02535778811631e-01 6.27648535510023e-03 -9.53657677996075e-02 +-3.93939393939394e+00 -2.43233312652620e-02 5.87893174765348e-03 -9.71991618653449e-02 +-3.33333333333333e+00 5.35019098906683e-02 5.60857906004505e-03 -9.88687963194872e-02 +-2.72727272727273e+00 1.31264309505717e-01 5.34827325960337e-03 -1.00509502769273e-01 +-2.12121212121212e+00 2.08583550261215e-01 5.23399994344566e-03 -1.01960249183817e-01 +-1.51515151515152e+00 2.85655395651653e-01 5.22841567603840e-03 -1.03344841587187e-01 +-9.09090909090912e-01 3.62495852954400e-01 5.26412579476417e-03 -1.04677644575409e-01 +-3.03030303030302e-01 4.39268560207441e-01 5.30363080686618e-03 -1.05929934297988e-01 + 3.03030303030302e-01 5.15734756593206e-01 5.37736436589681e-03 -1.07166151056640e-01 + 9.09090909090912e-01 5.92016682999298e-01 5.47058147989706e-03 -1.08386283845829e-01 + 1.51515151515152e+00 6.68329269857176e-01 5.55543764968888e-03 -1.09637237108429e-01 + 2.12121212121212e+00 7.44252727294711e-01 5.67799241451347e-03 -1.10826636502010e-01 + 2.72727272727273e+00 8.19998369334810e-01 5.81210169575074e-03 -1.11864889590963e-01 + 3.33333333333333e+00 8.95228865096215e-01 5.98327321701890e-03 -1.12889098414012e-01 + 3.93939393939394e+00 9.69908742626295e-01 6.19363327701445e-03 -1.13808665671390e-01 + 4.54545454545455e+00 1.04373858369192e+00 6.45149560344381e-03 -1.14562417850705e-01 + 5.15151515151515e+00 1.11500661994497e+00 6.88965686988355e-03 -1.14942482633534e-01 + 5.75757575757576e+00 1.18318322783923e+00 7.51028838186376e-03 -1.14924135521564e-01 + 6.36363636363637e+00 1.24482549400419e+00 8.48866417967030e-03 -1.13976741224148e-01 + 6.96969696969697e+00 1.29997861005621e+00 9.75230491691222e-03 -1.12206592012755e-01 + 7.57575757575757e+00 1.34893429349043e+00 1.11425191079921e-02 -1.09584419272583e-01 + 8.18181818181818e+00 1.39242099648551e+00 1.24403541962336e-02 -1.06242479026114e-01 + 8.78787878787879e+00 1.43058652924199e+00 1.39757267871671e-02 -1.02572726482214e-01 + 9.39393939393939e+00 1.47347997315567e+00 1.56130023764050e-02 -9.94432973374875e-02 + 1.00000000000000e+01 1.50255571385378e+00 1.74842716082965e-02 -9.62771988214266e-02 + 1.06060606060606e+01 1.52788788172839e+00 1.96355469883834e-02 -9.25163733003707e-02 + 1.12121212121212e+01 1.54928476404324e+00 2.18320090439756e-02 -8.90136862925215e-02 + 1.18181818181818e+01 1.56509712668019e+00 2.46656849985125e-02 -8.65887188179238e-02 + 1.24242424242424e+01 1.57304567965813e+00 2.81784181489882e-02 -8.46867673169977e-02 + 1.30303030303030e+01 1.55362006553738e+00 3.35955864278391e-02 -8.24690131933447e-02 + 1.36363636363636e+01 1.55312629689673e+00 3.80176034769586e-02 -8.09836891330113e-02 + 1.42424242424242e+01 1.54977814147600e+00 4.25638250031037e-02 -7.94775186930474e-02 + 1.48484848484848e+01 1.54495617831389e+00 4.69054796809575e-02 -7.83292399217232e-02 + 1.54545454545455e+01 1.53830040747865e+00 5.15835835159662e-02 -7.78038284498248e-02 + 1.60606060606061e+01 1.52813019914725e+00 5.65103540252769e-02 -7.76575078389305e-02 + 1.66666666666667e+01 1.51614676799207e+00 6.15699220210967e-02 -7.79466873608352e-02 + 1.72727272727273e+01 1.50411312222328e+00 6.67926713307130e-02 -7.84887517106769e-02 + 1.78787878787879e+01 1.49146399707097e+00 7.22958310765542e-02 -7.98482053365030e-02 + 1.84848484848485e+01 1.47775126384283e+00 7.76911943933633e-02 -8.19220055130206e-02 + 1.90909090909091e+01 1.46218756523059e+00 8.30841254888230e-02 -8.49595356289904e-02 + 1.96969696969697e+01 1.44497803292102e+00 8.82950766334230e-02 -8.85258009910325e-02 + 2.03030303030303e+01 1.42568099506327e+00 9.35095754874911e-02 -9.29880118271791e-02 + 2.09090909090909e+01 1.40393602049971e+00 9.87011906769957e-02 -9.82556348717975e-02 + 2.15151515151515e+01 1.37944076366224e+00 1.04481552692603e-01 -1.04639696647787e-01 + 2.21212121212121e+01 1.35655866985186e+00 1.11003579994231e-01 -1.12154680130548e-01 + 2.27272727272727e+01 1.33033239224097e+00 1.17509177713490e-01 -1.20770907514721e-01 + 2.33333333333333e+01 1.30102384887458e+00 1.24493715835706e-01 -1.30631968811976e-01 + 2.39393939393939e+01 1.26844752801903e+00 1.32287676268997e-01 -1.41839524786828e-01 + 2.45454545454545e+01 1.25542034678961e+00 1.41999434252038e-01 -1.48715008686804e-01 + 2.51515151515151e+01 1.24482293247714e+00 1.52829829959801e-01 -1.54812086870658e-01 + 2.57575757575758e+01 1.23525281479177e+00 1.66461340466866e-01 -1.59815437169892e-01 + 2.63636363636364e+01 1.22568270110786e+00 1.80092850871806e-01 -1.64818787469126e-01 + 2.69696969696970e+01 1.21611259178038e+00 1.93724361172507e-01 -1.69822137768360e-01 + 2.75757575757576e+01 1.20654248720755e+00 2.07355871366800e-01 -1.74825488067594e-01 + 2.81818181818182e+01 1.19697238783767e+00 2.20987381452452e-01 -1.79828838366828e-01 + 2.87878787878788e+01 1.18740229417722e+00 2.34618891427170e-01 -1.84832188666062e-01 + 2.93939393939394e+01 1.17783220680064e+00 2.48250401288594e-01 -1.89835538965296e-01 + 3.00000000000000e+01 1.16826212636207e+00 2.61881911034297e-01 -1.94838889264530e-01 + 3.30000000000000e+01 1.13373720588110e+00 3.39145029326493e-01 -2.12517630039859e-01 + 3.60000000000000e+01 1.09921259665093e+00 4.16408374984461e-01 -2.30196205066705e-01 + 3.90000000000000e+01 1.06468800404142e+00 4.93671718936574e-01 -2.47874780093552e-01 + 4.20000000000000e+01 1.02723382880342e+00 5.74610259987022e-01 -2.63597662668890e-01 + 4.50000000000000e+01 9.88318841469090e-01 6.57381398119365e-01 -2.78345360726513e-01 + 4.80000000000000e+01 9.49403854145851e-01 7.40152536071340e-01 -2.93093058784135e-01 + 5.10000000000000e+01 9.05911745626647e-01 8.21616487396242e-01 -3.07598795050393e-01 + 5.40000000000000e+01 8.53237508105629e-01 9.00458101501439e-01 -3.21619133535314e-01 + 5.70000000000000e+01 8.00563271490927e-01 9.79299715553281e-01 -3.35639472020235e-01 + 6.00000000000000e+01 7.47834721425080e-01 1.05809286979129e+00 -3.49658052594307e-01 + 6.30000000000000e+01 6.80764573074605e-01 1.12409048942802e+00 -3.63212466304522e-01 + 6.60000000000000e+01 6.13694425456447e-01 1.19008810874528e+00 -3.76766880014736e-01 + 6.90000000000000e+01 5.46624279336487e-01 1.25608572762063e+00 -3.90321293724951e-01 + 7.20000000000000e+01 4.72843178855058e-01 1.30873342702175e+00 -4.03225729577357e-01 + 7.50000000000000e+01 3.95628269636583e-01 1.35455034582821e+00 -4.15797589928810e-01 + 7.80000000000000e+01 3.18413360433260e-01 1.40036726430122e+00 -4.28369450280264e-01 + 8.10000000000000e+01 2.40239694670987e-01 1.43769385061845e+00 -4.40310699436255e-01 + 8.40000000000000e+01 1.60191278426899e-01 1.45841846166493e+00 -4.51018852892549e-01 + 8.70000000000000e+01 8.01428621828149e-02 1.47914307271135e+00 -4.61727006348843e-01 + 9.00000000000000e+01 9.44459426457023e-05 1.49986768373277e+00 -4.72435159805137e-01 + 9.30000000000000e+01 -5.60543438385097e-02 1.47931440299321e+00 -4.75019619382650e-01 + 9.60000000000000e+01 -1.12109804095335e-01 1.45859992950596e+00 -4.77572355432923e-01 + 9.90000000000000e+01 -1.68165264352165e-01 1.43788545601865e+00 -4.80125091483197e-01 + 1.02000000000000e+02 -2.22869431998678e-01 1.40027528622240e+00 -4.79488121459751e-01 + 1.05000000000000e+02 -2.76916893602407e-01 1.35445408377092e+00 -4.77301006451297e-01 + 1.08000000000000e+02 -3.30964355229124e-01 1.30863288092824e+00 -4.75113891442843e-01 + 1.11000000000000e+02 -3.82667545876222e-01 1.25614356777643e+00 -4.71894723157853e-01 + 1.14000000000000e+02 -4.29626217847161e-01 1.19015880922610e+00 -4.66586804377505e-01 + 1.17000000000000e+02 -4.76584890684131e-01 1.12417405028900e+00 -4.61278885597158e-01 + 1.20000000000000e+02 -5.23467550530364e-01 1.05809236849898e+00 -4.55966290992174e-01 + 1.23000000000000e+02 -5.60352752540999e-01 9.79263206839850e-01 -4.50038721180471e-01 + 1.26000000000000e+02 -5.97237955880590e-01 9.00434045098963e-01 -4.44111151368767e-01 + 1.29000000000000e+02 -6.34123159966317e-01 8.21604883292793e-01 -4.38183581557063e-01 + 1.32000000000000e+02 -6.64596070354466e-01 7.40151761319657e-01 -4.34382071483258e-01 + 1.35000000000000e+02 -6.91842960914213e-01 6.57378526996789e-01 -4.31650180312670e-01 + 1.38000000000000e+02 -7.19089851488667e-01 5.74605292498551e-01 -4.28918289142082e-01 + 1.41000000000000e+02 -7.45282939470398e-01 4.93712595893444e-01 -4.28956090122972e-01 + 1.44000000000000e+02 -7.69449779658869e-01 4.16435809254183e-01 -4.34319473936291e-01 + 1.47000000000000e+02 -7.93616631181013e-01 3.39159020893009e-01 -4.40326861685706e-01 + 1.50000000000000e+02 -8.17783490088021e-01 2.61882231012209e-01 -4.47059174603300e-01 + 1.53000000000000e+02 -7.88948313060731e-01 1.98974672908746e-01 -4.49955741686493e-01 + 1.56000000000000e+02 -7.60147647865092e-01 1.36068792220022e-01 -4.52851860235128e-01 + 1.59000000000000e+02 -7.31396311067634e-01 7.31629088271870e-02 -4.55747978783764e-01 + 1.62000000000000e+02 -6.50290896439340e-01 4.16072868731891e-02 -4.61541998507228e-01 + 1.65000000000000e+02 -5.41909082527211e-01 2.63730374938796e-02 -4.69000799644468e-01 + 1.68000000000000e+02 -4.33527268615081e-01 1.11387881145699e-02 -4.77462787669374e-01 + 1.71000000000000e+02 -3.25145453402303e-01 1.00000000000000e-03 -4.34636273611735e-01 + 1.74000000000000e+02 -2.16763635601536e-01 1.00000000000000e-03 -2.89757515741157e-01 + 1.77000000000000e+02 -1.08381817800767e-01 1.00000000000000e-03 -1.44878757870578e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_29.dat b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_29.dat new file mode 100644 index 000000000..721b586fc --- /dev/null +++ b/Test_Cases/BAR_10/Airfoils/BAR_10_AeroDyn15_Polar_29.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +0 NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF29_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +2.876381 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-4.329987 alpha0 ! 0-lift angle of attack, depends on airfoil. +10.606061 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-10.606061 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.439212 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.944997 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006780 Cd0 ! 2D drag coefficient value at 0-lift. +-0.110310 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 +-1.77000000000000e+02 1.06793294362360e-01 1.00000000000000e-03 1.17590064508216e-01 +-1.74000000000000e+02 2.13586588724720e-01 1.00000000000000e-03 2.35180129016433e-01 +-1.71000000000000e+02 3.20379883087080e-01 1.00000000000000e-03 3.52770193524649e-01 +-1.68000000000000e+02 4.27173174897775e-01 1.31899070969171e-02 4.05770895128445e-01 +-1.65000000000000e+02 5.33966465426079e-01 3.15061084541767e-02 4.26310853586742e-01 +-1.62000000000000e+02 6.40759755954382e-01 4.98223098114362e-02 4.46850812045040e-01 +-1.59000000000000e+02 7.19580365933358e-01 8.33459429993726e-02 4.59455869750497e-01 +-1.56000000000000e+02 7.44670758493106e-01 1.46080170331460e-01 4.56819487083506e-01 +-1.53000000000000e+02 7.69761151052854e-01 2.08814397663547e-01 4.54183104416516e-01 +-1.50000000000000e+02 7.94846092376126e-01 2.71550280182435e-01 4.51546566884050e-01 +-1.47000000000000e+02 7.73313538536604e-01 3.48440871082786e-01 4.47585661826369e-01 +-1.44000000000000e+02 7.51780984697081e-01 4.25331461983137e-01 4.43624756768688e-01 +-1.41000000000000e+02 7.30248430857559e-01 5.02222052883489e-01 4.39663851711007e-01 +-1.38000000000000e+02 7.06095573723219e-01 5.82706568835649e-01 4.40481498604389e-01 +-1.35000000000000e+02 6.80579967440380e-01 6.65060188381200e-01 4.43784341625732e-01 +-1.32000000000000e+02 6.55064361157541e-01 7.47413807926753e-01 4.47087184647076e-01 +-1.29000000000000e+02 6.26135823913397e-01 8.28434662292000e-01 4.51353905256631e-01 +-1.26000000000000e+02 5.90423473216408e-01 9.06806406416770e-01 4.57536505743021e-01 +-1.23000000000000e+02 5.54711122519419e-01 9.85178150541541e-01 4.63719106229412e-01 +-1.20000000000000e+02 5.18998771822430e-01 1.06354989466631e+00 4.69901706715803e-01 +-1.17000000000000e+02 4.72882838502041e-01 1.12912923417335e+00 4.75241763768275e-01 +-1.14000000000000e+02 4.26687803898540e-01 1.19461130953053e+00 4.80575414732660e-01 +-1.11000000000000e+02 3.80492769295040e-01 1.26009338488772e+00 4.85909065697046e-01 +-1.08000000000000e+02 3.29331655771394e-01 1.31205000785317e+00 4.89048679358148e-01 +-1.05000000000000e+02 2.75716798714252e-01 1.35732369406360e+00 4.91104217447406e-01 +-1.02000000000000e+02 2.22101941657110e-01 1.40259738027403e+00 4.93159755536664e-01 +-9.90000000000000e+01 1.67735754691170e-01 1.43964703479741e+00 4.93635611504901e-01 +-9.60000000000000e+01 1.11823569385307e-01 1.45977424395193e+00 4.90860983354108e-01 +-9.30000000000000e+01 5.59113840794445e-02 1.47990145310645e+00 4.88086355203315e-01 +-9.00000000000000e+01 -7.91038008879450e-07 1.49987203040698e+00 4.85277085465929e-01 +-8.70000000000000e+01 -5.59103571291227e-02 1.47973265322961e+00 4.73596871371351e-01 +-8.40000000000000e+01 -1.11819923220237e-01 1.45959327605223e+00 4.61916657276772e-01 +-8.10000000000000e+01 -1.67729489311351e-01 1.43945389887486e+00 4.50236443182193e-01 +-7.80000000000000e+01 -2.22123010773082e-01 1.40268833737536e+00 4.36320701342629e-01 +-7.50000000000000e+01 -2.75741219567398e-01 1.35742006357711e+00 4.21261699637585e-01 +-7.20000000000000e+01 -3.29359428361714e-01 1.31215178977885e+00 4.06202697932541e-01 +-6.90000000000000e+01 -3.80461421362656e-01 1.26003674654461e+00 3.90603646143868e-01 +-6.60000000000000e+01 -4.26645780483534e-01 1.19454053567125e+00 3.73949132977364e-01 +-6.30000000000000e+01 -4.72830139604412e-01 1.12904432479788e+00 3.57294619810860e-01 +-6.00000000000000e+01 -5.19014498725291e-01 1.06354811392451e+00 3.40640106644357e-01 +-5.70000000000000e+01 -5.54753284477182e-01 9.85213246272800e-01 3.23987016662436e-01 +-5.40000000000000e+01 -5.90452510346261e-01 9.06829755559466e-01 3.07333932070455e-01 +-5.10000000000000e+01 -6.26151736215339e-01 8.28446264846131e-01 2.90680847478474e-01 +-4.80000000000000e+01 -6.55049971747603e-01 7.47414876943374e-01 2.74588952591707e-01 +-4.50000000000000e+01 -6.80558039734383e-01 6.65063561402025e-01 2.58776800364648e-01 +-4.20000000000000e+01 -7.06066107721163e-01 5.82712245860676e-01 2.42964648137589e-01 +-3.90000000000000e+01 -7.30251095851957e-01 5.02182217519796e-01 2.26035757006765e-01 +-3.60000000000000e+01 -7.51782701735507e-01 4.25304705769651e-01 2.06867291923812e-01 +-3.30000000000000e+01 -7.73314307619057e-01 3.48427194019505e-01 1.87698826840858e-01 +-3.00000000000000e+01 -7.94843835592021e-01 2.71550203965104e-01 1.68529575984535e-01 +-2.93939393939394e+01 -7.81242336369908e-01 2.60526385561479e-01 1.57868768486251e-01 +-2.87878787878788e+01 -7.67640837147795e-01 2.49502567157854e-01 1.47207960987968e-01 +-2.81818181818182e+01 -7.54039337925682e-01 2.38478748754229e-01 1.36547153489684e-01 +-2.75757575757576e+01 -7.40437838703569e-01 2.27454930350604e-01 1.25886345991400e-01 +-2.69696969696970e+01 -7.26836339481456e-01 2.16431111946979e-01 1.15225538493116e-01 +-2.63636363636364e+01 -7.13234840259343e-01 2.05407293543355e-01 1.04564730994832e-01 +-2.57575757575758e+01 -6.99633341037229e-01 1.94383475139730e-01 9.39039234965482e-02 +-2.51515151515151e+01 -6.86031841815116e-01 1.83359656736105e-01 8.32431159982643e-02 +-2.45454545454545e+01 -6.72430342593003e-01 1.72335838332480e-01 7.25823084999805e-02 +-2.39393939393939e+01 -6.58828843370890e-01 1.61312019928855e-01 6.19215010016966e-02 +-2.33333333333333e+01 -6.45227344148777e-01 1.50288201525230e-01 5.12606935034128e-02 +-2.27272727272727e+01 -6.31625844926664e-01 1.39264383121605e-01 4.05998860051289e-02 +-2.21212121212121e+01 -6.18024345704551e-01 1.28240564717981e-01 2.99390785068450e-02 +-2.15151515151515e+01 -6.04422846482437e-01 1.17216746314356e-01 1.92782710085612e-02 +-2.09090909090909e+01 -5.90821347260324e-01 1.06192927910731e-01 8.61746351027734e-03 +-2.03030303030303e+01 -5.77219848038211e-01 9.51691095071060e-02 -2.04334398800654e-03 +-1.96969696969697e+01 -5.77414475113119e-01 8.70136495320937e-02 -1.17036927581324e-02 +-1.90909090909091e+01 -5.98249605704654e-01 8.09551931591943e-02 -2.08831895378225e-02 +-1.84848484848485e+01 -6.40914115423270e-01 7.26561287232376e-02 -3.19390892609529e-02 +-1.78787878787879e+01 -7.21063437643488e-01 6.12783578614570e-02 -4.54643524429765e-02 +-1.72727272727273e+01 -8.12788409307140e-01 4.97275238066852e-02 -5.85090899442543e-02 +-1.66666666666667e+01 -8.87024007224668e-01 4.04913945482908e-02 -6.89333322918897e-02 +-1.60606060606061e+01 -9.39397220462694e-01 3.36729967894838e-02 -7.68606044696008e-02 +-1.54545454545455e+01 -9.72498635943984e-01 2.87519117228960e-02 -8.24909126103308e-02 +-1.48484848484848e+01 -9.90433248265328e-01 2.54413089634923e-02 -8.59757217035454e-02 +-1.42424242424242e+01 -9.96280893788560e-01 2.29788190414171e-02 -8.80726693578544e-02 +-1.36363636363636e+01 -9.88124186614285e-01 2.09158136888028e-02 -8.95998000969974e-02 +-1.30303030303030e+01 -9.67253527757363e-01 1.91736355949741e-02 -9.07454571193461e-02 +-1.24242424242424e+01 -9.37100488550854e-01 1.75502541191989e-02 -9.17366330082438e-02 +-1.18181818181818e+01 -8.93626201055014e-01 1.61059430208395e-02 -9.30454564745399e-02 +-1.12121212121212e+01 -8.36101522812138e-01 1.47169488730495e-02 -9.52090890335693e-02 +-1.06060606060606e+01 -7.70561782960920e-01 1.35262746341358e-02 -9.68878789061260e-02 +-1.00000000000000e+01 -7.01524640353949e-01 1.25971026620075e-02 -9.78996922273522e-02 +-9.39393939393939e+00 -6.30956658767203e-01 1.17119459258295e-02 -9.89121204996407e-02 +-8.78787878787879e+00 -5.58508107021841e-01 1.08320304657670e-02 -1.00124243927816e-01 +-8.18181818181818e+00 -4.84812164095309e-01 1.00354785371407e-02 -1.01336285515042e-01 +-7.57575757575758e+00 -4.09870755359445e-01 9.43028156019709e-03 -1.02463638705751e-01 +-6.96969696969697e+00 -3.34026606555860e-01 8.97129104674988e-03 -1.03660604212343e-01 +-6.36363636363636e+00 -2.57939764014586e-01 8.51705911514355e-03 -1.04927270752892e-01 +-5.75757575757576e+00 -1.81530517147297e-01 8.01772435912830e-03 -1.06381819263691e-01 +-5.15151515151515e+00 -1.04720338575589e-01 7.48920084796951e-03 -1.07906060571382e-01 +-4.54545454545454e+00 -2.76326016341423e-02 6.93210136630078e-03 -1.09663637713489e-01 +-3.93939393939394e+00 5.00916494258010e-02 6.50410872647801e-03 -1.11481813576461e-01 +-3.33333333333333e+00 1.27864730811451e-01 6.08684179825555e-03 -1.13299999064565e-01 +-2.72727272727273e+00 2.05637784138185e-01 5.66958627543322e-03 -1.15118170547653e-01 +-2.12121212121212e+00 2.82746968192843e-01 5.48088423911187e-03 -1.16633334332654e-01 +-1.51515151515152e+00 3.59457773692569e-01 5.46961971272407e-03 -1.17966664451240e-01 +-9.09090909090912e-01 4.35901287142303e-01 5.49833579529790e-03 -1.19281821178312e-01 +-3.03030303030302e-01 5.12248859303934e-01 5.54237453478233e-03 -1.20493941849056e-01 + 3.03030303030302e-01 5.88228634491171e-01 5.62719589969609e-03 -1.21685861404471e-01 + 9.09090909090912e-01 6.64025649558513e-01 5.72481650771529e-03 -1.22857575408331e-01 + 1.51515151515152e+00 7.39814662989201e-01 5.82292094269032e-03 -1.24030306063669e-01 + 2.12121212121212e+00 8.15209614402532e-01 5.94764791124810e-03 -1.25193938582259e-01 + 2.72727272727273e+00 8.90224194316802e-01 6.11274352981023e-03 -1.26163639772835e-01 + 3.33333333333333e+00 9.64549982579362e-01 6.32248158087637e-03 -1.27066651539466e-01 + 3.93939393939394e+00 1.03818363205504e+00 6.57238629378976e-03 -1.27827271053179e-01 + 4.54545454545455e+00 1.11060076830144e+00 6.89064748397608e-03 -1.28400000000000e-01 + 5.15151515151515e+00 1.17939588307592e+00 7.44153417016882e-03 -1.28400000000000e-01 + 5.75757575757576e+00 1.24403782823593e+00 8.20456992339360e-03 -1.27884850881266e-01 + 6.36363636363637e+00 1.29920149871559e+00 9.44716577629163e-03 -1.26018182904620e-01 + 6.96969696969697e+00 1.34640270944702e+00 1.09307227436574e-02 -1.23055959920825e-01 + 7.57575757575757e+00 1.38627865123648e+00 1.23942086724646e-02 -1.19109088053906e-01 + 8.18181818181818e+00 1.41975272908628e+00 1.36265997268333e-02 -1.14236036266967e-01 + 8.78787878787879e+00 1.44637122563049e+00 1.52210946236435e-02 -1.09197260535211e-01 + 9.39393939393939e+00 1.47314733325543e+00 1.70033197835407e-02 -1.04978785791641e-01 + 1.00000000000000e+01 1.50044296080538e+00 1.89656894345643e-02 -1.01500744698729e-01 + 1.06060606060606e+01 1.52541600138334e+00 2.11625572518632e-02 -9.83696985816345e-02 + 1.12121212121212e+01 1.54634689099364e+00 2.36428664901740e-02 -9.53393916367976e-02 + 1.18181818181818e+01 1.56110284441823e+00 2.64830924850405e-02 -9.22454575841433e-02 + 1.24242424242424e+01 1.56769871479531e+00 2.98310557320320e-02 -8.91761069248621e-02 + 1.30303030303030e+01 1.53972817522505e+00 3.56013527280676e-02 -8.51969711508826e-02 + 1.36363636363636e+01 1.54272276321399e+00 3.94598910960263e-02 -8.31911129923541e-02 + 1.42424242424242e+01 1.54245622365062e+00 4.32633822830386e-02 -8.11302306481864e-02 + 1.48484848484848e+01 1.53896564007450e+00 4.73086510460248e-02 -7.93333465877089e-02 + 1.54545454545455e+01 1.53350410396344e+00 5.18428463796126e-02 -7.83636379594841e-02 + 1.60606060606061e+01 1.52418059980228e+00 5.66585128075173e-02 -7.78121202914227e-02 + 1.66666666666667e+01 1.51289359358486e+00 6.16266077258817e-02 -7.79333334978977e-02 + 1.72727272727273e+01 1.50148322491699e+00 6.65920928501600e-02 -7.84363593268227e-02 + 1.78787878787879e+01 1.48914891600943e+00 7.15862705930342e-02 -7.97860353551999e-02 + 1.84848484848485e+01 1.47547702295314e+00 7.66674643110349e-02 -8.18465167689546e-02 + 1.90909090909091e+01 1.45973610430389e+00 8.18653951548041e-02 -8.49459104519666e-02 + 1.96969696969697e+01 1.44197591068368e+00 8.71631515306546e-02 -8.88582361180712e-02 + 2.03030303030303e+01 1.42184898546048e+00 9.26278200333017e-02 -9.37668152014683e-02 + 2.09090909090909e+01 1.39879849491423e+00 9.83962383508826e-02 -9.97545449089742e-02 + 2.15151515151515e+01 1.37248352952069e+00 1.04533496840601e-01 -1.07016507789128e-01 + 2.21212121212121e+01 1.34215617243589e+00 1.11258933285874e-01 -1.15763639225913e-01 + 2.27272727272727e+01 1.30768750164627e+00 1.18695595960852e-01 -1.26036360618309e-01 + 2.33333333333333e+01 1.26893843892013e+00 1.27098526562261e-01 -1.37868993192815e-01 + 2.39393939393939e+01 1.22507688246456e+00 1.36920802854375e-01 -1.51480874357331e-01 + 2.45454545454545e+01 1.21227550263844e+00 1.49794813049219e-01 -1.57702152399362e-01 + 2.51515151515151e+01 1.20330890243903e+00 1.63068090746775e-01 -1.62954821098247e-01 + 2.57575757575758e+01 1.19483209228568e+00 1.76628318199595e-01 -1.67962357256592e-01 + 2.63636363636364e+01 1.18635528213233e+00 1.90188545652414e-01 -1.72969893414937e-01 + 2.69696969696970e+01 1.17787847197898e+00 2.03748773105234e-01 -1.77977429573283e-01 + 2.75757575757576e+01 1.16940166182563e+00 2.17309000558054e-01 -1.82984965731628e-01 + 2.81818181818182e+01 1.16092485167229e+00 2.30869228010874e-01 -1.87992501889973e-01 + 2.87878787878788e+01 1.15244804151894e+00 2.44429455463694e-01 -1.93000038048318e-01 + 2.93939393939394e+01 1.14397123136559e+00 2.57989682916513e-01 -1.98007574206664e-01 + 3.00000000000000e+01 1.13549442121224e+00 2.71549910369333e-01 -2.03015110365009e-01 + 3.30000000000000e+01 1.10473472359887e+00 3.48427194019506e-01 -2.21238181576723e-01 + 3.60000000000000e+01 1.07397528790832e+00 4.25304705769651e-01 -2.39461099284532e-01 + 3.90000000000000e+01 1.04321585221778e+00 5.02182217519796e-01 -2.57684016992340e-01 + 4.20000000000000e+01 1.00866586988753e+00 5.82712245860676e-01 -2.73879891153687e-01 + 4.50000000000000e+01 9.72225773191961e-01 6.65063561402025e-01 -2.89065002359068e-01 + 4.80000000000000e+01 9.35785676496397e-01 7.47414876943375e-01 -3.04250113564449e-01 + 5.10000000000000e+01 8.94502483450287e-01 8.28446264846132e-01 -3.19149274539552e-01 + 5.40000000000000e+01 8.43503590209891e-01 9.06829755559466e-01 -3.33474792847487e-01 + 5.70000000000000e+01 7.92504696969496e-01 9.85213246272801e-01 -3.47800311155423e-01 + 6.00000000000000e+01 7.41449289597882e-01 1.06354811392451e+00 -3.62123530353420e-01 + 6.30000000000000e+01 6.75471631146347e-01 1.12904432479788e+00 -3.75839681991091e-01 + 6.60000000000000e+01 6.09493972694813e-01 1.19454053567125e+00 -3.89555833628762e-01 + 6.90000000000000e+01 5.43516314243278e-01 1.26003674654461e+00 -4.03271985266433e-01 + 7.20000000000000e+01 4.70513467368525e-01 1.31215178977885e+00 -4.16249423774939e-01 + 7.50000000000000e+01 3.93916027953325e-01 1.35742006357711e+00 -4.28848883424565e-01 + 7.80000000000000e+01 3.17318588538124e-01 1.40268833737536e+00 -4.41448343074192e-01 + 8.10000000000000e+01 2.39622960434182e-01 1.43945389887486e+00 -4.53382396903645e-01 + 8.40000000000000e+01 1.59779936661903e-01 1.45959327605223e+00 -4.64015317703250e-01 + 8.70000000000000e+01 7.99369128896241e-02 1.47973265322961e+00 -4.74648238502856e-01 + 9.00000000000000e+01 9.38891173453693e-05 1.49987203040698e+00 -4.85281159302462e-01 + 9.30000000000000e+01 -5.59113840794446e-02 1.47990145310645e+00 -4.88086355203315e-01 + 9.60000000000000e+01 -1.11823569385308e-01 1.45977424395193e+00 -4.90860983354108e-01 + 9.90000000000000e+01 -1.67735754691170e-01 1.43964703479741e+00 -4.93635611504901e-01 + 1.02000000000000e+02 -2.22101941657110e-01 1.40259738027403e+00 -4.93159755536664e-01 + 1.05000000000000e+02 -2.75716798714253e-01 1.35732369406360e+00 -4.91104217447406e-01 + 1.08000000000000e+02 -3.29331655771394e-01 1.31205000785317e+00 -4.89048679358148e-01 + 1.11000000000000e+02 -3.80492769295040e-01 1.26009338488772e+00 -4.85909065697046e-01 + 1.14000000000000e+02 -4.26687803898541e-01 1.19461130953053e+00 -4.80575414732660e-01 + 1.17000000000000e+02 -4.72882838502041e-01 1.12912923417335e+00 -4.75241763768275e-01 + 1.20000000000000e+02 -5.18998771822430e-01 1.06354989466631e+00 -4.69901706715803e-01 + 1.23000000000000e+02 -5.54711122519419e-01 9.85178150541541e-01 -4.63719106229412e-01 + 1.26000000000000e+02 -5.90423473216408e-01 9.06806406416770e-01 -4.57536505743021e-01 + 1.29000000000000e+02 -6.26135823913398e-01 8.28434662291999e-01 -4.51353905256631e-01 + 1.32000000000000e+02 -6.55064361157542e-01 7.47413807926752e-01 -4.47087184647076e-01 + 1.35000000000000e+02 -6.80579967440380e-01 6.65060188381200e-01 -4.43784341625732e-01 + 1.38000000000000e+02 -7.06095573723219e-01 5.82706568835648e-01 -4.40481498604389e-01 + 1.41000000000000e+02 -7.30248430857559e-01 5.02222052883488e-01 -4.39663851711007e-01 + 1.44000000000000e+02 -7.51780984697081e-01 4.25331461983137e-01 -4.43624756768688e-01 + 1.47000000000000e+02 -7.73313538536604e-01 3.48440871082786e-01 -4.47585661826369e-01 + 1.50000000000000e+02 -7.94846092376127e-01 2.71550280182434e-01 -4.51546566884050e-01 + 1.53000000000000e+02 -7.69761151052854e-01 2.08814397663547e-01 -4.55376850817452e-01 + 1.56000000000000e+02 -7.44670758493106e-01 1.46080170331460e-01 -4.59207119476617e-01 + 1.59000000000000e+02 -7.19580365933358e-01 8.33459429993726e-02 -4.63037388135783e-01 + 1.62000000000000e+02 -6.40759755954382e-01 4.98223098114361e-02 -4.68902906074895e-01 + 1.65000000000000e+02 -5.33966465426079e-01 3.15061084541767e-02 -4.75828002416639e-01 + 1.68000000000000e+02 -4.27173174897775e-01 1.31899070969171e-02 -4.82753098758384e-01 + 1.71000000000000e+02 -3.20379883087080e-01 1.00000000000000e-03 -4.38475682523464e-01 + 1.74000000000000e+02 -2.13586588724720e-01 1.00000000000000e-03 -2.92317121682309e-01 + 1.77000000000000e+02 -1.06793294362360e-01 1.00000000000000e-03 -1.46158560841154e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.00000000000000e-03 0.00000000000000e+00 diff --git a/Test_Cases/BAR_10/BAR_10.fst b/Test_Cases/BAR_10/BAR_10.fst new file mode 100644 index 000000000..aa7875f0a --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10.fst @@ -0,0 +1,60 @@ +------- OpenFAST INPUT FILE ------------------------------------------- +Generated with AeroElasticSE FAST driver +---------------------- SIMULATION CONTROL -------------------------------------- +True Echo - Echo input data to .ech (flag) +"FATAL" AbortLevel - Error level when simulation should abort (string) {"WARNING", "SEVERE", "FATAL"} +60.0 TMax - Total run time (s) +0.01 DT - Recommended module time step (s) +2 InterpOrder - Interpolation order for input/output time history (-) {1=linear, 2=quadratic} +0 NumCrctn - Number of correction iterations (-) {0=explicit calculation, i.e., no corrections} +99999.0 DT_UJac - Time between calls to get Jacobians (s) +1000000.0 UJacSclFact - Scaling factor used in Jacobians (-) +---------------------- FEATURE SWITCHES AND FLAGS ------------------------------ +1 CompElast - Compute structural dynamics (switch) {1=ElastoDyn; 2=ElastoDyn + BeamDyn for blades} +1 CompInflow - Compute inflow wind velocities (switch) {0=still air; 1=InflowWind; 2=external from OpenFOAM} +2 CompAero - Compute aerodynamic loads (switch) {0=None; 1=AeroDyn v14; 2=AeroDyn v15} +1 CompServo - Compute control and electrical-drive dynamics (switch) {0=None; 1=ServoDyn} +0 CompHydro - Compute hydrodynamic loads (switch) {0=None; 1=HydroDyn} +0 CompSub - Compute sub-structural dynamics (switch) {0=None; 1=SubDyn; 2=External Platform MCKF} +0 CompMooring - Compute mooring system (switch) {0=None; 1=MAP++; 2=FEAMooring; 3=MoorDyn; 4=OrcaFlex} +0 CompIce - Compute ice loads (switch) {0=None; 1=IceFloe; 2=IceDyn} +---------------------- INPUT FILES --------------------------------------------- +"BAR_10_ElastoDyn.dat" EDFile - Name of file containing ElastoDyn input parameters (quoted string) +"BAR_10_BeamDyn.dat" BDBldFile(1) - Name of file containing BeamDyn input parameters for blade 1 (quoted string) +"BAR_10_BeamDyn.dat" BDBldFile(2) - Name of file containing BeamDyn input parameters for blade 2 (quoted string) +"BAR_10_BeamDyn.dat" BDBldFile(3) - Name of file containing BeamDyn input parameters for blade 3 (quoted string) +"BAR_10_InflowFile.dat" InflowFile - Name of file containing inflow wind input parameters (quoted string) +"BAR_10_AeroDyn15.dat" AeroFile - Name of file containing aerodynamic input parameters (quoted string) +"BAR_10_ServoDyn.dat" ServoFile - Name of file containing control and electrical-drive input parameters (quoted string) +"unused" HydroFile - Name of file containing hydrodynamic input parameters (quoted string) +"unused" SubFile - Name of file containing sub-structural input parameters (quoted string) +"unused" MooringFile - Name of file containing mooring system input parameters (quoted string) +"unused" IceFile - Name of file containing ice input parameters (quoted string) +---------------------- OUTPUT -------------------------------------------------- +True SumPrint - Print summary data to ".sum" (flag) +5.0 SttsTime - Amount of time between screen status messages (s) +99999.0 ChkptTime - Amount of time between creating checkpoint files for potential restart (s) +"default" DT_Out - Time step for tabular output (s) (or "default") +0.0 TStart - Time to begin tabular output (s) +2 OutFileFmt - Format for tabular (time-marching) output file (switch) {1: text file [.out], 2: binary file [.outb], 3: both} +True TabDelim - Use tab delimiters in text tabular output file? (flag) {uses spaces if false} +"ES10.3E2" OutFmt - Format used for text tabular output, excluding the time channel. Resulting field should be 10 characters. (quoted string) +---------------------- LINEARIZATION ------------------------------------------- +False Linearize - Linearization analysis (flag) +False CalcSteady - Calculate a steady-state periodic operating point before linearization? [unused if Linearize=False] (flag) +3 TrimCase - Controller parameter to be trimmed {1:yaw; 2:torque; 3:pitch} [used only if CalcSteady=True] (-) +0.001 TrimTol - Tolerance for the rotational speed convergence [used only if CalcSteady=True] (-) +0.01 TrimGain - Proportional gain for the rotational speed error (>0) [used only if CalcSteady=True] (rad/(rad/s) for yaw or pitch; Nm/(rad/s) for torque) +0 Twr_Kdmp - Damping factor for the tower [used only if CalcSteady=True] (N/(m/s)) +0 Bld_Kdmp - Damping factor for the blades [used only if CalcSteady=True] (N/(m/s)) +2 NLinTimes - Number of times to linearize (-) [>=1] [unused if Linearize=False] +30.000000, 60.000000 LinTimes - List of times at which to linearize (s) [1 to NLinTimes] [used only when Linearize=True and CalcSteady=False] +1 LinInputs - Inputs included in linearization (switch) {0=none; 1=standard; 2=all module inputs (debug)} [unused if Linearize=False] +1 LinOutputs - Outputs included in linearization (switch) {0=none; 1=from OutList(s); 2=all module outputs (debug)} [unused if Linearize=False] +False LinOutJac - Include full Jacobians in linearization output (for debug) (flag) [unused if Linearize=False; used only if LinInputs=LinOutputs=2] +False LinOutMod - Write module-level linearization output files in addition to output for full system? (flag) [unused if Linearize=False] +---------------------- VISUALIZATION ------------------------------------------ +0 WrVTK - VTK visualization data output: (switch) {0=none; 1=initialization data only; 2=animation} +2 VTK_type - Type of VTK visualization data: (switch) {1=surfaces; 2=basic meshes (lines/points); 3=all meshes (debug)} [unused if WrVTK=0] +False VTK_fields - Write mesh fields to VTK data files? (flag) {true/false} [unused if WrVTK=0] +15.0 VTK_fps - Frame rate for VTK output (frames per second){will use closest integer multiple of DT} [used only if WrVTK=2] diff --git a/Test_Cases/BAR_10/BAR_10_AeroDyn15.dat b/Test_Cases/BAR_10/BAR_10_AeroDyn15.dat new file mode 100644 index 000000000..d0bf68294 --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_AeroDyn15.dat @@ -0,0 +1,121 @@ +------- AERODYN v15.03.* INPUT FILE ------------------------------------------------ +Generated with AeroElasticSE FAST driver +====== General Options ============================================================================ +False Echo - Echo the input to ".AD.ech"? (flag) +"default" DTAero - Time interval for aerodynamic calculations {or "default"} (s) +1 WakeMod - Type of wake/induction model (switch) {0=none, 1=BEMT} +2 AFAeroMod - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model} [must be 1 when linearizing] +1 TwrPotent - Type tower influence on wind based on potential flow around the tower (switch) {0=none, 1=baseline potential flow, 2=potential flow with Bak correction} +True TwrShadow - Calculate tower influence on wind based on downstream tower shadow? (flag) +True TwrAero - Calculate tower aerodynamic loads? (flag) +False FrozenWake - Assume frozen wake during linearization? (flag) [used only when WakeMod=1 and when linearizing] +False CavitCheck - Perform cavitation check? (flag) TRUE will turn off unsteady aerodynamics +False CompAA Flag to compute AeroAcoustics calculation [only used when WakeMod=1 or 2] +"AeroAcousticsInput.dat" AA_InputFile - Aeroacoustics input file +====== Environmental Conditions =================================================================== + 1.225000000000000e+00 AirDens - Air density (kg/m^3) + 1.477551020408163e-05 KinVisc - Kinematic air viscosity (m^2/s) + 3.350000000000000e+02 SpdSound - Speed of sound (m/s) + 1.035000000000000e+05 Patm - Atmospheric pressure (Pa) [used only when CavitCheck=True] + 1.700000000000000e+03 Pvap - Vapour pressure of fluid (Pa) [used only when CavitCheck=True] + 5.000000000000000e-01 FluidDepth - Water depth above mid-hub height (m) [used only when CavitCheck=True] +====== Blade-Element/Momentum Theory Options ====================================================== [used only when WakeMod=1] +2 SkewMod - Type of skewed-wake correction model (switch) {1=uncoupled, 2=Pitt/Peters, 3=coupled} [used only when WakeMod=1] +"default" SkewModFactor - Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when SkewMod=2; unused when WakeMod=0] +True TipLoss - Use the Prandtl tip-loss model? (flag) [used only when WakeMod=1] +True HubLoss - Use the Prandtl hub-loss model? (flag) [used only when WakeMod=1] +True TanInd - Include tangential induction in BEMT calculations? (flag) [used only when WakeMod=1] +True AIDrag - Include the drag term in the axial-induction calculation? (flag) [used only when WakeMod=1] +True TIDrag - Include the drag term in the tangential-induction calculation? (flag) [used only when WakeMod=1 and TanInd=TRUE] +"Default" IndToler - Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [used only when WakeMod=1] +100 MaxIter - Maximum number of iteration steps (-) [used only when WakeMod=1] +====== Dynamic Blade-Element/Momentum Theory Options ====================================================== [used only when WakeMod=1] +1 DBEMT_Mod - Type of dynamic BEMT (DBEMT) model {1=constant tau1, 2=time-dependent tau1} (-) [used only when WakeMod=2] +20 tau1_const - Time constant for DBEMT (s) [used only when WakeMod=2 and DBEMT_Mod=1] +====== OLAF -- cOnvecting LAgrangian Filaments (Free Vortex Wake) Theory Options ================== [used only when WakeMod=3] +"unused" OLAFInputFileName - Input file for OLAF [used only when WakeMod=3] +====== Beddoes-Leishman Unsteady Airfoil Aerodynamics Options ===================================== [used only when AFAeroMod=2] +3 UAMod Unsteady Aero Model Switch (switch) {1=Baseline model (Original), 2=Gonzalez's variant (changes in Cn,Cc,Cm), 3=Minemma/Pierce variant (changes in Cc and Cm)} [used only when AFAeroMod=2] +True FLookup Flag to indicate whether a lookup for f' will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when AFAeroMod=2] +====== Airfoil Information ========================================================================= +3 AFTabMod - Interpolation method for multiple airfoil tables {1=1D interpolation on AoA (first table only); 2=2D interpolation on AoA and Re; 3=2D interpolation on AoA and UserProp} (-) +1 InCol_Alfa - The column in the airfoil tables that contains the angle of attack (-) +2 InCol_Cl - The column in the airfoil tables that contains the lift coefficient (-) +3 InCol_Cd - The column in the airfoil tables that contains the drag coefficient (-) +4 InCol_Cm - The column in the airfoil tables that contains the pitching-moment coefficient; use zero if there is no Cm column (-) +0 InCol_Cpmin - The column in the airfoil tables that contains the Cpmin coefficient; use zero if there is no Cpmin column (-) +30 NumAFfiles - Number of airfoil files used (-) +"Airfoils/BAR_10_AeroDyn15_Polar_00.dat" AFNames - Airfoil file names (NumAFfiles lines) (quoted strings) +"Airfoils/BAR_10_AeroDyn15_Polar_01.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_02.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_03.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_04.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_05.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_06.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_07.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_08.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_09.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_10.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_11.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_12.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_13.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_14.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_15.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_16.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_17.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_18.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_19.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_20.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_21.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_22.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_23.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_24.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_25.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_26.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_27.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_28.dat" +"Airfoils/BAR_10_AeroDyn15_Polar_29.dat" +====== Rotor/Blade Properties ===================================================================== +True UseBlCm - Include aerodynamic pitching moment in calculations? (flag) +"BAR_10_AeroDyn15_blade.dat" ADBlFile(1) - Name of file containing distributed aerodynamic properties for Blade #1 (-) +"BAR_10_AeroDyn15_blade.dat" ADBlFile(2) - Name of file containing distributed aerodynamic properties for Blade #2 (-) [unused if NumBl < 2] +"BAR_10_AeroDyn15_blade.dat" ADBlFile(3) - Name of file containing distributed aerodynamic properties for Blade #3 (-) [unused if NumBl < 3] +====== Tower Influence and Aerodynamics ============================================================= [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True] +9 NumTwrNds - Number of tower nodes used in the analysis (-) [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True] +TwrElev TwrDiam TwrCd +(m) (m) (-) + 2.740000000000000e+01 6.000000000000000e+00 1.000000000000000e+00 + 4.110000000000000e+01 6.000000000000000e+00 1.000000000000000e+00 + 5.480000000000000e+01 6.000000000000000e+00 1.000000000000000e+00 + 6.850000000000000e+01 6.000000000000000e+00 1.000000000000000e+00 + 8.220000000000000e+01 6.000000000000000e+00 1.000000000000000e+00 + 9.590000000000001e+01 6.000000000000000e+00 1.000000000000000e+00 + 1.096000000000000e+02 6.000000000000000e+00 1.000000000000000e+00 + 1.233000000000000e+02 5.890792130000000e+00 1.000000000000000e+00 + 1.370000000000000e+02 5.530325920000000e+00 1.000000000000000e+00 +====== Tower Influence and Aerodynamics ============================================================= [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True] +True SumPrint - Generate a summary file listing input options and interpolated properties to ".AD.sum"? (flag) +9 NBlOuts - Number of blade node outputs [0 - 9] (-) +4, 7, 10, 13, 16, 18, 21, 24, 27 BlOutNd - Blade nodes whose values will be output (-) +0 NTwOuts - Number of tower node outputs [0 - 9] (-) +1, 2, 6 TwOutNd - Tower nodes whose values will be output (-) + OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"RtAeroCp" +"RtAeroCq" +"RtAeroCt" +"RtAeroFxh" +"RtAeroFyh" +"RtAeroFzh" +"RtAeroMxh" +"RtAeroMyh" +"RtAeroMzh" +"RtAeroPwr" +"RtArea" +"RtSkew" +"RtSpeed" +"RtTSR" +"RtVAvgxh" +"RtVAvgyh" +"RtVAvgzh" +END of input file (the word "END" must appear in the first 3 columns of this last OutList line) +--------------------------------------------------------------------------------------- diff --git a/Test_Cases/BAR_10/BAR_10_AeroDyn15_blade.dat b/Test_Cases/BAR_10/BAR_10_AeroDyn15_blade.dat new file mode 100644 index 000000000..36fbc534d --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_AeroDyn15_blade.dat @@ -0,0 +1,36 @@ +------- AERODYN v15.00.* BLADE DEFINITION INPUT FILE ------------------------------------- +Generated with AeroElasticSE FAST driver +====== Blade Properties ================================================================= +30 NumBlNds - Number of blade nodes used in the analysis (-) + BlSpn BlCrvAC BlSwpAC BlCrvAng BlTwist BlChord BlAFID + (m) (m) (m) (deg) (deg) (m) (-) + 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.424274410118667e-01 2.000195662801704e+01 4.500000000000000e+00 1 + 3.448147165807186e+00 1.458960863306122e-02 0.000000000000000e+00 4.338838147798059e-01 1.869281515590605e+01 4.516534551546473e+00 2 + 6.896294331614373e+00 5.222307680765803e-02 0.000000000000000e+00 7.772747344869628e-01 1.723775189586749e+01 4.592554552493484e+00 3 + 1.034444149742156e+01 1.081418907915483e-01 0.000000000000000e+00 1.013880921140583e+00 1.565295516552572e+01 4.720268647024349e+00 4 + 1.379258866322875e+01 1.742505002804242e-01 0.000000000000000e+00 1.105016333380147e+00 1.395461328250509e+01 4.878450369199802e+00 5 + 1.724073582903593e+01 2.411367733629882e-01 0.000000000000000e+00 1.045520805727075e+00 1.179009052949377e+01 5.042359720446862e+00 6 + 2.068888299484312e+01 3.000855814876169e-01 0.000000000000000e+00 8.434325399704697e-01 9.030646264023996e+00 5.188803972023129e+00 7 + 2.413703016065030e+01 3.426512133995469e-01 0.000000000000000e+00 4.963004972049473e-01 6.514452703039312e+00 5.295553992403517e+00 8 + 2.758517732645749e+01 3.598210721982613e-01 0.000000000000000e+00 4.100311360772970e-02 5.092767547617353e+00 5.338896150380656e+00 9 + 3.103332449226468e+01 3.475864724747936e-01 0.000000000000000e+00 -3.764718277709429e-01 5.007781203147269e+00 5.279965468965895e+00 10 + 3.448147165807187e+01 3.145081037342804e-01 0.000000000000000e+00 -6.707222591415359e-01 5.011682596238479e+00 5.130497127272649e+00 11 + 3.792961882387905e+01 2.668581446781227e-01 0.000000000000000e+00 -8.610742389804059e-01 5.016386430611917e+00 4.932012082974397e+00 12 + 4.137776598968624e+01 2.108704900449745e-01 0.000000000000000e+00 -1.050055899641404e+00 5.019645870677343e+00 4.726948254003497e+00 13 + 4.482591315549342e+01 1.404772970428940e-01 0.000000000000000e+00 -1.436001682420033e+00 4.955933183905627e+00 4.529103136443267e+00 14 + 4.827406032130060e+01 3.804705339184235e-02 0.000000000000000e+00 -1.921466585191059e+00 4.598859000048244e+00 4.308154931839570e+00 15 + 5.172220748710780e+01 -9.075291861109813e-02 0.000000000000000e+00 -2.270151583966058e+00 4.062682788269900e+00 4.071095673436996e+00 16 + 5.517035465291498e+01 -2.351238106674240e-01 0.000000000000000e+00 -2.521391544278298e+00 3.502062737293423e+00 3.830786554698718e+00 17 + 5.861850181872217e+01 -3.941373321774326e-01 0.000000000000000e+00 -2.914553888094485e+00 3.056263371539652e+00 3.593777870237168e+00 18 + 6.206664898452937e+01 -5.857771121448270e-01 0.000000000000000e+00 -3.417979729504281e+00 2.683718655202754e+00 3.353572396827501e+00 19 + 6.551479615033654e+01 -8.052918056877612e-01 0.000000000000000e+00 -3.841671513220306e+00 2.313326944439679e+00 3.109726809552745e+00 20 + 6.999738746588588e+01 -1.117133330181069e+00 0.000000000000000e+00 -4.040512846940876e+00 1.727962964934468e+00 2.790105709190898e+00 21 + 7.241109048195092e+01 -1.291217230710623e+00 0.000000000000000e+00 -4.369423528262800e+00 1.350028708204907e+00 2.617804574163026e+00 22 + 7.585923764775811e+01 -1.563729699368572e+00 0.000000000000000e+00 -4.764927397171833e+00 5.536320221223768e-01 2.372555490428877e+00 23 + 7.999701424672674e+01 -1.921363548420740e+00 0.000000000000000e+00 -5.049147889980621e+00 -6.033015076624596e-01 2.075014497599436e+00 24 + 8.275553197937248e+01 -2.170674211150047e+00 0.000000000000000e+00 -5.334312393250934e+00 -1.378770006800686e+00 1.873608174226736e+00 25 + 8.620367914517965e+01 -2.498377786701397e+00 0.000000000000000e+00 -5.597668855696302e+00 -2.196615098977884e+00 1.613397704590236e+00 26 + 8.965182631098685e+01 -2.843355364557663e+00 0.000000000000000e+00 -5.918844635170081e+00 -2.896995911582864e+00 1.345514466000822e+00 27 + 9.309997347679402e+01 -3.209521519658618e+00 0.000000000000000e+00 -6.272659124733690e+00 -3.548985000848492e+00 1.070504482493432e+00 28 + 9.654812064260121e+01 -3.596844428631247e+00 0.000000000000000e+00 -6.581918680184479e+00 -4.145342284037413e+00 7.881317167515849e-01 29 + 9.999626780840840e+01 -3.999999999999999e+00 0.000000000000000e+00 -6.714350093114265e+00 -4.678827678412275e+00 5.000000000000003e-01 30 diff --git a/Test_Cases/BAR_10/BAR_10_BeamDyn.dat b/Test_Cases/BAR_10/BAR_10_BeamDyn.dat new file mode 100644 index 000000000..758feb4ec --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_BeamDyn.dat @@ -0,0 +1,210 @@ +--------- BEAMDYN with OpenFAST INPUT FILE ------------------------------------------- +Generated with AeroElasticSE FAST driver +---------------------- SIMULATION CONTROL -------------------------------------- +True Echo - Echo input data to ".ech" (flag) +True QuasiStaticInit - Use quasistatic pre-conditioning with centripetal accelerations in initialization (flag) [dynamic solve only] +0 rhoinf - Numerical damping parameter for generalized-alpha integrator +2 quadrature - Quadrature method: 1=Gaussian; 2=Trapezoidal (switch) +"DEFAULT" refine - Refinement factor for trapezoidal quadrature (-). DEFAULT = 1 [used only when quadrature=2] +"DEFAULT" n_fact - Factorization frequency (-). DEFAULT = 5 +"DEFAULT" DTBeam - Time step size (s). +"DEFAULT" load_retries - Number of factored load retries before quitting the aimulation +"DEFAULT" NRMax - Max number of iterations in Newton-Ralphson algorithm (-). DEFAULT = 10 +"DEFAULT" stop_tol - Tolerance for stopping criterion (-) +"DEFAULT" tngt_stf_fd - Flag to use finite differenced tangent stiffness matrix (-) +"DEFAULT" tngt_stf_comp - Flag to compare analytical finite differenced tangent stiffness matrix (-) +"DEFAULT" tngt_stf_pert - perturbation size for finite differencing (-) +"DEFAULT" tngt_stf_difftol - Maximum allowable relative difference between analytical and fd tangent stiffness (-) +True RotStates - Orient states in the rotating frame during linearization? (flag) [used only when linearizing] +---------------------- GEOMETRY PARAMETER -------------------------------------- +1 member_total - Total number of members (-) +50 kp_total - Total number of key points (-) [must be at least 3] +1 50 - Member number; Number of key points in this member + kp_xr kp_yr kp_zr initial_twist + (m) (m) (m) (deg) + 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 2.00020000000000e+01 + 8.63467000000000e-03 0.00000000000000e+00 2.04074000000000e+00 1.92272000000000e+01 + 2.15019000000000e-02 0.00000000000000e+00 4.08148000000000e+00 1.84256000000000e+01 + 4.37747000000000e-02 0.00000000000000e+00 6.12222000000000e+00 1.75644000000000e+01 + 7.27647000000000e-02 0.00000000000000e+00 8.16296000000000e+00 1.66556000000000e+01 + 1.05859000000000e-01 0.00000000000000e+00 1.02037000000000e+01 1.57176000000000e+01 + 1.44569000000000e-01 0.00000000000000e+00 1.22444000000000e+01 1.47171000000000e+01 + 1.83806000000000e-01 0.00000000000000e+00 1.42852000000000e+01 1.36454000000000e+01 + 2.23391000000000e-01 0.00000000000000e+00 1.63259000000000e+01 1.23644000000000e+01 + 2.60385000000000e-01 0.00000000000000e+00 1.83667000000000e+01 1.08890000000000e+01 + 2.95273000000000e-01 0.00000000000000e+00 2.04074000000000e+01 9.25591000000000e+00 + 3.21803000000000e-01 0.00000000000000e+00 2.24481000000000e+01 7.74687000000000e+00 + 3.44403000000000e-01 0.00000000000000e+00 2.44889000000000e+01 6.36938000000000e+00 + 3.54565000000000e-01 0.00000000000000e+00 2.65296000000000e+01 5.52798000000000e+00 + 3.56325000000000e-01 0.00000000000000e+00 2.85704000000000e+01 5.06849000000000e+00 + 3.49085000000000e-01 0.00000000000000e+00 3.06111000000000e+01 5.01819000000000e+00 + 3.32060000000000e-01 0.00000000000000e+00 3.26518000000000e+01 5.00961000000000e+00 + 3.11591000000000e-01 0.00000000000000e+00 3.46926000000000e+01 5.01197000000000e+00 + 2.83390000000000e-01 0.00000000000000e+00 3.67333000000000e+01 5.01475000000000e+00 + 2.53147000000000e-01 0.00000000000000e+00 3.87741000000000e+01 5.01718000000000e+00 + 2.20011000000000e-01 0.00000000000000e+00 4.08148000000000e+01 5.01911000000000e+00 + 1.80702000000000e-01 0.00000000000000e+00 4.28555000000000e+01 4.99234000000000e+00 + 1.38387000000000e-01 0.00000000000000e+00 4.48963000000000e+01 4.94865000000000e+00 + 7.77649000000000e-02 0.00000000000000e+00 4.69370000000000e+01 4.73732000000000e+00 + 1.17613000000000e-02 0.00000000000000e+00 4.89778000000000e+01 4.48944000000000e+00 +-6.44672000000000e-02 0.00000000000000e+00 5.10185000000000e+01 4.17211000000000e+00 +-1.46733000000000e-01 0.00000000000000e+00 5.30592000000000e+01 3.84530000000000e+00 +-2.32177000000000e-01 0.00000000000000e+00 5.51000000000000e+01 3.51350000000000e+00 +-3.25989000000000e-01 0.00000000000000e+00 5.71407000000000e+01 3.24732000000000e+00 +-4.25425000000000e-01 0.00000000000000e+00 5.91815000000000e+01 2.99544000000000e+00 +-5.38845000000000e-01 0.00000000000000e+00 6.12222000000000e+01 2.77495000000000e+00 +-6.61935000000000e-01 0.00000000000000e+00 6.32629000000000e+01 2.55522000000000e+00 +-7.91852000000000e-01 0.00000000000000e+00 6.53037000000000e+01 2.33600000000000e+00 +-9.31171000000000e-01 0.00000000000000e+00 6.73444000000000e+01 2.08867000000000e+00 +-1.07298000000000e+00 0.00000000000000e+00 6.93852000000000e+01 1.82382000000000e+00 +-1.22016000000000e+00 0.00000000000000e+00 7.14259000000000e+01 1.50429000000000e+00 +-1.37464000000000e+00 0.00000000000000e+00 7.34666000000000e+01 1.10623000000000e+00 +-1.53592000000000e+00 0.00000000000000e+00 7.55074000000000e+01 6.34897000000000e-01 +-1.70837000000000e+00 0.00000000000000e+00 7.75481000000000e+01 8.19260000000000e-02 +-1.88448000000000e+00 0.00000000000000e+00 7.95889000000000e+01 -4.88564000000000e-01 +-2.06891000000000e+00 0.00000000000000e+00 8.16296000000000e+01 -1.06225000000000e+00 +-2.25762000000000e+00 0.00000000000000e+00 8.36703000000000e+01 -1.59575000000000e+00 +-2.45156000000000e+00 0.00000000000000e+00 8.57111000000000e+01 -2.07978000000000e+00 +-2.65327000000000e+00 0.00000000000000e+00 8.77518000000000e+01 -2.51107000000000e+00 +-2.85830000000000e+00 0.00000000000000e+00 8.97926000000000e+01 -2.92361000000000e+00 +-3.07501000000000e+00 0.00000000000000e+00 9.18333000000000e+01 -3.30948000000000e+00 +-3.29647000000000e+00 0.00000000000000e+00 9.38740000000000e+01 -3.68286000000000e+00 +-3.52570000000000e+00 0.00000000000000e+00 9.59148000000000e+01 -4.03581000000000e+00 +-3.76140000000000e+00 0.00000000000000e+00 9.79555000000000e+01 -4.36309000000000e+00 +-4.00000000000000e+00 0.00000000000000e+00 9.99963000000000e+01 -4.67883000000000e+00 +---------------------- MESH PARAMETER ------------------------------------------ +5 order_elem - Order of interpolation (basis) function (-) +---------------------- MATERIAL PARAMETER -------------------------------------- +"/Users/nabbas/Documents/TurbineModels/WISDEM_Models/BAR_10/BAR_10_BeamDyn_Blade.dat" BldFile - Name of file containing properties for blade (quoted string) +---------------------- PITCH ACTUATOR PARAMETERS ------------------------------- +False UsePitchAct - Whether a pitch actuator should be used (flag) +200.0 PitchJ - Pitch actuator inertia (kg-m^2) [used only when UsePitchAct is true] +20000000.0 PitchK - Pitch actuator stiffness (kg-m^2/s^2) [used only when UsePitchAct is true] +500000.0 PitchC - Pitch actuator damping (kg-m^2/s) [used only when UsePitchAct is true] +---------------------- OUTPUTS ------------------------------------------------- +True SumPrint - Print summary data to ".sum" (flag) +"ES10.3E2" OutFmt - Format used for text tabular output, excluding the time channel. +9 NNodeOuts - Number of nodes to output to file [0 - 9] (-) +3, 6, 9, 12, 15, 18, 21, 24, 27 OutNd - Nodes whose values will be output (-) OutNd - Nodes whose values will be output (-) OutNd - Nodes whose values will be output (-) OutNd - Nodes whose values will be output (-) OutNd - Nodes whose values will be output (-) OutNd - Nodes whose values will be output (-) OutNd - Nodes whose values will be output (-) OutNd - Nodes whose values will be output (-) OutNd - Nodes whose values will be output (-) + OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"N1Fxl" +"N1Fyl" +"N1Fzl" +"N1Mxl" +"N1Myl" +"N1Mzl" +"N1RDxr" +"N1RDyr" +"N1RDzr" +"N1TDxr" +"N1TDyr" +"N1TDzr" +"N2Fxl" +"N2Fyl" +"N2Fzl" +"N2Mxl" +"N2Myl" +"N2Mzl" +"N2RDxr" +"N2RDyr" +"N2RDzr" +"N2TDxr" +"N2TDyr" +"N2TDzr" +"N3Fxl" +"N3Fyl" +"N3Fzl" +"N3Mxl" +"N3Myl" +"N3Mzl" +"N3RDxr" +"N3RDyr" +"N3RDzr" +"N3TDxr" +"N3TDyr" +"N3TDzr" +"N4Fxl" +"N4Fyl" +"N4Fzl" +"N4Mxl" +"N4Myl" +"N4Mzl" +"N4RDxr" +"N4RDyr" +"N4RDzr" +"N4TDxr" +"N4TDyr" +"N4TDzr" +"N5Fxl" +"N5Fyl" +"N5Fzl" +"N5Mxl" +"N5Myl" +"N5Mzl" +"N5RDxr" +"N5RDyr" +"N5RDzr" +"N5TDxr" +"N5TDyr" +"N5TDzr" +"N6Fxl" +"N6Fyl" +"N6Fzl" +"N6Mxl" +"N6Myl" +"N6Mzl" +"N6RDxr" +"N6RDyr" +"N6RDzr" +"N6TDxr" +"N6TDyr" +"N6TDzr" +"N7Fxl" +"N7Fyl" +"N7Fzl" +"N7Mxl" +"N7Myl" +"N7Mzl" +"N7RDxr" +"N7RDyr" +"N7RDzr" +"N7TDxr" +"N7TDyr" +"N7TDzr" +"N8Fxl" +"N8Fyl" +"N8Fzl" +"N8Mxl" +"N8Myl" +"N8Mzl" +"N8RDxr" +"N8RDyr" +"N8RDzr" +"N8TDxr" +"N8TDyr" +"N8TDzr" +"N9Fxl" +"N9Fyl" +"N9Fzl" +"N9Mxl" +"N9Myl" +"N9Mzl" +"N9RDxr" +"N9RDyr" +"N9RDzr" +"N9TDxr" +"N9TDyr" +"N9TDzr" +"RootFxr" +"RootFyr" +"RootFzr" +"RootMxr" +"RootMyr" +"RootMzr" +"TipRDxr" +"TipRDyr" +"TipRDzr" +"TipTDxr" +"TipTDyr" +"TipTDzr" +END of input file (the word "END" must appear in the first 3 columns of this last OutList line)--------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/Test_Cases/BAR_10/BAR_10_BeamDyn_Blade.dat b/Test_Cases/BAR_10/BAR_10_BeamDyn_Blade.dat new file mode 100644 index 000000000..72b8002bb --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_BeamDyn_Blade.dat @@ -0,0 +1,461 @@ +------- BEAMDYN V1.00.* INDIVIDUAL BLADE INPUT FILE -------------------------- +Generated with AeroElasticSE FAST driver +---------------------- BLADE PARAMETERS -------------------------------------- +30 station_total - Number of blade input stations (-) +1 damp_type - Damping type: 0: no damping; 1: damped +---------------------- DAMPING COEFFICIENT------------------------------------ + mu1 mu2 mu3 mu4 mu5 mu6 + (-) (-) (-) (-) (-) (-) + 0.019500 0.019500 0.019500 0.019500 0.019500 0.019500 +---------------------- DISTRIBUTED PROPERTIES--------------------------------- + 0.000000000000000e+00 + 4.770247573339121e+09 -3.984899757757751e+04 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.460231097787238e+03 +-3.984899834843013e+04 4.770224008735896e+09 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -9.961665601816061e+03 + 0.000000000000000e+00 0.000000000000000e+00 3.256270983317995e+10 -3.053668746228423e+04 6.799235437683306e+04 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -3.053668677428947e+04 7.941501599948943e+10 6.637355481563393e+05 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 6.799235357595088e+04 6.637355478779121e+05 7.941540804362143e+10 0.000000000000000e+00 + 4.460231098077190e+03 -9.961665602258807e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.650501198153704e+10 + + 2.215070649023020e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.076988222007733e-03 + 0.000000000000000e+00 2.215070649023020e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -4.625224138840377e-03 + 0.000000000000000e+00 0.000000000000000e+00 2.215070649023020e+03 -2.076988222007733e-03 4.625224138840377e-03 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -2.076988222007733e-03 5.403511551482218e+03 4.515489478594500e-02 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.625224138840377e-03 4.515489478594500e-02 5.403538223406540e+03 0.000000000000000e+00 + 2.076988222007733e-03 -4.625224138840377e-03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.080704977488875e+04 + + 3.448300000000000e-02 + 3.522472879480290e+09 -3.193155459467362e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.165722027907846e+08 +-3.193155459447857e+07 3.861086364400263e+09 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.366649206566114e+07 + 0.000000000000000e+00 0.000000000000000e+00 2.635505656890550e+10 1.615128556183108e+09 -4.816004371617984e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.615128556183310e+09 6.111362070205019e+10 -1.888381189250632e+09 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -4.816004371656766e+07 -1.888381189250261e+09 6.172311564938062e+10 0.000000000000000e+00 +-2.165722027908184e+08 1.366649206567865e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.443352259709277e+10 + + 1.760219955515406e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -1.107368321378544e+02 + 0.000000000000000e+00 1.760219955515406e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.223039536990274e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.760219955515406e+03 1.107368321378544e+02 -4.223039536990274e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.107368321378544e+02 4.146738694207865e+03 -8.064926423210188e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -4.223039536990274e+00 -8.064926423210188e+01 4.065878516951473e+03 0.000000000000000e+00 +-1.107368321378544e+02 4.223039536990274e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 8.212617211159311e+03 + + 6.896600000000000e-02 + 2.318160861144246e+09 -4.811957733705697e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.844033653985652e+08 +-4.811957733708756e+07 3.136909906446401e+09 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.666663976090162e+07 + 0.000000000000000e+00 0.000000000000000e+00 2.126911044774579e+10 3.739237261973179e+09 -1.322648954327084e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.739237261973925e+09 4.717930233286318e+10 -2.813045584800922e+09 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.322648954339356e+08 -2.813045584800928e+09 4.154178423018131e+10 0.000000000000000e+00 +-2.844033653985579e+08 4.666663976090608e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.244384907790989e+10 + + 1.393665643494156e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.300335609374848e+02 + 0.000000000000000e+00 1.393665643494156e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 7.899399008885665e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.393665643494156e+03 2.300335609374848e+02 -7.899399008885665e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.300335609374848e+02 3.170864810533494e+03 -1.206165707556147e+02 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -7.899399008885665e+00 -1.206165707556147e+02 2.658278301086532e+03 0.000000000000000e+00 +-2.300335609374848e+02 7.899399008885665e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.829143111620055e+03 + + 1.034480000000000e-01 + 1.825737279538229e+09 6.846270480232520e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.218782700734496e+08 + 6.846270480238511e+07 2.584334578541875e+09 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.506175174836872e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.805182415680731e+10 4.825768993066940e+09 -1.444345085281812e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.825768993067580e+09 3.849479314146906e+10 -3.083056784935616e+09 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.444345085279017e+08 -3.083056784935446e+09 2.906370442650069e+10 0.000000000000000e+00 +-2.218782700735551e+08 5.506175174827601e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.436143030417579e+10 + + 1.248789467803009e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.077329014525188e+02 + 0.000000000000000e+00 1.248789467803009e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.347390902882987e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.248789467803009e+03 3.077329014525188e+02 -9.347390902882987e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.077329014525188e+02 2.550518033499863e+03 -1.619190236931812e+02 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -9.347390902882987e+00 -1.619190236931812e+02 1.869808332266751e+03 0.000000000000000e+00 +-3.077329014525188e+02 9.347390902882987e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.420326365766611e+03 + + 1.379310000000000e-01 + 1.174119723683907e+09 6.143689308484387e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -9.552524641260995e+07 + 6.143689308472798e+07 2.032363167919672e+09 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.264916571892215e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.530815900230529e+10 5.659421612095487e+09 -1.328285642655123e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.659421612095422e+09 3.249118933593572e+10 -2.663253594668299e+09 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.328285642655429e+08 -2.663253594668216e+09 2.010460685004771e+10 0.000000000000000e+00 +-9.552524641270612e+07 6.264916571880198e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 8.566077064839204e+09 + + 1.026380578646737e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.586324839906158e+02 + 0.000000000000000e+00 1.026380578646737e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 8.911466123030111e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.026380578646737e+03 3.586324839906158e+02 -8.911466123030111e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.586324839906158e+02 2.106610952155839e+03 -1.356121645352125e+02 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -8.911466123030111e+00 -1.356121645352125e+02 1.234041679384969e+03 0.000000000000000e+00 +-3.586324839906158e+02 8.911466123030111e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.340652631540824e+03 + + 1.724140000000000e-01 + 7.396781889656904e+08 5.651407823408754e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.338981227247336e+07 + 5.651407823388771e+07 1.524577340163473e+09 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.197655333800140e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.317946399073377e+10 5.636955687731308e+09 -1.497412466410624e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.636955687730878e+09 2.781952648142934e+10 -1.941222164088977e+09 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.497412466412919e+08 -1.941222164089160e+09 1.350534568664820e+10 0.000000000000000e+00 + 3.338981227243153e+07 6.197655333807281e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.614809259647534e+09 + + 8.550391266456804e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.615129301521856e+02 + 0.000000000000000e+00 8.550391266456804e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.026309175783423e+01 + 0.000000000000000e+00 0.000000000000000e+00 8.550391266456804e+02 3.615129301521856e+02 -1.026309175783423e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.615129301521856e+02 1.777871251039243e+03 -9.990610596477626e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.026309175783423e+01 -9.990610596477626e+01 7.890774385690676e+02 0.000000000000000e+00 +-3.615129301521856e+02 1.026309175783423e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.566948689608310e+03 + + 2.068970000000000e-01 + 5.384430007352219e+08 4.100142102038011e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.540018206762348e+07 + 4.100142101984204e+07 1.101754321557967e+09 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.901857724114156e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.186200961887268e+10 5.400933527178674e+09 -9.994033783594237e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.400933527178520e+09 2.489576699559869e+10 -1.397103161869804e+09 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -9.994033783581567e+07 -1.397103161870114e+09 1.084237870783296e+10 0.000000000000000e+00 + 4.540018206783453e+07 4.901857724104936e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.822354341274891e+09 + + 7.497101372186726e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.567730677263120e+02 + 0.000000000000000e+00 7.497101372186726e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 8.103734550863354e+00 + 0.000000000000000e+00 0.000000000000000e+00 7.497101372186726e+02 3.567730677263120e+02 -8.103734550863354e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.567730677263120e+02 1.586813074925564e+03 -7.459322154697340e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -8.103734550863354e+00 -7.459322154697340e+01 6.084073122595245e+02 0.000000000000000e+00 +-3.567730677263120e+02 8.103734550863354e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.195220387185087e+03 + + 2.413790000000000e-01 + 4.211266153626229e+08 2.369320885027900e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.199100809781991e+07 + 2.369320885024390e+07 8.025090667891625e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.100562100812210e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.103172381212501e+10 5.031089261897152e+09 -1.084731026318299e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.031089261897336e+09 2.271528513408695e+10 -8.863506516930918e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.084731026313449e+08 -8.863506516928589e+08 9.051325223620148e+09 0.000000000000000e+00 + 4.199100809799268e+07 4.100562100801194e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.790789631967016e+09 + + 6.808091442428768e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.418869382100867e+02 + 0.000000000000000e+00 6.808091442428768e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.049380198511072e+00 + 0.000000000000000e+00 0.000000000000000e+00 6.808091442428768e+02 3.418869382100867e+02 -9.049380198511072e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.418869382100867e+02 1.448361645400565e+03 -5.132452500856345e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -9.049380198511072e+00 -5.132452500856345e+01 4.918516456649199e+02 0.000000000000000e+00 +-3.418869382100867e+02 9.049380198511072e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.940213291065483e+03 + + 2.758620000000000e-01 + 3.439811437531344e+08 1.243709484286042e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.293522190961934e+07 + 1.243709484294660e+07 6.384043289486117e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.790256373878861e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.074763058978719e+10 5.098541956559017e+09 -1.262869502696299e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.098541956558778e+09 2.267555701869213e+10 -6.057279168599374e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.262869502697562e+08 -6.057279168600467e+08 7.387734520474618e+09 0.000000000000000e+00 + 4.293522190973167e+07 3.790256373899567e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.178115548360230e+09 + + 6.462812558325653e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.449688262931933e+02 + 0.000000000000000e+00 6.462812558325653e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.039948173283982e+01 + 0.000000000000000e+00 0.000000000000000e+00 6.462812558325653e+02 3.449688262931933e+02 -1.039948173283982e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.449688262931933e+02 1.418634603157223e+03 -3.909045993593786e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.039948173283982e+01 -3.909045993593786e+01 3.914968107657561e+02 0.000000000000000e+00 +-3.449688262931933e+02 1.039948173283982e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.810131413922985e+03 + + 3.103450000000000e-01 + 3.043495312921000e+08 9.696853813151589e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.311530925923581e+07 + 9.696853813271388e+06 5.992176877152234e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.696975216947528e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.077582904616207e+10 5.063242699268139e+09 -1.306212758674611e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.063242699267752e+09 2.203128393382463e+10 -5.217022059606396e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.306212758670371e+08 -5.217022059603593e+08 6.220496024416163e+09 0.000000000000000e+00 + 4.311530925906027e+07 3.696975216947912e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.096776240102999e+08 + + 6.370071323850901e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.469376329180468e+02 + 0.000000000000000e+00 6.370071323850901e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.081510947376605e+01 + 0.000000000000000e+00 0.000000000000000e+00 6.370071323850901e+02 3.469376329180468e+02 -1.081510947376605e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.469376329180468e+02 1.379642975586647e+03 -3.560120908362850e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.081510947376605e+01 -3.560120908362850e+01 3.247223406843415e+02 0.000000000000000e+00 +-3.469376329180468e+02 1.081510947376605e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.704365316270992e+03 + + 3.448280000000000e-01 + 2.845848150061659e+08 8.190556451924146e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.995100905581813e+07 + 8.190556451985472e+06 5.793729840893781e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.416415634405574e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.083263856187369e+10 4.935464636404202e+09 -1.036513835361660e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.935464636404625e+09 2.084760613434939e+10 -4.494162678520979e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.036513835360929e+08 -4.494162678522115e+08 5.536602909214222e+09 0.000000000000000e+00 + 3.995100905567519e+07 3.416415634397259e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 7.791073224410486e+08 + + 6.311752429414142e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.401353443235780e+02 + 0.000000000000000e+00 6.311752429414142e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.152480377533831e+00 + 0.000000000000000e+00 0.000000000000000e+00 6.311752429414142e+02 3.401353443235780e+02 -9.152480377533831e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.401353443235780e+02 1.301780724895766e+03 -3.142350917944670e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -9.152480377533831e+00 -3.142350917944670e+01 2.861430818992172e+02 0.000000000000000e+00 +-3.401353443235780e+02 9.152480377533831e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.587923806794978e+03 + + 3.793100000000000e-01 + 2.631780734752677e+08 6.988083598317422e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.704574864307746e+07 + 6.988083598572779e+06 5.553676729035794e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.109998094449219e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.077207981677551e+10 4.710928965901981e+09 -7.630924752142389e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.710928965902102e+09 1.912740527674263e+10 -3.804071079773227e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -7.630924752159004e+07 -3.804071079772663e+08 4.739834123992209e+09 0.000000000000000e+00 + 3.704574864309015e+07 3.109998094435429e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.471171216034913e+08 + + 6.182226881108822e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.239392110428916e+02 + 0.000000000000000e+00 6.182226881108822e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 7.408903722122412e+00 + 0.000000000000000e+00 0.000000000000000e+00 6.182226881108822e+02 3.239392110428916e+02 -7.408903722122412e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.239392110428916e+02 1.185435684440391e+03 -2.701775990227291e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -7.408903722122412e+00 -2.701775990227291e+01 2.425176298408380e+02 0.000000000000000e+00 +-3.239392110428916e+02 7.408903722122412e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.427953314281230e+03 + + 4.137930000000000e-01 + 2.419881637036452e+08 5.678427029465048e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.358128179496906e+07 + 5.678427029599924e+06 5.300375635640398e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.799725050054281e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.061935118531683e+10 4.458919270033268e+09 -4.937388059253047e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.458919270033006e+09 1.732124710228354e+10 -3.146763548767676e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -4.937388059235093e+07 -3.146763548768006e+08 3.980120291062102e+09 0.000000000000000e+00 + 3.358128179487027e+07 2.799725050059364e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.327468346705512e+08 + + 5.980542482719501e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.999341880542600e+02 + 0.000000000000000e+00 5.980542482719501e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.338874878215058e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.980542482719501e+02 2.999341880542600e+02 -6.338874878215058e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.999341880542600e+02 1.054098949108024e+03 -2.346906674043450e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -6.338874878215058e+00 -2.346906674043450e+01 2.014460868145994e+02 0.000000000000000e+00 +-2.999341880542600e+02 6.338874878215058e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.255545035922623e+03 + + 4.482760000000000e-01 + 1.462726184084327e+08 4.583860958312861e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.066727717401814e+07 + 4.583860958437584e+06 5.013590620430896e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.849489728336916e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.050804309423595e+10 4.767708840321080e+09 -2.483849966080967e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.767708840320960e+09 1.741156645457166e+10 -2.531716706508234e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -2.483849966091928e+07 -2.531716706509372e+08 3.293442790677125e+09 0.000000000000000e+00 + 3.066727717410317e+07 2.849489728331555e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.166178303272755e+08 + + 5.727497746852663e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.996908693597127e+02 + 0.000000000000000e+00 5.727497746852663e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.746199272037743e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.727497746852663e+02 2.996908693597127e+02 -3.746199272037743e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.996908693597127e+02 1.008494017308372e+03 -1.807201717805517e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -3.746199272037743e+00 -1.807201717805517e+01 1.639676992028768e+02 0.000000000000000e+00 +-2.996908693597127e+02 3.746199272037743e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.172461716511248e+03 + + 4.827590000000000e-01 + 1.320963618338835e+08 4.437018776888596e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.774283777105352e+07 + 4.437018777210519e+06 4.797493209692489e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.301480944218851e+07 + 0.000000000000000e+00 0.000000000000000e+00 1.005613354891101e+10 3.967494103231984e+09 -7.482685921251692e+06 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.967494103232025e+09 1.392509179035226e+10 -1.959584351502853e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -7.482685921148447e+06 -1.959584351502231e+08 2.659109987968522e+09 0.000000000000000e+00 + 2.774283777091362e+07 2.301480944217616e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.330289342719228e+08 + + 5.421185273310635e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.529908246031791e+02 + 0.000000000000000e+00 5.421185273310635e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.193326138777854e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.421185273310635e+02 2.529908246031791e+02 -2.193326138777854e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.529908246031791e+02 8.132522518880687e+02 -1.391136154951531e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -2.193326138777854e+00 -1.391136154951531e+01 1.312678946006719e+02 0.000000000000000e+00 +-2.529908246031791e+02 2.193326138777854e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.445201464887409e+02 + + 5.172410000000000e-01 + 1.212269819418538e+08 4.207437176192189e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.199416678866437e+07 + 4.207437176267863e+06 4.532777622229072e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.041205108373940e+07 + 0.000000000000000e+00 0.000000000000000e+00 9.638714396592222e+09 3.422499457256032e+09 -4.117965306151575e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.422499457255873e+09 1.145547601850548e+10 -1.646748042613544e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -4.117965306163201e+07 -1.646748042615272e+08 2.150206792502987e+09 0.000000000000000e+00 + 2.199416678874385e+07 2.041205108393800e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.717477505971903e+08 + + 5.149242731820076e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.199604907798816e+02 + 0.000000000000000e+00 5.149242731820076e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.704986907557240e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.149242731820076e+02 2.199604907798816e+02 -3.704986907557240e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.199604907798816e+02 6.698051157311071e+02 -1.173343171991153e+01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -3.704986907557240e+00 -1.173343171991153e+01 1.054834573934844e+02 0.000000000000000e+00 +-2.199604907798816e+02 3.704986907557240e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 7.752885731245897e+02 + + 5.517240000000000e-01 + 1.100527874921220e+08 3.672774318208897e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.997963072754912e+07 + 3.672774318430996e+06 4.306235056540900e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.843184163671936e+07 + 0.000000000000000e+00 0.000000000000000e+00 9.125684323146303e+09 2.854217180288573e+09 -6.545299134492288e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.854217180288506e+09 9.165618645902775e+09 -1.299332463327537e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -6.545299134492527e+07 -1.299332463327801e+08 1.705037411074425e+09 0.000000000000000e+00 + 1.997963072750649e+07 1.843184163677968e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.177945239778183e+08 + + 4.798926965293915e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -1.805385214066916e+02 + 0.000000000000000e+00 4.798926965293915e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.785445836613767e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.798926965293915e+02 1.805385214066916e+02 -4.785445836613767e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.805385214066916e+02 5.288015939958088e+02 -9.392114129522698e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -4.785445836613767e+00 -9.392114129522698e+00 8.292190686865629e+01 0.000000000000000e+00 +-1.805385214066916e+02 4.785445836613767e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.117235008644641e+02 + + 5.862070000000000e-01 + 9.951892050368853e+07 3.422645687464217e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.831886543316070e+07 + 3.422645687546335e+06 4.122026939450019e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.680531080007098e+07 + 0.000000000000000e+00 0.000000000000000e+00 8.548859736719538e+09 2.317398343117463e+09 -8.290667987114367e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.317398343117516e+09 7.155507530383301e+09 -1.011887595525428e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -8.290667987109180e+07 -1.011887595523818e+08 1.327699479706455e+09 0.000000000000000e+00 + 1.831886543311134e+07 1.680531080008660e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.721989734029821e+08 + + 4.464835503299560e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -1.493709138839762e+02 + 0.000000000000000e+00 4.464835503299560e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.449219491130735e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.464835503299560e+02 1.493709138839762e+02 -5.449219491130735e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.493709138839762e+02 4.152800823472263e+02 -7.459577124327755e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -5.449219491130735e+00 -7.459577124327755e+00 6.424817901550428e+01 0.000000000000000e+00 +-1.493709138839762e+02 5.449219491130735e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.795282613627292e+02 + + 6.206900000000000e-01 + 8.950724782204382e+07 3.141226775834228e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.639672091644919e+07 + 3.141226775809239e+06 3.928194791797634e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.501153830028218e+07 + 0.000000000000000e+00 0.000000000000000e+00 7.950179516508131e+09 1.894750246204079e+09 -9.549058581505808e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.894750246204069e+09 5.572057557958530e+09 -7.973418784478079e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -9.549058581506915e+07 -7.973418784480511e+07 1.009733814368292e+09 0.000000000000000e+00 + 1.639672091645256e+07 1.501153830032507e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.346700978657124e+08 + + 4.111996451366608e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -1.227066546580848e+02 + 0.000000000000000e+00 4.111996451366608e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.977047789670250e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.111996451366608e+02 1.227066546580848e+02 -5.977047789670250e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.227066546580848e+02 3.224536320013999e+02 -6.007419272122104e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -5.977047789670250e+00 -6.007419272122104e+00 4.859754171456361e+01 0.000000000000000e+00 +-1.227066546580848e+02 5.977047789670250e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.710511737159616e+02 + + 6.551720000000000e-01 + 8.035089718539880e+07 3.075764920283911e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.455461613204903e+07 + 3.075764920308255e+06 3.747024318224564e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.345062443137217e+07 + 0.000000000000000e+00 0.000000000000000e+00 7.319782818390590e+09 1.524429223135234e+09 -1.032797264180984e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.524429223135263e+09 4.257069004044103e+09 -6.317099469992490e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.032797264180983e+08 -6.317099469988931e+07 7.475658713622856e+08 0.000000000000000e+00 + 1.455461613203350e+07 1.345062443137904e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.037479207389452e+08 + + 3.765921922695787e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -1.001238360349572e+02 + 0.000000000000000e+00 3.765921922695787e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.130120250157399e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.765921922695787e+02 1.001238360349572e+02 -6.130120250157399e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.001238360349572e+02 2.466736055911741e+02 -4.726893792801819e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -6.130120250157399e+00 -4.726893792801819e+00 3.584071354608353e+01 0.000000000000000e+00 +-1.001238360349572e+02 6.130120250157399e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.825143191372581e+02 + + 6.896550000000000e-01 + 7.148322952061360e+07 3.090814756254141e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.311754957697497e+07 + 3.090814756268588e+06 3.618345510417857e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.235613894212512e+07 + 0.000000000000000e+00 0.000000000000000e+00 6.610807810210543e+09 1.117502483732816e+09 -1.036094923958902e+08 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.117502483732753e+09 3.040913991418890e+09 -4.498607463170114e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.036094923958771e+08 -4.498607463169143e+07 5.372990386728940e+08 0.000000000000000e+00 + 1.311754957697384e+07 1.235613894212191e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 7.860769447298086e+07 + + 3.380052202378541e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -7.556519912248328e+01 + 0.000000000000000e+00 3.380052202378541e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.814779754583449e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.380052202378541e+02 7.556519912248328e+01 -5.814779754583449e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 7.556519912248328e+01 1.772824063310896e+02 -3.340445731423449e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -5.814779754583449e+00 -3.340445731423449e+00 2.564235316538916e+01 0.000000000000000e+00 +-7.556519912248328e+01 5.814779754583449e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.029247594964782e+02 + + 7.241379999999999e-01 + 6.130343265298682e+07 3.065855688592481e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.803540627772607e+06 + 3.065855688623527e+06 3.451301934186209e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.102442272564019e+07 + 0.000000000000000e+00 0.000000000000000e+00 5.797968656754644e+09 8.377484352346565e+08 -9.824608251186350e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 8.377484352346623e+08 2.074357404754772e+09 -3.068669501972156e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -9.824608251185349e+07 -3.068669501970400e+07 3.707425285198439e+08 0.000000000000000e+00 + 9.803540627771989e+06 1.102442272564013e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.647390510040195e+07 + + 2.965432646646428e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -5.772599105797241e+01 + 0.000000000000000e+00 2.965432646646428e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.398240019166056e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.965432646646428e+02 5.772599105797241e+01 -5.398240019166056e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.772599105797241e+01 1.230382751503798e+02 -2.364277592816406e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -5.398240019166056e+00 -2.364277592816406e+00 1.766183917252984e+01 0.000000000000000e+00 +-5.772599105797241e+01 5.398240019166056e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.407001143229102e+02 + + 7.586210000000000e-01 + 5.101625709937492e+07 2.909394715608980e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.150439759571243e+06 + 2.909394715596682e+06 3.203504135514190e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.458345872702477e+06 + 0.000000000000000e+00 0.000000000000000e+00 4.943524513554797e+09 6.599517145396831e+08 -8.908709338840906e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 6.599517145396903e+08 1.361095572989316e+09 -2.057718257527785e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -8.908709338839743e+07 -2.057718257526868e+07 2.451374839362132e+08 0.000000000000000e+00 + 6.150439759574382e+06 9.458345872689715e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.880803601923399e+07 + + 2.528045629505922e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -4.395973896777179e+01 + 0.000000000000000e+00 2.528045629505922e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.771492346834684e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.528045629505922e+02 4.395973896777179e+01 -4.771492346834684e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.395973896777179e+01 8.172547014214017e+01 -1.593139408289010e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -4.771492346834684e+00 -1.593139408289010e+00 1.165719400914708e+01 0.000000000000000e+00 +-4.395973896777179e+01 4.771492346834684e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.338266415128692e+01 + + 7.931030000000000e-01 + 4.128118709720060e+07 2.568641458103254e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.086407673780798e+06 + 2.568641458104029e+06 2.878859840699766e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 8.276977957641175e+06 + 0.000000000000000e+00 0.000000000000000e+00 4.112402420600515e+09 4.568664019784147e+08 -8.397726887588295e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.568664019784101e+08 8.426685460773841e+08 -1.347347833592330e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -8.397726887588651e+07 -1.347347833592328e+07 1.500158823095670e+08 0.000000000000000e+00 + 4.086407673780364e+06 8.276977957650189e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.511012975612464e+07 + + 2.089671158591598e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -3.015323398119390e+01 + 0.000000000000000e+00 2.089671158591598e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.350126663308636e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.089671158591598e+02 3.015323398119390e+01 -4.350126663308636e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.015323398119390e+01 5.078978400122147e+01 -1.011914076130611e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -4.350126663308636e+00 -1.011914076130611e+00 7.110821523154352e+00 0.000000000000000e+00 +-3.015323398119390e+01 4.350126663308636e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.790060552437602e+01 + + 8.275860000000000e-01 + 3.398942164564822e+07 2.572489276726277e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.719259195402551e+06 + 2.572489276722106e+06 2.708494054796438e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 7.551953326520064e+06 + 0.000000000000000e+00 0.000000000000000e+00 3.409764656239368e+09 2.955685606369138e+08 -7.509344937109074e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.955685606369146e+08 5.390260927369211e+08 -9.138047300046315e+06 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -7.509344937109122e+07 -9.138047300045792e+06 8.512320017175896e+07 0.000000000000000e+00 + 3.719259195403707e+06 7.551953326520118e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.639537340003517e+07 + + 1.721882919488110e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -1.985864414087156e+01 + 0.000000000000000e+00 1.721882919488110e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.805815526960403e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.721882919488110e+02 1.985864414087156e+01 -3.805815526960403e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.985864414087156e+01 3.205232043022119e+01 -6.500954823443661e-01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -3.805815526960403e+00 -6.500954823443661e-01 4.039804976210757e+00 0.000000000000000e+00 +-1.985864414087156e+01 3.805815526960403e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.609212540643184e+01 + + 8.620690000000000e-01 + 2.751613990787407e+07 2.031098994146454e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.429663452086915e+06 + 2.031098994148467e+06 2.166611738828362e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.855926451302902e+06 + 0.000000000000000e+00 0.000000000000000e+00 2.500642616529056e+09 1.861057010081065e+08 -5.559160145347018e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.861057010081082e+08 3.163587084519010e+08 -5.717469483828040e+06 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -5.559160145346843e+07 -5.717469483828725e+06 4.092087536361101e+07 0.000000000000000e+00 + 2.429663452085685e+06 5.855926451301783e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.702213052107222e+06 + + 1.280663927463403e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -1.256916440167949e+01 + 0.000000000000000e+00 1.280663927463403e+02 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.826248890980624e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.280663927463403e+02 1.256916440167949e+01 -2.826248890980624e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.256916440167949e+01 1.863710439083830e+01 -3.897315576921073e-01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -2.826248890980624e+00 -3.897315576921073e-01 1.972892070627478e+00 0.000000000000000e+00 +-1.256916440167949e+01 2.826248890980624e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.060999646146572e+01 + + 8.965520000000000e-01 + 2.036184444564804e+07 1.595548197215150e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.089607831306352e+06 + 1.595548197214902e+06 1.595084999423441e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.549824650317877e+06 + 0.000000000000000e+00 0.000000000000000e+00 1.675486942347825e+09 1.183930037697904e+08 -3.858838343331274e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 1.183930037697886e+08 1.625164988735718e+08 -3.562445413774160e+06 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -3.858838343331223e+07 -3.562445413773412e+06 1.739754059726447e+07 0.000000000000000e+00 + 1.089607831306422e+06 4.549824650318952e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 5.062793658929543e+06 + + 8.764353267231824e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -7.823714142093781e+00 + 0.000000000000000e+00 8.764353267231824e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.987105759975727e+00 + 0.000000000000000e+00 0.000000000000000e+00 8.764353267231824e+01 7.823714142093781e+00 -1.987105759975727e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 7.823714142093781e+00 9.601239573242585e+00 -2.328245779109723e-01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.987105759975727e+00 -2.328245779109723e-01 8.584223358169558e-01 0.000000000000000e+00 +-7.823714142093781e+00 1.987105759975727e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.045966190905953e+01 + + 9.310340000000000e-01 + 1.300561820792359e+07 1.228136219998296e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.681242603418383e+05 + 1.228136219997602e+06 1.093906780367864e+08 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 3.080929979507664e+06 + 0.000000000000000e+00 0.000000000000000e+00 1.002644712781755e+09 6.873646260204788e+07 -2.229272279534793e+07 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 6.873646260204855e+07 6.999540475163999e+07 -1.868735483004751e+06 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -2.229272279534809e+07 -1.868735483004505e+06 6.060275849647790e+06 0.000000000000000e+00 + 2.681242603417925e+05 3.080929979507927e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.213350819447169e+06 + + 5.474131983787170e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -4.620761577409596e+00 + 0.000000000000000e+00 5.474131983787170e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.195782840882272e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.474131983787170e+01 4.620761577409596e+00 -1.195782840882272e+00 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 4.620761577409596e+00 4.269456697300114e+00 -1.250334394043304e-01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.195782840882272e+00 -1.250334394043304e-01 3.118465854265760e-01 0.000000000000000e+00 +-4.620761577409596e+00 1.195782840882272e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.581303282726669e+00 + + 9.655170000000000e-01 + 7.525375618559193e+06 5.556937605525763e+05 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.512047078953490e+04 + 5.556937605527566e+05 6.244050910488137e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.514621549781836e+06 + 0.000000000000000e+00 0.000000000000000e+00 4.330753700898178e+08 3.607036739084154e+07 -7.758861908822617e+06 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 3.607036739084192e+07 2.142745384323319e+07 -7.368181961663861e+05 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -7.758861908822465e+06 -7.368181961663335e+05 1.244825857257505e+06 0.000000000000000e+00 +-2.512047078953429e+04 1.514621549782089e+06 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.729779240790785e+05 + + 2.659384456410360e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -2.339024263722099e+00 + 0.000000000000000e+00 2.659384456410360e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 4.732514734123979e-01 + 0.000000000000000e+00 0.000000000000000e+00 2.659384456410360e+01 2.339024263722099e+00 -4.732514734123979e-01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 2.339024263722099e+00 1.378306035385186e+00 -4.879078609753823e-02 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -4.732514734123979e-01 -4.879078609753823e-02 7.291595981673622e-02 0.000000000000000e+00 +-2.339024263722099e+00 4.732514734123979e-01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.451221995201922e+00 + + 1.000000000000000e+00 + 1.647668348899348e+06 3.130340878248158e+05 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.843750977738311e+04 + 3.130340878247219e+05 3.749760146384910e+07 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 6.653560880395822e+05 + 0.000000000000000e+00 0.000000000000000e+00 2.192476683868626e+08 6.462991891299793e+06 -2.939205437041921e+06 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 6.462991891299892e+06 3.245878077085150e+06 -1.076038131011949e+05 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -2.939205437041938e+06 -1.076038131011990e+05 2.493774201890137e+05 0.000000000000000e+00 + 6.843750977738135e+04 6.653560880395686e+05 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.234790830238679e+05 + + 1.396509320509890e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 -5.551176647816162e-01 + 0.000000000000000e+00 1.396509320509890e+01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.840520761299483e-01 + 0.000000000000000e+00 0.000000000000000e+00 1.396509320509890e+01 5.551176647816162e-01 -1.840520761299483e-01 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 5.551176647816162e-01 2.414006022531505e-01 -8.774161924458580e-03 0.000000000000000e+00 + 0.000000000000000e+00 0.000000000000000e+00 -1.840520761299483e-01 -8.774161924458580e-03 1.511563195708324e-02 0.000000000000000e+00 +-5.551176647816162e-01 1.840520761299483e-01 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 2.565162342102336e-01 + + diff --git a/Test_Cases/BAR_10/BAR_10_Cp_Ct_Cq.txt b/Test_Cases/BAR_10/BAR_10_Cp_Ct_Cq.txt new file mode 100644 index 000000000..e7ef6e659 --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_Cp_Ct_Cq.txt @@ -0,0 +1,81 @@ +# ----- Rotor performance tables for the Generated with AeroElasticSE FAST driver wind turbine ----- +# ------------ Written on Sep-28-20 using the ROSCO toolbox ------------ + +# Pitch angle vector, 20 entries - x axis (matrix columns) (deg) +-5.0 -3.158 -1.316 0.5263 2.368 4.211 6.053 7.895 9.737 11.58 13.42 15.26 17.11 18.95 20.79 22.63 24.47 26.32 28.16 30.0 +# TSR vector, 20 entries - y axis (matrix rows) (-) +2.0 2.526 3.053 3.579 4.105 4.632 5.158 5.684 6.211 6.737 7.263 7.789 8.316 8.842 9.368 9.895 10.42 10.95 11.47 12.0 +# Wind speed vector - z axis (m/s) +8.332 + +# Power coefficient + +0.018997 0.022892 0.026769 0.030629 0.034489 0.038376 0.042201 0.045870 0.049512 0.053331 0.057305 0.061047 0.063907 0.065226 0.064706 0.062474 0.058863 0.054172 0.048656 0.042477 +0.039532 0.046037 0.052579 0.058992 0.064924 0.070726 0.076839 0.083176 0.088927 0.092940 0.094292 0.092720 0.088648 0.082679 0.075276 0.066773 0.057408 0.047383 0.036864 0.025901 +0.070343 0.080179 0.088978 0.097674 0.106897 0.116142 0.123735 0.128041 0.128210 0.124380 0.117377 0.108055 0.096982 0.084558 0.071082 0.056831 0.041995 0.026597 0.010580 -0.006146 +0.110837 0.123010 0.135777 0.148821 0.159736 0.166187 0.167194 0.162873 0.154133 0.142159 0.127805 0.111581 0.093917 0.075166 0.055621 0.035391 0.014359 -0.007626 -0.030690 -0.053978 +0.159261 0.176788 0.193063 0.204502 0.209365 0.207500 0.199435 0.186413 0.169861 0.150576 0.129143 0.106038 0.081672 0.056399 0.030163 0.002777 -0.026051 -0.056387 -0.086606 -0.113428 +0.217538 0.236733 0.248949 0.253255 0.249820 0.239179 0.222746 0.202141 0.178254 0.151729 0.123112 0.092938 0.061517 0.028791 -0.005552 -0.041913 -0.080391 -0.118981 -0.153208 -0.181068 +0.277080 0.291279 0.296726 0.293543 0.282047 0.263518 0.239803 0.212019 0.180829 0.146946 0.110901 0.073110 0.033569 -0.008132 -0.052450 -0.099698 -0.148177 -0.192326 -0.228445 -0.256500 +0.328119 0.336865 0.336361 0.326466 0.307883 0.282652 0.252178 0.217284 0.178718 0.137103 0.092986 0.046525 -0.002671 -0.055118 -0.111352 -0.170618 -0.227377 -0.274924 -0.312077 -0.338357 +0.368305 0.373812 0.368845 0.353404 0.329132 0.297966 0.260940 0.218865 0.172494 0.122512 0.069333 0.012775 -0.047721 -0.112808 -0.182719 -0.253773 -0.316574 -0.366593 -0.402895 -0.426600 +0.397795 0.402803 0.395197 0.375858 0.347051 0.310374 0.266781 0.217170 0.162399 0.103164 0.039685 -0.028495 -0.102082 -0.181806 -0.266579 -0.347974 -0.415516 -0.466169 -0.501201 -0.523586 +0.416430 0.424480 0.416486 0.394930 0.362391 0.320389 0.270029 0.212398 0.148478 0.078961 0.003797 -0.077668 -0.166278 -0.262570 -0.362555 -0.452582 -0.523174 -0.574316 -0.609260 -0.631069 +0.424968 0.439235 0.433486 0.411197 0.375535 0.328283 0.270868 0.204637 0.130736 0.049743 -0.038616 -0.135155 -0.240853 -0.355425 -0.469991 -0.566593 -0.640196 -0.693275 -0.728145 -0.750242 +0.426864 0.446939 0.446484 0.424915 0.386693 0.334220 0.269420 0.193959 0.109097 0.015314 -0.087864 -0.201392 -0.326313 -0.460411 -0.587617 -0.690664 -0.768760 -0.823698 -0.858504 -0.882131 +0.421429 0.447946 0.455436 0.436189 0.395993 0.338341 0.265777 0.180354 0.083447 -0.024548 -0.144276 -0.276842 -0.423081 -0.576800 -0.715350 -0.826836 -0.909517 -0.966035 -1.000976 -1.028804 +0.409021 0.443541 0.460095 0.445040 0.403559 0.340743 0.259981 0.163771 0.053645 -0.070084 -0.208202 -0.361977 -0.531245 -0.703411 -0.855193 -0.975842 -1.062890 -1.120957 -1.156506 -1.192238 +0.393100 0.433416 0.459957 0.451464 0.409452 0.341476 0.252033 0.144136 0.019529 -0.121547 -0.280010 -0.457171 -0.649714 -0.841473 -1.008675 -1.138103 -1.229599 -1.288442 -1.326852 -1.374188 +0.374055 0.419031 0.454540 0.455359 0.413694 0.340568 0.241905 0.121356 -0.019075 -0.179204 -0.360077 -0.562365 -0.778558 -0.993432 -1.176204 -1.313948 -1.409391 -1.469691 -1.513767 -1.575649 +0.351953 0.402213 0.444780 0.456520 0.416276 0.338023 0.229550 0.095325 -0.062351 -0.243337 -0.448683 -0.676156 -0.920010 -1.159411 -1.357508 -1.503584 -1.603235 -1.666196 -1.718315 -1.797585 +0.327018 0.383380 0.431839 0.454600 0.417164 0.333820 0.214912 0.065929 -0.110495 -0.314236 -0.545785 -0.799075 -1.075831 -1.339722 -1.553449 -1.707933 -1.811682 -1.879066 -1.941483 -2.041065 +0.299562 0.362976 0.416736 0.449210 0.416289 0.327920 0.197927 0.033042 -0.163711 -0.392127 -0.649836 -0.934196 -1.246034 -1.534696 -1.763841 -1.927068 -2.035797 -2.109081 -2.184511 -2.306937 + + +# Thrust coefficient + +0.073449 0.073247 0.073056 0.072895 0.072802 0.072821 0.073056 0.073634 0.074611 0.075966 0.077578 0.079099 0.079933 0.079452 0.077343 0.073685 0.068779 0.062900 0.056296 0.049158 +0.098107 0.098607 0.099289 0.100297 0.101847 0.104019 0.106773 0.109853 0.112557 0.113863 0.112841 0.109167 0.103187 0.095451 0.086413 0.076426 0.065752 0.054579 0.043079 0.031317 +0.131849 0.134021 0.137042 0.140977 0.145712 0.150589 0.154187 0.155008 0.152093 0.145446 0.135826 0.124053 0.110712 0.096274 0.081031 0.065267 0.049184 0.032831 0.016191 -0.000790 +0.176971 0.182593 0.189400 0.196608 0.202105 0.203772 0.200477 0.192111 0.179554 0.164003 0.146323 0.127126 0.106866 0.085911 0.064572 0.042985 0.021092 -0.001204 -0.023919 -0.046005 +0.235985 0.245890 0.254874 0.259612 0.258350 0.250608 0.236858 0.218469 0.196898 0.173032 0.147555 0.120994 0.093789 0.066312 0.038567 0.010430 -0.018288 -0.047434 -0.075175 -0.098921 +0.309280 0.319555 0.323208 0.319176 0.307433 0.288689 0.264612 0.236921 0.206616 0.174482 0.141146 0.107188 0.072940 0.038391 0.003331 -0.032482 -0.068849 -0.103466 -0.132936 -0.156089 +0.390368 0.393329 0.387163 0.372232 0.349173 0.319741 0.285993 0.249168 0.210101 0.169648 0.128402 0.086775 0.044796 0.002203 -0.041269 -0.085600 -0.128528 -0.165753 -0.194995 -0.216676 +0.469906 0.462428 0.445377 0.419087 0.384993 0.345577 0.302363 0.256361 0.208525 0.159565 0.110004 0.060007 0.009342 -0.042283 -0.095080 -0.147493 -0.194751 -0.232561 -0.260632 -0.278876 +0.544018 0.526192 0.498161 0.460782 0.416490 0.367426 0.314748 0.259508 0.202595 0.144676 0.086134 0.026901 -0.033337 -0.094907 -0.157321 -0.216420 -0.265881 -0.303192 -0.328281 -0.341851 +0.612222 0.584715 0.546281 0.498739 0.444841 0.386198 0.323920 0.259103 0.192633 0.125148 0.056881 -0.012405 -0.083075 -0.155357 -0.226892 -0.290944 -0.341143 -0.376116 -0.397816 -0.406639 +0.674042 0.638541 0.590865 0.534100 0.470834 0.402462 0.330246 0.255385 0.178819 0.101138 0.022392 -0.057757 -0.139711 -0.223064 -0.302825 -0.370013 -0.419078 -0.451695 -0.470534 -0.473622 +0.730152 0.688327 0.632909 0.567536 0.494883 0.416494 0.333930 0.248547 0.161342 0.072789 -0.017198 -0.109020 -0.203063 -0.297417 -0.384108 -0.452144 -0.500031 -0.531477 -0.546429 -0.542723 +0.783633 0.734460 0.672905 0.599363 0.517181 0.428467 0.335161 0.238789 0.140342 0.040221 -0.061776 -0.166080 -0.272845 -0.377788 -0.469127 -0.537618 -0.585583 -0.615336 -0.625131 -0.613796 +0.835122 0.777564 0.710979 0.629685 0.537874 0.438568 0.334126 0.226252 0.115938 0.003532 -0.111242 -0.228845 -0.348714 -0.463005 -0.557396 -0.627888 -0.675772 -0.702934 -0.706353 -0.687509 +0.885004 0.818985 0.747037 0.658567 0.557121 0.446964 0.330976 0.211047 0.088221 -0.037195 -0.165519 -0.297223 -0.430053 -0.551559 -0.650343 -0.723130 -0.770409 -0.794155 -0.790077 -0.764504 +0.935011 0.858785 0.780840 0.686088 0.575059 0.453791 0.325821 0.193263 0.057265 -0.081888 -0.224545 -0.370997 -0.515243 -0.644319 -0.748878 -0.823218 -0.869539 -0.888288 -0.876987 -0.845274 +0.985513 0.897723 0.812228 0.712284 0.591793 0.459160 0.318747 0.172969 0.023131 -0.130494 -0.288269 -0.449565 -0.603962 -0.743086 -0.852819 -0.927881 -0.972352 -0.985734 -0.967675 -0.929812 +1.036727 0.936845 0.841968 0.737136 0.607409 0.463160 0.309819 0.150225 -0.014127 -0.182970 -0.356548 -0.531098 -0.697868 -0.847410 -0.961398 -1.036830 -1.079177 -1.087021 -1.062160 -1.018156 +1.088829 0.976460 0.870789 0.760539 0.621968 0.465853 0.299092 0.125083 -0.054471 -0.239285 -0.428960 -0.615723 -0.798116 -0.957074 -1.074920 -1.150385 -1.189894 -1.192403 -1.160363 -1.110468 +1.141927 1.016690 0.899233 0.782360 0.635503 0.467287 0.286615 0.097583 -0.097871 -0.299348 -0.503687 -0.705802 -0.904215 -1.071809 -1.192724 -1.268118 -1.304813 -1.301848 -1.262502 -1.206680 + + +# Torque coefficient + +0.009548 0.011505 0.013453 0.015394 0.017334 0.019287 0.021210 0.023054 0.024884 0.026803 0.028800 0.030682 0.032119 0.032782 0.032520 0.031399 0.029583 0.027226 0.024454 0.021348 +0.015729 0.018317 0.020920 0.023472 0.025832 0.028140 0.030573 0.033094 0.035382 0.036979 0.037517 0.036892 0.035271 0.032897 0.029951 0.026568 0.022842 0.018853 0.014667 0.010305 +0.023162 0.026401 0.029299 0.032162 0.035199 0.038243 0.040743 0.042161 0.042217 0.040956 0.038650 0.035580 0.031934 0.027843 0.023406 0.018713 0.013828 0.008758 0.003484 -0.002024 +0.031129 0.034548 0.038134 0.041797 0.044863 0.046675 0.046957 0.045744 0.043289 0.039926 0.035895 0.031338 0.026377 0.021111 0.015622 0.009940 0.004033 -0.002142 -0.008620 -0.015160 +0.038995 0.043286 0.047271 0.050072 0.051263 0.050806 0.048832 0.045643 0.041590 0.036868 0.031621 0.025963 0.019997 0.013809 0.007386 0.000680 -0.006379 -0.013806 -0.021205 -0.027773 +0.047211 0.051377 0.054028 0.054963 0.054217 0.051908 0.048342 0.043870 0.038686 0.032929 0.026718 0.020170 0.013351 0.006248 -0.001205 -0.009096 -0.017447 -0.025822 -0.033250 -0.039296 +0.053997 0.056765 0.057826 0.057206 0.054965 0.051354 0.046733 0.041318 0.035240 0.028637 0.021612 0.014248 0.006542 -0.001585 -0.010221 -0.019429 -0.028877 -0.037480 -0.044519 -0.049987 +0.058023 0.059570 0.059481 0.057731 0.054445 0.049983 0.044594 0.038424 0.031604 0.024245 0.016443 0.008227 -0.000472 -0.009747 -0.019691 -0.030171 -0.040208 -0.048616 -0.055186 -0.059834 +0.059610 0.060501 0.059697 0.057198 0.053270 0.048226 0.042233 0.035423 0.027918 0.019828 0.011221 0.002068 -0.007724 -0.018258 -0.029573 -0.041073 -0.051237 -0.059333 -0.065208 -0.069045 +0.059353 0.060100 0.058965 0.056080 0.051782 0.046309 0.039805 0.032403 0.024231 0.015393 0.005921 -0.004252 -0.015231 -0.027126 -0.039775 -0.051919 -0.061997 -0.069555 -0.074782 -0.078122 +0.057631 0.058745 0.057639 0.054656 0.050152 0.044340 0.037370 0.029394 0.020548 0.010928 0.000525 -0.010749 -0.023012 -0.036338 -0.050175 -0.062634 -0.072404 -0.079481 -0.084317 -0.087336 +0.054839 0.056680 0.055938 0.053062 0.048460 0.042362 0.034953 0.026407 0.016870 0.006419 -0.004983 -0.017441 -0.031080 -0.045865 -0.060649 -0.073114 -0.082612 -0.089462 -0.093962 -0.096813 +0.051597 0.054024 0.053969 0.051362 0.046741 0.040399 0.032566 0.023445 0.013187 0.001851 -0.010621 -0.024343 -0.039443 -0.055652 -0.071028 -0.083484 -0.092924 -0.099565 -0.103772 -0.106628 +0.047908 0.050923 0.051774 0.049586 0.045017 0.038463 0.030214 0.020503 0.009486 -0.002791 -0.016401 -0.031471 -0.048096 -0.065571 -0.081321 -0.093995 -0.103394 -0.109819 -0.113791 -0.116955 +0.043885 0.047589 0.049365 0.047750 0.043299 0.036560 0.027894 0.017572 0.005756 -0.007520 -0.022339 -0.038838 -0.056999 -0.075471 -0.091757 -0.104702 -0.114041 -0.120271 -0.124086 -0.127920 +0.039934 0.044029 0.046725 0.045863 0.041595 0.034689 0.025603 0.014642 0.001984 -0.012348 -0.028445 -0.046442 -0.066002 -0.085482 -0.102468 -0.115616 -0.124911 -0.130888 -0.134790 -0.139599 +0.036080 0.040418 0.043843 0.043922 0.039903 0.032850 0.023333 0.011706 -0.001840 -0.017285 -0.034732 -0.054243 -0.075097 -0.095822 -0.113452 -0.126738 -0.135944 -0.141760 -0.146012 -0.151981 +0.032316 0.036931 0.040839 0.041917 0.038222 0.031037 0.021077 0.008753 -0.005725 -0.022343 -0.041197 -0.062084 -0.084474 -0.106455 -0.124644 -0.138057 -0.147207 -0.152988 -0.157773 -0.165052 +0.028649 0.033587 0.037832 0.039826 0.036546 0.029245 0.018828 0.005776 -0.009680 -0.027529 -0.047814 -0.070004 -0.094250 -0.117369 -0.136093 -0.149626 -0.158715 -0.164619 -0.170087 -0.178811 +0.025093 0.030404 0.034908 0.037628 0.034870 0.027468 0.016579 0.002768 -0.013713 -0.032846 -0.054433 -0.078252 -0.104373 -0.128553 -0.147747 -0.161419 -0.170527 -0.176666 -0.182984 -0.193239 + diff --git a/Test_Cases/BAR_10/BAR_10_DISCON.IN b/Test_Cases/BAR_10/BAR_10_DISCON.IN new file mode 100644 index 000000000..2c97ab52b --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_DISCON.IN @@ -0,0 +1,119 @@ +! Controller parameter input file for the BAR_10 wind turbine +! - File written using ROSCO Controller tuning logic on 11/19/20 + +!------- DEBUG ------------------------------------------------------------ +1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file} + +!------- CONTROLLER FLAGS ------------------------------------------------- +2 ! F_LPFType - {1: first-order low-pass filter, 2: second-order low-pass filter}, [rad/s] (currently filters generator speed and pitch control signals +0 ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion} +0 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} +2 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control} +1 ! PC_ControlMode - Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control} +0 ! Y_ControlMode - Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC} +1 ! SS_Mode - Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} +2 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator, 2: Extended Kalman Filter} +1 ! PS_Mode - Pitch saturation mode {0: no pitch saturation, 1: implement pitch saturation} +0 ! SD_Mode - Shutdown mode {0: no shutdown procedure, 1: pitch to max pitch at shutdown} +0 ! Fl_Mode - Floating specific feedback mode {0: no nacelle velocity feedback, 1: nacelle velocity feedback} +2 ! Flp_Mode - Flap control mode {0: no flap control, 1: steady state flap angle, 2: Proportional flap control} + +!------- FILTERS ---------------------------------------------------------- +0.81771 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s] +0.70000 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] +0.00000 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] +0.00000 0.25000 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] +0.628320000000 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [rad/s]. +0.00000 1.00000 ! F_FlCornerFreq - Natural frequency and damping in the second order low pass filter of the tower-top fore-aft motion for floating feedback control [rad/s, -]. +0.90697 1.00000 ! F_FlpCornerFreq - Corner frequency and damping in the second order low pass filter of the blade root bending moment for flap control [rad/s, -]. + +!------- BLADE PITCH CONTROL ---------------------------------------------- +33 ! PC_GS_n - Amount of gain-scheduling table entries +0.000000 0.081270 0.102232 0.120018 0.136773 0.151556 0.166247 0.179619 0.192842 0.205458 0.217785 0.229465 0.241251 0.252388 0.263408 0.274584 0.285186 0.295470 0.305837 0.316616 0.326179 0.335567 0.345179 0.355282 0.365503 0.373847 0.382522 0.391565 0.400759 0.410274 0.420186 0.427874 0.435568 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.033935 -0.028901 -0.025011 -0.021916 -0.019395 -0.017301 -0.015535 -0.014024 -0.012718 -0.011577 -0.010573 -0.009681 -0.008884 -0.008167 -0.007520 -0.006932 -0.006395 -0.005904 -0.005452 -0.005035 -0.004650 -0.004292 -0.003959 -0.003648 -0.003358 -0.003085 -0.002830 -0.002589 -0.002363 -0.002149 -0.001946 -0.001755 -0.001573 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.003054 -0.002662 -0.002359 -0.002118 -0.001922 -0.001759 -0.001621 -0.001504 -0.001402 -0.001313 -0.001235 -0.001166 -0.001104 -0.001048 -0.000998 -0.000952 -0.000910 -0.000872 -0.000837 -0.000804 -0.000774 -0.000746 -0.000720 -0.000696 -0.000674 -0.000652 -0.000633 -0.000614 -0.000596 -0.000580 -0.000564 -0.000549 -0.000535 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +1.570800000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. +0.000000000000 ! PC_MinPit - Minimum physical pitch limit, [rad]. +2.000000000000 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. +-2.00000000000 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. +79.85313000000 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +0.000000000000 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] +0.017450000000 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] + +!------- INDIVIDUAL PITCH CONTROL ----------------------------------------- +0.1 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0e+00 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0e+00 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] + +!------- VS TORQUE CONTROL ------------------------------------------------ +98.00000000000 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%] +63892.81326000 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +4500000.000000 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +70282.09458000 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +0.000000000000 ! VS_MinTq - Minimum generator (HSS side), [Nm]. +29.59272000000 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +13.63377000000 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000.000000 ! VS_RtPwr - Wind turbine rated power [W] +63892.81326000 ! VS_RtTq - Rated torque, [Nm]. +79.85313000000 ! VS_RefSpd - Rated generator speed [rad/s] +1 ! VS_n - Number of generator PI torque controller gains +-2449.27265000 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-324.184760000 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +10.50 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. + +!------- SETPOINT SMOOTHER --------------------------------------------- +1.00000 ! SS_VSGain - Variable speed torque controller setpoint smoother gain, [-]. +0.00100 ! SS_PCGain - Collective pitch controller setpoint smoother gain, [-]. + +!------- WIND SPEED ESTIMATOR --------------------------------------------- +102.996 ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m] +1 ! WE_CP_n - Amount of parameters in the Cp array +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +96.8 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +303517908.05748 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +1.225 ! WE_RhoAir - Air density, [kg m^-3] +"BAR_10_Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) +20 20 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +44 ! WE_FOPoles_N - Number of first-order system poles used in EKF +3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.77 9.27 9.77 10.27 10.77 11.27 11.77 12.27 12.77 13.27 13.77 14.27 14.77 15.27 15.77 16.27 16.77 17.27 17.77 18.27 18.77 19.27 19.77 20.27 20.77 21.27 21.77 22.27 22.77 23.27 23.77 24.27 24.77 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.00916809 -0.01069611 -0.01222412 -0.01375214 -0.01528016 -0.01680817 -0.01833619 -0.01986420 -0.02139222 -0.02292023 -0.02444825 -0.02018410 -0.02498093 -0.03029010 -0.03645166 -0.04286101 -0.04986109 -0.05718743 -0.06479133 -0.07279857 -0.08092143 -0.08974958 -0.09825923 -0.10766441 -0.11700842 -0.12639567 -0.13680217 -0.14696823 -0.15695945 -0.16794302 -0.17973091 -0.19026756 -0.20132954 -0.21321573 -0.22571789 -0.23870610 -0.25011962 -0.26208372 -0.27466260 -0.28820310 -0.30268014 -0.31781843 -0.32958079 -0.34220397 ! WE_FOPoles - First order system poles + +!------- YAW CONTROL ------------------------------------------------------ +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] + +!------- TOWER FORE-AFT DAMPING ------------------------------------------- +-1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] + +!------- MINIMUM PITCH SATURATION ------------------------------------------- +44 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) +3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.77 9.27 9.77 10.27 10.77 11.27 11.77 12.27 12.77 13.27 13.77 14.27 14.77 15.27 15.77 16.27 16.77 17.27 17.77 18.27 18.77 19.27 19.77 20.27 20.77 21.27 21.77 22.27 22.77 23.27 23.77 24.27 24.77 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00787764 0.03110294 0.05282515 0.06521487 0.07721293 0.08869902 0.10001143 0.11102809 0.12192860 0.13256353 0.14318984 0.15346483 0.16395126 0.17393638 0.18415157 0.19404097 0.20383823 0.21383900 0.22345100 0.23285045 0.24246185 0.25238513 0.26138595 0.27041745 0.27968880 0.28925873 0.29892232 0.30723659 0.31578458 0.32459029 0.33363474 0.34287381 0.35231919 0.36008984 0.36800358 ! PS_BldPitchMin - Minimum blade pitch angles [rad] + +!------- SHUTDOWN ----------------------------------------------------------- +0.435570000000 ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad] +0.418880000000 ! SD_CornerFreq - Cutoff Frequency for first order low-pass filter for blade pitch angle, [rad/s] + +!------- Floating ----------------------------------------------------------- +0.000000000000 ! Fl_Kp - Nacelle velocity proportional feedback gain [s] + +!------- FLAP ACTUATION ----------------------------------------------------- +0.000000000000 ! Flp_Angle - Initial or steady state flap angle [rad] +7.94389143e-08 ! Flp_Kp - Blade root bending moment proportional gain for flap control [s] +1.63212406e-09 ! Flp_Ki - Flap displacement integral gain for flap control [s] +0.174530000000 ! Flp_MaxPit - Maximum (and minimum) flap pitch angle [rad] \ No newline at end of file diff --git a/Test_Cases/BAR_10/BAR_10_ElastoDyn.dat b/Test_Cases/BAR_10/BAR_10_ElastoDyn.dat new file mode 100644 index 000000000..5145c1ef8 --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_ElastoDyn.dat @@ -0,0 +1,269 @@ +------- ELASTODYN v1.03.* INPUT FILE ------------------------------------------- +Generated with AeroElasticSE FAST driver +---------------------- SIMULATION CONTROL -------------------------------------- +False Echo - Echo input data to ".ech" (flag) +3 Method - Integration method: {1: RK4, 2: AB4, or 3: ABM4} (-) +"DEFAULT" DT Integration time step (s) +---------------------- ENVIRONMENTAL CONDITION --------------------------------- +9.80665 Gravity - Gravitational acceleration (m/s^2) +---------------------- DEGREES OF FREEDOM -------------------------------------- +True FlapDOF1 - First flapwise blade mode DOF (flag) +True FlapDOF2 - Second flapwise blade mode DOF (flag) +True EdgeDOF - First edgewise blade mode DOF (flag) +False TeetDOF - Rotor-teeter DOF (flag) [unused for 3 blades] +False DrTrDOF - Drivetrain rotational-flexibility DOF (flag) +True GenDOF - Generator DOF (flag) +False YawDOF - Yaw DOF (flag) +True TwFADOF1 - First fore-aft tower bending-mode DOF (flag) +True TwFADOF2 - Second fore-aft tower bending-mode DOF (flag) +True TwSSDOF1 - First side-to-side tower bending-mode DOF (flag) +True TwSSDOF2 - Second side-to-side tower bending-mode DOF (flag) +False PtfmSgDOF - Platform horizontal surge translation DOF (flag) +False PtfmSwDOF - Platform horizontal sway translation DOF (flag) +False PtfmHvDOF - Platform vertical heave translation DOF (flag) +False PtfmRDOF - Platform roll tilt rotation DOF (flag) +False PtfmPDOF - Platform pitch tilt rotation DOF (flag) +False PtfmYDOF - Platform yaw rotation DOF (flag) +---------------------- INITIAL CONDITIONS -------------------------------------- +0.0 OoPDefl - Initial out-of-plane blade-tip displacement (meters) +0.0 IPDefl - Initial in-plane blade-tip deflection (meters) +10.0 BlPitch(1) - Blade 1 initial pitch (degrees) +10.0 BlPitch(2) - Blade 2 initial pitch (degrees) +10.0 BlPitch(3) - Blade 3 initial pitch (degrees) [unused for 2 blades] +0.0 TeetDefl - Initial or fixed teeter angle (degrees) [unused for 3 blades] +0.0 Azimuth - Initial azimuth angle for blade 1 (degrees) +7.88 RotSpeed - Initial or fixed rotor speed (rpm) +0.0 NacYaw - Initial or fixed nacelle-yaw angle (degrees) +0.0 TTDspFA - Initial fore-aft tower-top displacement (meters) +0.0 TTDspSS - Initial side-to-side tower-top displacement (meters) +0.0 PtfmSurge - Initial or fixed horizontal surge translational displacement of platform (meters) +0.0 PtfmSway - Initial or fixed horizontal sway translational displacement of platform (meters) +0.0 PtfmHeave - Initial or fixed vertical heave translational displacement of platform (meters) +0.0 PtfmRoll - Initial or fixed roll tilt rotational displacement of platform (degrees) +0.0 PtfmPitch - Initial or fixed pitch tilt rotational displacement of platform (degrees) +0.0 PtfmYaw - Initial or fixed yaw rotational displacement of platform (degrees) +---------------------- TURBINE CONFIGURATION ----------------------------------- +3 NumBl - Number of blades (-) +102.9962678084084 TipRad - The distance from the rotor apex to the blade tip (meters) +3.0 HubRad - The distance from the rotor apex to the blade root (meters) +-4.0 PreCone(1) - Blade 1 cone angle (degrees) +-4.0 PreCone(2) - Blade 2 cone angle (degrees) +-4.0 PreCone(3) - Blade 3 cone angle (degrees) [unused for 2 blades] +0.0 HubCM - Distance from rotor apex to hub mass [positive downwind] (meters) +0.0 UndSling - Undersling length [distance from teeter pin to the rotor apex] (meters) [unused for 3 blades] +0.0 Delta3 - Delta-3 angle for teetering rotors (degrees) [unused for 3 blades] +0.0 AzimB1Up - Azimuth value to use for I/O when blade 1 points up (degrees) +-7.0 OverHang - Distance from yaw axis to rotor apex [3 blades] or teeter pin [2 blades] (meters) +1.912 ShftGagL - Distance from rotor apex [3 blades] or teeter pin [2 blades] to shaft strain gages [positive for upwind rotors] (meters) +-6.0 ShftTilt - Rotor shaft tilt angle (degrees) +0.8654488758473345 NacCMxn - Downwind distance from the tower-top to the nacelle CM (meters) +0.0 NacCMyn - Lateral distance from the tower-top to the nacelle CM (meters) +0.06944639449550961 NacCMzn - Vertical distance from the tower-top to the nacelle CM (meters) +0.714217558619 NcIMUxn - Downwind distance from the tower-top to the nacelle IMU (meters) +0.0 NcIMUyn - Lateral distance from the tower-top to the nacelle IMU (meters) +0.239584312655 NcIMUzn - Vertical distance from the tower-top to the nacelle IMU (meters) +3.0934301742 Twr2Shft - Vertical distance from the tower-top to the rotor shaft (meters) +137.0 TowerHt - Height of tower above ground level [onshore] or MSL [offshore] (meters) +0.0 TowerBsHt - Height of tower base above ground level [onshore] or MSL [offshore] (meters) +0.0 PtfmCMxt - Downwind distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters) +0.0 PtfmCMyt - Lateral distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters) +0.0 PtfmCMzt - Vertical distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters) +0.0 PtfmRefzt - Vertical distance from the ground level [onshore] or MSL [offshore] to the platform reference point (meters) +---------------------- MASS AND INERTIA ---------------------------------------- +0.0 TipMass(1) - Tip-brake mass, blade 1 (kg) +0.0 TipMass(2) - Tip-brake mass, blade 2 (kg) +0.0 TipMass(3) - Tip-brake mass, blade 3 (kg) [unused for 2 blades] +119991.18553379682 HubMass - Hub mass (kg) +894745.0292084403 HubIner - Hub inertia about rotor axis [3 blades] or teeter axis [2 blades] (kg m^2) +590.965098296 GenIner - Generator inertia about HSS (kg m^2) +401378.6972054646 NacMass - Nacelle mass (kg) +3185495.2912376686 NacYIner - Nacelle inertia about yaw axis (kg m^2) +16974.078585601856 YawBrMass - Yaw bearing mass (kg) +0.0 PtfmMass - Platform mass (kg) +0.0 PtfmRIner - Platform inertia for roll tilt rotation about the platform CM (kg m^2) +0.0 PtfmPIner - Platform inertia for pitch tilt rotation about the platform CM (kg m^2) +0.0 PtfmYIner - Platform inertia for yaw rotation about the platform CM (kg m^2) +---------------------- BLADE --------------------------------------------------- +50 BldNodes - Number of blade nodes (per blade) used for analysis (-) +"BAR_10_ElastoDyn_blade.dat" BldFile1 - Name of file containing properties for blade 1 (quoted string) +"BAR_10_ElastoDyn_blade.dat" BldFile2 - Name of file containing properties for blade 2 (quoted string) +"BAR_10_ElastoDyn_blade.dat" BldFile3 - Name of file containing properties for blade 3 (quoted string) [unused for 2 blades] +---------------------- ROTOR-TEETER -------------------------------------------- +0 TeetMod - Rotor-teeter spring/damper model {0: none, 1: standard, 2: user-defined from routine UserTeet} (switch) [unused for 3 blades] +0.0 TeetDmpP - Rotor-teeter damper position (degrees) [used only for 2 blades and when TeetMod=1] +0.0 TeetDmp - Rotor-teeter damping constant (N-m/(rad/s)) [used only for 2 blades and when TeetMod=1] +0.0 TeetCDmp - Rotor-teeter rate-independent Coulomb-damping moment (N-m) [used only for 2 blades and when TeetMod=1] +0.0 TeetSStP - Rotor-teeter soft-stop position (degrees) [used only for 2 blades and when TeetMod=1] +0.0 TeetHStP - Rotor-teeter hard-stop position (degrees) [used only for 2 blades and when TeetMod=1] +0.0 TeetSSSp - Rotor-teeter soft-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1] +0.0 TeetHSSp - Rotor-teeter hard-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1] +---------------------- DRIVETRAIN ---------------------------------------------- +95.0 GBoxEff - Gearbox efficiency (%) +96.76 GBRatio - Gearbox ratio (-) +858099807.855 DTTorSpr - Drivetrain torsional spring (N-m/rad) +6828541.30432 DTTorDmp - Drivetrain torsional damper (N-m/(rad/s)) +---------------------- FURLING ------------------------------------------------- +False Furling - Read in additional model properties for furling turbine (flag) [must currently be FALSE) +"unused" FurlFile - Name of file containing furling properties (quoted string) [unused when Furling=False] +---------------------- TOWER --------------------------------------------------- +20 TwrNodes - Number of tower nodes used for analysis (-) +"BAR_10_ElastoDyn_tower.dat" TwrFile - Name of file containing tower properties (quoted string) +---------------------- OUTPUT -------------------------------------------------- +True SumPrint - Print summary data to ".sum" (flag) +1 OutFile - Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused) +True TabDelim - Use tab delimiters in text tabular output file? (flag) (currently unused) +"ES10.3E2" OutFmt - Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused) +0.0 TStart - Time to begin tabular output (s) (currently unused) +1 DecFact - Decimation factor for tabular output {1: output every time step} (-) (currently unused) +1 NTwGages - Number of tower nodes that have strain gages for output [0 to 9] (-) +1 TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] +9 NBlGages - Number of blade nodes that have strain gages for output [0 to 9] (-) +4, 7, 10, 13, 16, 18, 21, 24, 27 BldGagNd - List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0] + OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"BldPitch1" +"GenSpeed" +"HSSBrTq" +"HSShftTq" +"LSSTipMya" +"LSSTipMys" +"LSSTipMza" +"LSSTipMzs" +"LSSTipPxa" +"LSShftFxa" +"LSShftFya" +"LSShftFys" +"LSShftFza" +"LSShftFzs" +"LSShftMxa" +"NcIMUTAxs" +"NcIMUTAys" +"PtchPMzc1" +"PtchPMzc2" +"PtchPMzc3" +"RootFxb1" +"RootFxb2" +"RootFxb3" +"RootFxc1" +"RootFxc2" +"RootFxc3" +"RootFyb1" +"RootFyb2" +"RootFyb3" +"RootFyc1" +"RootFyc2" +"RootFyc3" +"RootFzb1" +"RootFzb2" +"RootFzb3" +"RootMxb1" +"RootMxb2" +"RootMxb3" +"RootMxc1" +"RootMxc2" +"RootMxc3" +"RootMyb1" +"RootMyb2" +"RootMyb3" +"RootMyc1" +"RootMyc2" +"RootMyc3" +"RootMzb1" +"RootMzb2" +"RootMzb3" +"RotSpeed" +"Spn1FLxb1" +"Spn1FLyb1" +"Spn1FLzb1" +"Spn1MLxb1" +"Spn1MLyb1" +"Spn1MLzb1" +"Spn2FLxb1" +"Spn2FLyb1" +"Spn2FLzb1" +"Spn2MLxb1" +"Spn2MLyb1" +"Spn2MLzb1" +"Spn3FLxb1" +"Spn3FLyb1" +"Spn3FLzb1" +"Spn3MLxb1" +"Spn3MLyb1" +"Spn3MLzb1" +"Spn4FLxb1" +"Spn4FLyb1" +"Spn4FLzb1" +"Spn4MLxb1" +"Spn4MLyb1" +"Spn4MLzb1" +"Spn5FLxb1" +"Spn5FLyb1" +"Spn5FLzb1" +"Spn5MLxb1" +"Spn5MLyb1" +"Spn5MLzb1" +"Spn6FLxb1" +"Spn6FLyb1" +"Spn6FLzb1" +"Spn6MLxb1" +"Spn6MLyb1" +"Spn6MLzb1" +"Spn7FLxb1" +"Spn7FLyb1" +"Spn7FLzb1" +"Spn7MLxb1" +"Spn7MLyb1" +"Spn7MLzb1" +"Spn8FLxb1" +"Spn8FLyb1" +"Spn8FLzb1" +"Spn8MLxb1" +"Spn8MLyb1" +"Spn8MLzb1" +"Spn9FLxb1" +"Spn9FLyb1" +"Spn9FLzb1" +"Spn9MLxb1" +"Spn9MLyb1" +"Spn9MLzb1" +"TipClrnc1" +"TipClrnc2" +"TipClrnc3" +"TipDxb1" +"TipDxb2" +"TipDxb3" +"TipDxc1" +"TipDxc2" +"TipDxc3" +"TipDyb1" +"TipDyb2" +"TipDyb3" +"TipDyc1" +"TipDyc2" +"TipDyc3" +"TipDzb1" +"TipDzb2" +"TipDzb3" +"TipDzc1" +"TipDzc2" +"TipDzc3" +"TwrBsFxt" +"TwrBsFyt" +"TwrBsFzt" +"TwrBsMxt" +"TwrBsMyt" +"TwrBsMzt" +"YawBrFxn" +"YawBrFxp" +"YawBrFyn" +"YawBrFyp" +"YawBrFzn" +"YawBrMxn" +"YawBrMxp" +"YawBrMyn" +"YawBrMyp" +"YawBrMzn" +"YawBrTDxt" +"YawBrTDyt" +"YawPzn" +END of input file (the word "END" must appear in the first 3 columns of this last OutList line) +--------------------------------------------------------------------------------------- diff --git a/Test_Cases/BAR_10/BAR_10_ElastoDyn_blade.dat b/Test_Cases/BAR_10/BAR_10_ElastoDyn_blade.dat new file mode 100644 index 000000000..5e9730ac8 --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_ElastoDyn_blade.dat @@ -0,0 +1,62 @@ +------- ELASTODYN V1.00.* INDIVIDUAL BLADE INPUT FILE -------------------------- +Generated with AeroElasticSE FAST driver +---------------------- BLADE PARAMETERS ---------------------------------------- +30 NBlInpSt - Number of blade input stations (-) +3.0 BldFlDmp1 - Blade flap mode #1 structural damping in percent of critical (%) +3.0 BldFlDmp2 - Blade flap mode #2 structural damping in percent of critical (%) +3.0 BldEdDmp1 - Blade edge mode #1 structural damping in percent of critical (%) +---------------------- BLADE ADJUSTMENT FACTORS -------------------------------- +1.0 FlStTunr1 - Blade flapwise modal stiffness tuner, 1st mode (-) +1.0 FlStTunr2 - Blade flapwise modal stiffness tuner, 2nd mode (-) +1.0 AdjBlMs - Factor to adjust blade mass density (-) +1.0 AdjFlSt - Factor to adjust blade flap stiffness (-) +1.0 AdjEdSt - Factor to adjust blade edge stiffness (-) +---------------------- DISTRIBUTED BLADE PROPERTIES ---------------------------- + BlFract PitchAxis StrcTwst BMassDen FlpStff EdgStff + (-) (-) (deg) (kg/m) (Nm^2) (Nm^2) + 0.000000000000000e+00 5.000000000000000e-01 2.000195662801704e+01 2.256538083024688e+03 8.086298649334160e+10 8.086479818031487e+10 + 3.448275862068965e-02 4.804815083118872e-01 1.869281515590605e+01 1.834061425945973e+03 6.803041190347665e+10 6.690734793914251e+10 + 6.896551724137931e-02 4.536806920101191e-01 1.723775189586749e+01 1.499604346204615e+03 5.048825325567923e+10 5.560228614176377e+10 + 1.034482758620690e-01 4.221529221398043e-01 1.565295516552572e+01 1.266218166501513e+03 3.354543829097995e+10 4.229218870986343e+10 + 1.379310344827586e-01 3.901686299260218e-01 1.395461328250509e+01 1.025932711414403e+03 2.222886061364926e+10 3.385603513899268e+10 + 1.724137931034483e-01 3.610978079524211e-01 1.179009052949377e+01 8.635340489293026e+02 1.553896009130709e+10 2.854027701850985e+10 + 2.068965517241380e-01 3.365786390554687e-01 9.030646264023996e+00 7.600120733224535e+02 1.205465028849890e+10 2.511191289404946e+10 + 2.413793103448276e-01 3.177444458080440e-01 6.514452703039312e+00 6.965640971215247e+02 9.453053634375816e+09 2.306887938635223e+10 + 2.758620689655172e-01 3.046941367997305e-01 5.092767547617353e+00 6.666158096757210e+02 7.876105133538239e+09 2.172450305211356e+10 + 3.103448275862070e-01 2.954625576791788e-01 5.007781203147269e+00 6.653856303441310e+02 7.005956966746663e+09 2.102296465072231e+10 + 3.448275862068966e-01 2.890292203581072e-01 5.011682596238479e+00 6.619453790667833e+02 6.131408969913483e+09 1.961887416184365e+10 + 3.793103448275862e-01 2.848786949045524e-01 5.016386430611917e+00 6.508504687064441e+02 5.248193601242393e+09 1.772126678018797e+10 + 4.137931034482759e-01 2.826039333147916e-01 5.019645870677343e+00 6.325386253459525e+02 4.463146089085810e+09 1.589889993386324e+10 + 4.482758620689655e-01 2.818626851793489e-01 4.955933183905627e+00 6.000954013241376e+02 3.763092428765302e+09 1.421134497956854e+10 + 4.827586206896551e-01 2.821537394843202e-01 4.598859000048244e+00 5.762290705734109e+02 3.075755846979956e+09 1.249799606226587e+10 + 5.172413793103449e-01 2.832128465989985e-01 4.062682788269900e+00 5.503346650092241e+02 2.441798627459533e+09 1.085160344682001e+10 + 5.517241379310345e-01 2.847563452858217e-01 3.502062737293423e+00 5.029326548472711e+02 1.898318933523666e+09 7.554950075295496e+09 + 5.862068965517241e-01 2.860248470654784e-01 3.056263371539652e+00 4.576451484265423e+02 1.459427605486694e+09 4.788962707847933e+09 + 6.206896551724139e-01 2.866707312161502e-01 2.683718655202754e+00 4.237256761986353e+02 1.105194997937952e+09 3.990720374024881e+09 + 6.551724137931034e-01 2.883850962819252e-01 2.313326944439679e+00 3.891548028777555e+02 8.147628181314139e+08 3.270947048243657e+09 + 7.000000000000000e-01 2.923665144489953e-01 1.727962964934468e+00 3.419465620769738e+02 5.331108286375957e+08 1.997330899479857e+09 + 7.241379310344829e-01 2.949975009282223e-01 1.350028708204907e+00 3.047881420417984e+02 3.960055462836172e+08 1.621378403536213e+09 + 7.586206896551725e-01 2.993526485462372e-01 5.536320221223768e-01 2.613139454191147e+02 2.568920220161971e+08 1.179302153939207e+09 + 8.000000000000002e-01 3.045515382194534e-01 -6.033015076624596e-01 2.149316912406497e+02 1.427950345930667e+08 7.483629352365568e+08 + 8.275862068965518e-01 3.080203794823955e-01 -1.378770006800686e+00 1.758255017048946e+02 8.644402695231417e+07 4.608572049889678e+08 + 8.620689655172413e-01 3.130223730385787e-01 -2.196615098977884e+00 1.327335066615947e+02 4.186184644262496e+07 2.873803177840529e+08 + 8.965517241379310e-01 3.185283796027868e-01 -2.896995911582864e+00 9.092491524821500e+01 1.764208530667823e+07 1.505687397784997e+08 + 9.310344827586206e-01 3.243529895714600e-01 -3.548985000848492e+00 5.651318248387090e+01 6.030786644707127e+06 6.512414015517557e+07 + 9.655172413793102e-01 3.311468751724138e-01 -4.145342284037413e+00 1.857845637577193e+01 5.580927350989365e+05 1.386103600801477e+07 + 1.000000000000000e+00 3.409090900000000e-01 -4.678827678412275e+00 1.198150718774851e+01 1.318502868379054e+05 3.692480371908476e+06 +---------------------- BLADE MODE SHAPES --------------------------------------- +-0.33760704297751604 BldFl1Sh(2) - Flap mode 1, coeff of x^2 +3.2951653270510763 BldFl1Sh(3) - , coeff of x^3 +-4.40596671522789 BldFl1Sh(4) - , coeff of x^4 +3.4945772691710175 BldFl1Sh(5) - , coeff of x^5 +-1.0461688380166883 BldFl1Sh(6) - , coeff of x^6 +0.7616008268313271 BldFl2Sh(2) - Flap mode 2, coeff of x^2 +-5.67856003309445 BldFl2Sh(3) - , coeff of x^3 +11.297556529066602 BldFl2Sh(4) - , coeff of x^4 +-10.685385956330206 BldFl2Sh(5) - , coeff of x^5 +5.304788633526727 BldFl2Sh(6) - , coeff of x^6 +0.30367030970657244 BldEdgSh(2) - Edge mode 1, coeff of x^2 +3.471253097807576 BldEdgSh(3) - , coeff of x^3 +-7.386051289538 BldEdgSh(4) - , coeff of x^4 +7.194090004796749 BldEdgSh(5) - , coeff of x^5 +-2.582962122772898 BldEdgSh(6) - , coeff of x^6 diff --git a/Test_Cases/BAR_10/BAR_10_ElastoDyn_tower.dat b/Test_Cases/BAR_10/BAR_10_ElastoDyn_tower.dat new file mode 100644 index 000000000..baaac94bb --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_ElastoDyn_tower.dat @@ -0,0 +1,101 @@ +------- ELASTODYN V1.00.* TOWER INPUT FILE ------------------------------------- +Generated with AeroElasticSE FAST driver +---------------------- TOWER PARAMETERS ---------------------------------------- +60 NTwInpSt - Number of input stations to specify tower geometry +1.0 TwrFADmp(1) - Tower 1st fore-aft mode structural damping ratio (%) +1.0 TwrFADmp(2) - Tower 2nd fore-aft mode structural damping ratio (%) +1.0 TwrSSDmp(1) - Tower 1st side-to-side mode structural damping ratio (%) +1.0 TwrSSDmp(2) - Tower 2nd side-to-side mode structural damping ratio (%) +---------------------- TOWER ADJUSTMUNT FACTORS -------------------------------- +1.0 FAStTunr(1) - Tower fore-aft modal stiffness tuner, 1st mode (-) +1.0 FAStTunr(2) - Tower fore-aft modal stiffness tuner, 2nd mode (-) +1.0 SSStTunr(1) - Tower side-to-side stiffness tuner, 1st mode (-) +1.0 SSStTunr(2) - Tower side-to-side stiffness tuner, 2nd mode (-) +1.0 AdjTwMa - Factor to adjust tower mass density (-) +1.0 AdjFASt - Factor to adjust tower fore-aft stiffness (-) +1.0 AdjSSSt - Factor to adjust tower side-to-side stiffness (-) +---------------------- DISTRIBUTED TOWER PROPERTIES ---------------------------- + HtFract TMassDen TwFAStif TwSSStif + (-) (kg/m) (Nm^2) (Nm^2) + 0.000000000000000e+00 9.360097280420952e+03 1.020358247437580e+12 1.020358247437580e+12 + 3.333576642335766e-02 9.360097280420952e+03 1.020358247437580e+12 1.020358247437580e+12 + 3.334306569343065e-02 9.360097280420952e+03 1.020358247437580e+12 1.020358247437580e+12 + 6.666423357664233e-02 9.360097280420952e+03 1.020358247437580e+12 1.020358247437580e+12 + 6.667153284671533e-02 9.360097280420952e+03 1.020358247437580e+12 1.020358247437580e+12 + 9.999999999999999e-02 9.360097280420952e+03 1.020358247437580e+12 1.020358247437580e+12 + 1.000072992700730e-01 8.259297351770017e+03 9.024613172532645e+11 9.024613172532645e+11 + 1.333357664233576e-01 8.259297351770017e+03 9.024613172532645e+11 9.024613172532645e+11 + 1.333430656934307e-01 8.259297351770017e+03 9.024613172532645e+11 9.024613172532645e+11 + 1.666642335766423e-01 8.259297351770017e+03 9.024613172532645e+11 9.024613172532645e+11 + 1.666715328467153e-01 8.259297351770017e+03 9.024613172532645e+11 9.024613172532645e+11 + 2.000000000000000e-01 8.259297351770017e+03 9.024613172532645e+11 9.024613172532645e+11 + 2.000072992700730e-01 7.313671679854159e+03 8.007361306597651e+11 8.007361306597651e+11 + 2.333357664233577e-01 7.313671679854159e+03 8.007361306597651e+11 8.007361306597651e+11 + 2.333430656934307e-01 7.313671679854159e+03 8.007361306597651e+11 8.007361306597651e+11 + 2.666642335766423e-01 7.313671679854159e+03 8.007361306597651e+11 8.007361306597651e+11 + 2.666715328467153e-01 7.313671679854159e+03 8.007361306597651e+11 8.007361306597651e+11 + 3.000000000000000e-01 7.313671679854159e+03 8.007361306597651e+11 8.007361306597651e+11 + 3.000072992700730e-01 6.524181592025415e+03 7.154903028869376e+11 7.154903028869376e+11 + 3.333357664233577e-01 6.524181592025415e+03 7.154903028869376e+11 7.154903028869376e+11 + 3.333430656934306e-01 6.524181592025415e+03 7.154903028869376e+11 7.154903028869376e+11 + 3.666642335766423e-01 6.524181592025415e+03 7.154903028869376e+11 7.154903028869376e+11 + 3.666715328467153e-01 6.524181592025415e+03 7.154903028869376e+11 7.154903028869376e+11 + 4.000000000000000e-01 6.524181592025415e+03 7.154903028869376e+11 7.154903028869376e+11 + 4.000072992700730e-01 5.733356327318897e+03 6.298112430740114e+11 6.298112430740114e+11 + 4.333357664233576e-01 5.733356327318897e+03 6.298112430740114e+11 6.298112430740114e+11 + 4.333430656934307e-01 5.733356327318897e+03 6.298112430740114e+11 6.298112430740114e+11 + 4.666642335766423e-01 5.733356327318897e+03 6.298112430740114e+11 6.298112430740114e+11 + 4.666715328467153e-01 5.733356327318897e+03 6.298112430740114e+11 6.298112430740114e+11 + 5.000000000000000e-01 5.733356327318897e+03 6.298112430740114e+11 6.298112430740114e+11 + 5.000072992700730e-01 4.941195885734655e+03 5.436974858682892e+11 5.436974858682892e+11 + 5.333357664233576e-01 4.941195885734655e+03 5.436974858682892e+11 5.436974858682892e+11 + 5.333430656934306e-01 4.941195885734655e+03 5.436974858682892e+11 5.436974858682892e+11 + 5.666642335766423e-01 4.941195885734655e+03 5.436974858682892e+11 5.436974858682892e+11 + 5.666715328467153e-01 4.941195885734655e+03 5.436974858682892e+11 5.436974858682892e+11 + 6.000000000000000e-01 4.941195885734655e+03 5.436974858682892e+11 5.436974858682892e+11 + 6.000072992700729e-01 4.147700267272498e+03 4.571475634430631e+11 4.571475634430631e+11 + 6.333357664233576e-01 4.147700267272498e+03 4.571475634430631e+11 4.571475634430631e+11 + 6.333430656934307e-01 4.147700267272498e+03 4.571475634430631e+11 4.571475634430631e+11 + 6.666642335766423e-01 4.147700267272498e+03 4.571475634430631e+11 4.571475634430631e+11 + 6.666715328467153e-01 4.147700267272498e+03 4.571475634430631e+11 4.571475634430631e+11 + 7.000000000000001e-01 4.147700267272498e+03 4.571475634430631e+11 4.571475634430631e+11 + 7.000072992700730e-01 3.511942445150867e+03 3.875925985859037e+11 3.875925985859037e+11 + 7.333357664233576e-01 3.511942445150867e+03 3.875925985859037e+11 3.875925985859037e+11 + 7.333430656934307e-01 3.511942445150867e+03 3.875925985859037e+11 3.875925985859037e+11 + 7.666642335766424e-01 3.511942445150867e+03 3.875925985859037e+11 3.875925985859037e+11 + 7.666715328467154e-01 3.511942445150867e+03 3.875925985859037e+11 3.875925985859037e+11 + 7.999999999999999e-01 3.511942445150867e+03 3.875925985859037e+11 3.875925985859037e+11 + 8.000072992700730e-01 3.034563304270994e+03 3.352421145554179e+11 3.352421145554179e+11 + 8.333357664233577e-01 3.016298084583032e+03 3.292249907917719e+11 3.292249907917719e+11 + 8.333430656934308e-01 3.016298084583032e+03 3.292249907917719e+11 3.292249907917719e+11 + 8.666642335766424e-01 2.997525497681514e+03 3.231162002237988e+11 3.231162002237988e+11 + 8.666715328467153e-01 2.997525497681514e+03 3.231162002237988e+11 3.231162002237988e+11 + 9.000000000000000e-01 2.979260277993552e+03 3.172454989142069e+11 3.172454989142069e+11 + 9.000072992700731e-01 2.822937769143499e+03 3.007016198244482e+11 3.007016198244482e+11 + 9.333357664233577e-01 2.765258128023592e+03 2.826435369084144e+11 2.826435369084144e+11 + 9.333430656934306e-01 2.765258128023592e+03 2.826435369084144e+11 2.826435369084144e+11 + 9.666642335766423e-01 2.707097823227667e+03 2.651820111833447e+11 2.651820111833447e+11 + 9.666715328467154e-01 2.707097823227667e+03 2.651820111833447e+11 2.651820111833447e+11 + 1.000000000000000e+00 2.649418182107783e+03 2.485901655686259e+11 2.485901655686259e+11 +---------------------- TOWER FORE-AFT MODE SHAPES ------------------------------ +1.0543392821630997 TwFAM1Sh(2) - Mode 1, coefficient of x^2 term +0.1810017385884292 TwFAM1Sh(3) - , coefficient of x^3 term +-0.46602049661291023 TwFAM1Sh(4) - , coefficient of x^4 term +0.4460540320515873 TwFAM1Sh(5) - , coefficient of x^5 term +-0.21537455619020587 TwFAM1Sh(6) - , coefficient of x^6 term +-217.3854132306921 TwFAM2Sh(2) - Mode 2, coefficient of x^2 term +151.84771777617206 TwFAM2Sh(3) - , coefficient of x^3 term +66.82769512875785 TwFAM2Sh(4) - , coefficient of x^4 term +29.296230813022923 TwFAM2Sh(5) - , coefficient of x^5 term +-29.586230487260725 TwFAM2Sh(6) - , coefficient of x^6 term +---------------------- TOWER SIDE-TO-SIDE MODE SHAPES -------------------------- +1.0417366972719226 TwSSM1Sh(2) - Mode 1, coefficient of x^2 term +0.18939704471748178 TwSSM1Sh(3) - , coefficient of x^3 term +-0.4680662920893634 TwSSM1Sh(4) - , coefficient of x^4 term +0.45227327600107614 TwSSM1Sh(5) - , coefficient of x^5 term +-0.21534072590111708 TwSSM1Sh(6) - , coefficient of x^6 term +50.25121840717717 TwSSM2Sh(2) - Mode 2, coefficient of x^2 term +-33.782706963572 TwSSM2Sh(3) - , coefficient of x^3 term +-6.641653040920328 TwSSM2Sh(4) - , coefficient of x^4 term +-13.957100822090979 TwSSM2Sh(5) - , coefficient of x^5 term +5.130242419406127 TwSSM2Sh(6) - , coefficient of x^6 term diff --git a/Test_Cases/BAR_10/BAR_10_InflowFile.dat b/Test_Cases/BAR_10/BAR_10_InflowFile.dat new file mode 100644 index 000000000..b6191b38d --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_InflowFile.dat @@ -0,0 +1,53 @@ +------- InflowWind v3.01.* INPUT FILE ------------------------------------------------------------------------- +Generated with AeroElasticSE FAST driver +--------------------------------------------------------------------------------------------------------------- +False Echo - Echo input data to .ech (flag) +3 WindType - switch for wind file type (1=steady; 2=uniform; 3=binary TurbSim FF; 4=binary Bladed-style FF; 5=HAWC format; 6=User defined) +0.0 PropagationDir - Direction of wind propagation (meteoroligical rotation from aligned with X (positive rotates towards -Y) -- degrees) +1 NWindVel - Number of points to output the wind velocity (0 to 9) +0.0 WindVxiList - List of coordinates in the inertial X direction (m) +0.0 WindVyiList - List of coordinates in the inertial Y direction (m) +90.0 WindVziList - List of coordinates in the inertial Z direction (m) +================== Parameters for Steady Wind Conditions [used only for WindType = 1] ========================= +10.0 HWindSpeed - Horizontal windspeed (m/s) +140.0 RefHtT1 - Reference height for horizontal wind speed (m) +0.2 PLexp - Power law exponent (-) +================== Parameters for Uniform wind file [used only for WindType = 2] ============================ +"/Users/pbortolo/work/2_openfast/BAR/OpenFAST_Models/BAR_00/Wind/140m_12mps.bts" FilenameT2 - Filename of time series data for uniform wind field. (-) +140.0 RefHtT2 - Reference height for horizontal wind speed (m) +125.88 RefLength - Reference length for linear horizontal and vertical sheer (-) +================== Parameters for Binary TurbSim Full-Field files [used only for WindType = 3] ============== +"/Users/nabbas/Documents/WindEnergyToolbox/WindFiles/TurbWind/140m/140m_12mps.bts" FilenameT3 - Name of the Full field wind file to use (.bts) +================== Parameters for Binary Bladed-style Full-Field files [used only for WindType = 4] ========= +"90m_12mps_twr" FilenameT4 - Rootname of the full-field wind file to use (.wnd, .sum) +False TowerFile - Have tower file (.twr) (flag) +================== Parameters for HAWC-format binary files [Only used with WindType = 5] ===================== +"/Users/pbortolo/work/2_openfast/BAR/OpenFAST_Models/BAR_00/basic_5u.bin" FileName_u - name of the file containing the u-component fluctuating wind (.bin) +"/Users/pbortolo/work/2_openfast/BAR/OpenFAST_Models/BAR_00/basic_5v.bin" FileName_v - name of the file containing the v-component fluctuating wind (.bin) +"/Users/pbortolo/work/2_openfast/BAR/OpenFAST_Models/BAR_00/basic_5w.bin" FileName_w - name of the file containing the w-component fluctuating wind (.bin) +64 nx - number of grids in the x direction (in the 3 files above) (-) +32 ny - number of grids in the y direction (in the 3 files above) (-) +32 nz - number of grids in the z direction (in the 3 files above) (-) +16.0 dx - distance (in meters) between points in the x direction (m) +3.0 dy - distance (in meters) between points in the y direction (m) +3.0 dz - distance (in meters) between points in the z direction (m) +140.0 RefHtT5 - reference height; the height (in meters) of the vertical center of the grid (m) +------------- Scaling parameters for turbulence --------------------------------------------------------- +2 ScaleMethod - Turbulence scaling method [0 = none, 1 = direct scaling, 2 = calculate scaling factor based on a desired standard deviation] +1.0 SFx - Turbulence scaling factor for the x direction (-) [ScaleMethod=1] +1.0 SFy - Turbulence scaling factor for the y direction (-) [ScaleMethod=1] +1.0 SFz - Turbulence scaling factor for the z direction (-) [ScaleMethod=1] +1.2 SigmaFx - Turbulence standard deviation to calculate scaling from in x direction (m/s) [ScaleMethod=2] +0.8 SigmaFy - Turbulence standard deviation to calculate scaling from in y direction (m/s) [ScaleMethod=2] +0.2 SigmaFz - Turbulence standard deviation to calculate scaling from in z direction (m/s) [ScaleMethod=2] +------------- Mean wind profile parameters (added to HAWC-format files) --------------------------------- +12.0 URef - Mean u-component wind speed at the reference height (m/s) +2 WindProfile - Wind profile type (0=constant;1=logarithmic,2=power law) +0.2 PLExp - Power law exponent (-) (used for PL wind profile type only) +0.03 Z0 - Surface roughness length (m) (used for LG wind profile type only) +====================== OUTPUT ================================================== +False SumPrint - Print summary data to .IfW.sum (flag) +OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"Wind1VelX" +END of input file (the word "END" must appear in the first 3 columns of this last OutList line) +--------------------------------------------------------------------------------------- diff --git a/Test_Cases/BAR_10/BAR_10_ServoDyn.dat b/Test_Cases/BAR_10/BAR_10_ServoDyn.dat new file mode 100644 index 000000000..7fdc11757 --- /dev/null +++ b/Test_Cases/BAR_10/BAR_10_ServoDyn.dat @@ -0,0 +1,102 @@ +------- SERVODYN v1.05.* INPUT FILE -------------------------------------------- +Generated with AeroElasticSE FAST driver +---------------------- SIMULATION CONTROL -------------------------------------- +False Echo - Echo input data to .ech (flag) +"default" DT - Communication interval for controllers (s) (or "default") +---------------------- PITCH CONTROL ------------------------------------------- +5 PCMode - Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) +0.0 TPCOn - Time to enable active pitch control (s) [unused when PCMode=0] +9999.9 TPitManS(1) - Time to start override pitch maneuver for blade 1 and end standard pitch control (s) +9999.9 TPitManS(2) - Time to start override pitch maneuver for blade 2 and end standard pitch control (s) +9999.9 TPitManS(3) - Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades] +2.0 PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s) +2.0 PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s) +2.0 PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades] +0.0 BlPitchF(1) - Blade 1 final pitch for pitch maneuvers (degrees) +0.0 BlPitchF(2) - Blade 2 final pitch for pitch maneuvers (degrees) +0.0 BlPitchF(3) - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades] +---------------------- GENERATOR AND TORQUE CONTROL ---------------------------- +5 VSContrl - Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) +2 GenModel - Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0] +98.0 GenEff - Generator efficiency [ignored by the Thevenin and user-defined generator models] (%) +True GenTiStr - Method to start the generator {T: timed using TimGenOn, F: generator speed using SpdGenOn} (flag) +True GenTiStp - Method to stop the generator {T: timed using TimGenOf, F: when generator power = 0} (flag) +9999.9 SpdGenOn - Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False] +0.0 TimGenOn - Time to turn on the generator for a startup (s) [used only when GenTiStr=True] +9999.9 TimGenOf - Time to turn off the generator (s) [used only when GenTiStp=True] +---------------------- SIMPLE VARIABLE-SPEED TORQUE CONTROL -------------------- +9999.9 VS_RtGnSp - Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1] +9999.9 VS_RtTq - Rated generator torque/constant generator torque in Region 3 for simple variable-speed generator control (HSS side) (N-m) [used only when VSContrl=1] +9999.9 VS_Rgn2K - Generator torque constant in Region 2 for simple variable-speed generator control (HSS side) (N-m/rpm^2) [used only when VSContrl=1] +9999.9 VS_SlPc - Rated generator slip percentage in Region 2 1/2 for simple variable-speed generator control (%) [used only when VSContrl=1] +---------------------- SIMPLE INDUCTION GENERATOR ------------------------------ +9999.9 SIG_SlPc - Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1] +9999.9 SIG_SySp - Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1] +9999.9 SIG_RtTq - Rated torque (N-m) [used only when VSContrl=0 and GenModel=1] +9999.9 SIG_PORt - Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1] +---------------------- THEVENIN-EQUIVALENT INDUCTION GENERATOR ----------------- +9999.9 TEC_Freq - Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2] +9998 TEC_NPol - Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2] +9999.9 TEC_SRes - Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2] +9999.9 TEC_RRes - Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2] +9999.9 TEC_VLL - Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2] +9999.9 TEC_SLR - Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2] +9999.9 TEC_RLR - Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2] +9999.9 TEC_MR - Magnetizing reactance (ohms) [used only when VSContrl=0 and GenModel=2] +---------------------- HIGH-SPEED SHAFT BRAKE ---------------------------------- +0 HSSBrMode - HSS brake model {0: none, 1: simple, 3: user-defined from routine UserHSSBr, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) +9999.9 THSSBrDp - Time to initiate deployment of the HSS brake (s) +0.6 HSSBrDT - Time for HSS-brake to reach full deployment once initiated (sec) [used only when HSSBrMode=1] +28116.2 HSSBrTqF - Fully deployed HSS-brake torque (N-m) +---------------------- NACELLE-YAW CONTROL ------------------------------------- +0 YCMode - Yaw control mode {0: none, 3: user-defined from routine UserYawCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) +9999.9 TYCOn - Time to enable active yaw control (s) [unused when YCMode=0] +0.0 YawNeut - Neutral yaw position--yaw spring force is zero at this yaw (degrees) +1578057871.17 YawSpr - Nacelle-yaw spring constant (N-m/rad) +3348742.80908 YawDamp - Nacelle-yaw damping constant (N-m/(rad/s)) +9999.9 TYawManS - Time to start override yaw maneuver and end standard yaw control (s) +2.0 YawManRat - Yaw maneuver rate (in absolute value) (deg/s) +0.0 NacYawF - Final yaw angle for override yaw maneuvers (degrees) +---------------------- TUNED MASS DAMPER --------------------------------------- +False CompNTMD - Compute nacelle tuned mass damper {true/false} (flag) +"a.dat" NTMDfile - Name of the file for nacelle tuned mass damper (quoted string) [unused when CompNTMD is false] +False CompTTMD - Compute tower tuned mass damper {true/false} (flag) +"b.dat" TTMDfile - Name of the file for tower tuned mass damper (quoted string) [unused when CompTTMD is false] +---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface] +"/Users/nabbas/Documents/WindEnergyToolbox/ROSCO/build/libdiscon.dylib" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] +"BAR_10_DISCON.IN" DLL_InFile - Name of input file sent to the DLL (-) [used only with Bladed Interface] +"DISCON" DLL_ProcName - Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface] +"default" DLL_DT - Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface] +False DLL_Ramp - Whether a linear ramp should be used between DLL_DT time steps [introduces time shift when true] (flag) [used only with Bladed Interface] +9999.9 BPCutoff - Cuttoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface] +0.0 NacYaw_North - Reference yaw angle of the nacelle when the upwind end points due North (deg) [used only with Bladed Interface] +0 Ptch_Cntrl - Record 28: Use individual pitch control {0: collective pitch; 1: individual pitch control} (switch) [used only with Bladed Interface] +0.0 Ptch_SetPnt - Record 5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface] +0.0 Ptch_Min - Record 6: Minimum pitch angle (deg) [used only with Bladed Interface] +0.0 Ptch_Max - Record 7: Maximum pitch angle (deg) [used only with Bladed Interface] +0.0 PtchRate_Min - Record 8: Minimum pitch rate (most negative value allowed) (deg/s) [used only with Bladed Interface] +0.0 PtchRate_Max - Record 9: Maximum pitch rate (deg/s) [used only with Bladed Interface] +0.0 Gain_OM - Record 16: Optimal mode gain (Nm/(rad/s)^2) [used only with Bladed Interface] +0.0 GenSpd_MinOM - Record 17: Minimum generator speed (rpm) [used only with Bladed Interface] +0.0 GenSpd_MaxOM - Record 18: Optimal mode maximum speed (rpm) [used only with Bladed Interface] +0.0 GenSpd_Dem - Record 19: Demanded generator speed above rated (rpm) [used only with Bladed Interface] +0.0 GenTrq_Dem - Record 22: Demanded generator torque above rated (Nm) [used only with Bladed Interface] +0.0 GenPwr_Dem - Record 13: Demanded power (W) [used only with Bladed Interface] +---------------------- BLADED INTERFACE TORQUE-SPEED LOOK-UP TABLE ------------- +0 DLL_NumTrq - Record 26: No. of points in torque-speed look-up table {0 = none and use the optimal mode parameters; nonzero = ignore the optimal mode PARAMETERs by setting Record 16 to 0.0} (-) [used only with Bladed Interface] +GenSpd_TLU GenTrq_TLU +(rpm) (Nm) +---------------------- OUTPUT -------------------------------------------------- +True SumPrint - Print summary data to .sum (flag) (currently unused) +1 OutFile - Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused) +True TabDelim - Use tab delimiters in text tabular output file? (flag) (currently unused) +"ES10.3E2" OutFmt - Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused) +0.0 TStart - Time to begin tabular output (s) (currently unused) + OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"GenPwr" +"GenTq" +"BLFLAP1" +"BLFLAP2" +"BLFLAP3" +END of input file (the word "END" must appear in the first 3 columns of this last OutList line) +--------------------------------------------------------------------------------------- diff --git a/Tune_Cases/BAR.yaml b/Tune_Cases/BAR.yaml index bf5c1017e..c93d0a737 100644 --- a/Tune_Cases/BAR.yaml +++ b/Tune_Cases/BAR.yaml @@ -4,7 +4,7 @@ # ------------------------------ OpenFAST PATH DEFINITIONS ------------------------------ path_params: FAST_InputFile: 'BAR_10.fst' # Name of *.fst file - FAST_directory: '/Users/nabbas/Documents/TurbineModels/WISDEM_Models/BAR_10/' # Main OpenFAST model directory, where the *.fst lives + FAST_directory: 'Test_Cases/BAR_10' # Main OpenFAST model directory, where the *.fst lives # Optional (but suggested...) rotor_performance_filename: 'BAR_10_Cp_Ct_Cq.txt' # Filename for rotor performance text file (if it has been generated by ccblade already) @@ -48,7 +48,7 @@ controller_params: omega_vs: 0.1 # Torque controller desired natural frequency [rad/s] # Only needed if Flp_Mode > 0 zeta_flp: 0.7 # Flap controller desired damping ratio [-] - omega_flp: 2.6285714285 # Flap controller desired natural frequency [rad/s] + omega_flp: 2.63 # Flap controller desired natural frequency [rad/s] # Optional - these can be defined, but do not need to be max_pitch: # None # Maximum pitch angle [rad], {default = 90 degrees} min_pitch: # None # Minimum pitch angle [rad], {default = 0 degrees} diff --git a/Tune_Cases/tune_ROSCO.py b/Tune_Cases/tune_ROSCO.py index b91dfc941..6c5668365 100644 --- a/Tune_Cases/tune_ROSCO.py +++ b/Tune_Cases/tune_ROSCO.py @@ -21,7 +21,8 @@ # Import ROSCO_toolbox modules from ROSCO_toolbox import controller as ROSCO_controller from ROSCO_toolbox import turbine as ROSCO_turbine -from ROSCO_toolbox import utilities as ROSCO_utilities +from ROSCO_toolbox.utilities import write_rotor_performance, write_DISCON + # Initialize parameter dictionaries turbine_params = {} control_params = {} @@ -35,14 +36,13 @@ #---------------------------------- DO THE FUN STUFF ------------------------------------# # Initialiize turbine and controller turbine = ROSCO_turbine.Turbine(turbine_params) -file_processing = ROSCO_utilities.FileProcessing() # Load Turbine, write rotor performance file if it doesn't exist if os.path.exists(path_params['rotor_performance_filename']): turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='txt',txt_filename=path_params['rotor_performance_filename']) else: turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source=None, txt_filename=path_params['rotor_performance_filename']) - file_processing.write_rotor_performance(turbine,txt_filename=path_params['rotor_performance_filename']) + write_rotor_performance(turbine,txt_filename=path_params['rotor_performance_filename']) # Flap tuning if necessary if controller_params['Flp_Mode']: @@ -54,8 +54,8 @@ # Write parameter input file param_file = 'DISCON.IN' -file_processing.write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename']) +write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename']) # Plot rotor performance -turbine.Cp.plot_performance(turbine.Cp_table, turbine.pitch_initial_rad, turbine.TSR_initial) +turbine.Cp.plot_performance() plt.show() diff --git a/ofTools/README.md b/ofTools/README.md new file mode 100644 index 000000000..5b26c1c77 --- /dev/null +++ b/ofTools/README.md @@ -0,0 +1,12 @@ +# OpenFAST Tools +A set of OpenFAST tools is provided to ease the use of the ROSCO toolbox in conjuction with [OpenFAST](https://github.com/openfast/openfast). + +Note that most of these scripts are copy and pasted from [weis's aeroleasticse](https://github.com/WISDEM/WEIS/tree/master/weis/aeroelasticse) + +### case_gen +The scripts found in the case_gen folder can be used to run large sets of openfast simulations. This can be done ad-hoc, or for specific DLCs. + +### fast_io +The scripts in the fast_io folder are generally used to read or write OpenFAST input files. Note that all files starting with "FAST_*" should generally be the same as those found in aeroelasticse (amongst a few other scripts). +- output_processing.py can be used to read OpenFAST output binary or text files, and then plot the output time series or power spectra. +- read_fast_input.py can be used to generically read OpenFAST input decks in a somewhat more flexible way than that in FAST_reader.py, so may be useful if the user's OpenFAST input files are out of date. \ No newline at end of file diff --git a/ofTools/__init__.py b/ofTools/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ofTools/case_gen/CaseGen_General.py b/ofTools/case_gen/CaseGen_General.py new file mode 100644 index 000000000..1a4a1d537 --- /dev/null +++ b/ofTools/case_gen/CaseGen_General.py @@ -0,0 +1,202 @@ +import os, itertools +import numpy as np +from ofTools.util.FileTools import save_yaml + +def save_case_matrix_direct(case_list, dir_matrix): + ### assumes all elements of the list are dict for that case that has the same keys! + if not os.path.exists(dir_matrix): + os.makedirs(dir_matrix) + ofh = open(os.path.join(dir_matrix,'case_matrix.txt'),'w') + case = case_list[0] + for key in case.keys(): + k = key[0] + ofh.write("%s " % k) + ofh.write("\n") + for key in case.keys(): + k = key[1] + ofh.write("%s " % k) + ofh.write("\n") + for i in range(len(case_list)): + case = case_list[i] + for key in case.keys(): + ofh.write(str(case[key])) + ofh.write(" ") + ofh.write("\n") + ofh.close() + + +def save_case_matrix(matrix_out, change_vars, dir_matrix): + # save matrix file + if type(change_vars[0]) is tuple: + n_header_lines = len(change_vars[0]) + else: + change_vars = [(var,) for var in change_vars] + n_header_lines = 1 + + n_cases = np.shape(matrix_out)[0] + matrix_out = np.hstack((np.asarray([[i] for i in range(n_cases)]), matrix_out)) + + change_vars = [('Case_ID',)+('',)*(n_header_lines-1)] + change_vars + # col_len = [max([len(val) for val in matrix_out[:,j]] + [len(change_vars[j][0]), len(change_vars[j][1])]) for j in range(len(change_vars))] + col_len = [max([len(str(val)) for val in matrix_out[:,j]] + [len(change_vars[j][header_i]) for header_i in range(n_header_lines)]) for j in range(len(change_vars))] + + text_out = [] + for header_i in range(n_header_lines): + text_out.append(''.join([val.center(col+2) for val, col in zip([var[header_i] for var in change_vars], col_len)])+'\n') + + for row in matrix_out: + row_str = '' + for val, col in zip(row, col_len): + if val is not str: + val = str(val) + row_str += val.center(col+2) + row_str += '\n' + text_out.append(row_str) + + if not os.path.exists(dir_matrix): + os.makedirs(dir_matrix) + ofh = open(os.path.join(dir_matrix,'case_matrix.txt'),'w') + for row in text_out: + ofh.write(row) + ofh.close() + +def save_case_matrix_yaml(matrix_out, change_vars, dir_matrix, case_names): + + matrix_out_yaml = {} + for var in change_vars: + matrix_out_yaml[var] = [] + matrix_out_yaml['Case_ID'] = [] + matrix_out_yaml['Case_Name'] = [] + + for i, row in enumerate(matrix_out): + matrix_out_yaml['Case_ID'].append(i) + matrix_out_yaml['Case_Name'].append(case_names[i]) + for val, var in zip(row, change_vars): + if type(val) is list: + if len(val) == 1: + val = val[0] + if type(val) in [np.float32, np.float64, np.single, np.double, np.longdouble]: + val = float(val) + elif type(val) in [np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.intc, np.uintc, np.uint]: + val = int(val) + elif type(val) in [np.array, np.ndarray]: + val = val.tolist() + elif type(val) in [np.str_]: + val = str(val) + # elif len(val) > 0: + # val = val.tolist() + matrix_out_yaml[var].append(val) + + if not os.path.exists(dir_matrix): + os.makedirs(dir_matrix) + + save_yaml(dir_matrix, 'case_matrix.yaml', matrix_out_yaml) + +def case_naming(n_cases, namebase=None): + # case naming + case_name = [('%d'%i).zfill(len('%d'%(n_cases-1))) for i in range(n_cases)] + if namebase: + case_name = [namebase+'_'+caseid for caseid in case_name] + + return case_name + +def convert_str(val): + def try_type(val, data_type): + try: + data_type(val) + return True + except: + return False +# return isinstance(val, data_type) ### this doesn't work b/c of numpy data types; they're not instances of base types + def try_list(val): + try: + val[0] + return True + except: + return False + + if try_type(val, int) and int(val) == float(val): + return int(val) + elif try_type(val, float): + return float(val) + elif val=='True': + return True + elif val=='False': + return False + # elif type(val)!=str and try_list(val): + # return ", ".join(['{:}'.format(i) for i in val]) + else: + return val + +def CaseGen_General(case_inputs, dir_matrix='', namebase='', save_matrix=True): + """ Cartesian product to enumerate over all combinations of set of variables that are changed together""" + + # put case dict into lists + change_vars = sorted(case_inputs.keys()) + change_vals = [case_inputs[var]['vals'] for var in change_vars] + change_group = [case_inputs[var]['group'] for var in change_vars] + + # find number of groups and length of groups + group_set = list(set(change_group)) + group_len = [len(change_vals[change_group.index(i)]) for i in group_set] + + # case matrix, as indices + group_idx = [range(n) for n in group_len] + matrix_idx = list(itertools.product(*group_idx)) + + # index of each group + matrix_group_idx = [np.where([group_i == group_j for group_j in change_group])[0].tolist() for group_i in group_set] + + # build final matrix of variable values + matrix_out = [] + for i, row in enumerate(matrix_idx): + row_out = [None]*len(change_vars) + for j, val in enumerate(row): + for g in matrix_group_idx[j]: + row_out[g] = change_vals[g][val] + matrix_out.append(row_out) + try: + matrix_out = np.asarray(matrix_out, dtype=str) + except: + matrix_out = np.asarray(matrix_out) + n_cases = np.shape(matrix_out)[0] + + # case naming + case_name = case_naming(n_cases, namebase=namebase) + + # Save case matrix + if save_matrix: + if not dir_matrix: + dir_matrix = os.getcwd() + try: + save_case_matrix(matrix_out, change_vars, dir_matrix) + save_case_matrix_yaml(matrix_out, change_vars, dir_matrix, case_name) + except: + save_case_matrix_yaml(matrix_out, change_vars, dir_matrix, case_name) + + case_list = [] + for i in range(n_cases): + case_list_i = {} + for j, var in enumerate(change_vars): + case_list_i[var] = convert_str(matrix_out[i,j]) + case_list.append(case_list_i) + + + return case_list, case_name + + +if __name__ == "__main__": + + case_inputs = {} + case_inputs[("Fst","TMax")] = {'vals':[10.], 'group':0} + case_inputs[("InflowWind","WindType")] = {'vals':[1], 'group':0} + + case_inputs[("InflowWind","HWindSpeed")] = {'vals':[8., 9., 10., 11., 12.], 'group':1} + case_inputs[("ElastoDyn","RotSpeed")] = {'vals':[9.156, 10.296, 11.431, 11.89, 12.1], 'group':1} + case_inputs[("ElastoDyn","BlPitch1")] = {'vals':[0., 0., 0., 0., 3.823], 'group':1} + case_inputs[("ElastoDyn","BlPitch2")] = case_inputs[("ElastoDyn","BlPitch1")] + case_inputs[("ElastoDyn","BlPitch3")] = case_inputs[("ElastoDyn","BlPitch1")] + + case_inputs[("ElastoDyn","GenDOF")] = {'vals':['True','False'], 'group':2} + + case_list, case_name = CaseGen_General(case_inputs, 'C:/Users/egaertne/WISDEM/AeroelasticSE/src/AeroelasticSE/', 'testing') diff --git a/ofTools/case_gen/CaseGen_IEC.py b/ofTools/case_gen/CaseGen_IEC.py new file mode 100644 index 000000000..2352f9ec6 --- /dev/null +++ b/ofTools/case_gen/CaseGen_IEC.py @@ -0,0 +1,405 @@ +import numpy as np +import os, sys, copy, itertools +import multiprocessing as mp + +from ofTools.case_gen.CaseGen_General import CaseGen_General, save_case_matrix, save_case_matrix_yaml +from ofTools.fast_io.pyIECWind import pyIECWind_extreme, pyIECWind_turb + +try: + from mpi4py import MPI +except: + pass + +# Generate wind files +def gen_windfile(data): + # function for calling wind file execution + iecwind = data[0] + IEC_WindType = data[1] + change_vars = data[2] + var_vals = data[3] + + if 'Seeds' in change_vars: + iecwind.seed = var_vals[change_vars.index('Seeds')] + U = var_vals[change_vars.index('U')] + + wind_file, wind_file_type = iecwind.execute(IEC_WindType, U) + if type(wind_file) is str: + U_out = [U] + WindFile_out = [wind_file] + WindFile_type_out = [wind_file_type] + elif type(wind_file) is list: + U_out = [U]*len(wind_file) + WindFile_out = wind_file + WindFile_type_out = wind_file_type + return [U_out, WindFile_out, WindFile_type_out] + +class CaseGen_IEC(): + + def __init__(self): + + self.init_cond = {} # Dictionary of steady state operating conditions as a function of wind speed, used for setting inital conditions + + self.Turbine_Class = 'I' # I, II, III, IV + self.Turbulence_Class = 'A' + self.D = 126. + self.z_hub = 90. + + # DLC inputs + self.dlc_inputs = {} + self.transient_dir_change = 'both' # '+','-','both': sign for transient events in EDC, EWS + self.transient_shear_orientation = 'both' # 'v','h','both': vertical or horizontal shear for EWS + self.PC_MaxRat = 5. # (deg), maximum blade pitch rate, used for emergency stop, DLC 5.1 + self.TMax = 0. + self.TStart = 30. + self.uniqueSeeds = False + self.uniqueWaveSeeds = False + + self.debug_level = 2 + self.parallel_windfile_gen = False + self.cores = 0 + self.overwrite = False + + self.mpi_run = False + self.comm_map_down = [] + + self.run_dir = os.path.dirname( os.path.dirname( os.path.dirname( os.path.realpath(__file__) ) ) ) + os.sep + self.Turbsim_exe = os.path.join(self.run_dir, 'local/bin/turbsim') + + + def execute(self, case_inputs={}): + + case_list_all = {} + dlc_all = [] + + for i, dlc in enumerate(self.dlc_inputs['DLC']): + case_inputs_i = copy.deepcopy(case_inputs) + + # DLC specific variable changes + if dlc in [1.1, 1.2, 5.1]: + IEC_WindType = 'NTM' + alpha = 0.2 + iecwind = pyIECWind_turb() + TMax = 630. + + elif dlc in [1.3, 6.1, 6.3]: + if self.Turbine_Class == 'I': + x = 1 + elif self.Turbine_Class == 'II': + x = 2 + elif self.Turbine_Class == 'III': + x = 3 + else: + exit('Class of the WT is needed for the ETM wind, but it is currently not set to neither 1,2 or 3.') + IEC_WindType = '%uETM'%x + alpha = 0.11 + iecwind = pyIECWind_turb() + TMax = 630. + + elif dlc == 1.4: + IEC_WindType = 'ECD' + alpha = 0.2 + iecwind = pyIECWind_extreme() + TMax = 90. + + elif dlc == 1.5: + IEC_WindType = 'EWS' + alpha = 0.2 + iecwind = pyIECWind_extreme() + TMax = 90. + + # Windfile generation setup + if self.TMax == 0.: + iecwind.AnalysisTime = TMax + iecwind.TF = TMax + else: + iecwind.AnalysisTime = self.TMax + iecwind.TF = self.TMax + + iecwind.TStart = self.TStart + iecwind.Turbine_Class = self.Turbine_Class + iecwind.Turbulence_Class = self.Turbulence_Class + iecwind.IEC_WindType = IEC_WindType + iecwind.dir_change = self.transient_dir_change + iecwind.shear_orient = self.transient_shear_orientation + iecwind.z_hub = self.z_hub + iecwind.D = self.D + iecwind.PLExp = alpha + + iecwind.outdir = self.wind_dir + iecwind.case_name = self.case_name_base + iecwind.Turbsim_exe = self.Turbsim_exe + iecwind.debug_level = self.debug_level + iecwind.overwrite = self.overwrite + + # Set DLC specific settings + iecwind_ex = pyIECWind_extreme() + iecwind_ex.Turbine_Class = self.Turbine_Class + iecwind_ex.Turbulence_Class = self.Turbulence_Class + iecwind_ex.z_hub = self.z_hub + iecwind_ex.setup() + _, V_e50, V_e1, V_50, V_1 = iecwind_ex.EWM(0.) + + + if dlc == 5.1: + case_inputs_i[("ServoDyn","TPitManS1")] = {'vals':[self.TStart], 'group':0} + case_inputs_i[("ServoDyn","TPitManS2")] = {'vals':[self.TStart], 'group':0} + case_inputs_i[("ServoDyn","TPitManS3")] = {'vals':[self.TStart], 'group':0} + case_inputs_i[("ServoDyn","PitManRat1")] = {'vals':[self.PC_MaxRat], 'group':0} + case_inputs_i[("ServoDyn","PitManRat2")] = {'vals':[self.PC_MaxRat], 'group':0} + case_inputs_i[("ServoDyn","PitManRat3")] = {'vals':[self.PC_MaxRat], 'group':0} + case_inputs_i[("ServoDyn","BlPitchF1")] = {'vals':[90.], 'group':0} + case_inputs_i[("ServoDyn","BlPitchF2")] = {'vals':[90.], 'group':0} + case_inputs_i[("ServoDyn","BlPitchF3")] = {'vals':[90.], 'group':0} + case_inputs_i[("ServoDyn","GenTiStp")] = {'vals':["True"], 'group':0} + case_inputs_i[("ServoDyn","TimGenOf")] = {'vals':[self.TStart], 'group':0} + else: + case_inputs_i[("ServoDyn","TPitManS1")] = {'vals':[9999.9], 'group':0} + case_inputs_i[("ServoDyn","TPitManS2")] = {'vals':[9999.9], 'group':0} + case_inputs_i[("ServoDyn","TPitManS3")] = {'vals':[9999.9], 'group':0} + case_inputs_i[("ServoDyn","PitManRat1")] = {'vals':[2.], 'group':0} + case_inputs_i[("ServoDyn","PitManRat2")] = {'vals':[2.], 'group':0} + case_inputs_i[("ServoDyn","PitManRat3")] = {'vals':[2.], 'group':0} + case_inputs_i[("ServoDyn","BlPitchF1")] = {'vals':[0.], 'group':0} + case_inputs_i[("ServoDyn","BlPitchF2")] = {'vals':[0.], 'group':0} + case_inputs_i[("ServoDyn","BlPitchF3")] = {'vals':[0.], 'group':0} + case_inputs_i[("ServoDyn","GenTiStp")] = {'vals':["True"], 'group':0} + case_inputs_i[("ServoDyn","TimGenOf")] = {'vals':[9999.9], 'group':0} + + if dlc == 6.1: + self.dlc_inputs['U'][i] = [V_50] + self.dlc_inputs['Yaw'][i] = [-8.,8.] + case_inputs_i[("ElastoDyn","GenDOF")] = {'vals':["False"], 'group':0} + case_inputs_i[("ElastoDyn","YawDOF")] = {'vals':["False"], 'group':0} + case_inputs_i[("ElastoDyn","RotSpeed")] = {'vals':[0.], 'group':0} + case_inputs_i[("ElastoDyn","BlPitch1")] = {'vals':[90.], 'group':0} + case_inputs_i[("ElastoDyn","BlPitch2")] = {'vals':[90.], 'group':0} + case_inputs_i[("ElastoDyn","BlPitch3")] = {'vals':[90.], 'group':0} + case_inputs_i[("ServoDyn","PCMode")] = {'vals':[0], 'group':0} + case_inputs_i[("AeroDyn15","AFAeroMod")]= {'vals':[1], 'group':0} + elif dlc == 6.3: + self.dlc_inputs['U'][i] = [V_1] + self.dlc_inputs['Yaw'][i] = [-20.,20.] + case_inputs_i[("ElastoDyn","GenDOF")] = {'vals':["False"], 'group':0} + case_inputs_i[("ElastoDyn","YawDOF")] = {'vals':["False"], 'group':0} + case_inputs_i[("ElastoDyn","RotSpeed")] = {'vals':[0.], 'group':0} + case_inputs_i[("ElastoDyn","BlPitch1")] = {'vals':[90.], 'group':0} + case_inputs_i[("ElastoDyn","BlPitch2")] = {'vals':[90.], 'group':0} + case_inputs_i[("ElastoDyn","BlPitch3")] = {'vals':[90.], 'group':0} + case_inputs_i[("ServoDyn","PCMode")] = {'vals':[0], 'group':0} + case_inputs_i[("AeroDyn15","AFAeroMod")]= {'vals':[1], 'group':0} + else: + self.dlc_inputs['Yaw'][i] = [0.] + case_inputs_i[("ServoDyn","PCMode")] = {'vals':[5], 'group':0} + case_inputs_i[("AeroDyn15","AFAeroMod")]= {'vals':[2], 'group':0} + case_inputs_i[("ElastoDyn","GenDOF")] = {'vals':["True"], 'group':0} + case_inputs_i[("ElastoDyn","YawDOF")] = {'vals':["True"], 'group':0} + + + # Matrix combining N dlc variables that affect wind file generation + # Done so a single loop can be used for generating wind files in parallel instead of using nested loops + var_list = ['U', 'Seeds'] + group_len = [] + change_vars = [] + change_vals = [] + for var in var_list: + if len(self.dlc_inputs[var][i]) > 0: + group_len.append(len(self.dlc_inputs[var][i])) + change_vars.append(var) + change_vals.append(self.dlc_inputs[var][i]) + group_idx = [range(n) for n in group_len] + matrix_idx = list(itertools.product(*group_idx)) + matrix_group_idx = [np.where([group_i == group_j for group_j in range(0,len(group_len))])[0].tolist() for group_i in range(0,len(group_len))] + matrix_out = [] + for idx, row in enumerate(matrix_idx): + row_out = [None]*len(change_vars) + for j, val in enumerate(row): + for g in matrix_group_idx[j]: + row_out[g] = change_vals[g][val] + matrix_out.append(row_out) + matrix_out = np.asarray(matrix_out) + + # change seed manually to not mess up indexing above, 600 + if self.uniqueSeeds and dlc in [1.1, 1.2, 5.1, 1.3, 6.1, 6.3]: + for idx, row in enumerate(matrix_out): + matrix_out[idx][1] = idx + 600 + + if self.parallel_windfile_gen and not self.mpi_run: + # Parallel wind file generation (threaded with multiprocessing) + if self.cores != 0: + p = mp.Pool(self.cores) + else: + p = mp.Pool() + data_out = p.map(gen_windfile, [(iecwind, IEC_WindType, change_vars, var_vals) for var_vals in matrix_out]) + U_out = [] + WindFile_out = [] + WindFile_type_out = [] + for case in data_out: + U_out.extend(case[0]) + WindFile_out.extend(case[1]) + WindFile_type_out.extend(case[2]) + + elif self.parallel_windfile_gen and self.mpi_run: + # Parallel wind file generation with MPI + comm = MPI.COMM_WORLD + # size = comm.Get_size() + rank = comm.Get_rank() + sub_ranks = self.comm_map_down[rank] + size = len(sub_ranks) + + N_cases = len(matrix_out) + N_loops = int(np.ceil(float(N_cases)/float(size))) + + U_out = [] + WindFile_out = [] + WindFile_type_out = [] + for j in range(N_loops): + idx_s = j*size + idx_e = min((j+1)*size, N_cases) + + for k, var_vals in enumerate(matrix_out[idx_s:idx_e]): + data = [gen_windfile, [iecwind, IEC_WindType, change_vars, var_vals]] + rank_k = sub_ranks[k] + comm.send(data, dest=rank_k, tag=0) + + for k, var_vals in enumerate(matrix_out[idx_s:idx_e]): + rank_k = sub_ranks[k] + data_out = comm.recv(source=rank_k, tag=1) + U_out.extend(data_out[0]) + WindFile_out.extend(data_out[1]) + WindFile_type_out.extend(data_out[2]) + + else: + # Serial + U_out = [] + WindFile_out = [] + WindFile_type_out = [] + for var_vals in matrix_out: + [U_out_i, WindFile_out_i, WindFile_type_out_i] = gen_windfile([iecwind, IEC_WindType, change_vars, var_vals]) + U_out.extend(U_out_i) + WindFile_out.extend(WindFile_out_i) + WindFile_type_out.extend(WindFile_type_out_i) + + # Set FAST variables from DLC setup + if ("Fst","TMax") not in case_inputs_i: + case_inputs_i[("Fst","TMax")] = {'vals':[TMax], 'group':0} + case_inputs_i[("InflowWind","WindType")] = {'vals':WindFile_type_out, 'group':1} + case_inputs_i[("InflowWind","Filename")] = {'vals':WindFile_out, 'group':1} + + if len(self.dlc_inputs['Yaw'][i]) > 0: + case_inputs_i[("ElastoDyn","NacYaw")] = {'vals':self.dlc_inputs['Yaw'][i], 'group':2} + + # Set FAST variables from inital conditions + if self.init_cond: + for var in self.init_cond.keys(): + if var not in case_inputs_i.keys(): + inital_cond_i = [np.interp(U, self.init_cond[var]['U'], self.init_cond[var]['val']) for U in U_out] + case_inputs_i[var] = {'vals':inital_cond_i, 'group':1} + + # make unique wave seeds + if self.uniqueWaveSeeds: + seed_base = int(float(dlc) * 10000) # set wave seed based on dlc so no repeats + num_in_dlc = len(case_inputs_i[("InflowWind","Filename")]['vals']) # sims in each DLC + wave_seeds = (seed_base + np.arange(0,num_in_dlc)).tolist() + + case_inputs_i[("HydroDyn","WaveSeed1")] = {'vals':wave_seeds, 'group':1} + + # Append current DLC to full list of cases + case_list, case_name = CaseGen_General(case_inputs_i, self.run_dir, self.case_name_base, save_matrix=False) + case_list_all = self.join_case_dicts(case_list_all, case_list) + case_names_all = [self.case_name_base +'_'+ ('%d'%i).zfill(len('%d'%(len(case_list_all)-1))) for i in range(len(case_list_all))] + dlc_all.extend([dlc]*len(case_list)) + + # Save case matrix file + self.save_joined_case_matrix(case_list_all, dlc_all, case_names_all) + + return case_list_all, case_names_all, dlc_all + + + def join_case_dicts(self, caselist, caselist_add): + if caselist: + keys1 = caselist[0].keys() + keys2 = caselist_add[0].keys() + n1 = len(caselist) + n2 = len(caselist_add) + + common = list(set(keys1) & set(keys2)) + missing1 = list(set(keys1).difference(keys2)) + missing2 = list(set(keys2).difference(keys1)) + + # caselist_out = copy.copy(case_list) + for i in range(n1): + for var in missing2: + caselist[i][var] = np.nan + for i in range(n2): + for var in missing1: + caselist_add[i][var] = np.nan + + return caselist + caselist_add + else: + return caselist_add + + def save_joined_case_matrix(self, caselist, dlc_list, case_names_all): + + change_vars = sorted(caselist[0].keys()) + + matrix_out = [] + for case in caselist: + row_out = [None]*len(change_vars) + for i, var in enumerate(change_vars): + # row_out[i] = str(case[var]) + row_out[i] = case[var] + matrix_out.append(row_out) + + change_vars = [('IEC', 'DLC')] + change_vars + [matrix_row.insert(0, dlc) for dlc, matrix_row in zip(dlc_list,matrix_out)] + + if not os.path.exists(self.run_dir): + os.makedirs(self.run_dir) + + save_case_matrix(matrix_out, change_vars, self.run_dir) + save_case_matrix_yaml(matrix_out, change_vars, self.run_dir, case_names_all) + + + +if __name__=="__main__": + + iec = CaseGen_IEC() + + # Turbine Data + iec.init_cond = {} # can leave as {} if data not available + iec.init_cond[("ElastoDyn","RotSpeed")] = {'U':[3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25]} + iec.init_cond[("ElastoDyn","RotSpeed")]['val'] = [6.972, 7.183, 7.506, 7.942, 8.469, 9.156, 10.296, 11.431, 11.89, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1] + iec.init_cond[("ElastoDyn","BlPitch1")] = {'U':[3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25]} + iec.init_cond[("ElastoDyn","BlPitch1")]['val'] = [0., 0., 0., 0., 0., 0., 0., 0., 0., 3.823, 6.602, 8.668, 10.450, 12.055, 13.536, 14.920, 16.226, 17.473, 18.699, 19.941, 21.177, 22.347, 23.469] + iec.init_cond[("ElastoDyn","BlPitch2")] = iec.init_cond[("ElastoDyn","BlPitch1")] + iec.init_cond[("ElastoDyn","BlPitch3")] = iec.init_cond[("ElastoDyn","BlPitch1")] + + iec.Turbine_Class = 'I' # I, II, III, IV + iec.Turbulence_Class = 'A' + iec.D = 126. + iec.z_hub = 90. + + # DLC inputs + iec.dlc_inputs = {} + iec.dlc_inputs['DLC'] = [1.1, 1.5] + iec.dlc_inputs['U'] = [[8, 9, 10], [8]] + iec.dlc_inputs['Seeds'] = [[5, 6, 7], []] + iec.dlc_inputs['Yaw'] = [[], []] + + iec.transient_dir_change = 'both' # '+','-','both': sign for transient events in EDC, EWS + iec.transient_shear_orientation = 'both' # 'v','h','both': vertical or horizontal shear for EWS + + # Naming, file management, etc + iec.wind_dir = 'temp/wind' + iec.case_name_base = 'testing' + iec.Turbsim_exe = 'C:/Users/egaertne/WT_Codes/Turbsim_v2.00.07/bin/TurbSim_x64.exe' + iec.debug_level = 1 + iec.run_dir = 'temp' + + iec.parallel_windfile_gen = True + iec.cores = 4 + + # Run + iec.execute() + + diff --git a/ofTools/case_gen/__init__.py b/ofTools/case_gen/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ofTools/case_gen/runFAST_pywrapper.py b/ofTools/case_gen/runFAST_pywrapper.py new file mode 100644 index 000000000..068206a5a --- /dev/null +++ b/ofTools/case_gen/runFAST_pywrapper.py @@ -0,0 +1,531 @@ +""" +A basic python script that demonstrates how to use the FST8 reader, writer, and wrapper in a purely +python setting. These functions are constructed to provide a simple interface for controlling FAST +programmatically with minimal additional dependencies. +""" +# Hacky way of doing relative imports +from __future__ import print_function +import os, sys, time +import multiprocessing as mp +# sys.path.insert(0, os.path.abspath("..")) + +from ofTools.fast_io.FAST_reader import InputReader_Common, InputReader_OpenFAST, InputReader_FAST7 +from ofTools.fast_io.FAST_writer import InputWriter_Common, InputWriter_OpenFAST, InputWriter_FAST7 +from ofTools.fast_io.FAST_wrapper import FastWrapper +from ofTools.fast_io.FAST_post import FAST_IO_timeseries + +import numpy as np + +class runFAST_pywrapper(object): + + def __init__(self, **kwargs): + self.FAST_ver = 'OPENFAST' #(FAST7, FAST8, OPENFAST) + + self.FAST_exe = None + self.FAST_InputFile = None + self.FAST_directory = None + self.FAST_runDirectory = None + self.FAST_namingOut = None + self.read_yaml = False + self.write_yaml = False + self.fst_vt = {} + self.case = {} # dictionary of variable values to change + self.channels = {} # dictionary of output channels to change + self.debug_level = 0 + + self.overwrite_outfiles = True # True: existing output files will be overwritten, False: if output file with the same name already exists, OpenFAST WILL NOT RUN; This is primarily included for code debugging with OpenFAST in the loop or for specific Optimization Workflows where OpenFAST is to be run periodically instead of for every objective function anaylsis + + # Optional population class attributes from key word arguments + for (k, w) in kwargs.items(): + try: + setattr(self, k, w) + except: + pass + + super(runFAST_pywrapper, self).__init__() + + def execute(self): + + # FAST version specific initialization + if self.FAST_ver.lower() == 'fast7': + reader = InputReader_FAST7(FAST_ver=self.FAST_ver) + writer = InputWriter_FAST7(FAST_ver=self.FAST_ver) + elif self.FAST_ver.lower() in ['fast8','openfast']: + reader = InputReader_OpenFAST(FAST_ver=self.FAST_ver) + writer = InputWriter_OpenFAST(FAST_ver=self.FAST_ver) + wrapper = FastWrapper(FAST_ver=self.FAST_ver, debug_level=self.debug_level) + + # Read input model, FAST files or Yaml + if self.fst_vt == {}: + if self.read_yaml: + reader.FAST_yamlfile = self.FAST_yamlfile_in + reader.read_yaml() + else: + reader.FAST_InputFile = self.FAST_InputFile + reader.FAST_directory = self.FAST_directory + reader.execute() + + # Initialize writer variables with input model + writer.fst_vt = reader.fst_vt + else: + writer.fst_vt = self.fst_vt + writer.FAST_runDirectory = self.FAST_runDirectory + writer.FAST_namingOut = self.FAST_namingOut + # Make any case specific variable changes + if self.case: + writer.update(fst_update=self.case) + # Modify any specified output channels + if self.channels: + writer.update_outlist(self.channels) + # Write out FAST model + writer.execute() + if self.write_yaml: + writer.FAST_yamlfile = self.FAST_yamlfile_out + writer.write_yaml() + + # Run FAST + wrapper.FAST_exe = self.FAST_exe + wrapper.FAST_InputFile = os.path.split(writer.FAST_InputFileOut)[1] + wrapper.FAST_directory = os.path.split(writer.FAST_InputFileOut)[0] + + FAST_Output = os.path.join(wrapper.FAST_directory, wrapper.FAST_InputFile[:-3]+'outb') + FAST_Output_txt = os.path.join(wrapper.FAST_directory, wrapper.FAST_InputFile[:-3]+'out') + + #check if OpenFAST is set not to overwrite existing output files, TODO: move this further up in the workflow for minor computation savings + if self.overwrite_outfiles or (not self.overwrite_outfiles and not (os.path.exists(FAST_Output) or os.path.exists(FAST_Output_txt))): + wrapper.execute() + else: + if self.debug_level>0: + print('OpenFAST not execute: Output file "%s" already exists. To overwrite this output file, set "overwrite_outfiles = True".'%FAST_Output) + + return FAST_Output + +class runFAST_pywrapper_batch(object): + + def __init__(self, **kwargs): + + self.FAST_ver = 'OpenFAST' + run_dir = os.path.dirname( os.path.dirname( os.path.dirname( os.path.realpath(__file__) ) ) ) + os.sep + self.FAST_exe = os.path.join(run_dir, 'local/bin/openfast') # Path to executable + self.FAST_InputFile = None + self.FAST_directory = None + self.FAST_runDirectory = None + self.debug_level = 0 + + self.read_yaml = False + self.FAST_yamlfile_in = '' + self.fst_vt = {} + self.write_yaml = False + self.FAST_yamlfile_out = '' + + self.case_list = [] + self.case_name_list = [] + self.channels = {} + + self.overwrite_outfiles = True + + self.post = None + + # Optional population of class attributes from key word arguments + for (k, w) in kwargs.items(): + try: + setattr(self, k, w) + except: + pass + + super(runFAST_pywrapper_batch, self).__init__() + + + def run_serial(self): + # Run batch serially + + if not os.path.exists(self.FAST_runDirectory): + os.makedirs(self.FAST_runDirectory) + + out = [None]*len(self.case_list) + for i, (case, case_name) in enumerate(zip(self.case_list, self.case_name_list)): + out[i] = eval(case, case_name, self.FAST_ver, self.FAST_exe, self.FAST_runDirectory, self.FAST_InputFile, self.FAST_directory, self.read_yaml, self.FAST_yamlfile_in, self.fst_vt, self.write_yaml, self.FAST_yamlfile_out, self.channels, self.debug_level, self.overwrite_outfiles, self.post) + + return out + + def run_multi(self, cores=None): + # Run cases in parallel, threaded with multiprocessing module + + if not os.path.exists(self.FAST_runDirectory): + os.makedirs(self.FAST_runDirectory) + + if not cores: + cores = mp.cpu_count() + pool = mp.Pool(cores) + + case_data_all = [] + for i in range(len(self.case_list)): + case_data = [] + case_data.append(self.case_list[i]) + case_data.append(self.case_name_list[i]) + case_data.append(self.FAST_ver) + case_data.append(self.FAST_exe) + case_data.append(self.FAST_runDirectory) + case_data.append(self.FAST_InputFile) + case_data.append(self.FAST_directory) + case_data.append(self.read_yaml) + case_data.append(self.FAST_yamlfile_in) + case_data.append(self.fst_vt) + case_data.append(self.write_yaml) + case_data.append(self.FAST_yamlfile_out) + case_data.append(self.channels) + case_data.append(self.debug_level) + case_data.append(self.overwrite_outfiles) + case_data.append(self.post) + + case_data_all.append(case_data) + + output = pool.map(eval_multi, case_data_all) + pool.close() + pool.join() + + return output + + def run_mpi(self, mpi_comm_map_down): + # Run in parallel with mpi + from mpi4py import MPI + + # mpi comm management + comm = MPI.COMM_WORLD + rank = comm.Get_rank() + sub_ranks = mpi_comm_map_down[rank] + size = len(sub_ranks) + + N_cases = len(self.case_list) + N_loops = int(np.ceil(float(N_cases)/float(size))) + + # file management + if not os.path.exists(self.FAST_runDirectory) and rank == 0: + os.makedirs(self.FAST_runDirectory) + + case_data_all = [] + for i in range(N_cases): + case_data = [] + case_data.append(self.case_list[i]) + case_data.append(self.case_name_list[i]) + case_data.append(self.FAST_ver) + case_data.append(self.FAST_exe) + case_data.append(self.FAST_runDirectory) + case_data.append(self.FAST_InputFile) + case_data.append(self.FAST_directory) + case_data.append(self.read_yaml) + case_data.append(self.FAST_yamlfile_in) + case_data.append(self.fst_vt) + case_data.append(self.write_yaml) + case_data.append(self.FAST_yamlfile_out) + case_data.append(self.channels) + case_data.append(self.debug_level) + case_data.append(self.overwrite_outfiles) + case_data.append(self.post) + + case_data_all.append(case_data) + + output = [] + for i in range(N_loops): + idx_s = i*size + idx_e = min((i+1)*size, N_cases) + + for j, case_data in enumerate(case_data_all[idx_s:idx_e]): + data = [eval_multi, case_data] + rank_j = sub_ranks[j] + comm.send(data, dest=rank_j, tag=0) + + # for rank_j in sub_ranks: + for j, case_data in enumerate(case_data_all[idx_s:idx_e]): + rank_j = sub_ranks[j] + data_out = comm.recv(source=rank_j, tag=1) + output.append(data_out) + + return output + + + # def run_mpi(self, comm=None): + # # Run in parallel with mpi + # from mpi4py import MPI + + # # mpi comm management + # if not comm: + # comm = MPI.COMM_WORLD + # size = comm.Get_size() + # rank = comm.Get_rank() + + # N_cases = len(self.case_list) + # N_loops = int(np.ceil(float(N_cases)/float(size))) + + # # file management + # if not os.path.exists(self.FAST_runDirectory) and rank == 0: + # os.makedirs(self.FAST_runDirectory) + + # if rank == 0: + # case_data_all = [] + # for i in range(N_cases): + # case_data = [] + # case_data.append(self.case_list[i]) + # case_data.append(self.case_name_list[i]) + # case_data.append(self.FAST_ver) + # case_data.append(self.FAST_exe) + # case_data.append(self.FAST_runDirectory) + # case_data.append(self.FAST_InputFile) + # case_data.append(self.FAST_directory) + # case_data.append(self.read_yaml) + # case_data.append(self.FAST_yamlfile_in) + # case_data.append(self.fst_vt) + # case_data.append(self.write_yaml) + # case_data.append(self.FAST_yamlfile_out) + # case_data.append(self.channels) + # case_data.append(self.debug_level) + # case_data.append(self.post) + + # case_data_all.append(case_data) + # else: + # case_data_all = [] + + # output = [] + # for i in range(N_loops): + # # if # of cases left to run is less than comm size, split comm + # n_resid = N_cases - i*size + # if n_resid < size: + # split_comm = True + # color = np.zeros(size) + # for i in range(n_resid): + # color[i] = 1 + # color = [int(j) for j in color] + # comm_i = MPI.COMM_WORLD.Split(color, 1) + # else: + # split_comm = False + # comm_i = comm + + # # position in case list + # idx_s = i*size + # idx_e = min((i+1)*size, N_cases) + + # # scatter out cases + # if split_comm: + # if color[rank] == 1: + # case_data_i = comm_i.scatter(case_data_all[idx_s:idx_e], root=0) + # else: + # case_data_i = comm_i.scatter(case_data_all[idx_s:idx_e], root=0) + + # # eval + # out = eval_multi(case_data_i) + + # # gather results + # if split_comm: + # if color[rank] == 1: + # output_i = comm_i.gather(out, root=0) + # else: + # output_i = comm_i.gather(out, root=0) + + # if rank == 0: + # output.extend(output_i) + + # return output + + + +def eval(case, case_name, FAST_ver, FAST_exe, FAST_runDirectory, FAST_InputFile, FAST_directory, read_yaml, FAST_yamlfile_in, fst_vt, write_yaml, FAST_yamlfile_out, channels, debug_level, overwrite_outfiles, post): + # Batch FAST pyWrapper call, as a function outside the runFAST_pywrapper_batch class for pickle-ablility + + fast = runFAST_pywrapper(FAST_ver=FAST_ver) + fast.FAST_exe = FAST_exe + fast.FAST_InputFile = FAST_InputFile + fast.FAST_directory = FAST_directory + fast.FAST_runDirectory = FAST_runDirectory + + fast.read_yaml = read_yaml + fast.FAST_yamlfile_in = FAST_yamlfile_in + fast.fst_vt = fst_vt + fast.write_yaml = write_yaml + fast.FAST_yamlfile_out = FAST_yamlfile_out + + fast.FAST_namingOut = case_name + fast.case = case + fast.channels = channels + fast.debug_level = debug_level + + fast.overwrite_outfiles = overwrite_outfiles + + FAST_Output = fast.execute() + + # Post process + if post: + out = post(FAST_Output) + else: + out = [] + + return out + +def eval_multi(data): + # helper function for running with multiprocessing.Pool.map + # converts list of arguement values to arguments + return eval(data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8], data[9], data[10], data[11], data[12], data[13], data[14], data[15]) + +def example_runFAST_pywrapper_batch(): + """ + Example of running a batch of cases, in serial or in parallel + """ + fastBatch = runFAST_pywrapper_batch(FAST_ver='OpenFAST') + + # fastBatch.FAST_exe = 'C:/Users/egaertne/WT_Codes/openfast/build/glue-codes/fast/openfast.exe' # Path to executable + # fastBatch.FAST_InputFile = '5MW_Land_DLL_WTurb.fst' # FAST input file (ext=.fst) + # fastBatch.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/openfast/glue-codes/fast/5MW_Land_DLL_WTurb' # Path to fst directory files + # fastBatch.FAST_runDirectory = 'temp/OpenFAST' + # fastBatch.debug_level = 2 + fastBatch.FAST_exe = '/projects/windse/importance_sampling/WT_Codes/openfast/build/glue-codes/openfast/openfast' # Path to executable + fastBatch.FAST_InputFile = '5MW_Land_DLL_WTurb.fst' # FAST input file (ext=.fst) + fastBatch.FAST_directory = "/projects/windse/importance_sampling/WISDEM/xloads_tc/templates/openfast/5MW_Land_DLL_WTurb-Shutdown" # Path to fst directory files + fastBatch.FAST_runDirectory = 'temp/OpenFAST' + fastBatch.debug_level = 2 + fastBatch.post = FAST_IO_timeseries + + + ## Define case list explicitly + # case_list = [{}, {}] + # case_list[0]['Fst', 'TMax'] = 4. + # case_list[1]['Fst', 'TMax'] = 5. + # case_name_list = ['test01', 'test02'] + + ## Generate case list using General Case Generator + ## Specify several variables that change independently or collectly + case_inputs = {} + case_inputs[("Fst","TMax")] = {'vals':[5.], 'group':0} + case_inputs[("InflowWind","WindType")] = {'vals':[1], 'group':0} + case_inputs[("Fst","OutFileFmt")] = {'vals':[2], 'group':0} + case_inputs[("InflowWind","HWindSpeed")] = {'vals':[8., 9., 10., 11., 12.], 'group':1} + case_inputs[("ElastoDyn","RotSpeed")] = {'vals':[9.156, 10.296, 11.431, 11.89, 12.1], 'group':1} + case_inputs[("ElastoDyn","BlPitch1")] = {'vals':[0., 0., 0., 0., 3.823], 'group':1} + case_inputs[("ElastoDyn","BlPitch2")] = case_inputs[("ElastoDyn","BlPitch1")] + case_inputs[("ElastoDyn","BlPitch3")] = case_inputs[("ElastoDyn","BlPitch1")] + case_inputs[("ElastoDyn","GenDOF")] = {'vals':['True','False'], 'group':2} + + from CaseGen_General import CaseGen_General + case_list, case_name_list = CaseGen_General(case_inputs, dir_matrix=fastBatch.FAST_runDirectory, namebase='testing') + + fastBatch.case_list = case_list + fastBatch.case_name_list = case_name_list + + # fastBatch.run_serial() + # fastBatch.run_multi(2) + fastBatch.run_mpi() + + +def example_runFAST_CaseGenIEC(): + + from CaseGen_IEC import CaseGen_IEC + iec = CaseGen_IEC() + + # Turbine Data + iec.init_cond = {} # can leave as {} if data not available + iec.init_cond[("ElastoDyn","RotSpeed")] = {'U':[3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25]} + iec.init_cond[("ElastoDyn","RotSpeed")]['val'] = [6.972, 7.183, 7.506, 7.942, 8.469, 9.156, 10.296, 11.431, 11.89, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1] + iec.init_cond[("ElastoDyn","BlPitch1")] = {'U':[3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25]} + iec.init_cond[("ElastoDyn","BlPitch1")]['val'] = [0., 0., 0., 0., 0., 0., 0., 0., 0., 3.823, 6.602, 8.668, 10.450, 12.055, 13.536, 14.920, 16.226, 17.473, 18.699, 19.941, 21.177, 22.347, 23.469] + iec.init_cond[("ElastoDyn","BlPitch2")] = iec.init_cond[("ElastoDyn","BlPitch1")] + iec.init_cond[("ElastoDyn","BlPitch3")] = iec.init_cond[("ElastoDyn","BlPitch1")] + + iec.Turbine_Class = 'I' # I, II, III, IV + iec.Turbulence_Class = 'A' + iec.D = 126. + iec.z_hub = 90. + + # DLC inputs + iec.dlc_inputs = {} + iec.dlc_inputs['DLC'] = [1.1, 1.5] + iec.dlc_inputs['U'] = [[8, 9, 10], [12]] + iec.dlc_inputs['Seeds'] = [[5, 6, 7], []] + iec.dlc_inputs['Yaw'] = [[], []] + + iec.transient_dir_change = 'both' # '+','-','both': sign for transient events in EDC, EWS + iec.transient_shear_orientation = 'both' # 'v','h','both': vertical or horizontal shear for EWS + + # Naming, file management, etc + iec.wind_dir = 'temp/wind' + iec.case_name_base = 'testing' + iec.Turbsim_exe = 'C:/Users/egaertne/WT_Codes/Turbsim_v2.00.07/bin/TurbSim_x64.exe' + iec.debug_level = 2 + iec.parallel_windfile_gen = True + iec.cores = 4 + iec.run_dir = 'temp/OpenFAST' + + # Run case generator / wind file writing + case_inputs = {} + case_inputs[('Fst','OutFileFmt')] = {'vals':[1], 'group':0} + case_list, case_name_list, dlc_list = iec.execute(case_inputs=case_inputs) + + # Run FAST cases + fastBatch = runFAST_pywrapper_batch(FAST_ver='OpenFAST') + fastBatch.FAST_exe = 'C:/Users/egaertne/WT_Codes/openfast/build/glue-codes/fast/openfast.exe' # Path to executable + fastBatch.FAST_InputFile = '5MW_Land_DLL_WTurb.fst' # FAST input file (ext=.fst) + fastBatch.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/openfast/glue-codes/fast/5MW_Land_DLL_WTurb' # Path to fst directory files + fastBatch.FAST_runDirectory = iec.run_dir + + fastBatch.case_list = case_list + fastBatch.case_name_list = case_name_list + fastBatch.debug_level = 2 + + # fastBatch.run_serial() + fastBatch.run_multi(4) + + +def example_runFAST_pywrapper(): + """ + Example of reading, writing, and running FAST 7, 8 and OpenFAST. + """ + + FAST_ver = 'OpenFAST' + fast = runFAST_pywrapper(FAST_ver=FAST_ver, debug_level=2) + + if FAST_ver.lower() == 'fast7': + fast.FAST_exe = 'C:/Users/egaertne/WT_Codes/FAST_v7.02.00d-bjj/FAST.exe' # Path to executable + fast.FAST_InputFile = 'Test12.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/FAST_v7.02.00d-bjj/CertTest/' # Path to fst directory files + fast.FAST_runDirectory = 'temp/FAST7' + fast.FAST_namingOut = 'test' + + elif FAST_ver.lower() == 'fast8': + fast.FAST_exe = 'C:/Users/egaertne/WT_Codes/FAST_v8.16.00a-bjj/bin/FAST_Win32.exe' # Path to executable + fast.FAST_InputFile = 'NREL5MW_onshore.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/FAST_v8.16.00a-bjj/ref/5mw_onshore/' # Path to fst directory files + fast.FAST_runDirectory = 'temp/FAST8' + fast.FAST_namingOut = 'test' + + # elif FAST_ver.lower() == 'openfast': + # fast.FAST_exe = 'C:/Users/egaertne/WT_Codes/openfast/build/glue-codes/fast/openfast.exe' # Path to executable + # fast.FAST_InputFile = '5MW_Land_DLL_WTurb.fst' # FAST input file (ext=.fst) + # fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/openfast/glue-codes/fast/5MW_Land_DLL_WTurb' # Path to fst directory files + # fast.FAST_runDirectory = 'temp/OpenFAST' + # fast.FAST_namingOut = 'test' + + # fast.read_yaml = False + # fast.FAST_yamlfile_in = 'temp/OpenFAST/test.yaml' + + # fast.write_yaml = False + # fast.FAST_yamlfile_out = 'temp/OpenFAST/test.yaml' + elif FAST_ver.lower() == 'openfast': + fast.FAST_exe = 'C:/Users/egaertne/WT_Codes/openfast-dev/build/glue-codes/openfast/openfast.exe' # Path to executable + # fast.FAST_InputFile = '5MW_Land_DLL_WTurb.fst' # FAST input file (ext=.fst) + # fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/openfast-dev/r-test/glue-codes/openfast/5MW_Land_DLL_WTurb' # Path to fst directory files + fast.FAST_InputFile = '5MW_OC3Spar_DLL_WTurb_WavesIrr.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/openfast-dev/r-test/glue-codes/openfast/5MW_OC3Spar_DLL_WTurb_WavesIrr' # Path to fst directory files + fast.FAST_runDirectory = 'temp/OpenFAST' + fast.FAST_namingOut = 'test_run_spar' + + fast.read_yaml = False + fast.FAST_yamlfile_in = 'temp/OpenFAST/test.yaml' + + fast.write_yaml = False + fast.FAST_yamlfile_out = 'temp/OpenFAST/test.yaml' + + fast.execute() + + +if __name__=="__main__": + + # example_runFAST_pywrapper() + example_runFAST_pywrapper_batch() + # example_runFAST_CaseGenIEC() \ No newline at end of file diff --git a/ofTools/fast_io/FAST_post.py b/ofTools/fast_io/FAST_post.py new file mode 100644 index 000000000..73e589f78 --- /dev/null +++ b/ofTools/fast_io/FAST_post.py @@ -0,0 +1,14 @@ +from __future__ import print_function +from ofTools.fast_io.output_processing import output_processing +import ROSCO_toolbox + +def FAST_IO_timeseries(fname): + # interface to FAST_IO data load + try: + test = ROSCO_toolbox.__file__ + except: + print('WARNING: ROSCO_toolbox required for wisdem.aeroelasticse.FAST_post.FAST_IO_timeseries') + + fast_out = output_processing.output_processing() + fast_data = fast_out.load_fast_out(fname, verbose=True)[0] + return fast_data diff --git a/ofTools/fast_io/FAST_reader.py b/ofTools/fast_io/FAST_reader.py new file mode 100644 index 000000000..a698573d6 --- /dev/null +++ b/ofTools/fast_io/FAST_reader.py @@ -0,0 +1,2492 @@ +import os, re, sys, copy +import yaml +import numpy as np +from functools import reduce +import operator + +from ofTools.fast_io.FAST_vars import FstModel +from ROSCO_toolbox.utilities import read_DISCON, load_from_txt +from ROSCO_toolbox import turbine as ROSCO_turbine +ROSCO = True + +def readline_filterComments(f): + read = True + while read: + line = f.readline().strip() + if len(line)>0: + if line[0] != '!': + read = False + return line + + + +def fix_path(name): + """ split a path, then reconstruct it using os.path.join """ + name = re.split("\\\|/", name) + new = name[0] + for i in range(1,len(name)): + new = os.path.join(new, name[i]) + return new + +def bool_read(text): + # convert true/false strings to boolean + if 'default' in text.lower(): + return str(text) + else: + if text.lower() == 'true': + return True + else: + return False + +def float_read(text): + # return float with error handing for "default" values + if 'default' in text.lower(): + return str(text) + else: + try: + return float(text) + except: + return str(text) + + +def int_read(text): + # return int with error handing for "default" values + if 'default' in text.lower(): + return str(text) + else: + try: + return int(text) + except: + return str(text) + + +class InputReader_Common(object): + """ Methods for reading input files that are (relatively) unchanged across FAST versions.""" + + def __init__(self, **kwargs): + + self.FAST_ver = 'OPENFAST' + self.FAST_InputFile = None # FAST input file (ext=.fst) + self.FAST_directory = None # Path to fst directory files + self.path2dll = None # Path to dll file + self.fst_vt = FstModel + + # Optional population class attributes from key word arguments + for (k, w) in kwargs.items(): + try: + setattr(self, k, w) + except: + pass + + super(InputReader_Common, self).__init__() + + def read_yaml(self): + f = open(self.FAST_yamlfile, 'r') + self.fst_vt = yaml.load(f) + + def set_outlist(self, vartree_head, channel_list): + """ Loop through a list of output channel names, recursively set them to True in the nested outlist dict """ + + # given a list of nested dictionary keys, return the dict at that point + def get_dict(vartree, branch): + return reduce(operator.getitem, branch, vartree_head) + # given a list of nested dictionary keys, set the value of the dict at that point + def set_dict(vartree, branch, val): + get_dict(vartree, branch[:-1])[branch[-1]] = val + # recursively loop through outlist dictionaries to set output channels + def loop_dict(vartree, search_var, branch): + for var in vartree.keys(): + branch_i = copy.copy(branch) + branch_i.append(var) + if type(vartree[var]) is dict: + loop_dict(vartree[var], search_var, branch_i) + else: + if var == search_var: + set_dict(vartree_head, branch_i, True) + + # loop through outchannels on this line, loop through outlist dicts to set to True + for var in channel_list: + var = var.replace(' ', '') + loop_dict(vartree_head, var, []) + + def read_ElastoDynBlade(self): + # ElastoDyn v1.00 Blade Input File + # Currently no differences between FASTv8.16 and OpenFAST. + if self.FAST_ver.lower() == 'fast7': + blade_file = os.path.join(self.FAST_directory, self.fst_vt['Fst7']['BldFile1']) + else: + blade_file = os.path.join(self.FAST_directory, self.fst_vt['ElastoDyn']['BldFile1']) + + f = open(blade_file) + # print blade_file + f.readline() + f.readline() + f.readline() + if self.FAST_ver.lower() == 'fast7': + f.readline() + + # Blade Parameters + self.fst_vt['ElastoDynBlade']['NBlInpSt'] = int(f.readline().split()[0]) + if self.FAST_ver.lower() == 'fast7': + self.fst_vt['ElastoDynBlade']['CalcBMode'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDynBlade']['BldFlDmp1'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynBlade']['BldFlDmp2'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynBlade']['BldEdDmp1'] = float_read(f.readline().split()[0]) + + # Blade Adjustment Factors + f.readline() + self.fst_vt['ElastoDynBlade']['FlStTunr1'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynBlade']['FlStTunr2'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynBlade']['AdjBlMs'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynBlade']['AdjFlSt'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynBlade']['AdjEdSt'] = float_read(f.readline().split()[0]) + + # Distrilbuted Blade Properties + f.readline() + f.readline() + f.readline() + self.fst_vt['ElastoDynBlade']['BlFract'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['PitchAxis'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['StrcTwst'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['BMassDen'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['FlpStff'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['EdgStff'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + if self.FAST_ver.lower() == 'fast7': + self.fst_vt['ElastoDynBlade']['GJStff'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['EAStff'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['Alpha'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['FlpIner'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['EdgIner'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['PrecrvRef'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['PreswpRef'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['FlpcgOf'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['Edgcgof'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['FlpEAOf'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + self.fst_vt['ElastoDynBlade']['EdgEAOf'] = [None] * self.fst_vt['ElastoDynBlade']['NBlInpSt'] + for i in range(self.fst_vt['ElastoDynBlade']['NBlInpSt']): + data = f.readline().split() + self.fst_vt['ElastoDynBlade']['BlFract'][i] = float_read(data[0]) + self.fst_vt['ElastoDynBlade']['PitchAxis'][i] = float_read(data[1]) + self.fst_vt['ElastoDynBlade']['StrcTwst'][i] = float_read(data[2]) + self.fst_vt['ElastoDynBlade']['BMassDen'][i] = float_read(data[3]) + self.fst_vt['ElastoDynBlade']['FlpStff'][i] = float_read(data[4]) + self.fst_vt['ElastoDynBlade']['EdgStff'][i] = float_read(data[5]) + if self.FAST_ver.lower() == 'fast7': + self.fst_vt['ElastoDynBlade']['GJStff'][i] = float_read(data[6]) + self.fst_vt['ElastoDynBlade']['EAStff'][i] = float_read(data[7]) + self.fst_vt['ElastoDynBlade']['Alpha'][i] = float_read(data[8]) + self.fst_vt['ElastoDynBlade']['FlpIner'][i] = float_read(data[9]) + self.fst_vt['ElastoDynBlade']['EdgIner'][i] = float_read(data[10]) + self.fst_vt['ElastoDynBlade']['PrecrvRef'][i] = float_read(data[11]) + self.fst_vt['ElastoDynBlade']['PreswpRef'][i] = float_read(data[12]) + self.fst_vt['ElastoDynBlade']['FlpcgOf'][i] = float_read(data[13]) + self.fst_vt['ElastoDynBlade']['Edgcgof'][i] = float_read(data[14]) + self.fst_vt['ElastoDynBlade']['FlpEAOf'][i] = float_read(data[15]) + self.fst_vt['ElastoDynBlade']['EdgEAOf'][i] = float_read(data[16]) + + f.readline() + self.fst_vt['ElastoDynBlade']['BldFl1Sh'] = [None] * 5 + self.fst_vt['ElastoDynBlade']['BldFl2Sh'] = [None] * 5 + self.fst_vt['ElastoDynBlade']['BldEdgSh'] = [None] * 5 + for i in range(5): + self.fst_vt['ElastoDynBlade']['BldFl1Sh'][i] = float_read(f.readline().split()[0]) + for i in range(5): + self.fst_vt['ElastoDynBlade']['BldFl2Sh'][i] = float_read(f.readline().split()[0]) + for i in range(5): + self.fst_vt['ElastoDynBlade']['BldEdgSh'][i] = float_read(f.readline().split()[0]) + + f.close() + + def read_ElastoDynTower(self): + # ElastoDyn v1.00 Tower Input Files + # Currently no differences between FASTv8.16 and OpenFAST. + + if self.FAST_ver.lower() == 'fast7': + tower_file = os.path.join(self.FAST_directory, self.fst_vt['Fst7']['TwrFile']) + else: + tower_file = os.path.join(self.FAST_directory, self.fst_vt['ElastoDyn']['TwrFile']) + + f = open(tower_file) + + f.readline() + f.readline() + if self.FAST_ver.lower() == 'fast7': + f.readline() + + # General Tower Paramters + f.readline() + self.fst_vt['ElastoDynTower']['NTwInpSt'] = int(f.readline().split()[0]) + if self.FAST_ver.lower() == 'fast7': + self.fst_vt['ElastoDynTower']['CalcTMode'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['TwrFADmp1'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['TwrFADmp2'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['TwrSSDmp1'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['TwrSSDmp2'] = float_read(f.readline().split()[0]) + + # Tower Adjustment Factors + f.readline() + self.fst_vt['ElastoDynTower']['FAStTunr1'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['FAStTunr2'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['SSStTunr1'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['SSStTunr2'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['AdjTwMa'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['AdjFASt'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDynTower']['AdjSSSt'] = float_read(f.readline().split()[0]) + + # Distributed Tower Properties + f.readline() + f.readline() + f.readline() + self.fst_vt['ElastoDynTower']['HtFract'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + self.fst_vt['ElastoDynTower']['TMassDen'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + self.fst_vt['ElastoDynTower']['TwFAStif'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + self.fst_vt['ElastoDynTower']['TwSSStif'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + if self.FAST_ver.lower() == 'fast7': + self.fst_vt['ElastoDynTower']['TwGJStif'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + self.fst_vt['ElastoDynTower']['TwEAStif'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + self.fst_vt['ElastoDynTower']['TwFAIner'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + self.fst_vt['ElastoDynTower']['TwSSIner'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + self.fst_vt['ElastoDynTower']['TwFAcgOf'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + self.fst_vt['ElastoDynTower']['TwSScgOf'] = [None] * self.fst_vt['ElastoDynTower']['NTwInpSt'] + + for i in range(self.fst_vt['ElastoDynTower']['NTwInpSt']): + data = f.readline().split() + self.fst_vt['ElastoDynTower']['HtFract'][i] = float_read(data[0]) + self.fst_vt['ElastoDynTower']['TMassDen'][i] = float_read(data[1]) + self.fst_vt['ElastoDynTower']['TwFAStif'][i] = float_read(data[2]) + self.fst_vt['ElastoDynTower']['TwSSStif'][i] = float_read(data[3]) + if self.FAST_ver.lower() == 'fast7': + self.fst_vt['ElastoDynTower']['TwGJStif'][i] = float_read(data[4]) + self.fst_vt['ElastoDynTower']['TwEAStif'][i] = float_read(data[5]) + self.fst_vt['ElastoDynTower']['TwFAIner'][i] = float_read(data[6]) + self.fst_vt['ElastoDynTower']['TwSSIner'][i] = float_read(data[7]) + self.fst_vt['ElastoDynTower']['TwFAcgOf'][i] = float_read(data[8]) + self.fst_vt['ElastoDynTower']['TwSScgOf'][i] = float_read(data[9]) + + # Tower Mode Shapes + f.readline() + self.fst_vt['ElastoDynTower']['TwFAM1Sh'] = [None] * 5 + self.fst_vt['ElastoDynTower']['TwFAM2Sh'] = [None] * 5 + for i in range(5): + self.fst_vt['ElastoDynTower']['TwFAM1Sh'][i] = float_read(f.readline().split()[0]) + for i in range(5): + self.fst_vt['ElastoDynTower']['TwFAM2Sh'][i] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['ElastoDynTower']['TwSSM1Sh'] = [None] * 5 + self.fst_vt['ElastoDynTower']['TwSSM2Sh'] = [None] * 5 + for i in range(5): + self.fst_vt['ElastoDynTower']['TwSSM1Sh'][i] = float_read(f.readline().split()[0]) + for i in range(5): + self.fst_vt['ElastoDynTower']['TwSSM2Sh'][i] = float_read(f.readline().split()[0]) + + f.close() + + def read_AeroDyn14Polar(self, aerodynFile): + # AeroDyn v14 Airfoil Polar Input File + + # open aerodyn file + f = open(aerodynFile, 'r') + + airfoil = copy.copy(self.fst_vt['AeroDynPolar']) + + # skip through header + airfoil['description'] = f.readline().rstrip() # remove newline + f.readline() + airfoil['number_tables'] = int(f.readline().split()[0]) + + IDParam = [float_read(val) for val in f.readline().split()[0:airfoil['number_tables']]] + StallAngle = [float_read(val) for val in f.readline().split()[0:airfoil['number_tables']]] + f.readline() + f.readline() + f.readline() + ZeroCn = [float_read(val) for val in f.readline().split()[0:airfoil['number_tables']]] + CnSlope = [float_read(val) for val in f.readline().split()[0:airfoil['number_tables']]] + CnPosStall = [float_read(val) for val in f.readline().split()[0:airfoil['number_tables']]] + CnNegStall = [float_read(val) for val in f.readline().split()[0:airfoil['number_tables']]] + alphaCdMin = [float_read(val) for val in f.readline().split()[0:airfoil['number_tables']]] + CdMin = [float_read(val) for val in f.readline().split()[0:airfoil['number_tables']]] + + data = [] + airfoil['af_tables'] = [] + while True: + line = f.readline() + if 'EOT' in line: + break + line = [float_read(s) for s in line.split()] + if len(line) < 1: + break + data.append(line) + + # loop through tables + for i in range(airfoil['number_tables']): + polar = {} + polar['IDParam'] = IDParam[i] + polar['StallAngle'] = StallAngle[i] + polar['ZeroCn'] = ZeroCn[i] + polar['CnSlope'] = CnSlope[i] + polar['CnPosStall'] = CnPosStall[i] + polar['CnNegStall'] = CnNegStall[i] + polar['alphaCdMin'] = alphaCdMin[i] + polar['CdMin'] = CdMin[i] + + alpha = [] + cl = [] + cd = [] + cm = [] + # read polar information line by line + for datai in data: + if len(datai) == airfoil['number_tables']*3+1: + alpha.append(datai[0]) + cl.append(datai[1 + 3*i]) + cd.append(datai[2 + 3*i]) + cm.append(datai[3 + 3*i]) + elif len(datai) == airfoil['number_tables']*2+1: + alpha.append(datai[0]) + cl.append(datai[1 + 2*i]) + cd.append(datai[2 + 2*i]) + + polar['alpha'] = alpha + polar['cl'] = cl + polar['cd'] = cd + polar['cm'] = cm + airfoil['af_tables'].append(polar) + + f.close() + + return airfoil + + # def WndWindReader(self, wndfile): + # # .Wnd Wind Input File for Inflow + # wind_file = os.path.join(self.FAST_directory, wndfile) + # f = open(wind_file) + + # data = [] + # while 1: + # line = f.readline() + # if not line: + # break + # if line.strip().split()[0] != '!' and line[0] != '!': + # data.append(line.split()) + + # self.fst_vt['wnd_wind']['TimeSteps'] = len(data) + # self.fst_vt['wnd_wind']['Time'] = [None] * len(data) + # self.fst_vt['wnd_wind']['HorSpd'] = [None] * len(data) + # self.fst_vt['wnd_wind']['WindDir'] = [None] * len(data) + # self.fst_vt['wnd_wind']['VerSpd'] = [None] * len(data) + # self.fst_vt['wnd_wind']['HorShr'] = [None] * len(data) + # self.fst_vt['wnd_wind']['VerShr'] = [None] * len(data) + # self.fst_vt['wnd_wind']['LnVShr'] = [None] * len(data) + # self.fst_vt['wnd_wind']['GstSpd'] = [None] * len(data) + # for i in range(len(data)): + # self.fst_vt['wnd_wind']['Time'][i] = float_read(data[i][0]) + # self.fst_vt['wnd_wind']['HorSpd'][i] = float_read(data[i][1]) + # self.fst_vt['wnd_wind']['WindDir'][i] = float_read(data[i][2]) + # self.fst_vt['wnd_wind']['VerSpd'][i] = float_read(data[i][3]) + # self.fst_vt['wnd_wind']['HorShr'][i] = float_read(data[i][4]) + # self.fst_vt['wnd_wind']['VerShr'][i] = float_read(data[i][5]) + # self.fst_vt['wnd_wind']['LnVShr'][i] = float_read(data[i][6]) + # self.fst_vt['wnd_wind']['GstSpd'][i] = float_read(data[i][7]) + + # f.close() + + +class InputReader_OpenFAST(InputReader_Common): + """ OpenFAST / FAST 8.16 input file reader """ + + def execute(self): + + self.read_MainInput() + self.read_ElastoDyn() + self.read_ElastoDynBlade() + self.read_ElastoDynTower() + self.read_InflowWind() + + # if file_wind.split('.')[1] == 'wnd': + # self.WndWindReader(file_wind) + # else: + # print 'Wind reader for file type .%s not implemented yet.' % file_wind.split('.')[1] + # AeroDyn version selection + if self.fst_vt['Fst']['CompAero'] == 1: + self.read_AeroDyn14() + elif self.fst_vt['Fst']['CompAero'] == 2: + self.read_AeroDyn15() + + self.read_ServoDyn() + if ROSCO: + self.read_DISCON_in() + + + if self.fst_vt['Fst']['CompHydro'] == 1: # SubDyn not yet implimented + self.read_HydroDyn() + if self.fst_vt['Fst']['CompSub'] == 1: # SubDyn not yet implimented + self.read_SubDyn() + if self.fst_vt['Fst']['CompMooring'] == 1: # only MAP++ implimented for mooring models + self.read_MAP() + if self.fst_vt['Fst']['CompMooring'] == 3: # MoorDyn implimented + self.read_MoorDyn() + + if self.fst_vt['Fst']['CompElast'] == 2: # BeamDyn read assumes all 3 blades are the same + self.read_BeamDyn() + + def read_MainInput(self): + # Main FAST v8.16-v8.17 Input File + # Currently no differences between FASTv8.16 and OpenFAST. + fst_file = os.path.join(self.FAST_directory, self.FAST_InputFile) + f = open(fst_file) + + # Header of .fst file + f.readline() + self.fst_vt['description'] = f.readline().rstrip() + + # Simulation Control (fst_sim_ctrl) + f.readline() + self.fst_vt['Fst']['Echo'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst']['AbortLevel'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['TMax'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst']['DT'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst']['InterpOrder'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['NumCrctn'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['DT_UJac'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst']['UJacSclFact'] = float_read(f.readline().split()[0]) + + # Feature Switches and Flags (ftr_swtchs_flgs) + f.readline() + self.fst_vt['Fst']['CompElast'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['CompInflow'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['CompAero'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['CompServo'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['CompHydro'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['CompSub'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['CompMooring'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['CompIce'] = int(f.readline().split()[0]) + + # Input Files (input_files) + f.readline() + self.fst_vt['Fst']['EDFile'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['BDBldFile(1)'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['BDBldFile(2)'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['BDBldFile(3)'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['InflowFile'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['AeroFile'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['ServoFile'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['HydroFile'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['SubFile'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['MooringFile'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst']['IceFile'] = f.readline().split()[0][1:-1] + + # FAST Output Parameters (fst_output_params) + f.readline() + self.fst_vt['Fst']['SumPrint'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst']['SttsTime'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst']['ChkptTime'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst']['DT_Out'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst']['TStart'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst']['OutFileFmt'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['TabDelim'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst']['OutFmt'] = f.readline().split()[0][1:-1] + + # Fst + f.readline() + self.fst_vt['Fst']['Linearize'] = f.readline().split()[0] + self.fst_vt['Fst']['CalcSteady'] = f.readline().split()[0] + self.fst_vt['Fst']['TrimCase'] = f.readline().split()[0] + self.fst_vt['Fst']['TrimTol'] = f.readline().split()[0] + self.fst_vt['Fst']['TrimGain'] = f.readline().split()[0] + self.fst_vt['Fst']['Twr_Kdmp'] = f.readline().split()[0] + self.fst_vt['Fst']['Bld_Kdmp'] = f.readline().split()[0] + self.fst_vt['Fst']['NLinTimes'] = f.readline().split()[0] + self.fst_vt['Fst']['LinTimes'] = re.findall(r'[^,\s]+', f.readline())[0:2] + self.fst_vt['Fst']['LinInputs'] = f.readline().split()[0] + self.fst_vt['Fst']['LinOutputs'] = f.readline().split()[0] + self.fst_vt['Fst']['LinOutJac'] = f.readline().split()[0] + self.fst_vt['Fst']['LinOutMod'] = f.readline().split()[0] + + # Visualization () + f.readline() + self.fst_vt['Fst']['WrVTK'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['VTK_type'] = int(f.readline().split()[0]) + self.fst_vt['Fst']['VTK_fields'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst']['VTK_fps'] = float_read(f.readline().split()[0]) + + f.close() + + # File paths + self.fst_vt['Fst']['EDFile_path'] = os.path.split(self.fst_vt['Fst']['EDFile'])[0] + self.fst_vt['Fst']['BDBldFile(1_path)'] = os.path.split(self.fst_vt['Fst']['BDBldFile(1)'])[0] + self.fst_vt['Fst']['BDBldFile(2_path)'] = os.path.split(self.fst_vt['Fst']['BDBldFile(2)'])[0] + self.fst_vt['Fst']['BDBldFile(3_path)'] = os.path.split(self.fst_vt['Fst']['BDBldFile(3)'])[0] + self.fst_vt['Fst']['InflowFile_path'] = os.path.split(self.fst_vt['Fst']['InflowFile'])[0] + self.fst_vt['Fst']['AeroFile_path'] = os.path.split(self.fst_vt['Fst']['AeroFile'])[0] + self.fst_vt['Fst']['ServoFile_path'] = os.path.split(self.fst_vt['Fst']['ServoFile'])[0] + self.fst_vt['Fst']['HydroFile_path'] = os.path.split(self.fst_vt['Fst']['HydroFile'])[0] + self.fst_vt['Fst']['SubFile_path'] = os.path.split(self.fst_vt['Fst']['SubFile'])[0] + self.fst_vt['Fst']['MooringFile_path'] = os.path.split(self.fst_vt['Fst']['MooringFile'])[0] + self.fst_vt['Fst']['IceFile_path'] = os.path.split(self.fst_vt['Fst']['IceFile'])[0] + def read_ElastoDyn(self): + # ElastoDyn v1.03 Input File + # Currently no differences between FASTv8.16 and OpenFAST. + + ed_file = os.path.join(self.FAST_directory, self.fst_vt['Fst']['EDFile']) + f = open(ed_file) + + f.readline() + f.readline() + + # Simulation Control (ed_sim_ctrl) + f.readline() + self.fst_vt['ElastoDyn']['Echo'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['Method'] = int(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['DT'] = float_read(f.readline().split()[0]) + + # Environmental Condition (envir_cond) + f.readline() + self.fst_vt['ElastoDyn']['Gravity'] = float_read(f.readline().split()[0]) + + # Degrees of Freedom (dof) + f.readline() + self.fst_vt['ElastoDyn']['FlapDOF1'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['FlapDOF2'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['EdgeDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TeetDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['DrTrDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['GenDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['YawDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TwFADOF1'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TwFADOF2'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TwSSDOF1'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TwSSDOF2'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmSgDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmSwDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmHvDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmRDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmPDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmYDOF'] = bool_read(f.readline().split()[0]) + + # Initial Conditions (init_conds) + f.readline() + self.fst_vt['ElastoDyn']['OoPDefl'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['IPDefl'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['BlPitch1'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['BlPitch2'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['BlPitch3'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TeetDefl'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['Azimuth'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['RotSpeed'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NacYaw'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TTDspFA'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TTDspSS'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmSurge'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmSway'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmHeave'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmRoll'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmPitch'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmYaw'] = float_read(f.readline().split()[0]) + + + # Turbine Configuration (turb_config) + f.readline() + self.fst_vt['ElastoDyn']['NumBl'] = int(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TipRad'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['HubRad'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PreCone(1)'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PreCone(2)'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PreCone(3)'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['HubCM'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['UndSling'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['Delta3'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['AzimB1Up'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['OverHang'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['ShftGagL'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['ShftTilt'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NacCMxn'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NacCMyn'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NacCMzn'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NcIMUxn'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NcIMUyn'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NcIMUzn'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['Twr2Shft'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TowerHt'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TowerBsHt'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmCMxt'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmCMyt'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmCMzt'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmRefzt'] = float_read(f.readline().split()[0]) + + # Mass and Inertia (mass_inertia) + f.readline() + self.fst_vt['ElastoDyn']['TipMass(1)'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TipMass(2)'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TipMass(3)'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['HubMass'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['HubIner'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['GenIner'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NacMass'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NacYIner'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['YawBrMass'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmMass'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmRIner'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmPIner'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['PtfmYIner'] = float_read(f.readline().split()[0]) + + # ElastoDyn Blade (blade_struc) + f.readline() + self.fst_vt['ElastoDyn']['BldNodes'] = int(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['BldFile1'] = f.readline().split()[0][1:-1] + self.fst_vt['ElastoDyn']['BldFile2'] = f.readline().split()[0][1:-1] + self.fst_vt['ElastoDyn']['BldFile3'] = f.readline().split()[0][1:-1] + + # Rotor-Teeter (rotor_teeter) + f.readline() + self.fst_vt['ElastoDyn']['TeetMod'] = int(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TeetDmpP'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TeetDmp'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TeetCDmp'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TeetSStP'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TeetHStP'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TeetSSSp'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TeetHSSp'] = float_read(f.readline().split()[0]) + + # Drivetrain (drivetrain) + f.readline() + self.fst_vt['ElastoDyn']['GBoxEff'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['GBRatio'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['DTTorSpr'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['DTTorDmp'] = float_read(f.readline().split()[0]) + + # Furling (furling) + f.readline() + self.fst_vt['ElastoDyn']['Furling'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['FurlFile'] = f.readline().split()[0][1:-1] + + # Tower (tower) + f.readline() + self.fst_vt['ElastoDyn']['TwrNodes'] = int(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TwrFile'] = f.readline().split()[0][1:-1] + + # ED Output Parameters (ed_out_params) + f.readline() + self.fst_vt['ElastoDyn']['SumPrint'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['OutFile'] = int(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['TabDelim'] = bool_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['OutFmt'] = f.readline().split()[0][1:-1] + self.fst_vt['ElastoDyn']['TStart'] = float_read(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['DecFact'] = int(f.readline().split()[0]) + self.fst_vt['ElastoDyn']['NTwGages'] = int(f.readline().split()[0]) + twrg = f.readline().split(',') + if self.fst_vt['ElastoDyn']['NTwGages'] != 0: #loop over elements if there are gauges to be added, otherwise assign directly + for i in range(self.fst_vt['ElastoDyn']['NTwGages']): + self.fst_vt['ElastoDyn']['TwrGagNd'].append(twrg[i]) + self.fst_vt['ElastoDyn']['TwrGagNd'][-1] = self.fst_vt['ElastoDyn']['TwrGagNd'][-1][:-1] #remove last (newline) character + else: + self.fst_vt['ElastoDyn']['TwrGagNd'] = twrg + self.fst_vt['ElastoDyn']['TwrGagNd'][-1] = self.fst_vt['ElastoDyn']['TwrGagNd'][-1][:-1] + self.fst_vt['ElastoDyn']['NBlGages'] = int(f.readline().split()[0]) + if self.fst_vt['ElastoDyn']['NBlGages'] != 0: + self.fst_vt['ElastoDyn']['BldGagNd'] = f.readline().strip().split()[:self.fst_vt['ElastoDyn']['NBlGages']] + for i, bldgag in enumerate(self.fst_vt['ElastoDyn']['BldGagNd']): + self.fst_vt['ElastoDyn']['BldGagNd'][i] = int(bldgag.strip(',')) + else: + self.fst_vt['ElastoDyn']['BldGagNd'] = 0 + f.readline() + + # Loop through output channel lines + f.readline() + data = f.readline() + if data != '': + while data.split()[0] != 'END': + channels = data.split('"') + channel_list = channels[1].split(',') + self.set_outlist(self.fst_vt['outlist']['ElastoDyn'], channel_list) + + data = f.readline() + + f.close() + + def read_BeamDyn(self): + # BeamDyn Input File + + bd_file = os.path.join(self.FAST_directory, self.fst_vt['Fst']['BDBldFile(1)']) + f = open(bd_file) + + f.readline() + f.readline() + f.readline() + # ---------------------- SIMULATION CONTROL -------------------------------------- + self.fst_vt['BeamDyn']['Echo'] = bool_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['QuasiStaticInit'] = bool_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['rhoinf'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['quadrature'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['refine'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['n_fact'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['DTBeam'] = float_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['load_retries'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['NRMax'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['stop_tol'] = float_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['tngt_stf_fd'] = bool_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['tngt_stf_comp'] = bool_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['tngt_stf_pert'] = float_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['tngt_stf_difftol'] = float_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['RotStates'] = bool_read(f.readline().split()[0]) + f.readline() + #---------------------- GEOMETRY PARAMETER -------------------------------------- + self.fst_vt['BeamDyn']['member_total'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['kp_total'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['members'] = [] + for i in range(self.fst_vt['BeamDyn']['member_total']): + ln = f.readline().split() + n_pts_i = int(ln[1]) + member_i = {} + member_i['kp_xr'] = [None]*n_pts_i + member_i['kp_yr'] = [None]*n_pts_i + member_i['kp_zr'] = [None]*n_pts_i + member_i['initial_twist'] = [None]*n_pts_i + f.readline() + f.readline() + for j in range(n_pts_i): + ln = f.readline().split() + member_i['kp_xr'][j] = float(ln[0]) + member_i['kp_yr'][j] = float(ln[1]) + member_i['kp_zr'][j] = float(ln[2]) + member_i['initial_twist'][j] = float(ln[3]) + + self.fst_vt['BeamDyn']['members'].append(member_i) + #---------------------- MESH PARAMETER ------------------------------------------ + f.readline() + self.fst_vt['BeamDyn']['order_elem'] = int_read(f.readline().split()[0]) + #---------------------- MATERIAL PARAMETER -------------------------------------- + f.readline() + self.fst_vt['BeamDyn']['BldFile'] = f.readline().split()[0].replace('"','').replace("'",'') + #---------------------- PITCH ACTUATOR PARAMETERS ------------------------------- + f.readline() + self.fst_vt['BeamDyn']['UsePitchAct'] = bool_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['PitchJ'] = float_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['PitchK'] = float_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['PitchC'] = float_read(f.readline().split()[0]) + #---------------------- OUTPUTS ------------------------------------------------- + f.readline() + self.fst_vt['BeamDyn']['SumPrint'] = bool_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['OutFmt'] = f.readline().split()[0] + self.fst_vt['BeamDyn']['NNodeOuts'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDyn']['OutNd'] = [idx.strip() for idx in f.readline().split('NNodeOuts')[0].split(',')] + # BeamDyn Outlist + f.readline() + data = f.readline() + while data.split()[0] != 'END': + channels = data.split('"') + channel_list = channels[1].split(',') + self.set_outlist(self.fst_vt['outlist']['BeamDyn'], channel_list) + data = f.readline() + + f.close() + + self.read_BeamDynBlade() + + + def read_BeamDynBlade(self): + # BeamDyn Blade + + beamdyn_blade_file = os.path.join(self.FAST_directory, self.fst_vt['BeamDyn']['BldFile']) + f = open(beamdyn_blade_file) + + f.readline() + f.readline() + f.readline() + #---------------------- BLADE PARAMETERS -------------------------------------- + self.fst_vt['BeamDynBlade']['station_total'] = int_read(f.readline().split()[0]) + self.fst_vt['BeamDynBlade']['damp_type'] = int_read(f.readline().split()[0]) + f.readline() + f.readline() + f.readline() + #---------------------- DAMPING COEFFICIENT------------------------------------ + ln = f.readline().split() + self.fst_vt['BeamDynBlade']['mu1'] = float(ln[0]) + self.fst_vt['BeamDynBlade']['mu2'] = float(ln[1]) + self.fst_vt['BeamDynBlade']['mu3'] = float(ln[2]) + self.fst_vt['BeamDynBlade']['mu4'] = float(ln[3]) + self.fst_vt['BeamDynBlade']['mu5'] = float(ln[4]) + self.fst_vt['BeamDynBlade']['mu6'] = float(ln[5]) + f.readline() + #---------------------- DISTRIBUTED PROPERTIES--------------------------------- + + self.fst_vt['BeamDynBlade']['radial_stations'] = np.zeros((self.fst_vt['BeamDynBlade']['station_total'])) + self.fst_vt['BeamDynBlade']['beam_stiff'] = np.zeros((self.fst_vt['BeamDynBlade']['station_total'], 6, 6)) + self.fst_vt['BeamDynBlade']['beam_inertia'] = np.zeros((self.fst_vt['BeamDynBlade']['station_total'], 6, 6)) + for i in range(self.fst_vt['BeamDynBlade']['station_total']): + self.fst_vt['BeamDynBlade']['radial_stations'][i] = float_read(f.readline().split()[0]) + for j in range(6): + self.fst_vt['BeamDynBlade']['beam_stiff'][i,j,:] = np.array([float(val) for val in f.readline().strip().split()]) + f.readline() + for j in range(6): + self.fst_vt['BeamDynBlade']['beam_inertia'][i,j,:] = np.array([float(val) for val in f.readline().strip().split()]) + f.readline() + + f.close() + + def read_InflowWind(self): + # InflowWind v3.01 + # Currently no differences between FASTv8.16 and OpenFAST. + inflow_file = os.path.normpath(os.path.join(self.FAST_directory, self.fst_vt['Fst']['InflowFile'])) + f = open(inflow_file) + + f.readline() + f.readline() + f.readline() + + # Inflow wind header parameters (inflow_wind) + self.fst_vt['InflowWind']['Echo'] = bool_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['WindType'] = int(f.readline().split()[0]) + self.fst_vt['InflowWind']['PropogationDir'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['NWindVel'] = int(f.readline().split()[0]) + self.fst_vt['InflowWind']['WindVxiList'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['WindVyiList'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['WindVziList'] = float_read(f.readline().split()[0]) + + # Parameters for Steady Wind Conditions [used only for WindType = 1] (steady_wind_params) + f.readline() + self.fst_vt['InflowWind']['HWindSpeed'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['RefHt'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['PLexp'] = float_read(f.readline().split()[0]) + + # Parameters for Uniform wind file [used only for WindType = 2] (uniform_wind_params) + f.readline() + self.fst_vt['InflowWind']['Filename'] = os.path.join(os.path.split(inflow_file)[0], f.readline().split()[0][1:-1]) + self.fst_vt['InflowWind']['RefHt'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['RefLength'] = float_read(f.readline().split()[0]) + + # Parameters for Binary TurbSim Full-Field files [used only for WindType = 3] (turbsim_wind_params) + f.readline() + self.fst_vt['InflowWind']['Filename'] = os.path.join(os.path.split(inflow_file)[0], f.readline().split()[0][1:-1]) + + # Parameters for Binary Bladed-style Full-Field files [used only for WindType = 4] (bladed_wind_params) + f.readline() + self.fst_vt['InflowWind']['FilenameRoot'] = f.readline().split()[0][1:-1] + self.fst_vt['InflowWind']['TowerFile'] = bool_read(f.readline().split()[0]) + + # Parameters for HAWC-format binary files [Only used with WindType = 5] (hawc_wind_params) + f.readline() + self.fst_vt['InflowWind']['FileName_u'] = os.path.normpath(os.path.join(os.path.split(inflow_file)[0], f.readline().split()[0][1:-1])) + self.fst_vt['InflowWind']['FileName_v'] = os.path.normpath(os.path.join(os.path.split(inflow_file)[0], f.readline().split()[0][1:-1])) + self.fst_vt['InflowWind']['FileName_w'] = os.path.normpath(os.path.join(os.path.split(inflow_file)[0], f.readline().split()[0][1:-1])) + self.fst_vt['InflowWind']['nx'] = int(f.readline().split()[0]) + self.fst_vt['InflowWind']['ny'] = int(f.readline().split()[0]) + self.fst_vt['InflowWind']['nz'] = int(f.readline().split()[0]) + self.fst_vt['InflowWind']['dx'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['dy'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['dz'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['RefHt'] = float_read(f.readline().split()[0]) + + # Scaling parameters for turbulence (still hawc_wind_params) + f.readline() + self.fst_vt['InflowWind']['ScaleMethod'] = int(f.readline().split()[0]) + self.fst_vt['InflowWind']['SFx'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['SFy'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['SFz'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['SigmaFx'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['SigmaFy'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['SigmaFz'] = float_read(f.readline().split()[0]) + + # Mean wind profile parameters (added to HAWC-format files) (still hawc_wind_params) + f.readline() + self.fst_vt['InflowWind']['URef'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['WindProfile'] = int(f.readline().split()[0]) + self.fst_vt['InflowWind']['PLExp'] = float_read(f.readline().split()[0]) + self.fst_vt['InflowWind']['Z0'] = float_read(f.readline().split()[0]) + + # Inflow Wind Output Parameters (inflow_out_params) + f.readline() + self.fst_vt['InflowWind']['SumPrint'] = bool_read(f.readline().split()[0]) + + # NO INFLOW WIND OUTPUT PARAMETERS YET DEFINED IN FAST + # f.readline() + # data = f.readline() + # while data.split()[0] != 'END': + # channels = data.split('"') + # channel_list = channels[1].split(',') + # for i in range(len(channel_list)): + # channel_list[i] = channel_list[i].replace(' ','') + # if channel_list[i] in self.fst_vt.outlist.inflow_wind_vt.__dict__.keys(): + # self.fst_vt.outlist.inflow_wind_vt.__dict__[channel_list[i]] = True + # data = f.readline() + + f.close() + + def read_AeroDyn14(self): + # AeroDyn v14.04 + + ad_file = os.path.join(self.FAST_directory, self.fst_vt['Fst']['AeroFile']) + f = open(ad_file) + # AeroDyn file header (aerodyn) + f.readline() + f.readline() + self.fst_vt['AeroDyn14']['StallMod'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['UseCm'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['InfModel'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['IndModel'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['AToler'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['TLModel'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['HLModel'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['TwrShad'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['TwrPotent'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['TwrShadow'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['TwrFile'] = f.readline().split()[0].replace('"','').replace("'",'') + self.fst_vt['AeroDyn14']['CalcTwrAero'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['AirDens'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['KinVisc'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['DTAero'] = float_read(f.readline().split()[0]) + + # AeroDyn Blade Properties (blade_aero) + self.fst_vt['AeroDyn14']['NumFoil'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['FoilNm'] = [None] * self.fst_vt['AeroDyn14']['NumFoil'] + for i in range(self.fst_vt['AeroDyn14']['NumFoil']): + af_filename = f.readline().split()[0] + af_filename = fix_path(af_filename) + self.fst_vt['AeroDyn14']['FoilNm'][i] = af_filename[1:-1] + + self.fst_vt['AeroDynBlade']['BldNodes'] = int(f.readline().split()[0]) + f.readline() + self.fst_vt['AeroDynBlade']['RNodes'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['AeroTwst'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['DRNodes'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['Chord'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['NFoil'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['PrnElm'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + for i in range(self.fst_vt['AeroDynBlade']['BldNodes']): + data = f.readline().split() + self.fst_vt['AeroDynBlade']['RNodes'][i] = float_read(data[0]) + self.fst_vt['AeroDynBlade']['AeroTwst'][i] = float_read(data[1]) + self.fst_vt['AeroDynBlade']['DRNodes'][i] = float_read(data[2]) + self.fst_vt['AeroDynBlade']['Chord'][i] = float_read(data[3]) + self.fst_vt['AeroDynBlade']['NFoil'][i] = int(data[4]) + self.fst_vt['AeroDynBlade']['PrnElm'][i] = data[5] + + f.close() + + # create airfoil objects + self.fst_vt['AeroDynBlade']['af_data'] = [] + for i in range(self.fst_vt['AeroDynBlade']['NumFoil']): + self.fst_vt['AeroDynBlade']['af_data'].append(self.read_AeroDyn14Polar(os.path.join(self.FAST_directory,self.fst_vt['AeroDyn14']['FoilNm'][i]))) + + # tower + self.read_AeroDyn14Tower() + + def read_AeroDyn14Tower(self): + # AeroDyn v14.04 Tower + + ad_tower_file = os.path.join(self.FAST_directory, self.fst_vt['aerodyn']['TwrFile']) + f = open(ad_tower_file) + + f.readline() + f.readline() + self.fst_vt['AeroDynTower']['NTwrHt'] = int(f.readline().split()[0]) + self.fst_vt['AeroDynTower']['NTwrRe'] = int(f.readline().split()[0]) + self.fst_vt['AeroDynTower']['NTwrCD'] = int(f.readline().split()[0]) + self.fst_vt['AeroDynTower']['Tower_Wake_Constant'] = float_read(f.readline().split()[0]) + + f.readline() + f.readline() + self.fst_vt['AeroDynTower']['TwrHtFr'] = [None]*self.fst_vt['AeroDynTower']['NTwrHt'] + self.fst_vt['AeroDynTower']['TwrWid'] = [None]*self.fst_vt['AeroDynTower']['NTwrHt'] + self.fst_vt['AeroDynTower']['NTwrCDCol'] = [None]*self.fst_vt['AeroDynTower']['NTwrHt'] + for i in range(self.fst_vt['AeroDynTower']['NTwrHt']): + data = [float(val) for val in f.readline().split()] + self.fst_vt['AeroDynTower']['TwrHtFr'][i] = data[0] + self.fst_vt['AeroDynTower']['TwrWid'][i] = data[1] + self.fst_vt['AeroDynTower']['NTwrCDCol'][i] = data[2] + + f.readline() + f.readline() + self.fst_vt['AeroDynTower']['TwrRe'] = [None]*self.fst_vt['AeroDynTower']['NTwrRe'] + self.fst_vt['AeroDynTower']['TwrCD'] = np.zeros((self.fst_vt['AeroDynTower']['NTwrRe'], self.fst_vt['AeroDynTower']['NTwrCD'])) + for i in range(self.fst_vt['AeroDynTower']['NTwrRe']): + data = [float(val) for val in f.readline().split()] + self.fst_vt['AeroDynTower']['TwrRe'][i] = data[0] + self.fst_vt['AeroDynTower']['TwrCD'][i,:] = data[1:] + + + def read_AeroDyn15(self): + # AeroDyn v15.03 + + ad_file = os.path.join(self.FAST_directory, self.fst_vt['Fst']['AeroFile']) + f = open(ad_file) + + # General Option + f.readline() + f.readline() + f.readline() + self.fst_vt['AeroDyn15']['Echo'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['DTAero'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['WakeMod'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['AFAeroMod'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['TwrPotent'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['TwrShadow'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['TwrAero'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['FrozenWake'] = bool_read(f.readline().split()[0]) + if self.FAST_ver.lower() != 'fast8': + self.fst_vt['AeroDyn15']['CavitCheck'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['CompAA'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['AA_InputFile'] = f.readline().split()[0] + + # Environmental Conditions + f.readline() + self.fst_vt['AeroDyn15']['AirDens'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['KinVisc'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['SpdSound'] = float_read(f.readline().split()[0]) + if self.FAST_ver.lower() != 'fast8': + self.fst_vt['AeroDyn15']['Patm'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['Pvap'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['FluidDepth'] = float_read(f.readline().split()[0]) + + # Blade-Element/Momentum Theory Options + f.readline() + self.fst_vt['AeroDyn15']['SkewMod'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['SkewModFactor'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['TipLoss'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['HubLoss'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['TanInd'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['AIDrag'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['TIDrag'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['IndToler'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['MaxIter'] = int(f.readline().split()[0]) + + + # Dynamic Blade-Element/Momentum Theory Options + f.readline() + self.fst_vt['AeroDyn15']['DBEMT_Mod'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['tau1_const'] = int(f.readline().split()[0]) + + # Olaf -- cOnvecting LAgrangian Filaments (Free Vortex Wake) Theory Options + f.readline() + self.fst_vt['AeroDyn15']['OLAFInputFileName'] = f.readline().split()[0] + + # Beddoes-Leishman Unsteady Airfoil Aerodynamics Options + f.readline() + self.fst_vt['AeroDyn15']['UAMod'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['FLookup'] = bool_read(f.readline().split()[0]) + + # Airfoil Information + f.readline() + self.fst_vt['AeroDyn15']['AFTabMod'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['InCol_Alfa'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['InCol_Cl'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['InCol_Cd'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['InCol_Cm'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['InCol_Cpmin'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['NumAFfiles'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['AFNames'] = [None] * self.fst_vt['AeroDyn15']['NumAFfiles'] + for i in range(self.fst_vt['AeroDyn15']['NumAFfiles']): + af_filename = fix_path(f.readline().split()[0])[1:-1] + self.fst_vt['AeroDyn15']['AFNames'][i] = os.path.abspath(os.path.join(self.FAST_directory, self.fst_vt['Fst']['AeroFile_path'], af_filename)) + + # Rotor/Blade Properties + f.readline() + self.fst_vt['AeroDyn15']['UseBlCm'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['ADBlFile1'] = f.readline().split()[0][1:-1] + self.fst_vt['AeroDyn15']['ADBlFile2'] = f.readline().split()[0][1:-1] + self.fst_vt['AeroDyn15']['ADBlFile3'] = f.readline().split()[0][1:-1] + + # Tower Influence and Aerodynamics + f.readline() + self.fst_vt['AeroDyn15']['NumTwrNds'] = int(f.readline().split()[0]) + f.readline() + f.readline() + self.fst_vt['AeroDyn15']['TwrElev'] = [None]*self.fst_vt['AeroDyn15']['NumTwrNds'] + self.fst_vt['AeroDyn15']['TwrDiam'] = [None]*self.fst_vt['AeroDyn15']['NumTwrNds'] + self.fst_vt['AeroDyn15']['TwrCd'] = [None]*self.fst_vt['AeroDyn15']['NumTwrNds'] + for i in range(self.fst_vt['AeroDyn15']['NumTwrNds']): + data = [float(val) for val in f.readline().split()] + self.fst_vt['AeroDyn15']['TwrElev'][i] = data[0] + self.fst_vt['AeroDyn15']['TwrDiam'][i] = data[1] + self.fst_vt['AeroDyn15']['TwrCd'][i] = data[2] + + # Outputs + f.readline() + self.fst_vt['AeroDyn15']['SumPrint'] = bool_read(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['NBlOuts'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['BlOutNd'] = [idx.strip() for idx in f.readline().split('BlOutNd')[0].split(',')] + self.fst_vt['AeroDyn15']['NTwOuts'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn15']['TwOutNd'] = [idx.strip() for idx in f.readline().split('TwOutNd')[0].split(',')] + + # AeroDyn15 Outlist + f.readline() + data = f.readline() + while data.split()[0] != 'END': + channels = data.split('"') + channel_list = channels[1].split(',') + self.set_outlist(self.fst_vt['outlist']['AeroDyn'], channel_list) + data = f.readline() + + f.close() + + self.read_AeroDyn15Blade() + self.read_AeroDyn15Polar() + self.read_AeroDyn15Coord() + + def read_AeroDyn15Blade(self): + # AeroDyn v5.00 Blade Definition File + + ad_blade_file = os.path.join(self.FAST_directory, self.fst_vt['Fst']['AeroFile_path'], self.fst_vt['AeroDyn15']['ADBlFile1']) + f = open(ad_blade_file) + + f.readline() + f.readline() + f.readline() + # Blade Properties + self.fst_vt['AeroDynBlade']['NumBlNds'] = int(f.readline().split()[0]) + f.readline() + f.readline() + self.fst_vt['AeroDynBlade']['BlSpn'] = [None]*self.fst_vt['AeroDynBlade']['NumBlNds'] + self.fst_vt['AeroDynBlade']['BlCrvAC'] = [None]*self.fst_vt['AeroDynBlade']['NumBlNds'] + self.fst_vt['AeroDynBlade']['BlSwpAC'] = [None]*self.fst_vt['AeroDynBlade']['NumBlNds'] + self.fst_vt['AeroDynBlade']['BlCrvAng'] = [None]*self.fst_vt['AeroDynBlade']['NumBlNds'] + self.fst_vt['AeroDynBlade']['BlTwist'] = [None]*self.fst_vt['AeroDynBlade']['NumBlNds'] + self.fst_vt['AeroDynBlade']['BlChord'] = [None]*self.fst_vt['AeroDynBlade']['NumBlNds'] + self.fst_vt['AeroDynBlade']['BlAFID'] = [None]*self.fst_vt['AeroDynBlade']['NumBlNds'] + for i in range(self.fst_vt['AeroDynBlade']['NumBlNds']): + data = [float(val) for val in f.readline().split()] + self.fst_vt['AeroDynBlade']['BlSpn'][i] = data[0] + self.fst_vt['AeroDynBlade']['BlCrvAC'][i] = data[1] + self.fst_vt['AeroDynBlade']['BlSwpAC'][i] = data[2] + self.fst_vt['AeroDynBlade']['BlCrvAng'][i]= data[3] + self.fst_vt['AeroDynBlade']['BlTwist'][i] = data[4] + self.fst_vt['AeroDynBlade']['BlChord'][i] = data[5] + self.fst_vt['AeroDynBlade']['BlAFID'][i] = data[6] + + f.close() + + def read_AeroDyn15Polar(self): + # AirfoilInfo v1.01 + + + self.fst_vt['AeroDyn15']['af_data'] = [None]*self.fst_vt['AeroDyn15']['NumAFfiles'] + + for afi, af_filename in enumerate(self.fst_vt['AeroDyn15']['AFNames']): + f = open(af_filename) + # print af_filename + + polar = {} + + polar['InterpOrd'] = int_read(readline_filterComments(f).split()[0]) + polar['NonDimArea'] = int_read(readline_filterComments(f).split()[0]) + polar['NumCoords'] = readline_filterComments(f).split()[0] + polar['BL_file'] = readline_filterComments(f).split()[0] + polar['NumTabs'] = int_read(readline_filterComments(f).split()[0]) + self.fst_vt['AeroDyn15']['af_data'][afi] = [None]*polar['NumTabs'] + + for tab in range(polar['NumTabs']): # For multiple tables + polar['Re'] = float_read(readline_filterComments(f).split()[0]) + polar['Ctrl'] = int_read(readline_filterComments(f).split()[0]) + polar['InclUAdata'] = bool_read(readline_filterComments(f).split()[0]) + + # Unsteady Aero Data + if polar['InclUAdata']: + polar['alpha0'] = float_read(readline_filterComments(f).split()[0]) + polar['alpha1'] = float_read(readline_filterComments(f).split()[0]) + polar['alpha2'] = float_read(readline_filterComments(f).split()[0]) + polar['eta_e'] = float_read(readline_filterComments(f).split()[0]) + polar['C_nalpha'] = float_read(readline_filterComments(f).split()[0]) + polar['T_f0'] = float_read(readline_filterComments(f).split()[0]) + polar['T_V0'] = float_read(readline_filterComments(f).split()[0]) + polar['T_p'] = float_read(readline_filterComments(f).split()[0]) + polar['T_VL'] = float_read(readline_filterComments(f).split()[0]) + polar['b1'] = float_read(readline_filterComments(f).split()[0]) + polar['b2'] = float_read(readline_filterComments(f).split()[0]) + polar['b5'] = float_read(readline_filterComments(f).split()[0]) + polar['A1'] = float_read(readline_filterComments(f).split()[0]) + polar['A2'] = float_read(readline_filterComments(f).split()[0]) + polar['A5'] = float_read(readline_filterComments(f).split()[0]) + polar['S1'] = float_read(readline_filterComments(f).split()[0]) + polar['S2'] = float_read(readline_filterComments(f).split()[0]) + polar['S3'] = float_read(readline_filterComments(f).split()[0]) + polar['S4'] = float_read(readline_filterComments(f).split()[0]) + polar['Cn1'] = float_read(readline_filterComments(f).split()[0]) + polar['Cn2'] = float_read(readline_filterComments(f).split()[0]) + polar['St_sh'] = float_read(readline_filterComments(f).split()[0]) + polar['Cd0'] = float_read(readline_filterComments(f).split()[0]) + polar['Cm0'] = float_read(readline_filterComments(f).split()[0]) + polar['k0'] = float_read(readline_filterComments(f).split()[0]) + polar['k1'] = float_read(readline_filterComments(f).split()[0]) + polar['k2'] = float_read(readline_filterComments(f).split()[0]) + polar['k3'] = float_read(readline_filterComments(f).split()[0]) + polar['k1_hat'] = float_read(readline_filterComments(f).split()[0]) + polar['x_cp_bar'] = float_read(readline_filterComments(f).split()[0]) + polar['UACutout'] = float_read(readline_filterComments(f).split()[0]) + polar['filtCutOff'] = float_read(readline_filterComments(f).split()[0]) + + # Polar Data + polar['NumAlf'] = int_read(readline_filterComments(f).split()[0]) + polar['Alpha'] = [None]*polar['NumAlf'] + polar['Cl'] = [None]*polar['NumAlf'] + polar['Cd'] = [None]*polar['NumAlf'] + polar['Cm'] = [None]*polar['NumAlf'] + polar['Cpmin'] = [None]*polar['NumAlf'] + for i in range(polar['NumAlf']): + data = [float(val) for val in readline_filterComments(f).split()] + if self.fst_vt['AeroDyn15']['InCol_Alfa'] > 0: + polar['Alpha'][i] = data[self.fst_vt['AeroDyn15']['InCol_Alfa']-1] + if self.fst_vt['AeroDyn15']['InCol_Cl'] > 0: + polar['Cl'][i] = data[self.fst_vt['AeroDyn15']['InCol_Cl']-1] + if self.fst_vt['AeroDyn15']['InCol_Cd'] > 0: + polar['Cd'][i] = data[self.fst_vt['AeroDyn15']['InCol_Cd']-1] + if self.fst_vt['AeroDyn15']['InCol_Cm'] > 0: + polar['Cm'][i] = data[self.fst_vt['AeroDyn15']['InCol_Cm']-1] + if self.fst_vt['AeroDyn15']['InCol_Cpmin'] > 0: + polar['Cpmin'][i] = data[self.fst_vt['AeroDyn15']['InCol_Cpmin']-1] + + self.fst_vt['AeroDyn15']['af_data'][afi][tab] = copy.copy(polar) # For multiple tables + + f.close() + + def read_AeroDyn15Coord(self): + + self.fst_vt['AeroDyn15']['af_coord'] = [] + self.fst_vt['AeroDyn15']['rthick'] = np.zeros(len(self.fst_vt['AeroDyn15']['AFNames'])) + + for afi, af_filename in enumerate(self.fst_vt['AeroDyn15']['AFNames']): + self.fst_vt['AeroDyn15']['af_coord'].append({}) + if not (self.fst_vt['AeroDyn15']['af_data'][afi][0]['NumCoords'] == 0 or self.fst_vt['AeroDyn15']['af_data'][afi][0]['NumCoords'] == '0'): + coord_filename = af_filename[0:af_filename.rfind(os.sep)] + os.sep + self.fst_vt['AeroDyn15']['af_data'][afi][0]['NumCoords'][2:-1] + f = open(coord_filename) + n_coords = int_read(readline_filterComments(f).split()[0]) + x = np.zeros(n_coords) + y = np.zeros(n_coords) + f.readline() + f.readline() + f.readline() + self.fst_vt['AeroDyn15']['rthick'][afi] = float(f.readline().split()[0]) + f.readline() + f.readline() + f.readline() + for j in range(n_coords - 1): + x[j], y[j] = f.readline().split() + + self.fst_vt['AeroDyn15']['af_coord'][afi]['x'] = x + self.fst_vt['AeroDyn15']['af_coord'][afi]['y'] = y + + f.close() + + def read_ServoDyn(self): + # ServoDyn v1.05 Input File + # Currently no differences between FASTv8.16 and OpenFAST. + + + sd_file = os.path.normpath(os.path.join(self.FAST_directory, self.fst_vt['Fst']['ServoFile'])) + f = open(sd_file) + + f.readline() + f.readline() + + # Simulation Control (sd_sim_ctrl) + f.readline() + self.fst_vt['ServoDyn']['Echo'] = bool_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['DT'] = float_read(f.readline().split()[0]) + + # Pitch Control (pitch_ctrl) + f.readline() + self.fst_vt['ServoDyn']['PCMode'] = int(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TPCOn'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TPitManS1'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TPitManS2'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TPitManS3'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['PitManRat1'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['PitManRat2'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['PitManRat3'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['BlPitchF1'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['BlPitchF2'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['BlPitchF3'] = float_read(f.readline().split()[0]) + + # Geneartor and Torque Control (gen_torq_ctrl) + f.readline() + self.fst_vt['ServoDyn']['VSContrl'] = int(f.readline().split()[0]) + self.fst_vt['ServoDyn']['GenModel'] = int(f.readline().split()[0]) + self.fst_vt['ServoDyn']['GenEff'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['GenTiStr'] = bool_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['GenTiStp'] = bool_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['SpdGenOn'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TimGenOn'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TimGenOf'] = float_read(f.readline().split()[0]) + + # Simple Variable-Speed Torque Control (var_speed_torq_ctrl) + f.readline() + self.fst_vt['ServoDyn']['VS_RtGnSp'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['VS_RtTq'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['VS_Rgn2K'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['VS_SlPc'] = float_read(f.readline().split()[0]) + + # Simple Induction Generator (induct_gen) + f.readline() + self.fst_vt['ServoDyn']['SIG_SlPc'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['SIG_SySp'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['SIG_RtTq'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['SIG_PORt'] = float_read(f.readline().split()[0]) + + # Thevenin-Equivalent Induction Generator (theveq_induct_gen) + f.readline() + self.fst_vt['ServoDyn']['TEC_Freq'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TEC_NPol'] = int(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TEC_SRes'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TEC_RRes'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TEC_VLL'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TEC_SLR'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TEC_RLR'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TEC_MR'] = float_read(f.readline().split()[0]) + + # High-Speed Shaft Brake (shaft_brake) + f.readline() + self.fst_vt['ServoDyn']['HSSBrMode'] = int(f.readline().split()[0]) + self.fst_vt['ServoDyn']['THSSBrDp'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['HSSBrDT'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['HSSBrTqF'] = float_read(f.readline().split()[0]) + + # Nacelle-Yaw Control (nac_yaw_ctrl) + f.readline() + self.fst_vt['ServoDyn']['YCMode'] = int(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TYCOn'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['YawNeut'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['YawSpr'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['YawDamp'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TYawManS'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['YawManRat'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['NacYawF'] = float_read(f.readline().split()[0]) + + # Tuned Mass Damper (tuned_mass_damper) + f.readline() + self.fst_vt['ServoDyn']['CompNTMD'] = bool_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['NTMDfile'] = f.readline().split()[0][1:-1] + self.fst_vt['ServoDyn']['CompTTMD'] = bool_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TTMDfile'] = f.readline().split()[0][1:-1] + + # Bladed Interface and Torque-Speed Look-Up Table (bladed_interface) + f.readline() + if self.path2dll == '' or self.path2dll == None: + self.fst_vt['ServoDyn']['DLL_FileName'] = os.path.abspath(os.path.normpath(os.path.join(os.path.split(sd_file)[0], f.readline().split()[0][1:-1]))) + else: + f.readline() + self.fst_vt['ServoDyn']['DLL_FileName'] = self.path2dll + self.fst_vt['ServoDyn']['DLL_InFile'] = os.path.abspath(os.path.normpath(os.path.join(os.path.split(sd_file)[0], f.readline().split()[0][1:-1]))) + self.fst_vt['ServoDyn']['DLL_ProcName'] = f.readline().split()[0][1:-1] + dll_dt_line = f.readline().split()[0] + try: + self.fst_vt['ServoDyn']['DLL_DT'] = float_read(dll_dt_line) + except: + self.fst_vt['ServoDyn']['DLL_DT'] = dll_dt_line[1:-1] + self.fst_vt['ServoDyn']['DLL_Ramp'] = bool_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['BPCutoff'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['NacYaw_North'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['Ptch_Cntrl'] = int(f.readline().split()[0]) + self.fst_vt['ServoDyn']['Ptch_SetPnt'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['Ptch_Min'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['Ptch_Max'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['PtchRate_Min'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['PtchRate_Max'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['Gain_OM'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['GenSpd_MinOM'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['GenSpd_MaxOM'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['GenSpd_Dem'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['GenTrq_Dem'] = float_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['GenPwr_Dem'] = float_read(f.readline().split()[0]) + + f.readline() + + self.fst_vt['ServoDyn']['DLL_NumTrq'] = int(f.readline().split()[0]) + f.readline() + f.readline() + self.fst_vt['ServoDyn']['GenSpd_TLU'] = [None] * self.fst_vt['ServoDyn']['DLL_NumTrq'] + self.fst_vt['ServoDyn']['GenTrq_TLU'] = [None] * self.fst_vt['ServoDyn']['DLL_NumTrq'] + for i in range(self.fst_vt['ServoDyn']['DLL_NumTrq']): + data = f.readline().split() + self.fst_vt['ServoDyn']['GenSpd_TLU'][i] = float_read(data[0]) + self.fst_vt['ServoDyn']['GenTrq_TLU'][i] = float_read(data[0]) + + # ServoDyn Output Params (sd_out_params) + f.readline() + self.fst_vt['ServoDyn']['SumPrint'] = bool_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['OutFile'] = int(f.readline().split()[0]) + self.fst_vt['ServoDyn']['TabDelim'] = bool_read(f.readline().split()[0]) + self.fst_vt['ServoDyn']['OutFmt'] = f.readline().split()[0][1:-1] + self.fst_vt['ServoDyn']['TStart'] = float_read(f.readline().split()[0]) + + # ServoDyn Outlist + f.readline() + data = f.readline() + while data.split()[0] != 'END': + channels = data.split('"') + channel_list = channels[1].split(',') + self.set_outlist(self.fst_vt['outlist']['ServoDyn'], channel_list) + data = f.readline() + + f.close() + + def read_DISCON_in(self): + # Read the Bladed style Interface controller input file, intended for ROSCO https://github.com/NREL/ROSCO_toolbox + + discon_in_file = os.path.normpath(os.path.join(self.FAST_directory, self.fst_vt['ServoDyn']['DLL_InFile'])) + + if os.path.exists(discon_in_file): + + # Read DISCON infiles + self.fst_vt['DISCON_in'] = read_DISCON(discon_in_file) + + # Some additional filename parsing + self.fst_vt['DISCON_in']['PerfFileName'] = os.path.abspath(os.path.join(self.FAST_directory, self.fst_vt['DISCON_in']['PerfFileName'])) + + # Try to read rotor performance data if it is available + try: + pitch_vector, tsr_vector, Cp_table, Ct_table, Cq_table = load_from_txt(self.fst_vt['DISCON_in']['PerfFileName']) + + RotorPerformance = ROSCO_turbine.RotorPerformance + Cp = RotorPerformance(Cp_table, pitch_vector, tsr_vector) + Ct = RotorPerformance(Ct_table, pitch_vector, tsr_vector) + Cq = RotorPerformance(Cq_table, pitch_vector, tsr_vector) + + self.fst_vt['DISCON_in']['Cp'] = Cp + self.fst_vt['DISCON_in']['Ct'] = Ct + self.fst_vt['DISCON_in']['Cq'] = Cq + self.fst_vt['DISCON_in']['Cp_pitch_initial_rad'] = pitch_vector + self.fst_vt['DISCON_in']['Cp_TSR_initial'] = tsr_vector + self.fst_vt['DISCON_in']['Cp_table'] = Cp_table + self.fst_vt['DISCON_in']['Ct_table'] = Ct_table + self.fst_vt['DISCON_in']['Cq_table'] = Cq_table + except: + pass + + # Add some DISCON entries that might be needed within WISDEM + self.fst_vt['DISCON_in']['v_rated'] = 1. + + else: + del self.fst_vt['DISCON_in'] + + + def read_HydroDyn(self): + # AeroDyn v2.03 + + hd_file = os.path.normpath(os.path.join(self.FAST_directory, self.fst_vt['Fst']['HydroFile'])) + f = open(hd_file) + + f.readline() + f.readline() + + self.fst_vt['HydroDyn']['Echo'] = bool_read(f.readline().split()[0]) + # ENVIRONMENTAL CONDITIONS + f.readline() + self.fst_vt['HydroDyn']['WtrDens'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WtrDpth'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['MSL2SWL'] = float_read(f.readline().split()[0]) + + # WAVES + f.readline() + self.fst_vt['HydroDyn']['WaveMod'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveStMod'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveTMax'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveDT'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveHs'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveTp'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WavePkShp'] = float_read(f.readline().split()[0]) # default + self.fst_vt['HydroDyn']['WvLowCOff'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WvHiCOff'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveDir'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveDirMod'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveDirSpread'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveNDir'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveDirRange'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveSeed1'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveSeed2'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveNDAmp'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WvKinFile'] = f.readline().split()[0][1:-1] + self.fst_vt['HydroDyn']['NWaveElev'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WaveElevxi'] = [idx.strip() for idx in f.readline().split('WaveElevxi')[0].split(',')] + self.fst_vt['HydroDyn']['WaveElevyi'] = [idx.strip() for idx in f.readline().split('WaveElevyi')[0].split(',')] + + # 2ND-ORDER WAVES + f.readline() + self.fst_vt['HydroDyn']['WvDiffQTF'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WvSumQTF'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WvLowCOffD'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WvHiCOffD'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WvLowCOffS'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['WvHiCOffS'] = float_read(f.readline().split()[0]) + + # CURRENT + f.readline() + self.fst_vt['HydroDyn']['CurrMod'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['CurrSSV0'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['CurrSSDir'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['CurrNSRef'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['CurrNSV0'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['CurrNSDir'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['CurrDIV'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['CurrDIDir'] = float_read(f.readline().split()[0]) + + # FLOATING PLATFORM + f.readline() + self.fst_vt['HydroDyn']['PotMod'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PotFile'] = os.path.normpath(os.path.join(os.path.split(hd_file)[0], f.readline().split()[0][1:-1])) + self.fst_vt['HydroDyn']['WAMITULEN'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PtfmVol0'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PtfmCOBxt'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PtfmCOByt'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['ExctnMod'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['RdtnMod'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['RdtnTMax'] = float_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['RdtnDT'] = float_read(f.readline().split()[0]) + + # 2ND-ORDER FLOATING PLATFORM FORCES + f.readline() + self.fst_vt['HydroDyn']['MnDrift'] = int_read(f.readline().split()[0]) # ? + self.fst_vt['HydroDyn']['NewmanApp'] = int_read(f.readline().split()[0]) # ? + self.fst_vt['HydroDyn']['DiffQTF'] = int_read(f.readline().split()[0]) # ? + self.fst_vt['HydroDyn']['SumQTF'] = int_read(f.readline().split()[0]) # ? + + # FLOATING PLATFORM FORCE FLAGS + f.readline() + self.fst_vt['HydroDyn']['PtfmSgF'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PtfmSwF'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PtfmHvF'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PtfmRF'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PtfmPF'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PtfmYF'] = bool_read(f.readline().split()[0]) + + # PLATFORM ADDITIONAL STIFFNESS AND DAMPING + f.readline() + self.fst_vt['HydroDyn']['AddF0'] = [float(idx) for idx in f.readline().strip().split()[:6]] + self.fst_vt['HydroDyn']['AddCLin'] = np.array([[float(idx) for idx in f.readline().strip().split()[:6]] for i in range(6)]) + self.fst_vt['HydroDyn']['AddBLin'] = np.array([[float(idx) for idx in f.readline().strip().split()[:6]] for i in range(6)]) + self.fst_vt['HydroDyn']['AddBQuad'] = np.array([[float(idx) for idx in f.readline().strip().split()[:6]] for i in range(6)]) + + #AXIAL COEFFICIENTS + f.readline() + self.fst_vt['HydroDyn']['NAxCoef'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['AxCoefID'] = [None]*self.fst_vt['HydroDyn']['NAxCoef'] + self.fst_vt['HydroDyn']['AxCd'] = [None]*self.fst_vt['HydroDyn']['NAxCoef'] + self.fst_vt['HydroDyn']['AxCa'] = [None]*self.fst_vt['HydroDyn']['NAxCoef'] + self.fst_vt['HydroDyn']['AxCp'] = [None]*self.fst_vt['HydroDyn']['NAxCoef'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['HydroDyn']['NAxCoef']): + ln = f.readline().split() + self.fst_vt['HydroDyn']['AxCoefID'][i] = int(ln[0]) + self.fst_vt['HydroDyn']['AxCd'][i] = float(ln[1]) + self.fst_vt['HydroDyn']['AxCa'][i] = float(ln[2]) + self.fst_vt['HydroDyn']['AxCp'][i] = float(ln[3]) + + #MEMBER JOINTS + f.readline() + self.fst_vt['HydroDyn']['NJoints'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['JointID'] = [None]*self.fst_vt['HydroDyn']['NJoints'] + self.fst_vt['HydroDyn']['Jointxi'] = [None]*self.fst_vt['HydroDyn']['NJoints'] + self.fst_vt['HydroDyn']['Jointyi'] = [None]*self.fst_vt['HydroDyn']['NJoints'] + self.fst_vt['HydroDyn']['Jointzi'] = [None]*self.fst_vt['HydroDyn']['NJoints'] + self.fst_vt['HydroDyn']['JointAxID'] = [None]*self.fst_vt['HydroDyn']['NJoints'] + self.fst_vt['HydroDyn']['JointOvrlp'] = [None]*self.fst_vt['HydroDyn']['NJoints'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['HydroDyn']['NJoints']): + ln = f.readline().split() + self.fst_vt['HydroDyn']['JointID'][i] = int(ln[0]) + self.fst_vt['HydroDyn']['Jointxi'][i] = float(ln[1]) + self.fst_vt['HydroDyn']['Jointyi'][i] = float(ln[2]) + self.fst_vt['HydroDyn']['Jointzi'][i] = float(ln[3]) + self.fst_vt['HydroDyn']['JointAxID'][i] = int(ln[4]) + self.fst_vt['HydroDyn']['JointOvrlp'][i] = int(ln[5]) + + #MEMBER CROSS-SECTION PROPERTIES + f.readline() + self.fst_vt['HydroDyn']['NPropSets'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['PropSetID'] = [None]*self.fst_vt['HydroDyn']['NPropSets'] + self.fst_vt['HydroDyn']['PropD'] = [None]*self.fst_vt['HydroDyn']['NPropSets'] + self.fst_vt['HydroDyn']['PropThck'] = [None]*self.fst_vt['HydroDyn']['NPropSets'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['HydroDyn']['NPropSets']): + ln = f.readline().split() + self.fst_vt['HydroDyn']['PropSetID'][i] = int(ln[0]) + self.fst_vt['HydroDyn']['PropD'][i] = float(ln[1]) + self.fst_vt['HydroDyn']['PropThck'][i] = float(ln[2]) + + #SIMPLE HYDRODYNAMIC COEFFICIENTS + f.readline() + f.readline() + f.readline() + ln = f.readline().split() + self.fst_vt['HydroDyn']['SimplCd'] = float(ln[0]) + self.fst_vt['HydroDyn']['SimplCdMG'] = float(ln[1]) + self.fst_vt['HydroDyn']['SimplCa'] = float(ln[2]) + self.fst_vt['HydroDyn']['SimplCaMG'] = float(ln[3]) + self.fst_vt['HydroDyn']['SimplCp'] = float(ln[4]) + self.fst_vt['HydroDyn']['SimplCpMG'] = float(ln[5]) + self.fst_vt['HydroDyn']['SimplAxCa'] = float(ln[6]) + self.fst_vt['HydroDyn']['SimplAxCaMG'] = float(ln[7]) + self.fst_vt['HydroDyn']['SimplAxCp'] = float(ln[8]) + self.fst_vt['HydroDyn']['SimplAxCpMG'] = float(ln[9]) + + #DEPTH-BASED HYDRODYNAMIC COEFFICIENTS + f.readline() + self.fst_vt['HydroDyn']['NCoefDpth'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['Dpth'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthCd'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthCdMG'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthCa'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthCaMG'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthCp'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthCpMG'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthAxCa'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthAxCaMG'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthAxCp'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + self.fst_vt['HydroDyn']['DpthAxCpMG'] = [None]*self.fst_vt['HydroDyn']['NCoefDpth'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['HydroDyn']['NCoefDpth']): + ln = f.readline().split() + self.fst_vt['HydroDyn']['Dpth'][i] = float(ln[0]) + self.fst_vt['HydroDyn']['DpthCd'][i] = float(ln[1]) + self.fst_vt['HydroDyn']['DpthCdMG'][i] = float(ln[2]) + self.fst_vt['HydroDyn']['DpthCa'][i] = float(ln[3]) + self.fst_vt['HydroDyn']['DpthCaMG'][i] = float(ln[4]) + self.fst_vt['HydroDyn']['DpthCp'][i] = float(ln[5]) + self.fst_vt['HydroDyn']['DpthCpMG'][i] = float(ln[6]) + self.fst_vt['HydroDyn']['DpthAxCa'][i] = float(ln[7]) + self.fst_vt['HydroDyn']['DpthAxCaMG'][i] = float(ln[8]) + self.fst_vt['HydroDyn']['DpthAxCp'][i] = float(ln[9]) + self.fst_vt['HydroDyn']['DpthAxCpMG'][i] = float(ln[10]) + + #MEMBER-BASED HYDRODYNAMIC COEFFICIENTS + f.readline() + self.fst_vt['HydroDyn']['NCoefMembers'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['MemberID_HydC'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCd1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCd2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCdMG1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCdMG2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCa1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCa2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCaMG1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCaMG2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCp1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCp2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCpMG1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberCpMG2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberAxCa1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberAxCa2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberAxCaMG1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberAxCaMG2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberAxCp1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberAxCp2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberAxCpMG1'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + self.fst_vt['HydroDyn']['MemberAxCpMG2'] = [None]*self.fst_vt['HydroDyn']['NCoefMembers'] + + f.readline() + f.readline() + for i in range(self.fst_vt['HydroDyn']['NCoefMembers']): + ln = f.readline().split() + self.fst_vt['HydroDyn']['MemberID_HydC'][i] = int(ln[0]) + self.fst_vt['HydroDyn']['MemberCd1'][i] = float(ln[1]) + self.fst_vt['HydroDyn']['MemberCd2'][i] = float(ln[2]) + self.fst_vt['HydroDyn']['MemberCdMG1'][i] = float(ln[3]) + self.fst_vt['HydroDyn']['MemberCdMG2'][i] = float(ln[4]) + self.fst_vt['HydroDyn']['MemberCa1'][i] = float(ln[5]) + self.fst_vt['HydroDyn']['MemberCa2'][i] = float(ln[6]) + self.fst_vt['HydroDyn']['MemberCaMG1'][i] = float(ln[7]) + self.fst_vt['HydroDyn']['MemberCaMG2'][i] = float(ln[8]) + self.fst_vt['HydroDyn']['MemberCp1'][i] = float(ln[9]) + self.fst_vt['HydroDyn']['MemberCp2'][i] = float(ln[10]) + self.fst_vt['HydroDyn']['MemberCpMG1'][i] = float(ln[11]) + self.fst_vt['HydroDyn']['MemberCpMG2'][i] = float(ln[12]) + self.fst_vt['HydroDyn']['MemberAxCa1'][i] = float(ln[13]) + self.fst_vt['HydroDyn']['MemberAxCa2'][i] = float(ln[14]) + self.fst_vt['HydroDyn']['MemberAxCaMG1'][i] = float(ln[15]) + self.fst_vt['HydroDyn']['MemberAxCaMG2'][i] = float(ln[16]) + self.fst_vt['HydroDyn']['MemberAxCp1'][i] = float(ln[17]) + self.fst_vt['HydroDyn']['MemberAxCp2'][i] = float(ln[18]) + self.fst_vt['HydroDyn']['MemberAxCpMG1'][i] = float(ln[19]) + self.fst_vt['HydroDyn']['MemberAxCpMG2'][i] = float(ln[20]) + + #MEMBERS + f.readline() + self.fst_vt['HydroDyn']['NMembers'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['MemberID'] = [None]*self.fst_vt['HydroDyn']['NMembers'] + self.fst_vt['HydroDyn']['MJointID1'] = [None]*self.fst_vt['HydroDyn']['NMembers'] + self.fst_vt['HydroDyn']['MJointID2'] = [None]*self.fst_vt['HydroDyn']['NMembers'] + self.fst_vt['HydroDyn']['MPropSetID1'] = [None]*self.fst_vt['HydroDyn']['NMembers'] + self.fst_vt['HydroDyn']['MPropSetID2'] = [None]*self.fst_vt['HydroDyn']['NMembers'] + self.fst_vt['HydroDyn']['MDivSize'] = [None]*self.fst_vt['HydroDyn']['NMembers'] + self.fst_vt['HydroDyn']['MCoefMod'] = [None]*self.fst_vt['HydroDyn']['NMembers'] + self.fst_vt['HydroDyn']['PropPot'] = [None]*self.fst_vt['HydroDyn']['NMembers'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['HydroDyn']['NMembers']): + ln = f.readline().split() + self.fst_vt['HydroDyn']['MemberID'][i] = int(ln[0]) + self.fst_vt['HydroDyn']['MJointID1'][i] = int(ln[1]) + self.fst_vt['HydroDyn']['MJointID2'][i] = int(ln[2]) + self.fst_vt['HydroDyn']['MPropSetID1'][i] = int(ln[3]) + self.fst_vt['HydroDyn']['MPropSetID2'][i] = int(ln[4]) + self.fst_vt['HydroDyn']['MDivSize'][i] = float(ln[5]) + self.fst_vt['HydroDyn']['MCoefMod'][i] = int(ln[6]) + self.fst_vt['HydroDyn']['PropPot'][i] = bool_read(ln[7]) + + #FILLED MEMBERS + f.readline() + self.fst_vt['HydroDyn']['NFillGroups'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['FillNumM'] = [None]*self.fst_vt['HydroDyn']['NFillGroups'] + self.fst_vt['HydroDyn']['FillMList'] = [None]*self.fst_vt['HydroDyn']['NFillGroups'] + self.fst_vt['HydroDyn']['FillFSLoc'] = [None]*self.fst_vt['HydroDyn']['NFillGroups'] + self.fst_vt['HydroDyn']['FillDens'] = [None]*self.fst_vt['HydroDyn']['NFillGroups'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['HydroDyn']['NFillGroups']): + ln = f.readline().split() + self.fst_vt['HydroDyn']['FillNumM'][i] = int(ln[0]) + self.fst_vt['HydroDyn']['FillMList'][i] = [int(j) for j in ln[1:-2]] + self.fst_vt['HydroDyn']['FillFSLoc'][i] = float(ln[-2]) + self.fst_vt['HydroDyn']['FillDens'][i] = float(ln[-1]) + + #MARINE GROWTH + f.readline() + self.fst_vt['HydroDyn']['NMGDepths'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['MGDpth'] = [None]*self.fst_vt['HydroDyn']['NMGDepths'] + self.fst_vt['HydroDyn']['MGThck'] = [None]*self.fst_vt['HydroDyn']['NMGDepths'] + self.fst_vt['HydroDyn']['MGDens'] = [None]*self.fst_vt['HydroDyn']['NMGDepths'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['HydroDyn']['NMGDepths']): + ln = f.readline().split() + self.fst_vt['HydroDyn']['MGDpth'][i] = float(ln[0]) + self.fst_vt['HydroDyn']['MGThck'][i] = float(ln[1]) + self.fst_vt['HydroDyn']['MGDens'][i] = float(ln[2]) + + #MEMBER OUTPUT LIST + f.readline() + self.fst_vt['HydroDyn']['NMOutputs'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['MemberID_out'] = [None]*self.fst_vt['HydroDyn']['NMOutputs'] + self.fst_vt['HydroDyn']['NOutLoc'] = [None]*self.fst_vt['HydroDyn']['NMOutputs'] + self.fst_vt['HydroDyn']['NodeLocs'] = [None]*self.fst_vt['HydroDyn']['NMOutputs'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['HydroDyn']['NMOutputs']): + ln = f.readline().split() + self.fst_vt['HydroDyn']['MemberID_out'][i] = int(ln[0]) + self.fst_vt['HydroDyn']['NOutLoc'][i] = int(ln[1]) + self.fst_vt['HydroDyn']['NodeLocs'][i] = float(ln[2]) + + #JOINT OUTPUT LIST + f.readline() + self.fst_vt['HydroDyn']['NJOutputs'] = int_read(f.readline().split()[0]) + if int(self.fst_vt['HydroDyn']['NJOutputs']) > 0: + self.fst_vt['HydroDyn']['JOutLst'] = [int(idx.strip()) for idx in f.readline().split('JOutLst')[0].split(',')] + else: + f.readline() + self.fst_vt['HydroDyn']['JOutLst'] = [0] + + #OUTPUT + f.readline() + self.fst_vt['HydroDyn']['HDSum'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['OutAll'] = bool_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['OutSwtch'] = int_read(f.readline().split()[0]) + self.fst_vt['HydroDyn']['OutFmt'] = str(f.readline().split()[0]) + self.fst_vt['HydroDyn']['OutSFmt'] = str(f.readline().split()[0]) + + self.fst_vt['HydroDyn']['HDSum'] + self.fst_vt['HydroDyn']['OutAll'] + self.fst_vt['HydroDyn']['OutSwtch'] + self.fst_vt['HydroDyn']['OutFmt'] + self.fst_vt['HydroDyn']['OutSFmt'] + + # HydroDyn Outlist + f.readline() + data = f.readline() + while data.split()[0] != 'END': + channels = data.split('"') + channel_list = channels[1].split(',') + self.set_outlist(self.fst_vt['outlist']['HydroDyn'], channel_list) + data = f.readline() + + f.close() + + def read_SubDyn(self): + # SubDyn v1.01 + + sd_file = os.path.normpath(os.path.join(self.FAST_directory, self.fst_vt['Fst']['SubFile'])) + f = open(sd_file) + f.readline() + f.readline() + f.readline() + # SIMULATION CONTROL + self.fst_vt['SubDyn']['Echo'] = bool_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['SDdeltaT'] = float_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['IntMethod'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['SttcSolve'] = bool_read(f.readline().split()[0]) + f.readline() + # FEA and CRAIG-BAMPTON PARAMETERS + self.fst_vt['SubDyn']['FEMMod'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['NDiv'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['CBMod'] = bool_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['Nmodes'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['JDampings'] = int_read(f.readline().split()[0]) + f.readline() + # STRUCTURE JOINTS + self.fst_vt['SubDyn']['NJoints'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['JointID'] = [None]*self.fst_vt['SubDyn']['NJoints'] + self.fst_vt['SubDyn']['JointXss'] = [None]*self.fst_vt['SubDyn']['NJoints'] + self.fst_vt['SubDyn']['JointYss'] = [None]*self.fst_vt['SubDyn']['NJoints'] + self.fst_vt['SubDyn']['JointZss'] = [None]*self.fst_vt['SubDyn']['NJoints'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['SubDyn']['NJoints']): + ln = f.readline().split() + self.fst_vt['SubDyn']['JointID'][i] = int(ln[0]) + self.fst_vt['SubDyn']['JointXss'][i] = float(ln[1]) + self.fst_vt['SubDyn']['JointYss'][i] = float(ln[2]) + self.fst_vt['SubDyn']['JointZss'][i] = float(ln[3]) + f.readline() + # BASE REACTION JOINTS + self.fst_vt['SubDyn']['NReact'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['RJointID'] = [None]*self.fst_vt['SubDyn']['NReact'] + self.fst_vt['SubDyn']['RctTDXss'] = [None]*self.fst_vt['SubDyn']['NReact'] + self.fst_vt['SubDyn']['RctTDYss'] = [None]*self.fst_vt['SubDyn']['NReact'] + self.fst_vt['SubDyn']['RctTDZss'] = [None]*self.fst_vt['SubDyn']['NReact'] + self.fst_vt['SubDyn']['RctRDXss'] = [None]*self.fst_vt['SubDyn']['NReact'] + self.fst_vt['SubDyn']['RctRDYss'] = [None]*self.fst_vt['SubDyn']['NReact'] + self.fst_vt['SubDyn']['RctRDZss'] = [None]*self.fst_vt['SubDyn']['NReact'] + self.fst_vt['SubDyn']['Rct_SoilFile'] = [None]*self.fst_vt['SubDyn']['NReact'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['SubDyn']['NReact']): + ln = f.readline().split() + self.fst_vt['SubDyn']['RJointID'][i] = int(ln[0]) + self.fst_vt['SubDyn']['RctTDXss'][i] = int(ln[1]) + self.fst_vt['SubDyn']['RctTDYss'][i] = int(ln[2]) + self.fst_vt['SubDyn']['RctTDZss'][i] = int(ln[3]) + self.fst_vt['SubDyn']['RctRDXss'][i] = int(ln[4]) + self.fst_vt['SubDyn']['RctRDYss'][i] = int(ln[5]) + self.fst_vt['SubDyn']['RctRDZss'][i] = int(ln[6]) + self.fst_vt['SubDyn']['Rct_SoilFile'][i] = ln[7] + f.readline() + # INTERFACE JOINTS + self.fst_vt['SubDyn']['NInterf'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['IJointID'] = [None]*self.fst_vt['SubDyn']['NInterf'] + self.fst_vt['SubDyn']['ItfTDXss'] = [None]*self.fst_vt['SubDyn']['NInterf'] + self.fst_vt['SubDyn']['ItfTDYss'] = [None]*self.fst_vt['SubDyn']['NInterf'] + self.fst_vt['SubDyn']['ItfTDZss'] = [None]*self.fst_vt['SubDyn']['NInterf'] + self.fst_vt['SubDyn']['ItfRDXss'] = [None]*self.fst_vt['SubDyn']['NInterf'] + self.fst_vt['SubDyn']['ItfRDYss'] = [None]*self.fst_vt['SubDyn']['NInterf'] + self.fst_vt['SubDyn']['ItfRDZss'] = [None]*self.fst_vt['SubDyn']['NInterf'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['SubDyn']['NInterf']): + ln = f.readline().split() + self.fst_vt['SubDyn']['IJointID'][i] = int(ln[0]) + self.fst_vt['SubDyn']['ItfTDXss'][i] = int(ln[1]) + self.fst_vt['SubDyn']['ItfTDYss'][i] = int(ln[2]) + self.fst_vt['SubDyn']['ItfTDZss'][i] = int(ln[3]) + self.fst_vt['SubDyn']['ItfRDXss'][i] = int(ln[4]) + self.fst_vt['SubDyn']['ItfRDYss'][i] = int(ln[5]) + self.fst_vt['SubDyn']['ItfRDZss'][i] = int(ln[6]) + f.readline() + # MEMBERS + self.fst_vt['SubDyn']['NMembers'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['MemberID'] = [None]*self.fst_vt['SubDyn']['NMembers'] + self.fst_vt['SubDyn']['MJointID1'] = [None]*self.fst_vt['SubDyn']['NMembers'] + self.fst_vt['SubDyn']['MJointID2'] = [None]*self.fst_vt['SubDyn']['NMembers'] + self.fst_vt['SubDyn']['MPropSetID1'] = [None]*self.fst_vt['SubDyn']['NMembers'] + self.fst_vt['SubDyn']['MPropSetID2'] = [None]*self.fst_vt['SubDyn']['NMembers'] + self.fst_vt['SubDyn']['COSMID'] = [None]*self.fst_vt['SubDyn']['NMembers'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['SubDyn']['NMembers']): + ln = f.readline().split() + self.fst_vt['SubDyn']['MemberID'][i] = int(ln[0]) + self.fst_vt['SubDyn']['MJointID1'][i] = int(ln[1]) + self.fst_vt['SubDyn']['MJointID2'][i] = int(ln[2]) + self.fst_vt['SubDyn']['MPropSetID1'][i] = int(ln[3]) + self.fst_vt['SubDyn']['MPropSetID2'][i] = int(ln[4]) + if len(ln) > 5: + self.fst_vt['SubDyn']['COSMID'][i] = int(ln[5]) + f.readline() + # MEMBER X-SECTION PROPERTY data 1/2 + self.fst_vt['SubDyn']['NPropSets'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['PropSetID1'] = [None]*self.fst_vt['SubDyn']['NPropSets'] + self.fst_vt['SubDyn']['YoungE1'] = [None]*self.fst_vt['SubDyn']['NPropSets'] + self.fst_vt['SubDyn']['ShearG1'] = [None]*self.fst_vt['SubDyn']['NPropSets'] + self.fst_vt['SubDyn']['MatDens1'] = [None]*self.fst_vt['SubDyn']['NPropSets'] + self.fst_vt['SubDyn']['XsecD'] = [None]*self.fst_vt['SubDyn']['NPropSets'] + self.fst_vt['SubDyn']['XsecT'] = [None]*self.fst_vt['SubDyn']['NPropSets'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['SubDyn']['NPropSets']): + ln = f.readline().split() + self.fst_vt['SubDyn']['PropSetID1'][i] = int(ln[0]) + self.fst_vt['SubDyn']['YoungE1'][i] = float(ln[1]) + self.fst_vt['SubDyn']['ShearG1'][i] = float(ln[2]) + self.fst_vt['SubDyn']['MatDens1'][i] = float(ln[3]) + self.fst_vt['SubDyn']['XsecD'][i] = float(ln[4]) + self.fst_vt['SubDyn']['XsecT'][i] = float(ln[5]) + f.readline() + # MEMBER X-SECTION PROPERTY data 2/2 + self.fst_vt['SubDyn']['NXPropSets'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['PropSetID2'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + self.fst_vt['SubDyn']['YoungE2'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + self.fst_vt['SubDyn']['ShearG2'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + self.fst_vt['SubDyn']['MatDens2'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + self.fst_vt['SubDyn']['XsecA'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + self.fst_vt['SubDyn']['XsecAsx'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + self.fst_vt['SubDyn']['XsecAsy'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + self.fst_vt['SubDyn']['XsecJxx'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + self.fst_vt['SubDyn']['XsecJyy'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + self.fst_vt['SubDyn']['XsecJ0'] = [None]*self.fst_vt['SubDyn']['NXPropSets'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['SubDyn']['NXPropSets']): + ln = f.readline().split() + self.fst_vt['SubDyn']['PropSetID2'][i] = int(ln[0]) + self.fst_vt['SubDyn']['YoungE2'][i] = float(ln[1]) + self.fst_vt['SubDyn']['ShearG2'][i] = float(ln[2]) + self.fst_vt['SubDyn']['MatDens2'][i] = float(ln[3]) + self.fst_vt['SubDyn']['XsecA'][i] = float(ln[4]) + self.fst_vt['SubDyn']['XsecAsx'][i] = float(ln[5]) + self.fst_vt['SubDyn']['XsecAsy'][i] = float(ln[6]) + self.fst_vt['SubDyn']['XsecJxx'][i] = float(ln[7]) + self.fst_vt['SubDyn']['XsecJyy'][i] = float(ln[8]) + self.fst_vt['SubDyn']['XsecJ0'][i] = float(ln[9]) + f.readline() + # MEMBER COSINE MATRICES + self.fst_vt['SubDyn']['NCOSMs'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['COSMID'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + self.fst_vt['SubDyn']['COSM11'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + self.fst_vt['SubDyn']['COSM12'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + self.fst_vt['SubDyn']['COSM13'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + self.fst_vt['SubDyn']['COSM21'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + self.fst_vt['SubDyn']['COSM22'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + self.fst_vt['SubDyn']['COSM23'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + self.fst_vt['SubDyn']['COSM31'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + self.fst_vt['SubDyn']['COSM32'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + self.fst_vt['SubDyn']['COSM33'] = [None]*self.fst_vt['SubDyn']['NCOSMs'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['SubDyn']['NCOSMs']): + ln = f.readline().split() + self.fst_vt['SubDyn']['COSMID'][i] = int(ln[0]) + self.fst_vt['SubDyn']['COSM11'][i] = float(ln[1]) + self.fst_vt['SubDyn']['COSM12'][i] = float(ln[2]) + self.fst_vt['SubDyn']['COSM13'][i] = float(ln[3]) + self.fst_vt['SubDyn']['COSM21'][i] = float(ln[4]) + self.fst_vt['SubDyn']['COSM22'][i] = float(ln[5]) + self.fst_vt['SubDyn']['COSM23'][i] = float(ln[6]) + self.fst_vt['SubDyn']['COSM31'][i] = float(ln[7]) + self.fst_vt['SubDyn']['COSM32'][i] = float(ln[8]) + self.fst_vt['SubDyn']['COSM33'][i] = float(ln[9]) + f.readline() + # JOINT ADDITIONAL CONCENTRATED MASSES + self.fst_vt['SubDyn']['NCmass'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['CMJointID'] = [None]*self.fst_vt['SubDyn']['NCmass'] + self.fst_vt['SubDyn']['JMass'] = [None]*self.fst_vt['SubDyn']['NCmass'] + self.fst_vt['SubDyn']['JMXX'] = [None]*self.fst_vt['SubDyn']['NCmass'] + self.fst_vt['SubDyn']['JMYY'] = [None]*self.fst_vt['SubDyn']['NCmass'] + self.fst_vt['SubDyn']['JMZZ'] = [None]*self.fst_vt['SubDyn']['NCmass'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['SubDyn']['NCmass']): + ln = f.readline().split() + self.fst_vt['SubDyn']['CMJointID'][i] = int(ln[0]) + self.fst_vt['SubDyn']['JMass'][i] = float(ln[1]) + self.fst_vt['SubDyn']['JMXX'][i] = float(ln[2]) + self.fst_vt['SubDyn']['JMYY'][i] = float(ln[3]) + self.fst_vt['SubDyn']['JMZZ'][i] = float(ln[4]) + f.readline() + # OUTPUT + self.fst_vt['SubDyn']['SSSum'] = bool_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['OutCOSM'] = bool_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['OutAll'] = bool_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['OutSwtch'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['TabDelim'] = bool_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['OutDec'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['OutFmt'] = f.readline().split()[0] + self.fst_vt['SubDyn']['OutSFmt'] = f.readline().split()[0] + f.readline() + # MEMBER OUTPUT LIST + self.fst_vt['SubDyn']['NMOutputs'] = int_read(f.readline().split()[0]) + self.fst_vt['SubDyn']['MemberID_out'] = [None]*self.fst_vt['SubDyn']['NMOutputs'] + self.fst_vt['SubDyn']['NOutCnt'] = [None]*self.fst_vt['SubDyn']['NMOutputs'] + self.fst_vt['SubDyn']['NodeCnt'] = [None]*self.fst_vt['SubDyn']['NMOutputs'] + ln = f.readline().split() + ln = f.readline().split() + for i in range(self.fst_vt['SubDyn']['NMOutputs']): + ln = f.readline().split() + self.fst_vt['SubDyn']['MemberID_out'][i] = int(ln[0]) + self.fst_vt['SubDyn']['NOutCnt'][i] = int(ln[1]) + self.fst_vt['SubDyn']['NodeCnt'][i] = int(ln[2]) + f.readline() + # SSOutList + data = f.readline() + while data.split()[0] != 'END': + channels = data.split('"') + channel_list = channels[1].split(',') + self.set_outlist(self.fst_vt['outlist']['SubDyn'], channel_list) + data = f.readline() + + + def read_MAP(self): + # MAP++ + + # TODO: this is likely not robust enough, only tested on the Hywind Spar + # additional lines in these tables are likely + + map_file = os.path.normpath(os.path.join(self.FAST_directory, self.fst_vt['Fst']['MooringFile'])) + + f = open(map_file) + f.readline() + f.readline() + f.readline() + data_line = f.readline().strip().split() + self.fst_vt['MAP']['LineType'] = str(data_line[0]) + self.fst_vt['MAP']['Diam'] = float(data_line[1]) + self.fst_vt['MAP']['MassDenInAir'] = float(data_line[2]) + self.fst_vt['MAP']['EA'] = float(data_line[3]) + self.fst_vt['MAP']['CB'] = float(data_line[4]) + self.fst_vt['MAP']['CIntDamp'] = float(data_line[5]) + self.fst_vt['MAP']['Ca'] = float(data_line[6]) + self.fst_vt['MAP']['Cdn'] = float(data_line[7]) + self.fst_vt['MAP']['Cdt'] = float(data_line[8]) + f.readline() + f.readline() + f.readline() + for i in range(2): + data_node = f.readline().strip().split() + self.fst_vt['MAP']['Node'].append(int(data_node[0])) + self.fst_vt['MAP']['Type'].append(str(data_node[1])) + self.fst_vt['MAP']['X'].append(float_read(data_node[2])) + self.fst_vt['MAP']['Y'].append(float_read(data_node[3])) + self.fst_vt['MAP']['Z'].append(float_read(data_node[4])) + self.fst_vt['MAP']['M'].append(float_read(data_node[5])) + self.fst_vt['MAP']['B'].append(float_read(data_node[6])) + self.fst_vt['MAP']['FX'].append(float_read(data_node[7])) + self.fst_vt['MAP']['FY'].append(float_read(data_node[8])) + self.fst_vt['MAP']['FZ'].append(float_read(data_node[9])) + f.readline() + f.readline() + f.readline() + data_line_prop = f.readline().strip().split() + self.fst_vt['MAP']['Line'] = int(data_line_prop[0]) + self.fst_vt['MAP']['LineType'] = str(data_line_prop[1]) + self.fst_vt['MAP']['UnstrLen'] = float(data_line_prop[2]) + self.fst_vt['MAP']['NodeAnch'] = int(data_line_prop[3]) + self.fst_vt['MAP']['NodeFair'] = int(data_line_prop[4]) + self.fst_vt['MAP']['Flags'] = [str(val) for val in data_line_prop[5:]] + f.readline() + f.readline() + f.readline() + self.fst_vt['MAP']['Option'] = [str(val) for val in f.readline().strip().split()] + + + def read_MoorDyn(self): + + moordyn_file = os.path.normpath(os.path.join(self.FAST_directory, self.fst_vt['Fst']['MooringFile'])) + + f = open(moordyn_file) + + # MoorDyn + f.readline() + f.readline() + self.fst_vt['MoorDyn']['Echo'] = bool_read(f.readline().split()[0]) + f.readline() + self.fst_vt['MoorDyn']['NTypes'] = int_read(f.readline().split()[0]) + f.readline() + f.readline() + self.fst_vt['MoorDyn']['Name'] = [] + self.fst_vt['MoorDyn']['Diam'] = [] + self.fst_vt['MoorDyn']['MassDen'] = [] + self.fst_vt['MoorDyn']['EA'] = [] + self.fst_vt['MoorDyn']['BA_zeta'] = [] + self.fst_vt['MoorDyn']['Can'] = [] + self.fst_vt['MoorDyn']['Cat'] = [] + self.fst_vt['MoorDyn']['Cdn'] = [] + self.fst_vt['MoorDyn']['Cdt'] = [] + for i in range(self.fst_vt['MoorDyn']['NTypes']): + data_line = f.readline().strip().split() + self.fst_vt['MoorDyn']['Name'].append(str(data_line[0])) + self.fst_vt['MoorDyn']['Diam'].append(float(data_line[1])) + self.fst_vt['MoorDyn']['MassDen'].append(float(data_line[2])) + self.fst_vt['MoorDyn']['EA'].append(float(data_line[3])) + self.fst_vt['MoorDyn']['BA_zeta'].append(float(data_line[4])) + self.fst_vt['MoorDyn']['Can'].append(float(data_line[5])) + self.fst_vt['MoorDyn']['Cat'].append(float(data_line[6])) + self.fst_vt['MoorDyn']['Cdn'].append(float(data_line[7])) + self.fst_vt['MoorDyn']['Cdt'].append(float(data_line[8])) + f.readline() + self.fst_vt['MoorDyn']['NConnects'] = int_read(f.readline().split()[0]) + f.readline() + f.readline() + self.fst_vt['MoorDyn']['Node'] = [] + self.fst_vt['MoorDyn']['Type'] = [] + self.fst_vt['MoorDyn']['X'] = [] + self.fst_vt['MoorDyn']['Y'] = [] + self.fst_vt['MoorDyn']['Z'] = [] + self.fst_vt['MoorDyn']['M'] = [] + self.fst_vt['MoorDyn']['V'] = [] + self.fst_vt['MoorDyn']['FX'] = [] + self.fst_vt['MoorDyn']['FY'] = [] + self.fst_vt['MoorDyn']['FZ'] = [] + self.fst_vt['MoorDyn']['CdA'] = [] + self.fst_vt['MoorDyn']['CA'] = [] + for i in range(self.fst_vt['MoorDyn']['NConnects']): + data_line = f.readline().strip().split() + self.fst_vt['MoorDyn']['Node'].append(int(data_line[0])) + self.fst_vt['MoorDyn']['Type'].append(str(data_line[1])) + self.fst_vt['MoorDyn']['X'].append(float(data_line[2])) + self.fst_vt['MoorDyn']['Y'].append(float(data_line[3])) + self.fst_vt['MoorDyn']['Z'].append(float(data_line[4])) + self.fst_vt['MoorDyn']['M'].append(float(data_line[5])) + self.fst_vt['MoorDyn']['V'].append(float(data_line[6])) + self.fst_vt['MoorDyn']['FX'].append(float(data_line[7])) + self.fst_vt['MoorDyn']['FY'].append(float(data_line[8])) + self.fst_vt['MoorDyn']['FZ'].append(float(data_line[9])) + self.fst_vt['MoorDyn']['CdA'].append(float(data_line[10])) + self.fst_vt['MoorDyn']['CA'].append(float(data_line[11])) + f.readline() + self.fst_vt['MoorDyn']['NLines'] = int_read(f.readline().split()[0]) + f.readline() + f.readline() + self.fst_vt['MoorDyn']['Line'] = [] + self.fst_vt['MoorDyn']['LineType'] = [] + self.fst_vt['MoorDyn']['UnstrLen'] = [] + self.fst_vt['MoorDyn']['NumSegs'] = [] + self.fst_vt['MoorDyn']['NodeAnch'] = [] + self.fst_vt['MoorDyn']['NodeFair'] = [] + self.fst_vt['MoorDyn']['Flags_Outputs'] = [] + for i in range(self.fst_vt['MoorDyn']['NLines']): + data_line = f.readline().strip().split() + self.fst_vt['MoorDyn']['Line'].append(int(data_line[0])) + self.fst_vt['MoorDyn']['LineType'].append(str(data_line[1])) + self.fst_vt['MoorDyn']['UnstrLen'].append(float(data_line[2])) + self.fst_vt['MoorDyn']['NumSegs'].append(int(data_line[3])) + self.fst_vt['MoorDyn']['NodeAnch'].append(int(data_line[4])) + self.fst_vt['MoorDyn']['NodeFair'].append(int(data_line[5])) + self.fst_vt['MoorDyn']['Flags_Outputs'].append(str(data_line[6])) + f.readline() + self.fst_vt['MoorDyn']['dtM'] = float_read(f.readline().split()[0]) + self.fst_vt['MoorDyn']['kbot'] = float_read(f.readline().split()[0]) + self.fst_vt['MoorDyn']['cbot'] = float_read(f.readline().split()[0]) + self.fst_vt['MoorDyn']['dtIC'] = float_read(f.readline().split()[0]) + self.fst_vt['MoorDyn']['TmaxIC'] = float_read(f.readline().split()[0]) + self.fst_vt['MoorDyn']['CdScaleIC'] = float_read(f.readline().split()[0]) + self.fst_vt['MoorDyn']['threshIC'] = float_read(f.readline().split()[0]) + f.readline() + + data = f.readline() + while data.split()[0] != 'END': + channels = data.strip().strip('"').strip("'") + channel_list = channels.split(',') + self.set_outlist(self.fst_vt['outlist']['MoorDyn'], channel_list) + data = f.readline() + + +class InputReader_FAST7(InputReader_Common): + """ FASTv7.02 input file reader """ + + def execute(self): + self.read_MainInput() + self.read_AeroDyn_FAST7() + # if self.fst_vt['aerodyn']['wind_file_type'][1] == 'wnd': + # self.WndWindReader(self.fst_vt['aerodyn']['WindFile']) + # else: + # print 'Wind reader for file type .%s not implemented yet.' % self.fst_vt['aerodyn']['wind_file_type'][1] + self.read_ElastoDynBlade() + self.read_ElastoDynTower() + + def read_MainInput(self): + + fst_file = os.path.join(self.FAST_directory, self.FAST_InputFile) + f = open(fst_file) + + # FAST Inputs + f.readline() + f.readline() + self.fst_vt['description'] = f.readline().rstrip() + f.readline() + f.readline() + self.fst_vt['Fst7']['Echo'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['ADAMSPrep'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['AnalMode'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['NumBl'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['TMax'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['DT'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['YCMode'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['TYCOn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['PCMode'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['TPCOn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['VSContrl'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['VS_RtGnSp'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['VS_RtTq'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['VS_Rgn2K'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['VS_SlPc'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['GenModel'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['GenTiStr'] = bool(f.readline().split()[0]) + self.fst_vt['Fst7']['GenTiStp'] = bool(f.readline().split()[0]) + self.fst_vt['Fst7']['SpdGenOn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TimGenOn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TimGenOf'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['HSSBrMode'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['THSSBrDp'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TiDynBrk'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TTpBrDp1'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TTpBrDp2'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TTpBrDp3'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TBDepISp1'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TBDepISp2'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TBDepISp3'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TYawManS'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TYawManE'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NacYawF'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TPitManS1'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TPitManS2'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TPitManS3'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TPitManE1'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TPitManE2'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TPitManE3'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['BlPitch1'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['BlPitch2'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['BlPitch3'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['B1PitchF1'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['B1PitchF2'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['B1PitchF3'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['Gravity'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['FlapDOF1'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['FlapDOF2'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['EdgeDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TeetDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['DrTrDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['GenDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['YawDOF'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TwFADOF1'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TwFADOF2'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TwSSDOF1'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TwSSDOF2'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['CompAero'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['CompNoise'] = bool_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['OoPDefl'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['IPDefl'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TeetDefl'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['Azimuth'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['RotSpeed'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NacYaw'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TTDspFA'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TTDspSS'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['TipRad'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['HubRad'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['PSpnElN'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['UndSling'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['HubCM'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['OverHang'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NacCMxn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NacCMyn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NacCMzn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TowerHt'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['Twr2Shft'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TwrRBHt'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['ShftTilt'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['Delta3'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['PreCone(1)'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['PreCone(2)'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['PreCone(3)'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['AzimB1Up'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['YawBrMass'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NacMass'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['HubMass'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TipMass(1)'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TipMass(2)'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TipMass(3)'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NacYIner'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['GenIner'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['HubIner'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['GBoxEff'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['GenEff'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['GBRatio'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['GBRevers'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['HSSBrTqF'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['HSSBrDT'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['DynBrkFi'] = f.readline().split()[0] + self.fst_vt['Fst7']['DTTorSpr'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['DTTorDmp'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['SIG_SlPc'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['SIG_SySp'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['SIG_RtTq'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['SIG_PORt'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['TEC_Freq'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TEC_NPol'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['TEC_SRes'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TEC_RRes'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TEC_VLL'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TEC_SLR'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TEC_RLR'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TEC_MR'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['PtfmModel'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['PtfmFile'] = f.readline().split()[0][1:-1] + f.readline() + self.fst_vt['Fst7']['TwrNodes'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['TwrFile'] = f.readline().split()[0][1:-1] + f.readline() + self.fst_vt['Fst7']['YawSpr'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['YawDamp'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['YawNeut'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['Furling'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['FurlFile'] = f.readline().split()[0] + f.readline() + self.fst_vt['Fst7']['TeetMod'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['TeetDmpP'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TeetDmp'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TeetCDmp'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TeetSStP'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TeetHStP'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TeetSSSp'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TeetHSSp'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['TBDrConN'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TBDrConD'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['TpBrDT'] = float_read(f.readline().split()[0]) + f.readline() + self.fst_vt['Fst7']['BldFile1'] = f.readline().split()[0][1:-1] # TODO - different blade files + self.fst_vt['Fst7']['BldFile2'] = f.readline().split()[0][1:-1] + self.fst_vt['Fst7']['BldFile3'] = f.readline().split()[0][1:-1] + f.readline() + self.fst_vt['Fst7']['ADFile'] = f.readline().split()[0][1:-1] + f.readline() + self.fst_vt['Fst7']['NoiseFile'] = f.readline().split()[0] + f.readline() + self.fst_vt['Fst7']['ADAMSFile'] = f.readline().split()[0] + f.readline() + self.fst_vt['Fst7']['LinFile'] = f.readline().split()[0] + f.readline() + self.fst_vt['Fst7']['SumPrint'] = bool_read(f.readline().split()[0]) + self.fst_vt['Fst7']['OutFileFmt'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['TabDelim'] = bool_read(f.readline().split()[0]) + + self.fst_vt['Fst7']['OutFmt'] = f.readline().split()[0] + self.fst_vt['Fst7']['TStart'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['DecFact'] = int(f.readline().split()[0]) + self.fst_vt['Fst7']['SttsTime'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NcIMUxn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NcIMUyn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NcIMUzn'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['ShftGagL'] = float_read(f.readline().split()[0]) + self.fst_vt['Fst7']['NTwGages'] = int(f.readline().split()[0]) + twrg = f.readline().split(',') + if self.fst_vt['Fst7']['NTwGages'] != 0: #loop over elements if there are gauges to be added, otherwise assign directly + for i in range(self.fst_vt['Fst7']['NTwGages']): + self.fst_vt['Fst7']['TwrGagNd'].append(twrg[i]) + self.fst_vt['Fst7']['TwrGagNd'][-1] = self.fst_vt['Fst7']['TwrGagNd'][-1][0:2] + else: + self.fst_vt['Fst7']['TwrGagNd'] = twrg + self.fst_vt['Fst7']['TwrGagNd'][-1] = self.fst_vt['Fst7']['TwrGagNd'][-1][0:4] + self.fst_vt['Fst7']['NBlGages'] = int(f.readline().split()[0]) + blg = f.readline().split(',') + if self.fst_vt['Fst7']['NBlGages'] != 0: + for i in range(self.fst_vt['Fst7']['NBlGages']): + self.fst_vt['Fst7']['BldGagNd'].append(blg[i]) + self.fst_vt['Fst7']['BldGagNd'][-1] = self.fst_vt['Fst7']['BldGagNd'][-1][0:2] + else: + self.fst_vt['Fst7']['BldGagNd'] = blg + self.fst_vt['Fst7']['BldGagNd'][-1] = self.fst_vt['Fst7']['BldGagNd'][-1][0:4] + + # Outlist (TODO - detailed categorization) + f.readline() + data = f.readline() + while data.split()[0] != 'END': + channels = data.split('"') + channel_list = channels[1].split(',') + self.set_outlist(self.fst_vt['outlist7'], channel_list) + data = f.readline() + + def read_AeroDyn_FAST7(self): + + ad_file = os.path.join(self.FAST_directory, self.fst_vt['Fst7']['ADFile']) + f = open(ad_file) + + # skip lines and check if nondimensional + f.readline() + self.fst_vt['AeroDyn14']['SysUnits'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['StallMod'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['UseCm'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['InfModel'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['IndModel'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['AToler'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['TLModel'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['HLModel'] = f.readline().split()[0] + self.fst_vt['AeroDyn14']['WindFile'] = os.path.normpath(os.path.join(os.path.split(ad_file)[0], f.readline().split()[0][1:-1])) + self.fst_vt['AeroDyn14']['wind_file_type'] = self.fst_vt['AeroDyn14']['WindFile'].split('.') + self.fst_vt['AeroDyn14']['HH'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['TwrShad'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['ShadHWid'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['T_Shad_Refpt'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['AirDens'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['KinVisc'] = float_read(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['DTAero'] = float_read(f.readline().split()[0]) + + self.fst_vt['AeroDyn14']['NumFoil'] = int(f.readline().split()[0]) + self.fst_vt['AeroDyn14']['FoilNm'] = [None] * self.fst_vt['AeroDyn14']['NumFoil'] + for i in range(self.fst_vt['AeroDyn14']['NumFoil']): + af_filename = f.readline().split()[0] + af_filename = fix_path(af_filename) + self.fst_vt['AeroDyn14']['FoilNm'][i] = af_filename[1:-1] + + self.fst_vt['AeroDynBlade']['BldNodes'] = int(f.readline().split()[0]) + f.readline() + self.fst_vt['AeroDynBlade']['RNodes'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['AeroTwst'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['DRNodes'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['Chord'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['NFoil'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + self.fst_vt['AeroDynBlade']['PrnElm'] = [None] * self.fst_vt['AeroDynBlade']['BldNodes'] + for i in range(self.fst_vt['AeroDynBlade']['BldNodes']): + data = f.readline().split() + self.fst_vt['AeroDynBlade']['RNodes'][i] = float_read(data[0]) + self.fst_vt['AeroDynBlade']['AeroTwst'][i] = float_read(data[1]) + self.fst_vt['AeroDynBlade']['DRNodes'][i] = float_read(data[2]) + self.fst_vt['AeroDynBlade']['Chord'][i] = float_read(data[3]) + self.fst_vt['AeroDynBlade']['NFoil'][i] = int(data[4]) + self.fst_vt['AeroDynBlade']['PrnElm'][i] = data[5] + + f.close() + + # create airfoil objects + self.fst_vt['AeroDynBlade']['af_data'] = [] + for i in range(self.fst_vt['AeroDyn14']['NumFoil']): + self.fst_vt['AeroDynBlade']['af_data'].append(self.read_AeroDyn14Polar(os.path.join(self.FAST_directory,self.fst_vt['AeroDyn14']['FoilNm'][i]))) + + +if __name__=="__main__": + + FAST_ver = 'OpenFAST' + read_yaml = False + + if read_yaml: + fast = InputReader_Common(FAST_ver=FAST_ver) + fast.FAST_yamlfile = 'temp/OpenFAST/test.yaml' + fast.read_yaml() + + else: + if FAST_ver.lower() == 'fast7': + fast = InputReader_FAST7(FAST_ver=FAST_ver) + fast.FAST_InputFile = 'Test16.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/FAST_v7.02.00d-bjj/CertTest/' # Path to fst directory files + + elif FAST_ver.lower() == 'fast8': + fast = InputReader_OpenFAST(FAST_ver=FAST_ver) + fast.FAST_InputFile = 'NREL5MW_onshore.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/FAST_v8.16.00a-bjj/ref/5mw_onshore/' # Path to fst directory files + + elif FAST_ver.lower() == 'openfast': + fast = InputReader_OpenFAST(FAST_ver=FAST_ver) + fast.FAST_InputFile = '5MW_OC3Spar_DLL_WTurb_WavesIrr.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/openfast-dev/r-test/glue-codes/openfast/5MW_OC3Spar_DLL_WTurb_WavesIrr' # Path to fst directory files + + fast.execute() + diff --git a/ofTools/fast_io/FAST_vars.py b/ofTools/fast_io/FAST_vars.py new file mode 100644 index 000000000..c6370d780 --- /dev/null +++ b/ofTools/fast_io/FAST_vars.py @@ -0,0 +1,1332 @@ +from numpy import zeros, array +import numpy as np +from ofTools.fast_io.FAST_vars_out import FstOutput, Fst7Output + +# This variable tree contains all parameters required to create a FAST model +# for FAST versions 7 and 8. + + +# .fst Simulation Control +Fst = {} +Fst['Echo'] = False +Fst['AbortLevel'] = '' +Fst['TMax'] = 0.0 +Fst['DT'] = 0.0 +Fst['InterpOrder'] = 0 +Fst['NumCrctn'] = 0 +Fst['DT_UJac'] = 0.0 +Fst['UJacSclFact'] = 0.0 + +# Feature Switches and Flags +Fst['CompElast'] = 0 +Fst['CompInflow'] = 0 +Fst['CompAero'] = 0 +Fst['CompServo'] = 0 +Fst['CompHydro'] = 0 +Fst['CompSub'] = 0 +Fst['CompMooring'] = 0 +Fst['CompIce'] = 0 +Fst['CompNoise'] = 0 #FAST7 only + +# Input Files +Fst['EDFile'] = '' +Fst['BDBldFile1'] = '' +Fst['BDBldFile2'] = '' +Fst['BDBldFile3'] = '' +Fst['InflowFile'] = '' +Fst['AeroFile'] = '' +Fst['ServoFile'] = '' +Fst['HydroFile'] = '' +Fst['SubFile'] = '' +Fst['MooringFile'] = '' +Fst['IceFile'] = '' + +# FAST Output Parameters +Fst['SumPrint'] = False +Fst['SttsTime'] = 0.0 +Fst['ChkptTime'] = 0.0 +Fst['DT_Out'] = 0.0 +Fst['TStart'] = 0.0 +Fst['OutFileFmt'] = 0 +Fst['TabDelim'] = False +Fst['OutFmt'] = '' + +# Fst +Fst['Linearize'] = False +Fst['NLinTimes'] = 2 +Fst['LinTimes'] = (30, 60) +Fst['LinInputs'] = 1 +Fst['LinOutputs'] = 1 +Fst['LinOutJac'] = False +Fst['LinOutMod'] = False + +# Fst +Fst['WrVTK'] = 0 +Fst['VTK_type'] = 0 +Fst['VTK_fields'] = False +Fst['VTK_fps'] = 0 + +# ElastoDyn Simulation Control +ElastoDyn = {} +ElastoDyn['Echo'] = False +ElastoDyn['Method'] = 0 +ElastoDyn['DT'] = 0.0 + +# Environmental Condition +ElastoDyn['Gravity'] = 0.0 + +# Degrees of Freedom +ElastoDyn['FlapElastoDyn1'] = False +ElastoDyn['FlapElastoDyn2'] = False +ElastoDyn['EdgeElastoDyn'] = False +ElastoDyn['TeetElastoDyn'] = False +ElastoDyn['DrTrElastoDyn'] = False +ElastoDyn['GenElastoDyn'] = False +ElastoDyn['YawElastoDyn'] = False +ElastoDyn['TwFAElastoDyn1'] = False +ElastoDyn['TwFAElastoDyn2'] = False +ElastoDyn['TwSSElastoDyn1'] = False +ElastoDyn['TwSSElastoDyn2'] = False +ElastoDyn['PtfmSgElastoDyn'] = False +ElastoDyn['PtfmSwElastoDyn'] = False +ElastoDyn['PtfmHvElastoDyn'] = False +ElastoDyn['PtfmRElastoDyn'] = False +ElastoDyn['PtfmPElastoDyn'] = False +ElastoDyn['PtfmYElastoDyn'] = False + +# Initial Conditions +ElastoDyn['OoPDefl'] = 0.0 +ElastoDyn['IPDefl'] = 0.0 +ElastoDyn['BlPitch1'] = 0.0 +ElastoDyn['BlPitch2'] = 0.0 +ElastoDyn['BlPitch3'] = 0.0 +ElastoDyn['TeetDefl'] = 0.0 +ElastoDyn['Azimuth'] = 0.0 +ElastoDyn['RotSpeed'] = 0.0 +ElastoDyn['NacYaw'] = 0.0 +ElastoDyn['TTDspFA'] = 0.0 +ElastoDyn['TTDspSS'] = 0.0 +ElastoDyn['PtfmSurge'] = 0.0 +ElastoDyn['PtfmSway'] = 0.0 +ElastoDyn['PtfmHeave'] = 0.0 +ElastoDyn['PtfmRoll'] = 0.0 +ElastoDyn['PtfmPitch'] = 0.0 +ElastoDyn['PtfmYaw'] = 0.0 + +# Turbine Configuration +ElastoDyn['NumBl'] = 0 +ElastoDyn['TipRad'] = 0.0 +ElastoDyn['HubRad'] = 0.0 +ElastoDyn['PreCone(1)'] = 0.0 +ElastoDyn['PreCone(2)'] = 0.0 +ElastoDyn['PreCone(3)'] = 0.0 +ElastoDyn['HubCM'] = 0.0 +ElastoDyn['UndSling'] = 0.0 +ElastoDyn['Delta3'] = 0.0 +ElastoDyn['AzimB1Up'] = 0.0 +ElastoDyn['OverHang'] = 0.0 +ElastoDyn['ShftGagL'] = 0.0 +ElastoDyn['ShftTilt'] = 0.0 +ElastoDyn['NacCMxn'] = 0.0 +ElastoDyn['NacCMyn'] = 0.0 +ElastoDyn['NacCMzn'] = 0.0 +ElastoDyn['NcIMUxn'] = 0.0 +ElastoDyn['NcIMUyn'] = 0.0 +ElastoDyn['NcIMUzn'] = 0.0 +ElastoDyn['Twr2Shft'] = 0.0 +ElastoDyn['TowerHt'] = 0.0 +ElastoDyn['TowerBsHt'] = 0.0 +ElastoDyn['PtfmCMxt'] = 0.0 +ElastoDyn['PtfmCMyt'] = 0.0 +ElastoDyn['PtfmCMzt'] = 0.0 +ElastoDyn['PtfmRefzt'] = 0.0 + +# Mass and Inertia +ElastoDyn['TipMass(1)'] = 0.0 +ElastoDyn['TipMass(2)'] = 0.0 +ElastoDyn['TipMass(3)'] = 0.0 +ElastoDyn['HubMass'] = 0.0 +ElastoDyn['HubIner'] = 0.0 +ElastoDyn['GenIner'] = 0.0 +ElastoDyn['NacMass'] = 0.0 +ElastoDyn['NacYIner'] = 0.0 +ElastoDyn['YawBrMass'] = 0.0 +ElastoDyn['PtfmMass'] = 0.0 +ElastoDyn['PtfmRIner'] = 0.0 +ElastoDyn['PtfmPIner'] = 0.0 +ElastoDyn['PtfmYIner'] = 0.0 + +# ED Blade (Structure) +ElastoDyn['BldNodes'] = 0 +ElastoDyn['BldFile1'] = '' +ElastoDyn['BldFile2'] = '' +ElastoDyn['BldFile3'] = '' + +# Including the blade files and properties in the same object, +# as is done here, implies that the properties are done for all +# blades (assumed for now) + +# General Model Inputs +ElastoDynBlade = {} +ElastoDynBlade['NBlInpSt'] = 0 #Number of blade input stations (-) +ElastoDynBlade['BldFlDmp1'] = 0.0 #Blade flap mode #1 structural damping in percent of critical (%) +ElastoDynBlade['BldFlDmp2'] = 0.0 #Blade flap mode #2 structural damping in percent of critical (%) +ElastoDynBlade['BldEdDmp1'] = 0.0 #Blade edge mode #1 structural damping in percent of critical (%) +ElastoDynBlade['FlStTunr1'] = 0.0 #Blade flapwise modal stiffness tuner, 1st mode (-) +ElastoDynBlade['FlStTunr2'] = 0.0 #Blade flapwise modal stiffness tuner, 2nd mode (-) +ElastoDynBlade['AdjBlMs'] = 0.0 #Factor to adjust blade mass density (-) +ElastoDynBlade['AdjFlSt'] = 0.0 #Factor to adjust blade flap stiffness (-) +ElastoDynBlade['AdjEdSt'] = 0.0 #Factor to adjust blade edge stiffness (-) + +# Distributed Blade Properties +ElastoDynBlade['BlFract'] = zeros([1]) +ElastoDynBlade['AeroCent'] = zeros([1]) +ElastoDynBlade['PitchAxis'] = zeros([1]) +ElastoDynBlade['StrcTwst'] = zeros([1]) +ElastoDynBlade['BMassDen'] = zeros([1]) +ElastoDynBlade['FlpStff'] = zeros([1]) +ElastoDynBlade['EdgStff'] = zeros([1]) +ElastoDynBlade['GJStff'] = zeros([1]) +ElastoDynBlade['EAStff'] = zeros([1]) +ElastoDynBlade['Alpha'] = zeros([1]) +ElastoDynBlade['FlpIner'] = zeros([1]) +ElastoDynBlade['EdgIner'] = zeros([1]) +ElastoDynBlade['PrecrvRef'] = zeros([1]) +ElastoDynBlade['PreswpRef'] = zeros([1]) #[AH] Added during openmdao1 update +ElastoDynBlade['FlpcgOf'] = zeros([1]) +ElastoDynBlade['Edgcgof'] = zeros([1]) +ElastoDynBlade['FlpEAOf'] = zeros([1]) +ElastoDynBlade['EdgEAOf'] = zeros([1]) + +# Blade Mode Shapes +ElastoDynBlade['BldFl1Sh'] = zeros([1]) +ElastoDynBlade['BldFl2Sh'] = zeros([1]) +ElastoDynBlade['BldEdgSh'] = zeros([1]) + +# Rotor-Teeter +ElastoDyn['TeetMod'] = 0 +ElastoDyn['TeetDmpP'] = 0.0 +ElastoDyn['TeetDmp'] = 0.0 +ElastoDyn['TeetCDmp'] = 0.0 +ElastoDyn['TeetSStP'] = 0.0 +ElastoDyn['TeetHStP'] = 0.0 +ElastoDyn['TeetSSSp'] = 0.0 +ElastoDyn['TeetHSSp'] = 0.0 + +ElastoDyn['GBoxEff'] = 0.0 +ElastoDyn['GBRatio'] = 0.0 +ElastoDyn['DTTorSpr'] = 0.0 +ElastoDyn['DTTorDmp'] = 0.0 + +ElastoDyn['ElastoDyn'] = False +ElastoDyn['FurlFile'] = '' + +ElastoDyn['TwrNodes'] = 0 +ElastoDyn['TwrFile'] = '' + +# General Tower Parameters +ElastoDynTower = {} +ElastoDynTower['NTwInptSt'] = 0 #Number of input stations to specify tower geometry +ElastoDynTower['CalcTMode'] = False #calculate tower mode shapes internally {T: ignore mode shapes from below, F: use mode shapes from below} [CURRENTLY IGNORED] (flag) +ElastoDynTower['TwrFADmp1'] = 0.0 #Tower 1st fore-aft mode structural damping ratio (%) +ElastoDynTower['TwrFADmp2'] = 0.0 #Tower 2nd fore-aft mode structural damping ratio (%) +ElastoDynTower['TwrSSDmp1'] = 0.0 #Tower 1st side-to-side mode structural damping ratio (%) +ElastoDynTower['TwrSSDmp2'] = 0.0 #Tower 2nd side-to-side mode structural damping ratio (%) + +# Tower Adjustment Factors +ElastoDynTower['FAStTunr1'] = 0.0 #Tower fore-aft modal stiffness tuner, 1st mode (-) +ElastoDynTower['FAStTunr2'] = 0.0 #Tower fore-aft modal stiffness tuner, 2nd mode (-) +ElastoDynTower['SSStTunr1'] = 0.0 #Tower side-to-side stiffness tuner, 1st mode (-) +ElastoDynTower['SSStTunr2'] = 0.0 #Tower side-to-side stiffness tuner, 2nd mode (-) +ElastoDynTower['AdjTwMa'] = 0.0 #Factor to adjust tower mass density (-) +ElastoDynTower['AdjFASt'] = 0.0 #Factor to adjust tower fore-aft stiffness (-) +ElastoDynTower['AdjSSSt'] = 0.0 #Factor to adjust tower side-to-side stiffness (-) + +# Distributed Tower Properties +ElastoDynTower['HtFract'] = zeros([1]) +ElastoDynTower['TMassDen'] = zeros([1]) +ElastoDynTower['TwFAStif'] = zeros([1]) +ElastoDynTower['TwSSStif'] = zeros([1]) +ElastoDynTower['TwGJStif'] = zeros([1]) +ElastoDynTower['TwEAStif'] = zeros([1]) +ElastoDynTower['TwFAIner'] = zeros([1]) +ElastoDynTower['TwSSIner'] = zeros([1]) +ElastoDynTower['TwFAcgOf'] = zeros([1]) +ElastoDynTower['TwSScgOf'] = zeros([1]) + +# Tower Mode Shapes +ElastoDynTower['TwFAM1Sh'] = zeros([1]) #Tower Fore-Aft Mode 1 Shape Coefficients x^2, x^3, x^4, x^5, x^6 +ElastoDynTower['TwFAM2Sh'] = zeros([1]) #Tower Fore-Aft Mode 2 Shape Coefficients x^2, x^3, x^4, x^5, x^6 +ElastoDynTower['TwSSM1Sh'] = zeros([1]) #Tower Side-to-Side Mode 1 Shape Coefficients x^2, x^3, x^4, x^5, x^6 +ElastoDynTower['TwSSM2Sh'] = zeros([1]) #Tower Side-to-Side Mode 2 Shape Coefficients x^2, x^3, x^4, x^5, x^6 + +ElastoDyn = {} +ElastoDyn['SumPrint'] = False +ElastoDyn['OutFile'] = 0 +ElastoDyn['TabDelim'] = False +ElastoDyn['OutFmt'] = '' +ElastoDyn['TStart'] = 0.0 +ElastoDyn['DecFact'] = 0.0 +ElastoDyn['NTwGages'] = 0 +ElastoDyn['TwrGagNd'] = [] +ElastoDyn['NBlGages'] = 0 +ElastoDyn['BldGagNd'] = [] + +# Inflow Wind General Parameters +InflowWind = {} +InflowWind['Echo'] = False +InflowWind['WindType'] = 0 +InflowWind['PropagationDir'] = 0.0 +InflowWind['NWindVel'] = 0 +InflowWind['WindVxiList'] = 0.0 +InflowWind['WindVyiList'] = 0.0 +InflowWind['WindVziList'] = 0.0 + +# Parameters for Steady Wind Conditions [used only for WindType = 1] +InflowWind['HWindSpeed'] = 0.0 +InflowWind['RefHt'] = 0.0 +InflowWind['PLexp'] = 0.0 + +# Parameters for Uniform wind file [used only for WindType = 2] +InflowWind['Filename'] = '' +InflowWind['RefHt'] = 0.0 +InflowWind['RefLength'] = 0.0 + +# Parameters for Binary TurbSim Full-Field files [used only for WindType = 3] +InflowWind['Filename'] = '' + +# Parameters for Binary Bladed-style Full-Field files [used only for WindType = 4] +InflowWind['FilenameRoot'] = '' +InflowWind['TowerFile'] = False + +# Parameters for HAWC-format binary files [Only used with WindType = 5] +InflowWind['FileName_u'] = '' +InflowWind['FileName_v'] = '' +InflowWind['FileName_w'] = '' +InflowWind['nx'] = 0 +InflowWind['ny'] = 0 +InflowWind['nz'] = 0 +InflowWind['dx'] = 0.0 +InflowWind['dy'] = 0.0 +InflowWind['dz'] = 0.0 +InflowWind['RefHt'] = 0.0 +InflowWind['ScaleMethod'] = 0 +InflowWind['SFx'] = 0.0 +InflowWind['SFy'] = 0.0 +InflowWind['SFz'] = 0.0 +InflowWind['SigmaFx'] = 0.0 +InflowWind['SigmaFy'] = 0.0 +InflowWind['SigmaFz'] = 0.0 +InflowWind['URef'] = 0.0 +InflowWind['WindProfile'] = 0 +InflowWind['PLExp'] = 0.0 +InflowWind['Z0'] = 0.0 + +# Inflow Wind Output Parameters (actual OutList included in master OutList) +InflowWind['SumPrint'] = False + +# # Wnd Wind File Parameters +# WndWind = {} +# WndWind['TimeSteps'] = 0 #number of time steps +# WndWind['Time'] = zeros([1]) #time steps +# WndWind['HorSpd'] = zeros([1]) #horizontal wind speed +# WndWind['WindDir'] = zeros([1]) #wind direction +# WndWind['VerSpd'] = zeros([1]) #vertical wind speed +# WndWind['HorShr'] = zeros([1]) #horizontal shear +# WndWind['VerShr'] = zeros([1]) #vertical power-law shear +# WndWind['LnVShr'] = zeros([1]) #vertical linear shear +# WndWind['GstSpd'] = zeros([1]) #gust speed not sheared by Aerodyn + +# AeroDyn Parameters +AeroDyn14 = {} +# General Model Inputs +AeroDyn14['StallMod'] = "" +AeroDyn14['UseCm'] = "" +AeroDyn14['InfModel'] = "" +AeroDyn14['IndModel'] = "" +AeroDyn14['AToler'] = 0. +AeroDyn14['TLModel'] = "" +AeroDyn14['HLModel'] = "" +AeroDyn14['TwrShad'] = "" +AeroDyn14['TwrPotent'] = False +AeroDyn14['TwrShadow'] = False +AeroDyn14['TwrFile'] = "" +AeroDyn14['CalcTwrAero'] = False +AeroDyn14['AirDens'] = 0.0 +AeroDyn14['KinVisc'] = 0.0 +AeroDyn14['DTAero'] = "default" +AeroDyn14['NumFoil'] = 0 +AeroDyn14['FoilNm'] = [""] + +AeroDynBlade = {} +AeroDynBlade['BldNodes'] = 0 +AeroDynBlade['RNodes'] = np.asarray([]) +AeroDynBlade['AeroTwst'] = np.asarray([]) +AeroDynBlade['DRNodes'] = np.asarray([]) +AeroDynBlade['Chord'] = np.asarray([]) +AeroDynBlade['NFoil'] = np.asarray([]) +AeroDynBlade['PrnElm'] = np.asarray([]) + + +# AeroDyn Blade +AeroDynTower = {} +AeroDynTower['NTwrHt'] = 0 +AeroDynTower['NTwrRe'] = 0 +AeroDynTower['NTwrCD'] = 0 +AeroDynTower['Tower_Wake_Constant'] = 0. +AeroDynTower['TwrHtFr'] = np.asarray([]) +AeroDynTower['TwrWid'] = np.asarray([]) +AeroDynTower['NTwrCDCol'] = np.asarray([]) +AeroDynTower['TwrRe'] = np.asarray([]) +AeroDynTower['TwrCD'] = np.asarray([]) + + +# AeroDyn Airfoil Polar +AeroDynPolar = {} +AeroDynPolar['IDParam'] = 0.0 #Table ID Parameter (Typically Reynolds number) +AeroDynPolar['StallAngle'] = 0.0 #Stall angle (deg) +AeroDynPolar['ZeroCn'] = 0.0 #Zero lift angle of attack (deg) +AeroDynPolar['CnSlope'] = 0.0 #Cn slope for zero lift (dimensionless) +AeroDynPolar['CnPosStall'] = 0.0 #Cn at stall value for positive angle of attack +AeroDynPolar['CnNegStall'] = 0.0 #Cn at stall value for negative angle of attack +AeroDynPolar['alphaCdMin'] = 0.0 #Angle of attack for minimum CD (deg) +AeroDynPolar['CdMin'] = 0.0 #Minimum Cd Value + +AeroDynPolar['alpha'] = zeros([1]) #angle of attack +AeroDynPolar['cl'] = zeros([1]) #coefficient of lift +AeroDynPolar['cd'] = zeros([1]) #coefficient of drag +AeroDynPolar['cm'] = zeros([1]) #coefficient of the pitching moment + +AeroDynPolar['Re'] = 0.0 +AeroDynPolar['Ctrl'] = 0.0 +AeroDynPolar['InclUAdata'] = 0.0 +AeroDynPolar['alpha0'] = 0.0 +AeroDynPolar['alpha1'] = 0.0 +AeroDynPolar['alpha2'] = 0.0 +AeroDynPolar['eta_e'] = 0.0 +AeroDynPolar['C_nalpha'] = 0.0 +AeroDynPolar['T_f0'] = 0.0 +AeroDynPolar['T_V0'] = 0.0 +AeroDynPolar['T_p'] = 0.0 +AeroDynPolar['T_VL'] = 0.0 +AeroDynPolar['b1'] = 0.0 +AeroDynPolar['b2'] = 0.0 +AeroDynPolar['b5'] = 0.0 +AeroDynPolar['A1'] = 0.0 +AeroDynPolar['A2'] = 0.0 +AeroDynPolar['A5'] = 0.0 +AeroDynPolar['S1'] = 0.0 +AeroDynPolar['S2'] = 0.0 +AeroDynPolar['S3'] = 0.0 +AeroDynPolar['S4'] = 0.0 +AeroDynPolar['Cn1'] = 0.0 +AeroDynPolar['Cn2'] = 0.0 +AeroDynPolar['St_sh'] = 0.0 +AeroDynPolar['Cd0'] = 0.0 +AeroDynPolar['Cm0'] = 0.0 +AeroDynPolar['k0'] = 0.0 +AeroDynPolar['k1'] = 0.0 +AeroDynPolar['k2'] = 0.0 +AeroDynPolar['k3'] = 0.0 +AeroDynPolar['k1_hat'] = 0.0 +AeroDynPolar['x_cp_bar'] = 0.0 +AeroDynPolar['UACutout'] = 0.0 +AeroDynPolar['filtCutOff'] = 0.0 + +# AeroDyn15 +AeroDyn15 = {} +AeroDyn15['Echo'] = False +AeroDyn15['DTAero'] = 0.0 +AeroDyn15['WakeMod'] = 0 +AeroDyn15['AFAeroMod'] = 0 +AeroDyn15['TwrPotent'] = 0 +AeroDyn15['TwrShadow'] = False +AeroDyn15['TwrAero'] = False +AeroDyn15['FrozenWake'] = False +AeroDyn15['CavitCheck'] = False + +AeroDyn15['AirDens'] = 0.0 +AeroDyn15['KinVisc'] = 0.0 +AeroDyn15['SpdSound'] = 0.0 +AeroDyn15['Patm'] = 0.0 +AeroDyn15['Pvap'] = 0.0 +AeroDyn15['FluidDepth'] = 0.0 + +AeroDyn15['SkewMod'] = 0 +AeroDyn15['SkewModFactor'] = "default" +AeroDyn15['TipLoss'] = False +AeroDyn15['HubLoss'] = False +AeroDyn15['TanInd'] = False +AeroDyn15['AIDrag'] = False +AeroDyn15['TIDrag'] = False +AeroDyn15['IndToler'] = 0.0 +AeroDyn15['MaxIter'] = 0 + +AeroDyn15['DBEMT_Mod'] = 2 +AeroDyn15['tau1_const'] = 4 + +AeroDyn15['UAMod'] = 0 +AeroDyn15['FLookup'] = False + +AeroDyn15['InCol_Alfa'] = 0 +AeroDyn15['InCol_Cl'] = 0 +AeroDyn15['InCol_Cd'] = 0 +AeroDyn15['InCol_Cm'] = 0 +AeroDyn15['InCol_Cpmin'] = 0 +AeroDyn15['NumAFfiles'] = 0 +AeroDyn15['AFNames'] = [] + +AeroDyn15['UseBlCm'] = False +AeroDyn15['ADBlFile1'] = '' +AeroDyn15['ADBlFile2'] = '' +AeroDyn15['ADBlFile3'] = '' + +AeroDyn15['NumTwrNds'] = 0 +AeroDyn15['TwrElev'] = [] +AeroDyn15['TwrDiam'] = [] +AeroDyn15['TwrCd'] = [] +AeroDyn15['TwrElev'] = [] +AeroDyn15['TwrDiam'] = [] +AeroDyn15['TwrCd'] = [] + +AeroDyn15['SumPrint'] = False +AeroDyn15['NBlOuts'] = 0 +AeroDyn15['BlOutNd'] = [] +AeroDyn15['NTwOuts'] = 0 +AeroDyn15['TwOutNd'] = [] + + +# ServoDyn Simulation Control +ServoDyn = {} +ServoDyn['Echo'] = False +ServoDyn['DT'] = 0.0 + +# Pitch Control +ServoDyn['PCMode'] = 0 +ServoDyn['TPCOn'] = 0.0 +ServoDyn['TPitManS1'] = 0.0 +ServoDyn['TPitManS2'] = 0.0 +ServoDyn['TPitManS3'] = 0.0 +ServoDyn['TPitManE1'] = 0.0 #FAST7 only +ServoDyn['TPitManE2'] = 0.0 #FAST7 only +ServoDyn['TPitManE3'] = 0.0 #FAST7 only +ServoDyn['PitManRat1'] = 0.0 +ServoDyn['PitManRat2'] = 0.0 +ServoDyn['PitManRat3'] = 0.0 +ServoDyn['BlPitchF1'] = 0.0 +ServoDyn['BlPitchF2'] = 0.0 +ServoDyn['BlPitchF3'] = 0.0 +ServoDyn['BlPitch1'] = 0.0 #FAST7 only +ServoDyn['BlPitch2'] = 0.0 #FAST7 only +ServoDyn['BlPitch3'] = 0.0 #FAST7 only + +# Generator and Torque Control +ServoDyn['VSContrl'] = 0 +ServoDyn['GenModel'] = 0 +ServoDyn['GenEff'] = 0.0 +ServoDyn['GenTiStr'] = False +ServoDyn['GenTiStp'] = False +ServoDyn['SpdGenOn'] = 0.0 +ServoDyn['TimGenOn'] = 0.0 +ServoDyn['TimGenOf'] = 0.0 + +# Simple Variable-Speed Torque Control +ServoDyn['VS_RtGnSp'] = 0.0 +ServoDyn['VS_RtTq'] = 0.0 +ServoDyn['VS_Rgn2K'] = 0.0 +ServoDyn['VS_SlPc'] = 0.0 + +# Simple Induction Generator +ServoDyn['SIG_SlPc'] = 0.0 +ServoDyn['SIG_SySp'] = 0.0 +ServoDyn['SIG_RtTq'] = 0.0 +ServoDyn['SIG_PORt'] = 0.0 + +# Thevenin-Equivalent Induction Generator +ServoDyn['TEC_Freq'] = 0.0 +ServoDyn['TEC_NPol'] = 0 +ServoDyn['TEC_SRes'] = 0.0 +ServoDyn['TEC_RRes'] = 0.0 +ServoDyn['TEC_VLL'] = 0.0 +ServoDyn['TEC_SLR'] = 0.0 +ServoDyn['TEC_RLR'] = 0.0 +ServoDyn['TEC_MR'] = 0.0 + +# High-Speed Shaft Brake +ServoDyn['HSSBrMode'] = 0 +ServoDyn['THSSBrDp'] = 0.0 +ServoDyn['HSSBrDT'] = 0.0 +ServoDyn['HSSBrTqF'] = 0.0 + +# Nacelle-Yaw Control +ServoDyn['YCMode'] = 0 +ServoDyn['TYCOn'] = 0.0 +ServoDyn['YawNeut'] = 0.0 +ServoDyn['YawSpr'] = 0.0 +ServoDyn['YawDamp'] = 0.0 +ServoDyn['TYawManS'] = 0.0 +ServoDyn['YawManRat'] = 0.0 +ServoDyn['NacYawF'] = 0.0 + +# Tip Brake (used in FAST7 only) +ServoDyn['TiDynBrk'] = 0.0 +ServoDyn['TTpBrDp1'] = 0.0 +ServoDyn['TTpBrDp2'] = 0.0 +ServoDyn['TTpBrDp3'] = 0.0 +ServoDyn['TBDepISp1'] = 0.0 +ServoDyn['TBDepISp2'] = 0.0 +ServoDyn['TBDepISp3'] = 0.0 +ServoDyn['TBDrConN'] = 0.0 +ServoDyn['TBDrConD'] = 0.0 +ServoDyn['TpBrDT'] = 0.0 + +# Tuned Mass Damper +ServoDyn = {} +ServoDyn['CompNTMD'] = False +ServoDyn['NTMDfile'] = '' +ServoDyn['CompTTMD'] = False +ServoDyn['TTMDfile'] = '' + +# Bladed Interface +ServoDyn['DLL_FileName'] = '' +ServoDyn['DLL_InFile'] = '' +ServoDyn['DLL_ProcName'] = '' +ServoDyn['DLL_DT'] = '' +ServoDyn['DLL_Ramp'] = False +ServoDyn['BPCutoff'] = 0.0 +ServoDyn['NacYaw_North'] = 0.0 +ServoDyn['Ptch_Cntrl'] = 0.0 +ServoDyn['Ptch_SetPnt'] = 0.0 +ServoDyn['Ptch_Min'] = 0.0 +ServoDyn['Ptch_Max'] = 0.0 +ServoDyn['PtchRate_Min'] = 0.0 +ServoDyn['PtchRate_Max'] = 0.0 +ServoDyn['Gain_OM'] = 0.0 +ServoDyn['GenSpd_MinOM'] = 0.0 +ServoDyn['GenSpd_MaxOM'] = 0.0 +ServoDyn['GenSpd_Dem'] = 0.0 +ServoDyn['GenTrq_Dem'] = 0.0 +ServoDyn['GenPwr_Dem'] = 0.0 +ServoDyn['DLL_NumTrq'] = 0.0 +ServoDyn['GenSpd_TLU'] = zeros([0]) +ServoDyn['GenTrq_TLU'] = zeros([0]) + +# ServoDyn Output Params +ServoDyn['SumPrint'] = False +ServoDyn['OutFile'] = 0 +ServoDyn['TabDelim'] = False +ServoDyn['OutFmt'] = '' +ServoDyn['TStart'] = 0.0 + +# Bladed style Interface controller input file, intended for ROSCO https://github.com/NREL/ROSCO_toolbox +DISCON_in = {} +DISCON_in['LoggingLevel'] = 0 +DISCON_in['F_LPFType'] = 0 +DISCON_in['F_NotchType'] = 0 +DISCON_in['IPC_ControlMode'] = 0 +DISCON_in['VS_ControlMode'] = 0 +DISCON_in['PC_ControlMode'] = 0 +DISCON_in['Y_ControlMode'] = 0 +DISCON_in['SS_Mode'] = 0 +DISCON_in['WE_Mode'] = 0 +DISCON_in['PS_Mode'] = 0 + +DISCON_in['F_LPFCornerFreq'] = 0.0 +DISCON_in['F_LPFDamping'] = 0.0 +DISCON_in['F_NotchCornerFreq'] = 0.0 +DISCON_in['F_NotchBetaNumDen'] = [] +DISCON_in['F_SSCornerFreq'] = 0.0 + +DISCON_in['PC_GS_n'] = 0 +DISCON_in['PC_GS_angles'] = [] +DISCON_in['PC_GS_KP'] = [] +DISCON_in['PC_GS_KI'] = [] +DISCON_in['PC_GS_KD'] = [] +DISCON_in['PC_GS_TF'] = [] +DISCON_in['PC_MaxPit'] = 0.0 +DISCON_in['PC_MinPit'] = 0.0 +DISCON_in['PC_MaxRat'] = 0.0 +DISCON_in['PC_MinRat'] = 0.0 +DISCON_in['PC_RefSpd'] = 0.0 +DISCON_in['PC_FinePit'] = 0.0 +DISCON_in['PC_Switch'] = 0.0 +DISCON_in['Z_EnableSine'] = 0 +DISCON_in['Z_PitchAmplitude'] = 0.0 +DISCON_in['Z_PitchFrequency'] = 0.0 + +DISCON_in['IPC_IntSat'] = 0.0 +DISCON_in['IPC_KI'] = [] +DISCON_in['IPC_aziOffset'] = [] +DISCON_in['IPC_CornerFreqAct'] = 0.0 + +DISCON_in['VS_GenEff'] = 0.0 +DISCON_in['VS_ArSatTq'] = 0.0 +DISCON_in['VS_MaxRat'] = 0.0 +DISCON_in['VS_MaxTq'] = 0.0 +DISCON_in['VS_MinTq'] = 0.0 +DISCON_in['VS_MinOMSpd'] = 0.0 +DISCON_in['VS_Rgn2K'] = 0.0 +DISCON_in['VS_RtPwr'] = 0.0 +DISCON_in['VS_RtTq'] = 0.0 +DISCON_in['VS_RefSpd'] = 0.0 +DISCON_in['VS_n'] = 0 +DISCON_in['VS_KP'] = 0.0 +DISCON_in['VS_KI'] = 0.0 +DISCON_in['VS_TSRopt'] = 0.0 + +DISCON_in['SS_VSGain'] = 0.0 +DISCON_in['SS_PCGain'] = 0.0 + +DISCON_in['WE_BladeRadius'] = 0.0 +DISCON_in['WE_CP_n'] = 0 +DISCON_in['WE_CP'] = [] +DISCON_in['WE_Gamma'] = 0.0 +DISCON_in['WE_GearboxRatio'] = 0.0 +DISCON_in['WE_Jtot'] = 0.0 +DISCON_in['WE_RhoAir'] = 0.0 +DISCON_in['PerfFileName'] = "" +DISCON_in['PerfTableSize'] = [] +DISCON_in['WE_FOPoles_N'] = 0 +DISCON_in['WE_FOPoles_v'] = [] +DISCON_in['WE_FOPoles'] = [] + +DISCON_in['Y_ErrThresh'] = 0.0 +DISCON_in['Y_IPC_IntSat'] = 0.0 +DISCON_in['Y_IPC_n'] = 0 +DISCON_in['Y_IPC_KP'] = 0.0 +DISCON_in['Y_IPC_KI'] = 0.0 +DISCON_in['Y_IPC_omegaLP'] = 0.0 +DISCON_in['Y_IPC_zetaLP'] = 0.0 +DISCON_in['Y_MErrSet'] = 0.0 +DISCON_in['Y_omegaLPFast'] = 0.0 +DISCON_in['Y_omegaLPSlow'] = 0.0 +DISCON_in['Y_Rate'] = 0.0 + +DISCON_in['FA_KI'] = 0.0 +DISCON_in['FA_HPF_CornerFreq'] = 0.0 +DISCON_in['FA_IntSat'] = 0.0 +DISCON_in['PS_BldPitchMin_N'] = 0 +DISCON_in['PS_WindSpeeds'] = [] +DISCON_in['PS_BldPitchMin'] = [] + +# HydroDyn Input File +HydroDyn = {} +HydroDyn['Echo'] = False + +# ENVIRONMENTAL CONDITIONS +HydroDyn['WtrDens'] = 0. +HydroDyn['WtrDpth'] = 0. +HydroDyn['MSL2SWL'] = 0. + +# WAVES +HydroDyn['WaveMod'] = 0 +HydroDyn['WaveStMod'] = 0 +HydroDyn['WaveTMax'] = 0. +HydroDyn['WaveDT'] = 0. +HydroDyn['WaveHs'] = 0. +HydroDyn['WaveTp'] = 0. +HydroDyn['WavePkShp'] = "DEFAULT" +HydroDyn['WvLowCOff'] = 0. +HydroDyn['WvHiCOff'] = 0. +HydroDyn['WaveDir'] = 0. +HydroDyn['WaveDirMod'] = 0 +HydroDyn['WaveDirSpread'] = 0. +HydroDyn['WaveNDir'] = 0 +HydroDyn['WaveDirRange'] = 0. +HydroDyn['WaveSeed1'] = 0. +HydroDyn['WaveSeed2'] = 0. +HydroDyn['WaveNDAmp'] = False +HydroDyn['WvKinFile'] = "" +HydroDyn['NWaveElev'] = 0. +HydroDyn['WaveElevxi'] = 0. +HydroDyn['WaveElevyi'] = 0. + +# 2ND-ORDER WAVES +HydroDyn['WvDiffQTF'] = False +HydroDyn['WvSumQTF'] = False +HydroDyn['WvLowCOffD'] = 0. +HydroDyn['WvHiCOffD'] = 0. +HydroDyn['WvLowCOffS'] = 0. +HydroDyn['WvHiCOffS'] = 0. + +# CURRENT +HydroDyn['CurrMod'] = 0 +HydroDyn['CurrSSV0'] = 0. +HydroDyn['CurrSSDir'] = "DEFAULT" +HydroDyn['CurrNSRef'] = 0. +HydroDyn['CurrNSV0'] = 0. +HydroDyn['CurrNSDir'] = 0. +HydroDyn['CurrDIV'] = 0. +HydroDyn['CurrDIDir'] = 0. + +# FLOATING PLATFORM +HydroDyn['PotMod'] = 0 +HydroDyn['PotFile'] = "" +HydroDyn['WAMITULEN'] = 0. +HydroDyn['PtfmVol0'] = 0. +HydroDyn['PtfmCOBxt'] = 0. +HydroDyn['PtfmCOByt'] = 0. +HydroDyn['RdtnMod'] = 0 +HydroDyn['RdtnTMax'] = 0. +HydroDyn['RdtnDT'] = 0. + +# 2ND-ORDER FLOATING PLATFORM FORCES +HydroDyn['MnDrift'] = 0. +HydroDyn['NewmanApp'] = 0. +HydroDyn['DiffQTF'] = 0. +HydroDyn['SumQTF'] = 0. + +# FLOATING PLATFORM FORCE FLAGS +HydroDyn['PtfmSgF'] = True +HydroDyn['PtfmSwF'] = True +HydroDyn['PtfmHvF'] = True +HydroDyn['PtfmRF'] = True +HydroDyn['PtfmPF'] = True +HydroDyn['PtfmYF'] = True + +# PLATFORM ADDITIONAL STIFFNESS AND DAMPING +HydroDyn['AddF0'] = np.zeros((1,6)) +HydroDyn['AddCLin'] = np.zeros((6,6)) +HydroDyn['AddBLin'] = np.zeros((6,6)) +HydroDyn['AddBQuad'] = np.zeros((6,6)) + +# AXIAL COEFFICIENTS +HydroDyn['NAxCoef'] = 0 +HydroDyn['AxCoefID'] = 0 +HydroDyn['AxCd'] = 0. +HydroDyn['AxCa'] = 0. +HydroDyn['AxCp'] = 0. + +# MEMBER JOINTS +HydroDyn['NJoints'] = 0 +HydroDyn['JointID'] = [] +HydroDyn['Jointxi'] = [] +HydroDyn['Jointyi'] = [] +HydroDyn['Jointzi'] = [] +HydroDyn['JointAxID'] = [] +HydroDyn['JointOvrlp'] = [] + +# MEMBER CROSS-SECTION PROPERTIES +HydroDyn['NPropSets'] = 0 +HydroDyn['PropSetID'] = [] +HydroDyn['PropD'] = [] +HydroDyn['PropThck'] = [] + +# SIMPLE HYDRODYNAMIC COEFFICIENTS +HydroDyn['SimplCd'] = 0. +HydroDyn['SimplCdMG'] = 0. +HydroDyn['SimplCa'] = 0. +HydroDyn['SimplCaMG'] = 0. +HydroDyn['SimplCp'] = 0. +HydroDyn['SimplCpMG'] = 0. +HydroDyn['SimplAxCa'] = 0. +HydroDyn['SimplAxCaMG'] = 0. +HydroDyn['SimplAxCp'] = 0. +HydroDyn['SimplAxCpMG'] = 0. + +# DEPTH-BASED HYDRODYNAMIC COEFFICIENTS +HydroDyn['NCoefDpth'] = 0 +HydroDyn['Dpth'] = [] +HydroDyn['DpthCd'] = [] +HydroDyn['DpthCdMG'] = [] +HydroDyn['DpthCa'] = [] +HydroDyn['DpthCaMG'] = [] +HydroDyn['DpthCp'] = [] +HydroDyn['DpthCpMG'] = [] +HydroDyn['DpthAxCa'] = [] +HydroDyn['DpthAxCaMG'] = [] +HydroDyn['DpthAxCp'] = [] +HydroDyn['DpthAxCpMG'] = [] + +# MEMBER-BASED HYDRODYNAMIC COEFFICIENTS +HydroDyn['NCoefMembers'] = 0 +HydroDyn['MemberID_HydC'] = [] +HydroDyn['MemberCd1'] = [] +HydroDyn['MemberCd2'] = [] +HydroDyn['MemberCdMG1'] = [] +HydroDyn['MemberCdMG2'] = [] +HydroDyn['MemberCa1'] = [] +HydroDyn['MemberCa2'] = [] +HydroDyn['MemberCaMG1'] = [] +HydroDyn['MemberCaMG2'] = [] +HydroDyn['MemberCp1'] = [] +HydroDyn['MemberCp2'] = [] +HydroDyn['MemberCpMG1'] = [] +HydroDyn['MemberCpMG2'] = [] +HydroDyn['MemberAxCa1'] = [] +HydroDyn['MemberAxCa2'] = [] +HydroDyn['MemberAxCaMG1'] = [] +HydroDyn['MemberAxCaMG2'] = [] +HydroDyn['MemberAxCp1'] = [] +HydroDyn['MemberAxCp2'] = [] +HydroDyn['MemberAxCpMG1'] = [] +HydroDyn['MemberAxCpMG2'] = [] + +# MEMBERS +HydroDyn['NMembers'] = 0 +HydroDyn['MemberID'] = [] +HydroDyn['MJointID1'] = [] +HydroDyn['MJointID2'] = [] +HydroDyn['MPropSetID1'] = [] +HydroDyn['MPropSetID2'] = [] +HydroDyn['MDivSize'] = [] +HydroDyn['MCoefMod'] = [] +HydroDyn['PropPot'] = [] + +# FILLED MEMBERS +HydroDyn['NFillGroups'] = 0 +HydroDyn['FillNumM'] = [] +HydroDyn['FillMList'] = [] +HydroDyn['FillFSLoc'] = [] +HydroDyn['FillDens'] = [] + +# MARINE GROWTH +HydroDyn['NMGDepths'] = 0 +HydroDyn['MGDpth'] = [] +HydroDyn['MGThck'] = [] +HydroDyn['MGDens'] = [] + +# MEMBER OUTPUT LIST +HydroDyn['NMOutputs'] = 0 +HydroDyn['MemberID_out'] = [] +HydroDyn['NOutLoc'] = [] +HydroDyn['NodeLocs'] = [] + +# JOINT OUTPUT LIST +HydroDyn['NJOutputs'] = 0 +HydroDyn['JOutLst'] = 0 + +# OUTPUT +HydroDyn['HDSum'] = True +HydroDyn['OutAll'] = False +HydroDyn['OutSwtch'] = 2 +HydroDyn['OutFmt'] = "" +HydroDyn['OutSFmt'] = "" + +## SubDyn Input File +SubDyn = {} +# SIMULATION CONTROL +SubDyn['Echo'] = False +SubDyn['SDdeltaT'] = 0. +SubDyn['IntMethod'] = 0 +SubDyn['SttcSolve'] = False +# FEA and CRAIG-BAMPTON PARAMETERS +SubDyn['FEMMod'] = 0 +SubDyn['NDiv'] = 0 +SubDyn['CBMod'] = False +SubDyn['Nmodes'] = 0 +SubDyn['JDampings'] = 0 +# STRUCTURE JOINTS +SubDyn['NJoints'] = 0 +SubDyn['JointID'] = [0] +SubDyn['JointXss'] = [0.] +SubDyn['JointYss'] = [0.] +SubDyn['JointZss'] = [0.] +# BASE REACTION JOINTS +SubDyn['NReact'] = 0 +SubDyn['RJointID'] = [0] +SubDyn['RctTDXss'] = [0] +SubDyn['RctTDYss'] = [0] +SubDyn['RctTDZss'] = [0] +SubDyn['RctRDXss'] = [0] +SubDyn['RctRDYss'] = [0] +SubDyn['RctRDZss'] = [0] +SubDyn['Rct_SoilFile'] = [""] +# INTERFACE JOINTS +SubDyn['NInterf'] = 0 +SubDyn['IJointID'] = [0] +SubDyn['ItfTDXss'] = [0] +SubDyn['ItfTDYss'] = [0] +SubDyn['ItfTDZss'] = [0] +SubDyn['ItfRDXss'] = [0] +SubDyn['ItfRDYss'] = [0] +SubDyn['ItfRDZss'] = [0] +# MEMBERS +SubDyn['NMembers'] = 0 +SubDyn['MemberID'] = [0] +SubDyn['MJointID1'] = [0] +SubDyn['MJointID2'] = [0] +SubDyn['MPropSetID1'] = [0] +SubDyn['MPropSetID2'] = [0] +SubDyn['COSMID'] = [0] +# MEMBER X-SECTION PROPERTY data 1/2 +SubDyn['NPropSets'] = 0 +SubDyn['PropSetID'] = [0.] +SubDyn['YoungE'] = [0.] +SubDyn['ShearG'] = [0.] +SubDyn['MatDens'] = [0.] +SubDyn['XsecD'] = [0.] +SubDyn['XsecT'] = [0.] +# MEMBER X-SECTION PROPERTY data 2/2 +SubDyn['NXPropSets'] = 0 +SubDyn['PropSetID'] = [0] +SubDyn['YoungE'] = [0.] +SubDyn['ShearG'] = [0.] +SubDyn['MatDens'] = [0.] +SubDyn['XsecA'] = [0.] +SubDyn['XsecAsx'] = [0.] +SubDyn['XsecAsy'] = [0.] +SubDyn['XsecJxx'] = [0.] +SubDyn['XsecJyy'] = [0.] +SubDyn['XsecJ0'] = [0.] +# MEMBER COSINE MATRICES +SubDyn['NCOSMs'] = 0 +SubDyn['COSMID'] = 0 +SubDyn['COSM11'] = 0. +SubDyn['COSM12'] = 0. +SubDyn['COSM13'] = 0. +SubDyn['COSM21'] = 0. +SubDyn['COSM22'] = 0. +SubDyn['COSM23'] = 0. +SubDyn['COSM31'] = 0. +SubDyn['COSM32'] = 0. +SubDyn['COSM33'] = 0. +# JOINT ADDITIONAL CONCENTRATED MASSES +SubDyn['NCmass'] = 0 +SubDyn['CMJointID'] = 0 +SubDyn['JMass'] = 0. +SubDyn['JMXX'] = 0. +SubDyn['JMYY'] = 0. +SubDyn['JMZZ'] = 0. +# OUTPUT +SubDyn['SSSum'] = False +SubDyn['OutCOSM'] = False +SubDyn['OutAll'] = False +SubDyn['OutSwtch'] = 0 +SubDyn['TabDelim'] = False +SubDyn['OutDec'] = 0 +SubDyn['OutFmt'] = "" +SubDyn['OutSFmt'] = "" +# MEMBER OUTPUT LIST +SubDyn['NMOutputs'] = 0 +SubDyn['MemberID'] = 0 +SubDyn['NOutCnt'] = 0 +SubDyn['NodeCnt'] = 0 + +## MAP++ Input File +# LINE DICTIONARY +MAP = {} +MAP['LineType'] = "" +MAP['Diam'] = 0. +MAP['MassDenInAir'] = 0. +MAP['EA'] = 0. +MAP['CB'] = 0. +MAP['CIntDamp'] = 0. +MAP['Ca'] = 0. +MAP['Cdn'] = 0. +MAP['Cdt'] = 0. + +# NODE PROPERTIES +MAP['Node'] = [] +MAP['Type'] = [] +MAP['X'] = [] +MAP['Y'] = [] +MAP['Z'] = [] +MAP['M'] = [] +MAP['B'] = [] +MAP['FX'] = [] +MAP['FY'] = [] +MAP['FZ'] = [] + +# LINE PROPERTIES +MAP['Line'] = 0 +MAP['LineType'] = "" +MAP['UnstrLen'] = 0. +MAP['NodeAnch'] = 0 +MAP['NodeFair'] = 0 +MAP['Flags'] = [] + +# SOLVER OPTIONS +MAP['Option'] = [] + +## MoorDyn Input File +MoorDyn = {} +MoorDyn['Echo'] = False +# LINE TYPES +MoorDyn['NTypes'] = 0 +MoorDyn['LineType'] = [] +MoorDyn['Diam'] = [] +MoorDyn['MassDen'] = [] +MoorDyn['EA'] = [] +MoorDyn['BA_zeta'] = [] +MoorDyn['Can'] = [] +MoorDyn['Cat'] = [] +MoorDyn['Cdn'] = [] +MoorDyn['Cdt'] = [] +# CONNECTION PROPERTIES +MoorDyn['NConnects'] = 0 +MoorDyn['Node'] = [] +MoorDyn['Type'] = [] +MoorDyn['X'] = [] +MoorDyn['Y'] = [] +MoorDyn['Z'] = [] +MoorDyn['M'] = [] +MoorDyn['V'] = [] +MoorDyn['FX'] = [] +MoorDyn['FY'] = [] +MoorDyn['FZ'] = [] +MoorDyn['CdA'] = [] +MoorDyn['CA'] = [] +# LINE PROPERTIES +MoorDyn['NConnects'] = 0 +MoorDyn['Line'] = [] +MoorDyn['LineType'] = [] +MoorDyn['UnstrLen'] = [] +MoorDyn['NumSegs'] = [] +MoorDyn['NodeAnch'] = [] +MoorDyn['NodeFair'] = [] +MoorDyn['Flags_Outputs'] = [] +# SOLVER OPTIONS +MoorDyn['dtM'] = 0. +MoorDyn['kbot'] = 0. +MoorDyn['cbot'] = 0. +MoorDyn['dtIC'] = 0. +MoorDyn['TmaxIC'] = 0. +MoorDyn['CdScaleIC'] = 0. +MoorDyn['threshIC'] = 0. + + +# BeamDyn Input File +# SIMULATION CONTROL +BeamDyn = {} +BeamDyn['Echo'] = False +BeamDyn['QuasiStaticInit'] = True +BeamDyn['rhoinf'] = 0 +BeamDyn['quadrature'] = 2 +BeamDyn['refine'] = "DEFAULT" +BeamDyn['n_fact'] = "DEFAULT" +BeamDyn['DTBeam'] = "DEFAULT" +BeamDyn['load_retries'] = "DEFAULT" +BeamDyn['NRMax'] = "DEFAULT" +BeamDyn['stop_tol'] = "DEFAULT" +BeamDyn['tngt_stf_fd'] = "DEFAULT" +BeamDyn['tngt_stf_comp'] = "DEFAULT" +BeamDyn['tngt_stf_pert'] = "DEFAULT" +BeamDyn['tngt_stf_difftol'] = "DEFAULT" +BeamDyn['RotStates'] = True +# GEOMETRY PARAMETER +BeamDyn['member_total'] = 1 +BeamDyn['kp_total'] = 3 +BeamDyn['members'] = [{'kp_xr':[], 'kp_yr':[], 'kp_zr':[], 'initial_twist':[]}] +# MESH PARAMETER +BeamDyn['order_elem'] = 5 +# MATERIAL PARAMETER +BeamDyn['BldFile'] = "" +# PITCH ACTUATOR PARAMETERS +BeamDyn['UsePitchAct'] = False +BeamDyn['PitchJ'] = 0. +BeamDyn['PitchK'] = 0. +BeamDyn['PitchC'] = 0. +# OUTPUTS +BeamDyn['SumPrint'] = True +BeamDyn['OutFmt'] = "ES10.3E2" +BeamDyn['NNodeOuts'] = 0. +BeamDyn['OutNd'] = [] + +## BeamDyn Blade Input File +BeamDynBlade = {} +BeamDynBlade['station_total'] = 1 +BeamDynBlade['damp_type'] = 1 +BeamDynBlade['mu1'] = 0.01 +BeamDynBlade['mu2'] = 0.01 +BeamDynBlade['mu3'] = 0.01 +BeamDynBlade['mu4'] = 0.01 +BeamDynBlade['mu5'] = 0.01 +BeamDynBlade['mu6'] = 0.01 +BeamDynBlade['radial_stations'] = [] +BeamDynBlade['beam_stiff'] = [] +BeamDynBlade['beam_inertia'] = [] + +####################### +Fst7 = {} +Fst7['Echo'] = False +Fst7['ADAMSPrep'] = 0 +Fst7['AnalMode'] = 0 +Fst7['NumBl'] = 0 +Fst7['TMax'] = 0. +Fst7['DT'] = 0. +Fst7['YCMode'] = 0 +Fst7['TYCOn'] = 0. +Fst7['PCMode'] = 0 +Fst7['TPCOn'] = 0. +Fst7['VSContrl'] = 0 +Fst7['VS_RtGnSp'] = 0. +Fst7['VS_RtTq'] = 0. +Fst7['VS_Rgn2K'] = 0. +Fst7['VS_SlPc'] = 0. +Fst7['GenModel'] = 0 +Fst7['GenTiStr'] = False +Fst7['GenTiStp'] = False +Fst7['SpdGenOn'] = 0. +Fst7['TimGenOn'] = 0. +Fst7['TimGenOf'] = 0. +Fst7['HSSBrMode'] = 0 +Fst7['THSSBrDp'] = 0. +Fst7['TiDynBrk'] = 0. +Fst7['TTpBrDp1'] = 0. +Fst7['TTpBrDp2'] = 0. +Fst7['TTpBrDp3'] = 0. +Fst7['TBDepISp1'] = 0. +Fst7['TBDepISp2'] = 0. +Fst7['TBDepISp3'] = 0. +Fst7['TYawManS'] = 0. +Fst7['TYawManE'] = 0. +Fst7['NacYawF'] = 0. +Fst7['TPitManS1'] = 0. +Fst7['TPitManS2'] = 0. +Fst7['TPitManS3'] = 0. +Fst7['TPitManE1'] = 0. +Fst7['TPitManE2'] = 0. +Fst7['TPitManE3'] = 0. +Fst7['BlPitch1'] = 0. +Fst7['BlPitch2'] = 0. +Fst7['BlPitch3'] = 0. +Fst7['BlPitchF1'] = 0. +Fst7['BlPitchF2'] = 0. +Fst7['BlPitchF3'] = 0. +Fst7['Gravity'] = 0. +Fst7['FlapDOF1'] = False +Fst7['FlapDOF2'] = False +Fst7['EdgeDOF'] = False +Fst7['TeetDOF'] = False +Fst7['DrTrDOF'] = False +Fst7['GenDOF'] = False +Fst7['YawDOF'] = False +Fst7['TwFADOF1'] = False +Fst7['TwFADOF2'] = False +Fst7['TwSSDOF1'] = False +Fst7['TwSSDOF2'] = False +Fst7['CompAero'] = False +Fst7['CompNoise'] = False +Fst7['OoPDefl'] = 0. +Fst7['IPDefl'] = 0. +Fst7['TeetDefl'] = 0. +Fst7['Azimuth'] = 0. +Fst7['RotSpeed'] = 0. +Fst7['NacYaw'] = 0. +Fst7['TTDspFA'] = 0. +Fst7['TTDspSS'] = 0. +Fst7['TipRad'] = 0. +Fst7['HubRad'] = 0. +Fst7['PSpnElN'] = 0. +Fst7['UndSling'] = 0 +Fst7['HubCM'] = 0. +Fst7['OverHang'] = 0. +Fst7['NacCMxn'] = 0. +Fst7['NacCMy'] = 0. +Fst7['NacCMz'] = 0. +Fst7['TowerH'] = 0. +Fst7['Twr2Shft'] = 0. +Fst7['TwrRBHt'] = 0. +Fst7['ShftTilt'] = 0. +Fst7['Delta3'] = 0. +Fst7['PreCone(1)'] = 0. +Fst7['PreCone(2)'] = 0. +Fst7['PreCone(3)'] = 0. +Fst7['AzimB1Up'] = 0. +Fst7['YawBrMass'] = 0. +Fst7['NacMas'] = 0. +Fst7['HubMas'] = 0. +Fst7['TipMass(1)'] = 0. +Fst7['TipMass(2)'] = 0. +Fst7['TipMass(3)'] = 0. +Fst7['NacYIner'] = 0. +Fst7['GenIner'] = 0. +Fst7['HubIner'] = 0. +Fst7['GBoxEff'] = 0. +Fst7['GenEff'] = 0. +Fst7['GBRatio'] = 0. +Fst7['GBRevers'] = False +Fst7['HSSBrTqF'] = 0. +Fst7['HSSBrDT'] = 0. +Fst7['DynBrkFi'] = "" +Fst7['DTTorSpr'] = 0. +Fst7['DTTorDmp'] = 0. +Fst7['SIG_SlPc'] = 0. +Fst7['SIG_SySp'] = 0. +Fst7['SIG_RtTq'] = 0. +Fst7['SIG_PORt'] = 0. +Fst7['TEC_Freq'] = 0. +Fst7['TEC_NPol'] = 0 +Fst7['TEC_SRes'] = 0. +Fst7['TEC_RRes'] = 0. +Fst7['TEC_VLL'] = 0. +Fst7['TEC_SLR'] = 0. +Fst7['TEC_RLR'] = 0. +Fst7['TEC_MR'] = 0. +Fst7['PtfmModel'] = 0 +Fst7['PtfmFile'] = "" +Fst7['TwrNodes'] = 0 +Fst7['TwrFile'] = "" +Fst7['YawSpr'] = 0.0 +Fst7['YawDamp'] = 0.0 +Fst7['YawNeut'] = 0.0 +Fst7['Furling'] = False +Fst7['FurlFile'] = "" +Fst7['TeetMod'] = 0 +Fst7['TeetDmpP'] = 0. +Fst7['TeetDmp'] = 0. +Fst7['TeetCDmp'] = 0. +Fst7['TeetSStP'] = 0. +Fst7['TeetHStP'] = 0. +Fst7['TeetSSSp'] = 0. +Fst7['TeetHSSp'] = 0. +Fst7['TBDrConN'] = 0. +Fst7['TBDrConD'] = 0. +Fst7['TpBrDT'] = 0. +Fst7['BldFile1'] = "" +Fst7['BldFile2'] = "" +Fst7['BldFile3'] = "" +Fst7['ADFile'] = "" +Fst7['NoiseFile'] = "" +Fst7['ADAMSFile'] = "" +Fst7['LinFile'] = "" +Fst7['SumPrint'] = False +Fst7['OutFileFmt'] = 1 +Fst7['TabDelim'] = False +Fst7['OutFmt'] = "" +Fst7['TStart'] = 0.0 +Fst7['DecFact'] = 0. +Fst7['SttsTime'] = 0. +Fst7['NcIMUxn'] = 0. +Fst7['NcIMUyn'] = 0. +Fst7['NcIMUzn'] = 0. +Fst7['ShftGagL'] = 0. +Fst7['NTwGages'] = 0 +Fst7['TwrGagNd'] = 0 +Fst7['NBlGages'] = 0 +Fst7['BldGagNd'] = 0 + +# ====== INITIALIZE FAST MODEL BY INITIALIZING ALL VARIABLE TREES ====== + +FstModel = {} + +# Description +FstModel['description'] = '' + +FstModel['Fst'] = Fst +FstModel['ElastoDyn'] = ElastoDyn +FstModel['ElastoDynBlade'] = ElastoDynBlade +FstModel['ElastoDynTower'] = ElastoDynTower +FstModel['InflowWind'] = InflowWind +FstModel['AeroDyn14'] = AeroDyn14 +FstModel['AeroDyn15'] = AeroDyn15 +FstModel['AeroDynBlade'] = AeroDynBlade +FstModel['AeroDynTower'] = AeroDynTower +FstModel['AeroDynPolar'] = AeroDynPolar +FstModel['ServoDyn'] = ServoDyn +FstModel['DISCON_in'] = DISCON_in +FstModel['HydroDyn'] = HydroDyn +FstModel['MoorDyn'] = MoorDyn +FstModel['SubDyn'] = SubDyn +FstModel['MAP'] = MAP +FstModel['BeamDyn'] = BeamDyn +FstModel['BeamDynBlade'] = BeamDynBlade +FstModel['Fst7'] = Fst7 + +# List of Outputs (all input files -- FST, ED, SD) +# TODO: Update FstOutput for a few new outputs in FAST8 +FstModel['outlist'] = FstOutput # +FstModel['outlist7'] = Fst7Output + + diff --git a/ofTools/fast_io/FAST_vars_out.py b/ofTools/fast_io/FAST_vars_out.py new file mode 100644 index 000000000..61ef8dcc1 --- /dev/null +++ b/ofTools/fast_io/FAST_vars_out.py @@ -0,0 +1,10616 @@ +""" Generated from FAST OutListParameters.xlsx files with AeroelasticSE/src/AeroelasticSE/Util/create_output_vars.py """ + + +""" ElastoDyn """ +ElastoDyn = {} + +# Blade 1 Tip Motions +ElastoDyn['TipDxc1'] = False # (m); Blade 1 out-of-plane tip deflection (relative to the undeflected position); Directed along the xc1-axis +ElastoDyn['OoPDefl1'] = False # (m); Blade 1 out-of-plane tip deflection (relative to the undeflected position); Directed along the xc1-axis +ElastoDyn['TipDyc1'] = False # (m); Blade 1 in-plane tip deflection (relative to the undeflected position); Directed along the yc1-axis +ElastoDyn['IPDefl1'] = False # (m); Blade 1 in-plane tip deflection (relative to the undeflected position); Directed along the yc1-axis +ElastoDyn['TipDzc1'] = False # (m); Blade 1 axial tip deflection (relative to the undeflected position); Directed along the zc1- and zb1-axes +ElastoDyn['TipDzb1'] = False # (m); Blade 1 axial tip deflection (relative to the undeflected position); Directed along the zc1- and zb1-axes +ElastoDyn['TipDxb1'] = False # (m); Blade 1 flapwise tip deflection (relative to the undeflected position); Directed along the xb1-axis +ElastoDyn['TipDyb1'] = False # (m); Blade 1 edgewise tip deflection (relative to the undeflected position); Directed along the yb1-axis +ElastoDyn['TipALxb1'] = False # (m/s^2); Blade 1 local flapwise tip acceleration (absolute); Directed along the local xb1-axis +ElastoDyn['TipALyb1'] = False # (m/s^2); Blade 1 local edgewise tip acceleration (absolute); Directed along the local yb1-axis +ElastoDyn['TipALzb1'] = False # (m/s^2); Blade 1 local axial tip acceleration (absolute); Directed along the local zb1-axis +ElastoDyn['TipRDxb1'] = False # (deg); Blade 1 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb1-axis +ElastoDyn['RollDefl1'] = False # (deg); Blade 1 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb1-axis +ElastoDyn['TipRDyb1'] = False # (deg); Blade 1 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb1-axis +ElastoDyn['PtchDefl1'] = False # (deg); Blade 1 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb1-axis +ElastoDyn['TipRDzc1'] = False # (deg); Blade 1 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc1- and zb1-axes +ElastoDyn['TipRDzb1'] = False # (deg); Blade 1 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc1- and zb1-axes +ElastoDyn['TwstDefl1'] = False # (deg); Blade 1 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc1- and zb1-axes +ElastoDyn['TipClrnc1'] = False # (m); Blade 1 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +ElastoDyn['TwrClrnc1'] = False # (m); Blade 1 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +ElastoDyn['Tip2Twr1'] = False # (m); Blade 1 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A + +# Blade 2 Tip Motions +ElastoDyn['TipDxc2'] = False # (m); Blade 2 out-of-plane tip deflection (relative to the pitch axis); Directed along the xc2-axis +ElastoDyn['OoPDefl2'] = False # (m); Blade 2 out-of-plane tip deflection (relative to the pitch axis); Directed along the xc2-axis +ElastoDyn['TipDyc2'] = False # (m); Blade 2 in-plane tip deflection (relative to the pitch axis); Directed along the yc2-axis +ElastoDyn['IPDefl2'] = False # (m); Blade 2 in-plane tip deflection (relative to the pitch axis); Directed along the yc2-axis +ElastoDyn['TipDzc2'] = False # (m); Blade 2 axial tip deflection (relative to the pitch axis); Directed along the zc2- and zb2-axes +ElastoDyn['TipDzb2'] = False # (m); Blade 2 axial tip deflection (relative to the pitch axis); Directed along the zc2- and zb2-axes +ElastoDyn['TipDxb2'] = False # (m); Blade 2 flapwise tip deflection (relative to the pitch axis); Directed along the xb2-axis +ElastoDyn['TipDyb2'] = False # (m); Blade 2 edgewise tip deflection (relative to the pitch axis); Directed along the yb2-axis +ElastoDyn['TipALxb2'] = False # (m/s^2); Blade 2 local flapwise tip acceleration (absolute); Directed along the local xb2-axis +ElastoDyn['TipALyb2'] = False # (m/s^2); Blade 2 local edgewise tip acceleration (absolute); Directed along the local yb2-axis +ElastoDyn['TipALzb2'] = False # (m/s^2); Blade 2 local axial tip acceleration (absolute); Directed along the local zb2-axis +ElastoDyn['TipRDxb2'] = False # (deg); Blade 2 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb2-axis +ElastoDyn['RollDefl2'] = False # (deg); Blade 2 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb2-axis +ElastoDyn['TipRDyb2'] = False # (deg); Blade 2 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb2-axis +ElastoDyn['PtchDefl2'] = False # (deg); Blade 2 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb2-axis +ElastoDyn['TipRDzc2'] = False # (deg); Blade 2 torsional (angular/rotational) tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc2- and zb2-axes +ElastoDyn['TipRDzb2'] = False # (deg); Blade 2 torsional (angular/rotational) tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc2- and zb2-axes +ElastoDyn['TwstDefl2'] = False # (deg); Blade 2 torsional (angular/rotational) tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc2- and zb2-axes +ElastoDyn['TipClrnc2'] = False # (m); Blade 2 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +ElastoDyn['TwrClrnc2'] = False # (m); Blade 2 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +ElastoDyn['Tip2Twr2'] = False # (m); Blade 2 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A + +# Blade 3 Tip Motions +ElastoDyn['TipDxc3'] = False # (m); Blade 3 out-of-plane tip deflection (relative to the pitch axis); Directed along the xc3-axis +ElastoDyn['OoPDefl3'] = False # (m); Blade 3 out-of-plane tip deflection (relative to the pitch axis); Directed along the xc3-axis +ElastoDyn['TipDyc3'] = False # (m); Blade 3 in-plane tip deflection (relative to the pitch axis); Directed along the yc3-axis +ElastoDyn['IPDefl3'] = False # (m); Blade 3 in-plane tip deflection (relative to the pitch axis); Directed along the yc3-axis +ElastoDyn['TipDzc3'] = False # (m); Blade 3 axial tip deflection (relative to the pitch axis); Directed along the zc3- and zb3-axes +ElastoDyn['TipDzb3'] = False # (m); Blade 3 axial tip deflection (relative to the pitch axis); Directed along the zc3- and zb3-axes +ElastoDyn['TipDxb3'] = False # (m); Blade 3 flapwise tip deflection (relative to the pitch axis); Directed along the xb3-axis +ElastoDyn['TipDyb3'] = False # (m); Blade 3 edgewise tip deflection (relative to the pitch axis); Directed along the yb3-axis +ElastoDyn['TipALxb3'] = False # (m/s^2); Blade 3 local flapwise tip acceleration (absolute); Directed along the local xb3-axis +ElastoDyn['TipALyb3'] = False # (m/s^2); Blade 3 local edgewise tip acceleration (absolute); Directed along the local yb3-axis +ElastoDyn['TipALzb3'] = False # (m/s^2); Blade 3 local axial tip acceleration (absolute); Directed along the local zb3-axis +ElastoDyn['TipRDxb3'] = False # (deg); Blade 3 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb3-axis +ElastoDyn['RollDefl3'] = False # (deg); Blade 3 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb3-axis +ElastoDyn['TipRDyb3'] = False # (deg); Blade 3 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb3-axis +ElastoDyn['PtchDefl3'] = False # (deg); Blade 3 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb3-axis +ElastoDyn['TipRDzc3'] = False # (deg); Blade 3 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc3- and zb3-axes +ElastoDyn['TipRDzb3'] = False # (deg); Blade 3 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc3- and zb3-axes +ElastoDyn['TwstDefl3'] = False # (deg); Blade 3 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc3- and zb3-axes +ElastoDyn['TipClrnc3'] = False # (m); Blade 3 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +ElastoDyn['TwrClrnc3'] = False # (m); Blade 3 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +ElastoDyn['Tip2Twr3'] = False # (m); Blade 3 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A + +# Blade 1 Local Span Motions +ElastoDyn['Spn1ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 1; Directed along the local xb1-axis +ElastoDyn['Spn1ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 1; Directed along the local yb1-axis +ElastoDyn['Spn1ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 1; Directed along the local zb1-axis +ElastoDyn['Spn2ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 2; Directed along the local xb1-axis +ElastoDyn['Spn2ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 2; Directed along the local yb1-axis +ElastoDyn['Spn2ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 2; Directed along the local zb1-axis +ElastoDyn['Spn3ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 3; Directed along the local xb1-axis +ElastoDyn['Spn3ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 3; Directed along the local yb1-axis +ElastoDyn['Spn3ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 3; Directed along the local zb1-axis +ElastoDyn['Spn4ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 4; Directed along the local xb1-axis +ElastoDyn['Spn4ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 4; Directed along the local yb1-axis +ElastoDyn['Spn4ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 4; Directed along the local zb1-axis +ElastoDyn['Spn5ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 5; Directed along the local xb1-axis +ElastoDyn['Spn5ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 5; Directed along the local yb1-axis +ElastoDyn['Spn5ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 5; Directed along the local zb1-axis +ElastoDyn['Spn6ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 6; Directed along the local xb1-axis +ElastoDyn['Spn6ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 6; Directed along the local yb1-axis +ElastoDyn['Spn6ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 6; Directed along the local zb1-axis +ElastoDyn['Spn7ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 7; Directed along the local xb1-axis +ElastoDyn['Spn7ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 7; Directed along the local yb1-axis +ElastoDyn['Spn7ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 7; Directed along the local zb1-axis +ElastoDyn['Spn8ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 8; Directed along the local xb1-axis +ElastoDyn['Spn8ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 8; Directed along the local yb1-axis +ElastoDyn['Spn8ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 8; Directed along the local zb1-axis +ElastoDyn['Spn9ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 9; Directed along the local xb1-axis +ElastoDyn['Spn9ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 9; Directed along the local yb1-axis +ElastoDyn['Spn9ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 9; Directed along the local zb1-axis +ElastoDyn['Spn1TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the xb1-axis +ElastoDyn['Spn1TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the yb1-axis +ElastoDyn['Spn1TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 1; Directed along the zb1-axis +ElastoDyn['Spn2TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the xb1-axis +ElastoDyn['Spn2TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the yb1-axis +ElastoDyn['Spn2TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 2; Directed along the zb1-axis +ElastoDyn['Spn3TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the xb1-axis +ElastoDyn['Spn3TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the yb1-axis +ElastoDyn['Spn3TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 3; Directed along the zb1-axis +ElastoDyn['Spn4TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the xb1-axis +ElastoDyn['Spn4TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the yb1-axis +ElastoDyn['Spn4TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 4; Directed along the zb1-axis +ElastoDyn['Spn5TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the xb1-axis +ElastoDyn['Spn5TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the yb1-axis +ElastoDyn['Spn5TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 5; Directed along the zb1-axis +ElastoDyn['Spn6TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the xb1-axis +ElastoDyn['Spn6TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the yb1-axis +ElastoDyn['Spn6TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 6; Directed along the zb1-axis +ElastoDyn['Spn7TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the xb1-axis +ElastoDyn['Spn7TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the yb1-axis +ElastoDyn['Spn7TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 7; Directed along the zb1-axis +ElastoDyn['Spn8TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the xb1-axis +ElastoDyn['Spn8TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the yb1-axis +ElastoDyn['Spn8TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 8; Directed along the zb1-axis +ElastoDyn['Spn9TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the xb1-axis +ElastoDyn['Spn9TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the yb1-axis +ElastoDyn['Spn9TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 9; Directed along the zb1-axis +ElastoDyn['Spn1RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +ElastoDyn['Spn1RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +ElastoDyn['Spn1RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 1. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +ElastoDyn['Spn2RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +ElastoDyn['Spn2RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +ElastoDyn['Spn2RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 2. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +ElastoDyn['Spn3RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +ElastoDyn['Spn3RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +ElastoDyn['Spn3RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 3. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +ElastoDyn['Spn4RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +ElastoDyn['Spn4RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +ElastoDyn['Spn4RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 4. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +ElastoDyn['Spn5RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +ElastoDyn['Spn5RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +ElastoDyn['Spn5RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 5. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +ElastoDyn['Spn6RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +ElastoDyn['Spn6RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +ElastoDyn['Spn6RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 6. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +ElastoDyn['Spn7RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +ElastoDyn['Spn7RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +ElastoDyn['Spn7RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 7. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +ElastoDyn['Spn8RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +ElastoDyn['Spn8RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +ElastoDyn['Spn8RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 8. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +ElastoDyn['Spn9RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +ElastoDyn['Spn9RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +ElastoDyn['Spn9RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 9. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis + +# Blade 2 Local Span Motions +ElastoDyn['Spn1ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 1; Directed along the local xb2-axis +ElastoDyn['Spn1ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 1; Directed along the local yb2-axis +ElastoDyn['Spn1ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 1; Directed along the local zb2-axis +ElastoDyn['Spn2ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 2; Directed along the local xb2-axis +ElastoDyn['Spn2ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 2; Directed along the local yb2-axis +ElastoDyn['Spn2ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 2; Directed along the local zb2-axis +ElastoDyn['Spn3ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 3; Directed along the local xb2-axis +ElastoDyn['Spn3ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 3; Directed along the local yb2-axis +ElastoDyn['Spn3ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 3; Directed along the local zb2-axis +ElastoDyn['Spn4ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 4; Directed along the local xb2-axis +ElastoDyn['Spn4ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 4; Directed along the local yb2-axis +ElastoDyn['Spn4ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 4; Directed along the local zb2-axis +ElastoDyn['Spn5ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 5; Directed along the local xb2-axis +ElastoDyn['Spn5ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 5; Directed along the local yb2-axis +ElastoDyn['Spn5ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 5; Directed along the local zb2-axis +ElastoDyn['Spn6ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 6; Directed along the local xb2-axis +ElastoDyn['Spn6ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 6; Directed along the local yb2-axis +ElastoDyn['Spn6ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 6; Directed along the local zb2-axis +ElastoDyn['Spn7ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 7; Directed along the local xb2-axis +ElastoDyn['Spn7ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 7; Directed along the local yb2-axis +ElastoDyn['Spn7ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 7; Directed along the local zb2-axis +ElastoDyn['Spn8ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 8; Directed along the local xb2-axis +ElastoDyn['Spn8ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 8; Directed along the local yb2-axis +ElastoDyn['Spn8ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 8; Directed along the local zb2-axis +ElastoDyn['Spn9ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 9; Directed along the local xb2-axis +ElastoDyn['Spn9ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 9; Directed along the local yb2-axis +ElastoDyn['Spn9ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 9; Directed along the local zb2-axis +ElastoDyn['Spn1TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the xb2-axis +ElastoDyn['Spn1TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the yb2-axis +ElastoDyn['Spn1TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 1; Directed along the zb2-axis +ElastoDyn['Spn2TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the xb2-axis +ElastoDyn['Spn2TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the yb2-axis +ElastoDyn['Spn2TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 2; Directed along the zb2-axis +ElastoDyn['Spn3TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the xb2-axis +ElastoDyn['Spn3TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the yb2-axis +ElastoDyn['Spn3TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 3; Directed along the zb2-axis +ElastoDyn['Spn4TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the xb2-axis +ElastoDyn['Spn4TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the yb2-axis +ElastoDyn['Spn4TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 4; Directed along the zb2-axis +ElastoDyn['Spn5TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the xb2-axis +ElastoDyn['Spn5TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the yb2-axis +ElastoDyn['Spn5TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 5; Directed along the zb2-axis +ElastoDyn['Spn6TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the xb2-axis +ElastoDyn['Spn6TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the yb2-axis +ElastoDyn['Spn6TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 6; Directed along the zb2-axis +ElastoDyn['Spn7TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the xb2-axis +ElastoDyn['Spn7TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the yb2-axis +ElastoDyn['Spn7TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 7; Directed along the zb2-axis +ElastoDyn['Spn8TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the xb2-axis +ElastoDyn['Spn8TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the yb2-axis +ElastoDyn['Spn8TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 8; Directed along the zb2-axis +ElastoDyn['Spn9TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the xb2-axis +ElastoDyn['Spn9TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the yb2-axis +ElastoDyn['Spn9TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 9; Directed along the zb2-axis +ElastoDyn['Spn1RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +ElastoDyn['Spn1RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +ElastoDyn['Spn1RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 1. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +ElastoDyn['Spn2RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +ElastoDyn['Spn2RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +ElastoDyn['Spn2RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 2. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +ElastoDyn['Spn3RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +ElastoDyn['Spn3RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +ElastoDyn['Spn3RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 3. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +ElastoDyn['Spn4RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +ElastoDyn['Spn4RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +ElastoDyn['Spn4RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 4. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +ElastoDyn['Spn5RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +ElastoDyn['Spn5RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +ElastoDyn['Spn5RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 5. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +ElastoDyn['Spn6RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +ElastoDyn['Spn6RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +ElastoDyn['Spn6RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 6. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +ElastoDyn['Spn7RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +ElastoDyn['Spn7RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +ElastoDyn['Spn7RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 7. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +ElastoDyn['Spn8RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +ElastoDyn['Spn8RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +ElastoDyn['Spn8RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 8. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +ElastoDyn['Spn9RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +ElastoDyn['Spn9RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +ElastoDyn['Spn9RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 9. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis + +# Blade 3 Local Span Motions +ElastoDyn['Spn1ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 1; Directed along the local xb3-axis +ElastoDyn['Spn1ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 1; Directed along the local yb3-axis +ElastoDyn['Spn1ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 1; Directed along the local zb3-axis +ElastoDyn['Spn2ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 2; Directed along the local xb3-axis +ElastoDyn['Spn2ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 2; Directed along the local yb3-axis +ElastoDyn['Spn2ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 2; Directed along the local zb3-axis +ElastoDyn['Spn3ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 3; Directed along the local xb3-axis +ElastoDyn['Spn3ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 3; Directed along the local yb3-axis +ElastoDyn['Spn3ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 3; Directed along the local zb3-axis +ElastoDyn['Spn4ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 4; Directed along the local xb3-axis +ElastoDyn['Spn4ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 4; Directed along the local yb3-axis +ElastoDyn['Spn4ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 4; Directed along the local zb3-axis +ElastoDyn['Spn5ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 5; Directed along the local xb3-axis +ElastoDyn['Spn5ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 5; Directed along the local yb3-axis +ElastoDyn['Spn5ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 5; Directed along the local zb3-axis +ElastoDyn['Spn6ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 6; Directed along the local xb3-axis +ElastoDyn['Spn6ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 6; Directed along the local yb3-axis +ElastoDyn['Spn6ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 6; Directed along the local zb3-axis +ElastoDyn['Spn7ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 7; Directed along the local xb3-axis +ElastoDyn['Spn7ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 7; Directed along the local yb3-axis +ElastoDyn['Spn7ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 7; Directed along the local zb3-axis +ElastoDyn['Spn8ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 8; Directed along the local xb3-axis +ElastoDyn['Spn8ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 8; Directed along the local yb3-axis +ElastoDyn['Spn8ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 8; Directed along the local zb3-axis +ElastoDyn['Spn9ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 9; Directed along the local xb3-axis +ElastoDyn['Spn9ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 9; Directed along the local yb3-axis +ElastoDyn['Spn9ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 9; Directed along the local zb3-axis +ElastoDyn['Spn1TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the xb3-axis +ElastoDyn['Spn1TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the yb3-axis +ElastoDyn['Spn1TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 1; Directed along the zb3-axis +ElastoDyn['Spn2TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the xb3-axis +ElastoDyn['Spn2TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the yb3-axis +ElastoDyn['Spn2TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 2; Directed along the zb3-axis +ElastoDyn['Spn3TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the xb3-axis +ElastoDyn['Spn3TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the yb3-axis +ElastoDyn['Spn3TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 3; Directed along the zb3-axis +ElastoDyn['Spn4TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the xb3-axis +ElastoDyn['Spn4TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the yb3-axis +ElastoDyn['Spn4TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 4; Directed along the zb3-axis +ElastoDyn['Spn5TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the xb3-axis +ElastoDyn['Spn5TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the yb3-axis +ElastoDyn['Spn5TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 5; Directed along the zb3-axis +ElastoDyn['Spn6TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the xb3-axis +ElastoDyn['Spn6TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the yb3-axis +ElastoDyn['Spn6TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 6; Directed along the zb3-axis +ElastoDyn['Spn7TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the xb3-axis +ElastoDyn['Spn7TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the yb3-axis +ElastoDyn['Spn7TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 7; Directed along the zb3-axis +ElastoDyn['Spn8TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the xb3-axis +ElastoDyn['Spn8TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the yb3-axis +ElastoDyn['Spn8TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 8; Directed along the zb3-axis +ElastoDyn['Spn9TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the xb3-axis +ElastoDyn['Spn9TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the yb3-axis +ElastoDyn['Spn9TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 9; Directed along the zb3-axis +ElastoDyn['Spn1RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +ElastoDyn['Spn1RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +ElastoDyn['Spn1RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 1. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +ElastoDyn['Spn2RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +ElastoDyn['Spn2RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +ElastoDyn['Spn2RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 2. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +ElastoDyn['Spn3RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +ElastoDyn['Spn3RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +ElastoDyn['Spn3RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 3. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +ElastoDyn['Spn4RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +ElastoDyn['Spn4RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +ElastoDyn['Spn4RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 4. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +ElastoDyn['Spn5RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +ElastoDyn['Spn5RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +ElastoDyn['Spn5RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 5. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +ElastoDyn['Spn6RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +ElastoDyn['Spn6RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +ElastoDyn['Spn6RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 6. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +ElastoDyn['Spn7RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +ElastoDyn['Spn7RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +ElastoDyn['Spn7RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 7. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +ElastoDyn['Spn8RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +ElastoDyn['Spn8RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +ElastoDyn['Spn8RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 8. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +ElastoDyn['Spn9RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +ElastoDyn['Spn9RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +ElastoDyn['Spn9RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 9. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis + +# Blade Pitch Motions +ElastoDyn['PtchPMzc1'] = False # (deg); Blade 1 pitch angle (position); Positive towards feather about the minus zc1- and minus zb1-axes +ElastoDyn['PtchPMzb1'] = False # (deg); Blade 1 pitch angle (position); Positive towards feather about the minus zc1- and minus zb1-axes +ElastoDyn['BldPitch1'] = False # (deg); Blade 1 pitch angle (position); Positive towards feather about the minus zc1- and minus zb1-axes +ElastoDyn['BlPitch1'] = False # (deg); Blade 1 pitch angle (position); Positive towards feather about the minus zc1- and minus zb1-axes +ElastoDyn['PtchPMzc2'] = False # (deg); Blade 2 pitch angle (position); Positive towards feather about the minus zc2- and minus zb2-axes +ElastoDyn['PtchPMzb2'] = False # (deg); Blade 2 pitch angle (position); Positive towards feather about the minus zc2- and minus zb2-axes +ElastoDyn['BldPitch2'] = False # (deg); Blade 2 pitch angle (position); Positive towards feather about the minus zc2- and minus zb2-axes +ElastoDyn['BlPitch2'] = False # (deg); Blade 2 pitch angle (position); Positive towards feather about the minus zc2- and minus zb2-axes +ElastoDyn['PtchPMzc3'] = False # (deg); Blade 3 pitch angle (position); Positive towards feather about the minus zc3- and minus zb3-axes +ElastoDyn['PtchPMzb3'] = False # (deg); Blade 3 pitch angle (position); Positive towards feather about the minus zc3- and minus zb3-axes +ElastoDyn['BldPitch3'] = False # (deg); Blade 3 pitch angle (position); Positive towards feather about the minus zc3- and minus zb3-axes +ElastoDyn['BlPitch3'] = False # (deg); Blade 3 pitch angle (position); Positive towards feather about the minus zc3- and minus zb3-axes + +# Teeter Motions +ElastoDyn['TeetPya'] = False # (deg); Rotor teeter angle (position); About the ya-axis +ElastoDyn['RotTeetP'] = False # (deg); Rotor teeter angle (position); About the ya-axis +ElastoDyn['TeetDefl'] = False # (deg); Rotor teeter angle (position); About the ya-axis +ElastoDyn['TeetVya'] = False # (deg/s); Rotor teeter angular velocity; About the ya-axis +ElastoDyn['RotTeetV'] = False # (deg/s); Rotor teeter angular velocity; About the ya-axis +ElastoDyn['TeetAya'] = False # (deg/s^2); Rotor teeter angular acceleration; About the ya-axis +ElastoDyn['RotTeetA'] = False # (deg/s^2); Rotor teeter angular acceleration; About the ya-axis + +# Shaft Motions +ElastoDyn['LSSTipPxa'] = False # (deg); Rotor azimuth angle (position); About the xa- and xs-axes +ElastoDyn['LSSTipPxs'] = False # (deg); Rotor azimuth angle (position); About the xa- and xs-axes +ElastoDyn['LSSTipP'] = False # (deg); Rotor azimuth angle (position); About the xa- and xs-axes +ElastoDyn['Azimuth'] = False # (deg); Rotor azimuth angle (position); About the xa- and xs-axes +ElastoDyn['LSSTipVxa'] = False # (rpm); Rotor azimuth angular speed; About the xa- and xs-axes +ElastoDyn['LSSTipVxs'] = False # (rpm); Rotor azimuth angular speed; About the xa- and xs-axes +ElastoDyn['LSSTipV'] = False # (rpm); Rotor azimuth angular speed; About the xa- and xs-axes +ElastoDyn['RotSpeed'] = False # (rpm); Rotor azimuth angular speed; About the xa- and xs-axes +ElastoDyn['LSSTipAxa'] = False # (deg/s^2); Rotor azimuth angular acceleration; About the xa- and xs-axes +ElastoDyn['LSSTipAxs'] = False # (deg/s^2); Rotor azimuth angular acceleration; About the xa- and xs-axes +ElastoDyn['LSSTipA'] = False # (deg/s^2); Rotor azimuth angular acceleration; About the xa- and xs-axes +ElastoDyn['RotAccel'] = False # (deg/s^2); Rotor azimuth angular acceleration; About the xa- and xs-axes +ElastoDyn['LSSGagPxa'] = False # (deg); Low-speed shaft strain gage azimuth angle (position) (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +ElastoDyn['LSSGagPxs'] = False # (deg); Low-speed shaft strain gage azimuth angle (position) (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +ElastoDyn['LSSGagP'] = False # (deg); Low-speed shaft strain gage azimuth angle (position) (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +ElastoDyn['LSSGagVxa'] = False # (rpm); Low-speed shaft strain gage angular speed (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +ElastoDyn['LSSGagVxs'] = False # (rpm); Low-speed shaft strain gage angular speed (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +ElastoDyn['LSSGagV'] = False # (rpm); Low-speed shaft strain gage angular speed (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +ElastoDyn['LSSGagAxa'] = False # (deg/s^2); Low-speed shaft strain gage angular acceleration (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +ElastoDyn['LSSGagAxs'] = False # (deg/s^2); Low-speed shaft strain gage angular acceleration (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +ElastoDyn['LSSGagA'] = False # (deg/s^2); Low-speed shaft strain gage angular acceleration (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +ElastoDyn['HSShftV'] = False # (rpm); Angular speed of the high-speed shaft and generator; Same sign as LSSGagVxa / LSSGagVxs / LSSGagV +ElastoDyn['GenSpeed'] = False # (rpm); Angular speed of the high-speed shaft and generator; Same sign as LSSGagVxa / LSSGagVxs / LSSGagV +ElastoDyn['HSShftA'] = False # (deg/s^2); Angular acceleration of the high-speed shaft and generator; Same sign as LSSGagAxa / LSSGagAxs / LSSGagA +ElastoDyn['GenAccel'] = False # (deg/s^2); Angular acceleration of the high-speed shaft and generator; Same sign as LSSGagAxa / LSSGagAxs / LSSGagA + +# Nacelle IMU Motions +ElastoDyn['NcIMUTVxs'] = False # (m/s); Nacelle inertial measurement unit translational velocity (absolute); Directed along the xs-axis +ElastoDyn['NcIMUTVys'] = False # (m/s); Nacelle inertial measurement unit translational velocity (absolute); Directed along the ys-axis +ElastoDyn['NcIMUTVzs'] = False # (m/s); Nacelle inertial measurement unit translational velocity (absolute); Directed along the zs-axis +ElastoDyn['NcIMUTAxs'] = False # (m/s^2); Nacelle inertial measurement unit translational acceleration (absolute); Directed along the xs-axis +ElastoDyn['NcIMUTAys'] = False # (m/s^2); Nacelle inertial measurement unit translational acceleration (absolute); Directed along the ys-axis +ElastoDyn['NcIMUTAzs'] = False # (m/s^2); Nacelle inertial measurement unit translational acceleration (absolute); Directed along the zs-axis +ElastoDyn['NcIMURVxs'] = False # (deg/s); Nacelle inertial measurement unit angular (rotational) velocity (absolute); About the xs-axis +ElastoDyn['NcIMURVys'] = False # (deg/s); Nacelle inertial measurement unit angular (rotational) velocity (absolute); About the ys-axis +ElastoDyn['NcIMURVzs'] = False # (deg/s); Nacelle inertial measurement unit angular (rotational) velocity (absolute); About the zs-axis +ElastoDyn['NcIMURAxs'] = False # (deg/s^2); Nacelle inertial measurement unit angular (rotational) acceleration (absolute); About the xs-axis +ElastoDyn['NcIMURAys'] = False # (deg/s^2); Nacelle inertial measurement unit angular (rotational) acceleration (absolute); About the ys-axis +ElastoDyn['NcIMURAzs'] = False # (deg/s^2); Nacelle inertial measurement unit angular (rotational) acceleration (absolute); About the zs-axis + +# Rotor-Furl Motions +ElastoDyn['RotFurlP'] = False # (deg); Rotor-furl angle (position); About the rotor-furl axis +ElastoDyn['RotFurl'] = False # (deg); Rotor-furl angle (position); About the rotor-furl axis +ElastoDyn['RotFurlV'] = False # (deg/s); Rotor-furl angular velocity; About the rotor-furl axis +ElastoDyn['RotFurlA'] = False # (deg/s^2); Rotor-furl angular acceleration; About the rotor-furl axis + +# Tail-Furl Motions +ElastoDyn['TailFurlP'] = False # (deg); Tail-furl angle (position); About the tail-furl axis +ElastoDyn['TailFurl'] = False # (deg); Tail-furl angle (position); About the tail-furl axis +ElastoDyn['TailFurlV'] = False # (deg/s); Tail-furl angular velocity; About the tail-furl axis +ElastoDyn['TailFurlA'] = False # (deg/s^2); Tail-furl angular acceleration; About the tail-furl axis + +# Nacelle Yaw Motions +ElastoDyn['YawPzn'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +ElastoDyn['YawPzp'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +ElastoDyn['NacYawP'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +ElastoDyn['NacYaw'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +ElastoDyn['YawPos'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +ElastoDyn['YawVzn'] = False # (deg/s); Nacelle yaw angular velocity; About the zn- and zp-axes +ElastoDyn['YawVzp'] = False # (deg/s); Nacelle yaw angular velocity; About the zn- and zp-axes +ElastoDyn['NacYawV'] = False # (deg/s); Nacelle yaw angular velocity; About the zn- and zp-axes +ElastoDyn['YawRate'] = False # (deg/s); Nacelle yaw angular velocity; About the zn- and zp-axes +ElastoDyn['YawAzn'] = False # (deg/s^2); Nacelle yaw angular acceleration; About the zn- and zp-axes +ElastoDyn['YawAzp'] = False # (deg/s^2); Nacelle yaw angular acceleration; About the zn- and zp-axes +ElastoDyn['NacYawA'] = False # (deg/s^2); Nacelle yaw angular acceleration; About the zn- and zp-axes +ElastoDyn['YawAccel'] = False # (deg/s^2); Nacelle yaw angular acceleration; About the zn- and zp-axes + +# Tower-Top / Yaw Bearing Motions +ElastoDyn['YawBrTDxp'] = False # (m); Tower-top / yaw bearing fore-aft (translational) deflection (relative to the undeflected position); Directed along the xp-axis +ElastoDyn['YawBrTDyp'] = False # (m); Tower-top / yaw bearing side-to-side (translational) deflection (relative to the undeflected position); Directed along the yp-axis +ElastoDyn['YawBrTDzp'] = False # (m); Tower-top / yaw bearing axial (translational) deflection (relative to the undeflected position); Directed along the zp-axis +ElastoDyn['YawBrTDxt'] = False # (m); Tower-top / yaw bearing fore-aft (translational) deflection (relative to the undeflected position); Directed along the xt-axis +ElastoDyn['TTDspFA'] = False # (m); Tower-top / yaw bearing fore-aft (translational) deflection (relative to the undeflected position); Directed along the xt-axis +ElastoDyn['YawBrTDyt'] = False # (m); Tower-top / yaw bearing side-to-side (translation) deflection (relative to the undeflected position); Directed along the yt-axis +ElastoDyn['TTDspSS'] = False # (m); Tower-top / yaw bearing side-to-side (translation) deflection (relative to the undeflected position); Directed along the yt-axis +ElastoDyn['YawBrTDzt'] = False # (m); Tower-top / yaw bearing axial (translational) deflection (relative to the undeflected position); Directed along the zt-axis +ElastoDyn['TTDspAx'] = False # (m); Tower-top / yaw bearing axial (translational) deflection (relative to the undeflected position); Directed along the zt-axis +ElastoDyn['YawBrTAxp'] = False # (m/s^2); Tower-top / yaw bearing fore-aft (translational) acceleration (absolute); Directed along the xp-axis +ElastoDyn['YawBrTAyp'] = False # (m/s^2); Tower-top / yaw bearing side-to-side (translational) acceleration (absolute); Directed along the yp-axis +ElastoDyn['YawBrTAzp'] = False # (m/s^2); Tower-top / yaw bearing axial (translational) acceleration (absolute); Directed along the zp-axis +ElastoDyn['YawBrRDxt'] = False # (deg); Tower-top / yaw bearing angular (rotational) roll deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the xt-axis +ElastoDyn['TTDspRoll'] = False # (deg); Tower-top / yaw bearing angular (rotational) roll deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the xt-axis +ElastoDyn['YawBrRDyt'] = False # (deg); Tower-top / yaw bearing angular (rotational) pitch deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the yt-axis +ElastoDyn['TTDspPtch'] = False # (deg); Tower-top / yaw bearing angular (rotational) pitch deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the yt-axis +ElastoDyn['YawBrRDzt'] = False # (deg); Tower-top / yaw bearing angular (rotational) torsion deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the zt-axis +ElastoDyn['TTDspTwst'] = False # (deg); Tower-top / yaw bearing angular (rotational) torsion deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the zt-axis +ElastoDyn['YawBrRVxp'] = False # (deg/s); Tower-top / yaw bearing angular (rotational) roll velocity (absolute); About the xp-axis +ElastoDyn['YawBrRVyp'] = False # (deg/s); Tower-top / yaw bearing angular (rotational) pitch velocity (absolute); About the yp-axis +ElastoDyn['YawBrRVzp'] = False # (deg/s); Tower-top / yaw bearing angular (rotational) torsion velocity. This output will always be very close to zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. (absolute); About the zp-axis +ElastoDyn['YawBrRAxp'] = False # (deg/s^2); Tower-top / yaw bearing angular (rotational) roll acceleration (absolute); About the xp-axis +ElastoDyn['YawBrRAyp'] = False # (deg/s^2); Tower-top / yaw bearing angular (rotational) pitch acceleration (absolute); About the yp-axis +ElastoDyn['YawBrRAzp'] = False # (deg/s^2); Tower-top / yaw bearing angular (rotational) torsion acceleration. This output will always be very close to zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. (absolute); About the zp-axis + +# Local Tower Motions +ElastoDyn['TwHt1ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 1 ; Directed along the local xt-axis +ElastoDyn['TwHt1ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 1 ; Directed along the local yt-axis +ElastoDyn['TwHt1ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 1 ; Directed along the local zt-axis +ElastoDyn['TwHt2ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 2; Directed along the local xt-axis +ElastoDyn['TwHt2ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 2; Directed along the local yt-axis +ElastoDyn['TwHt2ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 2; Directed along the local zt-axis +ElastoDyn['TwHt3ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 3; Directed along the local xt-axis +ElastoDyn['TwHt3ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 3; Directed along the local yt-axis +ElastoDyn['TwHt3ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 3; Directed along the local zt-axis +ElastoDyn['TwHt4ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 4; Directed along the local xt-axis +ElastoDyn['TwHt4ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 4; Directed along the local yt-axis +ElastoDyn['TwHt4ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 4; Directed along the local zt-axis +ElastoDyn['TwHt5ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 5; Directed along the local xt-axis +ElastoDyn['TwHt5ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 5; Directed along the local yt-axis +ElastoDyn['TwHt5ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 5; Directed along the local zt-axis +ElastoDyn['TwHt6ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 6; Directed along the local xt-axis +ElastoDyn['TwHt6ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 6; Directed along the local yt-axis +ElastoDyn['TwHt6ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 6; Directed along the local zt-axis +ElastoDyn['TwHt7ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 7; Directed along the local xt-axis +ElastoDyn['TwHt7ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 7; Directed along the local yt-axis +ElastoDyn['TwHt7ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 7; Directed along the local zt-axis +ElastoDyn['TwHt8ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 8; Directed along the local xt-axis +ElastoDyn['TwHt8ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 8; Directed along the local yt-axis +ElastoDyn['TwHt8ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 8; Directed along the local zt-axis +ElastoDyn['TwHt9ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 9; Directed along the local xt-axis +ElastoDyn['TwHt9ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 9; Directed along the local yt-axis +ElastoDyn['TwHt9ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 9; Directed along the local zt-axis +ElastoDyn['TwHt1TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 1; Directed along the local xt-axis +ElastoDyn['TwHt1TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 1; Directed along the local yt-axis +ElastoDyn['TwHt1TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 1; Directed along the local zt-axis +ElastoDyn['TwHt2TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 2; Directed along the local xt-axis +ElastoDyn['TwHt2TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 2; Directed along the local yt-axis +ElastoDyn['TwHt2TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 2; Directed along the local zt-axis +ElastoDyn['TwHt3TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 3; Directed along the local xt-axis +ElastoDyn['TwHt3TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 3; Directed along the local yt-axis +ElastoDyn['TwHt3TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 3; Directed along the local zt-axis +ElastoDyn['TwHt4TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 4; Directed along the local xt-axis +ElastoDyn['TwHt4TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 4; Directed along the local yt-axis +ElastoDyn['TwHt4TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 4; Directed along the local zt-axis +ElastoDyn['TwHt5TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 5; Directed along the local xt-axis +ElastoDyn['TwHt5TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 5; Directed along the local yt-axis +ElastoDyn['TwHt5TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 5; Directed along the local zt-axis +ElastoDyn['TwHt6TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 6; Directed along the local xt-axis +ElastoDyn['TwHt6TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 6; Directed along the local yt-axis +ElastoDyn['TwHt6TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 6; Directed along the local zt-axis +ElastoDyn['TwHt7TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 7; Directed along the local xt-axis +ElastoDyn['TwHt7TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 7; Directed along the local yt-axis +ElastoDyn['TwHt7TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 7; Directed along the local zt-axis +ElastoDyn['TwHt8TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 8; Directed along the local xt-axis +ElastoDyn['TwHt8TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 8; Directed along the local yt-axis +ElastoDyn['TwHt8TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 8; Directed along the local zt-axis +ElastoDyn['TwHt9TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 9; Directed along the local xt-axis +ElastoDyn['TwHt9TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 9; Directed along the local yt-axis +ElastoDyn['TwHt9TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 9; Directed along the local zt-axis +ElastoDyn['TwHt1RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +ElastoDyn['TwHt1RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +ElastoDyn['TwHt1RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 1. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +ElastoDyn['TwHt2RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +ElastoDyn['TwHt2RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +ElastoDyn['TwHt2RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 2. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +ElastoDyn['TwHt3RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +ElastoDyn['TwHt3RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +ElastoDyn['TwHt3RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 3. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +ElastoDyn['TwHt4RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +ElastoDyn['TwHt4RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +ElastoDyn['TwHt4RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 4. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +ElastoDyn['TwHt5RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +ElastoDyn['TwHt5RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +ElastoDyn['TwHt5RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 5. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +ElastoDyn['TwHt6RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +ElastoDyn['TwHt6RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +ElastoDyn['TwHt6RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 6. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +ElastoDyn['TwHt7RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +ElastoDyn['TwHt7RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +ElastoDyn['TwHt7RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 7. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +ElastoDyn['TwHt8RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +ElastoDyn['TwHt8RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +ElastoDyn['TwHt8RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 8. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +ElastoDyn['TwHt9RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +ElastoDyn['TwHt9RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +ElastoDyn['TwHt9RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 9. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +ElastoDyn['TwHt1TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 1; Directed along the local xi-axis +ElastoDyn['TwHt1TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 1; Directed along the local yi-axis +ElastoDyn['TwHt1TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 1; Directed along the local zi-axis +ElastoDyn['TwHt2TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 2; Directed along the local xi-axis +ElastoDyn['TwHt2TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 2; Directed along the local yi-axis +ElastoDyn['TwHt2TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 2; Directed along the local zi-axis +ElastoDyn['TwHt3TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 3; Directed along the local xi-axis +ElastoDyn['TwHt3TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 3; Directed along the local yi-axis +ElastoDyn['TwHt3TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 3; Directed along the local zi-axis +ElastoDyn['TwHt4TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 4; Directed along the local xi-axis +ElastoDyn['TwHt4TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 4; Directed along the local yi-axis +ElastoDyn['TwHt4TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 4; Directed along the local zi-axis +ElastoDyn['TwHt5TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 5; Directed along the local xi-axis +ElastoDyn['TwHt5TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 5; Directed along the local yi-axis +ElastoDyn['TwHt5TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 5; Directed along the local zi-axis +ElastoDyn['TwHt6TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 6; Directed along the local xi-axis +ElastoDyn['TwHt6TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 6; Directed along the local yi-axis +ElastoDyn['TwHt6TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 6; Directed along the local zi-axis +ElastoDyn['TwHt7TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 7; Directed along the local xi-axis +ElastoDyn['TwHt7TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 7; Directed along the local yi-axis +ElastoDyn['TwHt7TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 7; Directed along the local zi-axis +ElastoDyn['TwHt8TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 8; Directed along the local xi-axis +ElastoDyn['TwHt8TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 8; Directed along the local yi-axis +ElastoDyn['TwHt8TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 8; Directed along the local zi-axis +ElastoDyn['TwHt9TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 9; Directed along the local xi-axis +ElastoDyn['TwHt9TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 9; Directed along the local yi-axis +ElastoDyn['TwHt9TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 9; Directed along the local zi-axis +ElastoDyn['TwHt1RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +ElastoDyn['TwHt1RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +ElastoDyn['TwHt1RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +ElastoDyn['TwHt2RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +ElastoDyn['TwHt2RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +ElastoDyn['TwHt2RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +ElastoDyn['TwHt3RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +ElastoDyn['TwHt3RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +ElastoDyn['TwHt3RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +ElastoDyn['TwHt4RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +ElastoDyn['TwHt4RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +ElastoDyn['TwHt4RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +ElastoDyn['TwHt5RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +ElastoDyn['TwHt5RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +ElastoDyn['TwHt5RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +ElastoDyn['TwHt6RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +ElastoDyn['TwHt6RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +ElastoDyn['TwHt6RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +ElastoDyn['TwHt7RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +ElastoDyn['TwHt7RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +ElastoDyn['TwHt7RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +ElastoDyn['TwHt8RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +ElastoDyn['TwHt8RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +ElastoDyn['TwHt8RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +ElastoDyn['TwHt9RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +ElastoDyn['TwHt9RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +ElastoDyn['TwHt9RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis + +# Platform Motions +ElastoDyn['PtfmTDxt'] = False # (m); Platform horizontal surge (translational) displacement; Directed along the xt-axis +ElastoDyn['PtfmTDyt'] = False # (m); Platform horizontal sway (translational) displacement; Directed along the yt-axis +ElastoDyn['PtfmTDzt'] = False # (m); Platform vertical heave (translational) displacement; Directed along the zt-axis +ElastoDyn['PtfmTDxi'] = False # (m); Platform horizontal surge (translational) displacement; Directed along the xi-axis +ElastoDyn['PtfmSurge'] = False # (m); Platform horizontal surge (translational) displacement; Directed along the xi-axis +ElastoDyn['PtfmTDyi'] = False # (m); Platform horizontal sway (translational) displacement; Directed along the yi-axis +ElastoDyn['PtfmSway'] = False # (m); Platform horizontal sway (translational) displacement; Directed along the yi-axis +ElastoDyn['PtfmTDzi'] = False # (m); Platform vertical heave (translational) displacement; Directed along the zi-axis +ElastoDyn['PtfmHeave'] = False # (m); Platform vertical heave (translational) displacement; Directed along the zi-axis +ElastoDyn['PtfmTVxt'] = False # (m/s); Platform horizontal surge (translational) velocity; Directed along the xt-axis +ElastoDyn['PtfmTVyt'] = False # (m/s); Platform horizontal sway (translational) velocity; Directed along the yt-axis +ElastoDyn['PtfmTVzt'] = False # (m/s); Platform vertical heave (translational) velocity; Directed along the zt-axis +ElastoDyn['PtfmTVxi'] = False # (m/s); Platform horizontal surge (translational) velocity; Directed along the xi-axis +ElastoDyn['PtfmTVyi'] = False # (m/s); Platform horizontal sway (translational) velocity; Directed along the yi-axis +ElastoDyn['PtfmTVzi'] = False # (m/s); Platform vertical heave (translational) velocity; Directed along the zi-axis +ElastoDyn['PtfmTAxt'] = False # (m/s^2); Platform horizontal surge (translational) acceleration; Directed along the xt-axis +ElastoDyn['PtfmTAyt'] = False # (m/s^2); Platform horizontal sway (translational) acceleration; Directed along the yt-axis +ElastoDyn['PtfmTAzt'] = False # (m/s^2); Platform vertical heave (translational) acceleration; Directed along the zt-axis +ElastoDyn['PtfmTAxi'] = False # (m/s^2); Platform horizontal surge (translational) acceleration; Directed along the xi-axis +ElastoDyn['PtfmTAyi'] = False # (m/s^2); Platform horizontal sway (translational) acceleration; Directed along the yi-axis +ElastoDyn['PtfmTAzi'] = False # (m/s^2); Platform vertical heave (translational) acceleration; Directed along the zi-axis +ElastoDyn['PtfmRDxi'] = False # (deg); Platform roll tilt angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the xi-axis +ElastoDyn['PtfmRoll'] = False # (deg); Platform roll tilt angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the xi-axis +ElastoDyn['PtfmRDyi'] = False # (deg); Platform pitch tilt angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the yi-axis +ElastoDyn['PtfmPitch'] = False # (deg); Platform pitch tilt angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the yi-axis +ElastoDyn['PtfmRDzi'] = False # (deg); Platform yaw angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the zi-axis +ElastoDyn['PtfmYaw'] = False # (deg); Platform yaw angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the zi-axis +ElastoDyn['PtfmRVxt'] = False # (deg/s); Platform roll tilt angular (rotational) velocity; About the xt-axis +ElastoDyn['PtfmRVyt'] = False # (deg/s); Platform pitch tilt angular (rotational) velocity; About the yt-axis +ElastoDyn['PtfmRVzt'] = False # (deg/s); Platform yaw angular (rotational) velocity; About the zt-axis +ElastoDyn['PtfmRVxi'] = False # (deg/s); Platform roll tilt angular (rotational) velocity; About the xi-axis +ElastoDyn['PtfmRVyi'] = False # (deg/s); Platform pitch tilt angular (rotational) velocity; About the yi-axis +ElastoDyn['PtfmRVzi'] = False # (deg/s); Platform yaw angular (rotational) velocity; About the zi-axis +ElastoDyn['PtfmRAxt'] = False # (deg/s^2); Platform roll tilt angular (rotational) acceleration; About the xt-axis +ElastoDyn['PtfmRAyt'] = False # (deg/s^2); Platform pitch tilt angular (rotational) acceleration; About the yt-axis +ElastoDyn['PtfmRAzt'] = False # (deg/s^2); Platform yaw angular (rotational) acceleration; About the zt-axis +ElastoDyn['PtfmRAxi'] = False # (deg/s^2); Platform roll tilt angular (rotational) acceleration; About the xi-axis +ElastoDyn['PtfmRAyi'] = False # (deg/s^2); Platform pitch tilt angular (rotational) acceleration; About the yi-axis +ElastoDyn['PtfmRAzi'] = False # (deg/s^2); Platform yaw angular (rotational) acceleration; About the zi-axis + +# Blade 1 Root Loads +ElastoDyn['RootFxc1'] = False # (kN); Blade 1 out-of-plane shear force at the blade root; Directed along the xc1-axis +ElastoDyn['RootFyc1'] = False # (kN); Blade 1 in-plane shear force at the blade root; Directed along the yc1-axis +ElastoDyn['RootFzc1'] = False # (kN); Blade 1 axial force at the blade root; Directed along the zc1- and zb1-axes +ElastoDyn['RootFzb1'] = False # (kN); Blade 1 axial force at the blade root; Directed along the zc1- and zb1-axes +ElastoDyn['RootFxb1'] = False # (kN); Blade 1 flapwise shear force at the blade root; Directed along the xb1-axis +ElastoDyn['RootFyb1'] = False # (kN); Blade 1 edgewise shear force at the blade root; Directed along the yb1-axis +ElastoDyn['RootMxc1'] = False # (kN m); Blade 1 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc1-axis +ElastoDyn['RootMIP1'] = False # (kN m); Blade 1 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc1-axis +ElastoDyn['RootMyc1'] = False # (kN m); Blade 1 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc1-axis +ElastoDyn['RootMOoP1'] = False # (kN m); Blade 1 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc1-axis +ElastoDyn['RootMzc1'] = False # (kN m); Blade 1 pitching moment at the blade root; About the zc1- and zb1-axes +ElastoDyn['RootMzb1'] = False # (kN m); Blade 1 pitching moment at the blade root; About the zc1- and zb1-axes +ElastoDyn['RootMxb1'] = False # (kN m); Blade 1 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb1-axis +ElastoDyn['RootMEdg1'] = False # (kN m); Blade 1 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb1-axis +ElastoDyn['RootMyb1'] = False # (kN m); Blade 1 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb1-axis +ElastoDyn['RootMFlp1'] = False # (kN m); Blade 1 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb1-axis + +# Blade 2 Root Loads +ElastoDyn['RootFxc2'] = False # (kN); Blade 2 out-of-plane shear force at the blade root; Directed along the xc2-axis +ElastoDyn['RootFyc2'] = False # (kN); Blade 2 in-plane shear force at the blade root; Directed along the yc2-axis +ElastoDyn['RootFzc2'] = False # (kN); Blade 2 axial force at the blade root; Directed along the zc2- and zb2-axes +ElastoDyn['RootFzb2'] = False # (kN); Blade 2 axial force at the blade root; Directed along the zc2- and zb2-axes +ElastoDyn['RootFxb2'] = False # (kN); Blade 2 flapwise shear force at the blade root; Directed along the xb2-axis +ElastoDyn['RootFyb2'] = False # (kN); Blade 2 edgewise shear force at the blade root; Directed along the yb2-axis +ElastoDyn['RootMxc2'] = False # (kN m); Blade 2 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc2-axis +ElastoDyn['RootMIP2'] = False # (kN m); Blade 2 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc2-axis +ElastoDyn['RootMyc2'] = False # (kN m); Blade 2 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc2-axis +ElastoDyn['RootMOoP2'] = False # (kN m); Blade 2 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc2-axis +ElastoDyn['RootMzc2'] = False # (kN m); Blade 2 pitching moment at the blade root; About the zc2- and zb2-axes +ElastoDyn['RootMzb2'] = False # (kN m); Blade 2 pitching moment at the blade root; About the zc2- and zb2-axes +ElastoDyn['RootMxb2'] = False # (kN m); Blade 2 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb2-axis +ElastoDyn['RootMEdg2'] = False # (kN m); Blade 2 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb2-axis +ElastoDyn['RootMyb2'] = False # (kN m); Blade 2 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb2-axis +ElastoDyn['RootMFlp2'] = False # (kN m); Blade 2 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb2-axis + +# Blade 3 Root Loads +ElastoDyn['RootFxc3'] = False # (kN); Blade 3 out-of-plane shear force at the blade root; Directed along the xc3-axis +ElastoDyn['RootFyc3'] = False # (kN); Blade 3 in-plane shear force at the blade root; Directed along the yc3-axis +ElastoDyn['RootFzc3'] = False # (kN); Blade 3 axial force at the blade root; Directed along the zc3- and zb3-axes +ElastoDyn['RootFzb3'] = False # (kN); Blade 3 axial force at the blade root; Directed along the zc3- and zb3-axes +ElastoDyn['RootFxb3'] = False # (kN); Blade 3 flapwise shear force at the blade root; Directed along the xb3-axis +ElastoDyn['RootFyb3'] = False # (kN); Blade 3 edgewise shear force at the blade root; Directed along the yb3-axis +ElastoDyn['RootMxc3'] = False # (kN m); Blade 3 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc3-axis +ElastoDyn['RootMIP3'] = False # (kN m); Blade 3 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc3-axis +ElastoDyn['RootMyc3'] = False # (kN m); Blade 3 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc3-axis +ElastoDyn['RootMOoP3'] = False # (kN m); Blade 3 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc3-axis +ElastoDyn['RootMzc3'] = False # (kN m); Blade 3 pitching moment at the blade root; About the zc3- and zb3-axes +ElastoDyn['RootMzb3'] = False # (kN m); Blade 3 pitching moment at the blade root; About the zc3- and zb3-axes +ElastoDyn['RootMxb3'] = False # (kN m); Blade 3 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb3-axis +ElastoDyn['RootMEdg3'] = False # (kN m); Blade 3 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb3-axis +ElastoDyn['RootMyb3'] = False # (kN m); Blade 3 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb3-axis +ElastoDyn['RootMFlp3'] = False # (kN m); Blade 3 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb3-axis + +# Blade 1 Local Span Loads +ElastoDyn['Spn1MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 1; About the local xb1-axis +ElastoDyn['Spn1MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 1; About the local yb1-axis +ElastoDyn['Spn1MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 1; About the local zb1-axis +ElastoDyn['Spn2MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 2; About the local xb1-axis +ElastoDyn['Spn2MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 2; About the local yb1-axis +ElastoDyn['Spn2MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 2; About the local zb1-axis +ElastoDyn['Spn3MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 3; About the local xb1-axis +ElastoDyn['Spn3MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 3; About the local yb1-axis +ElastoDyn['Spn3MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 3; About the local zb1-axis +ElastoDyn['Spn4MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 4; About the local xb1-axis +ElastoDyn['Spn4MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 4; About the local yb1-axis +ElastoDyn['Spn4MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 4; About the local zb1-axis +ElastoDyn['Spn5MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 5; About the local xb1-axis +ElastoDyn['Spn5MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 5; About the local yb1-axis +ElastoDyn['Spn5MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 5; About the local zb1-axis +ElastoDyn['Spn6MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 6; About the local xb1-axis +ElastoDyn['Spn6MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 6; About the local yb1-axis +ElastoDyn['Spn6MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 6; About the local zb1-axis +ElastoDyn['Spn7MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 7; About the local xb1-axis +ElastoDyn['Spn7MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 7; About the local yb1-axis +ElastoDyn['Spn7MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 7; About the local zb1-axis +ElastoDyn['Spn8MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 8; About the local xb1-axis +ElastoDyn['Spn8MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 8; About the local yb1-axis +ElastoDyn['Spn8MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 8; About the local zb1-axis +ElastoDyn['Spn9MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 9; About the local xb1-axis +ElastoDyn['Spn9MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 9; About the local yb1-axis +ElastoDyn['Spn9MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 9; About the local zb1-axis +ElastoDyn['Spn1FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 1; Directed along the local xb1-axis +ElastoDyn['Spn1FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 1; Directed along the local yb1-axis +ElastoDyn['Spn1FLzb1'] = False # (kN); Blade 1 local axial force at span station 1; Directed along the local zb1-axis +ElastoDyn['Spn2FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 2; Directed along the local xb1-axis +ElastoDyn['Spn2FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 2; Directed along the local yb1-axis +ElastoDyn['Spn2FLzb1'] = False # (kN); Blade 1 local axial force at span station 2; Directed along the local zb1-axis +ElastoDyn['Spn3FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 3; Directed along the local xb1-axis +ElastoDyn['Spn3FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 3; Directed along the local yb1-axis +ElastoDyn['Spn3FLzb1'] = False # (kN); Blade 1 local axial force at span station 3; Directed along the local zb1-axis +ElastoDyn['Spn4FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 4; Directed along the local xb1-axis +ElastoDyn['Spn4FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 4; Directed along the local yb1-axis +ElastoDyn['Spn4FLzb1'] = False # (kN); Blade 1 local axial force at span station 4; Directed along the local zb1-axis +ElastoDyn['Spn5FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 5; Directed along the local xb1-axis +ElastoDyn['Spn5FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 5; Directed along the local yb1-axis +ElastoDyn['Spn5FLzb1'] = False # (kN); Blade 1 local axial force at span station 5; Directed along the local zb1-axis +ElastoDyn['Spn6FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 6; Directed along the local xb1-axis +ElastoDyn['Spn6FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 6; Directed along the local yb1-axis +ElastoDyn['Spn6FLzb1'] = False # (kN); Blade 1 local axial force at span station 6; Directed along the local zb1-axis +ElastoDyn['Spn7FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 7; Directed along the local xb1-axis +ElastoDyn['Spn7FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 7; Directed along the local yb1-axis +ElastoDyn['Spn7FLzb1'] = False # (kN); Blade 1 local axial force at span station 7; Directed along the local zb1-axis +ElastoDyn['Spn8FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 8; Directed along the local xb1-axis +ElastoDyn['Spn8FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 8; Directed along the local yb1-axis +ElastoDyn['Spn8FLzb1'] = False # (kN); Blade 1 local axial force at span station 8; Directed along the local zb1-axis +ElastoDyn['Spn9FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 9; Directed along the local xb1-axis +ElastoDyn['Spn9FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 9; Directed along the local yb1-axis +ElastoDyn['Spn9FLzb1'] = False # (kN); Blade 1 local axial force at span station 9; Directed along the local zb1-axis + +# Blade 2 Local Span Loads +ElastoDyn['Spn1MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 1; About the local xb2-axis +ElastoDyn['Spn1MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 1; About the local yb2-axis +ElastoDyn['Spn1MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 1; About the local zb2-axis +ElastoDyn['Spn2MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 2; About the local xb2-axis +ElastoDyn['Spn2MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 2; About the local yb2-axis +ElastoDyn['Spn2MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 2; About the local zb2-axis +ElastoDyn['Spn3MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 3; About the local xb2-axis +ElastoDyn['Spn3MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 3; About the local yb2-axis +ElastoDyn['Spn3MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 3; About the local zb2-axis +ElastoDyn['Spn4MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 4; About the local xb2-axis +ElastoDyn['Spn4MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 4; About the local yb2-axis +ElastoDyn['Spn4MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 4; About the local zb2-axis +ElastoDyn['Spn5MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 5; About the local xb2-axis +ElastoDyn['Spn5MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 5; About the local yb2-axis +ElastoDyn['Spn5MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 5; About the local zb2-axis +ElastoDyn['Spn6MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 6; About the local xb2-axis +ElastoDyn['Spn6MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 6; About the local yb2-axis +ElastoDyn['Spn6MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 6; About the local zb2-axis +ElastoDyn['Spn7MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 7; About the local xb2-axis +ElastoDyn['Spn7MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 7; About the local yb2-axis +ElastoDyn['Spn7MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 7; About the local zb2-axis +ElastoDyn['Spn8MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 8; About the local xb2-axis +ElastoDyn['Spn8MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 8; About the local yb2-axis +ElastoDyn['Spn8MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 8; About the local zb2-axis +ElastoDyn['Spn9MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 9; About the local xb2-axis +ElastoDyn['Spn9MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 9; About the local yb2-axis +ElastoDyn['Spn9MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 9; About the local zb2-axis +ElastoDyn['Spn1FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 1; Directed along the local xb2-axis +ElastoDyn['Spn1FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 1; Directed along the local yb2-axis +ElastoDyn['Spn1FLzb2'] = False # (kN); Blade 2 local axial force at span station 1; Directed along the local zb2-axis +ElastoDyn['Spn2FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 2; Directed along the local xb2-axis +ElastoDyn['Spn2FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 2; Directed along the local yb2-axis +ElastoDyn['Spn2FLzb2'] = False # (kN); Blade 2 local axial force at span station 2; Directed along the local zb2-axis +ElastoDyn['Spn3FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 3; Directed along the local xb2-axis +ElastoDyn['Spn3FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 3; Directed along the local yb2-axis +ElastoDyn['Spn3FLzb2'] = False # (kN); Blade 2 local axial force at span station 3; Directed along the local zb2-axis +ElastoDyn['Spn4FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 4; Directed along the local xb2-axis +ElastoDyn['Spn4FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 4; Directed along the local yb2-axis +ElastoDyn['Spn4FLzb2'] = False # (kN); Blade 2 local axial force at span station 4; Directed along the local zb2-axis +ElastoDyn['Spn5FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 5; Directed along the local xb2-axis +ElastoDyn['Spn5FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 5; Directed along the local yb2-axis +ElastoDyn['Spn5FLzb2'] = False # (kN); Blade 2 local axial force at span station 5; Directed along the local zb2-axis +ElastoDyn['Spn6FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 6; Directed along the local xb2-axis +ElastoDyn['Spn6FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 6; Directed along the local yb2-axis +ElastoDyn['Spn6FLzb2'] = False # (kN); Blade 2 local axial force at span station 6; Directed along the local zb2-axis +ElastoDyn['Spn7FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 7; Directed along the local xb2-axis +ElastoDyn['Spn7FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 7; Directed along the local yb2-axis +ElastoDyn['Spn7FLzb2'] = False # (kN); Blade 2 local axial force at span station 7; Directed along the local zb2-axis +ElastoDyn['Spn8FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 8; Directed along the local xb2-axis +ElastoDyn['Spn8FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 8; Directed along the local yb2-axis +ElastoDyn['Spn8FLzb2'] = False # (kN); Blade 2 local axial force at span station 8; Directed along the local zb2-axis +ElastoDyn['Spn9FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 9; Directed along the local xb2-axis +ElastoDyn['Spn9FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 9; Directed along the local yb2-axis +ElastoDyn['Spn9FLzb2'] = False # (kN); Blade 2 local axial force at span station 9; Directed along the local zb2-axis + +# Blade 3 Local Span Loads +ElastoDyn['Spn1MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 1; About the local xb3-axis +ElastoDyn['Spn1MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 1; About the local yb3-axis +ElastoDyn['Spn1MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 1; About the local zb3-axis +ElastoDyn['Spn2MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 2; About the local xb3-axis +ElastoDyn['Spn2MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 2; About the local yb3-axis +ElastoDyn['Spn2MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 2; About the local zb3-axis +ElastoDyn['Spn3MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 3; About the local xb3-axis +ElastoDyn['Spn3MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 3; About the local yb3-axis +ElastoDyn['Spn3MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 3; About the local zb3-axis +ElastoDyn['Spn4MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 4; About the local xb3-axis +ElastoDyn['Spn4MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 4; About the local yb3-axis +ElastoDyn['Spn4MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 4; About the local zb3-axis +ElastoDyn['Spn5MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 5; About the local xb3-axis +ElastoDyn['Spn5MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 5; About the local yb3-axis +ElastoDyn['Spn5MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 5; About the local zb3-axis +ElastoDyn['Spn6MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 6; About the local xb3-axis +ElastoDyn['Spn6MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 6; About the local yb3-axis +ElastoDyn['Spn6MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 6; About the local zb3-axis +ElastoDyn['Spn7MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 7; About the local xb3-axis +ElastoDyn['Spn7MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 7; About the local yb3-axis +ElastoDyn['Spn7MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 7; About the local zb3-axis +ElastoDyn['Spn8MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 8; About the local xb3-axis +ElastoDyn['Spn8MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 8; About the local yb3-axis +ElastoDyn['Spn8MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 8; About the local zb3-axis +ElastoDyn['Spn9MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 9; About the local xb3-axis +ElastoDyn['Spn9MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 9; About the local yb3-axis +ElastoDyn['Spn9MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 9; About the local zb3-axis +ElastoDyn['Spn1FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 1; Directed along the local xb3-axis +ElastoDyn['Spn1FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 1; Directed along the local yb3-axis +ElastoDyn['Spn1FLzb3'] = False # (kN); Blade 3 local axial force at span station 1; Directed along the local zb3-axis +ElastoDyn['Spn2FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 2; Directed along the local xb3-axis +ElastoDyn['Spn2FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 2; Directed along the local yb3-axis +ElastoDyn['Spn2FLzb3'] = False # (kN); Blade 3 local axial force at span station 2; Directed along the local zb3-axis +ElastoDyn['Spn3FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 3; Directed along the local xb3-axis +ElastoDyn['Spn3FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 3; Directed along the local yb3-axis +ElastoDyn['Spn3FLzb3'] = False # (kN); Blade 3 local axial force at span station 3; Directed along the local zb3-axis +ElastoDyn['Spn4FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 4; Directed along the local xb3-axis +ElastoDyn['Spn4FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 4; Directed along the local yb3-axis +ElastoDyn['Spn4FLzb3'] = False # (kN); Blade 3 local axial force at span station 4; Directed along the local zb3-axis +ElastoDyn['Spn5FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 5; Directed along the local xb3-axis +ElastoDyn['Spn5FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 5; Directed along the local yb3-axis +ElastoDyn['Spn5FLzb3'] = False # (kN); Blade 3 local axial force at span station 5; Directed along the local zb3-axis +ElastoDyn['Spn6FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 6; Directed along the local xb3-axis +ElastoDyn['Spn6FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 6; Directed along the local yb3-axis +ElastoDyn['Spn6FLzb3'] = False # (kN); Blade 3 local axial force at span station 6; Directed along the local zb3-axis +ElastoDyn['Spn7FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 7; Directed along the local xb3-axis +ElastoDyn['Spn7FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 7; Directed along the local yb3-axis +ElastoDyn['Spn7FLzb3'] = False # (kN); Blade 3 local axial force at span station 7; Directed along the local zb3-axis +ElastoDyn['Spn8FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 8; Directed along the local xb3-axis +ElastoDyn['Spn8FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 8; Directed along the local yb3-axis +ElastoDyn['Spn8FLzb3'] = False # (kN); Blade 3 local axial force at span station 8; Directed along the local zb3-axis +ElastoDyn['Spn9FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 9; Directed along the local xb3-axis +ElastoDyn['Spn9FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 9; Directed along the local yb3-axis +ElastoDyn['Spn9FLzb3'] = False # (kN); Blade 3 local axial force at span station 9; Directed along the local zb3-axis + +# Hub and Rotor Loads +ElastoDyn['LSShftFxa'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +ElastoDyn['LSShftFxs'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +ElastoDyn['LSSGagFxa'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +ElastoDyn['LSSGagFxs'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +ElastoDyn['RotThrust'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +ElastoDyn['LSShftFya'] = False # (kN); Rotating low-speed shaft shear force (this is constant along the shaft); Directed along the ya-axis +ElastoDyn['LSSGagFya'] = False # (kN); Rotating low-speed shaft shear force (this is constant along the shaft); Directed along the ya-axis +ElastoDyn['LSShftFza'] = False # (kN); Rotating low-speed shaft shear force (this is constant along the shaft); Directed along the za-axis +ElastoDyn['LSSGagFza'] = False # (kN); Rotating low-speed shaft shear force (this is constant along the shaft); Directed along the za-axis +ElastoDyn['LSShftFys'] = False # (kN); Nonrotating low-speed shaft shear force (this is constant along the shaft); Directed along the ys-axis +ElastoDyn['LSSGagFys'] = False # (kN); Nonrotating low-speed shaft shear force (this is constant along the shaft); Directed along the ys-axis +ElastoDyn['LSShftFzs'] = False # (kN); Nonrotating low-speed shaft shear force (this is constant along the shaft); Directed along the zs-axis +ElastoDyn['LSSGagFzs'] = False # (kN); Nonrotating low-speed shaft shear force (this is constant along the shaft); Directed along the zs-axis +ElastoDyn['LSShftMxa'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +ElastoDyn['LSShftMxs'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +ElastoDyn['LSSGagMxa'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +ElastoDyn['LSSGagMxs'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +ElastoDyn['RotTorq'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +ElastoDyn['LSShftTq'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +ElastoDyn['LSSTipMya'] = False # (kN m); Rotating low-speed shaft bending moment at the shaft tip (teeter pin for 2-blader, apex of rotation for 3-blader); About the ya-axis +ElastoDyn['LSSTipMza'] = False # (kN m); Rotating low-speed shaft bending moment at the shaft tip (teeter pin for 2-blader, apex of rotation for 3-blader); About the za-axis +ElastoDyn['LSSTipMys'] = False # (kN m); Nonrotating low-speed shaft bending moment at the shaft tip (teeter pin for 2-blader, apex of rotation for 3-blader); About the ys-axis +ElastoDyn['LSSTipMzs'] = False # (kN m); Nonrotating low-speed shaft bending moment at the shaft tip (teeter pin for 2-blader, apex of rotation for 3-blader); About the zs-axis +ElastoDyn['RotPwr'] = False # (kW); Rotor power (this is equivalent to the low-speed shaft power); N/A +ElastoDyn['LSShftPwr'] = False # (kW); Rotor power (this is equivalent to the low-speed shaft power); N/A + +# Shaft Strain Gage Loads +ElastoDyn['LSSGagMya'] = False # (kN m); Rotating low-speed shaft bending moment at the shaft's strain gage (shaft strain gage located by input ShftGagL); About the ya-axis +ElastoDyn['LSSGagMza'] = False # (kN m); Rotating low-speed shaft bending moment at the shaft's strain gage (shaft strain gage located by input ShftGagL); About the za-axis +ElastoDyn['LSSGagMys'] = False # (kN m); Nonrotating low-speed shaft bending moment at the shaft's strain gage (shaft strain gage located by input ShftGagL); About the ys-axis +ElastoDyn['LSSGagMzs'] = False # (kN m); Nonrotating low-speed shaft bending moment at the shaft's strain gage (shaft strain gage located by input ShftGagL); About the zs-axis + +# High-Speed Shaft Loads +ElastoDyn['HSShftTq'] = False # (kN m); High-speed shaft torque (this is constant along the shaft); Same sign as LSShftTq / RotTorq / LSShftMxa / LSShftMxs / LSSGagMxa / LSSGagMxs +ElastoDyn['HSSBrTq'] = False # (kN m); High-speed shaft brake torque (i.e., the actual moment applied to the high-speed shaft by the brake); Always positive (indicating dissipation of power) +ElastoDyn['HSShftPwr'] = False # (kW); High-speed shaft power; Same sign as HSShftTq + +# Rotor-Furl Bearing Loads +ElastoDyn['RFrlBrM'] = False # (kN m); Rotor-furl bearing moment; About the rotor-furl axis + +# Tail-Furl Bearing Loads +ElastoDyn['TFrlBrM'] = False # (kN m); Tail-furl bearing moment; About the tail-furl axis + +# Tower-Top / Yaw Bearing Loads +ElastoDyn['YawBrFxn'] = False # (kN); Rotating (with nacelle) tower-top / yaw bearing shear force; Directed along the xn-axis +ElastoDyn['YawBrFyn'] = False # (kN); Rotating (with nacelle) tower-top / yaw bearing shear force; Directed along the yn-axis +ElastoDyn['YawBrFzn'] = False # (kN); Tower-top / yaw bearing axial force; Directed along the zn- and zp-axes +ElastoDyn['YawBrFzp'] = False # (kN); Tower-top / yaw bearing axial force; Directed along the zn- and zp-axes +ElastoDyn['YawBrFxp'] = False # (kN); Tower-top / yaw bearing fore-aft (nonrotating) shear force; Directed along the xp-axis +ElastoDyn['YawBrFyp'] = False # (kN); Tower-top / yaw bearing side-to-side (nonrotating) shear force; Directed along the yp-axis +ElastoDyn['YawBrMxn'] = False # (kN m); Rotating (with nacelle) tower-top / yaw bearing roll moment; About the xn-axis +ElastoDyn['YawBrMyn'] = False # (kN m); Rotating (with nacelle) tower-top / yaw bearing pitch moment; About the yn-axis +ElastoDyn['YawBrMzn'] = False # (kN m); Tower-top / yaw bearing yaw moment; About the zn- and zp-axes +ElastoDyn['YawBrMzp'] = False # (kN m); Tower-top / yaw bearing yaw moment; About the zn- and zp-axes +ElastoDyn['YawBrMxp'] = False # (kN m); Nonrotating tower-top / yaw bearing roll moment; About the xp-axis +ElastoDyn['YawBrMyp'] = False # (kN m); Nonrotating tower-top / yaw bearing pitch moment; About the yp-axis + +# Tower Base Loads +ElastoDyn['TwrBsFxt'] = False # (kN); Tower base fore-aft shear force; Directed along the xt-axis +ElastoDyn['TwrBsFyt'] = False # (kN); Tower base side-to-side shear force; Directed along the yt-axis +ElastoDyn['TwrBsFzt'] = False # (kN); Tower base axial force; Directed along the zt-axis +ElastoDyn['TwrBsMxt'] = False # (kN m); Tower base roll (or side-to-side) moment (i.e., the moment caused by side-to-side forces); About the xt-axis +ElastoDyn['TwrBsMyt'] = False # (kN m); Tower base pitching (or fore-aft) moment (i.e., the moment caused by fore-aft forces); About the yt-axis +ElastoDyn['TwrBsMzt'] = False # (kN m); Tower base yaw (or torsional) moment; About the zt-axis + +# Local Tower Loads +ElastoDyn['TwHt1MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 1; About the local xt-axis +ElastoDyn['TwHt1MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 1; About the local yt-axis +ElastoDyn['TwHt1MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 1; About the local zt-axis +ElastoDyn['TwHt2MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 2; About the local xt-axis +ElastoDyn['TwHt2MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 2; About the local yt-axis +ElastoDyn['TwHt2MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 2; About the local zt-axis +ElastoDyn['TwHt3MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 3; About the local xt-axis +ElastoDyn['TwHt3MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 3; About the local yt-axis +ElastoDyn['TwHt3MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 3; About the local zt-axis +ElastoDyn['TwHt4MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 4; About the local xt-axis +ElastoDyn['TwHt4MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 4; About the local yt-axis +ElastoDyn['TwHt4MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 4; About the local zt-axis +ElastoDyn['TwHt5MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 5; About the local xt-axis +ElastoDyn['TwHt5MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 5; About the local yt-axis +ElastoDyn['TwHt5MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 5; About the local zt-axis +ElastoDyn['TwHt6MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 6; About the local xt-axis +ElastoDyn['TwHt6MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 6; About the local yt-axis +ElastoDyn['TwHt6MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 6; About the local zt-axis +ElastoDyn['TwHt7MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 7; About the local xt-axis +ElastoDyn['TwHt7MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 7; About the local yt-axis +ElastoDyn['TwHt7MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 7; About the local zt-axis +ElastoDyn['TwHt8MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 8; About the local xt-axis +ElastoDyn['TwHt8MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 8; About the local yt-axis +ElastoDyn['TwHt8MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 8; About the local zt-axis +ElastoDyn['TwHt9MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 9; About the local xt-axis +ElastoDyn['TwHt9MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 9; About the local yt-axis +ElastoDyn['TwHt9MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 9; About the local zt-axis +ElastoDyn['TwHt1FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 1; About the local xt-axis +ElastoDyn['TwHt1FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 1; About the local yt-axis +ElastoDyn['TwHt1FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 1; About the local zt-axis +ElastoDyn['TwHt2FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 2; About the local xt-axis +ElastoDyn['TwHt2FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 2; About the local yt-axis +ElastoDyn['TwHt2FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 2; About the local zt-axis +ElastoDyn['TwHt3FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 3; About the local xt-axis +ElastoDyn['TwHt3FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 3; About the local yt-axis +ElastoDyn['TwHt3FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 3; About the local zt-axis +ElastoDyn['TwHt4FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 4; About the local xt-axis +ElastoDyn['TwHt4FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 4; About the local yt-axis +ElastoDyn['TwHt4FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 4; About the local zt-axis +ElastoDyn['TwHt5FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 5; About the local xt-axis +ElastoDyn['TwHt5FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 5; About the local yt-axis +ElastoDyn['TwHt5FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 5; About the local zt-axis +ElastoDyn['TwHt6FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 6; About the local xt-axis +ElastoDyn['TwHt6FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 6; About the local yt-axis +ElastoDyn['TwHt6FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 6; About the local zt-axis +ElastoDyn['TwHt7FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 7; About the local xt-axis +ElastoDyn['TwHt7FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 7; About the local yt-axis +ElastoDyn['TwHt7FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 7; About the local zt-axis +ElastoDyn['TwHt8FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 8; About the local xt-axis +ElastoDyn['TwHt8FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 8; About the local yt-axis +ElastoDyn['TwHt8FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 8; About the local zt-axis +ElastoDyn['TwHt9FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 9; About the local xt-axis +ElastoDyn['TwHt9FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 9; About the local yt-axis +ElastoDyn['TwHt9FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 9; About the local zt-axis + +# Internal Degrees of Freedom +ElastoDyn['Q_B1E1'] = False # (m); Displacement of 1st edgewise bending-mode DOF of blade 1; +ElastoDyn['Q_B2E1'] = False # (m); Displacement of 1st edgewise bending-mode DOF of blade 2; +ElastoDyn['Q_B3E1'] = False # (m); Displacement of 1st edgewise bending-mode DOF of blade 3; +ElastoDyn['Q_B1F1'] = False # (m); Displacement of 1st flapwise bending-mode DOF of blade 1; +ElastoDyn['Q_B2F1'] = False # (m); Displacement of 1st flapwise bending-mode DOF of blade 2; +ElastoDyn['Q_B3F1'] = False # (m); Displacement of 1st flapwise bending-mode DOF of blade 3; +ElastoDyn['Q_B1F2'] = False # (m); Displacement of 2nd flapwise bending-mode DOF of blade 1; +ElastoDyn['Q_B2F2'] = False # (m); Displacement of 2nd flapwise bending-mode DOF of blade 2; +ElastoDyn['Q_B3F2'] = False # (m); Displacement of 2nd flapwise bending-mode DOF of blade 3; +ElastoDyn['Q_Teet'] = False # (rad); Displacement of hub teetering DOF; +ElastoDyn['Q_DrTr'] = False # (rad); Displacement of drivetrain rotational-flexibility DOF; +ElastoDyn['Q_GeAz'] = False # (rad); Displacement of variable speed generator DOF; +ElastoDyn['Q_RFrl'] = False # (rad); Displacement of rotor-furl DOF; +ElastoDyn['Q_TFrl'] = False # (rad); Displacement of tail-furl DOF; +ElastoDyn['Q_Yaw'] = False # (rad); Displacement of nacelle yaw DOF; +ElastoDyn['Q_TFA1'] = False # (m); Displacement of 1st tower fore-aft bending mode DOF; +ElastoDyn['Q_TSS1'] = False # (m); Displacement of 1st tower side-to-side bending mode DOF; +ElastoDyn['Q_TFA2'] = False # (m); Displacement of 2nd tower fore-aft bending mode DOF; +ElastoDyn['Q_TSS2'] = False # (m); Displacement of 2nd tower side-to-side bending mode DOF; +ElastoDyn['Q_Sg'] = False # (m); Displacement of platform horizontal surge translation DOF; +ElastoDyn['Q_Sw'] = False # (m); Displacement of platform horizontal sway translation DOF; +ElastoDyn['Q_Hv'] = False # (m); Displacement of platform vertical heave translation DOF; +ElastoDyn['Q_R'] = False # (rad); Displacement of platform roll tilt rotation DOF; +ElastoDyn['Q_P'] = False # (rad); Displacement of platform pitch tilt rotation DOF; +ElastoDyn['Q_Y'] = False # (rad); Displacement of platform yaw rotation DOF; +ElastoDyn['QD_B1E1'] = False # (m/s); Velocity of 1st edgewise bending-mode DOF of blade 1; +ElastoDyn['QD_B2E1'] = False # (m/s); Velocity of 1st edgewise bending-mode DOF of blade 2; +ElastoDyn['QD_B3E1'] = False # (m/s); Velocity of 1st edgewise bending-mode DOF of blade 3; +ElastoDyn['QD_B1F1'] = False # (m/s); Velocity of 1st flapwise bending-mode DOF of blade 1; +ElastoDyn['QD_B2F1'] = False # (m/s); Velocity of 1st flapwise bending-mode DOF of blade 2; +ElastoDyn['QD_B3F1'] = False # (m/s); Velocity of 1st flapwise bending-mode DOF of blade 3; +ElastoDyn['QD_B1F2'] = False # (m/s); Velocity of 2nd flapwise bending-mode DOF of blade 1; +ElastoDyn['QD_B2F2'] = False # (m/s); Velocity of 2nd flapwise bending-mode DOF of blade 2; +ElastoDyn['QD_B3F2'] = False # (m/s); Velocity of 2nd flapwise bending-mode DOF of blade 3; +ElastoDyn['QD_Teet'] = False # (rad/s); Velocity of hub teetering DOF; +ElastoDyn['QD_DrTr'] = False # (rad/s); Velocity of drivetrain rotational-flexibility DOF; +ElastoDyn['QD_GeAz'] = False # (rad/s); Velocity of variable speed generator DOF; +ElastoDyn['QD_RFrl'] = False # (rad/s); Velocity of rotor-furl DOF; +ElastoDyn['QD_TFrl'] = False # (rad/s); Velocity of tail-furl DOF; +ElastoDyn['QD_Yaw'] = False # (rad/s); Velocity of nacelle yaw DOF; +ElastoDyn['QD_TFA1'] = False # (m/s); Velocity of 1st tower fore-aft bending mode DOF; +ElastoDyn['QD_TSS1'] = False # (m/s); Velocity of 1st tower side-to-side bending mode DOF; +ElastoDyn['QD_TFA2'] = False # (m/s); Velocity of 2nd tower fore-aft bending mode DOF; +ElastoDyn['QD_TSS2'] = False # (m/s); Velocity of 2nd tower side-to-side bending mode DOF; +ElastoDyn['QD_Sg'] = False # (m/s); Velocity of platform horizontal surge translation DOF; +ElastoDyn['QD_Sw'] = False # (m/s); Velocity of platform horizontal sway translation DOF; +ElastoDyn['QD_Hv'] = False # (m/s); Velocity of platform vertical heave translation DOF; +ElastoDyn['QD_R'] = False # (rad/s); Velocity of platform roll tilt rotation DOF; +ElastoDyn['QD_P'] = False # (rad/s); Velocity of platform pitch tilt rotation DOF; +ElastoDyn['QD_Y'] = False # (rad/s); Velocity of platform yaw rotation DOF; +ElastoDyn['QD2_B1E1'] = False # (m/s^2); Acceleration of 1st edgewise bending-mode DOF of blade 1; +ElastoDyn['QD2_B2E1'] = False # (m/s^2); Acceleration of 1st edgewise bending-mode DOF of blade 2; +ElastoDyn['QD2_B3E1'] = False # (m/s^2); Acceleration of 1st edgewise bending-mode DOF of blade 3; +ElastoDyn['QD2_B1F1'] = False # (m/s^2); Acceleration of 1st flapwise bending-mode DOF of blade 1; +ElastoDyn['QD2_B2F1'] = False # (m/s^2); Acceleration of 1st flapwise bending-mode DOF of blade 2; +ElastoDyn['QD2_B3F1'] = False # (m/s^2); Acceleration of 1st flapwise bending-mode DOF of blade 3; +ElastoDyn['QD2_B1F2'] = False # (m/s^2); Acceleration of 2nd flapwise bending-mode DOF of blade 1; +ElastoDyn['QD2_B2F2'] = False # (m/s^2); Acceleration of 2nd flapwise bending-mode DOF of blade 2; +ElastoDyn['QD2_B3F2'] = False # (m/s^2); Acceleration of 2nd flapwise bending-mode DOF of blade 3; +ElastoDyn['QD2_Teet'] = False # (rad/s^2); Acceleration of hub teetering DOF; +ElastoDyn['QD2_DrTr'] = False # (rad/s^2); Acceleration of drivetrain rotational-flexibility DOF; +ElastoDyn['QD2_GeAz'] = False # (rad/s^2); Acceleration of variable speed generator DOF; +ElastoDyn['QD2_RFrl'] = False # (rad/s^2); Acceleration of rotor-furl DOF; +ElastoDyn['QD2_TFrl'] = False # (rad/s^2); Acceleration of tail-furl DOF; +ElastoDyn['QD2_Yaw'] = False # (rad/s^2); Acceleration of nacelle yaw DOF; +ElastoDyn['QD2_TFA1'] = False # (m/s^2); Acceleration of 1st tower fore-aft bending mode DOF; +ElastoDyn['QD2_TSS1'] = False # (m/s^2); Acceleration of 1st tower side-to-side bending mode DOF; +ElastoDyn['QD2_TFA2'] = False # (m/s^2); Acceleration of 2nd tower fore-aft bending mode DOF; +ElastoDyn['QD2_TSS2'] = False # (m/s^2); Acceleration of 2nd tower side-to-side bending mode DOF; +ElastoDyn['QD2_Sg'] = False # (m/s^2); Acceleration of platform horizontal surge translation DOF; +ElastoDyn['QD2_Sw'] = False # (m/s^2); Acceleration of platform horizontal sway translation DOF; +ElastoDyn['QD2_Hv'] = False # (m/s^2); Acceleration of platform vertical heave translation DOF; +ElastoDyn['QD2_R'] = False # (rad/s^2); Acceleration of platform roll tilt rotation DOF; +ElastoDyn['QD2_P'] = False # (rad/s^2); Acceleration of platform pitch tilt rotation DOF; +ElastoDyn['QD2_Y'] = False # (rad/s^2); Acceleration of platform yaw rotation DOF; + + +""" BeamDyn """ +BeamDyn = {} + +# Reaction Loads +BeamDyn['RootFxr'] = False # (N); x-component of the root reaction force expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootFyr'] = False # (N); y-component of the root reaction force expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootFzr'] = False # (N); z-component of the root reaction force expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootMxr'] = False # (N-m); x-component of the root reaction moment expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootMyr'] = False # (N-m); y-component of the root reaction moment expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootMzr'] = False # (N-m); z-component of the root reaction moment expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system + +# Tip Motions +BeamDyn['TipTDxr'] = False # (m); Tip translational deflection (relative to the undeflected position) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipTDyr'] = False # (m); Tip translational deflection (relative to the undeflected position) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipTDzr'] = False # (m); Tip translational deflection (relative to the undeflected position) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipRDxr'] = False # (-); Tip angular/rotational deflection Wiener-Milenkovi parameter (relative to the undeflected orientation) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipRDyr'] = False # (-); Tip angular/rotational deflection Wiener-Milenkovi parameter (relative to the undeflected orientation) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipRDzr'] = False # (-); Tip angular/rotational deflection Wiener-Milenkovi parameter (relative to the undeflected orientation) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipTVXg'] = False # (m/s); Tip translational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipTVYg'] = False # (m/s); Tip translational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipTVZg'] = False # (m/s); Tip translational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipRVXg'] = False # (deg/s); Tip angular/rotational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipRVYg'] = False # (deg/s); Tip angular/rotational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipRVZg'] = False # (deg/s); Tip angular/rotational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipTAXl'] = False # (m/s^2); Tip translational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipTAYl'] = False # (m/s^2); Tip translational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipTAZl'] = False # (m/s^2); Tip translational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipRAXl'] = False # (deg/s^2); Tip angular/rotational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipRAYl'] = False # (deg/s^2); Tip angular/rotational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipRAZl'] = False # (deg/s^2); Tip angular/rotational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam + +# Sectional Loads +BeamDyn['N1Fxl'] = False # (N); Sectional force resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Fyl'] = False # (N); Sectional force resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Fzl'] = False # (N); Sectional force resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Fxl'] = False # (N); Sectional force resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Fyl'] = False # (N); Sectional force resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Fzl'] = False # (N); Sectional force resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Fxl'] = False # (N); Sectional force resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Fyl'] = False # (N); Sectional force resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Fzl'] = False # (N); Sectional force resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Fxl'] = False # (N); Sectional force resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Fyl'] = False # (N); Sectional force resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Fzl'] = False # (N); Sectional force resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Fxl'] = False # (N); Sectional force resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Fyl'] = False # (N); Sectional force resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Fzl'] = False # (N); Sectional force resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Fxl'] = False # (N); Sectional force resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Fyl'] = False # (N); Sectional force resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Fzl'] = False # (N); Sectional force resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Fxl'] = False # (N); Sectional force resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Fyl'] = False # (N); Sectional force resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Fzl'] = False # (N); Sectional force resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Fxl'] = False # (N); Sectional force resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Fyl'] = False # (N); Sectional force resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Fzl'] = False # (N); Sectional force resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Fxl'] = False # (N); Sectional force resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Fyl'] = False # (N); Sectional force resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Fzl'] = False # (N); Sectional force resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Mxl'] = False # (N-m); Sectional moment resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Myl'] = False # (N-m); Sectional moment resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Mzl'] = False # (N-m); Sectional moment resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Mxl'] = False # (N-m); Sectional moment resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Myl'] = False # (N-m); Sectional moment resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Mzl'] = False # (N-m); Sectional moment resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Mxl'] = False # (N-m); Sectional moment resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Myl'] = False # (N-m); Sectional moment resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Mzl'] = False # (N-m); Sectional moment resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Mxl'] = False # (N-m); Sectional moment resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Myl'] = False # (N-m); Sectional moment resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Mzl'] = False # (N-m); Sectional moment resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Mxl'] = False # (N-m); Sectional moment resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Myl'] = False # (N-m); Sectional moment resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Mzl'] = False # (N-m); Sectional moment resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Mxl'] = False # (N-m); Sectional moment resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Myl'] = False # (N-m); Sectional moment resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Mzl'] = False # (N-m); Sectional moment resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Mxl'] = False # (N-m); Sectional moment resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Myl'] = False # (N-m); Sectional moment resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Mzl'] = False # (N-m); Sectional moment resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Mxl'] = False # (N-m); Sectional moment resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Myl'] = False # (N-m); Sectional moment resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Mzl'] = False # (N-m); Sectional moment resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Mxl'] = False # (N-m); Sectional moment resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Myl'] = False # (N-m); Sectional moment resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Mzl'] = False # (N-m); Sectional moment resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam + +# Sectional Motions +BeamDyn['N1TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam + +# Applied Loads +BeamDyn['N1PFxl'] = False # (N); Applied point forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PFyl'] = False # (N); Applied point forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PFzl'] = False # (N); Applied point forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PFxl'] = False # (N); Applied point forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PFyl'] = False # (N); Applied point forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PFzl'] = False # (N); Applied point forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PFxl'] = False # (N); Applied point forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PFyl'] = False # (N); Applied point forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PFzl'] = False # (N); Applied point forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PFxl'] = False # (N); Applied point forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PFyl'] = False # (N); Applied point forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PFzl'] = False # (N); Applied point forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PFxl'] = False # (N); Applied point forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PFyl'] = False # (N); Applied point forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PFzl'] = False # (N); Applied point forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PFxl'] = False # (N); Applied point forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PFyl'] = False # (N); Applied point forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PFzl'] = False # (N); Applied point forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PFxl'] = False # (N); Applied point forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PFyl'] = False # (N); Applied point forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PFzl'] = False # (N); Applied point forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PFxl'] = False # (N); Applied point forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PFyl'] = False # (N); Applied point forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PFzl'] = False # (N); Applied point forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PFxl'] = False # (N); Applied point forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PFyl'] = False # (N); Applied point forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PFzl'] = False # (N); Applied point forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PMxl'] = False # (N-m); Applied point moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PMyl'] = False # (N-m); Applied point moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PMzl'] = False # (N-m); Applied point moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PMxl'] = False # (N-m); Applied point moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PMyl'] = False # (N-m); Applied point moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PMzl'] = False # (N-m); Applied point moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PMxl'] = False # (N-m); Applied point moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PMyl'] = False # (N-m); Applied point moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PMzl'] = False # (N-m); Applied point moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PMxl'] = False # (N-m); Applied point moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PMyl'] = False # (N-m); Applied point moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PMzl'] = False # (N-m); Applied point moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PMxl'] = False # (N-m); Applied point moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PMyl'] = False # (N-m); Applied point moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PMzl'] = False # (N-m); Applied point moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PMxl'] = False # (N-m); Applied point moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PMyl'] = False # (N-m); Applied point moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PMzl'] = False # (N-m); Applied point moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PMxl'] = False # (N-m); Applied point moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PMyl'] = False # (N-m); Applied point moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PMzl'] = False # (N-m); Applied point moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PMxl'] = False # (N-m); Applied point moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PMyl'] = False # (N-m); Applied point moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PMzl'] = False # (N-m); Applied point moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PMxl'] = False # (N-m); Applied point moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PMyl'] = False # (N-m); Applied point moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PMzl'] = False # (N-m); Applied point moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DFxl'] = False # (N/m); Applied distributed forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DFyl'] = False # (N/m); Applied distributed forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DFzl'] = False # (N/m); Applied distributed forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DFxl'] = False # (N/m); Applied distributed forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DFyl'] = False # (N/m); Applied distributed forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DFzl'] = False # (N/m); Applied distributed forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DFxl'] = False # (N/m); Applied distributed forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DFyl'] = False # (N/m); Applied distributed forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DFzl'] = False # (N/m); Applied distributed forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DFxl'] = False # (N/m); Applied distributed forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DFyl'] = False # (N/m); Applied distributed forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DFzl'] = False # (N/m); Applied distributed forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DFxl'] = False # (N/m); Applied distributed forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DFyl'] = False # (N/m); Applied distributed forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DFzl'] = False # (N/m); Applied distributed forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DFxl'] = False # (N/m); Applied distributed forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DFyl'] = False # (N/m); Applied distributed forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DFzl'] = False # (N/m); Applied distributed forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DFxl'] = False # (N/m); Applied distributed forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DFyl'] = False # (N/m); Applied distributed forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DFzl'] = False # (N/m); Applied distributed forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DFxl'] = False # (N/m); Applied distributed forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DFyl'] = False # (N/m); Applied distributed forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DFzl'] = False # (N/m); Applied distributed forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DFxl'] = False # (N/m); Applied distributed forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DFyl'] = False # (N/m); Applied distributed forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DFzl'] = False # (N/m); Applied distributed forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DMxl'] = False # (N-m/m); Applied distributed moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DMyl'] = False # (N-m/m); Applied distributed moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DMzl'] = False # (N-m/m); Applied distributed moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DMxl'] = False # (N-m/m); Applied distributed moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DMyl'] = False # (N-m/m); Applied distributed moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DMzl'] = False # (N-m/m); Applied distributed moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DMxl'] = False # (N-m/m); Applied distributed moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DMyl'] = False # (N-m/m); Applied distributed moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DMzl'] = False # (N-m/m); Applied distributed moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DMxl'] = False # (N-m/m); Applied distributed moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DMyl'] = False # (N-m/m); Applied distributed moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DMzl'] = False # (N-m/m); Applied distributed moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DMxl'] = False # (N-m/m); Applied distributed moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DMyl'] = False # (N-m/m); Applied distributed moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DMzl'] = False # (N-m/m); Applied distributed moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DMxl'] = False # (N-m/m); Applied distributed moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DMyl'] = False # (N-m/m); Applied distributed moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DMzl'] = False # (N-m/m); Applied distributed moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DMxl'] = False # (N-m/m); Applied distributed moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DMyl'] = False # (N-m/m); Applied distributed moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DMzl'] = False # (N-m/m); Applied distributed moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DMxl'] = False # (N-m/m); Applied distributed moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DMyl'] = False # (N-m/m); Applied distributed moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DMzl'] = False # (N-m/m); Applied distributed moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DMxl'] = False # (N-m/m); Applied distributed moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DMyl'] = False # (N-m/m); Applied distributed moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DMzl'] = False # (N-m/m); Applied distributed moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam + +# Pitch Actuator +BeamDyn['PAngInp'] = False # (deg); Pitch angle input; +BeamDyn['PAngAct'] = False # (deg); Actual pitch angle ; +BeamDyn['PRatAct'] = False # (deg/s); Actual pitch rate; +BeamDyn['PAccAct'] = False # (deg/s^2); Actual pitch acceleration; + + +""" ServoDyn """ +ServoDyn = {} + +# Pitch Control +ServoDyn['BlPitchC1'] = False # (deg); Blade 1 pitch angle command; Positive towards feather about the minus zc1- and minus zb1-axes +ServoDyn['BlPitchC2'] = False # (deg); Blade 2 pitch angle command; Positive towards feather about the minus zc2- and minus zb2-axes +ServoDyn['BlPitchC3'] = False # (deg); Blade 3 pitch angle command; Positive towards feather about the minus zc3- and minus zb3-axes + +# Generator and Torque Control +ServoDyn['GenTq'] = False # (kN m); Electrical generator torque; Positive reflects power extracted and negative represents a motoring-up situation (power input) +ServoDyn['GenPwr'] = False # (kW); Electrical generator power; Same sign as GenTq + +# High Speed Shaft Brake +ServoDyn['HSSBrTqC'] = False # (kN m); High-speed shaft brake torque command (i.e., the commanded moment applied to the high-speed shaft by the brake); Always positive (indicating dissipation of power) + +# Nacelle Yaw Control +ServoDyn['YawMomCom'] = False # (kN m); Nacelle yaw moment command; About the zn- and zp-axes +ServoDyn['YawMom'] = False # (kN m); Nacelle yaw moment command; About the zn- and zp-axes + +# Nacelle Tuned Mass Damper (TMD) +ServoDyn['NTMD_XQ'] = False # (m); Nacelle X TMD position (displacement); Relative to rest position +ServoDyn['NTMD_XQD'] = False # (m/s); Nacelle X TMD velocity; Relative to nacelle +ServoDyn['NTMD_YQ'] = False # (m); Nacelle Y TMD position (displacement); Relative to rest position +ServoDyn['NTMD_YQD'] = False # (m/s); Nacelle Y TMD velocity; Relative to nacelle + +# Tower Tuned Mass Damper (TMD) +ServoDyn['TTMD_XQ'] = False # (m); Tower X TMD position (displacement); Relative to rest position +ServoDyn['TTMD_XQD'] = False # (m/s); Tower X TMD velocity; Relative to tower +ServoDyn['TTMD_YQ'] = False # (m); Tower Y TMD position (displacement); Relative to rest position +ServoDyn['TTMD_YQD'] = False # (m/s); Tower Y TMD velocity; Relative to tower + +# Flap outputs +ServoDyn['BLFLAP1'] = False # (m/s); Tower Y TMD velocity; Relative to tower +ServoDyn['BLFLAP2'] = False # (m/s); Tower Y TMD velocity; Relative to tower +ServoDyn['BLFLAP3'] = False # (m/s); Tower Y TMD velocity; Relative to tower + +""" AeroDyn """ +AeroDyn = {} + +# Tower +AeroDyn['TwN1VUndx'] = False # (m/s); Undisturbed x-component wind velocity at Tw node 1; local tower coordinate system +AeroDyn['TwN1VUndy'] = False # (m/s); Undisturbed y-component wind velocity at Tw node 1; local tower coordinate system +AeroDyn['TwN1VUndz'] = False # (m/s); Undisturbed z-component wind velocity at Tw node 1; local tower coordinate system +AeroDyn['TwN2VUndx'] = False # (m/s); Undisturbed x-component wind velocity at Tw node 2; local tower coordinate system +AeroDyn['TwN2VUndy'] = False # (m/s); Undisturbed y-component wind velocity at Tw node 2; local tower coordinate system +AeroDyn['TwN2VUndz'] = False # (m/s); Undisturbed z-component wind velocity at Tw node 2; local tower coordinate system +AeroDyn['TwN3VUndx'] = False # (m/s); Undisturbed x-component wind velocity at Tw node 3; local tower coordinate system +AeroDyn['TwN3VUndy'] = False # (m/s); Undisturbed y-component wind velocity at Tw node 3; local tower coordinate system +AeroDyn['TwN3VUndz'] = False # (m/s); Undisturbed z-component wind velocity at Tw node 3; local tower coordinate system +AeroDyn['TwN4VUndx'] = False # (m/s); Undisturbed x-component wind velocity at Tw node 4; local tower coordinate system +AeroDyn['TwN4VUndy'] = False # (m/s); Undisturbed y-component wind velocity at Tw node 4; local tower coordinate system +AeroDyn['TwN4VUndz'] = False # (m/s); Undisturbed z-component wind velocity at Tw node 4; local tower coordinate system +AeroDyn['TwN5VUndx'] = False # (m/s); Undisturbed x-component wind velocity at Tw node 5; local tower coordinate system +AeroDyn['TwN5VUndy'] = False # (m/s); Undisturbed y-component wind velocity at Tw node 5; local tower coordinate system +AeroDyn['TwN5VUndz'] = False # (m/s); Undisturbed z-component wind velocity at Tw node 5; local tower coordinate system +AeroDyn['TwN6VUndx'] = False # (m/s); Undisturbed x-component wind velocity at Tw node 6; local tower coordinate system +AeroDyn['TwN6VUndy'] = False # (m/s); Undisturbed y-component wind velocity at Tw node 6; local tower coordinate system +AeroDyn['TwN6VUndz'] = False # (m/s); Undisturbed z-component wind velocity at Tw node 6; local tower coordinate system +AeroDyn['TwN7VUndx'] = False # (m/s); Undisturbed x-component wind velocity at Tw node 7; local tower coordinate system +AeroDyn['TwN7VUndy'] = False # (m/s); Undisturbed y-component wind velocity at Tw node 7; local tower coordinate system +AeroDyn['TwN7VUndz'] = False # (m/s); Undisturbed z-component wind velocity at Tw node 7; local tower coordinate system +AeroDyn['TwN8VUndx'] = False # (m/s); Undisturbed x-component wind velocity at Tw node 8; local tower coordinate system +AeroDyn['TwN8VUndy'] = False # (m/s); Undisturbed y-component wind velocity at Tw node 8; local tower coordinate system +AeroDyn['TwN8VUndz'] = False # (m/s); Undisturbed z-component wind velocity at Tw node 8; local tower coordinate system +AeroDyn['TwN9VUndx'] = False # (m/s); Undisturbed x-component wind velocity at Tw node 9; local tower coordinate system +AeroDyn['TwN9VUndy'] = False # (m/s); Undisturbed y-component wind velocity at Tw node 9; local tower coordinate system +AeroDyn['TwN9VUndz'] = False # (m/s); Undisturbed z-component wind velocity at Tw node 9; local tower coordinate system +AeroDyn['TwN1STVx'] = False # (m/s); Structural translational velocity x-component at Tw node 1; local tower coordinate system +AeroDyn['TwN1STVy'] = False # (m/s); Structural translational velocity y-component at Tw node 1; local tower coordinate system +AeroDyn['TwN1STVz'] = False # (m/s); Structural translational velocity z-component at Tw node 1; local tower coordinate system +AeroDyn['TwN2STVx'] = False # (m/s); Structural translational velocity x-component at Tw node 2; local tower coordinate system +AeroDyn['TwN2STVy'] = False # (m/s); Structural translational velocity y-component at Tw node 2; local tower coordinate system +AeroDyn['TwN2STVz'] = False # (m/s); Structural translational velocity z-component at Tw node 2; local tower coordinate system +AeroDyn['TwN3STVx'] = False # (m/s); Structural translational velocity x-component at Tw node 3; local tower coordinate system +AeroDyn['TwN3STVy'] = False # (m/s); Structural translational velocity y-component at Tw node 3; local tower coordinate system +AeroDyn['TwN3STVz'] = False # (m/s); Structural translational velocity z-component at Tw node 3; local tower coordinate system +AeroDyn['TwN4STVx'] = False # (m/s); Structural translational velocity x-component at Tw node 4; local tower coordinate system +AeroDyn['TwN4STVy'] = False # (m/s); Structural translational velocity y-component at Tw node 4; local tower coordinate system +AeroDyn['TwN4STVz'] = False # (m/s); Structural translational velocity z-component at Tw node 4; local tower coordinate system +AeroDyn['TwN5STVx'] = False # (m/s); Structural translational velocity x-component at Tw node 5; local tower coordinate system +AeroDyn['TwN5STVy'] = False # (m/s); Structural translational velocity y-component at Tw node 5; local tower coordinate system +AeroDyn['TwN5STVz'] = False # (m/s); Structural translational velocity z-component at Tw node 5; local tower coordinate system +AeroDyn['TwN6STVx'] = False # (m/s); Structural translational velocity x-component at Tw node 6; local tower coordinate system +AeroDyn['TwN6STVy'] = False # (m/s); Structural translational velocity y-component at Tw node 6; local tower coordinate system +AeroDyn['TwN6STVz'] = False # (m/s); Structural translational velocity z-component at Tw node 6; local tower coordinate system +AeroDyn['TwN7STVx'] = False # (m/s); Structural translational velocity x-component at Tw node 7; local tower coordinate system +AeroDyn['TwN7STVy'] = False # (m/s); Structural translational velocity y-component at Tw node 7; local tower coordinate system +AeroDyn['TwN7STVz'] = False # (m/s); Structural translational velocity z-component at Tw node 7; local tower coordinate system +AeroDyn['TwN8STVx'] = False # (m/s); Structural translational velocity x-component at Tw node 8; local tower coordinate system +AeroDyn['TwN8STVy'] = False # (m/s); Structural translational velocity y-component at Tw node 8; local tower coordinate system +AeroDyn['TwN8STVz'] = False # (m/s); Structural translational velocity z-component at Tw node 8; local tower coordinate system +AeroDyn['TwN9STVx'] = False # (m/s); Structural translational velocity x-component at Tw node 9; local tower coordinate system +AeroDyn['TwN9STVy'] = False # (m/s); Structural translational velocity y-component at Tw node 9; local tower coordinate system +AeroDyn['TwN9STVz'] = False # (m/s); Structural translational velocity z-component at Tw node 9; local tower coordinate system +AeroDyn['TwN1Vrel'] = False # (m/s); Relative wind speed at Tw node 1; +AeroDyn['TwN2Vrel'] = False # (m/s); Relative wind speed at Tw node 2; +AeroDyn['TwN3Vrel'] = False # (m/s); Relative wind speed at Tw node 3; +AeroDyn['TwN4Vrel'] = False # (m/s); Relative wind speed at Tw node 4; +AeroDyn['TwN5Vrel'] = False # (m/s); Relative wind speed at Tw node 5; +AeroDyn['TwN6Vrel'] = False # (m/s); Relative wind speed at Tw node 6; +AeroDyn['TwN7Vrel'] = False # (m/s); Relative wind speed at Tw node 7; +AeroDyn['TwN8Vrel'] = False # (m/s); Relative wind speed at Tw node 8; +AeroDyn['TwN9Vrel'] = False # (m/s); Relative wind speed at Tw node 9; +AeroDyn['TwN1DynP'] = False # (Pa); Dynamic Pressure at Tw node 1; +AeroDyn['TwN2DynP'] = False # (Pa); Dynamic Pressure at Tw node 2; +AeroDyn['TwN3DynP'] = False # (Pa); Dynamic Pressure at Tw node 3; +AeroDyn['TwN4DynP'] = False # (Pa); Dynamic Pressure at Tw node 4; +AeroDyn['TwN5DynP'] = False # (Pa); Dynamic Pressure at Tw node 5; +AeroDyn['TwN6DynP'] = False # (Pa); Dynamic Pressure at Tw node 6; +AeroDyn['TwN7DynP'] = False # (Pa); Dynamic Pressure at Tw node 7; +AeroDyn['TwN8DynP'] = False # (Pa); Dynamic Pressure at Tw node 8; +AeroDyn['TwN9DynP'] = False # (Pa); Dynamic Pressure at Tw node 9; +AeroDyn['TwN1Re'] = False # (-); Reynolds number (in millions) at Tw node 1; +AeroDyn['TwN2Re'] = False # (-); Reynolds number (in millions) at Tw node 2; +AeroDyn['TwN3Re'] = False # (-); Reynolds number (in millions) at Tw node 3; +AeroDyn['TwN4Re'] = False # (-); Reynolds number (in millions) at Tw node 4; +AeroDyn['TwN5Re'] = False # (-); Reynolds number (in millions) at Tw node 5; +AeroDyn['TwN6Re'] = False # (-); Reynolds number (in millions) at Tw node 6; +AeroDyn['TwN7Re'] = False # (-); Reynolds number (in millions) at Tw node 7; +AeroDyn['TwN8Re'] = False # (-); Reynolds number (in millions) at Tw node 8; +AeroDyn['TwN9Re'] = False # (-); Reynolds number (in millions) at Tw node 9; +AeroDyn['TwN1M'] = False # (-); Mach number at Tw node 1; +AeroDyn['TwN2M'] = False # (-); Mach number at Tw node 2; +AeroDyn['TwN3M'] = False # (-); Mach number at Tw node 3; +AeroDyn['TwN4M'] = False # (-); Mach number at Tw node 4; +AeroDyn['TwN5M'] = False # (-); Mach number at Tw node 5; +AeroDyn['TwN6M'] = False # (-); Mach number at Tw node 6; +AeroDyn['TwN7M'] = False # (-); Mach number at Tw node 7; +AeroDyn['TwN8M'] = False # (-); Mach number at Tw node 8; +AeroDyn['TwN9M'] = False # (-); Mach number at Tw node 9; +AeroDyn['TwN1Fdx'] = False # (N/m); x-component of drag force per unit length at Tw node 1; local tower coordinate system +AeroDyn['TwN2Fdx'] = False # (N/m); x-component of drag force per unit length at Tw node 2; local tower coordinate system +AeroDyn['TwN3Fdx'] = False # (N/m); x-component of drag force per unit length at Tw node 3; local tower coordinate system +AeroDyn['TwN4Fdx'] = False # (N/m); x-component of drag force per unit length at Tw node 4; local tower coordinate system +AeroDyn['TwN5Fdx'] = False # (N/m); x-component of drag force per unit length at Tw node 5; local tower coordinate system +AeroDyn['TwN6Fdx'] = False # (N/m); x-component of drag force per unit length at Tw node 6; local tower coordinate system +AeroDyn['TwN7Fdx'] = False # (N/m); x-component of drag force per unit length at Tw node 7; local tower coordinate system +AeroDyn['TwN8Fdx'] = False # (N/m); x-component of drag force per unit length at Tw node 8; local tower coordinate system +AeroDyn['TwN9Fdx'] = False # (N/m); x-component of drag force per unit length at Tw node 9; local tower coordinate system +AeroDyn['TwN1Fdy'] = False # (N/m); y-component of drag force per unit length at Tw node 1; local tower coordinate system +AeroDyn['TwN2Fdy'] = False # (N/m); y-component of drag force per unit length at Tw node 2; local tower coordinate system +AeroDyn['TwN3Fdy'] = False # (N/m); y-component of drag force per unit length at Tw node 3; local tower coordinate system +AeroDyn['TwN4Fdy'] = False # (N/m); y-component of drag force per unit length at Tw node 4; local tower coordinate system +AeroDyn['TwN5Fdy'] = False # (N/m); y-component of drag force per unit length at Tw node 5; local tower coordinate system +AeroDyn['TwN6Fdy'] = False # (N/m); y-component of drag force per unit length at Tw node 6; local tower coordinate system +AeroDyn['TwN7Fdy'] = False # (N/m); y-component of drag force per unit length at Tw node 7; local tower coordinate system +AeroDyn['TwN8Fdy'] = False # (N/m); y-component of drag force per unit length at Tw node 8; local tower coordinate system +AeroDyn['TwN9Fdy'] = False # (N/m); y-component of drag force per unit length at Tw node 9; local tower coordinate system + +# Blade +AeroDyn['B1Azimuth'] = False # (deg); Azimuth angle of blade 1; +AeroDyn['B2Azimuth'] = False # (deg); Azimuth angle of blade 2; +AeroDyn['B3Azimuth'] = False # (deg); Azimuth angle of blade 3; +AeroDyn['B1Pitch'] = False # (deg); Pitch angle of blade 1; +AeroDyn['B2Pitch'] = False # (deg); Pitch angle of blade 2; +AeroDyn['B3Pitch'] = False # (deg); Pitch angle of blade 3; +AeroDyn['B1N1VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 1, Node 1; local blade coordinate system +AeroDyn['B1N2VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 1, Node 2; local blade coordinate system +AeroDyn['B1N3VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 1, Node 3; local blade coordinate system +AeroDyn['B1N4VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 1, Node 4; local blade coordinate system +AeroDyn['B1N5VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 1, Node 5; local blade coordinate system +AeroDyn['B1N6VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 1, Node 6; local blade coordinate system +AeroDyn['B1N7VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 1, Node 7; local blade coordinate system +AeroDyn['B1N8VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 1, Node 8; local blade coordinate system +AeroDyn['B1N9VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 1, Node 9; local blade coordinate system +AeroDyn['B1N1VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 1, Node 1; local blade coordinate system +AeroDyn['B1N2VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 1, Node 2; local blade coordinate system +AeroDyn['B1N3VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 1, Node 3; local blade coordinate system +AeroDyn['B1N4VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 1, Node 4; local blade coordinate system +AeroDyn['B1N5VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 1, Node 5; local blade coordinate system +AeroDyn['B1N6VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 1, Node 6; local blade coordinate system +AeroDyn['B1N7VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 1, Node 7; local blade coordinate system +AeroDyn['B1N8VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 1, Node 8; local blade coordinate system +AeroDyn['B1N9VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 1, Node 9; local blade coordinate system +AeroDyn['B1N1VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 1, Node 1; local blade coordinate system +AeroDyn['B1N2VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 1, Node 2; local blade coordinate system +AeroDyn['B1N3VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 1, Node 3; local blade coordinate system +AeroDyn['B1N4VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 1, Node 4; local blade coordinate system +AeroDyn['B1N5VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 1, Node 5; local blade coordinate system +AeroDyn['B1N6VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 1, Node 6; local blade coordinate system +AeroDyn['B1N7VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 1, Node 7; local blade coordinate system +AeroDyn['B1N8VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 1, Node 8; local blade coordinate system +AeroDyn['B1N9VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 1, Node 9; local blade coordinate system +AeroDyn['B2N1VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 2, Node 1; local blade coordinate system +AeroDyn['B2N2VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 2, Node 2; local blade coordinate system +AeroDyn['B2N3VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 2, Node 3; local blade coordinate system +AeroDyn['B2N4VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 2, Node 4; local blade coordinate system +AeroDyn['B2N5VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 2, Node 5; local blade coordinate system +AeroDyn['B2N6VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 2, Node 6; local blade coordinate system +AeroDyn['B2N7VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 2, Node 7; local blade coordinate system +AeroDyn['B2N8VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 2, Node 8; local blade coordinate system +AeroDyn['B2N9VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 2, Node 9; local blade coordinate system +AeroDyn['B2N1VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 2, Node 1; local blade coordinate system +AeroDyn['B2N2VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 2, Node 2; local blade coordinate system +AeroDyn['B2N3VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 2, Node 3; local blade coordinate system +AeroDyn['B2N4VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 2, Node 4; local blade coordinate system +AeroDyn['B2N5VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 2, Node 5; local blade coordinate system +AeroDyn['B2N6VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 2, Node 6; local blade coordinate system +AeroDyn['B2N7VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 2, Node 7; local blade coordinate system +AeroDyn['B2N8VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 2, Node 8; local blade coordinate system +AeroDyn['B2N9VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 2, Node 9; local blade coordinate system +AeroDyn['B2N1VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 2, Node 1; local blade coordinate system +AeroDyn['B2N2VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 2, Node 2; local blade coordinate system +AeroDyn['B2N3VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 2, Node 3; local blade coordinate system +AeroDyn['B2N4VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 2, Node 4; local blade coordinate system +AeroDyn['B2N5VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 2, Node 5; local blade coordinate system +AeroDyn['B2N6VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 2, Node 6; local blade coordinate system +AeroDyn['B2N7VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 2, Node 7; local blade coordinate system +AeroDyn['B2N8VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 2, Node 8; local blade coordinate system +AeroDyn['B2N9VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 2, Node 9; local blade coordinate system +AeroDyn['B3N1VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 3, Node 1; local blade coordinate system +AeroDyn['B3N2VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 3, Node 2; local blade coordinate system +AeroDyn['B3N3VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 3, Node 3; local blade coordinate system +AeroDyn['B3N4VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 3, Node 4; local blade coordinate system +AeroDyn['B3N5VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 3, Node 5; local blade coordinate system +AeroDyn['B3N6VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 3, Node 6; local blade coordinate system +AeroDyn['B3N7VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 3, Node 7; local blade coordinate system +AeroDyn['B3N8VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 3, Node 8; local blade coordinate system +AeroDyn['B3N9VUndx'] = False # (m/s); x-component of undisturbed wind velocity at Blade 3, Node 9; local blade coordinate system +AeroDyn['B3N1VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 3, Node 1; local blade coordinate system +AeroDyn['B3N2VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 3, Node 2; local blade coordinate system +AeroDyn['B3N3VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 3, Node 3; local blade coordinate system +AeroDyn['B3N4VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 3, Node 4; local blade coordinate system +AeroDyn['B3N5VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 3, Node 5; local blade coordinate system +AeroDyn['B3N6VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 3, Node 6; local blade coordinate system +AeroDyn['B3N7VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 3, Node 7; local blade coordinate system +AeroDyn['B3N8VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 3, Node 8; local blade coordinate system +AeroDyn['B3N9VUndy'] = False # (m/s); y-component of undisturbed wind velocity at Blade 3, Node 9; local blade coordinate system +AeroDyn['B3N1VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 3, Node 1; local blade coordinate system +AeroDyn['B3N2VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 3, Node 2; local blade coordinate system +AeroDyn['B3N3VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 3, Node 3; local blade coordinate system +AeroDyn['B3N4VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 3, Node 4; local blade coordinate system +AeroDyn['B3N5VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 3, Node 5; local blade coordinate system +AeroDyn['B3N6VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 3, Node 6; local blade coordinate system +AeroDyn['B3N7VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 3, Node 7; local blade coordinate system +AeroDyn['B3N8VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 3, Node 8; local blade coordinate system +AeroDyn['B3N9VUndz'] = False # (m/s); z-component of undisturbed wind velocity at Blade 3, Node 9; local blade coordinate system +AeroDyn['B1N1VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 1, Node 1; local blade coordinate system +AeroDyn['B1N2VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 1, Node 2; local blade coordinate system +AeroDyn['B1N3VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 1, Node 3; local blade coordinate system +AeroDyn['B1N4VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 1, Node 4; local blade coordinate system +AeroDyn['B1N5VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 1, Node 5; local blade coordinate system +AeroDyn['B1N6VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 1, Node 6; local blade coordinate system +AeroDyn['B1N7VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 1, Node 7; local blade coordinate system +AeroDyn['B1N8VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 1, Node 8; local blade coordinate system +AeroDyn['B1N9VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 1, Node 9; local blade coordinate system +AeroDyn['B1N1VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 1, Node 1; local blade coordinate system +AeroDyn['B1N2VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 1, Node 2; local blade coordinate system +AeroDyn['B1N3VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 1, Node 3; local blade coordinate system +AeroDyn['B1N4VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 1, Node 4; local blade coordinate system +AeroDyn['B1N5VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 1, Node 5; local blade coordinate system +AeroDyn['B1N6VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 1, Node 6; local blade coordinate system +AeroDyn['B1N7VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 1, Node 7; local blade coordinate system +AeroDyn['B1N8VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 1, Node 8; local blade coordinate system +AeroDyn['B1N9VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 1, Node 9; local blade coordinate system +AeroDyn['B1N1VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 1, Node 1; local blade coordinate system +AeroDyn['B1N2VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 1, Node 2; local blade coordinate system +AeroDyn['B1N3VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 1, Node 3; local blade coordinate system +AeroDyn['B1N4VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 1, Node 4; local blade coordinate system +AeroDyn['B1N5VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 1, Node 5; local blade coordinate system +AeroDyn['B1N6VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 1, Node 6; local blade coordinate system +AeroDyn['B1N7VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 1, Node 7; local blade coordinate system +AeroDyn['B1N8VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 1, Node 8; local blade coordinate system +AeroDyn['B1N9VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 1, Node 9; local blade coordinate system +AeroDyn['B2N1VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 2, Node 1; local blade coordinate system +AeroDyn['B2N2VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 2, Node 2; local blade coordinate system +AeroDyn['B2N3VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 2, Node 3; local blade coordinate system +AeroDyn['B2N4VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 2, Node 4; local blade coordinate system +AeroDyn['B2N5VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 2, Node 5; local blade coordinate system +AeroDyn['B2N6VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 2, Node 6; local blade coordinate system +AeroDyn['B2N7VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 2, Node 7; local blade coordinate system +AeroDyn['B2N8VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 2, Node 8; local blade coordinate system +AeroDyn['B2N9VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 2, Node 9; local blade coordinate system +AeroDyn['B2N1VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 2, Node 1; local blade coordinate system +AeroDyn['B2N2VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 2, Node 2; local blade coordinate system +AeroDyn['B2N3VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 2, Node 3; local blade coordinate system +AeroDyn['B2N4VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 2, Node 4; local blade coordinate system +AeroDyn['B2N5VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 2, Node 5; local blade coordinate system +AeroDyn['B2N6VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 2, Node 6; local blade coordinate system +AeroDyn['B2N7VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 2, Node 7; local blade coordinate system +AeroDyn['B2N8VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 2, Node 8; local blade coordinate system +AeroDyn['B2N9VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 2, Node 9; local blade coordinate system +AeroDyn['B2N1VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 2, Node 1; local blade coordinate system +AeroDyn['B2N2VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 2, Node 2; local blade coordinate system +AeroDyn['B2N3VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 2, Node 3; local blade coordinate system +AeroDyn['B2N4VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 2, Node 4; local blade coordinate system +AeroDyn['B2N5VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 2, Node 5; local blade coordinate system +AeroDyn['B2N6VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 2, Node 6; local blade coordinate system +AeroDyn['B2N7VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 2, Node 7; local blade coordinate system +AeroDyn['B2N8VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 2, Node 8; local blade coordinate system +AeroDyn['B2N9VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 2, Node 9; local blade coordinate system +AeroDyn['B3N1VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 3, Node 1; local blade coordinate system +AeroDyn['B3N2VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 3, Node 2; local blade coordinate system +AeroDyn['B3N3VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 3, Node 3; local blade coordinate system +AeroDyn['B3N4VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 3, Node 4; local blade coordinate system +AeroDyn['B3N5VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 3, Node 5; local blade coordinate system +AeroDyn['B3N6VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 3, Node 6; local blade coordinate system +AeroDyn['B3N7VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 3, Node 7; local blade coordinate system +AeroDyn['B3N8VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 3, Node 8; local blade coordinate system +AeroDyn['B3N9VDisx'] = False # (m/s); x-component of disturbed wind velocity at Blade 3, Node 9; local blade coordinate system +AeroDyn['B3N1VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 3, Node 1; local blade coordinate system +AeroDyn['B3N2VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 3, Node 2; local blade coordinate system +AeroDyn['B3N3VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 3, Node 3; local blade coordinate system +AeroDyn['B3N4VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 3, Node 4; local blade coordinate system +AeroDyn['B3N5VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 3, Node 5; local blade coordinate system +AeroDyn['B3N6VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 3, Node 6; local blade coordinate system +AeroDyn['B3N7VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 3, Node 7; local blade coordinate system +AeroDyn['B3N8VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 3, Node 8; local blade coordinate system +AeroDyn['B3N9VDisy'] = False # (m/s); y-component of disturbed wind velocity at Blade 3, Node 9; local blade coordinate system +AeroDyn['B3N1VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 3, Node 1; local blade coordinate system +AeroDyn['B3N2VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 3, Node 2; local blade coordinate system +AeroDyn['B3N3VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 3, Node 3; local blade coordinate system +AeroDyn['B3N4VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 3, Node 4; local blade coordinate system +AeroDyn['B3N5VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 3, Node 5; local blade coordinate system +AeroDyn['B3N6VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 3, Node 6; local blade coordinate system +AeroDyn['B3N7VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 3, Node 7; local blade coordinate system +AeroDyn['B3N8VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 3, Node 8; local blade coordinate system +AeroDyn['B3N9VDisz'] = False # (m/s); z-component of disturbed wind velocity at Blade 3, Node 9; local blade coordinate system +AeroDyn['B1N1STVx'] = False # (m/s); x-component of structural translational velocity at Blade 1, Node 1; local blade coordinate system +AeroDyn['B1N2STVx'] = False # (m/s); x-component of structural translational velocity at Blade 1, Node 2; local blade coordinate system +AeroDyn['B1N3STVx'] = False # (m/s); x-component of structural translational velocity at Blade 1, Node 3; local blade coordinate system +AeroDyn['B1N4STVx'] = False # (m/s); x-component of structural translational velocity at Blade 1, Node 4; local blade coordinate system +AeroDyn['B1N5STVx'] = False # (m/s); x-component of structural translational velocity at Blade 1, Node 5; local blade coordinate system +AeroDyn['B1N6STVx'] = False # (m/s); x-component of structural translational velocity at Blade 1, Node 6; local blade coordinate system +AeroDyn['B1N7STVx'] = False # (m/s); x-component of structural translational velocity at Blade 1, Node 7; local blade coordinate system +AeroDyn['B1N8STVx'] = False # (m/s); x-component of structural translational velocity at Blade 1, Node 8; local blade coordinate system +AeroDyn['B1N9STVx'] = False # (m/s); x-component of structural translational velocity at Blade 1, Node 9; local blade coordinate system +AeroDyn['B1N1STVy'] = False # (m/s); y-component of structural translational velocity at Blade 1, Node 1; local blade coordinate system +AeroDyn['B1N2STVy'] = False # (m/s); y-component of structural translational velocity at Blade 1, Node 2; local blade coordinate system +AeroDyn['B1N3STVy'] = False # (m/s); y-component of structural translational velocity at Blade 1, Node 3; local blade coordinate system +AeroDyn['B1N4STVy'] = False # (m/s); y-component of structural translational velocity at Blade 1, Node 4; local blade coordinate system +AeroDyn['B1N5STVy'] = False # (m/s); y-component of structural translational velocity at Blade 1, Node 5; local blade coordinate system +AeroDyn['B1N6STVy'] = False # (m/s); y-component of structural translational velocity at Blade 1, Node 6; local blade coordinate system +AeroDyn['B1N7STVy'] = False # (m/s); y-component of structural translational velocity at Blade 1, Node 7; local blade coordinate system +AeroDyn['B1N8STVy'] = False # (m/s); y-component of structural translational velocity at Blade 1, Node 8; local blade coordinate system +AeroDyn['B1N9STVy'] = False # (m/s); y-component of structural translational velocity at Blade 1, Node 9; local blade coordinate system +AeroDyn['B1N1STVz'] = False # (m/s); z-component of structural translational velocity at Blade 1, Node 1; local blade coordinate system +AeroDyn['B1N2STVz'] = False # (m/s); z-component of structural translational velocity at Blade 1, Node 2; local blade coordinate system +AeroDyn['B1N3STVz'] = False # (m/s); z-component of structural translational velocity at Blade 1, Node 3; local blade coordinate system +AeroDyn['B1N4STVz'] = False # (m/s); z-component of structural translational velocity at Blade 1, Node 4; local blade coordinate system +AeroDyn['B1N5STVz'] = False # (m/s); z-component of structural translational velocity at Blade 1, Node 5; local blade coordinate system +AeroDyn['B1N6STVz'] = False # (m/s); z-component of structural translational velocity at Blade 1, Node 6; local blade coordinate system +AeroDyn['B1N7STVz'] = False # (m/s); z-component of structural translational velocity at Blade 1, Node 7; local blade coordinate system +AeroDyn['B1N8STVz'] = False # (m/s); z-component of structural translational velocity at Blade 1, Node 8; local blade coordinate system +AeroDyn['B1N9STVz'] = False # (m/s); z-component of structural translational velocity at Blade 1, Node 9; local blade coordinate system +AeroDyn['B2N1STVx'] = False # (m/s); x-component of structural translational velocity at Blade 2, Node 1; local blade coordinate system +AeroDyn['B2N2STVx'] = False # (m/s); x-component of structural translational velocity at Blade 2, Node 2; local blade coordinate system +AeroDyn['B2N3STVx'] = False # (m/s); x-component of structural translational velocity at Blade 2, Node 3; local blade coordinate system +AeroDyn['B2N4STVx'] = False # (m/s); x-component of structural translational velocity at Blade 2, Node 4; local blade coordinate system +AeroDyn['B2N5STVx'] = False # (m/s); x-component of structural translational velocity at Blade 2, Node 5; local blade coordinate system +AeroDyn['B2N6STVx'] = False # (m/s); x-component of structural translational velocity at Blade 2, Node 6; local blade coordinate system +AeroDyn['B2N7STVx'] = False # (m/s); x-component of structural translational velocity at Blade 2, Node 7; local blade coordinate system +AeroDyn['B2N8STVx'] = False # (m/s); x-component of structural translational velocity at Blade 2, Node 8; local blade coordinate system +AeroDyn['B2N9STVx'] = False # (m/s); x-component of structural translational velocity at Blade 2, Node 9; local blade coordinate system +AeroDyn['B2N1STVy'] = False # (m/s); y-component of structural translational velocity at Blade 2, Node 1; local blade coordinate system +AeroDyn['B2N2STVy'] = False # (m/s); y-component of structural translational velocity at Blade 2, Node 2; local blade coordinate system +AeroDyn['B2N3STVy'] = False # (m/s); y-component of structural translational velocity at Blade 2, Node 3; local blade coordinate system +AeroDyn['B2N4STVy'] = False # (m/s); y-component of structural translational velocity at Blade 2, Node 4; local blade coordinate system +AeroDyn['B2N5STVy'] = False # (m/s); y-component of structural translational velocity at Blade 2, Node 5; local blade coordinate system +AeroDyn['B2N6STVy'] = False # (m/s); y-component of structural translational velocity at Blade 2, Node 6; local blade coordinate system +AeroDyn['B2N7STVy'] = False # (m/s); y-component of structural translational velocity at Blade 2, Node 7; local blade coordinate system +AeroDyn['B2N8STVy'] = False # (m/s); y-component of structural translational velocity at Blade 2, Node 8; local blade coordinate system +AeroDyn['B2N9STVy'] = False # (m/s); y-component of structural translational velocity at Blade 2, Node 9; local blade coordinate system +AeroDyn['B2N1STVz'] = False # (m/s); z-component of structural translational velocity at Blade 2, Node 1; local blade coordinate system +AeroDyn['B2N2STVz'] = False # (m/s); z-component of structural translational velocity at Blade 2, Node 2; local blade coordinate system +AeroDyn['B2N3STVz'] = False # (m/s); z-component of structural translational velocity at Blade 2, Node 3; local blade coordinate system +AeroDyn['B2N4STVz'] = False # (m/s); z-component of structural translational velocity at Blade 2, Node 4; local blade coordinate system +AeroDyn['B2N5STVz'] = False # (m/s); z-component of structural translational velocity at Blade 2, Node 5; local blade coordinate system +AeroDyn['B2N6STVz'] = False # (m/s); z-component of structural translational velocity at Blade 2, Node 6; local blade coordinate system +AeroDyn['B2N7STVz'] = False # (m/s); z-component of structural translational velocity at Blade 2, Node 7; local blade coordinate system +AeroDyn['B2N8STVz'] = False # (m/s); z-component of structural translational velocity at Blade 2, Node 8; local blade coordinate system +AeroDyn['B2N9STVz'] = False # (m/s); z-component of structural translational velocity at Blade 2, Node 9; local blade coordinate system +AeroDyn['B3N1STVx'] = False # (m/s); x-component of structural translational velocity at Blade 3, Node 1; local blade coordinate system +AeroDyn['B3N2STVx'] = False # (m/s); x-component of structural translational velocity at Blade 3, Node 2; local blade coordinate system +AeroDyn['B3N3STVx'] = False # (m/s); x-component of structural translational velocity at Blade 3, Node 3; local blade coordinate system +AeroDyn['B3N4STVx'] = False # (m/s); x-component of structural translational velocity at Blade 3, Node 4; local blade coordinate system +AeroDyn['B3N5STVx'] = False # (m/s); x-component of structural translational velocity at Blade 3, Node 5; local blade coordinate system +AeroDyn['B3N6STVx'] = False # (m/s); x-component of structural translational velocity at Blade 3, Node 6; local blade coordinate system +AeroDyn['B3N7STVx'] = False # (m/s); x-component of structural translational velocity at Blade 3, Node 7; local blade coordinate system +AeroDyn['B3N8STVx'] = False # (m/s); x-component of structural translational velocity at Blade 3, Node 8; local blade coordinate system +AeroDyn['B3N9STVx'] = False # (m/s); x-component of structural translational velocity at Blade 3, Node 9; local blade coordinate system +AeroDyn['B3N1STVy'] = False # (m/s); y-component of structural translational velocity at Blade 3, Node 1; local blade coordinate system +AeroDyn['B3N2STVy'] = False # (m/s); y-component of structural translational velocity at Blade 3, Node 2; local blade coordinate system +AeroDyn['B3N3STVy'] = False # (m/s); y-component of structural translational velocity at Blade 3, Node 3; local blade coordinate system +AeroDyn['B3N4STVy'] = False # (m/s); y-component of structural translational velocity at Blade 3, Node 4; local blade coordinate system +AeroDyn['B3N5STVy'] = False # (m/s); y-component of structural translational velocity at Blade 3, Node 5; local blade coordinate system +AeroDyn['B3N6STVy'] = False # (m/s); y-component of structural translational velocity at Blade 3, Node 6; local blade coordinate system +AeroDyn['B3N7STVy'] = False # (m/s); y-component of structural translational velocity at Blade 3, Node 7; local blade coordinate system +AeroDyn['B3N8STVy'] = False # (m/s); y-component of structural translational velocity at Blade 3, Node 8; local blade coordinate system +AeroDyn['B3N9STVy'] = False # (m/s); y-component of structural translational velocity at Blade 3, Node 9; local blade coordinate system +AeroDyn['B3N1STVz'] = False # (m/s); z-component of structural translational velocity at Blade 3, Node 1; local blade coordinate system +AeroDyn['B3N2STVz'] = False # (m/s); z-component of structural translational velocity at Blade 3, Node 2; local blade coordinate system +AeroDyn['B3N3STVz'] = False # (m/s); z-component of structural translational velocity at Blade 3, Node 3; local blade coordinate system +AeroDyn['B3N4STVz'] = False # (m/s); z-component of structural translational velocity at Blade 3, Node 4; local blade coordinate system +AeroDyn['B3N5STVz'] = False # (m/s); z-component of structural translational velocity at Blade 3, Node 5; local blade coordinate system +AeroDyn['B3N6STVz'] = False # (m/s); z-component of structural translational velocity at Blade 3, Node 6; local blade coordinate system +AeroDyn['B3N7STVz'] = False # (m/s); z-component of structural translational velocity at Blade 3, Node 7; local blade coordinate system +AeroDyn['B3N8STVz'] = False # (m/s); z-component of structural translational velocity at Blade 3, Node 8; local blade coordinate system +AeroDyn['B3N9STVz'] = False # (m/s); z-component of structural translational velocity at Blade 3, Node 9; local blade coordinate system +AeroDyn['B1N1VRel'] = False # (m/s); Relvative wind speed at Blade 1, Node 1; +AeroDyn['B1N2VRel'] = False # (m/s); Relvative wind speed at Blade 1, Node 2; +AeroDyn['B1N3VRel'] = False # (m/s); Relvative wind speed at Blade 1, Node 3; +AeroDyn['B1N4VRel'] = False # (m/s); Relvative wind speed at Blade 1, Node 4; +AeroDyn['B1N5VRel'] = False # (m/s); Relvative wind speed at Blade 1, Node 5; +AeroDyn['B1N6VRel'] = False # (m/s); Relvative wind speed at Blade 1, Node 6; +AeroDyn['B1N7VRel'] = False # (m/s); Relvative wind speed at Blade 1, Node 7; +AeroDyn['B1N8VRel'] = False # (m/s); Relvative wind speed at Blade 1, Node 8; +AeroDyn['B1N9VRel'] = False # (m/s); Relvative wind speed at Blade 1, Node 9; +AeroDyn['B2N1VRel'] = False # (m/s); Relvative wind speed at Blade 2, Node 1; +AeroDyn['B2N2VRel'] = False # (m/s); Relvative wind speed at Blade 2, Node 2; +AeroDyn['B2N3VRel'] = False # (m/s); Relvative wind speed at Blade 2, Node 3; +AeroDyn['B2N4VRel'] = False # (m/s); Relvative wind speed at Blade 2, Node 4; +AeroDyn['B2N5VRel'] = False # (m/s); Relvative wind speed at Blade 2, Node 5; +AeroDyn['B2N6VRel'] = False # (m/s); Relvative wind speed at Blade 2, Node 6; +AeroDyn['B2N7VRel'] = False # (m/s); Relvative wind speed at Blade 2, Node 7; +AeroDyn['B2N8VRel'] = False # (m/s); Relvative wind speed at Blade 2, Node 8; +AeroDyn['B2N9VRel'] = False # (m/s); Relvative wind speed at Blade 2, Node 9; +AeroDyn['B3N1VRel'] = False # (m/s); Relvative wind speed at Blade 3, Node 1; +AeroDyn['B3N2VRel'] = False # (m/s); Relvative wind speed at Blade 3, Node 2; +AeroDyn['B3N3VRel'] = False # (m/s); Relvative wind speed at Blade 3, Node 3; +AeroDyn['B3N4VRel'] = False # (m/s); Relvative wind speed at Blade 3, Node 4; +AeroDyn['B3N5VRel'] = False # (m/s); Relvative wind speed at Blade 3, Node 5; +AeroDyn['B3N6VRel'] = False # (m/s); Relvative wind speed at Blade 3, Node 6; +AeroDyn['B3N7VRel'] = False # (m/s); Relvative wind speed at Blade 3, Node 7; +AeroDyn['B3N8VRel'] = False # (m/s); Relvative wind speed at Blade 3, Node 8; +AeroDyn['B3N9VRel'] = False # (m/s); Relvative wind speed at Blade 3, Node 9; +AeroDyn['B1N1DynP'] = False # (Pa); Dynamic pressure at Blade 1, Node 1; +AeroDyn['B1N2DynP'] = False # (Pa); Dynamic pressure at Blade 1, Node 2; +AeroDyn['B1N3DynP'] = False # (Pa); Dynamic pressure at Blade 1, Node 3; +AeroDyn['B1N4DynP'] = False # (Pa); Dynamic pressure at Blade 1, Node 4; +AeroDyn['B1N5DynP'] = False # (Pa); Dynamic pressure at Blade 1, Node 5; +AeroDyn['B1N6DynP'] = False # (Pa); Dynamic pressure at Blade 1, Node 6; +AeroDyn['B1N7DynP'] = False # (Pa); Dynamic pressure at Blade 1, Node 7; +AeroDyn['B1N8DynP'] = False # (Pa); Dynamic pressure at Blade 1, Node 8; +AeroDyn['B1N9DynP'] = False # (Pa); Dynamic pressure at Blade 1, Node 9; +AeroDyn['B2N1DynP'] = False # (Pa); Dynamic pressure at Blade 2, Node 1; +AeroDyn['B2N2DynP'] = False # (Pa); Dynamic pressure at Blade 2, Node 2; +AeroDyn['B2N3DynP'] = False # (Pa); Dynamic pressure at Blade 2, Node 3; +AeroDyn['B2N4DynP'] = False # (Pa); Dynamic pressure at Blade 2, Node 4; +AeroDyn['B2N5DynP'] = False # (Pa); Dynamic pressure at Blade 2, Node 5; +AeroDyn['B2N6DynP'] = False # (Pa); Dynamic pressure at Blade 2, Node 6; +AeroDyn['B2N7DynP'] = False # (Pa); Dynamic pressure at Blade 2, Node 7; +AeroDyn['B2N8DynP'] = False # (Pa); Dynamic pressure at Blade 2, Node 8; +AeroDyn['B2N9DynP'] = False # (Pa); Dynamic pressure at Blade 2, Node 9; +AeroDyn['B3N1DynP'] = False # (Pa); Dynamic pressure at Blade 3, Node 1; +AeroDyn['B3N2DynP'] = False # (Pa); Dynamic pressure at Blade 3, Node 2; +AeroDyn['B3N3DynP'] = False # (Pa); Dynamic pressure at Blade 3, Node 3; +AeroDyn['B3N4DynP'] = False # (Pa); Dynamic pressure at Blade 3, Node 4; +AeroDyn['B3N5DynP'] = False # (Pa); Dynamic pressure at Blade 3, Node 5; +AeroDyn['B3N6DynP'] = False # (Pa); Dynamic pressure at Blade 3, Node 6; +AeroDyn['B3N7DynP'] = False # (Pa); Dynamic pressure at Blade 3, Node 7; +AeroDyn['B3N8DynP'] = False # (Pa); Dynamic pressure at Blade 3, Node 8; +AeroDyn['B3N9DynP'] = False # (Pa); Dynamic pressure at Blade 3, Node 9; +AeroDyn['B1N1Re'] = False # (-); Reynolds number (in millions) at Blade 1, Node 1; +AeroDyn['B1N2Re'] = False # (-); Reynolds number (in millions) at Blade 1, Node 2; +AeroDyn['B1N3Re'] = False # (-); Reynolds number (in millions) at Blade 1, Node 3; +AeroDyn['B1N4Re'] = False # (-); Reynolds number (in millions) at Blade 1, Node 4; +AeroDyn['B1N5Re'] = False # (-); Reynolds number (in millions) at Blade 1, Node 5; +AeroDyn['B1N6Re'] = False # (-); Reynolds number (in millions) at Blade 1, Node 6; +AeroDyn['B1N7Re'] = False # (-); Reynolds number (in millions) at Blade 1, Node 7; +AeroDyn['B1N8Re'] = False # (-); Reynolds number (in millions) at Blade 1, Node 8; +AeroDyn['B1N9Re'] = False # (-); Reynolds number (in millions) at Blade 1, Node 9; +AeroDyn['B2N1Re'] = False # (-); Reynolds number (in millions) at Blade 2, Node 1; +AeroDyn['B2N2Re'] = False # (-); Reynolds number (in millions) at Blade 2, Node 2; +AeroDyn['B2N3Re'] = False # (-); Reynolds number (in millions) at Blade 2, Node 3; +AeroDyn['B2N4Re'] = False # (-); Reynolds number (in millions) at Blade 2, Node 4; +AeroDyn['B2N5Re'] = False # (-); Reynolds number (in millions) at Blade 2, Node 5; +AeroDyn['B2N6Re'] = False # (-); Reynolds number (in millions) at Blade 2, Node 6; +AeroDyn['B2N7Re'] = False # (-); Reynolds number (in millions) at Blade 2, Node 7; +AeroDyn['B2N8Re'] = False # (-); Reynolds number (in millions) at Blade 2, Node 8; +AeroDyn['B2N9Re'] = False # (-); Reynolds number (in millions) at Blade 2, Node 9; +AeroDyn['B3N1Re'] = False # (-); Reynolds number (in millions) at Blade 3, Node 1; +AeroDyn['B3N2Re'] = False # (-); Reynolds number (in millions) at Blade 3, Node 2; +AeroDyn['B3N3Re'] = False # (-); Reynolds number (in millions) at Blade 3, Node 3; +AeroDyn['B3N4Re'] = False # (-); Reynolds number (in millions) at Blade 3, Node 4; +AeroDyn['B3N5Re'] = False # (-); Reynolds number (in millions) at Blade 3, Node 5; +AeroDyn['B3N6Re'] = False # (-); Reynolds number (in millions) at Blade 3, Node 6; +AeroDyn['B3N7Re'] = False # (-); Reynolds number (in millions) at Blade 3, Node 7; +AeroDyn['B3N8Re'] = False # (-); Reynolds number (in millions) at Blade 3, Node 8; +AeroDyn['B3N9Re'] = False # (-); Reynolds number (in millions) at Blade 3, Node 9; +AeroDyn['B1N1M'] = False # (-); Mach number at Blade 1, Node 1; +AeroDyn['B1N2M'] = False # (-); Mach number at Blade 1, Node 2; +AeroDyn['B1N3M'] = False # (-); Mach number at Blade 1, Node 3; +AeroDyn['B1N4M'] = False # (-); Mach number at Blade 1, Node 4; +AeroDyn['B1N5M'] = False # (-); Mach number at Blade 1, Node 5; +AeroDyn['B1N6M'] = False # (-); Mach number at Blade 1, Node 6; +AeroDyn['B1N7M'] = False # (-); Mach number at Blade 1, Node 7; +AeroDyn['B1N8M'] = False # (-); Mach number at Blade 1, Node 8; +AeroDyn['B1N9M'] = False # (-); Mach number at Blade 1, Node 9; +AeroDyn['B2N1M'] = False # (-); Mach number at Blade 2, Node 1; +AeroDyn['B2N2M'] = False # (-); Mach number at Blade 2, Node 2; +AeroDyn['B2N3M'] = False # (-); Mach number at Blade 2, Node 3; +AeroDyn['B2N4M'] = False # (-); Mach number at Blade 2, Node 4; +AeroDyn['B2N5M'] = False # (-); Mach number at Blade 2, Node 5; +AeroDyn['B2N6M'] = False # (-); Mach number at Blade 2, Node 6; +AeroDyn['B2N7M'] = False # (-); Mach number at Blade 2, Node 7; +AeroDyn['B2N8M'] = False # (-); Mach number at Blade 2, Node 8; +AeroDyn['B2N9M'] = False # (-); Mach number at Blade 2, Node 9; +AeroDyn['B3N1M'] = False # (-); Mach number at Blade 3, Node 1; +AeroDyn['B3N2M'] = False # (-); Mach number at Blade 3, Node 2; +AeroDyn['B3N3M'] = False # (-); Mach number at Blade 3, Node 3; +AeroDyn['B3N4M'] = False # (-); Mach number at Blade 3, Node 4; +AeroDyn['B3N5M'] = False # (-); Mach number at Blade 3, Node 5; +AeroDyn['B3N6M'] = False # (-); Mach number at Blade 3, Node 6; +AeroDyn['B3N7M'] = False # (-); Mach number at Blade 3, Node 7; +AeroDyn['B3N8M'] = False # (-); Mach number at Blade 3, Node 8; +AeroDyn['B3N9M'] = False # (-); Mach number at Blade 3, Node 9; +AeroDyn['B1N1Vindx'] = False # (m/s); Axial induced wind velocity at Blade 1, Node 1; +AeroDyn['B1N2Vindx'] = False # (m/s); Axial induced wind velocity at Blade 1, Node 2; +AeroDyn['B1N3Vindx'] = False # (m/s); Axial induced wind velocity at Blade 1, Node 3; +AeroDyn['B1N4Vindx'] = False # (m/s); Axial induced wind velocity at Blade 1, Node 4; +AeroDyn['B1N5Vindx'] = False # (m/s); Axial induced wind velocity at Blade 1, Node 5; +AeroDyn['B1N6Vindx'] = False # (m/s); Axial induced wind velocity at Blade 1, Node 6; +AeroDyn['B1N7Vindx'] = False # (m/s); Axial induced wind velocity at Blade 1, Node 7; +AeroDyn['B1N8Vindx'] = False # (m/s); Axial induced wind velocity at Blade 1, Node 8; +AeroDyn['B1N9Vindx'] = False # (m/s); Axial induced wind velocity at Blade 1, Node 9; +AeroDyn['B2N1Vindx'] = False # (m/s); Axial induced wind velocity at Blade 2, Node 1; +AeroDyn['B2N2Vindx'] = False # (m/s); Axial induced wind velocity at Blade 2, Node 2; +AeroDyn['B2N3Vindx'] = False # (m/s); Axial induced wind velocity at Blade 2, Node 3; +AeroDyn['B2N4Vindx'] = False # (m/s); Axial induced wind velocity at Blade 2, Node 4; +AeroDyn['B2N5Vindx'] = False # (m/s); Axial induced wind velocity at Blade 2, Node 5; +AeroDyn['B2N6Vindx'] = False # (m/s); Axial induced wind velocity at Blade 2, Node 6; +AeroDyn['B2N7Vindx'] = False # (m/s); Axial induced wind velocity at Blade 2, Node 7; +AeroDyn['B2N8Vindx'] = False # (m/s); Axial induced wind velocity at Blade 2, Node 8; +AeroDyn['B2N9Vindx'] = False # (m/s); Axial induced wind velocity at Blade 2, Node 9; +AeroDyn['B3N1Vindx'] = False # (m/s); Axial induced wind velocity at Blade 3, Node 1; +AeroDyn['B3N2Vindx'] = False # (m/s); Axial induced wind velocity at Blade 3, Node 2; +AeroDyn['B3N3Vindx'] = False # (m/s); Axial induced wind velocity at Blade 3, Node 3; +AeroDyn['B3N4Vindx'] = False # (m/s); Axial induced wind velocity at Blade 3, Node 4; +AeroDyn['B3N5Vindx'] = False # (m/s); Axial induced wind velocity at Blade 3, Node 5; +AeroDyn['B3N6Vindx'] = False # (m/s); Axial induced wind velocity at Blade 3, Node 6; +AeroDyn['B3N7Vindx'] = False # (m/s); Axial induced wind velocity at Blade 3, Node 7; +AeroDyn['B3N8Vindx'] = False # (m/s); Axial induced wind velocity at Blade 3, Node 8; +AeroDyn['B3N9Vindx'] = False # (m/s); Axial induced wind velocity at Blade 3, Node 9; +AeroDyn['B1N1Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 1, Node 1; +AeroDyn['B1N2Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 1, Node 2; +AeroDyn['B1N3Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 1, Node 3; +AeroDyn['B1N4Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 1, Node 4; +AeroDyn['B1N5Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 1, Node 5; +AeroDyn['B1N6Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 1, Node 6; +AeroDyn['B1N7Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 1, Node 7; +AeroDyn['B1N8Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 1, Node 8; +AeroDyn['B1N9Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 1, Node 9; +AeroDyn['B2N1Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 2, Node 1; +AeroDyn['B2N2Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 2, Node 2; +AeroDyn['B2N3Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 2, Node 3; +AeroDyn['B2N4Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 2, Node 4; +AeroDyn['B2N5Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 2, Node 5; +AeroDyn['B2N6Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 2, Node 6; +AeroDyn['B2N7Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 2, Node 7; +AeroDyn['B2N8Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 2, Node 8; +AeroDyn['B2N9Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 2, Node 9; +AeroDyn['B3N1Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 3, Node 1; +AeroDyn['B3N2Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 3, Node 2; +AeroDyn['B3N3Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 3, Node 3; +AeroDyn['B3N4Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 3, Node 4; +AeroDyn['B3N5Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 3, Node 5; +AeroDyn['B3N6Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 3, Node 6; +AeroDyn['B3N7Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 3, Node 7; +AeroDyn['B3N8Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 3, Node 8; +AeroDyn['B3N9Vindy'] = False # (m/s); Tangential induced wind velocity at Blade 3, Node 9; +AeroDyn['B1N1AxInd'] = False # (-); Axial induction factor at Blade 1, Node 1; +AeroDyn['B1N2AxInd'] = False # (-); Axial induction factor at Blade 1, Node 2; +AeroDyn['B1N3AxInd'] = False # (-); Axial induction factor at Blade 1, Node 3; +AeroDyn['B1N4AxInd'] = False # (-); Axial induction factor at Blade 1, Node 4; +AeroDyn['B1N5AxInd'] = False # (-); Axial induction factor at Blade 1, Node 5; +AeroDyn['B1N6AxInd'] = False # (-); Axial induction factor at Blade 1, Node 6; +AeroDyn['B1N7AxInd'] = False # (-); Axial induction factor at Blade 1, Node 7; +AeroDyn['B1N8AxInd'] = False # (-); Axial induction factor at Blade 1, Node 8; +AeroDyn['B1N9AxInd'] = False # (-); Axial induction factor at Blade 1, Node 9; +AeroDyn['B2N1AxInd'] = False # (-); Axial induction factor at Blade 2, Node 1; +AeroDyn['B2N2AxInd'] = False # (-); Axial induction factor at Blade 2, Node 2; +AeroDyn['B2N3AxInd'] = False # (-); Axial induction factor at Blade 2, Node 3; +AeroDyn['B2N4AxInd'] = False # (-); Axial induction factor at Blade 2, Node 4; +AeroDyn['B2N5AxInd'] = False # (-); Axial induction factor at Blade 2, Node 5; +AeroDyn['B2N6AxInd'] = False # (-); Axial induction factor at Blade 2, Node 6; +AeroDyn['B2N7AxInd'] = False # (-); Axial induction factor at Blade 2, Node 7; +AeroDyn['B2N8AxInd'] = False # (-); Axial induction factor at Blade 2, Node 8; +AeroDyn['B2N9AxInd'] = False # (-); Axial induction factor at Blade 2, Node 9; +AeroDyn['B3N1AxInd'] = False # (-); Axial induction factor at Blade 3, Node 1; +AeroDyn['B3N2AxInd'] = False # (-); Axial induction factor at Blade 3, Node 2; +AeroDyn['B3N3AxInd'] = False # (-); Axial induction factor at Blade 3, Node 3; +AeroDyn['B3N4AxInd'] = False # (-); Axial induction factor at Blade 3, Node 4; +AeroDyn['B3N5AxInd'] = False # (-); Axial induction factor at Blade 3, Node 5; +AeroDyn['B3N6AxInd'] = False # (-); Axial induction factor at Blade 3, Node 6; +AeroDyn['B3N7AxInd'] = False # (-); Axial induction factor at Blade 3, Node 7; +AeroDyn['B3N8AxInd'] = False # (-); Axial induction factor at Blade 3, Node 8; +AeroDyn['B3N9AxInd'] = False # (-); Axial induction factor at Blade 3, Node 9; +AeroDyn['B1N1TnInd'] = False # (-); Tangential induction factor at Blade 1, Node 1; +AeroDyn['B1N2TnInd'] = False # (-); Tangential induction factor at Blade 1, Node 2; +AeroDyn['B1N3TnInd'] = False # (-); Tangential induction factor at Blade 1, Node 3; +AeroDyn['B1N4TnInd'] = False # (-); Tangential induction factor at Blade 1, Node 4; +AeroDyn['B1N5TnInd'] = False # (-); Tangential induction factor at Blade 1, Node 5; +AeroDyn['B1N6TnInd'] = False # (-); Tangential induction factor at Blade 1, Node 6; +AeroDyn['B1N7TnInd'] = False # (-); Tangential induction factor at Blade 1, Node 7; +AeroDyn['B1N8TnInd'] = False # (-); Tangential induction factor at Blade 1, Node 8; +AeroDyn['B1N9TnInd'] = False # (-); Tangential induction factor at Blade 1, Node 9; +AeroDyn['B2N1TnInd'] = False # (-); Tangential induction factor at Blade 2, Node 1; +AeroDyn['B2N2TnInd'] = False # (-); Tangential induction factor at Blade 2, Node 2; +AeroDyn['B2N3TnInd'] = False # (-); Tangential induction factor at Blade 2, Node 3; +AeroDyn['B2N4TnInd'] = False # (-); Tangential induction factor at Blade 2, Node 4; +AeroDyn['B2N5TnInd'] = False # (-); Tangential induction factor at Blade 2, Node 5; +AeroDyn['B2N6TnInd'] = False # (-); Tangential induction factor at Blade 2, Node 6; +AeroDyn['B2N7TnInd'] = False # (-); Tangential induction factor at Blade 2, Node 7; +AeroDyn['B2N8TnInd'] = False # (-); Tangential induction factor at Blade 2, Node 8; +AeroDyn['B2N9TnInd'] = False # (-); Tangential induction factor at Blade 2, Node 9; +AeroDyn['B3N1TnInd'] = False # (-); Tangential induction factor at Blade 3, Node 1; +AeroDyn['B3N2TnInd'] = False # (-); Tangential induction factor at Blade 3, Node 2; +AeroDyn['B3N3TnInd'] = False # (-); Tangential induction factor at Blade 3, Node 3; +AeroDyn['B3N4TnInd'] = False # (-); Tangential induction factor at Blade 3, Node 4; +AeroDyn['B3N5TnInd'] = False # (-); Tangential induction factor at Blade 3, Node 5; +AeroDyn['B3N6TnInd'] = False # (-); Tangential induction factor at Blade 3, Node 6; +AeroDyn['B3N7TnInd'] = False # (-); Tangential induction factor at Blade 3, Node 7; +AeroDyn['B3N8TnInd'] = False # (-); Tangential induction factor at Blade 3, Node 8; +AeroDyn['B3N9TnInd'] = False # (-); Tangential induction factor at Blade 3, Node 9; +AeroDyn['B1N1Alpha'] = False # (deg); Angle of attack at Blade 1, Node 1; +AeroDyn['B1N2Alpha'] = False # (deg); Angle of attack at Blade 1, Node 2; +AeroDyn['B1N3Alpha'] = False # (deg); Angle of attack at Blade 1, Node 3; +AeroDyn['B1N4Alpha'] = False # (deg); Angle of attack at Blade 1, Node 4; +AeroDyn['B1N5Alpha'] = False # (deg); Angle of attack at Blade 1, Node 5; +AeroDyn['B1N6Alpha'] = False # (deg); Angle of attack at Blade 1, Node 6; +AeroDyn['B1N7Alpha'] = False # (deg); Angle of attack at Blade 1, Node 7; +AeroDyn['B1N8Alpha'] = False # (deg); Angle of attack at Blade 1, Node 8; +AeroDyn['B1N9Alpha'] = False # (deg); Angle of attack at Blade 1, Node 9; +AeroDyn['B2N1Alpha'] = False # (deg); Angle of attack at Blade 2, Node 1; +AeroDyn['B2N2Alpha'] = False # (deg); Angle of attack at Blade 2, Node 2; +AeroDyn['B2N3Alpha'] = False # (deg); Angle of attack at Blade 2, Node 3; +AeroDyn['B2N4Alpha'] = False # (deg); Angle of attack at Blade 2, Node 4; +AeroDyn['B2N5Alpha'] = False # (deg); Angle of attack at Blade 2, Node 5; +AeroDyn['B2N6Alpha'] = False # (deg); Angle of attack at Blade 2, Node 6; +AeroDyn['B2N7Alpha'] = False # (deg); Angle of attack at Blade 2, Node 7; +AeroDyn['B2N8Alpha'] = False # (deg); Angle of attack at Blade 2, Node 8; +AeroDyn['B2N9Alpha'] = False # (deg); Angle of attack at Blade 2, Node 9; +AeroDyn['B3N1Alpha'] = False # (deg); Angle of attack at Blade 3, Node 1; +AeroDyn['B3N2Alpha'] = False # (deg); Angle of attack at Blade 3, Node 2; +AeroDyn['B3N3Alpha'] = False # (deg); Angle of attack at Blade 3, Node 3; +AeroDyn['B3N4Alpha'] = False # (deg); Angle of attack at Blade 3, Node 4; +AeroDyn['B3N5Alpha'] = False # (deg); Angle of attack at Blade 3, Node 5; +AeroDyn['B3N6Alpha'] = False # (deg); Angle of attack at Blade 3, Node 6; +AeroDyn['B3N7Alpha'] = False # (deg); Angle of attack at Blade 3, Node 7; +AeroDyn['B3N8Alpha'] = False # (deg); Angle of attack at Blade 3, Node 8; +AeroDyn['B3N9Alpha'] = False # (deg); Angle of attack at Blade 3, Node 9; +AeroDyn['B1N1Theta'] = False # (deg); Pitch+Twist angle at Blade 1, Node 1; +AeroDyn['B1N2Theta'] = False # (deg); Pitch+Twist angle at Blade 1, Node 2; +AeroDyn['B1N3Theta'] = False # (deg); Pitch+Twist angle at Blade 1, Node 3; +AeroDyn['B1N4Theta'] = False # (deg); Pitch+Twist angle at Blade 1, Node 4; +AeroDyn['B1N5Theta'] = False # (deg); Pitch+Twist angle at Blade 1, Node 5; +AeroDyn['B1N6Theta'] = False # (deg); Pitch+Twist angle at Blade 1, Node 6; +AeroDyn['B1N7Theta'] = False # (deg); Pitch+Twist angle at Blade 1, Node 7; +AeroDyn['B1N8Theta'] = False # (deg); Pitch+Twist angle at Blade 1, Node 8; +AeroDyn['B1N9Theta'] = False # (deg); Pitch+Twist angle at Blade 1, Node 9; +AeroDyn['B2N1Theta'] = False # (deg); Pitch+Twist angle at Blade 2, Node 1; +AeroDyn['B2N2Theta'] = False # (deg); Pitch+Twist angle at Blade 2, Node 2; +AeroDyn['B2N3Theta'] = False # (deg); Pitch+Twist angle at Blade 2, Node 3; +AeroDyn['B2N4Theta'] = False # (deg); Pitch+Twist angle at Blade 2, Node 4; +AeroDyn['B2N5Theta'] = False # (deg); Pitch+Twist angle at Blade 2, Node 5; +AeroDyn['B2N6Theta'] = False # (deg); Pitch+Twist angle at Blade 2, Node 6; +AeroDyn['B2N7Theta'] = False # (deg); Pitch+Twist angle at Blade 2, Node 7; +AeroDyn['B2N8Theta'] = False # (deg); Pitch+Twist angle at Blade 2, Node 8; +AeroDyn['B2N9Theta'] = False # (deg); Pitch+Twist angle at Blade 2, Node 9; +AeroDyn['B3N1Theta'] = False # (deg); Pitch+Twist angle at Blade 3, Node 1; +AeroDyn['B3N2Theta'] = False # (deg); Pitch+Twist angle at Blade 3, Node 2; +AeroDyn['B3N3Theta'] = False # (deg); Pitch+Twist angle at Blade 3, Node 3; +AeroDyn['B3N4Theta'] = False # (deg); Pitch+Twist angle at Blade 3, Node 4; +AeroDyn['B3N5Theta'] = False # (deg); Pitch+Twist angle at Blade 3, Node 5; +AeroDyn['B3N6Theta'] = False # (deg); Pitch+Twist angle at Blade 3, Node 6; +AeroDyn['B3N7Theta'] = False # (deg); Pitch+Twist angle at Blade 3, Node 7; +AeroDyn['B3N8Theta'] = False # (deg); Pitch+Twist angle at Blade 3, Node 8; +AeroDyn['B3N9Theta'] = False # (deg); Pitch+Twist angle at Blade 3, Node 9; +AeroDyn['B1N1Phi'] = False # (deg); Inflow angle at Blade 1, Node 1; +AeroDyn['B1N2Phi'] = False # (deg); Inflow angle at Blade 1, Node 2; +AeroDyn['B1N3Phi'] = False # (deg); Inflow angle at Blade 1, Node 3; +AeroDyn['B1N4Phi'] = False # (deg); Inflow angle at Blade 1, Node 4; +AeroDyn['B1N5Phi'] = False # (deg); Inflow angle at Blade 1, Node 5; +AeroDyn['B1N6Phi'] = False # (deg); Inflow angle at Blade 1, Node 6; +AeroDyn['B1N7Phi'] = False # (deg); Inflow angle at Blade 1, Node 7; +AeroDyn['B1N8Phi'] = False # (deg); Inflow angle at Blade 1, Node 8; +AeroDyn['B1N9Phi'] = False # (deg); Inflow angle at Blade 1, Node 9; +AeroDyn['B2N1Phi'] = False # (deg); Inflow angle at Blade 2, Node 1; +AeroDyn['B2N2Phi'] = False # (deg); Inflow angle at Blade 2, Node 2; +AeroDyn['B2N3Phi'] = False # (deg); Inflow angle at Blade 2, Node 3; +AeroDyn['B2N4Phi'] = False # (deg); Inflow angle at Blade 2, Node 4; +AeroDyn['B2N5Phi'] = False # (deg); Inflow angle at Blade 2, Node 5; +AeroDyn['B2N6Phi'] = False # (deg); Inflow angle at Blade 2, Node 6; +AeroDyn['B2N7Phi'] = False # (deg); Inflow angle at Blade 2, Node 7; +AeroDyn['B2N8Phi'] = False # (deg); Inflow angle at Blade 2, Node 8; +AeroDyn['B2N9Phi'] = False # (deg); Inflow angle at Blade 2, Node 9; +AeroDyn['B3N1Phi'] = False # (deg); Inflow angle at Blade 3, Node 1; +AeroDyn['B3N2Phi'] = False # (deg); Inflow angle at Blade 3, Node 2; +AeroDyn['B3N3Phi'] = False # (deg); Inflow angle at Blade 3, Node 3; +AeroDyn['B3N4Phi'] = False # (deg); Inflow angle at Blade 3, Node 4; +AeroDyn['B3N5Phi'] = False # (deg); Inflow angle at Blade 3, Node 5; +AeroDyn['B3N6Phi'] = False # (deg); Inflow angle at Blade 3, Node 6; +AeroDyn['B3N7Phi'] = False # (deg); Inflow angle at Blade 3, Node 7; +AeroDyn['B3N8Phi'] = False # (deg); Inflow angle at Blade 3, Node 8; +AeroDyn['B3N9Phi'] = False # (deg); Inflow angle at Blade 3, Node 9; +AeroDyn['B1N1Curve'] = False # (deg); Curvature angle at Blade 1, Node 1; +AeroDyn['B1N2Curve'] = False # (deg); Curvature angle at Blade 1, Node 2; +AeroDyn['B1N3Curve'] = False # (deg); Curvature angle at Blade 1, Node 3; +AeroDyn['B1N4Curve'] = False # (deg); Curvature angle at Blade 1, Node 4; +AeroDyn['B1N5Curve'] = False # (deg); Curvature angle at Blade 1, Node 5; +AeroDyn['B1N6Curve'] = False # (deg); Curvature angle at Blade 1, Node 6; +AeroDyn['B1N7Curve'] = False # (deg); Curvature angle at Blade 1, Node 7; +AeroDyn['B1N8Curve'] = False # (deg); Curvature angle at Blade 1, Node 8; +AeroDyn['B1N9Curve'] = False # (deg); Curvature angle at Blade 1, Node 9; +AeroDyn['B2N1Curve'] = False # (deg); Curvature angle at Blade 2, Node 1; +AeroDyn['B2N2Curve'] = False # (deg); Curvature angle at Blade 2, Node 2; +AeroDyn['B2N3Curve'] = False # (deg); Curvature angle at Blade 2, Node 3; +AeroDyn['B2N4Curve'] = False # (deg); Curvature angle at Blade 2, Node 4; +AeroDyn['B2N5Curve'] = False # (deg); Curvature angle at Blade 2, Node 5; +AeroDyn['B2N6Curve'] = False # (deg); Curvature angle at Blade 2, Node 6; +AeroDyn['B2N7Curve'] = False # (deg); Curvature angle at Blade 2, Node 7; +AeroDyn['B2N8Curve'] = False # (deg); Curvature angle at Blade 2, Node 8; +AeroDyn['B2N9Curve'] = False # (deg); Curvature angle at Blade 2, Node 9; +AeroDyn['B3N1Curve'] = False # (deg); Curvature angle at Blade 3, Node 1; +AeroDyn['B3N2Curve'] = False # (deg); Curvature angle at Blade 3, Node 2; +AeroDyn['B3N3Curve'] = False # (deg); Curvature angle at Blade 3, Node 3; +AeroDyn['B3N4Curve'] = False # (deg); Curvature angle at Blade 3, Node 4; +AeroDyn['B3N5Curve'] = False # (deg); Curvature angle at Blade 3, Node 5; +AeroDyn['B3N6Curve'] = False # (deg); Curvature angle at Blade 3, Node 6; +AeroDyn['B3N7Curve'] = False # (deg); Curvature angle at Blade 3, Node 7; +AeroDyn['B3N8Curve'] = False # (deg); Curvature angle at Blade 3, Node 8; +AeroDyn['B3N9Curve'] = False # (deg); Curvature angle at Blade 3, Node 9; +AeroDyn['B1N1Cl'] = False # (-); Lift force coefficient at Blade 1, Node 1; +AeroDyn['B1N2Cl'] = False # (-); Lift force coefficient at Blade 1, Node 2; +AeroDyn['B1N3Cl'] = False # (-); Lift force coefficient at Blade 1, Node 3; +AeroDyn['B1N4Cl'] = False # (-); Lift force coefficient at Blade 1, Node 4; +AeroDyn['B1N5Cl'] = False # (-); Lift force coefficient at Blade 1, Node 5; +AeroDyn['B1N6Cl'] = False # (-); Lift force coefficient at Blade 1, Node 6; +AeroDyn['B1N7Cl'] = False # (-); Lift force coefficient at Blade 1, Node 7; +AeroDyn['B1N8Cl'] = False # (-); Lift force coefficient at Blade 1, Node 8; +AeroDyn['B1N9Cl'] = False # (-); Lift force coefficient at Blade 1, Node 9; +AeroDyn['B2N1Cl'] = False # (-); Lift force coefficient at Blade 2, Node 1; +AeroDyn['B2N2Cl'] = False # (-); Lift force coefficient at Blade 2, Node 2; +AeroDyn['B2N3Cl'] = False # (-); Lift force coefficient at Blade 2, Node 3; +AeroDyn['B2N4Cl'] = False # (-); Lift force coefficient at Blade 2, Node 4; +AeroDyn['B2N5Cl'] = False # (-); Lift force coefficient at Blade 2, Node 5; +AeroDyn['B2N6Cl'] = False # (-); Lift force coefficient at Blade 2, Node 6; +AeroDyn['B2N7Cl'] = False # (-); Lift force coefficient at Blade 2, Node 7; +AeroDyn['B2N8Cl'] = False # (-); Lift force coefficient at Blade 2, Node 8; +AeroDyn['B2N9Cl'] = False # (-); Lift force coefficient at Blade 2, Node 9; +AeroDyn['B3N1Cl'] = False # (-); Lift force coefficient at Blade 3, Node 1; +AeroDyn['B3N2Cl'] = False # (-); Lift force coefficient at Blade 3, Node 2; +AeroDyn['B3N3Cl'] = False # (-); Lift force coefficient at Blade 3, Node 3; +AeroDyn['B3N4Cl'] = False # (-); Lift force coefficient at Blade 3, Node 4; +AeroDyn['B3N5Cl'] = False # (-); Lift force coefficient at Blade 3, Node 5; +AeroDyn['B3N6Cl'] = False # (-); Lift force coefficient at Blade 3, Node 6; +AeroDyn['B3N7Cl'] = False # (-); Lift force coefficient at Blade 3, Node 7; +AeroDyn['B3N8Cl'] = False # (-); Lift force coefficient at Blade 3, Node 8; +AeroDyn['B3N9Cl'] = False # (-); Lift force coefficient at Blade 3, Node 9; +AeroDyn['B1N1Cd'] = False # (-); Drag force coefficient at Blade 1, Node 1; +AeroDyn['B1N2Cd'] = False # (-); Drag force coefficient at Blade 1, Node 2; +AeroDyn['B1N3Cd'] = False # (-); Drag force coefficient at Blade 1, Node 3; +AeroDyn['B1N4Cd'] = False # (-); Drag force coefficient at Blade 1, Node 4; +AeroDyn['B1N5Cd'] = False # (-); Drag force coefficient at Blade 1, Node 5; +AeroDyn['B1N6Cd'] = False # (-); Drag force coefficient at Blade 1, Node 6; +AeroDyn['B1N7Cd'] = False # (-); Drag force coefficient at Blade 1, Node 7; +AeroDyn['B1N8Cd'] = False # (-); Drag force coefficient at Blade 1, Node 8; +AeroDyn['B1N9Cd'] = False # (-); Drag force coefficient at Blade 1, Node 9; +AeroDyn['B2N1Cd'] = False # (-); Drag force coefficient at Blade 2, Node 1; +AeroDyn['B2N2Cd'] = False # (-); Drag force coefficient at Blade 2, Node 2; +AeroDyn['B2N3Cd'] = False # (-); Drag force coefficient at Blade 2, Node 3; +AeroDyn['B2N4Cd'] = False # (-); Drag force coefficient at Blade 2, Node 4; +AeroDyn['B2N5Cd'] = False # (-); Drag force coefficient at Blade 2, Node 5; +AeroDyn['B2N6Cd'] = False # (-); Drag force coefficient at Blade 2, Node 6; +AeroDyn['B2N7Cd'] = False # (-); Drag force coefficient at Blade 2, Node 7; +AeroDyn['B2N8Cd'] = False # (-); Drag force coefficient at Blade 2, Node 8; +AeroDyn['B2N9Cd'] = False # (-); Drag force coefficient at Blade 2, Node 9; +AeroDyn['B3N1Cd'] = False # (-); Drag force coefficient at Blade 3, Node 1; +AeroDyn['B3N2Cd'] = False # (-); Drag force coefficient at Blade 3, Node 2; +AeroDyn['B3N3Cd'] = False # (-); Drag force coefficient at Blade 3, Node 3; +AeroDyn['B3N4Cd'] = False # (-); Drag force coefficient at Blade 3, Node 4; +AeroDyn['B3N5Cd'] = False # (-); Drag force coefficient at Blade 3, Node 5; +AeroDyn['B3N6Cd'] = False # (-); Drag force coefficient at Blade 3, Node 6; +AeroDyn['B3N7Cd'] = False # (-); Drag force coefficient at Blade 3, Node 7; +AeroDyn['B3N8Cd'] = False # (-); Drag force coefficient at Blade 3, Node 8; +AeroDyn['B3N9Cd'] = False # (-); Drag force coefficient at Blade 3, Node 9; +AeroDyn['B1N1Cm'] = False # (-); Pitching moment coefficient at Blade 1, Node 1; +AeroDyn['B1N2Cm'] = False # (-); Pitching moment coefficient at Blade 1, Node 2; +AeroDyn['B1N3Cm'] = False # (-); Pitching moment coefficient at Blade 1, Node 3; +AeroDyn['B1N4Cm'] = False # (-); Pitching moment coefficient at Blade 1, Node 4; +AeroDyn['B1N5Cm'] = False # (-); Pitching moment coefficient at Blade 1, Node 5; +AeroDyn['B1N6Cm'] = False # (-); Pitching moment coefficient at Blade 1, Node 6; +AeroDyn['B1N7Cm'] = False # (-); Pitching moment coefficient at Blade 1, Node 7; +AeroDyn['B1N8Cm'] = False # (-); Pitching moment coefficient at Blade 1, Node 8; +AeroDyn['B1N9Cm'] = False # (-); Pitching moment coefficient at Blade 1, Node 9; +AeroDyn['B2N1Cm'] = False # (-); Pitching moment coefficient at Blade 2, Node 1; +AeroDyn['B2N2Cm'] = False # (-); Pitching moment coefficient at Blade 2, Node 2; +AeroDyn['B2N3Cm'] = False # (-); Pitching moment coefficient at Blade 2, Node 3; +AeroDyn['B2N4Cm'] = False # (-); Pitching moment coefficient at Blade 2, Node 4; +AeroDyn['B2N5Cm'] = False # (-); Pitching moment coefficient at Blade 2, Node 5; +AeroDyn['B2N6Cm'] = False # (-); Pitching moment coefficient at Blade 2, Node 6; +AeroDyn['B2N7Cm'] = False # (-); Pitching moment coefficient at Blade 2, Node 7; +AeroDyn['B2N8Cm'] = False # (-); Pitching moment coefficient at Blade 2, Node 8; +AeroDyn['B2N9Cm'] = False # (-); Pitching moment coefficient at Blade 2, Node 9; +AeroDyn['B3N1Cm'] = False # (-); Pitching moment coefficient at Blade 3, Node 1; +AeroDyn['B3N2Cm'] = False # (-); Pitching moment coefficient at Blade 3, Node 2; +AeroDyn['B3N3Cm'] = False # (-); Pitching moment coefficient at Blade 3, Node 3; +AeroDyn['B3N4Cm'] = False # (-); Pitching moment coefficient at Blade 3, Node 4; +AeroDyn['B3N5Cm'] = False # (-); Pitching moment coefficient at Blade 3, Node 5; +AeroDyn['B3N6Cm'] = False # (-); Pitching moment coefficient at Blade 3, Node 6; +AeroDyn['B3N7Cm'] = False # (-); Pitching moment coefficient at Blade 3, Node 7; +AeroDyn['B3N8Cm'] = False # (-); Pitching moment coefficient at Blade 3, Node 8; +AeroDyn['B3N9Cm'] = False # (-); Pitching moment coefficient at Blade 3, Node 9; +AeroDyn['B1N1Cx'] = False # (-); Normal force (to plane) coefficient at Blade 1, Node 1; +AeroDyn['B1N2Cx'] = False # (-); Normal force (to plane) coefficient at Blade 1, Node 2; +AeroDyn['B1N3Cx'] = False # (-); Normal force (to plane) coefficient at Blade 1, Node 3; +AeroDyn['B1N4Cx'] = False # (-); Normal force (to plane) coefficient at Blade 1, Node 4; +AeroDyn['B1N5Cx'] = False # (-); Normal force (to plane) coefficient at Blade 1, Node 5; +AeroDyn['B1N6Cx'] = False # (-); Normal force (to plane) coefficient at Blade 1, Node 6; +AeroDyn['B1N7Cx'] = False # (-); Normal force (to plane) coefficient at Blade 1, Node 7; +AeroDyn['B1N8Cx'] = False # (-); Normal force (to plane) coefficient at Blade 1, Node 8; +AeroDyn['B1N9Cx'] = False # (-); Normal force (to plane) coefficient at Blade 1, Node 9; +AeroDyn['B2N1Cx'] = False # (-); Normal force (to plane) coefficient at Blade 2, Node 1; +AeroDyn['B2N2Cx'] = False # (-); Normal force (to plane) coefficient at Blade 2, Node 2; +AeroDyn['B2N3Cx'] = False # (-); Normal force (to plane) coefficient at Blade 2, Node 3; +AeroDyn['B2N4Cx'] = False # (-); Normal force (to plane) coefficient at Blade 2, Node 4; +AeroDyn['B2N5Cx'] = False # (-); Normal force (to plane) coefficient at Blade 2, Node 5; +AeroDyn['B2N6Cx'] = False # (-); Normal force (to plane) coefficient at Blade 2, Node 6; +AeroDyn['B2N7Cx'] = False # (-); Normal force (to plane) coefficient at Blade 2, Node 7; +AeroDyn['B2N8Cx'] = False # (-); Normal force (to plane) coefficient at Blade 2, Node 8; +AeroDyn['B2N9Cx'] = False # (-); Normal force (to plane) coefficient at Blade 2, Node 9; +AeroDyn['B3N1Cx'] = False # (-); Normal force (to plane) coefficient at Blade 3, Node 1; +AeroDyn['B3N2Cx'] = False # (-); Normal force (to plane) coefficient at Blade 3, Node 2; +AeroDyn['B3N3Cx'] = False # (-); Normal force (to plane) coefficient at Blade 3, Node 3; +AeroDyn['B3N4Cx'] = False # (-); Normal force (to plane) coefficient at Blade 3, Node 4; +AeroDyn['B3N5Cx'] = False # (-); Normal force (to plane) coefficient at Blade 3, Node 5; +AeroDyn['B3N6Cx'] = False # (-); Normal force (to plane) coefficient at Blade 3, Node 6; +AeroDyn['B3N7Cx'] = False # (-); Normal force (to plane) coefficient at Blade 3, Node 7; +AeroDyn['B3N8Cx'] = False # (-); Normal force (to plane) coefficient at Blade 3, Node 8; +AeroDyn['B3N9Cx'] = False # (-); Normal force (to plane) coefficient at Blade 3, Node 9; +AeroDyn['B1N1Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 1, Node 1; +AeroDyn['B1N2Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 1, Node 2; +AeroDyn['B1N3Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 1, Node 3; +AeroDyn['B1N4Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 1, Node 4; +AeroDyn['B1N5Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 1, Node 5; +AeroDyn['B1N6Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 1, Node 6; +AeroDyn['B1N7Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 1, Node 7; +AeroDyn['B1N8Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 1, Node 8; +AeroDyn['B1N9Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 1, Node 9; +AeroDyn['B2N1Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 2, Node 1; +AeroDyn['B2N2Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 2, Node 2; +AeroDyn['B2N3Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 2, Node 3; +AeroDyn['B2N4Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 2, Node 4; +AeroDyn['B2N5Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 2, Node 5; +AeroDyn['B2N6Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 2, Node 6; +AeroDyn['B2N7Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 2, Node 7; +AeroDyn['B2N8Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 2, Node 8; +AeroDyn['B2N9Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 2, Node 9; +AeroDyn['B3N1Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 3, Node 1; +AeroDyn['B3N2Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 3, Node 2; +AeroDyn['B3N3Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 3, Node 3; +AeroDyn['B3N4Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 3, Node 4; +AeroDyn['B3N5Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 3, Node 5; +AeroDyn['B3N6Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 3, Node 6; +AeroDyn['B3N7Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 3, Node 7; +AeroDyn['B3N8Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 3, Node 8; +AeroDyn['B3N9Cy'] = False # (-); Tangential force (to plane) coefficient at Blade 3, Node 9; +AeroDyn['B1N1Cn'] = False # (-); Normal force (to chord) coefficient at Blade 1, Node 1; +AeroDyn['B1N2Cn'] = False # (-); Normal force (to chord) coefficient at Blade 1, Node 2; +AeroDyn['B1N3Cn'] = False # (-); Normal force (to chord) coefficient at Blade 1, Node 3; +AeroDyn['B1N4Cn'] = False # (-); Normal force (to chord) coefficient at Blade 1, Node 4; +AeroDyn['B1N5Cn'] = False # (-); Normal force (to chord) coefficient at Blade 1, Node 5; +AeroDyn['B1N6Cn'] = False # (-); Normal force (to chord) coefficient at Blade 1, Node 6; +AeroDyn['B1N7Cn'] = False # (-); Normal force (to chord) coefficient at Blade 1, Node 7; +AeroDyn['B1N8Cn'] = False # (-); Normal force (to chord) coefficient at Blade 1, Node 8; +AeroDyn['B1N9Cn'] = False # (-); Normal force (to chord) coefficient at Blade 1, Node 9; +AeroDyn['B2N1Cn'] = False # (-); Normal force (to chord) coefficient at Blade 2, Node 1; +AeroDyn['B2N2Cn'] = False # (-); Normal force (to chord) coefficient at Blade 2, Node 2; +AeroDyn['B2N3Cn'] = False # (-); Normal force (to chord) coefficient at Blade 2, Node 3; +AeroDyn['B2N4Cn'] = False # (-); Normal force (to chord) coefficient at Blade 2, Node 4; +AeroDyn['B2N5Cn'] = False # (-); Normal force (to chord) coefficient at Blade 2, Node 5; +AeroDyn['B2N6Cn'] = False # (-); Normal force (to chord) coefficient at Blade 2, Node 6; +AeroDyn['B2N7Cn'] = False # (-); Normal force (to chord) coefficient at Blade 2, Node 7; +AeroDyn['B2N8Cn'] = False # (-); Normal force (to chord) coefficient at Blade 2, Node 8; +AeroDyn['B2N9Cn'] = False # (-); Normal force (to chord) coefficient at Blade 2, Node 9; +AeroDyn['B3N1Cn'] = False # (-); Normal force (to chord) coefficient at Blade 3, Node 1; +AeroDyn['B3N2Cn'] = False # (-); Normal force (to chord) coefficient at Blade 3, Node 2; +AeroDyn['B3N3Cn'] = False # (-); Normal force (to chord) coefficient at Blade 3, Node 3; +AeroDyn['B3N4Cn'] = False # (-); Normal force (to chord) coefficient at Blade 3, Node 4; +AeroDyn['B3N5Cn'] = False # (-); Normal force (to chord) coefficient at Blade 3, Node 5; +AeroDyn['B3N6Cn'] = False # (-); Normal force (to chord) coefficient at Blade 3, Node 6; +AeroDyn['B3N7Cn'] = False # (-); Normal force (to chord) coefficient at Blade 3, Node 7; +AeroDyn['B3N8Cn'] = False # (-); Normal force (to chord) coefficient at Blade 3, Node 8; +AeroDyn['B3N9Cn'] = False # (-); Normal force (to chord) coefficient at Blade 3, Node 9; +AeroDyn['B1N1Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 1, Node 1; +AeroDyn['B1N2Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 1, Node 2; +AeroDyn['B1N3Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 1, Node 3; +AeroDyn['B1N4Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 1, Node 4; +AeroDyn['B1N5Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 1, Node 5; +AeroDyn['B1N6Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 1, Node 6; +AeroDyn['B1N7Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 1, Node 7; +AeroDyn['B1N8Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 1, Node 8; +AeroDyn['B1N9Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 1, Node 9; +AeroDyn['B2N1Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 2, Node 1; +AeroDyn['B2N2Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 2, Node 2; +AeroDyn['B2N3Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 2, Node 3; +AeroDyn['B2N4Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 2, Node 4; +AeroDyn['B2N5Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 2, Node 5; +AeroDyn['B2N6Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 2, Node 6; +AeroDyn['B2N7Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 2, Node 7; +AeroDyn['B2N8Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 2, Node 8; +AeroDyn['B2N9Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 2, Node 9; +AeroDyn['B3N1Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 3, Node 1; +AeroDyn['B3N2Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 3, Node 2; +AeroDyn['B3N3Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 3, Node 3; +AeroDyn['B3N4Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 3, Node 4; +AeroDyn['B3N5Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 3, Node 5; +AeroDyn['B3N6Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 3, Node 6; +AeroDyn['B3N7Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 3, Node 7; +AeroDyn['B3N8Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 3, Node 8; +AeroDyn['B3N9Ct'] = False # (-); Tangential force (to chord) coefficient at Blade 3, Node 9; +AeroDyn['B1N1Fl'] = False # (N/m); Lift force per unit length at Blade 1, Node 1; +AeroDyn['B1N2Fl'] = False # (N/m); Lift force per unit length at Blade 1, Node 2; +AeroDyn['B1N3Fl'] = False # (N/m); Lift force per unit length at Blade 1, Node 3; +AeroDyn['B1N4Fl'] = False # (N/m); Lift force per unit length at Blade 1, Node 4; +AeroDyn['B1N5Fl'] = False # (N/m); Lift force per unit length at Blade 1, Node 5; +AeroDyn['B1N6Fl'] = False # (N/m); Lift force per unit length at Blade 1, Node 6; +AeroDyn['B1N7Fl'] = False # (N/m); Lift force per unit length at Blade 1, Node 7; +AeroDyn['B1N8Fl'] = False # (N/m); Lift force per unit length at Blade 1, Node 8; +AeroDyn['B1N9Fl'] = False # (N/m); Lift force per unit length at Blade 1, Node 9; +AeroDyn['B2N1Fl'] = False # (N/m); Lift force per unit length at Blade 2, Node 1; +AeroDyn['B2N2Fl'] = False # (N/m); Lift force per unit length at Blade 2, Node 2; +AeroDyn['B2N3Fl'] = False # (N/m); Lift force per unit length at Blade 2, Node 3; +AeroDyn['B2N4Fl'] = False # (N/m); Lift force per unit length at Blade 2, Node 4; +AeroDyn['B2N5Fl'] = False # (N/m); Lift force per unit length at Blade 2, Node 5; +AeroDyn['B2N6Fl'] = False # (N/m); Lift force per unit length at Blade 2, Node 6; +AeroDyn['B2N7Fl'] = False # (N/m); Lift force per unit length at Blade 2, Node 7; +AeroDyn['B2N8Fl'] = False # (N/m); Lift force per unit length at Blade 2, Node 8; +AeroDyn['B2N9Fl'] = False # (N/m); Lift force per unit length at Blade 2, Node 9; +AeroDyn['B3N1Fl'] = False # (N/m); Lift force per unit length at Blade 3, Node 1; +AeroDyn['B3N2Fl'] = False # (N/m); Lift force per unit length at Blade 3, Node 2; +AeroDyn['B3N3Fl'] = False # (N/m); Lift force per unit length at Blade 3, Node 3; +AeroDyn['B3N4Fl'] = False # (N/m); Lift force per unit length at Blade 3, Node 4; +AeroDyn['B3N5Fl'] = False # (N/m); Lift force per unit length at Blade 3, Node 5; +AeroDyn['B3N6Fl'] = False # (N/m); Lift force per unit length at Blade 3, Node 6; +AeroDyn['B3N7Fl'] = False # (N/m); Lift force per unit length at Blade 3, Node 7; +AeroDyn['B3N8Fl'] = False # (N/m); Lift force per unit length at Blade 3, Node 8; +AeroDyn['B3N9Fl'] = False # (N/m); Lift force per unit length at Blade 3, Node 9; +AeroDyn['B1N1Fd'] = False # (N/m); Drag force per unit length at Blade 1, Node 1; +AeroDyn['B1N2Fd'] = False # (N/m); Drag force per unit length at Blade 1, Node 2; +AeroDyn['B1N3Fd'] = False # (N/m); Drag force per unit length at Blade 1, Node 3; +AeroDyn['B1N4Fd'] = False # (N/m); Drag force per unit length at Blade 1, Node 4; +AeroDyn['B1N5Fd'] = False # (N/m); Drag force per unit length at Blade 1, Node 5; +AeroDyn['B1N6Fd'] = False # (N/m); Drag force per unit length at Blade 1, Node 6; +AeroDyn['B1N7Fd'] = False # (N/m); Drag force per unit length at Blade 1, Node 7; +AeroDyn['B1N8Fd'] = False # (N/m); Drag force per unit length at Blade 1, Node 8; +AeroDyn['B1N9Fd'] = False # (N/m); Drag force per unit length at Blade 1, Node 9; +AeroDyn['B2N1Fd'] = False # (N/m); Drag force per unit length at Blade 2, Node 1; +AeroDyn['B2N2Fd'] = False # (N/m); Drag force per unit length at Blade 2, Node 2; +AeroDyn['B2N3Fd'] = False # (N/m); Drag force per unit length at Blade 2, Node 3; +AeroDyn['B2N4Fd'] = False # (N/m); Drag force per unit length at Blade 2, Node 4; +AeroDyn['B2N5Fd'] = False # (N/m); Drag force per unit length at Blade 2, Node 5; +AeroDyn['B2N6Fd'] = False # (N/m); Drag force per unit length at Blade 2, Node 6; +AeroDyn['B2N7Fd'] = False # (N/m); Drag force per unit length at Blade 2, Node 7; +AeroDyn['B2N8Fd'] = False # (N/m); Drag force per unit length at Blade 2, Node 8; +AeroDyn['B2N9Fd'] = False # (N/m); Drag force per unit length at Blade 2, Node 9; +AeroDyn['B3N1Fd'] = False # (N/m); Drag force per unit length at Blade 3, Node 1; +AeroDyn['B3N2Fd'] = False # (N/m); Drag force per unit length at Blade 3, Node 2; +AeroDyn['B3N3Fd'] = False # (N/m); Drag force per unit length at Blade 3, Node 3; +AeroDyn['B3N4Fd'] = False # (N/m); Drag force per unit length at Blade 3, Node 4; +AeroDyn['B3N5Fd'] = False # (N/m); Drag force per unit length at Blade 3, Node 5; +AeroDyn['B3N6Fd'] = False # (N/m); Drag force per unit length at Blade 3, Node 6; +AeroDyn['B3N7Fd'] = False # (N/m); Drag force per unit length at Blade 3, Node 7; +AeroDyn['B3N8Fd'] = False # (N/m); Drag force per unit length at Blade 3, Node 8; +AeroDyn['B3N9Fd'] = False # (N/m); Drag force per unit length at Blade 3, Node 9; +AeroDyn['B1N1Mm'] = False # (N m/m); Pitching moment per unit length at Blade 1, Node 1; +AeroDyn['B1N2Mm'] = False # (N m/m); Pitching moment per unit length at Blade 1, Node 2; +AeroDyn['B1N3Mm'] = False # (N m/m); Pitching moment per unit length at Blade 1, Node 3; +AeroDyn['B1N4Mm'] = False # (N m/m); Pitching moment per unit length at Blade 1, Node 4; +AeroDyn['B1N5Mm'] = False # (N m/m); Pitching moment per unit length at Blade 1, Node 5; +AeroDyn['B1N6Mm'] = False # (N m/m); Pitching moment per unit length at Blade 1, Node 6; +AeroDyn['B1N7Mm'] = False # (N m/m); Pitching moment per unit length at Blade 1, Node 7; +AeroDyn['B1N8Mm'] = False # (N m/m); Pitching moment per unit length at Blade 1, Node 8; +AeroDyn['B1N9Mm'] = False # (N m/m); Pitching moment per unit length at Blade 1, Node 9; +AeroDyn['B2N1Mm'] = False # (N m/m); Pitching moment per unit length at Blade 2, Node 1; +AeroDyn['B2N2Mm'] = False # (N m/m); Pitching moment per unit length at Blade 2, Node 2; +AeroDyn['B2N3Mm'] = False # (N m/m); Pitching moment per unit length at Blade 2, Node 3; +AeroDyn['B2N4Mm'] = False # (N m/m); Pitching moment per unit length at Blade 2, Node 4; +AeroDyn['B2N5Mm'] = False # (N m/m); Pitching moment per unit length at Blade 2, Node 5; +AeroDyn['B2N6Mm'] = False # (N m/m); Pitching moment per unit length at Blade 2, Node 6; +AeroDyn['B2N7Mm'] = False # (N m/m); Pitching moment per unit length at Blade 2, Node 7; +AeroDyn['B2N8Mm'] = False # (N m/m); Pitching moment per unit length at Blade 2, Node 8; +AeroDyn['B2N9Mm'] = False # (N m/m); Pitching moment per unit length at Blade 2, Node 9; +AeroDyn['B3N1Mm'] = False # (N m/m); Pitching moment per unit length at Blade 3, Node 1; +AeroDyn['B3N2Mm'] = False # (N m/m); Pitching moment per unit length at Blade 3, Node 2; +AeroDyn['B3N3Mm'] = False # (N m/m); Pitching moment per unit length at Blade 3, Node 3; +AeroDyn['B3N4Mm'] = False # (N m/m); Pitching moment per unit length at Blade 3, Node 4; +AeroDyn['B3N5Mm'] = False # (N m/m); Pitching moment per unit length at Blade 3, Node 5; +AeroDyn['B3N6Mm'] = False # (N m/m); Pitching moment per unit length at Blade 3, Node 6; +AeroDyn['B3N7Mm'] = False # (N m/m); Pitching moment per unit length at Blade 3, Node 7; +AeroDyn['B3N8Mm'] = False # (N m/m); Pitching moment per unit length at Blade 3, Node 8; +AeroDyn['B3N9Mm'] = False # (N m/m); Pitching moment per unit length at Blade 3, Node 9; +AeroDyn['B1N1Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 1, Node 1; +AeroDyn['B1N2Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 1, Node 2; +AeroDyn['B1N3Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 1, Node 3; +AeroDyn['B1N4Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 1, Node 4; +AeroDyn['B1N5Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 1, Node 5; +AeroDyn['B1N6Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 1, Node 6; +AeroDyn['B1N7Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 1, Node 7; +AeroDyn['B1N8Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 1, Node 8; +AeroDyn['B1N9Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 1, Node 9; +AeroDyn['B2N1Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 2, Node 1; +AeroDyn['B2N2Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 2, Node 2; +AeroDyn['B2N3Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 2, Node 3; +AeroDyn['B2N4Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 2, Node 4; +AeroDyn['B2N5Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 2, Node 5; +AeroDyn['B2N6Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 2, Node 6; +AeroDyn['B2N7Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 2, Node 7; +AeroDyn['B2N8Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 2, Node 8; +AeroDyn['B2N9Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 2, Node 9; +AeroDyn['B3N1Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 3, Node 1; +AeroDyn['B3N2Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 3, Node 2; +AeroDyn['B3N3Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 3, Node 3; +AeroDyn['B3N4Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 3, Node 4; +AeroDyn['B3N5Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 3, Node 5; +AeroDyn['B3N6Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 3, Node 6; +AeroDyn['B3N7Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 3, Node 7; +AeroDyn['B3N8Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 3, Node 8; +AeroDyn['B3N9Fx'] = False # (N/m); Normal force (to plane) per unit length at Blade 3, Node 9; +AeroDyn['B1N1Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 1, Node 1; +AeroDyn['B1N2Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 1, Node 2; +AeroDyn['B1N3Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 1, Node 3; +AeroDyn['B1N4Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 1, Node 4; +AeroDyn['B1N5Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 1, Node 5; +AeroDyn['B1N6Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 1, Node 6; +AeroDyn['B1N7Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 1, Node 7; +AeroDyn['B1N8Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 1, Node 8; +AeroDyn['B1N9Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 1, Node 9; +AeroDyn['B2N1Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 2, Node 1; +AeroDyn['B2N2Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 2, Node 2; +AeroDyn['B2N3Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 2, Node 3; +AeroDyn['B2N4Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 2, Node 4; +AeroDyn['B2N5Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 2, Node 5; +AeroDyn['B2N6Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 2, Node 6; +AeroDyn['B2N7Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 2, Node 7; +AeroDyn['B2N8Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 2, Node 8; +AeroDyn['B2N9Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 2, Node 9; +AeroDyn['B3N1Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 3, Node 1; +AeroDyn['B3N2Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 3, Node 2; +AeroDyn['B3N3Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 3, Node 3; +AeroDyn['B3N4Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 3, Node 4; +AeroDyn['B3N5Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 3, Node 5; +AeroDyn['B3N6Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 3, Node 6; +AeroDyn['B3N7Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 3, Node 7; +AeroDyn['B3N8Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 3, Node 8; +AeroDyn['B3N9Fy'] = False # (N/m); Tangential force (to plane) per unit length at Blade 3, Node 9; +AeroDyn['B1N1Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 1, Node 1; +AeroDyn['B1N2Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 1, Node 2; +AeroDyn['B1N3Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 1, Node 3; +AeroDyn['B1N4Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 1, Node 4; +AeroDyn['B1N5Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 1, Node 5; +AeroDyn['B1N6Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 1, Node 6; +AeroDyn['B1N7Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 1, Node 7; +AeroDyn['B1N8Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 1, Node 8; +AeroDyn['B1N9Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 1, Node 9; +AeroDyn['B2N1Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 2, Node 1; +AeroDyn['B2N2Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 2, Node 2; +AeroDyn['B2N3Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 2, Node 3; +AeroDyn['B2N4Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 2, Node 4; +AeroDyn['B2N5Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 2, Node 5; +AeroDyn['B2N6Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 2, Node 6; +AeroDyn['B2N7Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 2, Node 7; +AeroDyn['B2N8Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 2, Node 8; +AeroDyn['B2N9Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 2, Node 9; +AeroDyn['B3N1Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 3, Node 1; +AeroDyn['B3N2Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 3, Node 2; +AeroDyn['B3N3Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 3, Node 3; +AeroDyn['B3N4Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 3, Node 4; +AeroDyn['B3N5Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 3, Node 5; +AeroDyn['B3N6Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 3, Node 6; +AeroDyn['B3N7Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 3, Node 7; +AeroDyn['B3N8Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 3, Node 8; +AeroDyn['B3N9Fn'] = False # (N/m); Normal force (to chord) per unit length at Blade 3, Node 9; +AeroDyn['B1N1Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 1, Node 1; +AeroDyn['B1N2Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 1, Node 2; +AeroDyn['B1N3Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 1, Node 3; +AeroDyn['B1N4Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 1, Node 4; +AeroDyn['B1N5Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 1, Node 5; +AeroDyn['B1N6Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 1, Node 6; +AeroDyn['B1N7Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 1, Node 7; +AeroDyn['B1N8Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 1, Node 8; +AeroDyn['B1N9Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 1, Node 9; +AeroDyn['B2N1Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 2, Node 1; +AeroDyn['B2N2Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 2, Node 2; +AeroDyn['B2N3Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 2, Node 3; +AeroDyn['B2N4Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 2, Node 4; +AeroDyn['B2N5Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 2, Node 5; +AeroDyn['B2N6Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 2, Node 6; +AeroDyn['B2N7Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 2, Node 7; +AeroDyn['B2N8Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 2, Node 8; +AeroDyn['B2N9Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 2, Node 9; +AeroDyn['B3N1Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 3, Node 1; +AeroDyn['B3N2Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 3, Node 2; +AeroDyn['B3N3Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 3, Node 3; +AeroDyn['B3N4Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 3, Node 4; +AeroDyn['B3N5Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 3, Node 5; +AeroDyn['B3N6Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 3, Node 6; +AeroDyn['B3N7Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 3, Node 7; +AeroDyn['B3N8Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 3, Node 8; +AeroDyn['B3N9Ft'] = False # (N/m); Tangential force (to chord) per unit length at Blade 3, Node 9; +AeroDyn['B1N1Clrnc'] = False # (m); Tower clearance at Blade 1, Node 1 (based on the absolute distance to the nearest point in the tower from B1N1 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B1N1 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B1N2Clrnc'] = False # (m); Tower clearance at Blade 1, Node 2 (based on the absolute distance to the nearest point in the tower from B1N2 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B1N2 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B1N3Clrnc'] = False # (m); Tower clearance at Blade 1, Node 3 (based on the absolute distance to the nearest point in the tower from B1N3 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B1N3 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B1N4Clrnc'] = False # (m); Tower clearance at Blade 1, Node 4 (based on the absolute distance to the nearest point in the tower from B1N4 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B1N4 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B1N5Clrnc'] = False # (m); Tower clearance at Blade 1, Node 5 (based on the absolute distance to the nearest point in the tower from B1N5 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B1N5 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B1N6Clrnc'] = False # (m); Tower clearance at Blade 1, Node 6 (based on the absolute distance to the nearest point in the tower from B1N6 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B1N6 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B1N7Clrnc'] = False # (m); Tower clearance at Blade 1, Node 7 (based on the absolute distance to the nearest point in the tower from B1N7 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B1N7 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B1N8Clrnc'] = False # (m); Tower clearance at Blade 1, Node 8 (based on the absolute distance to the nearest point in the tower from B1N8 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B1N8 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B1N9Clrnc'] = False # (m); Tower clearance at Blade 1, Node 9 (based on the absolute distance to the nearest point in the tower from B1N9 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B1N9 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B2N1Clrnc'] = False # (m); Tower clearance at Blade 2, Node 1 (based on the absolute distance to the nearest point in the tower from B2N1 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B2N1 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B2N2Clrnc'] = False # (m); Tower clearance at Blade 2, Node 2 (based on the absolute distance to the nearest point in the tower from B2N2 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B2N2 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B2N3Clrnc'] = False # (m); Tower clearance at Blade 2, Node 3 (based on the absolute distance to the nearest point in the tower from B2N3 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B2N3 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B2N4Clrnc'] = False # (m); Tower clearance at Blade 2, Node 4 (based on the absolute distance to the nearest point in the tower from B2N4 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B2N4 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B2N5Clrnc'] = False # (m); Tower clearance at Blade 2, Node 5 (based on the absolute distance to the nearest point in the tower from B2N5 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B2N5 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B2N6Clrnc'] = False # (m); Tower clearance at Blade 2, Node 6 (based on the absolute distance to the nearest point in the tower from B2N6 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B2N6 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B2N7Clrnc'] = False # (m); Tower clearance at Blade 2, Node 7 (based on the absolute distance to the nearest point in the tower from B2N7 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B2N7 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B2N8Clrnc'] = False # (m); Tower clearance at Blade 2, Node 8 (based on the absolute distance to the nearest point in the tower from B2N8 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B2N8 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B2N9Clrnc'] = False # (m); Tower clearance at Blade 2, Node 9 (based on the absolute distance to the nearest point in the tower from B2N9 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B2N9 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B3N1Clrnc'] = False # (m); Tower clearance at Blade 3, Node 1 (based on the absolute distance to the nearest point in the tower from B3N1 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B3N1 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B3N2Clrnc'] = False # (m); Tower clearance at Blade 3, Node 2 (based on the absolute distance to the nearest point in the tower from B3N2 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B3N2 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B3N3Clrnc'] = False # (m); Tower clearance at Blade 3, Node 3 (based on the absolute distance to the nearest point in the tower from B3N3 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B3N3 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B3N4Clrnc'] = False # (m); Tower clearance at Blade 3, Node 4 (based on the absolute distance to the nearest point in the tower from B3N4 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B3N4 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B3N5Clrnc'] = False # (m); Tower clearance at Blade 3, Node 5 (based on the absolute distance to the nearest point in the tower from B3N5 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B3N5 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B3N6Clrnc'] = False # (m); Tower clearance at Blade 3, Node 6 (based on the absolute distance to the nearest point in the tower from B3N6 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B3N6 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B3N7Clrnc'] = False # (m); Tower clearance at Blade 3, Node 7 (based on the absolute distance to the nearest point in the tower from B3N7 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B3N7 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B3N8Clrnc'] = False # (m); Tower clearance at Blade 3, Node 8 (based on the absolute distance to the nearest point in the tower from B3N8 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B3N8 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; +AeroDyn['B3N9Clrnc'] = False # (m); Tower clearance at Blade 3, Node 9 (based on the absolute distance to the nearest point in the tower from B3N9 minus the local tower radius, in the deflected configuration); please note that this clearance is only approximate because the calculation assumes that the blade is a line with no volume (however, the calculation does use the local tower radius); when B3N9 is above the tower top (or below the tower base), the absolute distance to the tower top (or base) minus the local tower radius, in the deflected configuration, is output; + +# Rotor +AeroDyn['RtSpeed'] = False # (rpm); Rotor speed; +AeroDyn['RtTSR'] = False # (-); Rotor tip-speed ratio; +AeroDyn['RtVAvgxh'] = False # (m/s); Rotor-disk-averaged relative wind velocity (x-component); the hub coordinate system +AeroDyn['RtVAvgyh'] = False # (m/s); Rotor-disk-averaged relative wind velocity (y-component); the hub coordinate system +AeroDyn['RtVAvgzh'] = False # (m/s); Rotor-disk-averaged relative wind velocity (z-component); the hub coordinate system +AeroDyn['RtSkew'] = False # (deg); Rotor inflow-skew angle; +AeroDyn['RtAeroFxh'] = False # (N); Total rotor aerodynamic load (force in x direction); the hub coordinate system +AeroDyn['RtAeroFyh'] = False # (N); Total rotor aerodynamic load (force in y direction); the hub coordinate system +AeroDyn['RtAeroFzh'] = False # (N); Total rotor aerodynamic load (force in z direction); the hub coordinate system +AeroDyn['RtAeroMxh'] = False # (N m); Total rotor aerodynamic load (moment in x direction); the hub coordinate system +AeroDyn['RtAeroMyh'] = False # (N m); Total rotor aerodynamic load (moment in y direction); the hub coordinate system +AeroDyn['RtAeroMzh'] = False # (N m); Total rotor aerodynamic load (moment in z direction); the hub coordinate system +AeroDyn['RtAeroPwr'] = False # (W); Rotor aerodynamic power; +AeroDyn['RtArea'] = False # (m^2); Rotor swept area; +AeroDyn['RtAeroCp'] = False # (-); Rotor aerodynamic power coefficient; +AeroDyn['RtAeroCq'] = False # (-); Rotor aerodynamic torque coefficient; +AeroDyn['RtAeroCt'] = False # (-); Rotor aerodynamic thrust coefficient; + + +""" InflowWind """ +InflowWind = {} + +# Wind Motions +InflowWind['Wind1VelX'] = False # (m/s); X component of wind at user selected wind point 1; Directed along the xi-axis +InflowWind['Wind1VelY'] = False # (m/s); Y component of wind at user selected wind point 1; Directed along the yi-axis +InflowWind['Wind1VelZ'] = False # (m/s); Z component of wind at user selected wind point 1; Directed along the zi-axis +InflowWind['Wind2VelX'] = False # (m/s); X component of wind at user selected wind point 2; Directed along the xi-axis +InflowWind['Wind2VelY'] = False # (m/s); Y component of wind at user selected wind point 2; Directed along the yi-axis +InflowWind['Wind2VelZ'] = False # (m/s); Z component of wind at user selected wind point 2; Directed along the zi-axis +InflowWind['Wind3VelX'] = False # (m/s); X component of wind at user selected wind point 3; Directed along the xi-axis +InflowWind['Wind3VelY'] = False # (m/s); Y component of wind at user selected wind point 3; Directed along the yi-axis +InflowWind['Wind3VelZ'] = False # (m/s); Z component of wind at user selected wind point 3; Directed along the zi-axis +InflowWind['Wind4VelX'] = False # (m/s); X component of wind at user selected wind point 4; Directed along the xi-axis +InflowWind['Wind4VelY'] = False # (m/s); Y component of wind at user selected wind point 4; Directed along the yi-axis +InflowWind['Wind4VelZ'] = False # (m/s); Z component of wind at user selected wind point 4; Directed along the zi-axis +InflowWind['Wind5VelX'] = False # (m/s); X component of wind at user selected wind point 5; Directed along the xi-axis +InflowWind['Wind5VelY'] = False # (m/s); Y component of wind at user selected wind point 5; Directed along the yi-axis +InflowWind['Wind5VelZ'] = False # (m/s); Z component of wind at user selected wind point 5; Directed along the zi-axis +InflowWind['Wind6VelX'] = False # (m/s); X component of wind at user selected wind point 6; Directed along the xi-axis +InflowWind['Wind6VelY'] = False # (m/s); Y component of wind at user selected wind point 6; Directed along the yi-axis +InflowWind['Wind6VelZ'] = False # (m/s); Z component of wind at user selected wind point 6; Directed along the zi-axis +InflowWind['Wind7VelX'] = False # (m/s); X component of wind at user selected wind point 7; Directed along the xi-axis +InflowWind['Wind7VelY'] = False # (m/s); Y component of wind at user selected wind point 7; Directed along the yi-axis +InflowWind['Wind7VelZ'] = False # (m/s); Z component of wind at user selected wind point 7; Directed along the zi-axis +InflowWind['Wind8VelX'] = False # (m/s); X component of wind at user selected wind point 8; Directed along the xi-axis +InflowWind['Wind8VelY'] = False # (m/s); Y component of wind at user selected wind point 8; Directed along the yi-axis +InflowWind['Wind8VelZ'] = False # (m/s); Z component of wind at user selected wind point 8; Directed along the zi-axis +InflowWind['Wind9VelX'] = False # (m/s); X component of wind at user selected wind point 9; Directed along the xi-axis +InflowWind['Wind9VelY'] = False # (m/s); Y component of wind at user selected wind point 9; Directed along the yi-axis +InflowWind['Wind9VelZ'] = False # (m/s); Z component of wind at user selected wind point 9; Directed along the zi-axis + +# Wind Sensor Measurements +InflowWind['WindMeas1'] = False # (m/s); Wind measurement at sensor 1; Defined by sensor +InflowWind['WindMeas2'] = False # (m/s); Wind measurement at sensor 2; Defined by sensor +InflowWind['WindMeas3'] = False # (m/s); Wind measurement at sensor 3; Defined by sensor +InflowWind['WindMeas4'] = False # (m/s); Wind measurement at sensor 4; Defined by sensor +InflowWind['WindMeas5'] = False # (m/s); Wind measurement at sensor 5; Defined by sensor + + +""" WAMIT """ +WAMIT = {} + +# WAMIT Body Forces +WAMIT['Wave1El2'] = False # (m); 2nd order wave elevation correction; +WAMIT['Wave2El2'] = False # (m); 2nd order wave elevation correction; +WAMIT['Wave3El2'] = False # (m); 2nd order wave elevation correction; +WAMIT['Wave4El2'] = False # (m); 2nd order wave elevation correction; +WAMIT['Wave5El2'] = False # (m); 2nd order wave elevation correction; +WAMIT['Wave6El2'] = False # (m); 2nd order wave elevation correction; +WAMIT['Wave7El2'] = False # (m); 2nd order wave elevation correction; +WAMIT['Wave8El2'] = False # (m); 2nd order wave elevation correction; +WAMIT['Wave9El2'] = False # (m); 2nd order wave elevation correction; + +# WAMIT second order Body Forces +WAMIT['WavesF2xi'] = False # (N); ; +WAMIT['WavesF2yi'] = False # (N); ; +WAMIT['WavesF2zi'] = False # (N); ; +WAMIT['WavesM2xi'] = False # (N m); ; +WAMIT['WavesM2yi'] = False # (N m); ; +WAMIT['WavesM2zi'] = False # (N m); ; + +# WAMIT Body Forces +WAMIT['WavesFxi'] = False # (N); ; +WAMIT['WavesFyi'] = False # (N); ; +WAMIT['WavesFzi'] = False # (N); ; +WAMIT['WavesMxi'] = False # (N m); ; +WAMIT['WavesMyi'] = False # (N m); ; +WAMIT['WavesMzi'] = False # (N m); ; +WAMIT['HdrStcFxi'] = False # (N); ; +WAMIT['HdrStcFyi'] = False # (N); ; +WAMIT['HdrStcFzi'] = False # (N); ; +WAMIT['HdrStcMxi'] = False # (N m); ; +WAMIT['HdrStcMyi'] = False # (N m); ; +WAMIT['HdrStcMzi'] = False # (N m); ; +WAMIT['RdtnFxi'] = False # (N); ; +WAMIT['RdtnFyi'] = False # (N); ; +WAMIT['RdtnFzi'] = False # (N); ; +WAMIT['RdtnMxi'] = False # (N m); ; +WAMIT['RdtnMyi'] = False # (N m); ; +WAMIT['RdtnMzi'] = False # (N m); ; + +""" HydroDyn """ +HydroDyn = {} + +# Forces due to additional preload, stiffness, and damping +HydroDyn['AddFxi'] = False # (N); ; +HydroDyn['AddFyi'] = False # (N); ; +HydroDyn['AddFzi'] = False # (N); ; +HydroDyn['AddMxi'] = False # (N m); ; +HydroDyn['AddMyi'] = False # (N m); ; +HydroDyn['AddMzi'] = False # (N m); ; + +# Integrated hydrodynamic loads at the WAMIT reference point +HydroDyn['HydroFxi'] = False # (N); ; +HydroDyn['HydroFyi'] = False # (N); ; +HydroDyn['HydroFzi'] = False # (N); ; +HydroDyn['HydroMxi'] = False # (N m); ; +HydroDyn['HydroMyi'] = False # (N m); ; +HydroDyn['HydroMzi'] = False # (N m); ; + +# Wave Motions +HydroDyn['Wave1Elev'] = False # (m); ; +HydroDyn['Wave2Elev'] = False # (m); ; +HydroDyn['Wave3Elev'] = False # (m); ; +HydroDyn['Wave4Elev'] = False # (m); ; +HydroDyn['Wave5Elev'] = False # (m); ; +HydroDyn['Wave6Elev'] = False # (m); ; +HydroDyn['Wave7Elev'] = False # (m); ; +HydroDyn['Wave8Elev'] = False # (m); ; +HydroDyn['Wave9Elev'] = False # (m); ; + +# WRP Motions +HydroDyn['WRPSurge'] = False # (m); ; +HydroDyn['WRPSway'] = False # (m); ; +HydroDyn['WRPHeave'] = False # (m); ; +HydroDyn['WRPRoll'] = False # (rad); ; +HydroDyn['WRPPitch'] = False # (rad); ; +HydroDyn['WRPYaw'] = False # (rad); ; +HydroDyn['WRPTVxi'] = False # (m/s); ; +HydroDyn['WRPTVyi'] = False # (m/s); ; +HydroDyn['WRPTVzi'] = False # (m/s); ; +HydroDyn['WRPRVxi'] = False # (rad/s); ; +HydroDyn['WRPRVyi'] = False # (rad/s); ; +HydroDyn['WRPRVzi'] = False # (rad/s); ; +HydroDyn['WRPTAxi'] = False # (m/s^2); ; +HydroDyn['WRPTAyi'] = False # (m/s^2); ; +HydroDyn['WRPTAzi'] = False # (m/s^2); ; +HydroDyn['WRPRAxi'] = False # (rad/s^2); ; +HydroDyn['WRPRAyi'] = False # (rad/s^2); ; +HydroDyn['WRPRAzi'] = False # (rad/s^2); ; + + +""" Morison """ +Morison = {} + +# Member-level Wave Kinematics +Morison['M1N1Axi'] = False # (m/s^2); fluid acceleration; +Morison['M1N2Axi'] = False # (m/s^2); ; +Morison['M1N3Axi'] = False # (m/s^2); ; +Morison['M1N4Axi'] = False # (m/s^2); ; +Morison['M1N5Axi'] = False # (m/s^2); ; +Morison['M1N6Axi'] = False # (m/s^2); ; +Morison['M1N7Axi'] = False # (m/s^2); ; +Morison['M1N8Axi'] = False # (m/s^2); ; +Morison['M1N9Axi'] = False # (m/s^2); ; +Morison['M2N1Axi'] = False # (m/s^2); ; +Morison['M2N2Axi'] = False # (m/s^2); ; +Morison['M2N3Axi'] = False # (m/s^2); ; +Morison['M2N4Axi'] = False # (m/s^2); ; +Morison['M2N5Axi'] = False # (m/s^2); ; +Morison['M2N6Axi'] = False # (m/s^2); ; +Morison['M2N7Axi'] = False # (m/s^2); ; +Morison['M2N8Axi'] = False # (m/s^2); ; +Morison['M2N9Axi'] = False # (m/s^2); ; +Morison['M3N1Axi'] = False # (m/s^2); ; +Morison['M3N2Axi'] = False # (m/s^2); ; +Morison['M3N3Axi'] = False # (m/s^2); ; +Morison['M3N4Axi'] = False # (m/s^2); ; +Morison['M3N5Axi'] = False # (m/s^2); ; +Morison['M3N6Axi'] = False # (m/s^2); ; +Morison['M3N7Axi'] = False # (m/s^2); ; +Morison['M3N8Axi'] = False # (m/s^2); ; +Morison['M3N9Axi'] = False # (m/s^2); ; +Morison['M4N1Axi'] = False # (m/s^2); ; +Morison['M4N2Axi'] = False # (m/s^2); ; +Morison['M4N3Axi'] = False # (m/s^2); ; +Morison['M4N4Axi'] = False # (m/s^2); ; +Morison['M4N5Axi'] = False # (m/s^2); ; +Morison['M4N6Axi'] = False # (m/s^2); ; +Morison['M4N7Axi'] = False # (m/s^2); ; +Morison['M4N8Axi'] = False # (m/s^2); ; +Morison['M4N9Axi'] = False # (m/s^2); ; +Morison['M5N1Axi'] = False # (m/s^2); ; +Morison['M5N2Axi'] = False # (m/s^2); ; +Morison['M5N3Axi'] = False # (m/s^2); ; +Morison['M5N4Axi'] = False # (m/s^2); ; +Morison['M5N5Axi'] = False # (m/s^2); ; +Morison['M5N6Axi'] = False # (m/s^2); ; +Morison['M5N7Axi'] = False # (m/s^2); ; +Morison['M5N8Axi'] = False # (m/s^2); ; +Morison['M5N9Axi'] = False # (m/s^2); ; +Morison['M6N1Axi'] = False # (m/s^2); ; +Morison['M6N2Axi'] = False # (m/s^2); ; +Morison['M6N3Axi'] = False # (m/s^2); ; +Morison['M6N4Axi'] = False # (m/s^2); ; +Morison['M6N5Axi'] = False # (m/s^2); ; +Morison['M6N6Axi'] = False # (m/s^2); ; +Morison['M6N7Axi'] = False # (m/s^2); ; +Morison['M6N8Axi'] = False # (m/s^2); ; +Morison['M6N9Axi'] = False # (m/s^2); ; +Morison['M7N1Axi'] = False # (m/s^2); ; +Morison['M7N2Axi'] = False # (m/s^2); ; +Morison['M7N3Axi'] = False # (m/s^2); ; +Morison['M7N4Axi'] = False # (m/s^2); ; +Morison['M7N5Axi'] = False # (m/s^2); ; +Morison['M7N6Axi'] = False # (m/s^2); ; +Morison['M7N7Axi'] = False # (m/s^2); ; +Morison['M7N8Axi'] = False # (m/s^2); ; +Morison['M7N9Axi'] = False # (m/s^2); ; +Morison['M8N1Axi'] = False # (m/s^2); ; +Morison['M8N2Axi'] = False # (m/s^2); ; +Morison['M8N3Axi'] = False # (m/s^2); ; +Morison['M8N4Axi'] = False # (m/s^2); ; +Morison['M8N5Axi'] = False # (m/s^2); ; +Morison['M8N6Axi'] = False # (m/s^2); ; +Morison['M8N7Axi'] = False # (m/s^2); ; +Morison['M8N8Axi'] = False # (m/s^2); ; +Morison['M8N9Axi'] = False # (m/s^2); ; +Morison['M9N1Axi'] = False # (m/s^2); ; +Morison['M9N2Axi'] = False # (m/s^2); ; +Morison['M9N3Axi'] = False # (m/s^2); ; +Morison['M9N4Axi'] = False # (m/s^2); ; +Morison['M9N5Axi'] = False # (m/s^2); ; +Morison['M9N6Axi'] = False # (m/s^2); ; +Morison['M9N7Axi'] = False # (m/s^2); ; +Morison['M9N8Axi'] = False # (m/s^2); ; +Morison['M9N9Axi'] = False # (m/s^2); ; +Morison['M1N1Ayi'] = False # (m/s^2); ; +Morison['M1N2Ayi'] = False # (m/s^2); ; +Morison['M1N3Ayi'] = False # (m/s^2); ; +Morison['M1N4Ayi'] = False # (m/s^2); ; +Morison['M1N5Ayi'] = False # (m/s^2); ; +Morison['M1N6Ayi'] = False # (m/s^2); ; +Morison['M1N7Ayi'] = False # (m/s^2); ; +Morison['M1N8Ayi'] = False # (m/s^2); ; +Morison['M1N9Ayi'] = False # (m/s^2); ; +Morison['M2N1Ayi'] = False # (m/s^2); ; +Morison['M2N2Ayi'] = False # (m/s^2); ; +Morison['M2N3Ayi'] = False # (m/s^2); ; +Morison['M2N4Ayi'] = False # (m/s^2); ; +Morison['M2N5Ayi'] = False # (m/s^2); ; +Morison['M2N6Ayi'] = False # (m/s^2); ; +Morison['M2N7Ayi'] = False # (m/s^2); ; +Morison['M2N8Ayi'] = False # (m/s^2); ; +Morison['M2N9Ayi'] = False # (m/s^2); ; +Morison['M3N1Ayi'] = False # (m/s^2); ; +Morison['M3N2Ayi'] = False # (m/s^2); ; +Morison['M3N3Ayi'] = False # (m/s^2); ; +Morison['M3N4Ayi'] = False # (m/s^2); ; +Morison['M3N5Ayi'] = False # (m/s^2); ; +Morison['M3N6Ayi'] = False # (m/s^2); ; +Morison['M3N7Ayi'] = False # (m/s^2); ; +Morison['M3N8Ayi'] = False # (m/s^2); ; +Morison['M3N9Ayi'] = False # (m/s^2); ; +Morison['M4N1Ayi'] = False # (m/s^2); ; +Morison['M4N2Ayi'] = False # (m/s^2); ; +Morison['M4N3Ayi'] = False # (m/s^2); ; +Morison['M4N4Ayi'] = False # (m/s^2); ; +Morison['M4N5Ayi'] = False # (m/s^2); ; +Morison['M4N6Ayi'] = False # (m/s^2); ; +Morison['M4N7Ayi'] = False # (m/s^2); ; +Morison['M4N8Ayi'] = False # (m/s^2); ; +Morison['M4N9Ayi'] = False # (m/s^2); ; +Morison['M5N1Ayi'] = False # (m/s^2); ; +Morison['M5N2Ayi'] = False # (m/s^2); ; +Morison['M5N3Ayi'] = False # (m/s^2); ; +Morison['M5N4Ayi'] = False # (m/s^2); ; +Morison['M5N5Ayi'] = False # (m/s^2); ; +Morison['M5N6Ayi'] = False # (m/s^2); ; +Morison['M5N7Ayi'] = False # (m/s^2); ; +Morison['M5N8Ayi'] = False # (m/s^2); ; +Morison['M5N9Ayi'] = False # (m/s^2); ; +Morison['M6N1Ayi'] = False # (m/s^2); ; +Morison['M6N2Ayi'] = False # (m/s^2); ; +Morison['M6N3Ayi'] = False # (m/s^2); ; +Morison['M6N4Ayi'] = False # (m/s^2); ; +Morison['M6N5Ayi'] = False # (m/s^2); ; +Morison['M6N6Ayi'] = False # (m/s^2); ; +Morison['M6N7Ayi'] = False # (m/s^2); ; +Morison['M6N8Ayi'] = False # (m/s^2); ; +Morison['M6N9Ayi'] = False # (m/s^2); ; +Morison['M7N1Ayi'] = False # (m/s^2); ; +Morison['M7N2Ayi'] = False # (m/s^2); ; +Morison['M7N3Ayi'] = False # (m/s^2); ; +Morison['M7N4Ayi'] = False # (m/s^2); ; +Morison['M7N5Ayi'] = False # (m/s^2); ; +Morison['M7N6Ayi'] = False # (m/s^2); ; +Morison['M7N7Ayi'] = False # (m/s^2); ; +Morison['M7N8Ayi'] = False # (m/s^2); ; +Morison['M7N9Ayi'] = False # (m/s^2); ; +Morison['M8N1Ayi'] = False # (m/s^2); ; +Morison['M8N2Ayi'] = False # (m/s^2); ; +Morison['M8N3Ayi'] = False # (m/s^2); ; +Morison['M8N4Ayi'] = False # (m/s^2); ; +Morison['M8N5Ayi'] = False # (m/s^2); ; +Morison['M8N6Ayi'] = False # (m/s^2); ; +Morison['M8N7Ayi'] = False # (m/s^2); ; +Morison['M8N8Ayi'] = False # (m/s^2); ; +Morison['M8N9Ayi'] = False # (m/s^2); ; +Morison['M9N1Ayi'] = False # (m/s^2); ; +Morison['M9N2Ayi'] = False # (m/s^2); ; +Morison['M9N3Ayi'] = False # (m/s^2); ; +Morison['M9N4Ayi'] = False # (m/s^2); ; +Morison['M9N5Ayi'] = False # (m/s^2); ; +Morison['M9N6Ayi'] = False # (m/s^2); ; +Morison['M9N7Ayi'] = False # (m/s^2); ; +Morison['M9N8Ayi'] = False # (m/s^2); ; +Morison['M9N9Ayi'] = False # (m/s^2); ; +Morison['M1N1Azi'] = False # (m/s^2); ; +Morison['M1N2Azi'] = False # (m/s^2); ; +Morison['M1N3Azi'] = False # (m/s^2); ; +Morison['M1N4Azi'] = False # (m/s^2); ; +Morison['M1N5Azi'] = False # (m/s^2); ; +Morison['M1N6Azi'] = False # (m/s^2); ; +Morison['M1N7Azi'] = False # (m/s^2); ; +Morison['M1N8Azi'] = False # (m/s^2); ; +Morison['M1N9Azi'] = False # (m/s^2); ; +Morison['M2N1Azi'] = False # (m/s^2); ; +Morison['M2N2Azi'] = False # (m/s^2); ; +Morison['M2N3Azi'] = False # (m/s^2); ; +Morison['M2N4Azi'] = False # (m/s^2); ; +Morison['M2N5Azi'] = False # (m/s^2); ; +Morison['M2N6Azi'] = False # (m/s^2); ; +Morison['M2N7Azi'] = False # (m/s^2); ; +Morison['M2N8Azi'] = False # (m/s^2); ; +Morison['M2N9Azi'] = False # (m/s^2); ; +Morison['M3N1Azi'] = False # (m/s^2); ; +Morison['M3N2Azi'] = False # (m/s^2); ; +Morison['M3N3Azi'] = False # (m/s^2); ; +Morison['M3N4Azi'] = False # (m/s^2); ; +Morison['M3N5Azi'] = False # (m/s^2); ; +Morison['M3N6Azi'] = False # (m/s^2); ; +Morison['M3N7Azi'] = False # (m/s^2); ; +Morison['M3N8Azi'] = False # (m/s^2); ; +Morison['M3N9Azi'] = False # (m/s^2); ; +Morison['M4N1Azi'] = False # (m/s^2); ; +Morison['M4N2Azi'] = False # (m/s^2); ; +Morison['M4N3Azi'] = False # (m/s^2); ; +Morison['M4N4Azi'] = False # (m/s^2); ; +Morison['M4N5Azi'] = False # (m/s^2); ; +Morison['M4N6Azi'] = False # (m/s^2); ; +Morison['M4N7Azi'] = False # (m/s^2); ; +Morison['M4N8Azi'] = False # (m/s^2); ; +Morison['M4N9Azi'] = False # (m/s^2); ; +Morison['M5N1Azi'] = False # (m/s^2); ; +Morison['M5N2Azi'] = False # (m/s^2); ; +Morison['M5N3Azi'] = False # (m/s^2); ; +Morison['M5N4Azi'] = False # (m/s^2); ; +Morison['M5N5Azi'] = False # (m/s^2); ; +Morison['M5N6Azi'] = False # (m/s^2); ; +Morison['M5N7Azi'] = False # (m/s^2); ; +Morison['M5N8Azi'] = False # (m/s^2); ; +Morison['M5N9Azi'] = False # (m/s^2); ; +Morison['M6N1Azi'] = False # (m/s^2); ; +Morison['M6N2Azi'] = False # (m/s^2); ; +Morison['M6N3Azi'] = False # (m/s^2); ; +Morison['M6N4Azi'] = False # (m/s^2); ; +Morison['M6N5Azi'] = False # (m/s^2); ; +Morison['M6N6Azi'] = False # (m/s^2); ; +Morison['M6N7Azi'] = False # (m/s^2); ; +Morison['M6N8Azi'] = False # (m/s^2); ; +Morison['M6N9Azi'] = False # (m/s^2); ; +Morison['M7N1Azi'] = False # (m/s^2); ; +Morison['M7N2Azi'] = False # (m/s^2); ; +Morison['M7N3Azi'] = False # (m/s^2); ; +Morison['M7N4Azi'] = False # (m/s^2); ; +Morison['M7N5Azi'] = False # (m/s^2); ; +Morison['M7N6Azi'] = False # (m/s^2); ; +Morison['M7N7Azi'] = False # (m/s^2); ; +Morison['M7N8Azi'] = False # (m/s^2); ; +Morison['M7N9Azi'] = False # (m/s^2); ; +Morison['M8N1Azi'] = False # (m/s^2); ; +Morison['M8N2Azi'] = False # (m/s^2); ; +Morison['M8N3Azi'] = False # (m/s^2); ; +Morison['M8N4Azi'] = False # (m/s^2); ; +Morison['M8N5Azi'] = False # (m/s^2); ; +Morison['M8N6Azi'] = False # (m/s^2); ; +Morison['M8N7Azi'] = False # (m/s^2); ; +Morison['M8N8Azi'] = False # (m/s^2); ; +Morison['M8N9Azi'] = False # (m/s^2); ; +Morison['M9N1Azi'] = False # (m/s^2); ; +Morison['M9N2Azi'] = False # (m/s^2); ; +Morison['M9N3Azi'] = False # (m/s^2); ; +Morison['M9N4Azi'] = False # (m/s^2); ; +Morison['M9N5Azi'] = False # (m/s^2); ; +Morison['M9N6Azi'] = False # (m/s^2); ; +Morison['M9N7Azi'] = False # (m/s^2); ; +Morison['M9N8Azi'] = False # (m/s^2); ; +Morison['M9N9Azi'] = False # (m/s^2); ; +Morison['M1N1Vxi'] = False # (m/s); fluid velocity; +Morison['M1N2Vxi'] = False # (m/s); ; +Morison['M1N3Vxi'] = False # (m/s); ; +Morison['M1N4Vxi'] = False # (m/s); ; +Morison['M1N5Vxi'] = False # (m/s); ; +Morison['M1N6Vxi'] = False # (m/s); ; +Morison['M1N7Vxi'] = False # (m/s); ; +Morison['M1N8Vxi'] = False # (m/s); ; +Morison['M1N9Vxi'] = False # (m/s); ; +Morison['M2N1Vxi'] = False # (m/s); ; +Morison['M2N2Vxi'] = False # (m/s); ; +Morison['M2N3Vxi'] = False # (m/s); ; +Morison['M2N4Vxi'] = False # (m/s); ; +Morison['M2N5Vxi'] = False # (m/s); ; +Morison['M2N6Vxi'] = False # (m/s); ; +Morison['M2N7Vxi'] = False # (m/s); ; +Morison['M2N8Vxi'] = False # (m/s); ; +Morison['M2N9Vxi'] = False # (m/s); ; +Morison['M3N1Vxi'] = False # (m/s); ; +Morison['M3N2Vxi'] = False # (m/s); ; +Morison['M3N3Vxi'] = False # (m/s); ; +Morison['M3N4Vxi'] = False # (m/s); ; +Morison['M3N5Vxi'] = False # (m/s); ; +Morison['M3N6Vxi'] = False # (m/s); ; +Morison['M3N7Vxi'] = False # (m/s); ; +Morison['M3N8Vxi'] = False # (m/s); ; +Morison['M3N9Vxi'] = False # (m/s); ; +Morison['M4N1Vxi'] = False # (m/s); ; +Morison['M4N2Vxi'] = False # (m/s); ; +Morison['M4N3Vxi'] = False # (m/s); ; +Morison['M4N4Vxi'] = False # (m/s); ; +Morison['M4N5Vxi'] = False # (m/s); ; +Morison['M4N6Vxi'] = False # (m/s); ; +Morison['M4N7Vxi'] = False # (m/s); ; +Morison['M4N8Vxi'] = False # (m/s); ; +Morison['M4N9Vxi'] = False # (m/s); ; +Morison['M5N1Vxi'] = False # (m/s); ; +Morison['M5N2Vxi'] = False # (m/s); ; +Morison['M5N3Vxi'] = False # (m/s); ; +Morison['M5N4Vxi'] = False # (m/s); ; +Morison['M5N5Vxi'] = False # (m/s); ; +Morison['M5N6Vxi'] = False # (m/s); ; +Morison['M5N7Vxi'] = False # (m/s); ; +Morison['M5N8Vxi'] = False # (m/s); ; +Morison['M5N9Vxi'] = False # (m/s); ; +Morison['M6N1Vxi'] = False # (m/s); ; +Morison['M6N2Vxi'] = False # (m/s); ; +Morison['M6N3Vxi'] = False # (m/s); ; +Morison['M6N4Vxi'] = False # (m/s); ; +Morison['M6N5Vxi'] = False # (m/s); ; +Morison['M6N6Vxi'] = False # (m/s); ; +Morison['M6N7Vxi'] = False # (m/s); ; +Morison['M6N8Vxi'] = False # (m/s); ; +Morison['M6N9Vxi'] = False # (m/s); ; +Morison['M7N1Vxi'] = False # (m/s); ; +Morison['M7N2Vxi'] = False # (m/s); ; +Morison['M7N3Vxi'] = False # (m/s); ; +Morison['M7N4Vxi'] = False # (m/s); ; +Morison['M7N5Vxi'] = False # (m/s); ; +Morison['M7N6Vxi'] = False # (m/s); ; +Morison['M7N7Vxi'] = False # (m/s); ; +Morison['M7N8Vxi'] = False # (m/s); ; +Morison['M7N9Vxi'] = False # (m/s); ; +Morison['M8N1Vxi'] = False # (m/s); ; +Morison['M8N2Vxi'] = False # (m/s); ; +Morison['M8N3Vxi'] = False # (m/s); ; +Morison['M8N4Vxi'] = False # (m/s); ; +Morison['M8N5Vxi'] = False # (m/s); ; +Morison['M8N6Vxi'] = False # (m/s); ; +Morison['M8N7Vxi'] = False # (m/s); ; +Morison['M8N8Vxi'] = False # (m/s); ; +Morison['M8N9Vxi'] = False # (m/s); ; +Morison['M9N1Vxi'] = False # (m/s); ; +Morison['M9N2Vxi'] = False # (m/s); ; +Morison['M9N3Vxi'] = False # (m/s); ; +Morison['M9N4Vxi'] = False # (m/s); ; +Morison['M9N5Vxi'] = False # (m/s); ; +Morison['M9N6Vxi'] = False # (m/s); ; +Morison['M9N7Vxi'] = False # (m/s); ; +Morison['M9N8Vxi'] = False # (m/s); ; +Morison['M9N9Vxi'] = False # (m/s); ; +Morison['M1N1Vyi'] = False # (m/s); ; +Morison['M1N2Vyi'] = False # (m/s); ; +Morison['M1N3Vyi'] = False # (m/s); ; +Morison['M1N4Vyi'] = False # (m/s); ; +Morison['M1N5Vyi'] = False # (m/s); ; +Morison['M1N6Vyi'] = False # (m/s); ; +Morison['M1N7Vyi'] = False # (m/s); ; +Morison['M1N8Vyi'] = False # (m/s); ; +Morison['M1N9Vyi'] = False # (m/s); ; +Morison['M2N1Vyi'] = False # (m/s); ; +Morison['M2N2Vyi'] = False # (m/s); ; +Morison['M2N3Vyi'] = False # (m/s); ; +Morison['M2N4Vyi'] = False # (m/s); ; +Morison['M2N5Vyi'] = False # (m/s); ; +Morison['M2N6Vyi'] = False # (m/s); ; +Morison['M2N7Vyi'] = False # (m/s); ; +Morison['M2N8Vyi'] = False # (m/s); ; +Morison['M2N9Vyi'] = False # (m/s); ; +Morison['M3N1Vyi'] = False # (m/s); ; +Morison['M3N2Vyi'] = False # (m/s); ; +Morison['M3N3Vyi'] = False # (m/s); ; +Morison['M3N4Vyi'] = False # (m/s); ; +Morison['M3N5Vyi'] = False # (m/s); ; +Morison['M3N6Vyi'] = False # (m/s); ; +Morison['M3N7Vyi'] = False # (m/s); ; +Morison['M3N8Vyi'] = False # (m/s); ; +Morison['M3N9Vyi'] = False # (m/s); ; +Morison['M4N1Vyi'] = False # (m/s); ; +Morison['M4N2Vyi'] = False # (m/s); ; +Morison['M4N3Vyi'] = False # (m/s); ; +Morison['M4N4Vyi'] = False # (m/s); ; +Morison['M4N5Vyi'] = False # (m/s); ; +Morison['M4N6Vyi'] = False # (m/s); ; +Morison['M4N7Vyi'] = False # (m/s); ; +Morison['M4N8Vyi'] = False # (m/s); ; +Morison['M4N9Vyi'] = False # (m/s); ; +Morison['M5N1Vyi'] = False # (m/s); ; +Morison['M5N2Vyi'] = False # (m/s); ; +Morison['M5N3Vyi'] = False # (m/s); ; +Morison['M5N4Vyi'] = False # (m/s); ; +Morison['M5N5Vyi'] = False # (m/s); ; +Morison['M5N6Vyi'] = False # (m/s); ; +Morison['M5N7Vyi'] = False # (m/s); ; +Morison['M5N8Vyi'] = False # (m/s); ; +Morison['M5N9Vyi'] = False # (m/s); ; +Morison['M6N1Vyi'] = False # (m/s); ; +Morison['M6N2Vyi'] = False # (m/s); ; +Morison['M6N3Vyi'] = False # (m/s); ; +Morison['M6N4Vyi'] = False # (m/s); ; +Morison['M6N5Vyi'] = False # (m/s); ; +Morison['M6N6Vyi'] = False # (m/s); ; +Morison['M6N7Vyi'] = False # (m/s); ; +Morison['M6N8Vyi'] = False # (m/s); ; +Morison['M6N9Vyi'] = False # (m/s); ; +Morison['M7N1Vyi'] = False # (m/s); ; +Morison['M7N2Vyi'] = False # (m/s); ; +Morison['M7N3Vyi'] = False # (m/s); ; +Morison['M7N4Vyi'] = False # (m/s); ; +Morison['M7N5Vyi'] = False # (m/s); ; +Morison['M7N6Vyi'] = False # (m/s); ; +Morison['M7N7Vyi'] = False # (m/s); ; +Morison['M7N8Vyi'] = False # (m/s); ; +Morison['M7N9Vyi'] = False # (m/s); ; +Morison['M8N1Vyi'] = False # (m/s); ; +Morison['M8N2Vyi'] = False # (m/s); ; +Morison['M8N3Vyi'] = False # (m/s); ; +Morison['M8N4Vyi'] = False # (m/s); ; +Morison['M8N5Vyi'] = False # (m/s); ; +Morison['M8N6Vyi'] = False # (m/s); ; +Morison['M8N7Vyi'] = False # (m/s); ; +Morison['M8N8Vyi'] = False # (m/s); ; +Morison['M8N9Vyi'] = False # (m/s); ; +Morison['M9N1Vyi'] = False # (m/s); ; +Morison['M9N2Vyi'] = False # (m/s); ; +Morison['M9N3Vyi'] = False # (m/s); ; +Morison['M9N4Vyi'] = False # (m/s); ; +Morison['M9N5Vyi'] = False # (m/s); ; +Morison['M9N6Vyi'] = False # (m/s); ; +Morison['M9N7Vyi'] = False # (m/s); ; +Morison['M9N8Vyi'] = False # (m/s); ; +Morison['M9N9Vyi'] = False # (m/s); ; +Morison['M1N1Vzi'] = False # (m/s); ; +Morison['M1N2Vzi'] = False # (m/s); ; +Morison['M1N3Vzi'] = False # (m/s); ; +Morison['M1N4Vzi'] = False # (m/s); ; +Morison['M1N5Vzi'] = False # (m/s); ; +Morison['M1N6Vzi'] = False # (m/s); ; +Morison['M1N7Vzi'] = False # (m/s); ; +Morison['M1N8Vzi'] = False # (m/s); ; +Morison['M1N9Vzi'] = False # (m/s); ; +Morison['M2N1Vzi'] = False # (m/s); ; +Morison['M2N2Vzi'] = False # (m/s); ; +Morison['M2N3Vzi'] = False # (m/s); ; +Morison['M2N4Vzi'] = False # (m/s); ; +Morison['M2N5Vzi'] = False # (m/s); ; +Morison['M2N6Vzi'] = False # (m/s); ; +Morison['M2N7Vzi'] = False # (m/s); ; +Morison['M2N8Vzi'] = False # (m/s); ; +Morison['M2N9Vzi'] = False # (m/s); ; +Morison['M3N1Vzi'] = False # (m/s); ; +Morison['M3N2Vzi'] = False # (m/s); ; +Morison['M3N3Vzi'] = False # (m/s); ; +Morison['M3N4Vzi'] = False # (m/s); ; +Morison['M3N5Vzi'] = False # (m/s); ; +Morison['M3N6Vzi'] = False # (m/s); ; +Morison['M3N7Vzi'] = False # (m/s); ; +Morison['M3N8Vzi'] = False # (m/s); ; +Morison['M3N9Vzi'] = False # (m/s); ; +Morison['M4N1Vzi'] = False # (m/s); ; +Morison['M4N2Vzi'] = False # (m/s); ; +Morison['M4N3Vzi'] = False # (m/s); ; +Morison['M4N4Vzi'] = False # (m/s); ; +Morison['M4N5Vzi'] = False # (m/s); ; +Morison['M4N6Vzi'] = False # (m/s); ; +Morison['M4N7Vzi'] = False # (m/s); ; +Morison['M4N8Vzi'] = False # (m/s); ; +Morison['M4N9Vzi'] = False # (m/s); ; +Morison['M5N1Vzi'] = False # (m/s); ; +Morison['M5N2Vzi'] = False # (m/s); ; +Morison['M5N3Vzi'] = False # (m/s); ; +Morison['M5N4Vzi'] = False # (m/s); ; +Morison['M5N5Vzi'] = False # (m/s); ; +Morison['M5N6Vzi'] = False # (m/s); ; +Morison['M5N7Vzi'] = False # (m/s); ; +Morison['M5N8Vzi'] = False # (m/s); ; +Morison['M5N9Vzi'] = False # (m/s); ; +Morison['M6N1Vzi'] = False # (m/s); ; +Morison['M6N2Vzi'] = False # (m/s); ; +Morison['M6N3Vzi'] = False # (m/s); ; +Morison['M6N4Vzi'] = False # (m/s); ; +Morison['M6N5Vzi'] = False # (m/s); ; +Morison['M6N6Vzi'] = False # (m/s); ; +Morison['M6N7Vzi'] = False # (m/s); ; +Morison['M6N8Vzi'] = False # (m/s); ; +Morison['M6N9Vzi'] = False # (m/s); ; +Morison['M7N1Vzi'] = False # (m/s); ; +Morison['M7N2Vzi'] = False # (m/s); ; +Morison['M7N3Vzi'] = False # (m/s); ; +Morison['M7N4Vzi'] = False # (m/s); ; +Morison['M7N5Vzi'] = False # (m/s); ; +Morison['M7N6Vzi'] = False # (m/s); ; +Morison['M7N7Vzi'] = False # (m/s); ; +Morison['M7N8Vzi'] = False # (m/s); ; +Morison['M7N9Vzi'] = False # (m/s); ; +Morison['M8N1Vzi'] = False # (m/s); ; +Morison['M8N2Vzi'] = False # (m/s); ; +Morison['M8N3Vzi'] = False # (m/s); ; +Morison['M8N4Vzi'] = False # (m/s); ; +Morison['M8N5Vzi'] = False # (m/s); ; +Morison['M8N6Vzi'] = False # (m/s); ; +Morison['M8N7Vzi'] = False # (m/s); ; +Morison['M8N8Vzi'] = False # (m/s); ; +Morison['M8N9Vzi'] = False # (m/s); ; +Morison['M9N1Vzi'] = False # (m/s); ; +Morison['M9N2Vzi'] = False # (m/s); ; +Morison['M9N3Vzi'] = False # (m/s); ; +Morison['M9N4Vzi'] = False # (m/s); ; +Morison['M9N5Vzi'] = False # (m/s); ; +Morison['M9N6Vzi'] = False # (m/s); ; +Morison['M9N7Vzi'] = False # (m/s); ; +Morison['M9N8Vzi'] = False # (m/s); ; +Morison['M9N9Vzi'] = False # (m/s); ; +Morison['M1N1DynP'] = False # (Pa); fluid dynamic pressure; +Morison['M1N2DynP'] = False # (Pa); ; +Morison['M1N3DynP'] = False # (Pa); ; +Morison['M1N4DynP'] = False # (Pa); ; +Morison['M1N5DynP'] = False # (Pa); ; +Morison['M1N6DynP'] = False # (Pa); ; +Morison['M1N7DynP'] = False # (Pa); ; +Morison['M1N8DynP'] = False # (Pa); ; +Morison['M1N9DynP'] = False # (Pa); ; +Morison['M2N1DynP'] = False # (Pa); ; +Morison['M2N2DynP'] = False # (Pa); ; +Morison['M2N3DynP'] = False # (Pa); ; +Morison['M2N4DynP'] = False # (Pa); ; +Morison['M2N5DynP'] = False # (Pa); ; +Morison['M2N6DynP'] = False # (Pa); ; +Morison['M2N7DynP'] = False # (Pa); ; +Morison['M2N8DynP'] = False # (Pa); ; +Morison['M2N9DynP'] = False # (Pa); ; +Morison['M3N1DynP'] = False # (Pa); ; +Morison['M3N2DynP'] = False # (Pa); ; +Morison['M3N3DynP'] = False # (Pa); ; +Morison['M3N4DynP'] = False # (Pa); ; +Morison['M3N5DynP'] = False # (Pa); ; +Morison['M3N6DynP'] = False # (Pa); ; +Morison['M3N7DynP'] = False # (Pa); ; +Morison['M3N8DynP'] = False # (Pa); ; +Morison['M3N9DynP'] = False # (Pa); ; +Morison['M4N1DynP'] = False # (Pa); ; +Morison['M4N2DynP'] = False # (Pa); ; +Morison['M4N3DynP'] = False # (Pa); ; +Morison['M4N4DynP'] = False # (Pa); ; +Morison['M4N5DynP'] = False # (Pa); ; +Morison['M4N6DynP'] = False # (Pa); ; +Morison['M4N7DynP'] = False # (Pa); ; +Morison['M4N8DynP'] = False # (Pa); ; +Morison['M4N9DynP'] = False # (Pa); ; +Morison['M5N1DynP'] = False # (Pa); ; +Morison['M5N2DynP'] = False # (Pa); ; +Morison['M5N3DynP'] = False # (Pa); ; +Morison['M5N4DynP'] = False # (Pa); ; +Morison['M5N5DynP'] = False # (Pa); ; +Morison['M5N6DynP'] = False # (Pa); ; +Morison['M5N7DynP'] = False # (Pa); ; +Morison['M5N8DynP'] = False # (Pa); ; +Morison['M5N9DynP'] = False # (Pa); ; +Morison['M6N1DynP'] = False # (Pa); ; +Morison['M6N2DynP'] = False # (Pa); ; +Morison['M6N3DynP'] = False # (Pa); ; +Morison['M6N4DynP'] = False # (Pa); ; +Morison['M6N5DynP'] = False # (Pa); ; +Morison['M6N6DynP'] = False # (Pa); ; +Morison['M6N7DynP'] = False # (Pa); ; +Morison['M6N8DynP'] = False # (Pa); ; +Morison['M6N9DynP'] = False # (Pa); ; +Morison['M7N1DynP'] = False # (Pa); ; +Morison['M7N2DynP'] = False # (Pa); ; +Morison['M7N3DynP'] = False # (Pa); ; +Morison['M7N4DynP'] = False # (Pa); ; +Morison['M7N5DynP'] = False # (Pa); ; +Morison['M7N6DynP'] = False # (Pa); ; +Morison['M7N7DynP'] = False # (Pa); ; +Morison['M7N8DynP'] = False # (Pa); ; +Morison['M7N9DynP'] = False # (Pa); ; +Morison['M8N1DynP'] = False # (Pa); ; +Morison['M8N2DynP'] = False # (Pa); ; +Morison['M8N3DynP'] = False # (Pa); ; +Morison['M8N4DynP'] = False # (Pa); ; +Morison['M8N5DynP'] = False # (Pa); ; +Morison['M8N6DynP'] = False # (Pa); ; +Morison['M8N7DynP'] = False # (Pa); ; +Morison['M8N8DynP'] = False # (Pa); ; +Morison['M8N9DynP'] = False # (Pa); ; +Morison['M9N1DynP'] = False # (Pa); ; +Morison['M9N2DynP'] = False # (Pa); ; +Morison['M9N3DynP'] = False # (Pa); ; +Morison['M9N4DynP'] = False # (Pa); ; +Morison['M9N5DynP'] = False # (Pa); ; +Morison['M9N6DynP'] = False # (Pa); ; +Morison['M9N7DynP'] = False # (Pa); ; +Morison['M9N8DynP'] = False # (Pa); ; +Morison['M9N9DynP'] = False # (Pa); ; +Morison['M1N1STVxi'] = False # (m/s); structure translational velocity; +Morison['M1N2STVxi'] = False # (m/s); ; +Morison['M1N3STVxi'] = False # (m/s); ; +Morison['M1N4STVxi'] = False # (m/s); ; +Morison['M1N5STVxi'] = False # (m/s); ; +Morison['M1N6STVxi'] = False # (m/s); ; +Morison['M1N7STVxi'] = False # (m/s); ; +Morison['M1N8STVxi'] = False # (m/s); ; +Morison['M1N9STVxi'] = False # (m/s); ; +Morison['M2N1STVxi'] = False # (m/s); ; +Morison['M2N2STVxi'] = False # (m/s); ; +Morison['M2N3STVxi'] = False # (m/s); ; +Morison['M2N4STVxi'] = False # (m/s); ; +Morison['M2N5STVxi'] = False # (m/s); ; +Morison['M2N6STVxi'] = False # (m/s); ; +Morison['M2N7STVxi'] = False # (m/s); ; +Morison['M2N8STVxi'] = False # (m/s); ; +Morison['M2N9STVxi'] = False # (m/s); ; +Morison['M3N1STVxi'] = False # (m/s); ; +Morison['M3N2STVxi'] = False # (m/s); ; +Morison['M3N3STVxi'] = False # (m/s); ; +Morison['M3N4STVxi'] = False # (m/s); ; +Morison['M3N5STVxi'] = False # (m/s); ; +Morison['M3N6STVxi'] = False # (m/s); ; +Morison['M3N7STVxi'] = False # (m/s); ; +Morison['M3N8STVxi'] = False # (m/s); ; +Morison['M3N9STVxi'] = False # (m/s); ; +Morison['M4N1STVxi'] = False # (m/s); ; +Morison['M4N2STVxi'] = False # (m/s); ; +Morison['M4N3STVxi'] = False # (m/s); ; +Morison['M4N4STVxi'] = False # (m/s); ; +Morison['M4N5STVxi'] = False # (m/s); ; +Morison['M4N6STVxi'] = False # (m/s); ; +Morison['M4N7STVxi'] = False # (m/s); ; +Morison['M4N8STVxi'] = False # (m/s); ; +Morison['M4N9STVxi'] = False # (m/s); ; +Morison['M5N1STVxi'] = False # (m/s); ; +Morison['M5N2STVxi'] = False # (m/s); ; +Morison['M5N3STVxi'] = False # (m/s); ; +Morison['M5N4STVxi'] = False # (m/s); ; +Morison['M5N5STVxi'] = False # (m/s); ; +Morison['M5N6STVxi'] = False # (m/s); ; +Morison['M5N7STVxi'] = False # (m/s); ; +Morison['M5N8STVxi'] = False # (m/s); ; +Morison['M5N9STVxi'] = False # (m/s); ; +Morison['M6N1STVxi'] = False # (m/s); ; +Morison['M6N2STVxi'] = False # (m/s); ; +Morison['M6N3STVxi'] = False # (m/s); ; +Morison['M6N4STVxi'] = False # (m/s); ; +Morison['M6N5STVxi'] = False # (m/s); ; +Morison['M6N6STVxi'] = False # (m/s); ; +Morison['M6N7STVxi'] = False # (m/s); ; +Morison['M6N8STVxi'] = False # (m/s); ; +Morison['M6N9STVxi'] = False # (m/s); ; +Morison['M7N1STVxi'] = False # (m/s); ; +Morison['M7N2STVxi'] = False # (m/s); ; +Morison['M7N3STVxi'] = False # (m/s); ; +Morison['M7N4STVxi'] = False # (m/s); ; +Morison['M7N5STVxi'] = False # (m/s); ; +Morison['M7N6STVxi'] = False # (m/s); ; +Morison['M7N7STVxi'] = False # (m/s); ; +Morison['M7N8STVxi'] = False # (m/s); ; +Morison['M7N9STVxi'] = False # (m/s); ; +Morison['M8N1STVxi'] = False # (m/s); ; +Morison['M8N2STVxi'] = False # (m/s); ; +Morison['M8N3STVxi'] = False # (m/s); ; +Morison['M8N4STVxi'] = False # (m/s); ; +Morison['M8N5STVxi'] = False # (m/s); ; +Morison['M8N6STVxi'] = False # (m/s); ; +Morison['M8N7STVxi'] = False # (m/s); ; +Morison['M8N8STVxi'] = False # (m/s); ; +Morison['M8N9STVxi'] = False # (m/s); ; +Morison['M9N1STVxi'] = False # (m/s); ; +Morison['M9N2STVxi'] = False # (m/s); ; +Morison['M9N3STVxi'] = False # (m/s); ; +Morison['M9N4STVxi'] = False # (m/s); ; +Morison['M9N5STVxi'] = False # (m/s); ; +Morison['M9N6STVxi'] = False # (m/s); ; +Morison['M9N7STVxi'] = False # (m/s); ; +Morison['M9N8STVxi'] = False # (m/s); ; +Morison['M9N9STVxi'] = False # (m/s); ; +Morison['M1N1STVyi'] = False # (m/s); ; +Morison['M1N2STVyi'] = False # (m/s); ; +Morison['M1N3STVyi'] = False # (m/s); ; +Morison['M1N4STVyi'] = False # (m/s); ; +Morison['M1N5STVyi'] = False # (m/s); ; +Morison['M1N6STVyi'] = False # (m/s); ; +Morison['M1N7STVyi'] = False # (m/s); ; +Morison['M1N8STVyi'] = False # (m/s); ; +Morison['M1N9STVyi'] = False # (m/s); ; +Morison['M2N1STVyi'] = False # (m/s); ; +Morison['M2N2STVyi'] = False # (m/s); ; +Morison['M2N3STVyi'] = False # (m/s); ; +Morison['M2N4STVyi'] = False # (m/s); ; +Morison['M2N5STVyi'] = False # (m/s); ; +Morison['M2N6STVyi'] = False # (m/s); ; +Morison['M2N7STVyi'] = False # (m/s); ; +Morison['M2N8STVyi'] = False # (m/s); ; +Morison['M2N9STVyi'] = False # (m/s); ; +Morison['M3N1STVyi'] = False # (m/s); ; +Morison['M3N2STVyi'] = False # (m/s); ; +Morison['M3N3STVyi'] = False # (m/s); ; +Morison['M3N4STVyi'] = False # (m/s); ; +Morison['M3N5STVyi'] = False # (m/s); ; +Morison['M3N6STVyi'] = False # (m/s); ; +Morison['M3N7STVyi'] = False # (m/s); ; +Morison['M3N8STVyi'] = False # (m/s); ; +Morison['M3N9STVyi'] = False # (m/s); ; +Morison['M4N1STVyi'] = False # (m/s); ; +Morison['M4N2STVyi'] = False # (m/s); ; +Morison['M4N3STVyi'] = False # (m/s); ; +Morison['M4N4STVyi'] = False # (m/s); ; +Morison['M4N5STVyi'] = False # (m/s); ; +Morison['M4N6STVyi'] = False # (m/s); ; +Morison['M4N7STVyi'] = False # (m/s); ; +Morison['M4N8STVyi'] = False # (m/s); ; +Morison['M4N9STVyi'] = False # (m/s); ; +Morison['M5N1STVyi'] = False # (m/s); ; +Morison['M5N2STVyi'] = False # (m/s); ; +Morison['M5N3STVyi'] = False # (m/s); ; +Morison['M5N4STVyi'] = False # (m/s); ; +Morison['M5N5STVyi'] = False # (m/s); ; +Morison['M5N6STVyi'] = False # (m/s); ; +Morison['M5N7STVyi'] = False # (m/s); ; +Morison['M5N8STVyi'] = False # (m/s); ; +Morison['M5N9STVyi'] = False # (m/s); ; +Morison['M6N1STVyi'] = False # (m/s); ; +Morison['M6N2STVyi'] = False # (m/s); ; +Morison['M6N3STVyi'] = False # (m/s); ; +Morison['M6N4STVyi'] = False # (m/s); ; +Morison['M6N5STVyi'] = False # (m/s); ; +Morison['M6N6STVyi'] = False # (m/s); ; +Morison['M6N7STVyi'] = False # (m/s); ; +Morison['M6N8STVyi'] = False # (m/s); ; +Morison['M6N9STVyi'] = False # (m/s); ; +Morison['M7N1STVyi'] = False # (m/s); ; +Morison['M7N2STVyi'] = False # (m/s); ; +Morison['M7N3STVyi'] = False # (m/s); ; +Morison['M7N4STVyi'] = False # (m/s); ; +Morison['M7N5STVyi'] = False # (m/s); ; +Morison['M7N6STVyi'] = False # (m/s); ; +Morison['M7N7STVyi'] = False # (m/s); ; +Morison['M7N8STVyi'] = False # (m/s); ; +Morison['M7N9STVyi'] = False # (m/s); ; +Morison['M8N1STVyi'] = False # (m/s); ; +Morison['M8N2STVyi'] = False # (m/s); ; +Morison['M8N3STVyi'] = False # (m/s); ; +Morison['M8N4STVyi'] = False # (m/s); ; +Morison['M8N5STVyi'] = False # (m/s); ; +Morison['M8N6STVyi'] = False # (m/s); ; +Morison['M8N7STVyi'] = False # (m/s); ; +Morison['M8N8STVyi'] = False # (m/s); ; +Morison['M8N9STVyi'] = False # (m/s); ; +Morison['M9N1STVyi'] = False # (m/s); ; +Morison['M9N2STVyi'] = False # (m/s); ; +Morison['M9N3STVyi'] = False # (m/s); ; +Morison['M9N4STVyi'] = False # (m/s); ; +Morison['M9N5STVyi'] = False # (m/s); ; +Morison['M9N6STVyi'] = False # (m/s); ; +Morison['M9N7STVyi'] = False # (m/s); ; +Morison['M9N8STVyi'] = False # (m/s); ; +Morison['M9N9STVyi'] = False # (m/s); ; +Morison['M1N1STVzi'] = False # (m/s); ; +Morison['M1N2STVzi'] = False # (m/s); ; +Morison['M1N3STVzi'] = False # (m/s); ; +Morison['M1N4STVzi'] = False # (m/s); ; +Morison['M1N5STVzi'] = False # (m/s); ; +Morison['M1N6STVzi'] = False # (m/s); ; +Morison['M1N7STVzi'] = False # (m/s); ; +Morison['M1N8STVzi'] = False # (m/s); ; +Morison['M1N9STVzi'] = False # (m/s); ; +Morison['M2N1STVzi'] = False # (m/s); ; +Morison['M2N2STVzi'] = False # (m/s); ; +Morison['M2N3STVzi'] = False # (m/s); ; +Morison['M2N4STVzi'] = False # (m/s); ; +Morison['M2N5STVzi'] = False # (m/s); ; +Morison['M2N6STVzi'] = False # (m/s); ; +Morison['M2N7STVzi'] = False # (m/s); ; +Morison['M2N8STVzi'] = False # (m/s); ; +Morison['M2N9STVzi'] = False # (m/s); ; +Morison['M3N1STVzi'] = False # (m/s); ; +Morison['M3N2STVzi'] = False # (m/s); ; +Morison['M3N3STVzi'] = False # (m/s); ; +Morison['M3N4STVzi'] = False # (m/s); ; +Morison['M3N5STVzi'] = False # (m/s); ; +Morison['M3N6STVzi'] = False # (m/s); ; +Morison['M3N7STVzi'] = False # (m/s); ; +Morison['M3N8STVzi'] = False # (m/s); ; +Morison['M3N9STVzi'] = False # (m/s); ; +Morison['M4N1STVzi'] = False # (m/s); ; +Morison['M4N2STVzi'] = False # (m/s); ; +Morison['M4N3STVzi'] = False # (m/s); ; +Morison['M4N4STVzi'] = False # (m/s); ; +Morison['M4N5STVzi'] = False # (m/s); ; +Morison['M4N6STVzi'] = False # (m/s); ; +Morison['M4N7STVzi'] = False # (m/s); ; +Morison['M4N8STVzi'] = False # (m/s); ; +Morison['M4N9STVzi'] = False # (m/s); ; +Morison['M5N1STVzi'] = False # (m/s); ; +Morison['M5N2STVzi'] = False # (m/s); ; +Morison['M5N3STVzi'] = False # (m/s); ; +Morison['M5N4STVzi'] = False # (m/s); ; +Morison['M5N5STVzi'] = False # (m/s); ; +Morison['M5N6STVzi'] = False # (m/s); ; +Morison['M5N7STVzi'] = False # (m/s); ; +Morison['M5N8STVzi'] = False # (m/s); ; +Morison['M5N9STVzi'] = False # (m/s); ; +Morison['M6N1STVzi'] = False # (m/s); ; +Morison['M6N2STVzi'] = False # (m/s); ; +Morison['M6N3STVzi'] = False # (m/s); ; +Morison['M6N4STVzi'] = False # (m/s); ; +Morison['M6N5STVzi'] = False # (m/s); ; +Morison['M6N6STVzi'] = False # (m/s); ; +Morison['M6N7STVzi'] = False # (m/s); ; +Morison['M6N8STVzi'] = False # (m/s); ; +Morison['M6N9STVzi'] = False # (m/s); ; +Morison['M7N1STVzi'] = False # (m/s); ; +Morison['M7N2STVzi'] = False # (m/s); ; +Morison['M7N3STVzi'] = False # (m/s); ; +Morison['M7N4STVzi'] = False # (m/s); ; +Morison['M7N5STVzi'] = False # (m/s); ; +Morison['M7N6STVzi'] = False # (m/s); ; +Morison['M7N7STVzi'] = False # (m/s); ; +Morison['M7N8STVzi'] = False # (m/s); ; +Morison['M7N9STVzi'] = False # (m/s); ; +Morison['M8N1STVzi'] = False # (m/s); ; +Morison['M8N2STVzi'] = False # (m/s); ; +Morison['M8N3STVzi'] = False # (m/s); ; +Morison['M8N4STVzi'] = False # (m/s); ; +Morison['M8N5STVzi'] = False # (m/s); ; +Morison['M8N6STVzi'] = False # (m/s); ; +Morison['M8N7STVzi'] = False # (m/s); ; +Morison['M8N8STVzi'] = False # (m/s); ; +Morison['M8N9STVzi'] = False # (m/s); ; +Morison['M9N1STVzi'] = False # (m/s); ; +Morison['M9N2STVzi'] = False # (m/s); ; +Morison['M9N3STVzi'] = False # (m/s); ; +Morison['M9N4STVzi'] = False # (m/s); ; +Morison['M9N5STVzi'] = False # (m/s); ; +Morison['M9N6STVzi'] = False # (m/s); ; +Morison['M9N7STVzi'] = False # (m/s); ; +Morison['M9N8STVzi'] = False # (m/s); ; +Morison['M9N9STVzi'] = False # (m/s); ; +Morison['M1N1STAxi'] = False # (m/s); structure translational Acceleration; +Morison['M1N2STAxi'] = False # (m/s); ; +Morison['M1N3STAxi'] = False # (m/s); ; +Morison['M1N4STAxi'] = False # (m/s); ; +Morison['M1N5STAxi'] = False # (m/s); ; +Morison['M1N6STAxi'] = False # (m/s); ; +Morison['M1N7STAxi'] = False # (m/s); ; +Morison['M1N8STAxi'] = False # (m/s); ; +Morison['M1N9STAxi'] = False # (m/s); ; +Morison['M2N1STAxi'] = False # (m/s); ; +Morison['M2N2STAxi'] = False # (m/s); ; +Morison['M2N3STAxi'] = False # (m/s); ; +Morison['M2N4STAxi'] = False # (m/s); ; +Morison['M2N5STAxi'] = False # (m/s); ; +Morison['M2N6STAxi'] = False # (m/s); ; +Morison['M2N7STAxi'] = False # (m/s); ; +Morison['M2N8STAxi'] = False # (m/s); ; +Morison['M2N9STAxi'] = False # (m/s); ; +Morison['M3N1STAxi'] = False # (m/s); ; +Morison['M3N2STAxi'] = False # (m/s); ; +Morison['M3N3STAxi'] = False # (m/s); ; +Morison['M3N4STAxi'] = False # (m/s); ; +Morison['M3N5STAxi'] = False # (m/s); ; +Morison['M3N6STAxi'] = False # (m/s); ; +Morison['M3N7STAxi'] = False # (m/s); ; +Morison['M3N8STAxi'] = False # (m/s); ; +Morison['M3N9STAxi'] = False # (m/s); ; +Morison['M4N1STAxi'] = False # (m/s); ; +Morison['M4N2STAxi'] = False # (m/s); ; +Morison['M4N3STAxi'] = False # (m/s); ; +Morison['M4N4STAxi'] = False # (m/s); ; +Morison['M4N5STAxi'] = False # (m/s); ; +Morison['M4N6STAxi'] = False # (m/s); ; +Morison['M4N7STAxi'] = False # (m/s); ; +Morison['M4N8STAxi'] = False # (m/s); ; +Morison['M4N9STAxi'] = False # (m/s); ; +Morison['M5N1STAxi'] = False # (m/s); ; +Morison['M5N2STAxi'] = False # (m/s); ; +Morison['M5N3STAxi'] = False # (m/s); ; +Morison['M5N4STAxi'] = False # (m/s); ; +Morison['M5N5STAxi'] = False # (m/s); ; +Morison['M5N6STAxi'] = False # (m/s); ; +Morison['M5N7STAxi'] = False # (m/s); ; +Morison['M5N8STAxi'] = False # (m/s); ; +Morison['M5N9STAxi'] = False # (m/s); ; +Morison['M6N1STAxi'] = False # (m/s); ; +Morison['M6N2STAxi'] = False # (m/s); ; +Morison['M6N3STAxi'] = False # (m/s); ; +Morison['M6N4STAxi'] = False # (m/s); ; +Morison['M6N5STAxi'] = False # (m/s); ; +Morison['M6N6STAxi'] = False # (m/s); ; +Morison['M6N7STAxi'] = False # (m/s); ; +Morison['M6N8STAxi'] = False # (m/s); ; +Morison['M6N9STAxi'] = False # (m/s); ; +Morison['M7N1STAxi'] = False # (m/s); ; +Morison['M7N2STAxi'] = False # (m/s); ; +Morison['M7N3STAxi'] = False # (m/s); ; +Morison['M7N4STAxi'] = False # (m/s); ; +Morison['M7N5STAxi'] = False # (m/s); ; +Morison['M7N6STAxi'] = False # (m/s); ; +Morison['M7N7STAxi'] = False # (m/s); ; +Morison['M7N8STAxi'] = False # (m/s); ; +Morison['M7N9STAxi'] = False # (m/s); ; +Morison['M8N1STAxi'] = False # (m/s); ; +Morison['M8N2STAxi'] = False # (m/s); ; +Morison['M8N3STAxi'] = False # (m/s); ; +Morison['M8N4STAxi'] = False # (m/s); ; +Morison['M8N5STAxi'] = False # (m/s); ; +Morison['M8N6STAxi'] = False # (m/s); ; +Morison['M8N7STAxi'] = False # (m/s); ; +Morison['M8N8STAxi'] = False # (m/s); ; +Morison['M8N9STAxi'] = False # (m/s); ; +Morison['M9N1STAxi'] = False # (m/s); ; +Morison['M9N2STAxi'] = False # (m/s); ; +Morison['M9N3STAxi'] = False # (m/s); ; +Morison['M9N4STAxi'] = False # (m/s); ; +Morison['M9N5STAxi'] = False # (m/s); ; +Morison['M9N6STAxi'] = False # (m/s); ; +Morison['M9N7STAxi'] = False # (m/s); ; +Morison['M9N8STAxi'] = False # (m/s); ; +Morison['M9N9STAxi'] = False # (m/s); ; +Morison['M1N1STAyi'] = False # (m/s); ; +Morison['M1N2STAyi'] = False # (m/s); ; +Morison['M1N3STAyi'] = False # (m/s); ; +Morison['M1N4STAyi'] = False # (m/s); ; +Morison['M1N5STAyi'] = False # (m/s); ; +Morison['M1N6STAyi'] = False # (m/s); ; +Morison['M1N7STAyi'] = False # (m/s); ; +Morison['M1N8STAyi'] = False # (m/s); ; +Morison['M1N9STAyi'] = False # (m/s); ; +Morison['M2N1STAyi'] = False # (m/s); ; +Morison['M2N2STAyi'] = False # (m/s); ; +Morison['M2N3STAyi'] = False # (m/s); ; +Morison['M2N4STAyi'] = False # (m/s); ; +Morison['M2N5STAyi'] = False # (m/s); ; +Morison['M2N6STAyi'] = False # (m/s); ; +Morison['M2N7STAyi'] = False # (m/s); ; +Morison['M2N8STAyi'] = False # (m/s); ; +Morison['M2N9STAyi'] = False # (m/s); ; +Morison['M3N1STAyi'] = False # (m/s); ; +Morison['M3N2STAyi'] = False # (m/s); ; +Morison['M3N3STAyi'] = False # (m/s); ; +Morison['M3N4STAyi'] = False # (m/s); ; +Morison['M3N5STAyi'] = False # (m/s); ; +Morison['M3N6STAyi'] = False # (m/s); ; +Morison['M3N7STAyi'] = False # (m/s); ; +Morison['M3N8STAyi'] = False # (m/s); ; +Morison['M3N9STAyi'] = False # (m/s); ; +Morison['M4N1STAyi'] = False # (m/s); ; +Morison['M4N2STAyi'] = False # (m/s); ; +Morison['M4N3STAyi'] = False # (m/s); ; +Morison['M4N4STAyi'] = False # (m/s); ; +Morison['M4N5STAyi'] = False # (m/s); ; +Morison['M4N6STAyi'] = False # (m/s); ; +Morison['M4N7STAyi'] = False # (m/s); ; +Morison['M4N8STAyi'] = False # (m/s); ; +Morison['M4N9STAyi'] = False # (m/s); ; +Morison['M5N1STAyi'] = False # (m/s); ; +Morison['M5N2STAyi'] = False # (m/s); ; +Morison['M5N3STAyi'] = False # (m/s); ; +Morison['M5N4STAyi'] = False # (m/s); ; +Morison['M5N5STAyi'] = False # (m/s); ; +Morison['M5N6STAyi'] = False # (m/s); ; +Morison['M5N7STAyi'] = False # (m/s); ; +Morison['M5N8STAyi'] = False # (m/s); ; +Morison['M5N9STAyi'] = False # (m/s); ; +Morison['M6N1STAyi'] = False # (m/s); ; +Morison['M6N2STAyi'] = False # (m/s); ; +Morison['M6N3STAyi'] = False # (m/s); ; +Morison['M6N4STAyi'] = False # (m/s); ; +Morison['M6N5STAyi'] = False # (m/s); ; +Morison['M6N6STAyi'] = False # (m/s); ; +Morison['M6N7STAyi'] = False # (m/s); ; +Morison['M6N8STAyi'] = False # (m/s); ; +Morison['M6N9STAyi'] = False # (m/s); ; +Morison['M7N1STAyi'] = False # (m/s); ; +Morison['M7N2STAyi'] = False # (m/s); ; +Morison['M7N3STAyi'] = False # (m/s); ; +Morison['M7N4STAyi'] = False # (m/s); ; +Morison['M7N5STAyi'] = False # (m/s); ; +Morison['M7N6STAyi'] = False # (m/s); ; +Morison['M7N7STAyi'] = False # (m/s); ; +Morison['M7N8STAyi'] = False # (m/s); ; +Morison['M7N9STAyi'] = False # (m/s); ; +Morison['M8N1STAyi'] = False # (m/s); ; +Morison['M8N2STAyi'] = False # (m/s); ; +Morison['M8N3STAyi'] = False # (m/s); ; +Morison['M8N4STAyi'] = False # (m/s); ; +Morison['M8N5STAyi'] = False # (m/s); ; +Morison['M8N6STAyi'] = False # (m/s); ; +Morison['M8N7STAyi'] = False # (m/s); ; +Morison['M8N8STAyi'] = False # (m/s); ; +Morison['M8N9STAyi'] = False # (m/s); ; +Morison['M9N1STAyi'] = False # (m/s); ; +Morison['M9N2STAyi'] = False # (m/s); ; +Morison['M9N3STAyi'] = False # (m/s); ; +Morison['M9N4STAyi'] = False # (m/s); ; +Morison['M9N5STAyi'] = False # (m/s); ; +Morison['M9N6STAyi'] = False # (m/s); ; +Morison['M9N7STAyi'] = False # (m/s); ; +Morison['M9N8STAyi'] = False # (m/s); ; +Morison['M9N9STAyi'] = False # (m/s); ; +Morison['M1N1STAzi'] = False # (m/s); ; +Morison['M1N2STAzi'] = False # (m/s); ; +Morison['M1N3STAzi'] = False # (m/s); ; +Morison['M1N4STAzi'] = False # (m/s); ; +Morison['M1N5STAzi'] = False # (m/s); ; +Morison['M1N6STAzi'] = False # (m/s); ; +Morison['M1N7STAzi'] = False # (m/s); ; +Morison['M1N8STAzi'] = False # (m/s); ; +Morison['M1N9STAzi'] = False # (m/s); ; +Morison['M2N1STAzi'] = False # (m/s); ; +Morison['M2N2STAzi'] = False # (m/s); ; +Morison['M2N3STAzi'] = False # (m/s); ; +Morison['M2N4STAzi'] = False # (m/s); ; +Morison['M2N5STAzi'] = False # (m/s); ; +Morison['M2N6STAzi'] = False # (m/s); ; +Morison['M2N7STAzi'] = False # (m/s); ; +Morison['M2N8STAzi'] = False # (m/s); ; +Morison['M2N9STAzi'] = False # (m/s); ; +Morison['M3N1STAzi'] = False # (m/s); ; +Morison['M3N2STAzi'] = False # (m/s); ; +Morison['M3N3STAzi'] = False # (m/s); ; +Morison['M3N4STAzi'] = False # (m/s); ; +Morison['M3N5STAzi'] = False # (m/s); ; +Morison['M3N6STAzi'] = False # (m/s); ; +Morison['M3N7STAzi'] = False # (m/s); ; +Morison['M3N8STAzi'] = False # (m/s); ; +Morison['M3N9STAzi'] = False # (m/s); ; +Morison['M4N1STAzi'] = False # (m/s); ; +Morison['M4N2STAzi'] = False # (m/s); ; +Morison['M4N3STAzi'] = False # (m/s); ; +Morison['M4N4STAzi'] = False # (m/s); ; +Morison['M4N5STAzi'] = False # (m/s); ; +Morison['M4N6STAzi'] = False # (m/s); ; +Morison['M4N7STAzi'] = False # (m/s); ; +Morison['M4N8STAzi'] = False # (m/s); ; +Morison['M4N9STAzi'] = False # (m/s); ; +Morison['M5N1STAzi'] = False # (m/s); ; +Morison['M5N2STAzi'] = False # (m/s); ; +Morison['M5N3STAzi'] = False # (m/s); ; +Morison['M5N4STAzi'] = False # (m/s); ; +Morison['M5N5STAzi'] = False # (m/s); ; +Morison['M5N6STAzi'] = False # (m/s); ; +Morison['M5N7STAzi'] = False # (m/s); ; +Morison['M5N8STAzi'] = False # (m/s); ; +Morison['M5N9STAzi'] = False # (m/s); ; +Morison['M6N1STAzi'] = False # (m/s); ; +Morison['M6N2STAzi'] = False # (m/s); ; +Morison['M6N3STAzi'] = False # (m/s); ; +Morison['M6N4STAzi'] = False # (m/s); ; +Morison['M6N5STAzi'] = False # (m/s); ; +Morison['M6N6STAzi'] = False # (m/s); ; +Morison['M6N7STAzi'] = False # (m/s); ; +Morison['M6N8STAzi'] = False # (m/s); ; +Morison['M6N9STAzi'] = False # (m/s); ; +Morison['M7N1STAzi'] = False # (m/s); ; +Morison['M7N2STAzi'] = False # (m/s); ; +Morison['M7N3STAzi'] = False # (m/s); ; +Morison['M7N4STAzi'] = False # (m/s); ; +Morison['M7N5STAzi'] = False # (m/s); ; +Morison['M7N6STAzi'] = False # (m/s); ; +Morison['M7N7STAzi'] = False # (m/s); ; +Morison['M7N8STAzi'] = False # (m/s); ; +Morison['M7N9STAzi'] = False # (m/s); ; +Morison['M8N1STAzi'] = False # (m/s); ; +Morison['M8N2STAzi'] = False # (m/s); ; +Morison['M8N3STAzi'] = False # (m/s); ; +Morison['M8N4STAzi'] = False # (m/s); ; +Morison['M8N5STAzi'] = False # (m/s); ; +Morison['M8N6STAzi'] = False # (m/s); ; +Morison['M8N7STAzi'] = False # (m/s); ; +Morison['M8N8STAzi'] = False # (m/s); ; +Morison['M8N9STAzi'] = False # (m/s); ; +Morison['M9N1STAzi'] = False # (m/s); ; +Morison['M9N2STAzi'] = False # (m/s); ; +Morison['M9N3STAzi'] = False # (m/s); ; +Morison['M9N4STAzi'] = False # (m/s); ; +Morison['M9N5STAzi'] = False # (m/s); ; +Morison['M9N6STAzi'] = False # (m/s); ; +Morison['M9N7STAzi'] = False # (m/s); ; +Morison['M9N8STAzi'] = False # (m/s); ; +Morison['M9N9STAzi'] = False # (m/s); ; + +# Morison Element Loads +Morison['M1N1FDxi'] = False # (N/m); x-component of the distributed drag force expressed in the inertial coordinate system; +Morison['M1N2FDxi'] = False # (N/m); ; +Morison['M1N3FDxi'] = False # (N/m); ; +Morison['M1N4FDxi'] = False # (N/m); ; +Morison['M1N5FDxi'] = False # (N/m); ; +Morison['M1N6FDxi'] = False # (N/m); ; +Morison['M1N7FDxi'] = False # (N/m); ; +Morison['M1N8FDxi'] = False # (N/m); ; +Morison['M1N9FDxi'] = False # (N/m); ; +Morison['M2N1FDxi'] = False # (N/m); ; +Morison['M2N2FDxi'] = False # (N/m); ; +Morison['M2N3FDxi'] = False # (N/m); ; +Morison['M2N4FDxi'] = False # (N/m); ; +Morison['M2N5FDxi'] = False # (N/m); ; +Morison['M2N6FDxi'] = False # (N/m); ; +Morison['M2N7FDxi'] = False # (N/m); ; +Morison['M2N8FDxi'] = False # (N/m); ; +Morison['M2N9FDxi'] = False # (N/m); ; +Morison['M3N1FDxi'] = False # (N/m); ; +Morison['M3N2FDxi'] = False # (N/m); ; +Morison['M3N3FDxi'] = False # (N/m); ; +Morison['M3N4FDxi'] = False # (N/m); ; +Morison['M3N5FDxi'] = False # (N/m); ; +Morison['M3N6FDxi'] = False # (N/m); ; +Morison['M3N7FDxi'] = False # (N/m); ; +Morison['M3N8FDxi'] = False # (N/m); ; +Morison['M3N9FDxi'] = False # (N/m); ; +Morison['M4N1FDxi'] = False # (N/m); ; +Morison['M4N2FDxi'] = False # (N/m); ; +Morison['M4N3FDxi'] = False # (N/m); ; +Morison['M4N4FDxi'] = False # (N/m); ; +Morison['M4N5FDxi'] = False # (N/m); ; +Morison['M4N6FDxi'] = False # (N/m); ; +Morison['M4N7FDxi'] = False # (N/m); ; +Morison['M4N8FDxi'] = False # (N/m); ; +Morison['M4N9FDxi'] = False # (N/m); ; +Morison['M5N1FDxi'] = False # (N/m); ; +Morison['M5N2FDxi'] = False # (N/m); ; +Morison['M5N3FDxi'] = False # (N/m); ; +Morison['M5N4FDxi'] = False # (N/m); ; +Morison['M5N5FDxi'] = False # (N/m); ; +Morison['M5N6FDxi'] = False # (N/m); ; +Morison['M5N7FDxi'] = False # (N/m); ; +Morison['M5N8FDxi'] = False # (N/m); ; +Morison['M5N9FDxi'] = False # (N/m); ; +Morison['M6N1FDxi'] = False # (N/m); ; +Morison['M6N2FDxi'] = False # (N/m); ; +Morison['M6N3FDxi'] = False # (N/m); ; +Morison['M6N4FDxi'] = False # (N/m); ; +Morison['M6N5FDxi'] = False # (N/m); ; +Morison['M6N6FDxi'] = False # (N/m); ; +Morison['M6N7FDxi'] = False # (N/m); ; +Morison['M6N8FDxi'] = False # (N/m); ; +Morison['M6N9FDxi'] = False # (N/m); ; +Morison['M7N1FDxi'] = False # (N/m); ; +Morison['M7N2FDxi'] = False # (N/m); ; +Morison['M7N3FDxi'] = False # (N/m); ; +Morison['M7N4FDxi'] = False # (N/m); ; +Morison['M7N5FDxi'] = False # (N/m); ; +Morison['M7N6FDxi'] = False # (N/m); ; +Morison['M7N7FDxi'] = False # (N/m); ; +Morison['M7N8FDxi'] = False # (N/m); ; +Morison['M7N9FDxi'] = False # (N/m); ; +Morison['M8N1FDxi'] = False # (N/m); ; +Morison['M8N2FDxi'] = False # (N/m); ; +Morison['M8N3FDxi'] = False # (N/m); ; +Morison['M8N4FDxi'] = False # (N/m); ; +Morison['M8N5FDxi'] = False # (N/m); ; +Morison['M8N6FDxi'] = False # (N/m); ; +Morison['M8N7FDxi'] = False # (N/m); ; +Morison['M8N8FDxi'] = False # (N/m); ; +Morison['M8N9FDxi'] = False # (N/m); ; +Morison['M9N1FDxi'] = False # (N/m); ; +Morison['M9N2FDxi'] = False # (N/m); ; +Morison['M9N3FDxi'] = False # (N/m); ; +Morison['M9N4FDxi'] = False # (N/m); ; +Morison['M9N5FDxi'] = False # (N/m); ; +Morison['M9N6FDxi'] = False # (N/m); ; +Morison['M9N7FDxi'] = False # (N/m); ; +Morison['M9N8FDxi'] = False # (N/m); ; +Morison['M9N9FDxi'] = False # (N/m); ; +Morison['M1N1FDyi'] = False # (N/m); y-component of the distributed drag force expressed in the inertial coordinate system; +Morison['M1N2FDyi'] = False # (N/m); ; +Morison['M1N3FDyi'] = False # (N/m); ; +Morison['M1N4FDyi'] = False # (N/m); ; +Morison['M1N5FDyi'] = False # (N/m); ; +Morison['M1N6FDyi'] = False # (N/m); ; +Morison['M1N7FDyi'] = False # (N/m); ; +Morison['M1N8FDyi'] = False # (N/m); ; +Morison['M1N9FDyi'] = False # (N/m); ; +Morison['M2N1FDyi'] = False # (N/m); ; +Morison['M2N2FDyi'] = False # (N/m); ; +Morison['M2N3FDyi'] = False # (N/m); ; +Morison['M2N4FDyi'] = False # (N/m); ; +Morison['M2N5FDyi'] = False # (N/m); ; +Morison['M2N6FDyi'] = False # (N/m); ; +Morison['M2N7FDyi'] = False # (N/m); ; +Morison['M2N8FDyi'] = False # (N/m); ; +Morison['M2N9FDyi'] = False # (N/m); ; +Morison['M3N1FDyi'] = False # (N/m); ; +Morison['M3N2FDyi'] = False # (N/m); ; +Morison['M3N3FDyi'] = False # (N/m); ; +Morison['M3N4FDyi'] = False # (N/m); ; +Morison['M3N5FDyi'] = False # (N/m); ; +Morison['M3N6FDyi'] = False # (N/m); ; +Morison['M3N7FDyi'] = False # (N/m); ; +Morison['M3N8FDyi'] = False # (N/m); ; +Morison['M3N9FDyi'] = False # (N/m); ; +Morison['M4N1FDyi'] = False # (N/m); ; +Morison['M4N2FDyi'] = False # (N/m); ; +Morison['M4N3FDyi'] = False # (N/m); ; +Morison['M4N4FDyi'] = False # (N/m); ; +Morison['M4N5FDyi'] = False # (N/m); ; +Morison['M4N6FDyi'] = False # (N/m); ; +Morison['M4N7FDyi'] = False # (N/m); ; +Morison['M4N8FDyi'] = False # (N/m); ; +Morison['M4N9FDyi'] = False # (N/m); ; +Morison['M5N1FDyi'] = False # (N/m); ; +Morison['M5N2FDyi'] = False # (N/m); ; +Morison['M5N3FDyi'] = False # (N/m); ; +Morison['M5N4FDyi'] = False # (N/m); ; +Morison['M5N5FDyi'] = False # (N/m); ; +Morison['M5N6FDyi'] = False # (N/m); ; +Morison['M5N7FDyi'] = False # (N/m); ; +Morison['M5N8FDyi'] = False # (N/m); ; +Morison['M5N9FDyi'] = False # (N/m); ; +Morison['M6N1FDyi'] = False # (N/m); ; +Morison['M6N2FDyi'] = False # (N/m); ; +Morison['M6N3FDyi'] = False # (N/m); ; +Morison['M6N4FDyi'] = False # (N/m); ; +Morison['M6N5FDyi'] = False # (N/m); ; +Morison['M6N6FDyi'] = False # (N/m); ; +Morison['M6N7FDyi'] = False # (N/m); ; +Morison['M6N8FDyi'] = False # (N/m); ; +Morison['M6N9FDyi'] = False # (N/m); ; +Morison['M7N1FDyi'] = False # (N/m); ; +Morison['M7N2FDyi'] = False # (N/m); ; +Morison['M7N3FDyi'] = False # (N/m); ; +Morison['M7N4FDyi'] = False # (N/m); ; +Morison['M7N5FDyi'] = False # (N/m); ; +Morison['M7N6FDyi'] = False # (N/m); ; +Morison['M7N7FDyi'] = False # (N/m); ; +Morison['M7N8FDyi'] = False # (N/m); ; +Morison['M7N9FDyi'] = False # (N/m); ; +Morison['M8N1FDyi'] = False # (N/m); ; +Morison['M8N2FDyi'] = False # (N/m); ; +Morison['M8N3FDyi'] = False # (N/m); ; +Morison['M8N4FDyi'] = False # (N/m); ; +Morison['M8N5FDyi'] = False # (N/m); ; +Morison['M8N6FDyi'] = False # (N/m); ; +Morison['M8N7FDyi'] = False # (N/m); ; +Morison['M8N8FDyi'] = False # (N/m); ; +Morison['M8N9FDyi'] = False # (N/m); ; +Morison['M9N1FDyi'] = False # (N/m); ; +Morison['M9N2FDyi'] = False # (N/m); ; +Morison['M9N3FDyi'] = False # (N/m); ; +Morison['M9N4FDyi'] = False # (N/m); ; +Morison['M9N5FDyi'] = False # (N/m); ; +Morison['M9N6FDyi'] = False # (N/m); ; +Morison['M9N7FDyi'] = False # (N/m); ; +Morison['M9N8FDyi'] = False # (N/m); ; +Morison['M9N9FDyi'] = False # (N/m); ; +Morison['M1N1FDzi'] = False # (N/m); z-component of the distributed drag force expressed in the inertial coordinate system; +Morison['M1N2FDzi'] = False # (N/m); ; +Morison['M1N3FDzi'] = False # (N/m); ; +Morison['M1N4FDzi'] = False # (N/m); ; +Morison['M1N5FDzi'] = False # (N/m); ; +Morison['M1N6FDzi'] = False # (N/m); ; +Morison['M1N7FDzi'] = False # (N/m); ; +Morison['M1N8FDzi'] = False # (N/m); ; +Morison['M1N9FDzi'] = False # (N/m); ; +Morison['M2N1FDzi'] = False # (N/m); ; +Morison['M2N2FDzi'] = False # (N/m); ; +Morison['M2N3FDzi'] = False # (N/m); ; +Morison['M2N4FDzi'] = False # (N/m); ; +Morison['M2N5FDzi'] = False # (N/m); ; +Morison['M2N6FDzi'] = False # (N/m); ; +Morison['M2N7FDzi'] = False # (N/m); ; +Morison['M2N8FDzi'] = False # (N/m); ; +Morison['M2N9FDzi'] = False # (N/m); ; +Morison['M3N1FDzi'] = False # (N/m); ; +Morison['M3N2FDzi'] = False # (N/m); ; +Morison['M3N3FDzi'] = False # (N/m); ; +Morison['M3N4FDzi'] = False # (N/m); ; +Morison['M3N5FDzi'] = False # (N/m); ; +Morison['M3N6FDzi'] = False # (N/m); ; +Morison['M3N7FDzi'] = False # (N/m); ; +Morison['M3N8FDzi'] = False # (N/m); ; +Morison['M3N9FDzi'] = False # (N/m); ; +Morison['M4N1FDzi'] = False # (N/m); ; +Morison['M4N2FDzi'] = False # (N/m); ; +Morison['M4N3FDzi'] = False # (N/m); ; +Morison['M4N4FDzi'] = False # (N/m); ; +Morison['M4N5FDzi'] = False # (N/m); ; +Morison['M4N6FDzi'] = False # (N/m); ; +Morison['M4N7FDzi'] = False # (N/m); ; +Morison['M4N8FDzi'] = False # (N/m); ; +Morison['M4N9FDzi'] = False # (N/m); ; +Morison['M5N1FDzi'] = False # (N/m); ; +Morison['M5N2FDzi'] = False # (N/m); ; +Morison['M5N3FDzi'] = False # (N/m); ; +Morison['M5N4FDzi'] = False # (N/m); ; +Morison['M5N5FDzi'] = False # (N/m); ; +Morison['M5N6FDzi'] = False # (N/m); ; +Morison['M5N7FDzi'] = False # (N/m); ; +Morison['M5N8FDzi'] = False # (N/m); ; +Morison['M5N9FDzi'] = False # (N/m); ; +Morison['M6N1FDzi'] = False # (N/m); ; +Morison['M6N2FDzi'] = False # (N/m); ; +Morison['M6N3FDzi'] = False # (N/m); ; +Morison['M6N4FDzi'] = False # (N/m); ; +Morison['M6N5FDzi'] = False # (N/m); ; +Morison['M6N6FDzi'] = False # (N/m); ; +Morison['M6N7FDzi'] = False # (N/m); ; +Morison['M6N8FDzi'] = False # (N/m); ; +Morison['M6N9FDzi'] = False # (N/m); ; +Morison['M7N1FDzi'] = False # (N/m); ; +Morison['M7N2FDzi'] = False # (N/m); ; +Morison['M7N3FDzi'] = False # (N/m); ; +Morison['M7N4FDzi'] = False # (N/m); ; +Morison['M7N5FDzi'] = False # (N/m); ; +Morison['M7N6FDzi'] = False # (N/m); ; +Morison['M7N7FDzi'] = False # (N/m); ; +Morison['M7N8FDzi'] = False # (N/m); ; +Morison['M7N9FDzi'] = False # (N/m); ; +Morison['M8N1FDzi'] = False # (N/m); ; +Morison['M8N2FDzi'] = False # (N/m); ; +Morison['M8N3FDzi'] = False # (N/m); ; +Morison['M8N4FDzi'] = False # (N/m); ; +Morison['M8N5FDzi'] = False # (N/m); ; +Morison['M8N6FDzi'] = False # (N/m); ; +Morison['M8N7FDzi'] = False # (N/m); ; +Morison['M8N8FDzi'] = False # (N/m); ; +Morison['M8N9FDzi'] = False # (N/m); ; +Morison['M9N1FDzi'] = False # (N/m); ; +Morison['M9N2FDzi'] = False # (N/m); ; +Morison['M9N3FDzi'] = False # (N/m); ; +Morison['M9N4FDzi'] = False # (N/m); ; +Morison['M9N5FDzi'] = False # (N/m); ; +Morison['M9N6FDzi'] = False # (N/m); ; +Morison['M9N7FDzi'] = False # (N/m); ; +Morison['M9N8FDzi'] = False # (N/m); ; +Morison['M9N9FDzi'] = False # (N/m); ; +Morison['M1N1FIxi'] = False # (N/m); x-component of the distributed inertial force expressed in the inertial coordinate system; +Morison['M1N2FIxi'] = False # (N/m); ; +Morison['M1N3FIxi'] = False # (N/m); ; +Morison['M1N4FIxi'] = False # (N/m); ; +Morison['M1N5FIxi'] = False # (N/m); ; +Morison['M1N6FIxi'] = False # (N/m); ; +Morison['M1N7FIxi'] = False # (N/m); ; +Morison['M1N8FIxi'] = False # (N/m); ; +Morison['M1N9FIxi'] = False # (N/m); ; +Morison['M2N1FIxi'] = False # (N/m); ; +Morison['M2N2FIxi'] = False # (N/m); ; +Morison['M2N3FIxi'] = False # (N/m); ; +Morison['M2N4FIxi'] = False # (N/m); ; +Morison['M2N5FIxi'] = False # (N/m); ; +Morison['M2N6FIxi'] = False # (N/m); ; +Morison['M2N7FIxi'] = False # (N/m); ; +Morison['M2N8FIxi'] = False # (N/m); ; +Morison['M2N9FIxi'] = False # (N/m); ; +Morison['M3N1FIxi'] = False # (N/m); ; +Morison['M3N2FIxi'] = False # (N/m); ; +Morison['M3N3FIxi'] = False # (N/m); ; +Morison['M3N4FIxi'] = False # (N/m); ; +Morison['M3N5FIxi'] = False # (N/m); ; +Morison['M3N6FIxi'] = False # (N/m); ; +Morison['M3N7FIxi'] = False # (N/m); ; +Morison['M3N8FIxi'] = False # (N/m); ; +Morison['M3N9FIxi'] = False # (N/m); ; +Morison['M4N1FIxi'] = False # (N/m); ; +Morison['M4N2FIxi'] = False # (N/m); ; +Morison['M4N3FIxi'] = False # (N/m); ; +Morison['M4N4FIxi'] = False # (N/m); ; +Morison['M4N5FIxi'] = False # (N/m); ; +Morison['M4N6FIxi'] = False # (N/m); ; +Morison['M4N7FIxi'] = False # (N/m); ; +Morison['M4N8FIxi'] = False # (N/m); ; +Morison['M4N9FIxi'] = False # (N/m); ; +Morison['M5N1FIxi'] = False # (N/m); ; +Morison['M5N2FIxi'] = False # (N/m); ; +Morison['M5N3FIxi'] = False # (N/m); ; +Morison['M5N4FIxi'] = False # (N/m); ; +Morison['M5N5FIxi'] = False # (N/m); ; +Morison['M5N6FIxi'] = False # (N/m); ; +Morison['M5N7FIxi'] = False # (N/m); ; +Morison['M5N8FIxi'] = False # (N/m); ; +Morison['M5N9FIxi'] = False # (N/m); ; +Morison['M6N1FIxi'] = False # (N/m); ; +Morison['M6N2FIxi'] = False # (N/m); ; +Morison['M6N3FIxi'] = False # (N/m); ; +Morison['M6N4FIxi'] = False # (N/m); ; +Morison['M6N5FIxi'] = False # (N/m); ; +Morison['M6N6FIxi'] = False # (N/m); ; +Morison['M6N7FIxi'] = False # (N/m); ; +Morison['M6N8FIxi'] = False # (N/m); ; +Morison['M6N9FIxi'] = False # (N/m); ; +Morison['M7N1FIxi'] = False # (N/m); ; +Morison['M7N2FIxi'] = False # (N/m); ; +Morison['M7N3FIxi'] = False # (N/m); ; +Morison['M7N4FIxi'] = False # (N/m); ; +Morison['M7N5FIxi'] = False # (N/m); ; +Morison['M7N6FIxi'] = False # (N/m); ; +Morison['M7N7FIxi'] = False # (N/m); ; +Morison['M7N8FIxi'] = False # (N/m); ; +Morison['M7N9FIxi'] = False # (N/m); ; +Morison['M8N1FIxi'] = False # (N/m); ; +Morison['M8N2FIxi'] = False # (N/m); ; +Morison['M8N3FIxi'] = False # (N/m); ; +Morison['M8N4FIxi'] = False # (N/m); ; +Morison['M8N5FIxi'] = False # (N/m); ; +Morison['M8N6FIxi'] = False # (N/m); ; +Morison['M8N7FIxi'] = False # (N/m); ; +Morison['M8N8FIxi'] = False # (N/m); ; +Morison['M8N9FIxi'] = False # (N/m); ; +Morison['M9N1FIxi'] = False # (N/m); ; +Morison['M9N2FIxi'] = False # (N/m); ; +Morison['M9N3FIxi'] = False # (N/m); ; +Morison['M9N4FIxi'] = False # (N/m); ; +Morison['M9N5FIxi'] = False # (N/m); ; +Morison['M9N6FIxi'] = False # (N/m); ; +Morison['M9N7FIxi'] = False # (N/m); ; +Morison['M9N8FIxi'] = False # (N/m); ; +Morison['M9N9FIxi'] = False # (N/m); ; +Morison['M1N1FIyi'] = False # (N/m); y-component of the distributed inertial force expressed in the inertial coordinate system; +Morison['M1N2FIyi'] = False # (N/m); ; +Morison['M1N3FIyi'] = False # (N/m); ; +Morison['M1N4FIyi'] = False # (N/m); ; +Morison['M1N5FIyi'] = False # (N/m); ; +Morison['M1N6FIyi'] = False # (N/m); ; +Morison['M1N7FIyi'] = False # (N/m); ; +Morison['M1N8FIyi'] = False # (N/m); ; +Morison['M1N9FIyi'] = False # (N/m); ; +Morison['M2N1FIyi'] = False # (N/m); ; +Morison['M2N2FIyi'] = False # (N/m); ; +Morison['M2N3FIyi'] = False # (N/m); ; +Morison['M2N4FIyi'] = False # (N/m); ; +Morison['M2N5FIyi'] = False # (N/m); ; +Morison['M2N6FIyi'] = False # (N/m); ; +Morison['M2N7FIyi'] = False # (N/m); ; +Morison['M2N8FIyi'] = False # (N/m); ; +Morison['M2N9FIyi'] = False # (N/m); ; +Morison['M3N1FIyi'] = False # (N/m); ; +Morison['M3N2FIyi'] = False # (N/m); ; +Morison['M3N3FIyi'] = False # (N/m); ; +Morison['M3N4FIyi'] = False # (N/m); ; +Morison['M3N5FIyi'] = False # (N/m); ; +Morison['M3N6FIyi'] = False # (N/m); ; +Morison['M3N7FIyi'] = False # (N/m); ; +Morison['M3N8FIyi'] = False # (N/m); ; +Morison['M3N9FIyi'] = False # (N/m); ; +Morison['M4N1FIyi'] = False # (N/m); ; +Morison['M4N2FIyi'] = False # (N/m); ; +Morison['M4N3FIyi'] = False # (N/m); ; +Morison['M4N4FIyi'] = False # (N/m); ; +Morison['M4N5FIyi'] = False # (N/m); ; +Morison['M4N6FIyi'] = False # (N/m); ; +Morison['M4N7FIyi'] = False # (N/m); ; +Morison['M4N8FIyi'] = False # (N/m); ; +Morison['M4N9FIyi'] = False # (N/m); ; +Morison['M5N1FIyi'] = False # (N/m); ; +Morison['M5N2FIyi'] = False # (N/m); ; +Morison['M5N3FIyi'] = False # (N/m); ; +Morison['M5N4FIyi'] = False # (N/m); ; +Morison['M5N5FIyi'] = False # (N/m); ; +Morison['M5N6FIyi'] = False # (N/m); ; +Morison['M5N7FIyi'] = False # (N/m); ; +Morison['M5N8FIyi'] = False # (N/m); ; +Morison['M5N9FIyi'] = False # (N/m); ; +Morison['M6N1FIyi'] = False # (N/m); ; +Morison['M6N2FIyi'] = False # (N/m); ; +Morison['M6N3FIyi'] = False # (N/m); ; +Morison['M6N4FIyi'] = False # (N/m); ; +Morison['M6N5FIyi'] = False # (N/m); ; +Morison['M6N6FIyi'] = False # (N/m); ; +Morison['M6N7FIyi'] = False # (N/m); ; +Morison['M6N8FIyi'] = False # (N/m); ; +Morison['M6N9FIyi'] = False # (N/m); ; +Morison['M7N1FIyi'] = False # (N/m); ; +Morison['M7N2FIyi'] = False # (N/m); ; +Morison['M7N3FIyi'] = False # (N/m); ; +Morison['M7N4FIyi'] = False # (N/m); ; +Morison['M7N5FIyi'] = False # (N/m); ; +Morison['M7N6FIyi'] = False # (N/m); ; +Morison['M7N7FIyi'] = False # (N/m); ; +Morison['M7N8FIyi'] = False # (N/m); ; +Morison['M7N9FIyi'] = False # (N/m); ; +Morison['M8N1FIyi'] = False # (N/m); ; +Morison['M8N2FIyi'] = False # (N/m); ; +Morison['M8N3FIyi'] = False # (N/m); ; +Morison['M8N4FIyi'] = False # (N/m); ; +Morison['M8N5FIyi'] = False # (N/m); ; +Morison['M8N6FIyi'] = False # (N/m); ; +Morison['M8N7FIyi'] = False # (N/m); ; +Morison['M8N8FIyi'] = False # (N/m); ; +Morison['M8N9FIyi'] = False # (N/m); ; +Morison['M9N1FIyi'] = False # (N/m); ; +Morison['M9N2FIyi'] = False # (N/m); ; +Morison['M9N3FIyi'] = False # (N/m); ; +Morison['M9N4FIyi'] = False # (N/m); ; +Morison['M9N5FIyi'] = False # (N/m); ; +Morison['M9N6FIyi'] = False # (N/m); ; +Morison['M9N7FIyi'] = False # (N/m); ; +Morison['M9N8FIyi'] = False # (N/m); ; +Morison['M9N9FIyi'] = False # (N/m); ; +Morison['M1N1FIzi'] = False # (N/m); z-component of the distributed inertial force expressed in the inertial coordinate system; +Morison['M1N2FIzi'] = False # (N/m); ; +Morison['M1N3FIzi'] = False # (N/m); ; +Morison['M1N4FIzi'] = False # (N/m); ; +Morison['M1N5FIzi'] = False # (N/m); ; +Morison['M1N6FIzi'] = False # (N/m); ; +Morison['M1N7FIzi'] = False # (N/m); ; +Morison['M1N8FIzi'] = False # (N/m); ; +Morison['M1N9FIzi'] = False # (N/m); ; +Morison['M2N1FIzi'] = False # (N/m); ; +Morison['M2N2FIzi'] = False # (N/m); ; +Morison['M2N3FIzi'] = False # (N/m); ; +Morison['M2N4FIzi'] = False # (N/m); ; +Morison['M2N5FIzi'] = False # (N/m); ; +Morison['M2N6FIzi'] = False # (N/m); ; +Morison['M2N7FIzi'] = False # (N/m); ; +Morison['M2N8FIzi'] = False # (N/m); ; +Morison['M2N9FIzi'] = False # (N/m); ; +Morison['M3N1FIzi'] = False # (N/m); ; +Morison['M3N2FIzi'] = False # (N/m); ; +Morison['M3N3FIzi'] = False # (N/m); ; +Morison['M3N4FIzi'] = False # (N/m); ; +Morison['M3N5FIzi'] = False # (N/m); ; +Morison['M3N6FIzi'] = False # (N/m); ; +Morison['M3N7FIzi'] = False # (N/m); ; +Morison['M3N8FIzi'] = False # (N/m); ; +Morison['M3N9FIzi'] = False # (N/m); ; +Morison['M4N1FIzi'] = False # (N/m); ; +Morison['M4N2FIzi'] = False # (N/m); ; +Morison['M4N3FIzi'] = False # (N/m); ; +Morison['M4N4FIzi'] = False # (N/m); ; +Morison['M4N5FIzi'] = False # (N/m); ; +Morison['M4N6FIzi'] = False # (N/m); ; +Morison['M4N7FIzi'] = False # (N/m); ; +Morison['M4N8FIzi'] = False # (N/m); ; +Morison['M4N9FIzi'] = False # (N/m); ; +Morison['M5N1FIzi'] = False # (N/m); ; +Morison['M5N2FIzi'] = False # (N/m); ; +Morison['M5N3FIzi'] = False # (N/m); ; +Morison['M5N4FIzi'] = False # (N/m); ; +Morison['M5N5FIzi'] = False # (N/m); ; +Morison['M5N6FIzi'] = False # (N/m); ; +Morison['M5N7FIzi'] = False # (N/m); ; +Morison['M5N8FIzi'] = False # (N/m); ; +Morison['M5N9FIzi'] = False # (N/m); ; +Morison['M6N1FIzi'] = False # (N/m); ; +Morison['M6N2FIzi'] = False # (N/m); ; +Morison['M6N3FIzi'] = False # (N/m); ; +Morison['M6N4FIzi'] = False # (N/m); ; +Morison['M6N5FIzi'] = False # (N/m); ; +Morison['M6N6FIzi'] = False # (N/m); ; +Morison['M6N7FIzi'] = False # (N/m); ; +Morison['M6N8FIzi'] = False # (N/m); ; +Morison['M6N9FIzi'] = False # (N/m); ; +Morison['M7N1FIzi'] = False # (N/m); ; +Morison['M7N2FIzi'] = False # (N/m); ; +Morison['M7N3FIzi'] = False # (N/m); ; +Morison['M7N4FIzi'] = False # (N/m); ; +Morison['M7N5FIzi'] = False # (N/m); ; +Morison['M7N6FIzi'] = False # (N/m); ; +Morison['M7N7FIzi'] = False # (N/m); ; +Morison['M7N8FIzi'] = False # (N/m); ; +Morison['M7N9FIzi'] = False # (N/m); ; +Morison['M8N1FIzi'] = False # (N/m); ; +Morison['M8N2FIzi'] = False # (N/m); ; +Morison['M8N3FIzi'] = False # (N/m); ; +Morison['M8N4FIzi'] = False # (N/m); ; +Morison['M8N5FIzi'] = False # (N/m); ; +Morison['M8N6FIzi'] = False # (N/m); ; +Morison['M8N7FIzi'] = False # (N/m); ; +Morison['M8N8FIzi'] = False # (N/m); ; +Morison['M8N9FIzi'] = False # (N/m); ; +Morison['M9N1FIzi'] = False # (N/m); ; +Morison['M9N2FIzi'] = False # (N/m); ; +Morison['M9N3FIzi'] = False # (N/m); ; +Morison['M9N4FIzi'] = False # (N/m); ; +Morison['M9N5FIzi'] = False # (N/m); ; +Morison['M9N6FIzi'] = False # (N/m); ; +Morison['M9N7FIzi'] = False # (N/m); ; +Morison['M9N8FIzi'] = False # (N/m); ; +Morison['M9N9FIzi'] = False # (N/m); ; +Morison['M1N1FBxi'] = False # (N/m); x-component of the distributed bouyancy force expressed in the inertial coordinate system; +Morison['M1N2FBxi'] = False # (N/m); ; +Morison['M1N3FBxi'] = False # (N/m); ; +Morison['M1N4FBxi'] = False # (N/m); ; +Morison['M1N5FBxi'] = False # (N/m); ; +Morison['M1N6FBxi'] = False # (N/m); ; +Morison['M1N7FBxi'] = False # (N/m); ; +Morison['M1N8FBxi'] = False # (N/m); ; +Morison['M1N9FBxi'] = False # (N/m); ; +Morison['M2N1FBxi'] = False # (N/m); ; +Morison['M2N2FBxi'] = False # (N/m); ; +Morison['M2N3FBxi'] = False # (N/m); ; +Morison['M2N4FBxi'] = False # (N/m); ; +Morison['M2N5FBxi'] = False # (N/m); ; +Morison['M2N6FBxi'] = False # (N/m); ; +Morison['M2N7FBxi'] = False # (N/m); ; +Morison['M2N8FBxi'] = False # (N/m); ; +Morison['M2N9FBxi'] = False # (N/m); ; +Morison['M3N1FBxi'] = False # (N/m); ; +Morison['M3N2FBxi'] = False # (N/m); ; +Morison['M3N3FBxi'] = False # (N/m); ; +Morison['M3N4FBxi'] = False # (N/m); ; +Morison['M3N5FBxi'] = False # (N/m); ; +Morison['M3N6FBxi'] = False # (N/m); ; +Morison['M3N7FBxi'] = False # (N/m); ; +Morison['M3N8FBxi'] = False # (N/m); ; +Morison['M3N9FBxi'] = False # (N/m); ; +Morison['M4N1FBxi'] = False # (N/m); ; +Morison['M4N2FBxi'] = False # (N/m); ; +Morison['M4N3FBxi'] = False # (N/m); ; +Morison['M4N4FBxi'] = False # (N/m); ; +Morison['M4N5FBxi'] = False # (N/m); ; +Morison['M4N6FBxi'] = False # (N/m); ; +Morison['M4N7FBxi'] = False # (N/m); ; +Morison['M4N8FBxi'] = False # (N/m); ; +Morison['M4N9FBxi'] = False # (N/m); ; +Morison['M5N1FBxi'] = False # (N/m); ; +Morison['M5N2FBxi'] = False # (N/m); ; +Morison['M5N3FBxi'] = False # (N/m); ; +Morison['M5N4FBxi'] = False # (N/m); ; +Morison['M5N5FBxi'] = False # (N/m); ; +Morison['M5N6FBxi'] = False # (N/m); ; +Morison['M5N7FBxi'] = False # (N/m); ; +Morison['M5N8FBxi'] = False # (N/m); ; +Morison['M5N9FBxi'] = False # (N/m); ; +Morison['M6N1FBxi'] = False # (N/m); ; +Morison['M6N2FBxi'] = False # (N/m); ; +Morison['M6N3FBxi'] = False # (N/m); ; +Morison['M6N4FBxi'] = False # (N/m); ; +Morison['M6N5FBxi'] = False # (N/m); ; +Morison['M6N6FBxi'] = False # (N/m); ; +Morison['M6N7FBxi'] = False # (N/m); ; +Morison['M6N8FBxi'] = False # (N/m); ; +Morison['M6N9FBxi'] = False # (N/m); ; +Morison['M7N1FBxi'] = False # (N/m); ; +Morison['M7N2FBxi'] = False # (N/m); ; +Morison['M7N3FBxi'] = False # (N/m); ; +Morison['M7N4FBxi'] = False # (N/m); ; +Morison['M7N5FBxi'] = False # (N/m); ; +Morison['M7N6FBxi'] = False # (N/m); ; +Morison['M7N7FBxi'] = False # (N/m); ; +Morison['M7N8FBxi'] = False # (N/m); ; +Morison['M7N9FBxi'] = False # (N/m); ; +Morison['M8N1FBxi'] = False # (N/m); ; +Morison['M8N2FBxi'] = False # (N/m); ; +Morison['M8N3FBxi'] = False # (N/m); ; +Morison['M8N4FBxi'] = False # (N/m); ; +Morison['M8N5FBxi'] = False # (N/m); ; +Morison['M8N6FBxi'] = False # (N/m); ; +Morison['M8N7FBxi'] = False # (N/m); ; +Morison['M8N8FBxi'] = False # (N/m); ; +Morison['M8N9FBxi'] = False # (N/m); ; +Morison['M9N1FBxi'] = False # (N/m); ; +Morison['M9N2FBxi'] = False # (N/m); ; +Morison['M9N3FBxi'] = False # (N/m); ; +Morison['M9N4FBxi'] = False # (N/m); ; +Morison['M9N5FBxi'] = False # (N/m); ; +Morison['M9N6FBxi'] = False # (N/m); ; +Morison['M9N7FBxi'] = False # (N/m); ; +Morison['M9N8FBxi'] = False # (N/m); ; +Morison['M9N9FBxi'] = False # (N/m); ; +Morison['M1N1FByi'] = False # (N/m); y-component of the distributed bouyancy force expressed in the inertial coordinate system; +Morison['M1N2FByi'] = False # (N/m); ; +Morison['M1N3FByi'] = False # (N/m); ; +Morison['M1N4FByi'] = False # (N/m); ; +Morison['M1N5FByi'] = False # (N/m); ; +Morison['M1N6FByi'] = False # (N/m); ; +Morison['M1N7FByi'] = False # (N/m); ; +Morison['M1N8FByi'] = False # (N/m); ; +Morison['M1N9FByi'] = False # (N/m); ; +Morison['M2N1FByi'] = False # (N/m); ; +Morison['M2N2FByi'] = False # (N/m); ; +Morison['M2N3FByi'] = False # (N/m); ; +Morison['M2N4FByi'] = False # (N/m); ; +Morison['M2N5FByi'] = False # (N/m); ; +Morison['M2N6FByi'] = False # (N/m); ; +Morison['M2N7FByi'] = False # (N/m); ; +Morison['M2N8FByi'] = False # (N/m); ; +Morison['M2N9FByi'] = False # (N/m); ; +Morison['M3N1FByi'] = False # (N/m); ; +Morison['M3N2FByi'] = False # (N/m); ; +Morison['M3N3FByi'] = False # (N/m); ; +Morison['M3N4FByi'] = False # (N/m); ; +Morison['M3N5FByi'] = False # (N/m); ; +Morison['M3N6FByi'] = False # (N/m); ; +Morison['M3N7FByi'] = False # (N/m); ; +Morison['M3N8FByi'] = False # (N/m); ; +Morison['M3N9FByi'] = False # (N/m); ; +Morison['M4N1FByi'] = False # (N/m); ; +Morison['M4N2FByi'] = False # (N/m); ; +Morison['M4N3FByi'] = False # (N/m); ; +Morison['M4N4FByi'] = False # (N/m); ; +Morison['M4N5FByi'] = False # (N/m); ; +Morison['M4N6FByi'] = False # (N/m); ; +Morison['M4N7FByi'] = False # (N/m); ; +Morison['M4N8FByi'] = False # (N/m); ; +Morison['M4N9FByi'] = False # (N/m); ; +Morison['M5N1FByi'] = False # (N/m); ; +Morison['M5N2FByi'] = False # (N/m); ; +Morison['M5N3FByi'] = False # (N/m); ; +Morison['M5N4FByi'] = False # (N/m); ; +Morison['M5N5FByi'] = False # (N/m); ; +Morison['M5N6FByi'] = False # (N/m); ; +Morison['M5N7FByi'] = False # (N/m); ; +Morison['M5N8FByi'] = False # (N/m); ; +Morison['M5N9FByi'] = False # (N/m); ; +Morison['M6N1FByi'] = False # (N/m); ; +Morison['M6N2FByi'] = False # (N/m); ; +Morison['M6N3FByi'] = False # (N/m); ; +Morison['M6N4FByi'] = False # (N/m); ; +Morison['M6N5FByi'] = False # (N/m); ; +Morison['M6N6FByi'] = False # (N/m); ; +Morison['M6N7FByi'] = False # (N/m); ; +Morison['M6N8FByi'] = False # (N/m); ; +Morison['M6N9FByi'] = False # (N/m); ; +Morison['M7N1FByi'] = False # (N/m); ; +Morison['M7N2FByi'] = False # (N/m); ; +Morison['M7N3FByi'] = False # (N/m); ; +Morison['M7N4FByi'] = False # (N/m); ; +Morison['M7N5FByi'] = False # (N/m); ; +Morison['M7N6FByi'] = False # (N/m); ; +Morison['M7N7FByi'] = False # (N/m); ; +Morison['M7N8FByi'] = False # (N/m); ; +Morison['M7N9FByi'] = False # (N/m); ; +Morison['M8N1FByi'] = False # (N/m); ; +Morison['M8N2FByi'] = False # (N/m); ; +Morison['M8N3FByi'] = False # (N/m); ; +Morison['M8N4FByi'] = False # (N/m); ; +Morison['M8N5FByi'] = False # (N/m); ; +Morison['M8N6FByi'] = False # (N/m); ; +Morison['M8N7FByi'] = False # (N/m); ; +Morison['M8N8FByi'] = False # (N/m); ; +Morison['M8N9FByi'] = False # (N/m); ; +Morison['M9N1FByi'] = False # (N/m); ; +Morison['M9N2FByi'] = False # (N/m); ; +Morison['M9N3FByi'] = False # (N/m); ; +Morison['M9N4FByi'] = False # (N/m); ; +Morison['M9N5FByi'] = False # (N/m); ; +Morison['M9N6FByi'] = False # (N/m); ; +Morison['M9N7FByi'] = False # (N/m); ; +Morison['M9N8FByi'] = False # (N/m); ; +Morison['M9N9FByi'] = False # (N/m); ; +Morison['M1N1FBzi'] = False # (N/m); z-component of the distributed bouyancy force expressed in the inertial coordinate system; +Morison['M1N2FBzi'] = False # (N/m); ; +Morison['M1N3FBzi'] = False # (N/m); ; +Morison['M1N4FBzi'] = False # (N/m); ; +Morison['M1N5FBzi'] = False # (N/m); ; +Morison['M1N6FBzi'] = False # (N/m); ; +Morison['M1N7FBzi'] = False # (N/m); ; +Morison['M1N8FBzi'] = False # (N/m); ; +Morison['M1N9FBzi'] = False # (N/m); ; +Morison['M2N1FBzi'] = False # (N/m); ; +Morison['M2N2FBzi'] = False # (N/m); ; +Morison['M2N3FBzi'] = False # (N/m); ; +Morison['M2N4FBzi'] = False # (N/m); ; +Morison['M2N5FBzi'] = False # (N/m); ; +Morison['M2N6FBzi'] = False # (N/m); ; +Morison['M2N7FBzi'] = False # (N/m); ; +Morison['M2N8FBzi'] = False # (N/m); ; +Morison['M2N9FBzi'] = False # (N/m); ; +Morison['M3N1FBzi'] = False # (N/m); ; +Morison['M3N2FBzi'] = False # (N/m); ; +Morison['M3N3FBzi'] = False # (N/m); ; +Morison['M3N4FBzi'] = False # (N/m); ; +Morison['M3N5FBzi'] = False # (N/m); ; +Morison['M3N6FBzi'] = False # (N/m); ; +Morison['M3N7FBzi'] = False # (N/m); ; +Morison['M3N8FBzi'] = False # (N/m); ; +Morison['M3N9FBzi'] = False # (N/m); ; +Morison['M4N1FBzi'] = False # (N/m); ; +Morison['M4N2FBzi'] = False # (N/m); ; +Morison['M4N3FBzi'] = False # (N/m); ; +Morison['M4N4FBzi'] = False # (N/m); ; +Morison['M4N5FBzi'] = False # (N/m); ; +Morison['M4N6FBzi'] = False # (N/m); ; +Morison['M4N7FBzi'] = False # (N/m); ; +Morison['M4N8FBzi'] = False # (N/m); ; +Morison['M4N9FBzi'] = False # (N/m); ; +Morison['M5N1FBzi'] = False # (N/m); ; +Morison['M5N2FBzi'] = False # (N/m); ; +Morison['M5N3FBzi'] = False # (N/m); ; +Morison['M5N4FBzi'] = False # (N/m); ; +Morison['M5N5FBzi'] = False # (N/m); ; +Morison['M5N6FBzi'] = False # (N/m); ; +Morison['M5N7FBzi'] = False # (N/m); ; +Morison['M5N8FBzi'] = False # (N/m); ; +Morison['M5N9FBzi'] = False # (N/m); ; +Morison['M6N1FBzi'] = False # (N/m); ; +Morison['M6N2FBzi'] = False # (N/m); ; +Morison['M6N3FBzi'] = False # (N/m); ; +Morison['M6N4FBzi'] = False # (N/m); ; +Morison['M6N5FBzi'] = False # (N/m); ; +Morison['M6N6FBzi'] = False # (N/m); ; +Morison['M6N7FBzi'] = False # (N/m); ; +Morison['M6N8FBzi'] = False # (N/m); ; +Morison['M6N9FBzi'] = False # (N/m); ; +Morison['M7N1FBzi'] = False # (N/m); ; +Morison['M7N2FBzi'] = False # (N/m); ; +Morison['M7N3FBzi'] = False # (N/m); ; +Morison['M7N4FBzi'] = False # (N/m); ; +Morison['M7N5FBzi'] = False # (N/m); ; +Morison['M7N6FBzi'] = False # (N/m); ; +Morison['M7N7FBzi'] = False # (N/m); ; +Morison['M7N8FBzi'] = False # (N/m); ; +Morison['M7N9FBzi'] = False # (N/m); ; +Morison['M8N1FBzi'] = False # (N/m); ; +Morison['M8N2FBzi'] = False # (N/m); ; +Morison['M8N3FBzi'] = False # (N/m); ; +Morison['M8N4FBzi'] = False # (N/m); ; +Morison['M8N5FBzi'] = False # (N/m); ; +Morison['M8N6FBzi'] = False # (N/m); ; +Morison['M8N7FBzi'] = False # (N/m); ; +Morison['M8N8FBzi'] = False # (N/m); ; +Morison['M8N9FBzi'] = False # (N/m); ; +Morison['M9N1FBzi'] = False # (N/m); ; +Morison['M9N2FBzi'] = False # (N/m); ; +Morison['M9N3FBzi'] = False # (N/m); ; +Morison['M9N4FBzi'] = False # (N/m); ; +Morison['M9N5FBzi'] = False # (N/m); ; +Morison['M9N6FBzi'] = False # (N/m); ; +Morison['M9N7FBzi'] = False # (N/m); ; +Morison['M9N8FBzi'] = False # (N/m); ; +Morison['M9N9FBzi'] = False # (N/m); ; +Morison['M1N1MBxi'] = False # (N); x-component of the distributed bouyancy moment expressed in the inertial coordinate system; +Morison['M1N2MBxi'] = False # (N); ; +Morison['M1N3MBxi'] = False # (N); ; +Morison['M1N4MBxi'] = False # (N); ; +Morison['M1N5MBxi'] = False # (N); ; +Morison['M1N6MBxi'] = False # (N); ; +Morison['M1N7MBxi'] = False # (N); ; +Morison['M1N8MBxi'] = False # (N); ; +Morison['M1N9MBxi'] = False # (N); ; +Morison['M2N1MBxi'] = False # (N); ; +Morison['M2N2MBxi'] = False # (N); ; +Morison['M2N3MBxi'] = False # (N); ; +Morison['M2N4MBxi'] = False # (N); ; +Morison['M2N5MBxi'] = False # (N); ; +Morison['M2N6MBxi'] = False # (N); ; +Morison['M2N7MBxi'] = False # (N); ; +Morison['M2N8MBxi'] = False # (N); ; +Morison['M2N9MBxi'] = False # (N); ; +Morison['M3N1MBxi'] = False # (N); ; +Morison['M3N2MBxi'] = False # (N); ; +Morison['M3N3MBxi'] = False # (N); ; +Morison['M3N4MBxi'] = False # (N); ; +Morison['M3N5MBxi'] = False # (N); ; +Morison['M3N6MBxi'] = False # (N); ; +Morison['M3N7MBxi'] = False # (N); ; +Morison['M3N8MBxi'] = False # (N); ; +Morison['M3N9MBxi'] = False # (N); ; +Morison['M4N1MBxi'] = False # (N); ; +Morison['M4N2MBxi'] = False # (N); ; +Morison['M4N3MBxi'] = False # (N); ; +Morison['M4N4MBxi'] = False # (N); ; +Morison['M4N5MBxi'] = False # (N); ; +Morison['M4N6MBxi'] = False # (N); ; +Morison['M4N7MBxi'] = False # (N); ; +Morison['M4N8MBxi'] = False # (N); ; +Morison['M4N9MBxi'] = False # (N); ; +Morison['M5N1MBxi'] = False # (N); ; +Morison['M5N2MBxi'] = False # (N); ; +Morison['M5N3MBxi'] = False # (N); ; +Morison['M5N4MBxi'] = False # (N); ; +Morison['M5N5MBxi'] = False # (N); ; +Morison['M5N6MBxi'] = False # (N); ; +Morison['M5N7MBxi'] = False # (N); ; +Morison['M5N8MBxi'] = False # (N); ; +Morison['M5N9MBxi'] = False # (N); ; +Morison['M6N1MBxi'] = False # (N); ; +Morison['M6N2MBxi'] = False # (N); ; +Morison['M6N3MBxi'] = False # (N); ; +Morison['M6N4MBxi'] = False # (N); ; +Morison['M6N5MBxi'] = False # (N); ; +Morison['M6N6MBxi'] = False # (N); ; +Morison['M6N7MBxi'] = False # (N); ; +Morison['M6N8MBxi'] = False # (N); ; +Morison['M6N9MBxi'] = False # (N); ; +Morison['M7N1MBxi'] = False # (N); ; +Morison['M7N2MBxi'] = False # (N); ; +Morison['M7N3MBxi'] = False # (N); ; +Morison['M7N4MBxi'] = False # (N); ; +Morison['M7N5MBxi'] = False # (N); ; +Morison['M7N6MBxi'] = False # (N); ; +Morison['M7N7MBxi'] = False # (N); ; +Morison['M7N8MBxi'] = False # (N); ; +Morison['M7N9MBxi'] = False # (N); ; +Morison['M8N1MBxi'] = False # (N); ; +Morison['M8N2MBxi'] = False # (N); ; +Morison['M8N3MBxi'] = False # (N); ; +Morison['M8N4MBxi'] = False # (N); ; +Morison['M8N5MBxi'] = False # (N); ; +Morison['M8N6MBxi'] = False # (N); ; +Morison['M8N7MBxi'] = False # (N); ; +Morison['M8N8MBxi'] = False # (N); ; +Morison['M8N9MBxi'] = False # (N); ; +Morison['M9N1MBxi'] = False # (N); ; +Morison['M9N2MBxi'] = False # (N); ; +Morison['M9N3MBxi'] = False # (N); ; +Morison['M9N4MBxi'] = False # (N); ; +Morison['M9N5MBxi'] = False # (N); ; +Morison['M9N6MBxi'] = False # (N); ; +Morison['M9N7MBxi'] = False # (N); ; +Morison['M9N8MBxi'] = False # (N); ; +Morison['M9N9MBxi'] = False # (N); ; +Morison['M1N1MByi'] = False # (N); y-component of the distributed bouyancy moment expressed in the inertial coordinate system; +Morison['M1N2MByi'] = False # (N); ; +Morison['M1N3MByi'] = False # (N); ; +Morison['M1N4MByi'] = False # (N); ; +Morison['M1N5MByi'] = False # (N); ; +Morison['M1N6MByi'] = False # (N); ; +Morison['M1N7MByi'] = False # (N); ; +Morison['M1N8MByi'] = False # (N); ; +Morison['M1N9MByi'] = False # (N); ; +Morison['M2N1MByi'] = False # (N); ; +Morison['M2N2MByi'] = False # (N); ; +Morison['M2N3MByi'] = False # (N); ; +Morison['M2N4MByi'] = False # (N); ; +Morison['M2N5MByi'] = False # (N); ; +Morison['M2N6MByi'] = False # (N); ; +Morison['M2N7MByi'] = False # (N); ; +Morison['M2N8MByi'] = False # (N); ; +Morison['M2N9MByi'] = False # (N); ; +Morison['M3N1MByi'] = False # (N); ; +Morison['M3N2MByi'] = False # (N); ; +Morison['M3N3MByi'] = False # (N); ; +Morison['M3N4MByi'] = False # (N); ; +Morison['M3N5MByi'] = False # (N); ; +Morison['M3N6MByi'] = False # (N); ; +Morison['M3N7MByi'] = False # (N); ; +Morison['M3N8MByi'] = False # (N); ; +Morison['M3N9MByi'] = False # (N); ; +Morison['M4N1MByi'] = False # (N); ; +Morison['M4N2MByi'] = False # (N); ; +Morison['M4N3MByi'] = False # (N); ; +Morison['M4N4MByi'] = False # (N); ; +Morison['M4N5MByi'] = False # (N); ; +Morison['M4N6MByi'] = False # (N); ; +Morison['M4N7MByi'] = False # (N); ; +Morison['M4N8MByi'] = False # (N); ; +Morison['M4N9MByi'] = False # (N); ; +Morison['M5N1MByi'] = False # (N); ; +Morison['M5N2MByi'] = False # (N); ; +Morison['M5N3MByi'] = False # (N); ; +Morison['M5N4MByi'] = False # (N); ; +Morison['M5N5MByi'] = False # (N); ; +Morison['M5N6MByi'] = False # (N); ; +Morison['M5N7MByi'] = False # (N); ; +Morison['M5N8MByi'] = False # (N); ; +Morison['M5N9MByi'] = False # (N); ; +Morison['M6N1MByi'] = False # (N); ; +Morison['M6N2MByi'] = False # (N); ; +Morison['M6N3MByi'] = False # (N); ; +Morison['M6N4MByi'] = False # (N); ; +Morison['M6N5MByi'] = False # (N); ; +Morison['M6N6MByi'] = False # (N); ; +Morison['M6N7MByi'] = False # (N); ; +Morison['M6N8MByi'] = False # (N); ; +Morison['M6N9MByi'] = False # (N); ; +Morison['M7N1MByi'] = False # (N); ; +Morison['M7N2MByi'] = False # (N); ; +Morison['M7N3MByi'] = False # (N); ; +Morison['M7N4MByi'] = False # (N); ; +Morison['M7N5MByi'] = False # (N); ; +Morison['M7N6MByi'] = False # (N); ; +Morison['M7N7MByi'] = False # (N); ; +Morison['M7N8MByi'] = False # (N); ; +Morison['M7N9MByi'] = False # (N); ; +Morison['M8N1MByi'] = False # (N); ; +Morison['M8N2MByi'] = False # (N); ; +Morison['M8N3MByi'] = False # (N); ; +Morison['M8N4MByi'] = False # (N); ; +Morison['M8N5MByi'] = False # (N); ; +Morison['M8N6MByi'] = False # (N); ; +Morison['M8N7MByi'] = False # (N); ; +Morison['M8N8MByi'] = False # (N); ; +Morison['M8N9MByi'] = False # (N); ; +Morison['M9N1MByi'] = False # (N); ; +Morison['M9N2MByi'] = False # (N); ; +Morison['M9N3MByi'] = False # (N); ; +Morison['M9N4MByi'] = False # (N); ; +Morison['M9N5MByi'] = False # (N); ; +Morison['M9N6MByi'] = False # (N); ; +Morison['M9N7MByi'] = False # (N); ; +Morison['M9N8MByi'] = False # (N); ; +Morison['M9N9MByi'] = False # (N); ; +Morison['M1N1MBzi'] = False # (N); z-component of the distributed bouyancy moment expressed in the inertial coordinate system; +Morison['M1N2MBzi'] = False # (N); ; +Morison['M1N3MBzi'] = False # (N); ; +Morison['M1N4MBzi'] = False # (N); ; +Morison['M1N5MBzi'] = False # (N); ; +Morison['M1N6MBzi'] = False # (N); ; +Morison['M1N7MBzi'] = False # (N); ; +Morison['M1N8MBzi'] = False # (N); ; +Morison['M1N9MBzi'] = False # (N); ; +Morison['M2N1MBzi'] = False # (N); ; +Morison['M2N2MBzi'] = False # (N); ; +Morison['M2N3MBzi'] = False # (N); ; +Morison['M2N4MBzi'] = False # (N); ; +Morison['M2N5MBzi'] = False # (N); ; +Morison['M2N6MBzi'] = False # (N); ; +Morison['M2N7MBzi'] = False # (N); ; +Morison['M2N8MBzi'] = False # (N); ; +Morison['M2N9MBzi'] = False # (N); ; +Morison['M3N1MBzi'] = False # (N); ; +Morison['M3N2MBzi'] = False # (N); ; +Morison['M3N3MBzi'] = False # (N); ; +Morison['M3N4MBzi'] = False # (N); ; +Morison['M3N5MBzi'] = False # (N); ; +Morison['M3N6MBzi'] = False # (N); ; +Morison['M3N7MBzi'] = False # (N); ; +Morison['M3N8MBzi'] = False # (N); ; +Morison['M3N9MBzi'] = False # (N); ; +Morison['M4N1MBzi'] = False # (N); ; +Morison['M4N2MBzi'] = False # (N); ; +Morison['M4N3MBzi'] = False # (N); ; +Morison['M4N4MBzi'] = False # (N); ; +Morison['M4N5MBzi'] = False # (N); ; +Morison['M4N6MBzi'] = False # (N); ; +Morison['M4N7MBzi'] = False # (N); ; +Morison['M4N8MBzi'] = False # (N); ; +Morison['M4N9MBzi'] = False # (N); ; +Morison['M5N1MBzi'] = False # (N); ; +Morison['M5N2MBzi'] = False # (N); ; +Morison['M5N3MBzi'] = False # (N); ; +Morison['M5N4MBzi'] = False # (N); ; +Morison['M5N5MBzi'] = False # (N); ; +Morison['M5N6MBzi'] = False # (N); ; +Morison['M5N7MBzi'] = False # (N); ; +Morison['M5N8MBzi'] = False # (N); ; +Morison['M5N9MBzi'] = False # (N); ; +Morison['M6N1MBzi'] = False # (N); ; +Morison['M6N2MBzi'] = False # (N); ; +Morison['M6N3MBzi'] = False # (N); ; +Morison['M6N4MBzi'] = False # (N); ; +Morison['M6N5MBzi'] = False # (N); ; +Morison['M6N6MBzi'] = False # (N); ; +Morison['M6N7MBzi'] = False # (N); ; +Morison['M6N8MBzi'] = False # (N); ; +Morison['M6N9MBzi'] = False # (N); ; +Morison['M7N1MBzi'] = False # (N); ; +Morison['M7N2MBzi'] = False # (N); ; +Morison['M7N3MBzi'] = False # (N); ; +Morison['M7N4MBzi'] = False # (N); ; +Morison['M7N5MBzi'] = False # (N); ; +Morison['M7N6MBzi'] = False # (N); ; +Morison['M7N7MBzi'] = False # (N); ; +Morison['M7N8MBzi'] = False # (N); ; +Morison['M7N9MBzi'] = False # (N); ; +Morison['M8N1MBzi'] = False # (N); ; +Morison['M8N2MBzi'] = False # (N); ; +Morison['M8N3MBzi'] = False # (N); ; +Morison['M8N4MBzi'] = False # (N); ; +Morison['M8N5MBzi'] = False # (N); ; +Morison['M8N6MBzi'] = False # (N); ; +Morison['M8N7MBzi'] = False # (N); ; +Morison['M8N8MBzi'] = False # (N); ; +Morison['M8N9MBzi'] = False # (N); ; +Morison['M9N1MBzi'] = False # (N); ; +Morison['M9N2MBzi'] = False # (N); ; +Morison['M9N3MBzi'] = False # (N); ; +Morison['M9N4MBzi'] = False # (N); ; +Morison['M9N5MBzi'] = False # (N); ; +Morison['M9N6MBzi'] = False # (N); ; +Morison['M9N7MBzi'] = False # (N); ; +Morison['M9N8MBzi'] = False # (N); ; +Morison['M9N9MBzi'] = False # (N); ; +Morison['M1N1FBFxi'] = False # (N/m); x-component of the distributed filled fluid bouyancy force expressed in the inertial coordinate system; +Morison['M1N2FBFxi'] = False # (N/m); ; +Morison['M1N3FBFxi'] = False # (N/m); ; +Morison['M1N4FBFxi'] = False # (N/m); ; +Morison['M1N5FBFxi'] = False # (N/m); ; +Morison['M1N6FBFxi'] = False # (N/m); ; +Morison['M1N7FBFxi'] = False # (N/m); ; +Morison['M1N8FBFxi'] = False # (N/m); ; +Morison['M1N9FBFxi'] = False # (N/m); ; +Morison['M2N1FBFxi'] = False # (N/m); ; +Morison['M2N2FBFxi'] = False # (N/m); ; +Morison['M2N3FBFxi'] = False # (N/m); ; +Morison['M2N4FBFxi'] = False # (N/m); ; +Morison['M2N5FBFxi'] = False # (N/m); ; +Morison['M2N6FBFxi'] = False # (N/m); ; +Morison['M2N7FBFxi'] = False # (N/m); ; +Morison['M2N8FBFxi'] = False # (N/m); ; +Morison['M2N9FBFxi'] = False # (N/m); ; +Morison['M3N1FBFxi'] = False # (N/m); ; +Morison['M3N2FBFxi'] = False # (N/m); ; +Morison['M3N3FBFxi'] = False # (N/m); ; +Morison['M3N4FBFxi'] = False # (N/m); ; +Morison['M3N5FBFxi'] = False # (N/m); ; +Morison['M3N6FBFxi'] = False # (N/m); ; +Morison['M3N7FBFxi'] = False # (N/m); ; +Morison['M3N8FBFxi'] = False # (N/m); ; +Morison['M3N9FBFxi'] = False # (N/m); ; +Morison['M4N1FBFxi'] = False # (N/m); ; +Morison['M4N2FBFxi'] = False # (N/m); ; +Morison['M4N3FBFxi'] = False # (N/m); ; +Morison['M4N4FBFxi'] = False # (N/m); ; +Morison['M4N5FBFxi'] = False # (N/m); ; +Morison['M4N6FBFxi'] = False # (N/m); ; +Morison['M4N7FBFxi'] = False # (N/m); ; +Morison['M4N8FBFxi'] = False # (N/m); ; +Morison['M4N9FBFxi'] = False # (N/m); ; +Morison['M5N1FBFxi'] = False # (N/m); ; +Morison['M5N2FBFxi'] = False # (N/m); ; +Morison['M5N3FBFxi'] = False # (N/m); ; +Morison['M5N4FBFxi'] = False # (N/m); ; +Morison['M5N5FBFxi'] = False # (N/m); ; +Morison['M5N6FBFxi'] = False # (N/m); ; +Morison['M5N7FBFxi'] = False # (N/m); ; +Morison['M5N8FBFxi'] = False # (N/m); ; +Morison['M5N9FBFxi'] = False # (N/m); ; +Morison['M6N1FBFxi'] = False # (N/m); ; +Morison['M6N2FBFxi'] = False # (N/m); ; +Morison['M6N3FBFxi'] = False # (N/m); ; +Morison['M6N4FBFxi'] = False # (N/m); ; +Morison['M6N5FBFxi'] = False # (N/m); ; +Morison['M6N6FBFxi'] = False # (N/m); ; +Morison['M6N7FBFxi'] = False # (N/m); ; +Morison['M6N8FBFxi'] = False # (N/m); ; +Morison['M6N9FBFxi'] = False # (N/m); ; +Morison['M7N1FBFxi'] = False # (N/m); ; +Morison['M7N2FBFxi'] = False # (N/m); ; +Morison['M7N3FBFxi'] = False # (N/m); ; +Morison['M7N4FBFxi'] = False # (N/m); ; +Morison['M7N5FBFxi'] = False # (N/m); ; +Morison['M7N6FBFxi'] = False # (N/m); ; +Morison['M7N7FBFxi'] = False # (N/m); ; +Morison['M7N8FBFxi'] = False # (N/m); ; +Morison['M7N9FBFxi'] = False # (N/m); ; +Morison['M8N1FBFxi'] = False # (N/m); ; +Morison['M8N2FBFxi'] = False # (N/m); ; +Morison['M8N3FBFxi'] = False # (N/m); ; +Morison['M8N4FBFxi'] = False # (N/m); ; +Morison['M8N5FBFxi'] = False # (N/m); ; +Morison['M8N6FBFxi'] = False # (N/m); ; +Morison['M8N7FBFxi'] = False # (N/m); ; +Morison['M8N8FBFxi'] = False # (N/m); ; +Morison['M8N9FBFxi'] = False # (N/m); ; +Morison['M9N1FBFxi'] = False # (N/m); ; +Morison['M9N2FBFxi'] = False # (N/m); ; +Morison['M9N3FBFxi'] = False # (N/m); ; +Morison['M9N4FBFxi'] = False # (N/m); ; +Morison['M9N5FBFxi'] = False # (N/m); ; +Morison['M9N6FBFxi'] = False # (N/m); ; +Morison['M9N7FBFxi'] = False # (N/m); ; +Morison['M9N8FBFxi'] = False # (N/m); ; +Morison['M9N9FBFxi'] = False # (N/m); ; +Morison['M1N1FBFyi'] = False # (N/m); y-component of the distributed filled fluid bouyancy force expressed in the inertial coordinate system; +Morison['M1N2FBFyi'] = False # (N/m); ; +Morison['M1N3FBFyi'] = False # (N/m); ; +Morison['M1N4FBFyi'] = False # (N/m); ; +Morison['M1N5FBFyi'] = False # (N/m); ; +Morison['M1N6FBFyi'] = False # (N/m); ; +Morison['M1N7FBFyi'] = False # (N/m); ; +Morison['M1N8FBFyi'] = False # (N/m); ; +Morison['M1N9FBFyi'] = False # (N/m); ; +Morison['M2N1FBFyi'] = False # (N/m); ; +Morison['M2N2FBFyi'] = False # (N/m); ; +Morison['M2N3FBFyi'] = False # (N/m); ; +Morison['M2N4FBFyi'] = False # (N/m); ; +Morison['M2N5FBFyi'] = False # (N/m); ; +Morison['M2N6FBFyi'] = False # (N/m); ; +Morison['M2N7FBFyi'] = False # (N/m); ; +Morison['M2N8FBFyi'] = False # (N/m); ; +Morison['M2N9FBFyi'] = False # (N/m); ; +Morison['M3N1FBFyi'] = False # (N/m); ; +Morison['M3N2FBFyi'] = False # (N/m); ; +Morison['M3N3FBFyi'] = False # (N/m); ; +Morison['M3N4FBFyi'] = False # (N/m); ; +Morison['M3N5FBFyi'] = False # (N/m); ; +Morison['M3N6FBFyi'] = False # (N/m); ; +Morison['M3N7FBFyi'] = False # (N/m); ; +Morison['M3N8FBFyi'] = False # (N/m); ; +Morison['M3N9FBFyi'] = False # (N/m); ; +Morison['M4N1FBFyi'] = False # (N/m); ; +Morison['M4N2FBFyi'] = False # (N/m); ; +Morison['M4N3FBFyi'] = False # (N/m); ; +Morison['M4N4FBFyi'] = False # (N/m); ; +Morison['M4N5FBFyi'] = False # (N/m); ; +Morison['M4N6FBFyi'] = False # (N/m); ; +Morison['M4N7FBFyi'] = False # (N/m); ; +Morison['M4N8FBFyi'] = False # (N/m); ; +Morison['M4N9FBFyi'] = False # (N/m); ; +Morison['M5N1FBFyi'] = False # (N/m); ; +Morison['M5N2FBFyi'] = False # (N/m); ; +Morison['M5N3FBFyi'] = False # (N/m); ; +Morison['M5N4FBFyi'] = False # (N/m); ; +Morison['M5N5FBFyi'] = False # (N/m); ; +Morison['M5N6FBFyi'] = False # (N/m); ; +Morison['M5N7FBFyi'] = False # (N/m); ; +Morison['M5N8FBFyi'] = False # (N/m); ; +Morison['M5N9FBFyi'] = False # (N/m); ; +Morison['M6N1FBFyi'] = False # (N/m); ; +Morison['M6N2FBFyi'] = False # (N/m); ; +Morison['M6N3FBFyi'] = False # (N/m); ; +Morison['M6N4FBFyi'] = False # (N/m); ; +Morison['M6N5FBFyi'] = False # (N/m); ; +Morison['M6N6FBFyi'] = False # (N/m); ; +Morison['M6N7FBFyi'] = False # (N/m); ; +Morison['M6N8FBFyi'] = False # (N/m); ; +Morison['M6N9FBFyi'] = False # (N/m); ; +Morison['M7N1FBFyi'] = False # (N/m); ; +Morison['M7N2FBFyi'] = False # (N/m); ; +Morison['M7N3FBFyi'] = False # (N/m); ; +Morison['M7N4FBFyi'] = False # (N/m); ; +Morison['M7N5FBFyi'] = False # (N/m); ; +Morison['M7N6FBFyi'] = False # (N/m); ; +Morison['M7N7FBFyi'] = False # (N/m); ; +Morison['M7N8FBFyi'] = False # (N/m); ; +Morison['M7N9FBFyi'] = False # (N/m); ; +Morison['M8N1FBFyi'] = False # (N/m); ; +Morison['M8N2FBFyi'] = False # (N/m); ; +Morison['M8N3FBFyi'] = False # (N/m); ; +Morison['M8N4FBFyi'] = False # (N/m); ; +Morison['M8N5FBFyi'] = False # (N/m); ; +Morison['M8N6FBFyi'] = False # (N/m); ; +Morison['M8N7FBFyi'] = False # (N/m); ; +Morison['M8N8FBFyi'] = False # (N/m); ; +Morison['M8N9FBFyi'] = False # (N/m); ; +Morison['M9N1FBFyi'] = False # (N/m); ; +Morison['M9N2FBFyi'] = False # (N/m); ; +Morison['M9N3FBFyi'] = False # (N/m); ; +Morison['M9N4FBFyi'] = False # (N/m); ; +Morison['M9N5FBFyi'] = False # (N/m); ; +Morison['M9N6FBFyi'] = False # (N/m); ; +Morison['M9N7FBFyi'] = False # (N/m); ; +Morison['M9N8FBFyi'] = False # (N/m); ; +Morison['M9N9FBFyi'] = False # (N/m); ; +Morison['M1N1FBFzi'] = False # (N/m); z-component of the distributed filled fluid bouyancy force expressed in the inertial coordinate system; +Morison['M1N2FBFzi'] = False # (N/m); ; +Morison['M1N3FBFzi'] = False # (N/m); ; +Morison['M1N4FBFzi'] = False # (N/m); ; +Morison['M1N5FBFzi'] = False # (N/m); ; +Morison['M1N6FBFzi'] = False # (N/m); ; +Morison['M1N7FBFzi'] = False # (N/m); ; +Morison['M1N8FBFzi'] = False # (N/m); ; +Morison['M1N9FBFzi'] = False # (N/m); ; +Morison['M2N1FBFzi'] = False # (N/m); ; +Morison['M2N2FBFzi'] = False # (N/m); ; +Morison['M2N3FBFzi'] = False # (N/m); ; +Morison['M2N4FBFzi'] = False # (N/m); ; +Morison['M2N5FBFzi'] = False # (N/m); ; +Morison['M2N6FBFzi'] = False # (N/m); ; +Morison['M2N7FBFzi'] = False # (N/m); ; +Morison['M2N8FBFzi'] = False # (N/m); ; +Morison['M2N9FBFzi'] = False # (N/m); ; +Morison['M3N1FBFzi'] = False # (N/m); ; +Morison['M3N2FBFzi'] = False # (N/m); ; +Morison['M3N3FBFzi'] = False # (N/m); ; +Morison['M3N4FBFzi'] = False # (N/m); ; +Morison['M3N5FBFzi'] = False # (N/m); ; +Morison['M3N6FBFzi'] = False # (N/m); ; +Morison['M3N7FBFzi'] = False # (N/m); ; +Morison['M3N8FBFzi'] = False # (N/m); ; +Morison['M3N9FBFzi'] = False # (N/m); ; +Morison['M4N1FBFzi'] = False # (N/m); ; +Morison['M4N2FBFzi'] = False # (N/m); ; +Morison['M4N3FBFzi'] = False # (N/m); ; +Morison['M4N4FBFzi'] = False # (N/m); ; +Morison['M4N5FBFzi'] = False # (N/m); ; +Morison['M4N6FBFzi'] = False # (N/m); ; +Morison['M4N7FBFzi'] = False # (N/m); ; +Morison['M4N8FBFzi'] = False # (N/m); ; +Morison['M4N9FBFzi'] = False # (N/m); ; +Morison['M5N1FBFzi'] = False # (N/m); ; +Morison['M5N2FBFzi'] = False # (N/m); ; +Morison['M5N3FBFzi'] = False # (N/m); ; +Morison['M5N4FBFzi'] = False # (N/m); ; +Morison['M5N5FBFzi'] = False # (N/m); ; +Morison['M5N6FBFzi'] = False # (N/m); ; +Morison['M5N7FBFzi'] = False # (N/m); ; +Morison['M5N8FBFzi'] = False # (N/m); ; +Morison['M5N9FBFzi'] = False # (N/m); ; +Morison['M6N1FBFzi'] = False # (N/m); ; +Morison['M6N2FBFzi'] = False # (N/m); ; +Morison['M6N3FBFzi'] = False # (N/m); ; +Morison['M6N4FBFzi'] = False # (N/m); ; +Morison['M6N5FBFzi'] = False # (N/m); ; +Morison['M6N6FBFzi'] = False # (N/m); ; +Morison['M6N7FBFzi'] = False # (N/m); ; +Morison['M6N8FBFzi'] = False # (N/m); ; +Morison['M6N9FBFzi'] = False # (N/m); ; +Morison['M7N1FBFzi'] = False # (N/m); ; +Morison['M7N2FBFzi'] = False # (N/m); ; +Morison['M7N3FBFzi'] = False # (N/m); ; +Morison['M7N4FBFzi'] = False # (N/m); ; +Morison['M7N5FBFzi'] = False # (N/m); ; +Morison['M7N6FBFzi'] = False # (N/m); ; +Morison['M7N7FBFzi'] = False # (N/m); ; +Morison['M7N8FBFzi'] = False # (N/m); ; +Morison['M7N9FBFzi'] = False # (N/m); ; +Morison['M8N1FBFzi'] = False # (N/m); ; +Morison['M8N2FBFzi'] = False # (N/m); ; +Morison['M8N3FBFzi'] = False # (N/m); ; +Morison['M8N4FBFzi'] = False # (N/m); ; +Morison['M8N5FBFzi'] = False # (N/m); ; +Morison['M8N6FBFzi'] = False # (N/m); ; +Morison['M8N7FBFzi'] = False # (N/m); ; +Morison['M8N8FBFzi'] = False # (N/m); ; +Morison['M8N9FBFzi'] = False # (N/m); ; +Morison['M9N1FBFzi'] = False # (N/m); ; +Morison['M9N2FBFzi'] = False # (N/m); ; +Morison['M9N3FBFzi'] = False # (N/m); ; +Morison['M9N4FBFzi'] = False # (N/m); ; +Morison['M9N5FBFzi'] = False # (N/m); ; +Morison['M9N6FBFzi'] = False # (N/m); ; +Morison['M9N7FBFzi'] = False # (N/m); ; +Morison['M9N8FBFzi'] = False # (N/m); ; +Morison['M9N9FBFzi'] = False # (N/m); ; +Morison['M1N1MBFxi'] = False # (N); x-component of the distributed filled fluid bouyancy moment expressed in the inertial coordinate system; +Morison['M1N2MBFxi'] = False # (N); ; +Morison['M1N3MBFxi'] = False # (N); ; +Morison['M1N4MBFxi'] = False # (N); ; +Morison['M1N5MBFxi'] = False # (N); ; +Morison['M1N6MBFxi'] = False # (N); ; +Morison['M1N7MBFxi'] = False # (N); ; +Morison['M1N8MBFxi'] = False # (N); ; +Morison['M1N9MBFxi'] = False # (N); ; +Morison['M2N1MBFxi'] = False # (N); ; +Morison['M2N2MBFxi'] = False # (N); ; +Morison['M2N3MBFxi'] = False # (N); ; +Morison['M2N4MBFxi'] = False # (N); ; +Morison['M2N5MBFxi'] = False # (N); ; +Morison['M2N6MBFxi'] = False # (N); ; +Morison['M2N7MBFxi'] = False # (N); ; +Morison['M2N8MBFxi'] = False # (N); ; +Morison['M2N9MBFxi'] = False # (N); ; +Morison['M3N1MBFxi'] = False # (N); ; +Morison['M3N2MBFxi'] = False # (N); ; +Morison['M3N3MBFxi'] = False # (N); ; +Morison['M3N4MBFxi'] = False # (N); ; +Morison['M3N5MBFxi'] = False # (N); ; +Morison['M3N6MBFxi'] = False # (N); ; +Morison['M3N7MBFxi'] = False # (N); ; +Morison['M3N8MBFxi'] = False # (N); ; +Morison['M3N9MBFxi'] = False # (N); ; +Morison['M4N1MBFxi'] = False # (N); ; +Morison['M4N2MBFxi'] = False # (N); ; +Morison['M4N3MBFxi'] = False # (N); ; +Morison['M4N4MBFxi'] = False # (N); ; +Morison['M4N5MBFxi'] = False # (N); ; +Morison['M4N6MBFxi'] = False # (N); ; +Morison['M4N7MBFxi'] = False # (N); ; +Morison['M4N8MBFxi'] = False # (N); ; +Morison['M4N9MBFxi'] = False # (N); ; +Morison['M5N1MBFxi'] = False # (N); ; +Morison['M5N2MBFxi'] = False # (N); ; +Morison['M5N3MBFxi'] = False # (N); ; +Morison['M5N4MBFxi'] = False # (N); ; +Morison['M5N5MBFxi'] = False # (N); ; +Morison['M5N6MBFxi'] = False # (N); ; +Morison['M5N7MBFxi'] = False # (N); ; +Morison['M5N8MBFxi'] = False # (N); ; +Morison['M5N9MBFxi'] = False # (N); ; +Morison['M6N1MBFxi'] = False # (N); ; +Morison['M6N2MBFxi'] = False # (N); ; +Morison['M6N3MBFxi'] = False # (N); ; +Morison['M6N4MBFxi'] = False # (N); ; +Morison['M6N5MBFxi'] = False # (N); ; +Morison['M6N6MBFxi'] = False # (N); ; +Morison['M6N7MBFxi'] = False # (N); ; +Morison['M6N8MBFxi'] = False # (N); ; +Morison['M6N9MBFxi'] = False # (N); ; +Morison['M7N1MBFxi'] = False # (N); ; +Morison['M7N2MBFxi'] = False # (N); ; +Morison['M7N3MBFxi'] = False # (N); ; +Morison['M7N4MBFxi'] = False # (N); ; +Morison['M7N5MBFxi'] = False # (N); ; +Morison['M7N6MBFxi'] = False # (N); ; +Morison['M7N7MBFxi'] = False # (N); ; +Morison['M7N8MBFxi'] = False # (N); ; +Morison['M7N9MBFxi'] = False # (N); ; +Morison['M8N1MBFxi'] = False # (N); ; +Morison['M8N2MBFxi'] = False # (N); ; +Morison['M8N3MBFxi'] = False # (N); ; +Morison['M8N4MBFxi'] = False # (N); ; +Morison['M8N5MBFxi'] = False # (N); ; +Morison['M8N6MBFxi'] = False # (N); ; +Morison['M8N7MBFxi'] = False # (N); ; +Morison['M8N8MBFxi'] = False # (N); ; +Morison['M8N9MBFxi'] = False # (N); ; +Morison['M9N1MBFxi'] = False # (N); ; +Morison['M9N2MBFxi'] = False # (N); ; +Morison['M9N3MBFxi'] = False # (N); ; +Morison['M9N4MBFxi'] = False # (N); ; +Morison['M9N5MBFxi'] = False # (N); ; +Morison['M9N6MBFxi'] = False # (N); ; +Morison['M9N7MBFxi'] = False # (N); ; +Morison['M9N8MBFxi'] = False # (N); ; +Morison['M9N9MBFxi'] = False # (N); ; +Morison['M1N1MBFyi'] = False # (N); y-component of the distributed filled fluid bouyancy moment expressed in the inertial coordinate system; +Morison['M1N2MBFyi'] = False # (N); ; +Morison['M1N3MBFyi'] = False # (N); ; +Morison['M1N4MBFyi'] = False # (N); ; +Morison['M1N5MBFyi'] = False # (N); ; +Morison['M1N6MBFyi'] = False # (N); ; +Morison['M1N7MBFyi'] = False # (N); ; +Morison['M1N8MBFyi'] = False # (N); ; +Morison['M1N9MBFyi'] = False # (N); ; +Morison['M2N1MBFyi'] = False # (N); ; +Morison['M2N2MBFyi'] = False # (N); ; +Morison['M2N3MBFyi'] = False # (N); ; +Morison['M2N4MBFyi'] = False # (N); ; +Morison['M2N5MBFyi'] = False # (N); ; +Morison['M2N6MBFyi'] = False # (N); ; +Morison['M2N7MBFyi'] = False # (N); ; +Morison['M2N8MBFyi'] = False # (N); ; +Morison['M2N9MBFyi'] = False # (N); ; +Morison['M3N1MBFyi'] = False # (N); ; +Morison['M3N2MBFyi'] = False # (N); ; +Morison['M3N3MBFyi'] = False # (N); ; +Morison['M3N4MBFyi'] = False # (N); ; +Morison['M3N5MBFyi'] = False # (N); ; +Morison['M3N6MBFyi'] = False # (N); ; +Morison['M3N7MBFyi'] = False # (N); ; +Morison['M3N8MBFyi'] = False # (N); ; +Morison['M3N9MBFyi'] = False # (N); ; +Morison['M4N1MBFyi'] = False # (N); ; +Morison['M4N2MBFyi'] = False # (N); ; +Morison['M4N3MBFyi'] = False # (N); ; +Morison['M4N4MBFyi'] = False # (N); ; +Morison['M4N5MBFyi'] = False # (N); ; +Morison['M4N6MBFyi'] = False # (N); ; +Morison['M4N7MBFyi'] = False # (N); ; +Morison['M4N8MBFyi'] = False # (N); ; +Morison['M4N9MBFyi'] = False # (N); ; +Morison['M5N1MBFyi'] = False # (N); ; +Morison['M5N2MBFyi'] = False # (N); ; +Morison['M5N3MBFyi'] = False # (N); ; +Morison['M5N4MBFyi'] = False # (N); ; +Morison['M5N5MBFyi'] = False # (N); ; +Morison['M5N6MBFyi'] = False # (N); ; +Morison['M5N7MBFyi'] = False # (N); ; +Morison['M5N8MBFyi'] = False # (N); ; +Morison['M5N9MBFyi'] = False # (N); ; +Morison['M6N1MBFyi'] = False # (N); ; +Morison['M6N2MBFyi'] = False # (N); ; +Morison['M6N3MBFyi'] = False # (N); ; +Morison['M6N4MBFyi'] = False # (N); ; +Morison['M6N5MBFyi'] = False # (N); ; +Morison['M6N6MBFyi'] = False # (N); ; +Morison['M6N7MBFyi'] = False # (N); ; +Morison['M6N8MBFyi'] = False # (N); ; +Morison['M6N9MBFyi'] = False # (N); ; +Morison['M7N1MBFyi'] = False # (N); ; +Morison['M7N2MBFyi'] = False # (N); ; +Morison['M7N3MBFyi'] = False # (N); ; +Morison['M7N4MBFyi'] = False # (N); ; +Morison['M7N5MBFyi'] = False # (N); ; +Morison['M7N6MBFyi'] = False # (N); ; +Morison['M7N7MBFyi'] = False # (N); ; +Morison['M7N8MBFyi'] = False # (N); ; +Morison['M7N9MBFyi'] = False # (N); ; +Morison['M8N1MBFyi'] = False # (N); ; +Morison['M8N2MBFyi'] = False # (N); ; +Morison['M8N3MBFyi'] = False # (N); ; +Morison['M8N4MBFyi'] = False # (N); ; +Morison['M8N5MBFyi'] = False # (N); ; +Morison['M8N6MBFyi'] = False # (N); ; +Morison['M8N7MBFyi'] = False # (N); ; +Morison['M8N8MBFyi'] = False # (N); ; +Morison['M8N9MBFyi'] = False # (N); ; +Morison['M9N1MBFyi'] = False # (N); ; +Morison['M9N2MBFyi'] = False # (N); ; +Morison['M9N3MBFyi'] = False # (N); ; +Morison['M9N4MBFyi'] = False # (N); ; +Morison['M9N5MBFyi'] = False # (N); ; +Morison['M9N6MBFyi'] = False # (N); ; +Morison['M9N7MBFyi'] = False # (N); ; +Morison['M9N8MBFyi'] = False # (N); ; +Morison['M9N9MBFyi'] = False # (N); ; +Morison['M1N1MBFzi'] = False # (N); z-component of the distributed filled fluid bouyancy moment expressed in the inertial coordinate system; +Morison['M1N2MBFzi'] = False # (N); ; +Morison['M1N3MBFzi'] = False # (N); ; +Morison['M1N4MBFzi'] = False # (N); ; +Morison['M1N5MBFzi'] = False # (N); ; +Morison['M1N6MBFzi'] = False # (N); ; +Morison['M1N7MBFzi'] = False # (N); ; +Morison['M1N8MBFzi'] = False # (N); ; +Morison['M1N9MBFzi'] = False # (N); ; +Morison['M2N1MBFzi'] = False # (N); ; +Morison['M2N2MBFzi'] = False # (N); ; +Morison['M2N3MBFzi'] = False # (N); ; +Morison['M2N4MBFzi'] = False # (N); ; +Morison['M2N5MBFzi'] = False # (N); ; +Morison['M2N6MBFzi'] = False # (N); ; +Morison['M2N7MBFzi'] = False # (N); ; +Morison['M2N8MBFzi'] = False # (N); ; +Morison['M2N9MBFzi'] = False # (N); ; +Morison['M3N1MBFzi'] = False # (N); ; +Morison['M3N2MBFzi'] = False # (N); ; +Morison['M3N3MBFzi'] = False # (N); ; +Morison['M3N4MBFzi'] = False # (N); ; +Morison['M3N5MBFzi'] = False # (N); ; +Morison['M3N6MBFzi'] = False # (N); ; +Morison['M3N7MBFzi'] = False # (N); ; +Morison['M3N8MBFzi'] = False # (N); ; +Morison['M3N9MBFzi'] = False # (N); ; +Morison['M4N1MBFzi'] = False # (N); ; +Morison['M4N2MBFzi'] = False # (N); ; +Morison['M4N3MBFzi'] = False # (N); ; +Morison['M4N4MBFzi'] = False # (N); ; +Morison['M4N5MBFzi'] = False # (N); ; +Morison['M4N6MBFzi'] = False # (N); ; +Morison['M4N7MBFzi'] = False # (N); ; +Morison['M4N8MBFzi'] = False # (N); ; +Morison['M4N9MBFzi'] = False # (N); ; +Morison['M5N1MBFzi'] = False # (N); ; +Morison['M5N2MBFzi'] = False # (N); ; +Morison['M5N3MBFzi'] = False # (N); ; +Morison['M5N4MBFzi'] = False # (N); ; +Morison['M5N5MBFzi'] = False # (N); ; +Morison['M5N6MBFzi'] = False # (N); ; +Morison['M5N7MBFzi'] = False # (N); ; +Morison['M5N8MBFzi'] = False # (N); ; +Morison['M5N9MBFzi'] = False # (N); ; +Morison['M6N1MBFzi'] = False # (N); ; +Morison['M6N2MBFzi'] = False # (N); ; +Morison['M6N3MBFzi'] = False # (N); ; +Morison['M6N4MBFzi'] = False # (N); ; +Morison['M6N5MBFzi'] = False # (N); ; +Morison['M6N6MBFzi'] = False # (N); ; +Morison['M6N7MBFzi'] = False # (N); ; +Morison['M6N8MBFzi'] = False # (N); ; +Morison['M6N9MBFzi'] = False # (N); ; +Morison['M7N1MBFzi'] = False # (N); ; +Morison['M7N2MBFzi'] = False # (N); ; +Morison['M7N3MBFzi'] = False # (N); ; +Morison['M7N4MBFzi'] = False # (N); ; +Morison['M7N5MBFzi'] = False # (N); ; +Morison['M7N6MBFzi'] = False # (N); ; +Morison['M7N7MBFzi'] = False # (N); ; +Morison['M7N8MBFzi'] = False # (N); ; +Morison['M7N9MBFzi'] = False # (N); ; +Morison['M8N1MBFzi'] = False # (N); ; +Morison['M8N2MBFzi'] = False # (N); ; +Morison['M8N3MBFzi'] = False # (N); ; +Morison['M8N4MBFzi'] = False # (N); ; +Morison['M8N5MBFzi'] = False # (N); ; +Morison['M8N6MBFzi'] = False # (N); ; +Morison['M8N7MBFzi'] = False # (N); ; +Morison['M8N8MBFzi'] = False # (N); ; +Morison['M8N9MBFzi'] = False # (N); ; +Morison['M9N1MBFzi'] = False # (N); ; +Morison['M9N2MBFzi'] = False # (N); ; +Morison['M9N3MBFzi'] = False # (N); ; +Morison['M9N4MBFzi'] = False # (N); ; +Morison['M9N5MBFzi'] = False # (N); ; +Morison['M9N6MBFzi'] = False # (N); ; +Morison['M9N7MBFzi'] = False # (N); ; +Morison['M9N8MBFzi'] = False # (N); ; +Morison['M9N9MBFzi'] = False # (N); ; +Morison['M1N1FMGxi'] = False # (N/m); x-component of the distributed marine growth weight expressed in the inertial coordinate system; +Morison['M1N2FMGxi'] = False # (N/m); ; +Morison['M1N3FMGxi'] = False # (N/m); ; +Morison['M1N4FMGxi'] = False # (N/m); ; +Morison['M1N5FMGxi'] = False # (N/m); ; +Morison['M1N6FMGxi'] = False # (N/m); ; +Morison['M1N7FMGxi'] = False # (N/m); ; +Morison['M1N8FMGxi'] = False # (N/m); ; +Morison['M1N9FMGxi'] = False # (N/m); ; +Morison['M2N1FMGxi'] = False # (N/m); ; +Morison['M2N2FMGxi'] = False # (N/m); ; +Morison['M2N3FMGxi'] = False # (N/m); ; +Morison['M2N4FMGxi'] = False # (N/m); ; +Morison['M2N5FMGxi'] = False # (N/m); ; +Morison['M2N6FMGxi'] = False # (N/m); ; +Morison['M2N7FMGxi'] = False # (N/m); ; +Morison['M2N8FMGxi'] = False # (N/m); ; +Morison['M2N9FMGxi'] = False # (N/m); ; +Morison['M3N1FMGxi'] = False # (N/m); ; +Morison['M3N2FMGxi'] = False # (N/m); ; +Morison['M3N3FMGxi'] = False # (N/m); ; +Morison['M3N4FMGxi'] = False # (N/m); ; +Morison['M3N5FMGxi'] = False # (N/m); ; +Morison['M3N6FMGxi'] = False # (N/m); ; +Morison['M3N7FMGxi'] = False # (N/m); ; +Morison['M3N8FMGxi'] = False # (N/m); ; +Morison['M3N9FMGxi'] = False # (N/m); ; +Morison['M4N1FMGxi'] = False # (N/m); ; +Morison['M4N2FMGxi'] = False # (N/m); ; +Morison['M4N3FMGxi'] = False # (N/m); ; +Morison['M4N4FMGxi'] = False # (N/m); ; +Morison['M4N5FMGxi'] = False # (N/m); ; +Morison['M4N6FMGxi'] = False # (N/m); ; +Morison['M4N7FMGxi'] = False # (N/m); ; +Morison['M4N8FMGxi'] = False # (N/m); ; +Morison['M4N9FMGxi'] = False # (N/m); ; +Morison['M5N1FMGxi'] = False # (N/m); ; +Morison['M5N2FMGxi'] = False # (N/m); ; +Morison['M5N3FMGxi'] = False # (N/m); ; +Morison['M5N4FMGxi'] = False # (N/m); ; +Morison['M5N5FMGxi'] = False # (N/m); ; +Morison['M5N6FMGxi'] = False # (N/m); ; +Morison['M5N7FMGxi'] = False # (N/m); ; +Morison['M5N8FMGxi'] = False # (N/m); ; +Morison['M5N9FMGxi'] = False # (N/m); ; +Morison['M6N1FMGxi'] = False # (N/m); ; +Morison['M6N2FMGxi'] = False # (N/m); ; +Morison['M6N3FMGxi'] = False # (N/m); ; +Morison['M6N4FMGxi'] = False # (N/m); ; +Morison['M6N5FMGxi'] = False # (N/m); ; +Morison['M6N6FMGxi'] = False # (N/m); ; +Morison['M6N7FMGxi'] = False # (N/m); ; +Morison['M6N8FMGxi'] = False # (N/m); ; +Morison['M6N9FMGxi'] = False # (N/m); ; +Morison['M7N1FMGxi'] = False # (N/m); ; +Morison['M7N2FMGxi'] = False # (N/m); ; +Morison['M7N3FMGxi'] = False # (N/m); ; +Morison['M7N4FMGxi'] = False # (N/m); ; +Morison['M7N5FMGxi'] = False # (N/m); ; +Morison['M7N6FMGxi'] = False # (N/m); ; +Morison['M7N7FMGxi'] = False # (N/m); ; +Morison['M7N8FMGxi'] = False # (N/m); ; +Morison['M7N9FMGxi'] = False # (N/m); ; +Morison['M8N1FMGxi'] = False # (N/m); ; +Morison['M8N2FMGxi'] = False # (N/m); ; +Morison['M8N3FMGxi'] = False # (N/m); ; +Morison['M8N4FMGxi'] = False # (N/m); ; +Morison['M8N5FMGxi'] = False # (N/m); ; +Morison['M8N6FMGxi'] = False # (N/m); ; +Morison['M8N7FMGxi'] = False # (N/m); ; +Morison['M8N8FMGxi'] = False # (N/m); ; +Morison['M8N9FMGxi'] = False # (N/m); ; +Morison['M9N1FMGxi'] = False # (N/m); ; +Morison['M9N2FMGxi'] = False # (N/m); ; +Morison['M9N3FMGxi'] = False # (N/m); ; +Morison['M9N4FMGxi'] = False # (N/m); ; +Morison['M9N5FMGxi'] = False # (N/m); ; +Morison['M9N6FMGxi'] = False # (N/m); ; +Morison['M9N7FMGxi'] = False # (N/m); ; +Morison['M9N8FMGxi'] = False # (N/m); ; +Morison['M9N9FMGxi'] = False # (N/m); ; +Morison['M1N1FMGyi'] = False # (N/m); y-component of the distributed marine growth weight expressed in the inertial coordinate system; +Morison['M1N2FMGyi'] = False # (N/m); ; +Morison['M1N3FMGyi'] = False # (N/m); ; +Morison['M1N4FMGyi'] = False # (N/m); ; +Morison['M1N5FMGyi'] = False # (N/m); ; +Morison['M1N6FMGyi'] = False # (N/m); ; +Morison['M1N7FMGyi'] = False # (N/m); ; +Morison['M1N8FMGyi'] = False # (N/m); ; +Morison['M1N9FMGyi'] = False # (N/m); ; +Morison['M2N1FMGyi'] = False # (N/m); ; +Morison['M2N2FMGyi'] = False # (N/m); ; +Morison['M2N3FMGyi'] = False # (N/m); ; +Morison['M2N4FMGyi'] = False # (N/m); ; +Morison['M2N5FMGyi'] = False # (N/m); ; +Morison['M2N6FMGyi'] = False # (N/m); ; +Morison['M2N7FMGyi'] = False # (N/m); ; +Morison['M2N8FMGyi'] = False # (N/m); ; +Morison['M2N9FMGyi'] = False # (N/m); ; +Morison['M3N1FMGyi'] = False # (N/m); ; +Morison['M3N2FMGyi'] = False # (N/m); ; +Morison['M3N3FMGyi'] = False # (N/m); ; +Morison['M3N4FMGyi'] = False # (N/m); ; +Morison['M3N5FMGyi'] = False # (N/m); ; +Morison['M3N6FMGyi'] = False # (N/m); ; +Morison['M3N7FMGyi'] = False # (N/m); ; +Morison['M3N8FMGyi'] = False # (N/m); ; +Morison['M3N9FMGyi'] = False # (N/m); ; +Morison['M4N1FMGyi'] = False # (N/m); ; +Morison['M4N2FMGyi'] = False # (N/m); ; +Morison['M4N3FMGyi'] = False # (N/m); ; +Morison['M4N4FMGyi'] = False # (N/m); ; +Morison['M4N5FMGyi'] = False # (N/m); ; +Morison['M4N6FMGyi'] = False # (N/m); ; +Morison['M4N7FMGyi'] = False # (N/m); ; +Morison['M4N8FMGyi'] = False # (N/m); ; +Morison['M4N9FMGyi'] = False # (N/m); ; +Morison['M5N1FMGyi'] = False # (N/m); ; +Morison['M5N2FMGyi'] = False # (N/m); ; +Morison['M5N3FMGyi'] = False # (N/m); ; +Morison['M5N4FMGyi'] = False # (N/m); ; +Morison['M5N5FMGyi'] = False # (N/m); ; +Morison['M5N6FMGyi'] = False # (N/m); ; +Morison['M5N7FMGyi'] = False # (N/m); ; +Morison['M5N8FMGyi'] = False # (N/m); ; +Morison['M5N9FMGyi'] = False # (N/m); ; +Morison['M6N1FMGyi'] = False # (N/m); ; +Morison['M6N2FMGyi'] = False # (N/m); ; +Morison['M6N3FMGyi'] = False # (N/m); ; +Morison['M6N4FMGyi'] = False # (N/m); ; +Morison['M6N5FMGyi'] = False # (N/m); ; +Morison['M6N6FMGyi'] = False # (N/m); ; +Morison['M6N7FMGyi'] = False # (N/m); ; +Morison['M6N8FMGyi'] = False # (N/m); ; +Morison['M6N9FMGyi'] = False # (N/m); ; +Morison['M7N1FMGyi'] = False # (N/m); ; +Morison['M7N2FMGyi'] = False # (N/m); ; +Morison['M7N3FMGyi'] = False # (N/m); ; +Morison['M7N4FMGyi'] = False # (N/m); ; +Morison['M7N5FMGyi'] = False # (N/m); ; +Morison['M7N6FMGyi'] = False # (N/m); ; +Morison['M7N7FMGyi'] = False # (N/m); ; +Morison['M7N8FMGyi'] = False # (N/m); ; +Morison['M7N9FMGyi'] = False # (N/m); ; +Morison['M8N1FMGyi'] = False # (N/m); ; +Morison['M8N2FMGyi'] = False # (N/m); ; +Morison['M8N3FMGyi'] = False # (N/m); ; +Morison['M8N4FMGyi'] = False # (N/m); ; +Morison['M8N5FMGyi'] = False # (N/m); ; +Morison['M8N6FMGyi'] = False # (N/m); ; +Morison['M8N7FMGyi'] = False # (N/m); ; +Morison['M8N8FMGyi'] = False # (N/m); ; +Morison['M8N9FMGyi'] = False # (N/m); ; +Morison['M9N1FMGyi'] = False # (N/m); ; +Morison['M9N2FMGyi'] = False # (N/m); ; +Morison['M9N3FMGyi'] = False # (N/m); ; +Morison['M9N4FMGyi'] = False # (N/m); ; +Morison['M9N5FMGyi'] = False # (N/m); ; +Morison['M9N6FMGyi'] = False # (N/m); ; +Morison['M9N7FMGyi'] = False # (N/m); ; +Morison['M9N8FMGyi'] = False # (N/m); ; +Morison['M9N9FMGyi'] = False # (N/m); ; +Morison['M1N1FMGzi'] = False # (N/m); z-component of the distributed marine growth weight expressed in the inertial coordinate system; +Morison['M1N2FMGzi'] = False # (N/m); ; +Morison['M1N3FMGzi'] = False # (N/m); ; +Morison['M1N4FMGzi'] = False # (N/m); ; +Morison['M1N5FMGzi'] = False # (N/m); ; +Morison['M1N6FMGzi'] = False # (N/m); ; +Morison['M1N7FMGzi'] = False # (N/m); ; +Morison['M1N8FMGzi'] = False # (N/m); ; +Morison['M1N9FMGzi'] = False # (N/m); ; +Morison['M2N1FMGzi'] = False # (N/m); ; +Morison['M2N2FMGzi'] = False # (N/m); ; +Morison['M2N3FMGzi'] = False # (N/m); ; +Morison['M2N4FMGzi'] = False # (N/m); ; +Morison['M2N5FMGzi'] = False # (N/m); ; +Morison['M2N6FMGzi'] = False # (N/m); ; +Morison['M2N7FMGzi'] = False # (N/m); ; +Morison['M2N8FMGzi'] = False # (N/m); ; +Morison['M2N9FMGzi'] = False # (N/m); ; +Morison['M3N1FMGzi'] = False # (N/m); ; +Morison['M3N2FMGzi'] = False # (N/m); ; +Morison['M3N3FMGzi'] = False # (N/m); ; +Morison['M3N4FMGzi'] = False # (N/m); ; +Morison['M3N5FMGzi'] = False # (N/m); ; +Morison['M3N6FMGzi'] = False # (N/m); ; +Morison['M3N7FMGzi'] = False # (N/m); ; +Morison['M3N8FMGzi'] = False # (N/m); ; +Morison['M3N9FMGzi'] = False # (N/m); ; +Morison['M4N1FMGzi'] = False # (N/m); ; +Morison['M4N2FMGzi'] = False # (N/m); ; +Morison['M4N3FMGzi'] = False # (N/m); ; +Morison['M4N4FMGzi'] = False # (N/m); ; +Morison['M4N5FMGzi'] = False # (N/m); ; +Morison['M4N6FMGzi'] = False # (N/m); ; +Morison['M4N7FMGzi'] = False # (N/m); ; +Morison['M4N8FMGzi'] = False # (N/m); ; +Morison['M4N9FMGzi'] = False # (N/m); ; +Morison['M5N1FMGzi'] = False # (N/m); ; +Morison['M5N2FMGzi'] = False # (N/m); ; +Morison['M5N3FMGzi'] = False # (N/m); ; +Morison['M5N4FMGzi'] = False # (N/m); ; +Morison['M5N5FMGzi'] = False # (N/m); ; +Morison['M5N6FMGzi'] = False # (N/m); ; +Morison['M5N7FMGzi'] = False # (N/m); ; +Morison['M5N8FMGzi'] = False # (N/m); ; +Morison['M5N9FMGzi'] = False # (N/m); ; +Morison['M6N1FMGzi'] = False # (N/m); ; +Morison['M6N2FMGzi'] = False # (N/m); ; +Morison['M6N3FMGzi'] = False # (N/m); ; +Morison['M6N4FMGzi'] = False # (N/m); ; +Morison['M6N5FMGzi'] = False # (N/m); ; +Morison['M6N6FMGzi'] = False # (N/m); ; +Morison['M6N7FMGzi'] = False # (N/m); ; +Morison['M6N8FMGzi'] = False # (N/m); ; +Morison['M6N9FMGzi'] = False # (N/m); ; +Morison['M7N1FMGzi'] = False # (N/m); ; +Morison['M7N2FMGzi'] = False # (N/m); ; +Morison['M7N3FMGzi'] = False # (N/m); ; +Morison['M7N4FMGzi'] = False # (N/m); ; +Morison['M7N5FMGzi'] = False # (N/m); ; +Morison['M7N6FMGzi'] = False # (N/m); ; +Morison['M7N7FMGzi'] = False # (N/m); ; +Morison['M7N8FMGzi'] = False # (N/m); ; +Morison['M7N9FMGzi'] = False # (N/m); ; +Morison['M8N1FMGzi'] = False # (N/m); ; +Morison['M8N2FMGzi'] = False # (N/m); ; +Morison['M8N3FMGzi'] = False # (N/m); ; +Morison['M8N4FMGzi'] = False # (N/m); ; +Morison['M8N5FMGzi'] = False # (N/m); ; +Morison['M8N6FMGzi'] = False # (N/m); ; +Morison['M8N7FMGzi'] = False # (N/m); ; +Morison['M8N8FMGzi'] = False # (N/m); ; +Morison['M8N9FMGzi'] = False # (N/m); ; +Morison['M9N1FMGzi'] = False # (N/m); ; +Morison['M9N2FMGzi'] = False # (N/m); ; +Morison['M9N3FMGzi'] = False # (N/m); ; +Morison['M9N4FMGzi'] = False # (N/m); ; +Morison['M9N5FMGzi'] = False # (N/m); ; +Morison['M9N6FMGzi'] = False # (N/m); ; +Morison['M9N7FMGzi'] = False # (N/m); ; +Morison['M9N8FMGzi'] = False # (N/m); ; +Morison['M9N9FMGzi'] = False # (N/m); ; +Morison['M1N1FAMxi'] = False # (N/m); x-component of the distributed added mass force due to the member's displacement of the external fluid, expressed in the inertial coordinate system; +Morison['M1N2FAMxi'] = False # (N/m); ; +Morison['M1N3FAMxi'] = False # (N/m); ; +Morison['M1N4FAMxi'] = False # (N/m); ; +Morison['M1N5FAMxi'] = False # (N/m); ; +Morison['M1N6FAMxi'] = False # (N/m); ; +Morison['M1N7FAMxi'] = False # (N/m); ; +Morison['M1N8FAMxi'] = False # (N/m); ; +Morison['M1N9FAMxi'] = False # (N/m); ; +Morison['M2N1FAMxi'] = False # (N/m); ; +Morison['M2N2FAMxi'] = False # (N/m); ; +Morison['M2N3FAMxi'] = False # (N/m); ; +Morison['M2N4FAMxi'] = False # (N/m); ; +Morison['M2N5FAMxi'] = False # (N/m); ; +Morison['M2N6FAMxi'] = False # (N/m); ; +Morison['M2N7FAMxi'] = False # (N/m); ; +Morison['M2N8FAMxi'] = False # (N/m); ; +Morison['M2N9FAMxi'] = False # (N/m); ; +Morison['M3N1FAMxi'] = False # (N/m); ; +Morison['M3N2FAMxi'] = False # (N/m); ; +Morison['M3N3FAMxi'] = False # (N/m); ; +Morison['M3N4FAMxi'] = False # (N/m); ; +Morison['M3N5FAMxi'] = False # (N/m); ; +Morison['M3N6FAMxi'] = False # (N/m); ; +Morison['M3N7FAMxi'] = False # (N/m); ; +Morison['M3N8FAMxi'] = False # (N/m); ; +Morison['M3N9FAMxi'] = False # (N/m); ; +Morison['M4N1FAMxi'] = False # (N/m); ; +Morison['M4N2FAMxi'] = False # (N/m); ; +Morison['M4N3FAMxi'] = False # (N/m); ; +Morison['M4N4FAMxi'] = False # (N/m); ; +Morison['M4N5FAMxi'] = False # (N/m); ; +Morison['M4N6FAMxi'] = False # (N/m); ; +Morison['M4N7FAMxi'] = False # (N/m); ; +Morison['M4N8FAMxi'] = False # (N/m); ; +Morison['M4N9FAMxi'] = False # (N/m); ; +Morison['M5N1FAMxi'] = False # (N/m); ; +Morison['M5N2FAMxi'] = False # (N/m); ; +Morison['M5N3FAMxi'] = False # (N/m); ; +Morison['M5N4FAMxi'] = False # (N/m); ; +Morison['M5N5FAMxi'] = False # (N/m); ; +Morison['M5N6FAMxi'] = False # (N/m); ; +Morison['M5N7FAMxi'] = False # (N/m); ; +Morison['M5N8FAMxi'] = False # (N/m); ; +Morison['M5N9FAMxi'] = False # (N/m); ; +Morison['M6N1FAMxi'] = False # (N/m); ; +Morison['M6N2FAMxi'] = False # (N/m); ; +Morison['M6N3FAMxi'] = False # (N/m); ; +Morison['M6N4FAMxi'] = False # (N/m); ; +Morison['M6N5FAMxi'] = False # (N/m); ; +Morison['M6N6FAMxi'] = False # (N/m); ; +Morison['M6N7FAMxi'] = False # (N/m); ; +Morison['M6N8FAMxi'] = False # (N/m); ; +Morison['M6N9FAMxi'] = False # (N/m); ; +Morison['M7N1FAMxi'] = False # (N/m); ; +Morison['M7N2FAMxi'] = False # (N/m); ; +Morison['M7N3FAMxi'] = False # (N/m); ; +Morison['M7N4FAMxi'] = False # (N/m); ; +Morison['M7N5FAMxi'] = False # (N/m); ; +Morison['M7N6FAMxi'] = False # (N/m); ; +Morison['M7N7FAMxi'] = False # (N/m); ; +Morison['M7N8FAMxi'] = False # (N/m); ; +Morison['M7N9FAMxi'] = False # (N/m); ; +Morison['M8N1FAMxi'] = False # (N/m); ; +Morison['M8N2FAMxi'] = False # (N/m); ; +Morison['M8N3FAMxi'] = False # (N/m); ; +Morison['M8N4FAMxi'] = False # (N/m); ; +Morison['M8N5FAMxi'] = False # (N/m); ; +Morison['M8N6FAMxi'] = False # (N/m); ; +Morison['M8N7FAMxi'] = False # (N/m); ; +Morison['M8N8FAMxi'] = False # (N/m); ; +Morison['M8N9FAMxi'] = False # (N/m); ; +Morison['M9N1FAMxi'] = False # (N/m); ; +Morison['M9N2FAMxi'] = False # (N/m); ; +Morison['M9N3FAMxi'] = False # (N/m); ; +Morison['M9N4FAMxi'] = False # (N/m); ; +Morison['M9N5FAMxi'] = False # (N/m); ; +Morison['M9N6FAMxi'] = False # (N/m); ; +Morison['M9N7FAMxi'] = False # (N/m); ; +Morison['M9N8FAMxi'] = False # (N/m); ; +Morison['M9N9FAMxi'] = False # (N/m); ; +Morison['M1N1FAMyi'] = False # (N/m); y-component of the distributed added mass force due to the member's displacement of the external fluid, expressed in the inertial coordinate system; +Morison['M1N2FAMyi'] = False # (N/m); ; +Morison['M1N3FAMyi'] = False # (N/m); ; +Morison['M1N4FAMyi'] = False # (N/m); ; +Morison['M1N5FAMyi'] = False # (N/m); ; +Morison['M1N6FAMyi'] = False # (N/m); ; +Morison['M1N7FAMyi'] = False # (N/m); ; +Morison['M1N8FAMyi'] = False # (N/m); ; +Morison['M1N9FAMyi'] = False # (N/m); ; +Morison['M2N1FAMyi'] = False # (N/m); ; +Morison['M2N2FAMyi'] = False # (N/m); ; +Morison['M2N3FAMyi'] = False # (N/m); ; +Morison['M2N4FAMyi'] = False # (N/m); ; +Morison['M2N5FAMyi'] = False # (N/m); ; +Morison['M2N6FAMyi'] = False # (N/m); ; +Morison['M2N7FAMyi'] = False # (N/m); ; +Morison['M2N8FAMyi'] = False # (N/m); ; +Morison['M2N9FAMyi'] = False # (N/m); ; +Morison['M3N1FAMyi'] = False # (N/m); ; +Morison['M3N2FAMyi'] = False # (N/m); ; +Morison['M3N3FAMyi'] = False # (N/m); ; +Morison['M3N4FAMyi'] = False # (N/m); ; +Morison['M3N5FAMyi'] = False # (N/m); ; +Morison['M3N6FAMyi'] = False # (N/m); ; +Morison['M3N7FAMyi'] = False # (N/m); ; +Morison['M3N8FAMyi'] = False # (N/m); ; +Morison['M3N9FAMyi'] = False # (N/m); ; +Morison['M4N1FAMyi'] = False # (N/m); ; +Morison['M4N2FAMyi'] = False # (N/m); ; +Morison['M4N3FAMyi'] = False # (N/m); ; +Morison['M4N4FAMyi'] = False # (N/m); ; +Morison['M4N5FAMyi'] = False # (N/m); ; +Morison['M4N6FAMyi'] = False # (N/m); ; +Morison['M4N7FAMyi'] = False # (N/m); ; +Morison['M4N8FAMyi'] = False # (N/m); ; +Morison['M4N9FAMyi'] = False # (N/m); ; +Morison['M5N1FAMyi'] = False # (N/m); ; +Morison['M5N2FAMyi'] = False # (N/m); ; +Morison['M5N3FAMyi'] = False # (N/m); ; +Morison['M5N4FAMyi'] = False # (N/m); ; +Morison['M5N5FAMyi'] = False # (N/m); ; +Morison['M5N6FAMyi'] = False # (N/m); ; +Morison['M5N7FAMyi'] = False # (N/m); ; +Morison['M5N8FAMyi'] = False # (N/m); ; +Morison['M5N9FAMyi'] = False # (N/m); ; +Morison['M6N1FAMyi'] = False # (N/m); ; +Morison['M6N2FAMyi'] = False # (N/m); ; +Morison['M6N3FAMyi'] = False # (N/m); ; +Morison['M6N4FAMyi'] = False # (N/m); ; +Morison['M6N5FAMyi'] = False # (N/m); ; +Morison['M6N6FAMyi'] = False # (N/m); ; +Morison['M6N7FAMyi'] = False # (N/m); ; +Morison['M6N8FAMyi'] = False # (N/m); ; +Morison['M6N9FAMyi'] = False # (N/m); ; +Morison['M7N1FAMyi'] = False # (N/m); ; +Morison['M7N2FAMyi'] = False # (N/m); ; +Morison['M7N3FAMyi'] = False # (N/m); ; +Morison['M7N4FAMyi'] = False # (N/m); ; +Morison['M7N5FAMyi'] = False # (N/m); ; +Morison['M7N6FAMyi'] = False # (N/m); ; +Morison['M7N7FAMyi'] = False # (N/m); ; +Morison['M7N8FAMyi'] = False # (N/m); ; +Morison['M7N9FAMyi'] = False # (N/m); ; +Morison['M8N1FAMyi'] = False # (N/m); ; +Morison['M8N2FAMyi'] = False # (N/m); ; +Morison['M8N3FAMyi'] = False # (N/m); ; +Morison['M8N4FAMyi'] = False # (N/m); ; +Morison['M8N5FAMyi'] = False # (N/m); ; +Morison['M8N6FAMyi'] = False # (N/m); ; +Morison['M8N7FAMyi'] = False # (N/m); ; +Morison['M8N8FAMyi'] = False # (N/m); ; +Morison['M8N9FAMyi'] = False # (N/m); ; +Morison['M9N1FAMyi'] = False # (N/m); ; +Morison['M9N2FAMyi'] = False # (N/m); ; +Morison['M9N3FAMyi'] = False # (N/m); ; +Morison['M9N4FAMyi'] = False # (N/m); ; +Morison['M9N5FAMyi'] = False # (N/m); ; +Morison['M9N6FAMyi'] = False # (N/m); ; +Morison['M9N7FAMyi'] = False # (N/m); ; +Morison['M9N8FAMyi'] = False # (N/m); ; +Morison['M9N9FAMyi'] = False # (N/m); ; +Morison['M1N1FAMzi'] = False # (N/m); z-component of the distributed added mass force due to the member's displacement of the external fluid, expressed in the inertial coordinate system; +Morison['M1N2FAMzi'] = False # (N/m); ; +Morison['M1N3FAMzi'] = False # (N/m); ; +Morison['M1N4FAMzi'] = False # (N/m); ; +Morison['M1N5FAMzi'] = False # (N/m); ; +Morison['M1N6FAMzi'] = False # (N/m); ; +Morison['M1N7FAMzi'] = False # (N/m); ; +Morison['M1N8FAMzi'] = False # (N/m); ; +Morison['M1N9FAMzi'] = False # (N/m); ; +Morison['M2N1FAMzi'] = False # (N/m); ; +Morison['M2N2FAMzi'] = False # (N/m); ; +Morison['M2N3FAMzi'] = False # (N/m); ; +Morison['M2N4FAMzi'] = False # (N/m); ; +Morison['M2N5FAMzi'] = False # (N/m); ; +Morison['M2N6FAMzi'] = False # (N/m); ; +Morison['M2N7FAMzi'] = False # (N/m); ; +Morison['M2N8FAMzi'] = False # (N/m); ; +Morison['M2N9FAMzi'] = False # (N/m); ; +Morison['M3N1FAMzi'] = False # (N/m); ; +Morison['M3N2FAMzi'] = False # (N/m); ; +Morison['M3N3FAMzi'] = False # (N/m); ; +Morison['M3N4FAMzi'] = False # (N/m); ; +Morison['M3N5FAMzi'] = False # (N/m); ; +Morison['M3N6FAMzi'] = False # (N/m); ; +Morison['M3N7FAMzi'] = False # (N/m); ; +Morison['M3N8FAMzi'] = False # (N/m); ; +Morison['M3N9FAMzi'] = False # (N/m); ; +Morison['M4N1FAMzi'] = False # (N/m); ; +Morison['M4N2FAMzi'] = False # (N/m); ; +Morison['M4N3FAMzi'] = False # (N/m); ; +Morison['M4N4FAMzi'] = False # (N/m); ; +Morison['M4N5FAMzi'] = False # (N/m); ; +Morison['M4N6FAMzi'] = False # (N/m); ; +Morison['M4N7FAMzi'] = False # (N/m); ; +Morison['M4N8FAMzi'] = False # (N/m); ; +Morison['M4N9FAMzi'] = False # (N/m); ; +Morison['M5N1FAMzi'] = False # (N/m); ; +Morison['M5N2FAMzi'] = False # (N/m); ; +Morison['M5N3FAMzi'] = False # (N/m); ; +Morison['M5N4FAMzi'] = False # (N/m); ; +Morison['M5N5FAMzi'] = False # (N/m); ; +Morison['M5N6FAMzi'] = False # (N/m); ; +Morison['M5N7FAMzi'] = False # (N/m); ; +Morison['M5N8FAMzi'] = False # (N/m); ; +Morison['M5N9FAMzi'] = False # (N/m); ; +Morison['M6N1FAMzi'] = False # (N/m); ; +Morison['M6N2FAMzi'] = False # (N/m); ; +Morison['M6N3FAMzi'] = False # (N/m); ; +Morison['M6N4FAMzi'] = False # (N/m); ; +Morison['M6N5FAMzi'] = False # (N/m); ; +Morison['M6N6FAMzi'] = False # (N/m); ; +Morison['M6N7FAMzi'] = False # (N/m); ; +Morison['M6N8FAMzi'] = False # (N/m); ; +Morison['M6N9FAMzi'] = False # (N/m); ; +Morison['M7N1FAMzi'] = False # (N/m); ; +Morison['M7N2FAMzi'] = False # (N/m); ; +Morison['M7N3FAMzi'] = False # (N/m); ; +Morison['M7N4FAMzi'] = False # (N/m); ; +Morison['M7N5FAMzi'] = False # (N/m); ; +Morison['M7N6FAMzi'] = False # (N/m); ; +Morison['M7N7FAMzi'] = False # (N/m); ; +Morison['M7N8FAMzi'] = False # (N/m); ; +Morison['M7N9FAMzi'] = False # (N/m); ; +Morison['M8N1FAMzi'] = False # (N/m); ; +Morison['M8N2FAMzi'] = False # (N/m); ; +Morison['M8N3FAMzi'] = False # (N/m); ; +Morison['M8N4FAMzi'] = False # (N/m); ; +Morison['M8N5FAMzi'] = False # (N/m); ; +Morison['M8N6FAMzi'] = False # (N/m); ; +Morison['M8N7FAMzi'] = False # (N/m); ; +Morison['M8N8FAMzi'] = False # (N/m); ; +Morison['M8N9FAMzi'] = False # (N/m); ; +Morison['M9N1FAMzi'] = False # (N/m); ; +Morison['M9N2FAMzi'] = False # (N/m); ; +Morison['M9N3FAMzi'] = False # (N/m); ; +Morison['M9N4FAMzi'] = False # (N/m); ; +Morison['M9N5FAMzi'] = False # (N/m); ; +Morison['M9N6FAMzi'] = False # (N/m); ; +Morison['M9N7FAMzi'] = False # (N/m); ; +Morison['M9N8FAMzi'] = False # (N/m); ; +Morison['M9N9FAMzi'] = False # (N/m); ; +Morison['M1N1FAGxi'] = False # (N/m); x-component of the distributed added mass force due to the marine growth, expressed in the inertial coordinate system; +Morison['M1N2FAGxi'] = False # (N/m); ; +Morison['M1N3FAGxi'] = False # (N/m); ; +Morison['M1N4FAGxi'] = False # (N/m); ; +Morison['M1N5FAGxi'] = False # (N/m); ; +Morison['M1N6FAGxi'] = False # (N/m); ; +Morison['M1N7FAGxi'] = False # (N/m); ; +Morison['M1N8FAGxi'] = False # (N/m); ; +Morison['M1N9FAGxi'] = False # (N/m); ; +Morison['M2N1FAGxi'] = False # (N/m); ; +Morison['M2N2FAGxi'] = False # (N/m); ; +Morison['M2N3FAGxi'] = False # (N/m); ; +Morison['M2N4FAGxi'] = False # (N/m); ; +Morison['M2N5FAGxi'] = False # (N/m); ; +Morison['M2N6FAGxi'] = False # (N/m); ; +Morison['M2N7FAGxi'] = False # (N/m); ; +Morison['M2N8FAGxi'] = False # (N/m); ; +Morison['M2N9FAGxi'] = False # (N/m); ; +Morison['M3N1FAGxi'] = False # (N/m); ; +Morison['M3N2FAGxi'] = False # (N/m); ; +Morison['M3N3FAGxi'] = False # (N/m); ; +Morison['M3N4FAGxi'] = False # (N/m); ; +Morison['M3N5FAGxi'] = False # (N/m); ; +Morison['M3N6FAGxi'] = False # (N/m); ; +Morison['M3N7FAGxi'] = False # (N/m); ; +Morison['M3N8FAGxi'] = False # (N/m); ; +Morison['M3N9FAGxi'] = False # (N/m); ; +Morison['M4N1FAGxi'] = False # (N/m); ; +Morison['M4N2FAGxi'] = False # (N/m); ; +Morison['M4N3FAGxi'] = False # (N/m); ; +Morison['M4N4FAGxi'] = False # (N/m); ; +Morison['M4N5FAGxi'] = False # (N/m); ; +Morison['M4N6FAGxi'] = False # (N/m); ; +Morison['M4N7FAGxi'] = False # (N/m); ; +Morison['M4N8FAGxi'] = False # (N/m); ; +Morison['M4N9FAGxi'] = False # (N/m); ; +Morison['M5N1FAGxi'] = False # (N/m); ; +Morison['M5N2FAGxi'] = False # (N/m); ; +Morison['M5N3FAGxi'] = False # (N/m); ; +Morison['M5N4FAGxi'] = False # (N/m); ; +Morison['M5N5FAGxi'] = False # (N/m); ; +Morison['M5N6FAGxi'] = False # (N/m); ; +Morison['M5N7FAGxi'] = False # (N/m); ; +Morison['M5N8FAGxi'] = False # (N/m); ; +Morison['M5N9FAGxi'] = False # (N/m); ; +Morison['M6N1FAGxi'] = False # (N/m); ; +Morison['M6N2FAGxi'] = False # (N/m); ; +Morison['M6N3FAGxi'] = False # (N/m); ; +Morison['M6N4FAGxi'] = False # (N/m); ; +Morison['M6N5FAGxi'] = False # (N/m); ; +Morison['M6N6FAGxi'] = False # (N/m); ; +Morison['M6N7FAGxi'] = False # (N/m); ; +Morison['M6N8FAGxi'] = False # (N/m); ; +Morison['M6N9FAGxi'] = False # (N/m); ; +Morison['M7N1FAGxi'] = False # (N/m); ; +Morison['M7N2FAGxi'] = False # (N/m); ; +Morison['M7N3FAGxi'] = False # (N/m); ; +Morison['M7N4FAGxi'] = False # (N/m); ; +Morison['M7N5FAGxi'] = False # (N/m); ; +Morison['M7N6FAGxi'] = False # (N/m); ; +Morison['M7N7FAGxi'] = False # (N/m); ; +Morison['M7N8FAGxi'] = False # (N/m); ; +Morison['M7N9FAGxi'] = False # (N/m); ; +Morison['M8N1FAGxi'] = False # (N/m); ; +Morison['M8N2FAGxi'] = False # (N/m); ; +Morison['M8N3FAGxi'] = False # (N/m); ; +Morison['M8N4FAGxi'] = False # (N/m); ; +Morison['M8N5FAGxi'] = False # (N/m); ; +Morison['M8N6FAGxi'] = False # (N/m); ; +Morison['M8N7FAGxi'] = False # (N/m); ; +Morison['M8N8FAGxi'] = False # (N/m); ; +Morison['M8N9FAGxi'] = False # (N/m); ; +Morison['M9N1FAGxi'] = False # (N/m); ; +Morison['M9N2FAGxi'] = False # (N/m); ; +Morison['M9N3FAGxi'] = False # (N/m); ; +Morison['M9N4FAGxi'] = False # (N/m); ; +Morison['M9N5FAGxi'] = False # (N/m); ; +Morison['M9N6FAGxi'] = False # (N/m); ; +Morison['M9N7FAGxi'] = False # (N/m); ; +Morison['M9N8FAGxi'] = False # (N/m); ; +Morison['M9N9FAGxi'] = False # (N/m); ; +Morison['M1N1FAGyi'] = False # (N/m); y-component of the distributed added mass force due to the marine growth, expressed in the inertial coordinate system; +Morison['M1N2FAGyi'] = False # (N/m); ; +Morison['M1N3FAGyi'] = False # (N/m); ; +Morison['M1N4FAGyi'] = False # (N/m); ; +Morison['M1N5FAGyi'] = False # (N/m); ; +Morison['M1N6FAGyi'] = False # (N/m); ; +Morison['M1N7FAGyi'] = False # (N/m); ; +Morison['M1N8FAGyi'] = False # (N/m); ; +Morison['M1N9FAGyi'] = False # (N/m); ; +Morison['M2N1FAGyi'] = False # (N/m); ; +Morison['M2N2FAGyi'] = False # (N/m); ; +Morison['M2N3FAGyi'] = False # (N/m); ; +Morison['M2N4FAGyi'] = False # (N/m); ; +Morison['M2N5FAGyi'] = False # (N/m); ; +Morison['M2N6FAGyi'] = False # (N/m); ; +Morison['M2N7FAGyi'] = False # (N/m); ; +Morison['M2N8FAGyi'] = False # (N/m); ; +Morison['M2N9FAGyi'] = False # (N/m); ; +Morison['M3N1FAGyi'] = False # (N/m); ; +Morison['M3N2FAGyi'] = False # (N/m); ; +Morison['M3N3FAGyi'] = False # (N/m); ; +Morison['M3N4FAGyi'] = False # (N/m); ; +Morison['M3N5FAGyi'] = False # (N/m); ; +Morison['M3N6FAGyi'] = False # (N/m); ; +Morison['M3N7FAGyi'] = False # (N/m); ; +Morison['M3N8FAGyi'] = False # (N/m); ; +Morison['M3N9FAGyi'] = False # (N/m); ; +Morison['M4N1FAGyi'] = False # (N/m); ; +Morison['M4N2FAGyi'] = False # (N/m); ; +Morison['M4N3FAGyi'] = False # (N/m); ; +Morison['M4N4FAGyi'] = False # (N/m); ; +Morison['M4N5FAGyi'] = False # (N/m); ; +Morison['M4N6FAGyi'] = False # (N/m); ; +Morison['M4N7FAGyi'] = False # (N/m); ; +Morison['M4N8FAGyi'] = False # (N/m); ; +Morison['M4N9FAGyi'] = False # (N/m); ; +Morison['M5N1FAGyi'] = False # (N/m); ; +Morison['M5N2FAGyi'] = False # (N/m); ; +Morison['M5N3FAGyi'] = False # (N/m); ; +Morison['M5N4FAGyi'] = False # (N/m); ; +Morison['M5N5FAGyi'] = False # (N/m); ; +Morison['M5N6FAGyi'] = False # (N/m); ; +Morison['M5N7FAGyi'] = False # (N/m); ; +Morison['M5N8FAGyi'] = False # (N/m); ; +Morison['M5N9FAGyi'] = False # (N/m); ; +Morison['M6N1FAGyi'] = False # (N/m); ; +Morison['M6N2FAGyi'] = False # (N/m); ; +Morison['M6N3FAGyi'] = False # (N/m); ; +Morison['M6N4FAGyi'] = False # (N/m); ; +Morison['M6N5FAGyi'] = False # (N/m); ; +Morison['M6N6FAGyi'] = False # (N/m); ; +Morison['M6N7FAGyi'] = False # (N/m); ; +Morison['M6N8FAGyi'] = False # (N/m); ; +Morison['M6N9FAGyi'] = False # (N/m); ; +Morison['M7N1FAGyi'] = False # (N/m); ; +Morison['M7N2FAGyi'] = False # (N/m); ; +Morison['M7N3FAGyi'] = False # (N/m); ; +Morison['M7N4FAGyi'] = False # (N/m); ; +Morison['M7N5FAGyi'] = False # (N/m); ; +Morison['M7N6FAGyi'] = False # (N/m); ; +Morison['M7N7FAGyi'] = False # (N/m); ; +Morison['M7N8FAGyi'] = False # (N/m); ; +Morison['M7N9FAGyi'] = False # (N/m); ; +Morison['M8N1FAGyi'] = False # (N/m); ; +Morison['M8N2FAGyi'] = False # (N/m); ; +Morison['M8N3FAGyi'] = False # (N/m); ; +Morison['M8N4FAGyi'] = False # (N/m); ; +Morison['M8N5FAGyi'] = False # (N/m); ; +Morison['M8N6FAGyi'] = False # (N/m); ; +Morison['M8N7FAGyi'] = False # (N/m); ; +Morison['M8N8FAGyi'] = False # (N/m); ; +Morison['M8N9FAGyi'] = False # (N/m); ; +Morison['M9N1FAGyi'] = False # (N/m); ; +Morison['M9N2FAGyi'] = False # (N/m); ; +Morison['M9N3FAGyi'] = False # (N/m); ; +Morison['M9N4FAGyi'] = False # (N/m); ; +Morison['M9N5FAGyi'] = False # (N/m); ; +Morison['M9N6FAGyi'] = False # (N/m); ; +Morison['M9N7FAGyi'] = False # (N/m); ; +Morison['M9N8FAGyi'] = False # (N/m); ; +Morison['M9N9FAGyi'] = False # (N/m); ; +Morison['M1N1FAGzi'] = False # (N/m); z-component of the distributed added mass force due to the marine growth, expressed in the inertial coordinate system; +Morison['M1N2FAGzi'] = False # (N/m); ; +Morison['M1N3FAGzi'] = False # (N/m); ; +Morison['M1N4FAGzi'] = False # (N/m); ; +Morison['M1N5FAGzi'] = False # (N/m); ; +Morison['M1N6FAGzi'] = False # (N/m); ; +Morison['M1N7FAGzi'] = False # (N/m); ; +Morison['M1N8FAGzi'] = False # (N/m); ; +Morison['M1N9FAGzi'] = False # (N/m); ; +Morison['M2N1FAGzi'] = False # (N/m); ; +Morison['M2N2FAGzi'] = False # (N/m); ; +Morison['M2N3FAGzi'] = False # (N/m); ; +Morison['M2N4FAGzi'] = False # (N/m); ; +Morison['M2N5FAGzi'] = False # (N/m); ; +Morison['M2N6FAGzi'] = False # (N/m); ; +Morison['M2N7FAGzi'] = False # (N/m); ; +Morison['M2N8FAGzi'] = False # (N/m); ; +Morison['M2N9FAGzi'] = False # (N/m); ; +Morison['M3N1FAGzi'] = False # (N/m); ; +Morison['M3N2FAGzi'] = False # (N/m); ; +Morison['M3N3FAGzi'] = False # (N/m); ; +Morison['M3N4FAGzi'] = False # (N/m); ; +Morison['M3N5FAGzi'] = False # (N/m); ; +Morison['M3N6FAGzi'] = False # (N/m); ; +Morison['M3N7FAGzi'] = False # (N/m); ; +Morison['M3N8FAGzi'] = False # (N/m); ; +Morison['M3N9FAGzi'] = False # (N/m); ; +Morison['M4N1FAGzi'] = False # (N/m); ; +Morison['M4N2FAGzi'] = False # (N/m); ; +Morison['M4N3FAGzi'] = False # (N/m); ; +Morison['M4N4FAGzi'] = False # (N/m); ; +Morison['M4N5FAGzi'] = False # (N/m); ; +Morison['M4N6FAGzi'] = False # (N/m); ; +Morison['M4N7FAGzi'] = False # (N/m); ; +Morison['M4N8FAGzi'] = False # (N/m); ; +Morison['M4N9FAGzi'] = False # (N/m); ; +Morison['M5N1FAGzi'] = False # (N/m); ; +Morison['M5N2FAGzi'] = False # (N/m); ; +Morison['M5N3FAGzi'] = False # (N/m); ; +Morison['M5N4FAGzi'] = False # (N/m); ; +Morison['M5N5FAGzi'] = False # (N/m); ; +Morison['M5N6FAGzi'] = False # (N/m); ; +Morison['M5N7FAGzi'] = False # (N/m); ; +Morison['M5N8FAGzi'] = False # (N/m); ; +Morison['M5N9FAGzi'] = False # (N/m); ; +Morison['M6N1FAGzi'] = False # (N/m); ; +Morison['M6N2FAGzi'] = False # (N/m); ; +Morison['M6N3FAGzi'] = False # (N/m); ; +Morison['M6N4FAGzi'] = False # (N/m); ; +Morison['M6N5FAGzi'] = False # (N/m); ; +Morison['M6N6FAGzi'] = False # (N/m); ; +Morison['M6N7FAGzi'] = False # (N/m); ; +Morison['M6N8FAGzi'] = False # (N/m); ; +Morison['M6N9FAGzi'] = False # (N/m); ; +Morison['M7N1FAGzi'] = False # (N/m); ; +Morison['M7N2FAGzi'] = False # (N/m); ; +Morison['M7N3FAGzi'] = False # (N/m); ; +Morison['M7N4FAGzi'] = False # (N/m); ; +Morison['M7N5FAGzi'] = False # (N/m); ; +Morison['M7N6FAGzi'] = False # (N/m); ; +Morison['M7N7FAGzi'] = False # (N/m); ; +Morison['M7N8FAGzi'] = False # (N/m); ; +Morison['M7N9FAGzi'] = False # (N/m); ; +Morison['M8N1FAGzi'] = False # (N/m); ; +Morison['M8N2FAGzi'] = False # (N/m); ; +Morison['M8N3FAGzi'] = False # (N/m); ; +Morison['M8N4FAGzi'] = False # (N/m); ; +Morison['M8N5FAGzi'] = False # (N/m); ; +Morison['M8N6FAGzi'] = False # (N/m); ; +Morison['M8N7FAGzi'] = False # (N/m); ; +Morison['M8N8FAGzi'] = False # (N/m); ; +Morison['M8N9FAGzi'] = False # (N/m); ; +Morison['M9N1FAGzi'] = False # (N/m); ; +Morison['M9N2FAGzi'] = False # (N/m); ; +Morison['M9N3FAGzi'] = False # (N/m); ; +Morison['M9N4FAGzi'] = False # (N/m); ; +Morison['M9N5FAGzi'] = False # (N/m); ; +Morison['M9N6FAGzi'] = False # (N/m); ; +Morison['M9N7FAGzi'] = False # (N/m); ; +Morison['M9N8FAGzi'] = False # (N/m); ; +Morison['M9N9FAGzi'] = False # (N/m); ; +Morison['M1N1FAFxi'] = False # (N/m); x-component of the distributed added mass force due to the ballast, expressed in the inertial coordinate system; +Morison['M1N2FAFxi'] = False # (N/m); ; +Morison['M1N3FAFxi'] = False # (N/m); ; +Morison['M1N4FAFxi'] = False # (N/m); ; +Morison['M1N5FAFxi'] = False # (N/m); ; +Morison['M1N6FAFxi'] = False # (N/m); ; +Morison['M1N7FAFxi'] = False # (N/m); ; +Morison['M1N8FAFxi'] = False # (N/m); ; +Morison['M1N9FAFxi'] = False # (N/m); ; +Morison['M2N1FAFxi'] = False # (N/m); ; +Morison['M2N2FAFxi'] = False # (N/m); ; +Morison['M2N3FAFxi'] = False # (N/m); ; +Morison['M2N4FAFxi'] = False # (N/m); ; +Morison['M2N5FAFxi'] = False # (N/m); ; +Morison['M2N6FAFxi'] = False # (N/m); ; +Morison['M2N7FAFxi'] = False # (N/m); ; +Morison['M2N8FAFxi'] = False # (N/m); ; +Morison['M2N9FAFxi'] = False # (N/m); ; +Morison['M3N1FAFxi'] = False # (N/m); ; +Morison['M3N2FAFxi'] = False # (N/m); ; +Morison['M3N3FAFxi'] = False # (N/m); ; +Morison['M3N4FAFxi'] = False # (N/m); ; +Morison['M3N5FAFxi'] = False # (N/m); ; +Morison['M3N6FAFxi'] = False # (N/m); ; +Morison['M3N7FAFxi'] = False # (N/m); ; +Morison['M3N8FAFxi'] = False # (N/m); ; +Morison['M3N9FAFxi'] = False # (N/m); ; +Morison['M4N1FAFxi'] = False # (N/m); ; +Morison['M4N2FAFxi'] = False # (N/m); ; +Morison['M4N3FAFxi'] = False # (N/m); ; +Morison['M4N4FAFxi'] = False # (N/m); ; +Morison['M4N5FAFxi'] = False # (N/m); ; +Morison['M4N6FAFxi'] = False # (N/m); ; +Morison['M4N7FAFxi'] = False # (N/m); ; +Morison['M4N8FAFxi'] = False # (N/m); ; +Morison['M4N9FAFxi'] = False # (N/m); ; +Morison['M5N1FAFxi'] = False # (N/m); ; +Morison['M5N2FAFxi'] = False # (N/m); ; +Morison['M5N3FAFxi'] = False # (N/m); ; +Morison['M5N4FAFxi'] = False # (N/m); ; +Morison['M5N5FAFxi'] = False # (N/m); ; +Morison['M5N6FAFxi'] = False # (N/m); ; +Morison['M5N7FAFxi'] = False # (N/m); ; +Morison['M5N8FAFxi'] = False # (N/m); ; +Morison['M5N9FAFxi'] = False # (N/m); ; +Morison['M6N1FAFxi'] = False # (N/m); ; +Morison['M6N2FAFxi'] = False # (N/m); ; +Morison['M6N3FAFxi'] = False # (N/m); ; +Morison['M6N4FAFxi'] = False # (N/m); ; +Morison['M6N5FAFxi'] = False # (N/m); ; +Morison['M6N6FAFxi'] = False # (N/m); ; +Morison['M6N7FAFxi'] = False # (N/m); ; +Morison['M6N8FAFxi'] = False # (N/m); ; +Morison['M6N9FAFxi'] = False # (N/m); ; +Morison['M7N1FAFxi'] = False # (N/m); ; +Morison['M7N2FAFxi'] = False # (N/m); ; +Morison['M7N3FAFxi'] = False # (N/m); ; +Morison['M7N4FAFxi'] = False # (N/m); ; +Morison['M7N5FAFxi'] = False # (N/m); ; +Morison['M7N6FAFxi'] = False # (N/m); ; +Morison['M7N7FAFxi'] = False # (N/m); ; +Morison['M7N8FAFxi'] = False # (N/m); ; +Morison['M7N9FAFxi'] = False # (N/m); ; +Morison['M8N1FAFxi'] = False # (N/m); ; +Morison['M8N2FAFxi'] = False # (N/m); ; +Morison['M8N3FAFxi'] = False # (N/m); ; +Morison['M8N4FAFxi'] = False # (N/m); ; +Morison['M8N5FAFxi'] = False # (N/m); ; +Morison['M8N6FAFxi'] = False # (N/m); ; +Morison['M8N7FAFxi'] = False # (N/m); ; +Morison['M8N8FAFxi'] = False # (N/m); ; +Morison['M8N9FAFxi'] = False # (N/m); ; +Morison['M9N1FAFxi'] = False # (N/m); ; +Morison['M9N2FAFxi'] = False # (N/m); ; +Morison['M9N3FAFxi'] = False # (N/m); ; +Morison['M9N4FAFxi'] = False # (N/m); ; +Morison['M9N5FAFxi'] = False # (N/m); ; +Morison['M9N6FAFxi'] = False # (N/m); ; +Morison['M9N7FAFxi'] = False # (N/m); ; +Morison['M9N8FAFxi'] = False # (N/m); ; +Morison['M9N9FAFxi'] = False # (N/m); ; +Morison['M1N1FAFyi'] = False # (N/m); y-component of the distributed added mass force due to the ballast, expressed in the inertial coordinate system; +Morison['M1N2FAFyi'] = False # (N/m); ; +Morison['M1N3FAFyi'] = False # (N/m); ; +Morison['M1N4FAFyi'] = False # (N/m); ; +Morison['M1N5FAFyi'] = False # (N/m); ; +Morison['M1N6FAFyi'] = False # (N/m); ; +Morison['M1N7FAFyi'] = False # (N/m); ; +Morison['M1N8FAFyi'] = False # (N/m); ; +Morison['M1N9FAFyi'] = False # (N/m); ; +Morison['M2N1FAFyi'] = False # (N/m); ; +Morison['M2N2FAFyi'] = False # (N/m); ; +Morison['M2N3FAFyi'] = False # (N/m); ; +Morison['M2N4FAFyi'] = False # (N/m); ; +Morison['M2N5FAFyi'] = False # (N/m); ; +Morison['M2N6FAFyi'] = False # (N/m); ; +Morison['M2N7FAFyi'] = False # (N/m); ; +Morison['M2N8FAFyi'] = False # (N/m); ; +Morison['M2N9FAFyi'] = False # (N/m); ; +Morison['M3N1FAFyi'] = False # (N/m); ; +Morison['M3N2FAFyi'] = False # (N/m); ; +Morison['M3N3FAFyi'] = False # (N/m); ; +Morison['M3N4FAFyi'] = False # (N/m); ; +Morison['M3N5FAFyi'] = False # (N/m); ; +Morison['M3N6FAFyi'] = False # (N/m); ; +Morison['M3N7FAFyi'] = False # (N/m); ; +Morison['M3N8FAFyi'] = False # (N/m); ; +Morison['M3N9FAFyi'] = False # (N/m); ; +Morison['M4N1FAFyi'] = False # (N/m); ; +Morison['M4N2FAFyi'] = False # (N/m); ; +Morison['M4N3FAFyi'] = False # (N/m); ; +Morison['M4N4FAFyi'] = False # (N/m); ; +Morison['M4N5FAFyi'] = False # (N/m); ; +Morison['M4N6FAFyi'] = False # (N/m); ; +Morison['M4N7FAFyi'] = False # (N/m); ; +Morison['M4N8FAFyi'] = False # (N/m); ; +Morison['M4N9FAFyi'] = False # (N/m); ; +Morison['M5N1FAFyi'] = False # (N/m); ; +Morison['M5N2FAFyi'] = False # (N/m); ; +Morison['M5N3FAFyi'] = False # (N/m); ; +Morison['M5N4FAFyi'] = False # (N/m); ; +Morison['M5N5FAFyi'] = False # (N/m); ; +Morison['M5N6FAFyi'] = False # (N/m); ; +Morison['M5N7FAFyi'] = False # (N/m); ; +Morison['M5N8FAFyi'] = False # (N/m); ; +Morison['M5N9FAFyi'] = False # (N/m); ; +Morison['M6N1FAFyi'] = False # (N/m); ; +Morison['M6N2FAFyi'] = False # (N/m); ; +Morison['M6N3FAFyi'] = False # (N/m); ; +Morison['M6N4FAFyi'] = False # (N/m); ; +Morison['M6N5FAFyi'] = False # (N/m); ; +Morison['M6N6FAFyi'] = False # (N/m); ; +Morison['M6N7FAFyi'] = False # (N/m); ; +Morison['M6N8FAFyi'] = False # (N/m); ; +Morison['M6N9FAFyi'] = False # (N/m); ; +Morison['M7N1FAFyi'] = False # (N/m); ; +Morison['M7N2FAFyi'] = False # (N/m); ; +Morison['M7N3FAFyi'] = False # (N/m); ; +Morison['M7N4FAFyi'] = False # (N/m); ; +Morison['M7N5FAFyi'] = False # (N/m); ; +Morison['M7N6FAFyi'] = False # (N/m); ; +Morison['M7N7FAFyi'] = False # (N/m); ; +Morison['M7N8FAFyi'] = False # (N/m); ; +Morison['M7N9FAFyi'] = False # (N/m); ; +Morison['M8N1FAFyi'] = False # (N/m); ; +Morison['M8N2FAFyi'] = False # (N/m); ; +Morison['M8N3FAFyi'] = False # (N/m); ; +Morison['M8N4FAFyi'] = False # (N/m); ; +Morison['M8N5FAFyi'] = False # (N/m); ; +Morison['M8N6FAFyi'] = False # (N/m); ; +Morison['M8N7FAFyi'] = False # (N/m); ; +Morison['M8N8FAFyi'] = False # (N/m); ; +Morison['M8N9FAFyi'] = False # (N/m); ; +Morison['M9N1FAFyi'] = False # (N/m); ; +Morison['M9N2FAFyi'] = False # (N/m); ; +Morison['M9N3FAFyi'] = False # (N/m); ; +Morison['M9N4FAFyi'] = False # (N/m); ; +Morison['M9N5FAFyi'] = False # (N/m); ; +Morison['M9N6FAFyi'] = False # (N/m); ; +Morison['M9N7FAFyi'] = False # (N/m); ; +Morison['M9N8FAFyi'] = False # (N/m); ; +Morison['M9N9FAFyi'] = False # (N/m); ; +Morison['M1N1FAFzi'] = False # (N/m); z-component of the distributed added mass force due to the ballast, expressed in the inertial coordinate system; +Morison['M1N2FAFzi'] = False # (N/m); ; +Morison['M1N3FAFzi'] = False # (N/m); ; +Morison['M1N4FAFzi'] = False # (N/m); ; +Morison['M1N5FAFzi'] = False # (N/m); ; +Morison['M1N6FAFzi'] = False # (N/m); ; +Morison['M1N7FAFzi'] = False # (N/m); ; +Morison['M1N8FAFzi'] = False # (N/m); ; +Morison['M1N9FAFzi'] = False # (N/m); ; +Morison['M2N1FAFzi'] = False # (N/m); ; +Morison['M2N2FAFzi'] = False # (N/m); ; +Morison['M2N3FAFzi'] = False # (N/m); ; +Morison['M2N4FAFzi'] = False # (N/m); ; +Morison['M2N5FAFzi'] = False # (N/m); ; +Morison['M2N6FAFzi'] = False # (N/m); ; +Morison['M2N7FAFzi'] = False # (N/m); ; +Morison['M2N8FAFzi'] = False # (N/m); ; +Morison['M2N9FAFzi'] = False # (N/m); ; +Morison['M3N1FAFzi'] = False # (N/m); ; +Morison['M3N2FAFzi'] = False # (N/m); ; +Morison['M3N3FAFzi'] = False # (N/m); ; +Morison['M3N4FAFzi'] = False # (N/m); ; +Morison['M3N5FAFzi'] = False # (N/m); ; +Morison['M3N6FAFzi'] = False # (N/m); ; +Morison['M3N7FAFzi'] = False # (N/m); ; +Morison['M3N8FAFzi'] = False # (N/m); ; +Morison['M3N9FAFzi'] = False # (N/m); ; +Morison['M4N1FAFzi'] = False # (N/m); ; +Morison['M4N2FAFzi'] = False # (N/m); ; +Morison['M4N3FAFzi'] = False # (N/m); ; +Morison['M4N4FAFzi'] = False # (N/m); ; +Morison['M4N5FAFzi'] = False # (N/m); ; +Morison['M4N6FAFzi'] = False # (N/m); ; +Morison['M4N7FAFzi'] = False # (N/m); ; +Morison['M4N8FAFzi'] = False # (N/m); ; +Morison['M4N9FAFzi'] = False # (N/m); ; +Morison['M5N1FAFzi'] = False # (N/m); ; +Morison['M5N2FAFzi'] = False # (N/m); ; +Morison['M5N3FAFzi'] = False # (N/m); ; +Morison['M5N4FAFzi'] = False # (N/m); ; +Morison['M5N5FAFzi'] = False # (N/m); ; +Morison['M5N6FAFzi'] = False # (N/m); ; +Morison['M5N7FAFzi'] = False # (N/m); ; +Morison['M5N8FAFzi'] = False # (N/m); ; +Morison['M5N9FAFzi'] = False # (N/m); ; +Morison['M6N1FAFzi'] = False # (N/m); ; +Morison['M6N2FAFzi'] = False # (N/m); ; +Morison['M6N3FAFzi'] = False # (N/m); ; +Morison['M6N4FAFzi'] = False # (N/m); ; +Morison['M6N5FAFzi'] = False # (N/m); ; +Morison['M6N6FAFzi'] = False # (N/m); ; +Morison['M6N7FAFzi'] = False # (N/m); ; +Morison['M6N8FAFzi'] = False # (N/m); ; +Morison['M6N9FAFzi'] = False # (N/m); ; +Morison['M7N1FAFzi'] = False # (N/m); ; +Morison['M7N2FAFzi'] = False # (N/m); ; +Morison['M7N3FAFzi'] = False # (N/m); ; +Morison['M7N4FAFzi'] = False # (N/m); ; +Morison['M7N5FAFzi'] = False # (N/m); ; +Morison['M7N6FAFzi'] = False # (N/m); ; +Morison['M7N7FAFzi'] = False # (N/m); ; +Morison['M7N8FAFzi'] = False # (N/m); ; +Morison['M7N9FAFzi'] = False # (N/m); ; +Morison['M8N1FAFzi'] = False # (N/m); ; +Morison['M8N2FAFzi'] = False # (N/m); ; +Morison['M8N3FAFzi'] = False # (N/m); ; +Morison['M8N4FAFzi'] = False # (N/m); ; +Morison['M8N5FAFzi'] = False # (N/m); ; +Morison['M8N6FAFzi'] = False # (N/m); ; +Morison['M8N7FAFzi'] = False # (N/m); ; +Morison['M8N8FAFzi'] = False # (N/m); ; +Morison['M8N9FAFzi'] = False # (N/m); ; +Morison['M9N1FAFzi'] = False # (N/m); ; +Morison['M9N2FAFzi'] = False # (N/m); ; +Morison['M9N3FAFzi'] = False # (N/m); ; +Morison['M9N4FAFzi'] = False # (N/m); ; +Morison['M9N5FAFzi'] = False # (N/m); ; +Morison['M9N6FAFzi'] = False # (N/m); ; +Morison['M9N7FAFzi'] = False # (N/m); ; +Morison['M9N8FAFzi'] = False # (N/m); ; +Morison['M9N9FAFzi'] = False # (N/m); ; +Morison['M1N1FAxi'] = False # (N/m); x-component of the combined distributed added mass force, expressed in the inertial coordinate system; +Morison['M1N2FAxi'] = False # (N/m); ; +Morison['M1N3FAxi'] = False # (N/m); ; +Morison['M1N4FAxi'] = False # (N/m); ; +Morison['M1N5FAxi'] = False # (N/m); ; +Morison['M1N6FAxi'] = False # (N/m); ; +Morison['M1N7FAxi'] = False # (N/m); ; +Morison['M1N8FAxi'] = False # (N/m); ; +Morison['M1N9FAxi'] = False # (N/m); ; +Morison['M2N1FAxi'] = False # (N/m); ; +Morison['M2N2FAxi'] = False # (N/m); ; +Morison['M2N3FAxi'] = False # (N/m); ; +Morison['M2N4FAxi'] = False # (N/m); ; +Morison['M2N5FAxi'] = False # (N/m); ; +Morison['M2N6FAxi'] = False # (N/m); ; +Morison['M2N7FAxi'] = False # (N/m); ; +Morison['M2N8FAxi'] = False # (N/m); ; +Morison['M2N9FAxi'] = False # (N/m); ; +Morison['M3N1FAxi'] = False # (N/m); ; +Morison['M3N2FAxi'] = False # (N/m); ; +Morison['M3N3FAxi'] = False # (N/m); ; +Morison['M3N4FAxi'] = False # (N/m); ; +Morison['M3N5FAxi'] = False # (N/m); ; +Morison['M3N6FAxi'] = False # (N/m); ; +Morison['M3N7FAxi'] = False # (N/m); ; +Morison['M3N8FAxi'] = False # (N/m); ; +Morison['M3N9FAxi'] = False # (N/m); ; +Morison['M4N1FAxi'] = False # (N/m); ; +Morison['M4N2FAxi'] = False # (N/m); ; +Morison['M4N3FAxi'] = False # (N/m); ; +Morison['M4N4FAxi'] = False # (N/m); ; +Morison['M4N5FAxi'] = False # (N/m); ; +Morison['M4N6FAxi'] = False # (N/m); ; +Morison['M4N7FAxi'] = False # (N/m); ; +Morison['M4N8FAxi'] = False # (N/m); ; +Morison['M4N9FAxi'] = False # (N/m); ; +Morison['M5N1FAxi'] = False # (N/m); ; +Morison['M5N2FAxi'] = False # (N/m); ; +Morison['M5N3FAxi'] = False # (N/m); ; +Morison['M5N4FAxi'] = False # (N/m); ; +Morison['M5N5FAxi'] = False # (N/m); ; +Morison['M5N6FAxi'] = False # (N/m); ; +Morison['M5N7FAxi'] = False # (N/m); ; +Morison['M5N8FAxi'] = False # (N/m); ; +Morison['M5N9FAxi'] = False # (N/m); ; +Morison['M6N1FAxi'] = False # (N/m); ; +Morison['M6N2FAxi'] = False # (N/m); ; +Morison['M6N3FAxi'] = False # (N/m); ; +Morison['M6N4FAxi'] = False # (N/m); ; +Morison['M6N5FAxi'] = False # (N/m); ; +Morison['M6N6FAxi'] = False # (N/m); ; +Morison['M6N7FAxi'] = False # (N/m); ; +Morison['M6N8FAxi'] = False # (N/m); ; +Morison['M6N9FAxi'] = False # (N/m); ; +Morison['M7N1FAxi'] = False # (N/m); ; +Morison['M7N2FAxi'] = False # (N/m); ; +Morison['M7N3FAxi'] = False # (N/m); ; +Morison['M7N4FAxi'] = False # (N/m); ; +Morison['M7N5FAxi'] = False # (N/m); ; +Morison['M7N6FAxi'] = False # (N/m); ; +Morison['M7N7FAxi'] = False # (N/m); ; +Morison['M7N8FAxi'] = False # (N/m); ; +Morison['M7N9FAxi'] = False # (N/m); ; +Morison['M8N1FAxi'] = False # (N/m); ; +Morison['M8N2FAxi'] = False # (N/m); ; +Morison['M8N3FAxi'] = False # (N/m); ; +Morison['M8N4FAxi'] = False # (N/m); ; +Morison['M8N5FAxi'] = False # (N/m); ; +Morison['M8N6FAxi'] = False # (N/m); ; +Morison['M8N7FAxi'] = False # (N/m); ; +Morison['M8N8FAxi'] = False # (N/m); ; +Morison['M8N9FAxi'] = False # (N/m); ; +Morison['M9N1FAxi'] = False # (N/m); ; +Morison['M9N2FAxi'] = False # (N/m); ; +Morison['M9N3FAxi'] = False # (N/m); ; +Morison['M9N4FAxi'] = False # (N/m); ; +Morison['M9N5FAxi'] = False # (N/m); ; +Morison['M9N6FAxi'] = False # (N/m); ; +Morison['M9N7FAxi'] = False # (N/m); ; +Morison['M9N8FAxi'] = False # (N/m); ; +Morison['M9N9FAxi'] = False # (N/m); ; +Morison['M1N1FAyi'] = False # (N/m); y-component of the combined distributed added mass force, expressed in the inertial coordinate system; +Morison['M1N2FAyi'] = False # (N/m); ; +Morison['M1N3FAyi'] = False # (N/m); ; +Morison['M1N4FAyi'] = False # (N/m); ; +Morison['M1N5FAyi'] = False # (N/m); ; +Morison['M1N6FAyi'] = False # (N/m); ; +Morison['M1N7FAyi'] = False # (N/m); ; +Morison['M1N8FAyi'] = False # (N/m); ; +Morison['M1N9FAyi'] = False # (N/m); ; +Morison['M2N1FAyi'] = False # (N/m); ; +Morison['M2N2FAyi'] = False # (N/m); ; +Morison['M2N3FAyi'] = False # (N/m); ; +Morison['M2N4FAyi'] = False # (N/m); ; +Morison['M2N5FAyi'] = False # (N/m); ; +Morison['M2N6FAyi'] = False # (N/m); ; +Morison['M2N7FAyi'] = False # (N/m); ; +Morison['M2N8FAyi'] = False # (N/m); ; +Morison['M2N9FAyi'] = False # (N/m); ; +Morison['M3N1FAyi'] = False # (N/m); ; +Morison['M3N2FAyi'] = False # (N/m); ; +Morison['M3N3FAyi'] = False # (N/m); ; +Morison['M3N4FAyi'] = False # (N/m); ; +Morison['M3N5FAyi'] = False # (N/m); ; +Morison['M3N6FAyi'] = False # (N/m); ; +Morison['M3N7FAyi'] = False # (N/m); ; +Morison['M3N8FAyi'] = False # (N/m); ; +Morison['M3N9FAyi'] = False # (N/m); ; +Morison['M4N1FAyi'] = False # (N/m); ; +Morison['M4N2FAyi'] = False # (N/m); ; +Morison['M4N3FAyi'] = False # (N/m); ; +Morison['M4N4FAyi'] = False # (N/m); ; +Morison['M4N5FAyi'] = False # (N/m); ; +Morison['M4N6FAyi'] = False # (N/m); ; +Morison['M4N7FAyi'] = False # (N/m); ; +Morison['M4N8FAyi'] = False # (N/m); ; +Morison['M4N9FAyi'] = False # (N/m); ; +Morison['M5N1FAyi'] = False # (N/m); ; +Morison['M5N2FAyi'] = False # (N/m); ; +Morison['M5N3FAyi'] = False # (N/m); ; +Morison['M5N4FAyi'] = False # (N/m); ; +Morison['M5N5FAyi'] = False # (N/m); ; +Morison['M5N6FAyi'] = False # (N/m); ; +Morison['M5N7FAyi'] = False # (N/m); ; +Morison['M5N8FAyi'] = False # (N/m); ; +Morison['M5N9FAyi'] = False # (N/m); ; +Morison['M6N1FAyi'] = False # (N/m); ; +Morison['M6N2FAyi'] = False # (N/m); ; +Morison['M6N3FAyi'] = False # (N/m); ; +Morison['M6N4FAyi'] = False # (N/m); ; +Morison['M6N5FAyi'] = False # (N/m); ; +Morison['M6N6FAyi'] = False # (N/m); ; +Morison['M6N7FAyi'] = False # (N/m); ; +Morison['M6N8FAyi'] = False # (N/m); ; +Morison['M6N9FAyi'] = False # (N/m); ; +Morison['M7N1FAyi'] = False # (N/m); ; +Morison['M7N2FAyi'] = False # (N/m); ; +Morison['M7N3FAyi'] = False # (N/m); ; +Morison['M7N4FAyi'] = False # (N/m); ; +Morison['M7N5FAyi'] = False # (N/m); ; +Morison['M7N6FAyi'] = False # (N/m); ; +Morison['M7N7FAyi'] = False # (N/m); ; +Morison['M7N8FAyi'] = False # (N/m); ; +Morison['M7N9FAyi'] = False # (N/m); ; +Morison['M8N1FAyi'] = False # (N/m); ; +Morison['M8N2FAyi'] = False # (N/m); ; +Morison['M8N3FAyi'] = False # (N/m); ; +Morison['M8N4FAyi'] = False # (N/m); ; +Morison['M8N5FAyi'] = False # (N/m); ; +Morison['M8N6FAyi'] = False # (N/m); ; +Morison['M8N7FAyi'] = False # (N/m); ; +Morison['M8N8FAyi'] = False # (N/m); ; +Morison['M8N9FAyi'] = False # (N/m); ; +Morison['M9N1FAyi'] = False # (N/m); ; +Morison['M9N2FAyi'] = False # (N/m); ; +Morison['M9N3FAyi'] = False # (N/m); ; +Morison['M9N4FAyi'] = False # (N/m); ; +Morison['M9N5FAyi'] = False # (N/m); ; +Morison['M9N6FAyi'] = False # (N/m); ; +Morison['M9N7FAyi'] = False # (N/m); ; +Morison['M9N8FAyi'] = False # (N/m); ; +Morison['M9N9FAyi'] = False # (N/m); ; +Morison['M1N1FAzi'] = False # (N/m); z-component of the combined distributed added mass force, expressed in the inertial coordinate system; +Morison['M1N2FAzi'] = False # (N/m); ; +Morison['M1N3FAzi'] = False # (N/m); ; +Morison['M1N4FAzi'] = False # (N/m); ; +Morison['M1N5FAzi'] = False # (N/m); ; +Morison['M1N6FAzi'] = False # (N/m); ; +Morison['M1N7FAzi'] = False # (N/m); ; +Morison['M1N8FAzi'] = False # (N/m); ; +Morison['M1N9FAzi'] = False # (N/m); ; +Morison['M2N1FAzi'] = False # (N/m); ; +Morison['M2N2FAzi'] = False # (N/m); ; +Morison['M2N3FAzi'] = False # (N/m); ; +Morison['M2N4FAzi'] = False # (N/m); ; +Morison['M2N5FAzi'] = False # (N/m); ; +Morison['M2N6FAzi'] = False # (N/m); ; +Morison['M2N7FAzi'] = False # (N/m); ; +Morison['M2N8FAzi'] = False # (N/m); ; +Morison['M2N9FAzi'] = False # (N/m); ; +Morison['M3N1FAzi'] = False # (N/m); ; +Morison['M3N2FAzi'] = False # (N/m); ; +Morison['M3N3FAzi'] = False # (N/m); ; +Morison['M3N4FAzi'] = False # (N/m); ; +Morison['M3N5FAzi'] = False # (N/m); ; +Morison['M3N6FAzi'] = False # (N/m); ; +Morison['M3N7FAzi'] = False # (N/m); ; +Morison['M3N8FAzi'] = False # (N/m); ; +Morison['M3N9FAzi'] = False # (N/m); ; +Morison['M4N1FAzi'] = False # (N/m); ; +Morison['M4N2FAzi'] = False # (N/m); ; +Morison['M4N3FAzi'] = False # (N/m); ; +Morison['M4N4FAzi'] = False # (N/m); ; +Morison['M4N5FAzi'] = False # (N/m); ; +Morison['M4N6FAzi'] = False # (N/m); ; +Morison['M4N7FAzi'] = False # (N/m); ; +Morison['M4N8FAzi'] = False # (N/m); ; +Morison['M4N9FAzi'] = False # (N/m); ; +Morison['M5N1FAzi'] = False # (N/m); ; +Morison['M5N2FAzi'] = False # (N/m); ; +Morison['M5N3FAzi'] = False # (N/m); ; +Morison['M5N4FAzi'] = False # (N/m); ; +Morison['M5N5FAzi'] = False # (N/m); ; +Morison['M5N6FAzi'] = False # (N/m); ; +Morison['M5N7FAzi'] = False # (N/m); ; +Morison['M5N8FAzi'] = False # (N/m); ; +Morison['M5N9FAzi'] = False # (N/m); ; +Morison['M6N1FAzi'] = False # (N/m); ; +Morison['M6N2FAzi'] = False # (N/m); ; +Morison['M6N3FAzi'] = False # (N/m); ; +Morison['M6N4FAzi'] = False # (N/m); ; +Morison['M6N5FAzi'] = False # (N/m); ; +Morison['M6N6FAzi'] = False # (N/m); ; +Morison['M6N7FAzi'] = False # (N/m); ; +Morison['M6N8FAzi'] = False # (N/m); ; +Morison['M6N9FAzi'] = False # (N/m); ; +Morison['M7N1FAzi'] = False # (N/m); ; +Morison['M7N2FAzi'] = False # (N/m); ; +Morison['M7N3FAzi'] = False # (N/m); ; +Morison['M7N4FAzi'] = False # (N/m); ; +Morison['M7N5FAzi'] = False # (N/m); ; +Morison['M7N6FAzi'] = False # (N/m); ; +Morison['M7N7FAzi'] = False # (N/m); ; +Morison['M7N8FAzi'] = False # (N/m); ; +Morison['M7N9FAzi'] = False # (N/m); ; +Morison['M8N1FAzi'] = False # (N/m); ; +Morison['M8N2FAzi'] = False # (N/m); ; +Morison['M8N3FAzi'] = False # (N/m); ; +Morison['M8N4FAzi'] = False # (N/m); ; +Morison['M8N5FAzi'] = False # (N/m); ; +Morison['M8N6FAzi'] = False # (N/m); ; +Morison['M8N7FAzi'] = False # (N/m); ; +Morison['M8N8FAzi'] = False # (N/m); ; +Morison['M8N9FAzi'] = False # (N/m); ; +Morison['M9N1FAzi'] = False # (N/m); ; +Morison['M9N2FAzi'] = False # (N/m); ; +Morison['M9N3FAzi'] = False # (N/m); ; +Morison['M9N4FAzi'] = False # (N/m); ; +Morison['M9N5FAzi'] = False # (N/m); ; +Morison['M9N6FAzi'] = False # (N/m); ; +Morison['M9N7FAzi'] = False # (N/m); ; +Morison['M9N8FAzi'] = False # (N/m); ; +Morison['M9N9FAzi'] = False # (N/m); ; + +# Joint-level Wave Kinematics +Morison['J1Vxi'] = False # (m/s); fluid velocity at the joint; +Morison['J2Vxi'] = False # (m/s); ; +Morison['J3Vxi'] = False # (m/s); ; +Morison['J4Vxi'] = False # (m/s); ; +Morison['J5Vxi'] = False # (m/s); ; +Morison['J6Vxi'] = False # (m/s); ; +Morison['J7Vxi'] = False # (m/s); ; +Morison['J8Vxi'] = False # (m/s); ; +Morison['J9Vxi'] = False # (m/s); ; +Morison['J1Vyi'] = False # (m/s); ; +Morison['J2Vyi'] = False # (m/s); ; +Morison['J3Vyi'] = False # (m/s); ; +Morison['J4Vyi'] = False # (m/s); ; +Morison['J5Vyi'] = False # (m/s); ; +Morison['J6Vyi'] = False # (m/s); ; +Morison['J7Vyi'] = False # (m/s); ; +Morison['J8Vyi'] = False # (m/s); ; +Morison['J9Vyi'] = False # (m/s); ; +Morison['J1Vzi'] = False # (m/s); ; +Morison['J2Vzi'] = False # (m/s); ; +Morison['J3Vzi'] = False # (m/s); ; +Morison['J4Vzi'] = False # (m/s); ; +Morison['J5Vzi'] = False # (m/s); ; +Morison['J6Vzi'] = False # (m/s); ; +Morison['J7Vzi'] = False # (m/s); ; +Morison['J8Vzi'] = False # (m/s); ; +Morison['J9Vzi'] = False # (m/s); ; +Morison['J1Axi'] = False # (m/s^2); fluid acceleration at the joint; +Morison['J2Axi'] = False # (m/s^2); ; +Morison['J3Axi'] = False # (m/s^2); ; +Morison['J4Axi'] = False # (m/s^2); ; +Morison['J5Axi'] = False # (m/s^2); ; +Morison['J6Axi'] = False # (m/s^2); ; +Morison['J7Axi'] = False # (m/s^2); ; +Morison['J8Axi'] = False # (m/s^2); ; +Morison['J9Axi'] = False # (m/s^2); ; +Morison['J1Ayi'] = False # (m/s^2); ; +Morison['J2Ayi'] = False # (m/s^2); ; +Morison['J3Ayi'] = False # (m/s^2); ; +Morison['J4Ayi'] = False # (m/s^2); ; +Morison['J5Ayi'] = False # (m/s^2); ; +Morison['J6Ayi'] = False # (m/s^2); ; +Morison['J7Ayi'] = False # (m/s^2); ; +Morison['J8Ayi'] = False # (m/s^2); ; +Morison['J9Ayi'] = False # (m/s^2); ; +Morison['J1Azi'] = False # (m/s^2); ; +Morison['J2Azi'] = False # (m/s^2); ; +Morison['J3Azi'] = False # (m/s^2); ; +Morison['J4Azi'] = False # (m/s^2); ; +Morison['J5Azi'] = False # (m/s^2); ; +Morison['J6Azi'] = False # (m/s^2); ; +Morison['J7Azi'] = False # (m/s^2); ; +Morison['J8Azi'] = False # (m/s^2); ; +Morison['J9Azi'] = False # (m/s^2); ; +Morison['J1DynP'] = False # (Pa); fluid dynamic pressure at the joint; +Morison['J2DynP'] = False # (Pa); ; +Morison['J3DynP'] = False # (Pa); ; +Morison['J4DynP'] = False # (Pa); ; +Morison['J5DynP'] = False # (Pa); ; +Morison['J6DynP'] = False # (Pa); ; +Morison['J7DynP'] = False # (Pa); ; +Morison['J8DynP'] = False # (Pa); ; +Morison['J9DynP'] = False # (Pa); ; +Morison['J1STVxi'] = False # (m/s); structural translational velocity at the joint; +Morison['J2STVxi'] = False # (m/s); ; +Morison['J3STVxi'] = False # (m/s); ; +Morison['J4STVxi'] = False # (m/s); ; +Morison['J5STVxi'] = False # (m/s); ; +Morison['J6STVxi'] = False # (m/s); ; +Morison['J7STVxi'] = False # (m/s); ; +Morison['J8STVxi'] = False # (m/s); ; +Morison['J9STVxi'] = False # (m/s); ; +Morison['J1STVyi'] = False # (m/s); ; +Morison['J2STVyi'] = False # (m/s); ; +Morison['J3STVyi'] = False # (m/s); ; +Morison['J4STVyi'] = False # (m/s); ; +Morison['J5STVyi'] = False # (m/s); ; +Morison['J6STVyi'] = False # (m/s); ; +Morison['J7STVyi'] = False # (m/s); ; +Morison['J8STVyi'] = False # (m/s); ; +Morison['J9STVyi'] = False # (m/s); ; +Morison['J1STVzi'] = False # (m/s); ; +Morison['J2STVzi'] = False # (m/s); ; +Morison['J3STVzi'] = False # (m/s); ; +Morison['J4STVzi'] = False # (m/s); ; +Morison['J5STVzi'] = False # (m/s); ; +Morison['J6STVzi'] = False # (m/s); ; +Morison['J7STVzi'] = False # (m/s); ; +Morison['J8STVzi'] = False # (m/s); ; +Morison['J9STVzi'] = False # (m/s); ; +Morison['J1STAxi'] = False # (m/s^2); structural translational acceleration at the joint; +Morison['J2STAxi'] = False # (m/s^2); ; +Morison['J3STAxi'] = False # (m/s^2); ; +Morison['J4STAxi'] = False # (m/s^2); ; +Morison['J5STAxi'] = False # (m/s^2); ; +Morison['J6STAxi'] = False # (m/s^2); ; +Morison['J7STAxi'] = False # (m/s^2); ; +Morison['J8STAxi'] = False # (m/s^2); ; +Morison['J9STAxi'] = False # (m/s^2); ; +Morison['J1STAyi'] = False # (m/s^2); ; +Morison['J2STAyi'] = False # (m/s^2); ; +Morison['J3STAyi'] = False # (m/s^2); ; +Morison['J4STAyi'] = False # (m/s^2); ; +Morison['J5STAyi'] = False # (m/s^2); ; +Morison['J6STAyi'] = False # (m/s^2); ; +Morison['J7STAyi'] = False # (m/s^2); ; +Morison['J8STAyi'] = False # (m/s^2); ; +Morison['J9STAyi'] = False # (m/s^2); ; +Morison['J1STAzi'] = False # (m/s^2); ; +Morison['J2STAzi'] = False # (m/s^2); ; +Morison['J3STAzi'] = False # (m/s^2); ; +Morison['J4STAzi'] = False # (m/s^2); ; +Morison['J5STAzi'] = False # (m/s^2); ; +Morison['J6STAzi'] = False # (m/s^2); ; +Morison['J7STAzi'] = False # (m/s^2); ; +Morison['J8STAzi'] = False # (m/s^2); ; +Morison['J9STAzi'] = False # (m/s^2); ; + +# Joint Loads +Morison['J1FDxi'] = False # (N); axial drag forces; +Morison['J2FDxi'] = False # (N); ; +Morison['J3FDxi'] = False # (N); ; +Morison['J4FDxi'] = False # (N); ; +Morison['J5FDxi'] = False # (N); ; +Morison['J6FDxi'] = False # (N); ; +Morison['J7FDxi'] = False # (N); ; +Morison['J8FDxi'] = False # (N); ; +Morison['J9FDxi'] = False # (N); ; +Morison['J1FDyi'] = False # (N); ; +Morison['J2FDyi'] = False # (N); ; +Morison['J3FDyi'] = False # (N); ; +Morison['J4FDyi'] = False # (N); ; +Morison['J5FDyi'] = False # (N); ; +Morison['J6FDyi'] = False # (N); ; +Morison['J7FDyi'] = False # (N); ; +Morison['J8FDyi'] = False # (N); ; +Morison['J9FDyi'] = False # (N); ; +Morison['J1FDzi'] = False # (N); ; +Morison['J2FDzi'] = False # (N); ; +Morison['J3FDzi'] = False # (N); ; +Morison['J4FDzi'] = False # (N); ; +Morison['J5FDzi'] = False # (N); ; +Morison['J6FDzi'] = False # (N); ; +Morison['J7FDzi'] = False # (N); ; +Morison['J8FDzi'] = False # (N); ; +Morison['J9FDzi'] = False # (N); ; +Morison['J1FBxi'] = False # (N); end-effect buoyancy forces; +Morison['J2FBxi'] = False # (N); ; +Morison['J3FBxi'] = False # (N); ; +Morison['J4FBxi'] = False # (N); ; +Morison['J5FBxi'] = False # (N); ; +Morison['J6FBxi'] = False # (N); ; +Morison['J7FBxi'] = False # (N); ; +Morison['J8FBxi'] = False # (N); ; +Morison['J9FBxi'] = False # (N); ; +Morison['J1FByi'] = False # (N); ; +Morison['J2FByi'] = False # (N); ; +Morison['J3FByi'] = False # (N); ; +Morison['J4FByi'] = False # (N); ; +Morison['J5FByi'] = False # (N); ; +Morison['J6FByi'] = False # (N); ; +Morison['J7FByi'] = False # (N); ; +Morison['J8FByi'] = False # (N); ; +Morison['J9FByi'] = False # (N); ; +Morison['J1FBzi'] = False # (N); ; +Morison['J2FBzi'] = False # (N); ; +Morison['J3FBzi'] = False # (N); ; +Morison['J4FBzi'] = False # (N); ; +Morison['J5FBzi'] = False # (N); ; +Morison['J6FBzi'] = False # (N); ; +Morison['J7FBzi'] = False # (N); ; +Morison['J8FBzi'] = False # (N); ; +Morison['J9FBzi'] = False # (N); ; +Morison['J1MBxi'] = False # (N-m); end-effect buoyancy moments; +Morison['J2MBxi'] = False # (N-m); ; +Morison['J3MBxi'] = False # (N-m); ; +Morison['J4MBxi'] = False # (N-m); ; +Morison['J5MBxi'] = False # (N-m); ; +Morison['J6MBxi'] = False # (N-m); ; +Morison['J7MBxi'] = False # (N-m); ; +Morison['J8MBxi'] = False # (N-m); ; +Morison['J9MBxi'] = False # (N-m); ; +Morison['J1MByi'] = False # (N-m); ; +Morison['J2MByi'] = False # (N-m); ; +Morison['J3MByi'] = False # (N-m); ; +Morison['J4MByi'] = False # (N-m); ; +Morison['J5MByi'] = False # (N-m); ; +Morison['J6MByi'] = False # (N-m); ; +Morison['J7MByi'] = False # (N-m); ; +Morison['J8MByi'] = False # (N-m); ; +Morison['J9MByi'] = False # (N-m); ; +Morison['J1MBzi'] = False # (N-m); ; +Morison['J2MBzi'] = False # (N-m); ; +Morison['J3MBzi'] = False # (N-m); ; +Morison['J4MBzi'] = False # (N-m); ; +Morison['J5MBzi'] = False # (N-m); ; +Morison['J6MBzi'] = False # (N-m); ; +Morison['J7MBzi'] = False # (N-m); ; +Morison['J8MBzi'] = False # (N-m); ; +Morison['J9MBzi'] = False # (N-m); ; +Morison['J1FBFxi'] = False # (N); end-effect buoyancy forces due to ballasting/flooding; +Morison['J2FBFxi'] = False # (N); ; +Morison['J3FBFxi'] = False # (N); ; +Morison['J4FBFxi'] = False # (N); ; +Morison['J5FBFxi'] = False # (N); ; +Morison['J6FBFxi'] = False # (N); ; +Morison['J7FBFxi'] = False # (N); ; +Morison['J8FBFxi'] = False # (N); ; +Morison['J9FBFxi'] = False # (N); ; +Morison['J1FBFyi'] = False # (N); ; +Morison['J2FBFyi'] = False # (N); ; +Morison['J3FBFyi'] = False # (N); ; +Morison['J4FBFyi'] = False # (N); ; +Morison['J5FBFyi'] = False # (N); ; +Morison['J6FBFyi'] = False # (N); ; +Morison['J7FBFyi'] = False # (N); ; +Morison['J8FBFyi'] = False # (N); ; +Morison['J9FBFyi'] = False # (N); ; +Morison['J1FBFzi'] = False # (N); ; +Morison['J2FBFzi'] = False # (N); ; +Morison['J3FBFzi'] = False # (N); ; +Morison['J4FBFzi'] = False # (N); ; +Morison['J5FBFzi'] = False # (N); ; +Morison['J6FBFzi'] = False # (N); ; +Morison['J7FBFzi'] = False # (N); ; +Morison['J8FBFzi'] = False # (N); ; +Morison['J9FBFzi'] = False # (N); ; +Morison['J1MBFxi'] = False # (N-m); end-effect buoyancy moments due to ballasting/flooding; +Morison['J2MBFxi'] = False # (N-m); ; +Morison['J3MBFxi'] = False # (N-m); ; +Morison['J4MBFxi'] = False # (N-m); ; +Morison['J5MBFxi'] = False # (N-m); ; +Morison['J6MBFxi'] = False # (N-m); ; +Morison['J7MBFxi'] = False # (N-m); ; +Morison['J8MBFxi'] = False # (N-m); ; +Morison['J9MBFxi'] = False # (N-m); ; +Morison['J1MBFyi'] = False # (N-m); ; +Morison['J2MBFyi'] = False # (N-m); ; +Morison['J3MBFyi'] = False # (N-m); ; +Morison['J4MBFyi'] = False # (N-m); ; +Morison['J5MBFyi'] = False # (N-m); ; +Morison['J6MBFyi'] = False # (N-m); ; +Morison['J7MBFyi'] = False # (N-m); ; +Morison['J8MBFyi'] = False # (N-m); ; +Morison['J9MBFyi'] = False # (N-m); ; +Morison['J1MBFzi'] = False # (N-m); ; +Morison['J2MBFzi'] = False # (N-m); ; +Morison['J3MBFzi'] = False # (N-m); ; +Morison['J4MBFzi'] = False # (N-m); ; +Morison['J5MBFzi'] = False # (N-m); ; +Morison['J6MBFzi'] = False # (N-m); ; +Morison['J7MBFzi'] = False # (N-m); ; +Morison['J8MBFzi'] = False # (N-m); ; +Morison['J9MBFzi'] = False # (N-m); ; +Morison['J1FIxi'] = False # (N); end-effect inertial forces ; +Morison['J2FIxi'] = False # (N); ; +Morison['J3FIxi'] = False # (N); ; +Morison['J4FIxi'] = False # (N); ; +Morison['J5FIxi'] = False # (N); ; +Morison['J6FIxi'] = False # (N); ; +Morison['J7FIxi'] = False # (N); ; +Morison['J8FIxi'] = False # (N); ; +Morison['J9FIxi'] = False # (N); ; +Morison['J1FIyi'] = False # (N); ; +Morison['J2FIyi'] = False # (N); ; +Morison['J3FIyi'] = False # (N); ; +Morison['J4FIyi'] = False # (N); ; +Morison['J5FIyi'] = False # (N); ; +Morison['J6FIyi'] = False # (N); ; +Morison['J7FIyi'] = False # (N); ; +Morison['J8FIyi'] = False # (N); ; +Morison['J9FIyi'] = False # (N); ; +Morison['J1FIzi'] = False # (N); ; +Morison['J2FIzi'] = False # (N); ; +Morison['J3FIzi'] = False # (N); ; +Morison['J4FIzi'] = False # (N); ; +Morison['J5FIzi'] = False # (N); ; +Morison['J6FIzi'] = False # (N); ; +Morison['J7FIzi'] = False # (N); ; +Morison['J8FIzi'] = False # (N); ; +Morison['J9FIzi'] = False # (N); ; +Morison['J1FAMxi'] = False # (N); added mass forces; +Morison['J2FAMxi'] = False # (N); ; +Morison['J3FAMxi'] = False # (N); ; +Morison['J4FAMxi'] = False # (N); ; +Morison['J5FAMxi'] = False # (N); ; +Morison['J6FAMxi'] = False # (N); ; +Morison['J7FAMxi'] = False # (N); ; +Morison['J8FAMxi'] = False # (N); ; +Morison['J9FAMxi'] = False # (N); ; +Morison['J1FAMyi'] = False # (N); ; +Morison['J2FAMyi'] = False # (N); ; +Morison['J3FAMyi'] = False # (N); ; +Morison['J4FAMyi'] = False # (N); ; +Morison['J5FAMyi'] = False # (N); ; +Morison['J6FAMyi'] = False # (N); ; +Morison['J7FAMyi'] = False # (N); ; +Morison['J8FAMyi'] = False # (N); ; +Morison['J9FAMyi'] = False # (N); ; +Morison['J1FAMzi'] = False # (N); ; +Morison['J2FAMzi'] = False # (N); ; +Morison['J3FAMzi'] = False # (N); ; +Morison['J4FAMzi'] = False # (N); ; +Morison['J5FAMzi'] = False # (N); ; +Morison['J6FAMzi'] = False # (N); ; +Morison['J7FAMzi'] = False # (N); ; +Morison['J8FAMzi'] = False # (N); ; +Morison['J9FAMzi'] = False # (N); ; + +""" SubDyn """ +SubDyn = {} + +# Member Forces +SubDyn['M1N1FKxe'] = False # (N); xe component of the shear at Node Nj of member Mi- Local Reference System- Static Component; +SubDyn['M1N2FKxe'] = False # (N); ; +SubDyn['M1N3FKxe'] = False # (N); ; +SubDyn['M1N4FKxe'] = False # (N); ; +SubDyn['M1N5FKxe'] = False # (N); ; +SubDyn['M1N6FKxe'] = False # (N); ; +SubDyn['M1N7FKxe'] = False # (N); ; +SubDyn['M1N8FKxe'] = False # (N); ; +SubDyn['M1N9FKxe'] = False # (N); ; +SubDyn['M2N1FKxe'] = False # (N); ; +SubDyn['M2N2FKxe'] = False # (N); ; +SubDyn['M2N3FKxe'] = False # (N); ; +SubDyn['M2N4FKxe'] = False # (N); ; +SubDyn['M2N5FKxe'] = False # (N); ; +SubDyn['M2N6FKxe'] = False # (N); ; +SubDyn['M2N7FKxe'] = False # (N); ; +SubDyn['M2N8FKxe'] = False # (N); ; +SubDyn['M2N9FKxe'] = False # (N); ; +SubDyn['M3N1FKxe'] = False # (N); ; +SubDyn['M3N2FKxe'] = False # (N); ; +SubDyn['M3N3FKxe'] = False # (N); ; +SubDyn['M3N4FKxe'] = False # (N); ; +SubDyn['M3N5FKxe'] = False # (N); ; +SubDyn['M3N6FKxe'] = False # (N); ; +SubDyn['M3N7FKxe'] = False # (N); ; +SubDyn['M3N8FKxe'] = False # (N); ; +SubDyn['M3N9FKxe'] = False # (N); ; +SubDyn['M4N1FKxe'] = False # (N); ; +SubDyn['M4N2FKxe'] = False # (N); ; +SubDyn['M4N3FKxe'] = False # (N); ; +SubDyn['M4N4FKxe'] = False # (N); ; +SubDyn['M4N5FKxe'] = False # (N); ; +SubDyn['M4N6FKxe'] = False # (N); ; +SubDyn['M4N7FKxe'] = False # (N); ; +SubDyn['M4N8FKxe'] = False # (N); ; +SubDyn['M4N9FKxe'] = False # (N); ; +SubDyn['M5N1FKxe'] = False # (N); ; +SubDyn['M5N2FKxe'] = False # (N); ; +SubDyn['M5N3FKxe'] = False # (N); ; +SubDyn['M5N4FKxe'] = False # (N); ; +SubDyn['M5N5FKxe'] = False # (N); ; +SubDyn['M5N6FKxe'] = False # (N); ; +SubDyn['M5N7FKxe'] = False # (N); ; +SubDyn['M5N8FKxe'] = False # (N); ; +SubDyn['M5N9FKxe'] = False # (N); ; +SubDyn['M6N1FKxe'] = False # (N); ; +SubDyn['M6N2FKxe'] = False # (N); ; +SubDyn['M6N3FKxe'] = False # (N); ; +SubDyn['M6N4FKxe'] = False # (N); ; +SubDyn['M6N5FKxe'] = False # (N); ; +SubDyn['M6N6FKxe'] = False # (N); ; +SubDyn['M6N7FKxe'] = False # (N); ; +SubDyn['M6N8FKxe'] = False # (N); ; +SubDyn['M6N9FKxe'] = False # (N); ; +SubDyn['M7N1FKxe'] = False # (N); ; +SubDyn['M7N2FKxe'] = False # (N); ; +SubDyn['M7N3FKxe'] = False # (N); ; +SubDyn['M7N4FKxe'] = False # (N); ; +SubDyn['M7N5FKxe'] = False # (N); ; +SubDyn['M7N6FKxe'] = False # (N); ; +SubDyn['M7N7FKxe'] = False # (N); ; +SubDyn['M7N8FKxe'] = False # (N); ; +SubDyn['M7N9FKxe'] = False # (N); ; +SubDyn['M8N1FKxe'] = False # (N); ; +SubDyn['M8N2FKxe'] = False # (N); ; +SubDyn['M8N3FKxe'] = False # (N); ; +SubDyn['M8N4FKxe'] = False # (N); ; +SubDyn['M8N5FKxe'] = False # (N); ; +SubDyn['M8N6FKxe'] = False # (N); ; +SubDyn['M8N7FKxe'] = False # (N); ; +SubDyn['M8N8FKxe'] = False # (N); ; +SubDyn['M8N9FKxe'] = False # (N); ; +SubDyn['M9N1FKxe'] = False # (N); ; +SubDyn['M9N2FKxe'] = False # (N); ; +SubDyn['M9N3FKxe'] = False # (N); ; +SubDyn['M9N4FKxe'] = False # (N); ; +SubDyn['M9N5FKxe'] = False # (N); ; +SubDyn['M9N6FKxe'] = False # (N); ; +SubDyn['M9N7FKxe'] = False # (N); ; +SubDyn['M9N8FKxe'] = False # (N); ; +SubDyn['M9N9FKxe'] = False # (N); ; +SubDyn['M1N1FKye'] = False # (N); ye component of the shear at Node Nj of member Mi- Local Reference System- Static Component; +SubDyn['M1N2FKye'] = False # (N); ; +SubDyn['M1N3FKye'] = False # (N); ; +SubDyn['M1N4FKye'] = False # (N); ; +SubDyn['M1N5FKye'] = False # (N); ; +SubDyn['M1N6FKye'] = False # (N); ; +SubDyn['M1N7FKye'] = False # (N); ; +SubDyn['M1N8FKye'] = False # (N); ; +SubDyn['M1N9FKye'] = False # (N); ; +SubDyn['M2N1FKye'] = False # (N); ; +SubDyn['M2N2FKye'] = False # (N); ; +SubDyn['M2N3FKye'] = False # (N); ; +SubDyn['M2N4FKye'] = False # (N); ; +SubDyn['M2N5FKye'] = False # (N); ; +SubDyn['M2N6FKye'] = False # (N); ; +SubDyn['M2N7FKye'] = False # (N); ; +SubDyn['M2N8FKye'] = False # (N); ; +SubDyn['M2N9FKye'] = False # (N); ; +SubDyn['M3N1FKye'] = False # (N); ; +SubDyn['M3N2FKye'] = False # (N); ; +SubDyn['M3N3FKye'] = False # (N); ; +SubDyn['M3N4FKye'] = False # (N); ; +SubDyn['M3N5FKye'] = False # (N); ; +SubDyn['M3N6FKye'] = False # (N); ; +SubDyn['M3N7FKye'] = False # (N); ; +SubDyn['M3N8FKye'] = False # (N); ; +SubDyn['M3N9FKye'] = False # (N); ; +SubDyn['M4N1FKye'] = False # (N); ; +SubDyn['M4N2FKye'] = False # (N); ; +SubDyn['M4N3FKye'] = False # (N); ; +SubDyn['M4N4FKye'] = False # (N); ; +SubDyn['M4N5FKye'] = False # (N); ; +SubDyn['M4N6FKye'] = False # (N); ; +SubDyn['M4N7FKye'] = False # (N); ; +SubDyn['M4N8FKye'] = False # (N); ; +SubDyn['M4N9FKye'] = False # (N); ; +SubDyn['M5N1FKye'] = False # (N); ; +SubDyn['M5N2FKye'] = False # (N); ; +SubDyn['M5N3FKye'] = False # (N); ; +SubDyn['M5N4FKye'] = False # (N); ; +SubDyn['M5N5FKye'] = False # (N); ; +SubDyn['M5N6FKye'] = False # (N); ; +SubDyn['M5N7FKye'] = False # (N); ; +SubDyn['M5N8FKye'] = False # (N); ; +SubDyn['M5N9FKye'] = False # (N); ; +SubDyn['M6N1FKye'] = False # (N); ; +SubDyn['M6N2FKye'] = False # (N); ; +SubDyn['M6N3FKye'] = False # (N); ; +SubDyn['M6N4FKye'] = False # (N); ; +SubDyn['M6N5FKye'] = False # (N); ; +SubDyn['M6N6FKye'] = False # (N); ; +SubDyn['M6N7FKye'] = False # (N); ; +SubDyn['M6N8FKye'] = False # (N); ; +SubDyn['M6N9FKye'] = False # (N); ; +SubDyn['M7N1FKye'] = False # (N); ; +SubDyn['M7N2FKye'] = False # (N); ; +SubDyn['M7N3FKye'] = False # (N); ; +SubDyn['M7N4FKye'] = False # (N); ; +SubDyn['M7N5FKye'] = False # (N); ; +SubDyn['M7N6FKye'] = False # (N); ; +SubDyn['M7N7FKye'] = False # (N); ; +SubDyn['M7N8FKye'] = False # (N); ; +SubDyn['M7N9FKye'] = False # (N); ; +SubDyn['M8N1FKye'] = False # (N); ; +SubDyn['M8N2FKye'] = False # (N); ; +SubDyn['M8N3FKye'] = False # (N); ; +SubDyn['M8N4FKye'] = False # (N); ; +SubDyn['M8N5FKye'] = False # (N); ; +SubDyn['M8N6FKye'] = False # (N); ; +SubDyn['M8N7FKye'] = False # (N); ; +SubDyn['M8N8FKye'] = False # (N); ; +SubDyn['M8N9FKye'] = False # (N); ; +SubDyn['M9N1FKye'] = False # (N); ; +SubDyn['M9N2FKye'] = False # (N); ; +SubDyn['M9N3FKye'] = False # (N); ; +SubDyn['M9N4FKye'] = False # (N); ; +SubDyn['M9N5FKye'] = False # (N); ; +SubDyn['M9N6FKye'] = False # (N); ; +SubDyn['M9N7FKye'] = False # (N); ; +SubDyn['M9N8FKye'] = False # (N); ; +SubDyn['M9N9FKye'] = False # (N); ; +SubDyn['M1N1FKze'] = False # (N); Axial Force at Node Nj of member Mi- Local Reference System- Static Component; +SubDyn['M1N2FKze'] = False # (N); ; +SubDyn['M1N3FKze'] = False # (N); ; +SubDyn['M1N4FKze'] = False # (N); ; +SubDyn['M1N5FKze'] = False # (N); ; +SubDyn['M1N6FKze'] = False # (N); ; +SubDyn['M1N7FKze'] = False # (N); ; +SubDyn['M1N8FKze'] = False # (N); ; +SubDyn['M1N9FKze'] = False # (N); ; +SubDyn['M2N1FKze'] = False # (N); ; +SubDyn['M2N2FKze'] = False # (N); ; +SubDyn['M2N3FKze'] = False # (N); ; +SubDyn['M2N4FKze'] = False # (N); ; +SubDyn['M2N5FKze'] = False # (N); ; +SubDyn['M2N6FKze'] = False # (N); ; +SubDyn['M2N7FKze'] = False # (N); ; +SubDyn['M2N8FKze'] = False # (N); ; +SubDyn['M2N9FKze'] = False # (N); ; +SubDyn['M3N1FKze'] = False # (N); ; +SubDyn['M3N2FKze'] = False # (N); ; +SubDyn['M3N3FKze'] = False # (N); ; +SubDyn['M3N4FKze'] = False # (N); ; +SubDyn['M3N5FKze'] = False # (N); ; +SubDyn['M3N6FKze'] = False # (N); ; +SubDyn['M3N7FKze'] = False # (N); ; +SubDyn['M3N8FKze'] = False # (N); ; +SubDyn['M3N9FKze'] = False # (N); ; +SubDyn['M4N1FKze'] = False # (N); ; +SubDyn['M4N2FKze'] = False # (N); ; +SubDyn['M4N3FKze'] = False # (N); ; +SubDyn['M4N4FKze'] = False # (N); ; +SubDyn['M4N5FKze'] = False # (N); ; +SubDyn['M4N6FKze'] = False # (N); ; +SubDyn['M4N7FKze'] = False # (N); ; +SubDyn['M4N8FKze'] = False # (N); ; +SubDyn['M4N9FKze'] = False # (N); ; +SubDyn['M5N1FKze'] = False # (N); ; +SubDyn['M5N2FKze'] = False # (N); ; +SubDyn['M5N3FKze'] = False # (N); ; +SubDyn['M5N4FKze'] = False # (N); ; +SubDyn['M5N5FKze'] = False # (N); ; +SubDyn['M5N6FKze'] = False # (N); ; +SubDyn['M5N7FKze'] = False # (N); ; +SubDyn['M5N8FKze'] = False # (N); ; +SubDyn['M5N9FKze'] = False # (N); ; +SubDyn['M6N1FKze'] = False # (N); ; +SubDyn['M6N2FKze'] = False # (N); ; +SubDyn['M6N3FKze'] = False # (N); ; +SubDyn['M6N4FKze'] = False # (N); ; +SubDyn['M6N5FKze'] = False # (N); ; +SubDyn['M6N6FKze'] = False # (N); ; +SubDyn['M6N7FKze'] = False # (N); ; +SubDyn['M6N8FKze'] = False # (N); ; +SubDyn['M6N9FKze'] = False # (N); ; +SubDyn['M7N1FKze'] = False # (N); ; +SubDyn['M7N2FKze'] = False # (N); ; +SubDyn['M7N3FKze'] = False # (N); ; +SubDyn['M7N4FKze'] = False # (N); ; +SubDyn['M7N5FKze'] = False # (N); ; +SubDyn['M7N6FKze'] = False # (N); ; +SubDyn['M7N7FKze'] = False # (N); ; +SubDyn['M7N8FKze'] = False # (N); ; +SubDyn['M7N9FKze'] = False # (N); ; +SubDyn['M8N1FKze'] = False # (N); ; +SubDyn['M8N2FKze'] = False # (N); ; +SubDyn['M8N3FKze'] = False # (N); ; +SubDyn['M8N4FKze'] = False # (N); ; +SubDyn['M8N5FKze'] = False # (N); ; +SubDyn['M8N6FKze'] = False # (N); ; +SubDyn['M8N7FKze'] = False # (N); ; +SubDyn['M8N8FKze'] = False # (N); ; +SubDyn['M8N9FKze'] = False # (N); ; +SubDyn['M9N1FKze'] = False # (N); ; +SubDyn['M9N2FKze'] = False # (N); ; +SubDyn['M9N3FKze'] = False # (N); ; +SubDyn['M9N4FKze'] = False # (N); ; +SubDyn['M9N5FKze'] = False # (N); ; +SubDyn['M9N6FKze'] = False # (N); ; +SubDyn['M9N7FKze'] = False # (N); ; +SubDyn['M9N8FKze'] = False # (N); ; +SubDyn['M9N9FKze'] = False # (N); ; +SubDyn['M1N1FMxe'] = False # (N); xe component of the shear at Node Nj of member Mi- Local Reference System- Dynamic Component; +SubDyn['M1N2FMxe'] = False # (N); ; +SubDyn['M1N3FMxe'] = False # (N); ; +SubDyn['M1N4FMxe'] = False # (N); ; +SubDyn['M1N5FMxe'] = False # (N); ; +SubDyn['M1N6FMxe'] = False # (N); ; +SubDyn['M1N7FMxe'] = False # (N); ; +SubDyn['M1N8FMxe'] = False # (N); ; +SubDyn['M1N9FMxe'] = False # (N); ; +SubDyn['M2N1FMxe'] = False # (N); ; +SubDyn['M2N2FMxe'] = False # (N); ; +SubDyn['M2N3FMxe'] = False # (N); ; +SubDyn['M2N4FMxe'] = False # (N); ; +SubDyn['M2N5FMxe'] = False # (N); ; +SubDyn['M2N6FMxe'] = False # (N); ; +SubDyn['M2N7FMxe'] = False # (N); ; +SubDyn['M2N8FMxe'] = False # (N); ; +SubDyn['M2N9FMxe'] = False # (N); ; +SubDyn['M3N1FMxe'] = False # (N); ; +SubDyn['M3N2FMxe'] = False # (N); ; +SubDyn['M3N3FMxe'] = False # (N); ; +SubDyn['M3N4FMxe'] = False # (N); ; +SubDyn['M3N5FMxe'] = False # (N); ; +SubDyn['M3N6FMxe'] = False # (N); ; +SubDyn['M3N7FMxe'] = False # (N); ; +SubDyn['M3N8FMxe'] = False # (N); ; +SubDyn['M3N9FMxe'] = False # (N); ; +SubDyn['M4N1FMxe'] = False # (N); ; +SubDyn['M4N2FMxe'] = False # (N); ; +SubDyn['M4N3FMxe'] = False # (N); ; +SubDyn['M4N4FMxe'] = False # (N); ; +SubDyn['M4N5FMxe'] = False # (N); ; +SubDyn['M4N6FMxe'] = False # (N); ; +SubDyn['M4N7FMxe'] = False # (N); ; +SubDyn['M4N8FMxe'] = False # (N); ; +SubDyn['M4N9FMxe'] = False # (N); ; +SubDyn['M5N1FMxe'] = False # (N); ; +SubDyn['M5N2FMxe'] = False # (N); ; +SubDyn['M5N3FMxe'] = False # (N); ; +SubDyn['M5N4FMxe'] = False # (N); ; +SubDyn['M5N5FMxe'] = False # (N); ; +SubDyn['M5N6FMxe'] = False # (N); ; +SubDyn['M5N7FMxe'] = False # (N); ; +SubDyn['M5N8FMxe'] = False # (N); ; +SubDyn['M5N9FMxe'] = False # (N); ; +SubDyn['M6N1FMxe'] = False # (N); ; +SubDyn['M6N2FMxe'] = False # (N); ; +SubDyn['M6N3FMxe'] = False # (N); ; +SubDyn['M6N4FMxe'] = False # (N); ; +SubDyn['M6N5FMxe'] = False # (N); ; +SubDyn['M6N6FMxe'] = False # (N); ; +SubDyn['M6N7FMxe'] = False # (N); ; +SubDyn['M6N8FMxe'] = False # (N); ; +SubDyn['M6N9FMxe'] = False # (N); ; +SubDyn['M7N1FMxe'] = False # (N); ; +SubDyn['M7N2FMxe'] = False # (N); ; +SubDyn['M7N3FMxe'] = False # (N); ; +SubDyn['M7N4FMxe'] = False # (N); ; +SubDyn['M7N5FMxe'] = False # (N); ; +SubDyn['M7N6FMxe'] = False # (N); ; +SubDyn['M7N7FMxe'] = False # (N); ; +SubDyn['M7N8FMxe'] = False # (N); ; +SubDyn['M7N9FMxe'] = False # (N); ; +SubDyn['M8N1FMxe'] = False # (N); ; +SubDyn['M8N2FMxe'] = False # (N); ; +SubDyn['M8N3FMxe'] = False # (N); ; +SubDyn['M8N4FMxe'] = False # (N); ; +SubDyn['M8N5FMxe'] = False # (N); ; +SubDyn['M8N6FMxe'] = False # (N); ; +SubDyn['M8N7FMxe'] = False # (N); ; +SubDyn['M8N8FMxe'] = False # (N); ; +SubDyn['M8N9FMxe'] = False # (N); ; +SubDyn['M9N1FMxe'] = False # (N); ; +SubDyn['M9N2FMxe'] = False # (N); ; +SubDyn['M9N3FMxe'] = False # (N); ; +SubDyn['M9N4FMxe'] = False # (N); ; +SubDyn['M9N5FMxe'] = False # (N); ; +SubDyn['M9N6FMxe'] = False # (N); ; +SubDyn['M9N7FMxe'] = False # (N); ; +SubDyn['M9N8FMxe'] = False # (N); ; +SubDyn['M9N9FMxe'] = False # (N); ; +SubDyn['M1N1FMye'] = False # (N); ye component of the shear at Node Nj of member Mi- Local Reference System- Dynamic Component; +SubDyn['M1N2FMye'] = False # (N); ; +SubDyn['M1N3FMye'] = False # (N); ; +SubDyn['M1N4FMye'] = False # (N); ; +SubDyn['M1N5FMye'] = False # (N); ; +SubDyn['M1N6FMye'] = False # (N); ; +SubDyn['M1N7FMye'] = False # (N); ; +SubDyn['M1N8FMye'] = False # (N); ; +SubDyn['M1N9FMye'] = False # (N); ; +SubDyn['M2N1FMye'] = False # (N); ; +SubDyn['M2N2FMye'] = False # (N); ; +SubDyn['M2N3FMye'] = False # (N); ; +SubDyn['M2N4FMye'] = False # (N); ; +SubDyn['M2N5FMye'] = False # (N); ; +SubDyn['M2N6FMye'] = False # (N); ; +SubDyn['M2N7FMye'] = False # (N); ; +SubDyn['M2N8FMye'] = False # (N); ; +SubDyn['M2N9FMye'] = False # (N); ; +SubDyn['M3N1FMye'] = False # (N); ; +SubDyn['M3N2FMye'] = False # (N); ; +SubDyn['M3N3FMye'] = False # (N); ; +SubDyn['M3N4FMye'] = False # (N); ; +SubDyn['M3N5FMye'] = False # (N); ; +SubDyn['M3N6FMye'] = False # (N); ; +SubDyn['M3N7FMye'] = False # (N); ; +SubDyn['M3N8FMye'] = False # (N); ; +SubDyn['M3N9FMye'] = False # (N); ; +SubDyn['M4N1FMye'] = False # (N); ; +SubDyn['M4N2FMye'] = False # (N); ; +SubDyn['M4N3FMye'] = False # (N); ; +SubDyn['M4N4FMye'] = False # (N); ; +SubDyn['M4N5FMye'] = False # (N); ; +SubDyn['M4N6FMye'] = False # (N); ; +SubDyn['M4N7FMye'] = False # (N); ; +SubDyn['M4N8FMye'] = False # (N); ; +SubDyn['M4N9FMye'] = False # (N); ; +SubDyn['M5N1FMye'] = False # (N); ; +SubDyn['M5N2FMye'] = False # (N); ; +SubDyn['M5N3FMye'] = False # (N); ; +SubDyn['M5N4FMye'] = False # (N); ; +SubDyn['M5N5FMye'] = False # (N); ; +SubDyn['M5N6FMye'] = False # (N); ; +SubDyn['M5N7FMye'] = False # (N); ; +SubDyn['M5N8FMye'] = False # (N); ; +SubDyn['M5N9FMye'] = False # (N); ; +SubDyn['M6N1FMye'] = False # (N); ; +SubDyn['M6N2FMye'] = False # (N); ; +SubDyn['M6N3FMye'] = False # (N); ; +SubDyn['M6N4FMye'] = False # (N); ; +SubDyn['M6N5FMye'] = False # (N); ; +SubDyn['M6N6FMye'] = False # (N); ; +SubDyn['M6N7FMye'] = False # (N); ; +SubDyn['M6N8FMye'] = False # (N); ; +SubDyn['M6N9FMye'] = False # (N); ; +SubDyn['M7N1FMye'] = False # (N); ; +SubDyn['M7N2FMye'] = False # (N); ; +SubDyn['M7N3FMye'] = False # (N); ; +SubDyn['M7N4FMye'] = False # (N); ; +SubDyn['M7N5FMye'] = False # (N); ; +SubDyn['M7N6FMye'] = False # (N); ; +SubDyn['M7N7FMye'] = False # (N); ; +SubDyn['M7N8FMye'] = False # (N); ; +SubDyn['M7N9FMye'] = False # (N); ; +SubDyn['M8N1FMye'] = False # (N); ; +SubDyn['M8N2FMye'] = False # (N); ; +SubDyn['M8N3FMye'] = False # (N); ; +SubDyn['M8N4FMye'] = False # (N); ; +SubDyn['M8N5FMye'] = False # (N); ; +SubDyn['M8N6FMye'] = False # (N); ; +SubDyn['M8N7FMye'] = False # (N); ; +SubDyn['M8N8FMye'] = False # (N); ; +SubDyn['M8N9FMye'] = False # (N); ; +SubDyn['M9N1FMye'] = False # (N); ; +SubDyn['M9N2FMye'] = False # (N); ; +SubDyn['M9N3FMye'] = False # (N); ; +SubDyn['M9N4FMye'] = False # (N); ; +SubDyn['M9N5FMye'] = False # (N); ; +SubDyn['M9N6FMye'] = False # (N); ; +SubDyn['M9N7FMye'] = False # (N); ; +SubDyn['M9N8FMye'] = False # (N); ; +SubDyn['M9N9FMye'] = False # (N); ; +SubDyn['M1N1FMze'] = False # (N); axial force at Node Nj of member Mi- Local Reference System- Dynamic Component; +SubDyn['M1N2FMze'] = False # (N); ; +SubDyn['M1N3FMze'] = False # (N); ; +SubDyn['M1N4FMze'] = False # (N); ; +SubDyn['M1N5FMze'] = False # (N); ; +SubDyn['M1N6FMze'] = False # (N); ; +SubDyn['M1N7FMze'] = False # (N); ; +SubDyn['M1N8FMze'] = False # (N); ; +SubDyn['M1N9FMze'] = False # (N); ; +SubDyn['M2N1FMze'] = False # (N); ; +SubDyn['M2N2FMze'] = False # (N); ; +SubDyn['M2N3FMze'] = False # (N); ; +SubDyn['M2N4FMze'] = False # (N); ; +SubDyn['M2N5FMze'] = False # (N); ; +SubDyn['M2N6FMze'] = False # (N); ; +SubDyn['M2N7FMze'] = False # (N); ; +SubDyn['M2N8FMze'] = False # (N); ; +SubDyn['M2N9FMze'] = False # (N); ; +SubDyn['M3N1FMze'] = False # (N); ; +SubDyn['M3N2FMze'] = False # (N); ; +SubDyn['M3N3FMze'] = False # (N); ; +SubDyn['M3N4FMze'] = False # (N); ; +SubDyn['M3N5FMze'] = False # (N); ; +SubDyn['M3N6FMze'] = False # (N); ; +SubDyn['M3N7FMze'] = False # (N); ; +SubDyn['M3N8FMze'] = False # (N); ; +SubDyn['M3N9FMze'] = False # (N); ; +SubDyn['M4N1FMze'] = False # (N); ; +SubDyn['M4N2FMze'] = False # (N); ; +SubDyn['M4N3FMze'] = False # (N); ; +SubDyn['M4N4FMze'] = False # (N); ; +SubDyn['M4N5FMze'] = False # (N); ; +SubDyn['M4N6FMze'] = False # (N); ; +SubDyn['M4N7FMze'] = False # (N); ; +SubDyn['M4N8FMze'] = False # (N); ; +SubDyn['M4N9FMze'] = False # (N); ; +SubDyn['M5N1FMze'] = False # (N); ; +SubDyn['M5N2FMze'] = False # (N); ; +SubDyn['M5N3FMze'] = False # (N); ; +SubDyn['M5N4FMze'] = False # (N); ; +SubDyn['M5N5FMze'] = False # (N); ; +SubDyn['M5N6FMze'] = False # (N); ; +SubDyn['M5N7FMze'] = False # (N); ; +SubDyn['M5N8FMze'] = False # (N); ; +SubDyn['M5N9FMze'] = False # (N); ; +SubDyn['M6N1FMze'] = False # (N); ; +SubDyn['M6N2FMze'] = False # (N); ; +SubDyn['M6N3FMze'] = False # (N); ; +SubDyn['M6N4FMze'] = False # (N); ; +SubDyn['M6N5FMze'] = False # (N); ; +SubDyn['M6N6FMze'] = False # (N); ; +SubDyn['M6N7FMze'] = False # (N); ; +SubDyn['M6N8FMze'] = False # (N); ; +SubDyn['M6N9FMze'] = False # (N); ; +SubDyn['M7N1FMze'] = False # (N); ; +SubDyn['M7N2FMze'] = False # (N); ; +SubDyn['M7N3FMze'] = False # (N); ; +SubDyn['M7N4FMze'] = False # (N); ; +SubDyn['M7N5FMze'] = False # (N); ; +SubDyn['M7N6FMze'] = False # (N); ; +SubDyn['M7N7FMze'] = False # (N); ; +SubDyn['M7N8FMze'] = False # (N); ; +SubDyn['M7N9FMze'] = False # (N); ; +SubDyn['M8N1FMze'] = False # (N); ; +SubDyn['M8N2FMze'] = False # (N); ; +SubDyn['M8N3FMze'] = False # (N); ; +SubDyn['M8N4FMze'] = False # (N); ; +SubDyn['M8N5FMze'] = False # (N); ; +SubDyn['M8N6FMze'] = False # (N); ; +SubDyn['M8N7FMze'] = False # (N); ; +SubDyn['M8N8FMze'] = False # (N); ; +SubDyn['M8N9FMze'] = False # (N); ; +SubDyn['M9N1FMze'] = False # (N); ; +SubDyn['M9N2FMze'] = False # (N); ; +SubDyn['M9N3FMze'] = False # (N); ; +SubDyn['M9N4FMze'] = False # (N); ; +SubDyn['M9N5FMze'] = False # (N); ; +SubDyn['M9N6FMze'] = False # (N); ; +SubDyn['M9N7FMze'] = False # (N); ; +SubDyn['M9N8FMze'] = False # (N); ; +SubDyn['M9N9FMze'] = False # (N); ; +SubDyn['M1N1MKxe'] = False # (N*m); xe component of the bending moment at Node Nj of member Mi- Local Reference System- Static Component; +SubDyn['M1N2MKxe'] = False # (N*m); ; +SubDyn['M1N3MKxe'] = False # (N*m); ; +SubDyn['M1N4MKxe'] = False # (N*m); ; +SubDyn['M1N5MKxe'] = False # (N*m); ; +SubDyn['M1N6MKxe'] = False # (N*m); ; +SubDyn['M1N7MKxe'] = False # (N*m); ; +SubDyn['M1N8MKxe'] = False # (N*m); ; +SubDyn['M1N9MKxe'] = False # (N*m); ; +SubDyn['M2N1MKxe'] = False # (N*m); ; +SubDyn['M2N2MKxe'] = False # (N*m); ; +SubDyn['M2N3MKxe'] = False # (N*m); ; +SubDyn['M2N4MKxe'] = False # (N*m); ; +SubDyn['M2N5MKxe'] = False # (N*m); ; +SubDyn['M2N6MKxe'] = False # (N*m); ; +SubDyn['M2N7MKxe'] = False # (N*m); ; +SubDyn['M2N8MKxe'] = False # (N*m); ; +SubDyn['M2N9MKxe'] = False # (N*m); ; +SubDyn['M3N1MKxe'] = False # (N*m); ; +SubDyn['M3N2MKxe'] = False # (N*m); ; +SubDyn['M3N3MKxe'] = False # (N*m); ; +SubDyn['M3N4MKxe'] = False # (N*m); ; +SubDyn['M3N5MKxe'] = False # (N*m); ; +SubDyn['M3N6MKxe'] = False # (N*m); ; +SubDyn['M3N7MKxe'] = False # (N*m); ; +SubDyn['M3N8MKxe'] = False # (N*m); ; +SubDyn['M3N9MKxe'] = False # (N*m); ; +SubDyn['M4N1MKxe'] = False # (N*m); ; +SubDyn['M4N2MKxe'] = False # (N*m); ; +SubDyn['M4N3MKxe'] = False # (N*m); ; +SubDyn['M4N4MKxe'] = False # (N*m); ; +SubDyn['M4N5MKxe'] = False # (N*m); ; +SubDyn['M4N6MKxe'] = False # (N*m); ; +SubDyn['M4N7MKxe'] = False # (N*m); ; +SubDyn['M4N8MKxe'] = False # (N*m); ; +SubDyn['M4N9MKxe'] = False # (N*m); ; +SubDyn['M5N1MKxe'] = False # (N*m); ; +SubDyn['M5N2MKxe'] = False # (N*m); ; +SubDyn['M5N3MKxe'] = False # (N*m); ; +SubDyn['M5N4MKxe'] = False # (N*m); ; +SubDyn['M5N5MKxe'] = False # (N*m); ; +SubDyn['M5N6MKxe'] = False # (N*m); ; +SubDyn['M5N7MKxe'] = False # (N*m); ; +SubDyn['M5N8MKxe'] = False # (N*m); ; +SubDyn['M5N9MKxe'] = False # (N*m); ; +SubDyn['M6N1MKxe'] = False # (N*m); ; +SubDyn['M6N2MKxe'] = False # (N*m); ; +SubDyn['M6N3MKxe'] = False # (N*m); ; +SubDyn['M6N4MKxe'] = False # (N*m); ; +SubDyn['M6N5MKxe'] = False # (N*m); ; +SubDyn['M6N6MKxe'] = False # (N*m); ; +SubDyn['M6N7MKxe'] = False # (N*m); ; +SubDyn['M6N8MKxe'] = False # (N*m); ; +SubDyn['M6N9MKxe'] = False # (N*m); ; +SubDyn['M7N1MKxe'] = False # (N*m); ; +SubDyn['M7N2MKxe'] = False # (N*m); ; +SubDyn['M7N3MKxe'] = False # (N*m); ; +SubDyn['M7N4MKxe'] = False # (N*m); ; +SubDyn['M7N5MKxe'] = False # (N*m); ; +SubDyn['M7N6MKxe'] = False # (N*m); ; +SubDyn['M7N7MKxe'] = False # (N*m); ; +SubDyn['M7N8MKxe'] = False # (N*m); ; +SubDyn['M7N9MKxe'] = False # (N*m); ; +SubDyn['M8N1MKxe'] = False # (N*m); ; +SubDyn['M8N2MKxe'] = False # (N*m); ; +SubDyn['M8N3MKxe'] = False # (N*m); ; +SubDyn['M8N4MKxe'] = False # (N*m); ; +SubDyn['M8N5MKxe'] = False # (N*m); ; +SubDyn['M8N6MKxe'] = False # (N*m); ; +SubDyn['M8N7MKxe'] = False # (N*m); ; +SubDyn['M8N8MKxe'] = False # (N*m); ; +SubDyn['M8N9MKxe'] = False # (N*m); ; +SubDyn['M9N1MKxe'] = False # (N*m); ; +SubDyn['M9N2MKxe'] = False # (N*m); ; +SubDyn['M9N3MKxe'] = False # (N*m); ; +SubDyn['M9N4MKxe'] = False # (N*m); ; +SubDyn['M9N5MKxe'] = False # (N*m); ; +SubDyn['M9N6MKxe'] = False # (N*m); ; +SubDyn['M9N7MKxe'] = False # (N*m); ; +SubDyn['M9N8MKxe'] = False # (N*m); ; +SubDyn['M9N9MKxe'] = False # (N*m); ; +SubDyn['M1N1MKye'] = False # (N*m); ye component of the bending moment at Node Nj of member Mi- Local Reference System- Static Component; +SubDyn['M1N2MKye'] = False # (N*m); ; +SubDyn['M1N3MKye'] = False # (N*m); ; +SubDyn['M1N4MKye'] = False # (N*m); ; +SubDyn['M1N5MKye'] = False # (N*m); ; +SubDyn['M1N6MKye'] = False # (N*m); ; +SubDyn['M1N7MKye'] = False # (N*m); ; +SubDyn['M1N8MKye'] = False # (N*m); ; +SubDyn['M1N9MKye'] = False # (N*m); ; +SubDyn['M2N1MKye'] = False # (N*m); ; +SubDyn['M2N2MKye'] = False # (N*m); ; +SubDyn['M2N3MKye'] = False # (N*m); ; +SubDyn['M2N4MKye'] = False # (N*m); ; +SubDyn['M2N5MKye'] = False # (N*m); ; +SubDyn['M2N6MKye'] = False # (N*m); ; +SubDyn['M2N7MKye'] = False # (N*m); ; +SubDyn['M2N8MKye'] = False # (N*m); ; +SubDyn['M2N9MKye'] = False # (N*m); ; +SubDyn['M3N1MKye'] = False # (N*m); ; +SubDyn['M3N2MKye'] = False # (N*m); ; +SubDyn['M3N3MKye'] = False # (N*m); ; +SubDyn['M3N4MKye'] = False # (N*m); ; +SubDyn['M3N5MKye'] = False # (N*m); ; +SubDyn['M3N6MKye'] = False # (N*m); ; +SubDyn['M3N7MKye'] = False # (N*m); ; +SubDyn['M3N8MKye'] = False # (N*m); ; +SubDyn['M3N9MKye'] = False # (N*m); ; +SubDyn['M4N1MKye'] = False # (N*m); ; +SubDyn['M4N2MKye'] = False # (N*m); ; +SubDyn['M4N3MKye'] = False # (N*m); ; +SubDyn['M4N4MKye'] = False # (N*m); ; +SubDyn['M4N5MKye'] = False # (N*m); ; +SubDyn['M4N6MKye'] = False # (N*m); ; +SubDyn['M4N7MKye'] = False # (N*m); ; +SubDyn['M4N8MKye'] = False # (N*m); ; +SubDyn['M4N9MKye'] = False # (N*m); ; +SubDyn['M5N1MKye'] = False # (N*m); ; +SubDyn['M5N2MKye'] = False # (N*m); ; +SubDyn['M5N3MKye'] = False # (N*m); ; +SubDyn['M5N4MKye'] = False # (N*m); ; +SubDyn['M5N5MKye'] = False # (N*m); ; +SubDyn['M5N6MKye'] = False # (N*m); ; +SubDyn['M5N7MKye'] = False # (N*m); ; +SubDyn['M5N8MKye'] = False # (N*m); ; +SubDyn['M5N9MKye'] = False # (N*m); ; +SubDyn['M6N1MKye'] = False # (N*m); ; +SubDyn['M6N2MKye'] = False # (N*m); ; +SubDyn['M6N3MKye'] = False # (N*m); ; +SubDyn['M6N4MKye'] = False # (N*m); ; +SubDyn['M6N5MKye'] = False # (N*m); ; +SubDyn['M6N6MKye'] = False # (N*m); ; +SubDyn['M6N7MKye'] = False # (N*m); ; +SubDyn['M6N8MKye'] = False # (N*m); ; +SubDyn['M6N9MKye'] = False # (N*m); ; +SubDyn['M7N1MKye'] = False # (N*m); ; +SubDyn['M7N2MKye'] = False # (N*m); ; +SubDyn['M7N3MKye'] = False # (N*m); ; +SubDyn['M7N4MKye'] = False # (N*m); ; +SubDyn['M7N5MKye'] = False # (N*m); ; +SubDyn['M7N6MKye'] = False # (N*m); ; +SubDyn['M7N7MKye'] = False # (N*m); ; +SubDyn['M7N8MKye'] = False # (N*m); ; +SubDyn['M7N9MKye'] = False # (N*m); ; +SubDyn['M8N1MKye'] = False # (N*m); ; +SubDyn['M8N2MKye'] = False # (N*m); ; +SubDyn['M8N3MKye'] = False # (N*m); ; +SubDyn['M8N4MKye'] = False # (N*m); ; +SubDyn['M8N5MKye'] = False # (N*m); ; +SubDyn['M8N6MKye'] = False # (N*m); ; +SubDyn['M8N7MKye'] = False # (N*m); ; +SubDyn['M8N8MKye'] = False # (N*m); ; +SubDyn['M8N9MKye'] = False # (N*m); ; +SubDyn['M9N1MKye'] = False # (N*m); ; +SubDyn['M9N2MKye'] = False # (N*m); ; +SubDyn['M9N3MKye'] = False # (N*m); ; +SubDyn['M9N4MKye'] = False # (N*m); ; +SubDyn['M9N5MKye'] = False # (N*m); ; +SubDyn['M9N6MKye'] = False # (N*m); ; +SubDyn['M9N7MKye'] = False # (N*m); ; +SubDyn['M9N8MKye'] = False # (N*m); ; +SubDyn['M9N9MKye'] = False # (N*m); ; +SubDyn['M1N1MKze'] = False # (N*m); Torsion moment at Node Nj of member Mi- Local Reference System- Static Component; +SubDyn['M1N2MKze'] = False # (N*m); ; +SubDyn['M1N3MKze'] = False # (N*m); ; +SubDyn['M1N4MKze'] = False # (N*m); ; +SubDyn['M1N5MKze'] = False # (N*m); ; +SubDyn['M1N6MKze'] = False # (N*m); ; +SubDyn['M1N7MKze'] = False # (N*m); ; +SubDyn['M1N8MKze'] = False # (N*m); ; +SubDyn['M1N9MKze'] = False # (N*m); ; +SubDyn['M2N1MKze'] = False # (N*m); ; +SubDyn['M2N2MKze'] = False # (N*m); ; +SubDyn['M2N3MKze'] = False # (N*m); ; +SubDyn['M2N4MKze'] = False # (N*m); ; +SubDyn['M2N5MKze'] = False # (N*m); ; +SubDyn['M2N6MKze'] = False # (N*m); ; +SubDyn['M2N7MKze'] = False # (N*m); ; +SubDyn['M2N8MKze'] = False # (N*m); ; +SubDyn['M2N9MKze'] = False # (N*m); ; +SubDyn['M3N1MKze'] = False # (N*m); ; +SubDyn['M3N2MKze'] = False # (N*m); ; +SubDyn['M3N3MKze'] = False # (N*m); ; +SubDyn['M3N4MKze'] = False # (N*m); ; +SubDyn['M3N5MKze'] = False # (N*m); ; +SubDyn['M3N6MKze'] = False # (N*m); ; +SubDyn['M3N7MKze'] = False # (N*m); ; +SubDyn['M3N8MKze'] = False # (N*m); ; +SubDyn['M3N9MKze'] = False # (N*m); ; +SubDyn['M4N1MKze'] = False # (N*m); ; +SubDyn['M4N2MKze'] = False # (N*m); ; +SubDyn['M4N3MKze'] = False # (N*m); ; +SubDyn['M4N4MKze'] = False # (N*m); ; +SubDyn['M4N5MKze'] = False # (N*m); ; +SubDyn['M4N6MKze'] = False # (N*m); ; +SubDyn['M4N7MKze'] = False # (N*m); ; +SubDyn['M4N8MKze'] = False # (N*m); ; +SubDyn['M4N9MKze'] = False # (N*m); ; +SubDyn['M5N1MKze'] = False # (N*m); ; +SubDyn['M5N2MKze'] = False # (N*m); ; +SubDyn['M5N3MKze'] = False # (N*m); ; +SubDyn['M5N4MKze'] = False # (N*m); ; +SubDyn['M5N5MKze'] = False # (N*m); ; +SubDyn['M5N6MKze'] = False # (N*m); ; +SubDyn['M5N7MKze'] = False # (N*m); ; +SubDyn['M5N8MKze'] = False # (N*m); ; +SubDyn['M5N9MKze'] = False # (N*m); ; +SubDyn['M6N1MKze'] = False # (N*m); ; +SubDyn['M6N2MKze'] = False # (N*m); ; +SubDyn['M6N3MKze'] = False # (N*m); ; +SubDyn['M6N4MKze'] = False # (N*m); ; +SubDyn['M6N5MKze'] = False # (N*m); ; +SubDyn['M6N6MKze'] = False # (N*m); ; +SubDyn['M6N7MKze'] = False # (N*m); ; +SubDyn['M6N8MKze'] = False # (N*m); ; +SubDyn['M6N9MKze'] = False # (N*m); ; +SubDyn['M7N1MKze'] = False # (N*m); ; +SubDyn['M7N2MKze'] = False # (N*m); ; +SubDyn['M7N3MKze'] = False # (N*m); ; +SubDyn['M7N4MKze'] = False # (N*m); ; +SubDyn['M7N5MKze'] = False # (N*m); ; +SubDyn['M7N6MKze'] = False # (N*m); ; +SubDyn['M7N7MKze'] = False # (N*m); ; +SubDyn['M7N8MKze'] = False # (N*m); ; +SubDyn['M7N9MKze'] = False # (N*m); ; +SubDyn['M8N1MKze'] = False # (N*m); ; +SubDyn['M8N2MKze'] = False # (N*m); ; +SubDyn['M8N3MKze'] = False # (N*m); ; +SubDyn['M8N4MKze'] = False # (N*m); ; +SubDyn['M8N5MKze'] = False # (N*m); ; +SubDyn['M8N6MKze'] = False # (N*m); ; +SubDyn['M8N7MKze'] = False # (N*m); ; +SubDyn['M8N8MKze'] = False # (N*m); ; +SubDyn['M8N9MKze'] = False # (N*m); ; +SubDyn['M9N1MKze'] = False # (N*m); ; +SubDyn['M9N2MKze'] = False # (N*m); ; +SubDyn['M9N3MKze'] = False # (N*m); ; +SubDyn['M9N4MKze'] = False # (N*m); ; +SubDyn['M9N5MKze'] = False # (N*m); ; +SubDyn['M9N6MKze'] = False # (N*m); ; +SubDyn['M9N7MKze'] = False # (N*m); ; +SubDyn['M9N8MKze'] = False # (N*m); ; +SubDyn['M9N9MKze'] = False # (N*m); ; +SubDyn['M1N1MMxe'] = False # (N*m); xe component of the bending moment at Node Nj of member Mi- Local Reference System- Dynamic Component; +SubDyn['M1N2MMxe'] = False # (N*m); ; +SubDyn['M1N3MMxe'] = False # (N*m); ; +SubDyn['M1N4MMxe'] = False # (N*m); ; +SubDyn['M1N5MMxe'] = False # (N*m); ; +SubDyn['M1N6MMxe'] = False # (N*m); ; +SubDyn['M1N7MMxe'] = False # (N*m); ; +SubDyn['M1N8MMxe'] = False # (N*m); ; +SubDyn['M1N9MMxe'] = False # (N*m); ; +SubDyn['M2N1MMxe'] = False # (N*m); ; +SubDyn['M2N2MMxe'] = False # (N*m); ; +SubDyn['M2N3MMxe'] = False # (N*m); ; +SubDyn['M2N4MMxe'] = False # (N*m); ; +SubDyn['M2N5MMxe'] = False # (N*m); ; +SubDyn['M2N6MMxe'] = False # (N*m); ; +SubDyn['M2N7MMxe'] = False # (N*m); ; +SubDyn['M2N8MMxe'] = False # (N*m); ; +SubDyn['M2N9MMxe'] = False # (N*m); ; +SubDyn['M3N1MMxe'] = False # (N*m); ; +SubDyn['M3N2MMxe'] = False # (N*m); ; +SubDyn['M3N3MMxe'] = False # (N*m); ; +SubDyn['M3N4MMxe'] = False # (N*m); ; +SubDyn['M3N5MMxe'] = False # (N*m); ; +SubDyn['M3N6MMxe'] = False # (N*m); ; +SubDyn['M3N7MMxe'] = False # (N*m); ; +SubDyn['M3N8MMxe'] = False # (N*m); ; +SubDyn['M3N9MMxe'] = False # (N*m); ; +SubDyn['M4N1MMxe'] = False # (N*m); ; +SubDyn['M4N2MMxe'] = False # (N*m); ; +SubDyn['M4N3MMxe'] = False # (N*m); ; +SubDyn['M4N4MMxe'] = False # (N*m); ; +SubDyn['M4N5MMxe'] = False # (N*m); ; +SubDyn['M4N6MMxe'] = False # (N*m); ; +SubDyn['M4N7MMxe'] = False # (N*m); ; +SubDyn['M4N8MMxe'] = False # (N*m); ; +SubDyn['M4N9MMxe'] = False # (N*m); ; +SubDyn['M5N1MMxe'] = False # (N*m); ; +SubDyn['M5N2MMxe'] = False # (N*m); ; +SubDyn['M5N3MMxe'] = False # (N*m); ; +SubDyn['M5N4MMxe'] = False # (N*m); ; +SubDyn['M5N5MMxe'] = False # (N*m); ; +SubDyn['M5N6MMxe'] = False # (N*m); ; +SubDyn['M5N7MMxe'] = False # (N*m); ; +SubDyn['M5N8MMxe'] = False # (N*m); ; +SubDyn['M5N9MMxe'] = False # (N*m); ; +SubDyn['M6N1MMxe'] = False # (N*m); ; +SubDyn['M6N2MMxe'] = False # (N*m); ; +SubDyn['M6N3MMxe'] = False # (N*m); ; +SubDyn['M6N4MMxe'] = False # (N*m); ; +SubDyn['M6N5MMxe'] = False # (N*m); ; +SubDyn['M6N6MMxe'] = False # (N*m); ; +SubDyn['M6N7MMxe'] = False # (N*m); ; +SubDyn['M6N8MMxe'] = False # (N*m); ; +SubDyn['M6N9MMxe'] = False # (N*m); ; +SubDyn['M7N1MMxe'] = False # (N*m); ; +SubDyn['M7N2MMxe'] = False # (N*m); ; +SubDyn['M7N3MMxe'] = False # (N*m); ; +SubDyn['M7N4MMxe'] = False # (N*m); ; +SubDyn['M7N5MMxe'] = False # (N*m); ; +SubDyn['M7N6MMxe'] = False # (N*m); ; +SubDyn['M7N7MMxe'] = False # (N*m); ; +SubDyn['M7N8MMxe'] = False # (N*m); ; +SubDyn['M7N9MMxe'] = False # (N*m); ; +SubDyn['M8N1MMxe'] = False # (N*m); ; +SubDyn['M8N2MMxe'] = False # (N*m); ; +SubDyn['M8N3MMxe'] = False # (N*m); ; +SubDyn['M8N4MMxe'] = False # (N*m); ; +SubDyn['M8N5MMxe'] = False # (N*m); ; +SubDyn['M8N6MMxe'] = False # (N*m); ; +SubDyn['M8N7MMxe'] = False # (N*m); ; +SubDyn['M8N8MMxe'] = False # (N*m); ; +SubDyn['M8N9MMxe'] = False # (N*m); ; +SubDyn['M9N1MMxe'] = False # (N*m); ; +SubDyn['M9N2MMxe'] = False # (N*m); ; +SubDyn['M9N3MMxe'] = False # (N*m); ; +SubDyn['M9N4MMxe'] = False # (N*m); ; +SubDyn['M9N5MMxe'] = False # (N*m); ; +SubDyn['M9N6MMxe'] = False # (N*m); ; +SubDyn['M9N7MMxe'] = False # (N*m); ; +SubDyn['M9N8MMxe'] = False # (N*m); ; +SubDyn['M9N9MMxe'] = False # (N*m); ; +SubDyn['M1N1MMye'] = False # (N*m); ye component of the bending moment at Node Nj of member Mi- Local Reference System- Dynamic Component; +SubDyn['M1N2MMye'] = False # (N*m); ; +SubDyn['M1N3MMye'] = False # (N*m); ; +SubDyn['M1N4MMye'] = False # (N*m); ; +SubDyn['M1N5MMye'] = False # (N*m); ; +SubDyn['M1N6MMye'] = False # (N*m); ; +SubDyn['M1N7MMye'] = False # (N*m); ; +SubDyn['M1N8MMye'] = False # (N*m); ; +SubDyn['M1N9MMye'] = False # (N*m); ; +SubDyn['M2N1MMye'] = False # (N*m); ; +SubDyn['M2N2MMye'] = False # (N*m); ; +SubDyn['M2N3MMye'] = False # (N*m); ; +SubDyn['M2N4MMye'] = False # (N*m); ; +SubDyn['M2N5MMye'] = False # (N*m); ; +SubDyn['M2N6MMye'] = False # (N*m); ; +SubDyn['M2N7MMye'] = False # (N*m); ; +SubDyn['M2N8MMye'] = False # (N*m); ; +SubDyn['M2N9MMye'] = False # (N*m); ; +SubDyn['M3N1MMye'] = False # (N*m); ; +SubDyn['M3N2MMye'] = False # (N*m); ; +SubDyn['M3N3MMye'] = False # (N*m); ; +SubDyn['M3N4MMye'] = False # (N*m); ; +SubDyn['M3N5MMye'] = False # (N*m); ; +SubDyn['M3N6MMye'] = False # (N*m); ; +SubDyn['M3N7MMye'] = False # (N*m); ; +SubDyn['M3N8MMye'] = False # (N*m); ; +SubDyn['M3N9MMye'] = False # (N*m); ; +SubDyn['M4N1MMye'] = False # (N*m); ; +SubDyn['M4N2MMye'] = False # (N*m); ; +SubDyn['M4N3MMye'] = False # (N*m); ; +SubDyn['M4N4MMye'] = False # (N*m); ; +SubDyn['M4N5MMye'] = False # (N*m); ; +SubDyn['M4N6MMye'] = False # (N*m); ; +SubDyn['M4N7MMye'] = False # (N*m); ; +SubDyn['M4N8MMye'] = False # (N*m); ; +SubDyn['M4N9MMye'] = False # (N*m); ; +SubDyn['M5N1MMye'] = False # (N*m); ; +SubDyn['M5N2MMye'] = False # (N*m); ; +SubDyn['M5N3MMye'] = False # (N*m); ; +SubDyn['M5N4MMye'] = False # (N*m); ; +SubDyn['M5N5MMye'] = False # (N*m); ; +SubDyn['M5N6MMye'] = False # (N*m); ; +SubDyn['M5N7MMye'] = False # (N*m); ; +SubDyn['M5N8MMye'] = False # (N*m); ; +SubDyn['M5N9MMye'] = False # (N*m); ; +SubDyn['M6N1MMye'] = False # (N*m); ; +SubDyn['M6N2MMye'] = False # (N*m); ; +SubDyn['M6N3MMye'] = False # (N*m); ; +SubDyn['M6N4MMye'] = False # (N*m); ; +SubDyn['M6N5MMye'] = False # (N*m); ; +SubDyn['M6N6MMye'] = False # (N*m); ; +SubDyn['M6N7MMye'] = False # (N*m); ; +SubDyn['M6N8MMye'] = False # (N*m); ; +SubDyn['M6N9MMye'] = False # (N*m); ; +SubDyn['M7N1MMye'] = False # (N*m); ; +SubDyn['M7N2MMye'] = False # (N*m); ; +SubDyn['M7N3MMye'] = False # (N*m); ; +SubDyn['M7N4MMye'] = False # (N*m); ; +SubDyn['M7N5MMye'] = False # (N*m); ; +SubDyn['M7N6MMye'] = False # (N*m); ; +SubDyn['M7N7MMye'] = False # (N*m); ; +SubDyn['M7N8MMye'] = False # (N*m); ; +SubDyn['M7N9MMye'] = False # (N*m); ; +SubDyn['M8N1MMye'] = False # (N*m); ; +SubDyn['M8N2MMye'] = False # (N*m); ; +SubDyn['M8N3MMye'] = False # (N*m); ; +SubDyn['M8N4MMye'] = False # (N*m); ; +SubDyn['M8N5MMye'] = False # (N*m); ; +SubDyn['M8N6MMye'] = False # (N*m); ; +SubDyn['M8N7MMye'] = False # (N*m); ; +SubDyn['M8N8MMye'] = False # (N*m); ; +SubDyn['M8N9MMye'] = False # (N*m); ; +SubDyn['M9N1MMye'] = False # (N*m); ; +SubDyn['M9N2MMye'] = False # (N*m); ; +SubDyn['M9N3MMye'] = False # (N*m); ; +SubDyn['M9N4MMye'] = False # (N*m); ; +SubDyn['M9N5MMye'] = False # (N*m); ; +SubDyn['M9N6MMye'] = False # (N*m); ; +SubDyn['M9N7MMye'] = False # (N*m); ; +SubDyn['M9N8MMye'] = False # (N*m); ; +SubDyn['M9N9MMye'] = False # (N*m); ; +SubDyn['M1N1MMze'] = False # (N*m); Torsion moment at Node Nj of member Mi- Local Reference System- Dynamic Component; +SubDyn['M1N2MMze'] = False # (N*m); ; +SubDyn['M1N3MMze'] = False # (N*m); ; +SubDyn['M1N4MMze'] = False # (N*m); ; +SubDyn['M1N5MMze'] = False # (N*m); ; +SubDyn['M1N6MMze'] = False # (N*m); ; +SubDyn['M1N7MMze'] = False # (N*m); ; +SubDyn['M1N8MMze'] = False # (N*m); ; +SubDyn['M1N9MMze'] = False # (N*m); ; +SubDyn['M2N1MMze'] = False # (N*m); ; +SubDyn['M2N2MMze'] = False # (N*m); ; +SubDyn['M2N3MMze'] = False # (N*m); ; +SubDyn['M2N4MMze'] = False # (N*m); ; +SubDyn['M2N5MMze'] = False # (N*m); ; +SubDyn['M2N6MMze'] = False # (N*m); ; +SubDyn['M2N7MMze'] = False # (N*m); ; +SubDyn['M2N8MMze'] = False # (N*m); ; +SubDyn['M2N9MMze'] = False # (N*m); ; +SubDyn['M3N1MMze'] = False # (N*m); ; +SubDyn['M3N2MMze'] = False # (N*m); ; +SubDyn['M3N3MMze'] = False # (N*m); ; +SubDyn['M3N4MMze'] = False # (N*m); ; +SubDyn['M3N5MMze'] = False # (N*m); ; +SubDyn['M3N6MMze'] = False # (N*m); ; +SubDyn['M3N7MMze'] = False # (N*m); ; +SubDyn['M3N8MMze'] = False # (N*m); ; +SubDyn['M3N9MMze'] = False # (N*m); ; +SubDyn['M4N1MMze'] = False # (N*m); ; +SubDyn['M4N2MMze'] = False # (N*m); ; +SubDyn['M4N3MMze'] = False # (N*m); ; +SubDyn['M4N4MMze'] = False # (N*m); ; +SubDyn['M4N5MMze'] = False # (N*m); ; +SubDyn['M4N6MMze'] = False # (N*m); ; +SubDyn['M4N7MMze'] = False # (N*m); ; +SubDyn['M4N8MMze'] = False # (N*m); ; +SubDyn['M4N9MMze'] = False # (N*m); ; +SubDyn['M5N1MMze'] = False # (N*m); ; +SubDyn['M5N2MMze'] = False # (N*m); ; +SubDyn['M5N3MMze'] = False # (N*m); ; +SubDyn['M5N4MMze'] = False # (N*m); ; +SubDyn['M5N5MMze'] = False # (N*m); ; +SubDyn['M5N6MMze'] = False # (N*m); ; +SubDyn['M5N7MMze'] = False # (N*m); ; +SubDyn['M5N8MMze'] = False # (N*m); ; +SubDyn['M5N9MMze'] = False # (N*m); ; +SubDyn['M6N1MMze'] = False # (N*m); ; +SubDyn['M6N2MMze'] = False # (N*m); ; +SubDyn['M6N3MMze'] = False # (N*m); ; +SubDyn['M6N4MMze'] = False # (N*m); ; +SubDyn['M6N5MMze'] = False # (N*m); ; +SubDyn['M6N6MMze'] = False # (N*m); ; +SubDyn['M6N7MMze'] = False # (N*m); ; +SubDyn['M6N8MMze'] = False # (N*m); ; +SubDyn['M6N9MMze'] = False # (N*m); ; +SubDyn['M7N1MMze'] = False # (N*m); ; +SubDyn['M7N2MMze'] = False # (N*m); ; +SubDyn['M7N3MMze'] = False # (N*m); ; +SubDyn['M7N4MMze'] = False # (N*m); ; +SubDyn['M7N5MMze'] = False # (N*m); ; +SubDyn['M7N6MMze'] = False # (N*m); ; +SubDyn['M7N7MMze'] = False # (N*m); ; +SubDyn['M7N8MMze'] = False # (N*m); ; +SubDyn['M7N9MMze'] = False # (N*m); ; +SubDyn['M8N1MMze'] = False # (N*m); ; +SubDyn['M8N2MMze'] = False # (N*m); ; +SubDyn['M8N3MMze'] = False # (N*m); ; +SubDyn['M8N4MMze'] = False # (N*m); ; +SubDyn['M8N5MMze'] = False # (N*m); ; +SubDyn['M8N6MMze'] = False # (N*m); ; +SubDyn['M8N7MMze'] = False # (N*m); ; +SubDyn['M8N8MMze'] = False # (N*m); ; +SubDyn['M8N9MMze'] = False # (N*m); ; +SubDyn['M9N1MMze'] = False # (N*m); ; +SubDyn['M9N2MMze'] = False # (N*m); ; +SubDyn['M9N3MMze'] = False # (N*m); ; +SubDyn['M9N4MMze'] = False # (N*m); ; +SubDyn['M9N5MMze'] = False # (N*m); ; +SubDyn['M9N6MMze'] = False # (N*m); ; +SubDyn['M9N7MMze'] = False # (N*m); ; +SubDyn['M9N8MMze'] = False # (N*m); ; +SubDyn['M9N9MMze'] = False # (N*m); ; + +# Displacements +SubDyn['M1N1TDxss'] = False # (m); xss component of the displacement at Node Nj of member Mi- SS Reference System; +SubDyn['M1N2TDxss'] = False # (m); ; +SubDyn['M1N3TDxss'] = False # (m); ; +SubDyn['M1N4TDxss'] = False # (m); ; +SubDyn['M1N5TDxss'] = False # (m); ; +SubDyn['M1N6TDxss'] = False # (m); ; +SubDyn['M1N7TDxss'] = False # (m); ; +SubDyn['M1N8TDxss'] = False # (m); ; +SubDyn['M1N9TDxss'] = False # (m); ; +SubDyn['M2N1TDxss'] = False # (m); ; +SubDyn['M2N2TDxss'] = False # (m); ; +SubDyn['M2N3TDxss'] = False # (m); ; +SubDyn['M2N4TDxss'] = False # (m); ; +SubDyn['M2N5TDxss'] = False # (m); ; +SubDyn['M2N6TDxss'] = False # (m); ; +SubDyn['M2N7TDxss'] = False # (m); ; +SubDyn['M2N8TDxss'] = False # (m); ; +SubDyn['M2N9TDxss'] = False # (m); ; +SubDyn['M3N1TDxss'] = False # (m); ; +SubDyn['M3N2TDxss'] = False # (m); ; +SubDyn['M3N3TDxss'] = False # (m); ; +SubDyn['M3N4TDxss'] = False # (m); ; +SubDyn['M3N5TDxss'] = False # (m); ; +SubDyn['M3N6TDxss'] = False # (m); ; +SubDyn['M3N7TDxss'] = False # (m); ; +SubDyn['M3N8TDxss'] = False # (m); ; +SubDyn['M3N9TDxss'] = False # (m); ; +SubDyn['M4N1TDxss'] = False # (m); ; +SubDyn['M4N2TDxss'] = False # (m); ; +SubDyn['M4N3TDxss'] = False # (m); ; +SubDyn['M4N4TDxss'] = False # (m); ; +SubDyn['M4N5TDxss'] = False # (m); ; +SubDyn['M4N6TDxss'] = False # (m); ; +SubDyn['M4N7TDxss'] = False # (m); ; +SubDyn['M4N8TDxss'] = False # (m); ; +SubDyn['M4N9TDxss'] = False # (m); ; +SubDyn['M5N1TDxss'] = False # (m); ; +SubDyn['M5N2TDxss'] = False # (m); ; +SubDyn['M5N3TDxss'] = False # (m); ; +SubDyn['M5N4TDxss'] = False # (m); ; +SubDyn['M5N5TDxss'] = False # (m); ; +SubDyn['M5N6TDxss'] = False # (m); ; +SubDyn['M5N7TDxss'] = False # (m); ; +SubDyn['M5N8TDxss'] = False # (m); ; +SubDyn['M5N9TDxss'] = False # (m); ; +SubDyn['M6N1TDxss'] = False # (m); ; +SubDyn['M6N2TDxss'] = False # (m); ; +SubDyn['M6N3TDxss'] = False # (m); ; +SubDyn['M6N4TDxss'] = False # (m); ; +SubDyn['M6N5TDxss'] = False # (m); ; +SubDyn['M6N6TDxss'] = False # (m); ; +SubDyn['M6N7TDxss'] = False # (m); ; +SubDyn['M6N8TDxss'] = False # (m); ; +SubDyn['M6N9TDxss'] = False # (m); ; +SubDyn['M7N1TDxss'] = False # (m); ; +SubDyn['M7N2TDxss'] = False # (m); ; +SubDyn['M7N3TDxss'] = False # (m); ; +SubDyn['M7N4TDxss'] = False # (m); ; +SubDyn['M7N5TDxss'] = False # (m); ; +SubDyn['M7N6TDxss'] = False # (m); ; +SubDyn['M7N7TDxss'] = False # (m); ; +SubDyn['M7N8TDxss'] = False # (m); ; +SubDyn['M7N9TDxss'] = False # (m); ; +SubDyn['M8N1TDxss'] = False # (m); ; +SubDyn['M8N2TDxss'] = False # (m); ; +SubDyn['M8N3TDxss'] = False # (m); ; +SubDyn['M8N4TDxss'] = False # (m); ; +SubDyn['M8N5TDxss'] = False # (m); ; +SubDyn['M8N6TDxss'] = False # (m); ; +SubDyn['M8N7TDxss'] = False # (m); ; +SubDyn['M8N8TDxss'] = False # (m); ; +SubDyn['M8N9TDxss'] = False # (m); ; +SubDyn['M9N1TDxss'] = False # (m); ; +SubDyn['M9N2TDxss'] = False # (m); ; +SubDyn['M9N3TDxss'] = False # (m); ; +SubDyn['M9N4TDxss'] = False # (m); ; +SubDyn['M9N5TDxss'] = False # (m); ; +SubDyn['M9N6TDxss'] = False # (m); ; +SubDyn['M9N7TDxss'] = False # (m); ; +SubDyn['M9N8TDxss'] = False # (m); ; +SubDyn['M9N9TDxss'] = False # (m); ; +SubDyn['M1N1TDyss'] = False # (m); yss component of the displacement at Node Nj of member Mi- SS Reference System; +SubDyn['M1N2TDyss'] = False # (m); ; +SubDyn['M1N3TDyss'] = False # (m); ; +SubDyn['M1N4TDyss'] = False # (m); ; +SubDyn['M1N5TDyss'] = False # (m); ; +SubDyn['M1N6TDyss'] = False # (m); ; +SubDyn['M1N7TDyss'] = False # (m); ; +SubDyn['M1N8TDyss'] = False # (m); ; +SubDyn['M1N9TDyss'] = False # (m); ; +SubDyn['M2N1TDyss'] = False # (m); ; +SubDyn['M2N2TDyss'] = False # (m); ; +SubDyn['M2N3TDyss'] = False # (m); ; +SubDyn['M2N4TDyss'] = False # (m); ; +SubDyn['M2N5TDyss'] = False # (m); ; +SubDyn['M2N6TDyss'] = False # (m); ; +SubDyn['M2N7TDyss'] = False # (m); ; +SubDyn['M2N8TDyss'] = False # (m); ; +SubDyn['M2N9TDyss'] = False # (m); ; +SubDyn['M3N1TDyss'] = False # (m); ; +SubDyn['M3N2TDyss'] = False # (m); ; +SubDyn['M3N3TDyss'] = False # (m); ; +SubDyn['M3N4TDyss'] = False # (m); ; +SubDyn['M3N5TDyss'] = False # (m); ; +SubDyn['M3N6TDyss'] = False # (m); ; +SubDyn['M3N7TDyss'] = False # (m); ; +SubDyn['M3N8TDyss'] = False # (m); ; +SubDyn['M3N9TDyss'] = False # (m); ; +SubDyn['M4N1TDyss'] = False # (m); ; +SubDyn['M4N2TDyss'] = False # (m); ; +SubDyn['M4N3TDyss'] = False # (m); ; +SubDyn['M4N4TDyss'] = False # (m); ; +SubDyn['M4N5TDyss'] = False # (m); ; +SubDyn['M4N6TDyss'] = False # (m); ; +SubDyn['M4N7TDyss'] = False # (m); ; +SubDyn['M4N8TDyss'] = False # (m); ; +SubDyn['M4N9TDyss'] = False # (m); ; +SubDyn['M5N1TDyss'] = False # (m); ; +SubDyn['M5N2TDyss'] = False # (m); ; +SubDyn['M5N3TDyss'] = False # (m); ; +SubDyn['M5N4TDyss'] = False # (m); ; +SubDyn['M5N5TDyss'] = False # (m); ; +SubDyn['M5N6TDyss'] = False # (m); ; +SubDyn['M5N7TDyss'] = False # (m); ; +SubDyn['M5N8TDyss'] = False # (m); ; +SubDyn['M5N9TDyss'] = False # (m); ; +SubDyn['M6N1TDyss'] = False # (m); ; +SubDyn['M6N2TDyss'] = False # (m); ; +SubDyn['M6N3TDyss'] = False # (m); ; +SubDyn['M6N4TDyss'] = False # (m); ; +SubDyn['M6N5TDyss'] = False # (m); ; +SubDyn['M6N6TDyss'] = False # (m); ; +SubDyn['M6N7TDyss'] = False # (m); ; +SubDyn['M6N8TDyss'] = False # (m); ; +SubDyn['M6N9TDyss'] = False # (m); ; +SubDyn['M7N1TDyss'] = False # (m); ; +SubDyn['M7N2TDyss'] = False # (m); ; +SubDyn['M7N3TDyss'] = False # (m); ; +SubDyn['M7N4TDyss'] = False # (m); ; +SubDyn['M7N5TDyss'] = False # (m); ; +SubDyn['M7N6TDyss'] = False # (m); ; +SubDyn['M7N7TDyss'] = False # (m); ; +SubDyn['M7N8TDyss'] = False # (m); ; +SubDyn['M7N9TDyss'] = False # (m); ; +SubDyn['M8N1TDyss'] = False # (m); ; +SubDyn['M8N2TDyss'] = False # (m); ; +SubDyn['M8N3TDyss'] = False # (m); ; +SubDyn['M8N4TDyss'] = False # (m); ; +SubDyn['M8N5TDyss'] = False # (m); ; +SubDyn['M8N6TDyss'] = False # (m); ; +SubDyn['M8N7TDyss'] = False # (m); ; +SubDyn['M8N8TDyss'] = False # (m); ; +SubDyn['M8N9TDyss'] = False # (m); ; +SubDyn['M9N1TDyss'] = False # (m); ; +SubDyn['M9N2TDyss'] = False # (m); ; +SubDyn['M9N3TDyss'] = False # (m); ; +SubDyn['M9N4TDyss'] = False # (m); ; +SubDyn['M9N5TDyss'] = False # (m); ; +SubDyn['M9N6TDyss'] = False # (m); ; +SubDyn['M9N7TDyss'] = False # (m); ; +SubDyn['M9N8TDyss'] = False # (m); ; +SubDyn['M9N9TDyss'] = False # (m); ; +SubDyn['M1N1TDzss'] = False # (m); zss component of the displacement at Node Nj of member Mi- SS Reference System; +SubDyn['M1N2TDzss'] = False # (m); ; +SubDyn['M1N3TDzss'] = False # (m); ; +SubDyn['M1N4TDzss'] = False # (m); ; +SubDyn['M1N5TDzss'] = False # (m); ; +SubDyn['M1N6TDzss'] = False # (m); ; +SubDyn['M1N7TDzss'] = False # (m); ; +SubDyn['M1N8TDzss'] = False # (m); ; +SubDyn['M1N9TDzss'] = False # (m); ; +SubDyn['M2N1TDzss'] = False # (m); ; +SubDyn['M2N2TDzss'] = False # (m); ; +SubDyn['M2N3TDzss'] = False # (m); ; +SubDyn['M2N4TDzss'] = False # (m); ; +SubDyn['M2N5TDzss'] = False # (m); ; +SubDyn['M2N6TDzss'] = False # (m); ; +SubDyn['M2N7TDzss'] = False # (m); ; +SubDyn['M2N8TDzss'] = False # (m); ; +SubDyn['M2N9TDzss'] = False # (m); ; +SubDyn['M3N1TDzss'] = False # (m); ; +SubDyn['M3N2TDzss'] = False # (m); ; +SubDyn['M3N3TDzss'] = False # (m); ; +SubDyn['M3N4TDzss'] = False # (m); ; +SubDyn['M3N5TDzss'] = False # (m); ; +SubDyn['M3N6TDzss'] = False # (m); ; +SubDyn['M3N7TDzss'] = False # (m); ; +SubDyn['M3N8TDzss'] = False # (m); ; +SubDyn['M3N9TDzss'] = False # (m); ; +SubDyn['M4N1TDzss'] = False # (m); ; +SubDyn['M4N2TDzss'] = False # (m); ; +SubDyn['M4N3TDzss'] = False # (m); ; +SubDyn['M4N4TDzss'] = False # (m); ; +SubDyn['M4N5TDzss'] = False # (m); ; +SubDyn['M4N6TDzss'] = False # (m); ; +SubDyn['M4N7TDzss'] = False # (m); ; +SubDyn['M4N8TDzss'] = False # (m); ; +SubDyn['M4N9TDzss'] = False # (m); ; +SubDyn['M5N1TDzss'] = False # (m); ; +SubDyn['M5N2TDzss'] = False # (m); ; +SubDyn['M5N3TDzss'] = False # (m); ; +SubDyn['M5N4TDzss'] = False # (m); ; +SubDyn['M5N5TDzss'] = False # (m); ; +SubDyn['M5N6TDzss'] = False # (m); ; +SubDyn['M5N7TDzss'] = False # (m); ; +SubDyn['M5N8TDzss'] = False # (m); ; +SubDyn['M5N9TDzss'] = False # (m); ; +SubDyn['M6N1TDzss'] = False # (m); ; +SubDyn['M6N2TDzss'] = False # (m); ; +SubDyn['M6N3TDzss'] = False # (m); ; +SubDyn['M6N4TDzss'] = False # (m); ; +SubDyn['M6N5TDzss'] = False # (m); ; +SubDyn['M6N6TDzss'] = False # (m); ; +SubDyn['M6N7TDzss'] = False # (m); ; +SubDyn['M6N8TDzss'] = False # (m); ; +SubDyn['M6N9TDzss'] = False # (m); ; +SubDyn['M7N1TDzss'] = False # (m); ; +SubDyn['M7N2TDzss'] = False # (m); ; +SubDyn['M7N3TDzss'] = False # (m); ; +SubDyn['M7N4TDzss'] = False # (m); ; +SubDyn['M7N5TDzss'] = False # (m); ; +SubDyn['M7N6TDzss'] = False # (m); ; +SubDyn['M7N7TDzss'] = False # (m); ; +SubDyn['M7N8TDzss'] = False # (m); ; +SubDyn['M7N9TDzss'] = False # (m); ; +SubDyn['M8N1TDzss'] = False # (m); ; +SubDyn['M8N2TDzss'] = False # (m); ; +SubDyn['M8N3TDzss'] = False # (m); ; +SubDyn['M8N4TDzss'] = False # (m); ; +SubDyn['M8N5TDzss'] = False # (m); ; +SubDyn['M8N6TDzss'] = False # (m); ; +SubDyn['M8N7TDzss'] = False # (m); ; +SubDyn['M8N8TDzss'] = False # (m); ; +SubDyn['M8N9TDzss'] = False # (m); ; +SubDyn['M9N1TDzss'] = False # (m); ; +SubDyn['M9N2TDzss'] = False # (m); ; +SubDyn['M9N3TDzss'] = False # (m); ; +SubDyn['M9N4TDzss'] = False # (m); ; +SubDyn['M9N5TDzss'] = False # (m); ; +SubDyn['M9N6TDzss'] = False # (m); ; +SubDyn['M9N7TDzss'] = False # (m); ; +SubDyn['M9N8TDzss'] = False # (m); ; +SubDyn['M9N9TDzss'] = False # (m); ; +SubDyn['M1N1RDxe'] = False # (rad); xe component of the rotational displacement at Node Nj of member Mi-Element Reference System; +SubDyn['M1N2RDxe'] = False # (rad); ; +SubDyn['M1N3RDxe'] = False # (rad); ; +SubDyn['M1N4RDxe'] = False # (rad); ; +SubDyn['M1N5RDxe'] = False # (rad); ; +SubDyn['M1N6RDxe'] = False # (rad); ; +SubDyn['M1N7RDxe'] = False # (rad); ; +SubDyn['M1N8RDxe'] = False # (rad); ; +SubDyn['M1N9RDxe'] = False # (rad); ; +SubDyn['M2N1RDxe'] = False # (rad); ; +SubDyn['M2N2RDxe'] = False # (rad); ; +SubDyn['M2N3RDxe'] = False # (rad); ; +SubDyn['M2N4RDxe'] = False # (rad); ; +SubDyn['M2N5RDxe'] = False # (rad); ; +SubDyn['M2N6RDxe'] = False # (rad); ; +SubDyn['M2N7RDxe'] = False # (rad); ; +SubDyn['M2N8RDxe'] = False # (rad); ; +SubDyn['M2N9RDxe'] = False # (rad); ; +SubDyn['M3N1RDxe'] = False # (rad); ; +SubDyn['M3N2RDxe'] = False # (rad); ; +SubDyn['M3N3RDxe'] = False # (rad); ; +SubDyn['M3N4RDxe'] = False # (rad); ; +SubDyn['M3N5RDxe'] = False # (rad); ; +SubDyn['M3N6RDxe'] = False # (rad); ; +SubDyn['M3N7RDxe'] = False # (rad); ; +SubDyn['M3N8RDxe'] = False # (rad); ; +SubDyn['M3N9RDxe'] = False # (rad); ; +SubDyn['M4N1RDxe'] = False # (rad); ; +SubDyn['M4N2RDxe'] = False # (rad); ; +SubDyn['M4N3RDxe'] = False # (rad); ; +SubDyn['M4N4RDxe'] = False # (rad); ; +SubDyn['M4N5RDxe'] = False # (rad); ; +SubDyn['M4N6RDxe'] = False # (rad); ; +SubDyn['M4N7RDxe'] = False # (rad); ; +SubDyn['M4N8RDxe'] = False # (rad); ; +SubDyn['M4N9RDxe'] = False # (rad); ; +SubDyn['M5N1RDxe'] = False # (rad); ; +SubDyn['M5N2RDxe'] = False # (rad); ; +SubDyn['M5N3RDxe'] = False # (rad); ; +SubDyn['M5N4RDxe'] = False # (rad); ; +SubDyn['M5N5RDxe'] = False # (rad); ; +SubDyn['M5N6RDxe'] = False # (rad); ; +SubDyn['M5N7RDxe'] = False # (rad); ; +SubDyn['M5N8RDxe'] = False # (rad); ; +SubDyn['M5N9RDxe'] = False # (rad); ; +SubDyn['M6N1RDxe'] = False # (rad); ; +SubDyn['M6N2RDxe'] = False # (rad); ; +SubDyn['M6N3RDxe'] = False # (rad); ; +SubDyn['M6N4RDxe'] = False # (rad); ; +SubDyn['M6N5RDxe'] = False # (rad); ; +SubDyn['M6N6RDxe'] = False # (rad); ; +SubDyn['M6N7RDxe'] = False # (rad); ; +SubDyn['M6N8RDxe'] = False # (rad); ; +SubDyn['M6N9RDxe'] = False # (rad); ; +SubDyn['M7N1RDxe'] = False # (rad); ; +SubDyn['M7N2RDxe'] = False # (rad); ; +SubDyn['M7N3RDxe'] = False # (rad); ; +SubDyn['M7N4RDxe'] = False # (rad); ; +SubDyn['M7N5RDxe'] = False # (rad); ; +SubDyn['M7N6RDxe'] = False # (rad); ; +SubDyn['M7N7RDxe'] = False # (rad); ; +SubDyn['M7N8RDxe'] = False # (rad); ; +SubDyn['M7N9RDxe'] = False # (rad); ; +SubDyn['M8N1RDxe'] = False # (rad); ; +SubDyn['M8N2RDxe'] = False # (rad); ; +SubDyn['M8N3RDxe'] = False # (rad); ; +SubDyn['M8N4RDxe'] = False # (rad); ; +SubDyn['M8N5RDxe'] = False # (rad); ; +SubDyn['M8N6RDxe'] = False # (rad); ; +SubDyn['M8N7RDxe'] = False # (rad); ; +SubDyn['M8N8RDxe'] = False # (rad); ; +SubDyn['M8N9RDxe'] = False # (rad); ; +SubDyn['M9N1RDxe'] = False # (rad); ; +SubDyn['M9N2RDxe'] = False # (rad); ; +SubDyn['M9N3RDxe'] = False # (rad); ; +SubDyn['M9N4RDxe'] = False # (rad); ; +SubDyn['M9N5RDxe'] = False # (rad); ; +SubDyn['M9N6RDxe'] = False # (rad); ; +SubDyn['M9N7RDxe'] = False # (rad); ; +SubDyn['M9N8RDxe'] = False # (rad); ; +SubDyn['M9N9RDxe'] = False # (rad); ; +SubDyn['M1N1RDye'] = False # (rad); ye component of the rotational displacement at Node Nj of member Mi-Element Reference System; +SubDyn['M1N2RDye'] = False # (rad); ; +SubDyn['M1N3RDye'] = False # (rad); ; +SubDyn['M1N4RDye'] = False # (rad); ; +SubDyn['M1N5RDye'] = False # (rad); ; +SubDyn['M1N6RDye'] = False # (rad); ; +SubDyn['M1N7RDye'] = False # (rad); ; +SubDyn['M1N8RDye'] = False # (rad); ; +SubDyn['M1N9RDye'] = False # (rad); ; +SubDyn['M2N1RDye'] = False # (rad); ; +SubDyn['M2N2RDye'] = False # (rad); ; +SubDyn['M2N3RDye'] = False # (rad); ; +SubDyn['M2N4RDye'] = False # (rad); ; +SubDyn['M2N5RDye'] = False # (rad); ; +SubDyn['M2N6RDye'] = False # (rad); ; +SubDyn['M2N7RDye'] = False # (rad); ; +SubDyn['M2N8RDye'] = False # (rad); ; +SubDyn['M2N9RDye'] = False # (rad); ; +SubDyn['M3N1RDye'] = False # (rad); ; +SubDyn['M3N2RDye'] = False # (rad); ; +SubDyn['M3N3RDye'] = False # (rad); ; +SubDyn['M3N4RDye'] = False # (rad); ; +SubDyn['M3N5RDye'] = False # (rad); ; +SubDyn['M3N6RDye'] = False # (rad); ; +SubDyn['M3N7RDye'] = False # (rad); ; +SubDyn['M3N8RDye'] = False # (rad); ; +SubDyn['M3N9RDye'] = False # (rad); ; +SubDyn['M4N1RDye'] = False # (rad); ; +SubDyn['M4N2RDye'] = False # (rad); ; +SubDyn['M4N3RDye'] = False # (rad); ; +SubDyn['M4N4RDye'] = False # (rad); ; +SubDyn['M4N5RDye'] = False # (rad); ; +SubDyn['M4N6RDye'] = False # (rad); ; +SubDyn['M4N7RDye'] = False # (rad); ; +SubDyn['M4N8RDye'] = False # (rad); ; +SubDyn['M4N9RDye'] = False # (rad); ; +SubDyn['M5N1RDye'] = False # (rad); ; +SubDyn['M5N2RDye'] = False # (rad); ; +SubDyn['M5N3RDye'] = False # (rad); ; +SubDyn['M5N4RDye'] = False # (rad); ; +SubDyn['M5N5RDye'] = False # (rad); ; +SubDyn['M5N6RDye'] = False # (rad); ; +SubDyn['M5N7RDye'] = False # (rad); ; +SubDyn['M5N8RDye'] = False # (rad); ; +SubDyn['M5N9RDye'] = False # (rad); ; +SubDyn['M6N1RDye'] = False # (rad); ; +SubDyn['M6N2RDye'] = False # (rad); ; +SubDyn['M6N3RDye'] = False # (rad); ; +SubDyn['M6N4RDye'] = False # (rad); ; +SubDyn['M6N5RDye'] = False # (rad); ; +SubDyn['M6N6RDye'] = False # (rad); ; +SubDyn['M6N7RDye'] = False # (rad); ; +SubDyn['M6N8RDye'] = False # (rad); ; +SubDyn['M6N9RDye'] = False # (rad); ; +SubDyn['M7N1RDye'] = False # (rad); ; +SubDyn['M7N2RDye'] = False # (rad); ; +SubDyn['M7N3RDye'] = False # (rad); ; +SubDyn['M7N4RDye'] = False # (rad); ; +SubDyn['M7N5RDye'] = False # (rad); ; +SubDyn['M7N6RDye'] = False # (rad); ; +SubDyn['M7N7RDye'] = False # (rad); ; +SubDyn['M7N8RDye'] = False # (rad); ; +SubDyn['M7N9RDye'] = False # (rad); ; +SubDyn['M8N1RDye'] = False # (rad); ; +SubDyn['M8N2RDye'] = False # (rad); ; +SubDyn['M8N3RDye'] = False # (rad); ; +SubDyn['M8N4RDye'] = False # (rad); ; +SubDyn['M8N5RDye'] = False # (rad); ; +SubDyn['M8N6RDye'] = False # (rad); ; +SubDyn['M8N7RDye'] = False # (rad); ; +SubDyn['M8N8RDye'] = False # (rad); ; +SubDyn['M8N9RDye'] = False # (rad); ; +SubDyn['M9N1RDye'] = False # (rad); ; +SubDyn['M9N2RDye'] = False # (rad); ; +SubDyn['M9N3RDye'] = False # (rad); ; +SubDyn['M9N4RDye'] = False # (rad); ; +SubDyn['M9N5RDye'] = False # (rad); ; +SubDyn['M9N6RDye'] = False # (rad); ; +SubDyn['M9N7RDye'] = False # (rad); ; +SubDyn['M9N8RDye'] = False # (rad); ; +SubDyn['M9N9RDye'] = False # (rad); ; +SubDyn['M1N1RDze'] = False # (rad); ze component of the rotational displacement at Node Nj of member Mi-Element Reference System; +SubDyn['M1N2RDze'] = False # (rad); ; +SubDyn['M1N3RDze'] = False # (rad); ; +SubDyn['M1N4RDze'] = False # (rad); ; +SubDyn['M1N5RDze'] = False # (rad); ; +SubDyn['M1N6RDze'] = False # (rad); ; +SubDyn['M1N7RDze'] = False # (rad); ; +SubDyn['M1N8RDze'] = False # (rad); ; +SubDyn['M1N9RDze'] = False # (rad); ; +SubDyn['M2N1RDze'] = False # (rad); ; +SubDyn['M2N2RDze'] = False # (rad); ; +SubDyn['M2N3RDze'] = False # (rad); ; +SubDyn['M2N4RDze'] = False # (rad); ; +SubDyn['M2N5RDze'] = False # (rad); ; +SubDyn['M2N6RDze'] = False # (rad); ; +SubDyn['M2N7RDze'] = False # (rad); ; +SubDyn['M2N8RDze'] = False # (rad); ; +SubDyn['M2N9RDze'] = False # (rad); ; +SubDyn['M3N1RDze'] = False # (rad); ; +SubDyn['M3N2RDze'] = False # (rad); ; +SubDyn['M3N3RDze'] = False # (rad); ; +SubDyn['M3N4RDze'] = False # (rad); ; +SubDyn['M3N5RDze'] = False # (rad); ; +SubDyn['M3N6RDze'] = False # (rad); ; +SubDyn['M3N7RDze'] = False # (rad); ; +SubDyn['M3N8RDze'] = False # (rad); ; +SubDyn['M3N9RDze'] = False # (rad); ; +SubDyn['M4N1RDze'] = False # (rad); ; +SubDyn['M4N2RDze'] = False # (rad); ; +SubDyn['M4N3RDze'] = False # (rad); ; +SubDyn['M4N4RDze'] = False # (rad); ; +SubDyn['M4N5RDze'] = False # (rad); ; +SubDyn['M4N6RDze'] = False # (rad); ; +SubDyn['M4N7RDze'] = False # (rad); ; +SubDyn['M4N8RDze'] = False # (rad); ; +SubDyn['M4N9RDze'] = False # (rad); ; +SubDyn['M5N1RDze'] = False # (rad); ; +SubDyn['M5N2RDze'] = False # (rad); ; +SubDyn['M5N3RDze'] = False # (rad); ; +SubDyn['M5N4RDze'] = False # (rad); ; +SubDyn['M5N5RDze'] = False # (rad); ; +SubDyn['M5N6RDze'] = False # (rad); ; +SubDyn['M5N7RDze'] = False # (rad); ; +SubDyn['M5N8RDze'] = False # (rad); ; +SubDyn['M5N9RDze'] = False # (rad); ; +SubDyn['M6N1RDze'] = False # (rad); ; +SubDyn['M6N2RDze'] = False # (rad); ; +SubDyn['M6N3RDze'] = False # (rad); ; +SubDyn['M6N4RDze'] = False # (rad); ; +SubDyn['M6N5RDze'] = False # (rad); ; +SubDyn['M6N6RDze'] = False # (rad); ; +SubDyn['M6N7RDze'] = False # (rad); ; +SubDyn['M6N8RDze'] = False # (rad); ; +SubDyn['M6N9RDze'] = False # (rad); ; +SubDyn['M7N1RDze'] = False # (rad); ; +SubDyn['M7N2RDze'] = False # (rad); ; +SubDyn['M7N3RDze'] = False # (rad); ; +SubDyn['M7N4RDze'] = False # (rad); ; +SubDyn['M7N5RDze'] = False # (rad); ; +SubDyn['M7N6RDze'] = False # (rad); ; +SubDyn['M7N7RDze'] = False # (rad); ; +SubDyn['M7N8RDze'] = False # (rad); ; +SubDyn['M7N9RDze'] = False # (rad); ; +SubDyn['M8N1RDze'] = False # (rad); ; +SubDyn['M8N2RDze'] = False # (rad); ; +SubDyn['M8N3RDze'] = False # (rad); ; +SubDyn['M8N4RDze'] = False # (rad); ; +SubDyn['M8N5RDze'] = False # (rad); ; +SubDyn['M8N6RDze'] = False # (rad); ; +SubDyn['M8N7RDze'] = False # (rad); ; +SubDyn['M8N8RDze'] = False # (rad); ; +SubDyn['M8N9RDze'] = False # (rad); ; +SubDyn['M9N1RDze'] = False # (rad); ; +SubDyn['M9N2RDze'] = False # (rad); ; +SubDyn['M9N3RDze'] = False # (rad); ; +SubDyn['M9N4RDze'] = False # (rad); ; +SubDyn['M9N5RDze'] = False # (rad); ; +SubDyn['M9N6RDze'] = False # (rad); ; +SubDyn['M9N7RDze'] = False # (rad); ; +SubDyn['M9N8RDze'] = False # (rad); ; +SubDyn['M9N9RDze'] = False # (rad); ; + +# Accelerations +SubDyn['M1N1TAxe'] = False # (m/s^2); xe component of the translational acceleration displacement at Node Nj of member Mi-Element Reference System; +SubDyn['M1N2TAxe'] = False # (m/s^2); ; +SubDyn['M1N3TAxe'] = False # (m/s^2); ; +SubDyn['M1N4TAxe'] = False # (m/s^2); ; +SubDyn['M1N5TAxe'] = False # (m/s^2); ; +SubDyn['M1N6TAxe'] = False # (m/s^2); ; +SubDyn['M1N7TAxe'] = False # (m/s^2); ; +SubDyn['M1N8TAxe'] = False # (m/s^2); ; +SubDyn['M1N9TAxe'] = False # (m/s^2); ; +SubDyn['M2N1TAxe'] = False # (m/s^2); ; +SubDyn['M2N2TAxe'] = False # (m/s^2); ; +SubDyn['M2N3TAxe'] = False # (m/s^2); ; +SubDyn['M2N4TAxe'] = False # (m/s^2); ; +SubDyn['M2N5TAxe'] = False # (m/s^2); ; +SubDyn['M2N6TAxe'] = False # (m/s^2); ; +SubDyn['M2N7TAxe'] = False # (m/s^2); ; +SubDyn['M2N8TAxe'] = False # (m/s^2); ; +SubDyn['M2N9TAxe'] = False # (m/s^2); ; +SubDyn['M3N1TAxe'] = False # (m/s^2); ; +SubDyn['M3N2TAxe'] = False # (m/s^2); ; +SubDyn['M3N3TAxe'] = False # (m/s^2); ; +SubDyn['M3N4TAxe'] = False # (m/s^2); ; +SubDyn['M3N5TAxe'] = False # (m/s^2); ; +SubDyn['M3N6TAxe'] = False # (m/s^2); ; +SubDyn['M3N7TAxe'] = False # (m/s^2); ; +SubDyn['M3N8TAxe'] = False # (m/s^2); ; +SubDyn['M3N9TAxe'] = False # (m/s^2); ; +SubDyn['M4N1TAxe'] = False # (m/s^2); ; +SubDyn['M4N2TAxe'] = False # (m/s^2); ; +SubDyn['M4N3TAxe'] = False # (m/s^2); ; +SubDyn['M4N4TAxe'] = False # (m/s^2); ; +SubDyn['M4N5TAxe'] = False # (m/s^2); ; +SubDyn['M4N6TAxe'] = False # (m/s^2); ; +SubDyn['M4N7TAxe'] = False # (m/s^2); ; +SubDyn['M4N8TAxe'] = False # (m/s^2); ; +SubDyn['M4N9TAxe'] = False # (m/s^2); ; +SubDyn['M5N1TAxe'] = False # (m/s^2); ; +SubDyn['M5N2TAxe'] = False # (m/s^2); ; +SubDyn['M5N3TAxe'] = False # (m/s^2); ; +SubDyn['M5N4TAxe'] = False # (m/s^2); ; +SubDyn['M5N5TAxe'] = False # (m/s^2); ; +SubDyn['M5N6TAxe'] = False # (m/s^2); ; +SubDyn['M5N7TAxe'] = False # (m/s^2); ; +SubDyn['M5N8TAxe'] = False # (m/s^2); ; +SubDyn['M5N9TAxe'] = False # (m/s^2); ; +SubDyn['M6N1TAxe'] = False # (m/s^2); ; +SubDyn['M6N2TAxe'] = False # (m/s^2); ; +SubDyn['M6N3TAxe'] = False # (m/s^2); ; +SubDyn['M6N4TAxe'] = False # (m/s^2); ; +SubDyn['M6N5TAxe'] = False # (m/s^2); ; +SubDyn['M6N6TAxe'] = False # (m/s^2); ; +SubDyn['M6N7TAxe'] = False # (m/s^2); ; +SubDyn['M6N8TAxe'] = False # (m/s^2); ; +SubDyn['M6N9TAxe'] = False # (m/s^2); ; +SubDyn['M7N1TAxe'] = False # (m/s^2); ; +SubDyn['M7N2TAxe'] = False # (m/s^2); ; +SubDyn['M7N3TAxe'] = False # (m/s^2); ; +SubDyn['M7N4TAxe'] = False # (m/s^2); ; +SubDyn['M7N5TAxe'] = False # (m/s^2); ; +SubDyn['M7N6TAxe'] = False # (m/s^2); ; +SubDyn['M7N7TAxe'] = False # (m/s^2); ; +SubDyn['M7N8TAxe'] = False # (m/s^2); ; +SubDyn['M7N9TAxe'] = False # (m/s^2); ; +SubDyn['M8N1TAxe'] = False # (m/s^2); ; +SubDyn['M8N2TAxe'] = False # (m/s^2); ; +SubDyn['M8N3TAxe'] = False # (m/s^2); ; +SubDyn['M8N4TAxe'] = False # (m/s^2); ; +SubDyn['M8N5TAxe'] = False # (m/s^2); ; +SubDyn['M8N6TAxe'] = False # (m/s^2); ; +SubDyn['M8N7TAxe'] = False # (m/s^2); ; +SubDyn['M8N8TAxe'] = False # (m/s^2); ; +SubDyn['M8N9TAxe'] = False # (m/s^2); ; +SubDyn['M9N1TAxe'] = False # (m/s^2); ; +SubDyn['M9N2TAxe'] = False # (m/s^2); ; +SubDyn['M9N3TAxe'] = False # (m/s^2); ; +SubDyn['M9N4TAxe'] = False # (m/s^2); ; +SubDyn['M9N5TAxe'] = False # (m/s^2); ; +SubDyn['M9N6TAxe'] = False # (m/s^2); ; +SubDyn['M9N7TAxe'] = False # (m/s^2); ; +SubDyn['M9N8TAxe'] = False # (m/s^2); ; +SubDyn['M9N9TAxe'] = False # (m/s^2); ; +SubDyn['M1N1TAye'] = False # (m/s^2); ye component of the translational acceleration displacement at Node Nj of member Mi-Element Reference System; +SubDyn['M1N2TAye'] = False # (m/s^2); ; +SubDyn['M1N3TAye'] = False # (m/s^2); ; +SubDyn['M1N4TAye'] = False # (m/s^2); ; +SubDyn['M1N5TAye'] = False # (m/s^2); ; +SubDyn['M1N6TAye'] = False # (m/s^2); ; +SubDyn['M1N7TAye'] = False # (m/s^2); ; +SubDyn['M1N8TAye'] = False # (m/s^2); ; +SubDyn['M1N9TAye'] = False # (m/s^2); ; +SubDyn['M2N1TAye'] = False # (m/s^2); ; +SubDyn['M2N2TAye'] = False # (m/s^2); ; +SubDyn['M2N3TAye'] = False # (m/s^2); ; +SubDyn['M2N4TAye'] = False # (m/s^2); ; +SubDyn['M2N5TAye'] = False # (m/s^2); ; +SubDyn['M2N6TAye'] = False # (m/s^2); ; +SubDyn['M2N7TAye'] = False # (m/s^2); ; +SubDyn['M2N8TAye'] = False # (m/s^2); ; +SubDyn['M2N9TAye'] = False # (m/s^2); ; +SubDyn['M3N1TAye'] = False # (m/s^2); ; +SubDyn['M3N2TAye'] = False # (m/s^2); ; +SubDyn['M3N3TAye'] = False # (m/s^2); ; +SubDyn['M3N4TAye'] = False # (m/s^2); ; +SubDyn['M3N5TAye'] = False # (m/s^2); ; +SubDyn['M3N6TAye'] = False # (m/s^2); ; +SubDyn['M3N7TAye'] = False # (m/s^2); ; +SubDyn['M3N8TAye'] = False # (m/s^2); ; +SubDyn['M3N9TAye'] = False # (m/s^2); ; +SubDyn['M4N1TAye'] = False # (m/s^2); ; +SubDyn['M4N2TAye'] = False # (m/s^2); ; +SubDyn['M4N3TAye'] = False # (m/s^2); ; +SubDyn['M4N4TAye'] = False # (m/s^2); ; +SubDyn['M4N5TAye'] = False # (m/s^2); ; +SubDyn['M4N6TAye'] = False # (m/s^2); ; +SubDyn['M4N7TAye'] = False # (m/s^2); ; +SubDyn['M4N8TAye'] = False # (m/s^2); ; +SubDyn['M4N9TAye'] = False # (m/s^2); ; +SubDyn['M5N1TAye'] = False # (m/s^2); ; +SubDyn['M5N2TAye'] = False # (m/s^2); ; +SubDyn['M5N3TAye'] = False # (m/s^2); ; +SubDyn['M5N4TAye'] = False # (m/s^2); ; +SubDyn['M5N5TAye'] = False # (m/s^2); ; +SubDyn['M5N6TAye'] = False # (m/s^2); ; +SubDyn['M5N7TAye'] = False # (m/s^2); ; +SubDyn['M5N8TAye'] = False # (m/s^2); ; +SubDyn['M5N9TAye'] = False # (m/s^2); ; +SubDyn['M6N1TAye'] = False # (m/s^2); ; +SubDyn['M6N2TAye'] = False # (m/s^2); ; +SubDyn['M6N3TAye'] = False # (m/s^2); ; +SubDyn['M6N4TAye'] = False # (m/s^2); ; +SubDyn['M6N5TAye'] = False # (m/s^2); ; +SubDyn['M6N6TAye'] = False # (m/s^2); ; +SubDyn['M6N7TAye'] = False # (m/s^2); ; +SubDyn['M6N8TAye'] = False # (m/s^2); ; +SubDyn['M6N9TAye'] = False # (m/s^2); ; +SubDyn['M7N1TAye'] = False # (m/s^2); ; +SubDyn['M7N2TAye'] = False # (m/s^2); ; +SubDyn['M7N3TAye'] = False # (m/s^2); ; +SubDyn['M7N4TAye'] = False # (m/s^2); ; +SubDyn['M7N5TAye'] = False # (m/s^2); ; +SubDyn['M7N6TAye'] = False # (m/s^2); ; +SubDyn['M7N7TAye'] = False # (m/s^2); ; +SubDyn['M7N8TAye'] = False # (m/s^2); ; +SubDyn['M7N9TAye'] = False # (m/s^2); ; +SubDyn['M8N1TAye'] = False # (m/s^2); ; +SubDyn['M8N2TAye'] = False # (m/s^2); ; +SubDyn['M8N3TAye'] = False # (m/s^2); ; +SubDyn['M8N4TAye'] = False # (m/s^2); ; +SubDyn['M8N5TAye'] = False # (m/s^2); ; +SubDyn['M8N6TAye'] = False # (m/s^2); ; +SubDyn['M8N7TAye'] = False # (m/s^2); ; +SubDyn['M8N8TAye'] = False # (m/s^2); ; +SubDyn['M8N9TAye'] = False # (m/s^2); ; +SubDyn['M9N1TAye'] = False # (m/s^2); ; +SubDyn['M9N2TAye'] = False # (m/s^2); ; +SubDyn['M9N3TAye'] = False # (m/s^2); ; +SubDyn['M9N4TAye'] = False # (m/s^2); ; +SubDyn['M9N5TAye'] = False # (m/s^2); ; +SubDyn['M9N6TAye'] = False # (m/s^2); ; +SubDyn['M9N7TAye'] = False # (m/s^2); ; +SubDyn['M9N8TAye'] = False # (m/s^2); ; +SubDyn['M9N9TAye'] = False # (m/s^2); ; +SubDyn['M1N1TAze'] = False # (m/s^2); ze component of the translational acceleration displacement at Node Nj of member Mi-Element Reference System; +SubDyn['M1N2TAze'] = False # (m/s^2); ; +SubDyn['M1N3TAze'] = False # (m/s^2); ; +SubDyn['M1N4TAze'] = False # (m/s^2); ; +SubDyn['M1N5TAze'] = False # (m/s^2); ; +SubDyn['M1N6TAze'] = False # (m/s^2); ; +SubDyn['M1N7TAze'] = False # (m/s^2); ; +SubDyn['M1N8TAze'] = False # (m/s^2); ; +SubDyn['M1N9TAze'] = False # (m/s^2); ; +SubDyn['M2N1TAze'] = False # (m/s^2); ; +SubDyn['M2N2TAze'] = False # (m/s^2); ; +SubDyn['M2N3TAze'] = False # (m/s^2); ; +SubDyn['M2N4TAze'] = False # (m/s^2); ; +SubDyn['M2N5TAze'] = False # (m/s^2); ; +SubDyn['M2N6TAze'] = False # (m/s^2); ; +SubDyn['M2N7TAze'] = False # (m/s^2); ; +SubDyn['M2N8TAze'] = False # (m/s^2); ; +SubDyn['M2N9TAze'] = False # (m/s^2); ; +SubDyn['M3N1TAze'] = False # (m/s^2); ; +SubDyn['M3N2TAze'] = False # (m/s^2); ; +SubDyn['M3N3TAze'] = False # (m/s^2); ; +SubDyn['M3N4TAze'] = False # (m/s^2); ; +SubDyn['M3N5TAze'] = False # (m/s^2); ; +SubDyn['M3N6TAze'] = False # (m/s^2); ; +SubDyn['M3N7TAze'] = False # (m/s^2); ; +SubDyn['M3N8TAze'] = False # (m/s^2); ; +SubDyn['M3N9TAze'] = False # (m/s^2); ; +SubDyn['M4N1TAze'] = False # (m/s^2); ; +SubDyn['M4N2TAze'] = False # (m/s^2); ; +SubDyn['M4N3TAze'] = False # (m/s^2); ; +SubDyn['M4N4TAze'] = False # (m/s^2); ; +SubDyn['M4N5TAze'] = False # (m/s^2); ; +SubDyn['M4N6TAze'] = False # (m/s^2); ; +SubDyn['M4N7TAze'] = False # (m/s^2); ; +SubDyn['M4N8TAze'] = False # (m/s^2); ; +SubDyn['M4N9TAze'] = False # (m/s^2); ; +SubDyn['M5N1TAze'] = False # (m/s^2); ; +SubDyn['M5N2TAze'] = False # (m/s^2); ; +SubDyn['M5N3TAze'] = False # (m/s^2); ; +SubDyn['M5N4TAze'] = False # (m/s^2); ; +SubDyn['M5N5TAze'] = False # (m/s^2); ; +SubDyn['M5N6TAze'] = False # (m/s^2); ; +SubDyn['M5N7TAze'] = False # (m/s^2); ; +SubDyn['M5N8TAze'] = False # (m/s^2); ; +SubDyn['M5N9TAze'] = False # (m/s^2); ; +SubDyn['M6N1TAze'] = False # (m/s^2); ; +SubDyn['M6N2TAze'] = False # (m/s^2); ; +SubDyn['M6N3TAze'] = False # (m/s^2); ; +SubDyn['M6N4TAze'] = False # (m/s^2); ; +SubDyn['M6N5TAze'] = False # (m/s^2); ; +SubDyn['M6N6TAze'] = False # (m/s^2); ; +SubDyn['M6N7TAze'] = False # (m/s^2); ; +SubDyn['M6N8TAze'] = False # (m/s^2); ; +SubDyn['M6N9TAze'] = False # (m/s^2); ; +SubDyn['M7N1TAze'] = False # (m/s^2); ; +SubDyn['M7N2TAze'] = False # (m/s^2); ; +SubDyn['M7N3TAze'] = False # (m/s^2); ; +SubDyn['M7N4TAze'] = False # (m/s^2); ; +SubDyn['M7N5TAze'] = False # (m/s^2); ; +SubDyn['M7N6TAze'] = False # (m/s^2); ; +SubDyn['M7N7TAze'] = False # (m/s^2); ; +SubDyn['M7N8TAze'] = False # (m/s^2); ; +SubDyn['M7N9TAze'] = False # (m/s^2); ; +SubDyn['M8N1TAze'] = False # (m/s^2); ; +SubDyn['M8N2TAze'] = False # (m/s^2); ; +SubDyn['M8N3TAze'] = False # (m/s^2); ; +SubDyn['M8N4TAze'] = False # (m/s^2); ; +SubDyn['M8N5TAze'] = False # (m/s^2); ; +SubDyn['M8N6TAze'] = False # (m/s^2); ; +SubDyn['M8N7TAze'] = False # (m/s^2); ; +SubDyn['M8N8TAze'] = False # (m/s^2); ; +SubDyn['M8N9TAze'] = False # (m/s^2); ; +SubDyn['M9N1TAze'] = False # (m/s^2); ; +SubDyn['M9N2TAze'] = False # (m/s^2); ; +SubDyn['M9N3TAze'] = False # (m/s^2); ; +SubDyn['M9N4TAze'] = False # (m/s^2); ; +SubDyn['M9N5TAze'] = False # (m/s^2); ; +SubDyn['M9N6TAze'] = False # (m/s^2); ; +SubDyn['M9N7TAze'] = False # (m/s^2); ; +SubDyn['M9N8TAze'] = False # (m/s^2); ; +SubDyn['M9N9TAze'] = False # (m/s^2); ; +SubDyn['M1N1RAxe'] = False # (rad/s^2); xe component of the rotational acceleration displacement at Node Nj of member Mi-Element Reference System; +SubDyn['M1N2RAxe'] = False # (rad/s^2); ; +SubDyn['M1N3RAxe'] = False # (rad/s^2); ; +SubDyn['M1N4RAxe'] = False # (rad/s^2); ; +SubDyn['M1N5RAxe'] = False # (rad/s^2); ; +SubDyn['M1N6RAxe'] = False # (rad/s^2); ; +SubDyn['M1N7RAxe'] = False # (rad/s^2); ; +SubDyn['M1N8RAxe'] = False # (rad/s^2); ; +SubDyn['M1N9RAxe'] = False # (rad/s^2); ; +SubDyn['M2N1RAxe'] = False # (rad/s^2); ; +SubDyn['M2N2RAxe'] = False # (rad/s^2); ; +SubDyn['M2N3RAxe'] = False # (rad/s^2); ; +SubDyn['M2N4RAxe'] = False # (rad/s^2); ; +SubDyn['M2N5RAxe'] = False # (rad/s^2); ; +SubDyn['M2N6RAxe'] = False # (rad/s^2); ; +SubDyn['M2N7RAxe'] = False # (rad/s^2); ; +SubDyn['M2N8RAxe'] = False # (rad/s^2); ; +SubDyn['M2N9RAxe'] = False # (rad/s^2); ; +SubDyn['M3N1RAxe'] = False # (rad/s^2); ; +SubDyn['M3N2RAxe'] = False # (rad/s^2); ; +SubDyn['M3N3RAxe'] = False # (rad/s^2); ; +SubDyn['M3N4RAxe'] = False # (rad/s^2); ; +SubDyn['M3N5RAxe'] = False # (rad/s^2); ; +SubDyn['M3N6RAxe'] = False # (rad/s^2); ; +SubDyn['M3N7RAxe'] = False # (rad/s^2); ; +SubDyn['M3N8RAxe'] = False # (rad/s^2); ; +SubDyn['M3N9RAxe'] = False # (rad/s^2); ; +SubDyn['M4N1RAxe'] = False # (rad/s^2); ; +SubDyn['M4N2RAxe'] = False # (rad/s^2); ; +SubDyn['M4N3RAxe'] = False # (rad/s^2); ; +SubDyn['M4N4RAxe'] = False # (rad/s^2); ; +SubDyn['M4N5RAxe'] = False # (rad/s^2); ; +SubDyn['M4N6RAxe'] = False # (rad/s^2); ; +SubDyn['M4N7RAxe'] = False # (rad/s^2); ; +SubDyn['M4N8RAxe'] = False # (rad/s^2); ; +SubDyn['M4N9RAxe'] = False # (rad/s^2); ; +SubDyn['M5N1RAxe'] = False # (rad/s^2); ; +SubDyn['M5N2RAxe'] = False # (rad/s^2); ; +SubDyn['M5N3RAxe'] = False # (rad/s^2); ; +SubDyn['M5N4RAxe'] = False # (rad/s^2); ; +SubDyn['M5N5RAxe'] = False # (rad/s^2); ; +SubDyn['M5N6RAxe'] = False # (rad/s^2); ; +SubDyn['M5N7RAxe'] = False # (rad/s^2); ; +SubDyn['M5N8RAxe'] = False # (rad/s^2); ; +SubDyn['M5N9RAxe'] = False # (rad/s^2); ; +SubDyn['M6N1RAxe'] = False # (rad/s^2); ; +SubDyn['M6N2RAxe'] = False # (rad/s^2); ; +SubDyn['M6N3RAxe'] = False # (rad/s^2); ; +SubDyn['M6N4RAxe'] = False # (rad/s^2); ; +SubDyn['M6N5RAxe'] = False # (rad/s^2); ; +SubDyn['M6N6RAxe'] = False # (rad/s^2); ; +SubDyn['M6N7RAxe'] = False # (rad/s^2); ; +SubDyn['M6N8RAxe'] = False # (rad/s^2); ; +SubDyn['M6N9RAxe'] = False # (rad/s^2); ; +SubDyn['M7N1RAxe'] = False # (rad/s^2); ; +SubDyn['M7N2RAxe'] = False # (rad/s^2); ; +SubDyn['M7N3RAxe'] = False # (rad/s^2); ; +SubDyn['M7N4RAxe'] = False # (rad/s^2); ; +SubDyn['M7N5RAxe'] = False # (rad/s^2); ; +SubDyn['M7N6RAxe'] = False # (rad/s^2); ; +SubDyn['M7N7RAxe'] = False # (rad/s^2); ; +SubDyn['M7N8RAxe'] = False # (rad/s^2); ; +SubDyn['M7N9RAxe'] = False # (rad/s^2); ; +SubDyn['M8N1RAxe'] = False # (rad/s^2); ; +SubDyn['M8N2RAxe'] = False # (rad/s^2); ; +SubDyn['M8N3RAxe'] = False # (rad/s^2); ; +SubDyn['M8N4RAxe'] = False # (rad/s^2); ; +SubDyn['M8N5RAxe'] = False # (rad/s^2); ; +SubDyn['M8N6RAxe'] = False # (rad/s^2); ; +SubDyn['M8N7RAxe'] = False # (rad/s^2); ; +SubDyn['M8N8RAxe'] = False # (rad/s^2); ; +SubDyn['M8N9RAxe'] = False # (rad/s^2); ; +SubDyn['M9N1RAxe'] = False # (rad/s^2); ; +SubDyn['M9N2RAxe'] = False # (rad/s^2); ; +SubDyn['M9N3RAxe'] = False # (rad/s^2); ; +SubDyn['M9N4RAxe'] = False # (rad/s^2); ; +SubDyn['M9N5RAxe'] = False # (rad/s^2); ; +SubDyn['M9N6RAxe'] = False # (rad/s^2); ; +SubDyn['M9N7RAxe'] = False # (rad/s^2); ; +SubDyn['M9N8RAxe'] = False # (rad/s^2); ; +SubDyn['M9N9RAxe'] = False # (rad/s^2); ; +SubDyn['M1N1RAye'] = False # (rad/s^2); ye component of the rotational acceleration displacement at Node Nj of member Mi-Element Reference System; +SubDyn['M1N2RAye'] = False # (rad/s^2); ; +SubDyn['M1N3RAye'] = False # (rad/s^2); ; +SubDyn['M1N4RAye'] = False # (rad/s^2); ; +SubDyn['M1N5RAye'] = False # (rad/s^2); ; +SubDyn['M1N6RAye'] = False # (rad/s^2); ; +SubDyn['M1N7RAye'] = False # (rad/s^2); ; +SubDyn['M1N8RAye'] = False # (rad/s^2); ; +SubDyn['M1N9RAye'] = False # (rad/s^2); ; +SubDyn['M2N1RAye'] = False # (rad/s^2); ; +SubDyn['M2N2RAye'] = False # (rad/s^2); ; +SubDyn['M2N3RAye'] = False # (rad/s^2); ; +SubDyn['M2N4RAye'] = False # (rad/s^2); ; +SubDyn['M2N5RAye'] = False # (rad/s^2); ; +SubDyn['M2N6RAye'] = False # (rad/s^2); ; +SubDyn['M2N7RAye'] = False # (rad/s^2); ; +SubDyn['M2N8RAye'] = False # (rad/s^2); ; +SubDyn['M2N9RAye'] = False # (rad/s^2); ; +SubDyn['M3N1RAye'] = False # (rad/s^2); ; +SubDyn['M3N2RAye'] = False # (rad/s^2); ; +SubDyn['M3N3RAye'] = False # (rad/s^2); ; +SubDyn['M3N4RAye'] = False # (rad/s^2); ; +SubDyn['M3N5RAye'] = False # (rad/s^2); ; +SubDyn['M3N6RAye'] = False # (rad/s^2); ; +SubDyn['M3N7RAye'] = False # (rad/s^2); ; +SubDyn['M3N8RAye'] = False # (rad/s^2); ; +SubDyn['M3N9RAye'] = False # (rad/s^2); ; +SubDyn['M4N1RAye'] = False # (rad/s^2); ; +SubDyn['M4N2RAye'] = False # (rad/s^2); ; +SubDyn['M4N3RAye'] = False # (rad/s^2); ; +SubDyn['M4N4RAye'] = False # (rad/s^2); ; +SubDyn['M4N5RAye'] = False # (rad/s^2); ; +SubDyn['M4N6RAye'] = False # (rad/s^2); ; +SubDyn['M4N7RAye'] = False # (rad/s^2); ; +SubDyn['M4N8RAye'] = False # (rad/s^2); ; +SubDyn['M4N9RAye'] = False # (rad/s^2); ; +SubDyn['M5N1RAye'] = False # (rad/s^2); ; +SubDyn['M5N2RAye'] = False # (rad/s^2); ; +SubDyn['M5N3RAye'] = False # (rad/s^2); ; +SubDyn['M5N4RAye'] = False # (rad/s^2); ; +SubDyn['M5N5RAye'] = False # (rad/s^2); ; +SubDyn['M5N6RAye'] = False # (rad/s^2); ; +SubDyn['M5N7RAye'] = False # (rad/s^2); ; +SubDyn['M5N8RAye'] = False # (rad/s^2); ; +SubDyn['M5N9RAye'] = False # (rad/s^2); ; +SubDyn['M6N1RAye'] = False # (rad/s^2); ; +SubDyn['M6N2RAye'] = False # (rad/s^2); ; +SubDyn['M6N3RAye'] = False # (rad/s^2); ; +SubDyn['M6N4RAye'] = False # (rad/s^2); ; +SubDyn['M6N5RAye'] = False # (rad/s^2); ; +SubDyn['M6N6RAye'] = False # (rad/s^2); ; +SubDyn['M6N7RAye'] = False # (rad/s^2); ; +SubDyn['M6N8RAye'] = False # (rad/s^2); ; +SubDyn['M6N9RAye'] = False # (rad/s^2); ; +SubDyn['M7N1RAye'] = False # (rad/s^2); ; +SubDyn['M7N2RAye'] = False # (rad/s^2); ; +SubDyn['M7N3RAye'] = False # (rad/s^2); ; +SubDyn['M7N4RAye'] = False # (rad/s^2); ; +SubDyn['M7N5RAye'] = False # (rad/s^2); ; +SubDyn['M7N6RAye'] = False # (rad/s^2); ; +SubDyn['M7N7RAye'] = False # (rad/s^2); ; +SubDyn['M7N8RAye'] = False # (rad/s^2); ; +SubDyn['M7N9RAye'] = False # (rad/s^2); ; +SubDyn['M8N1RAye'] = False # (rad/s^2); ; +SubDyn['M8N2RAye'] = False # (rad/s^2); ; +SubDyn['M8N3RAye'] = False # (rad/s^2); ; +SubDyn['M8N4RAye'] = False # (rad/s^2); ; +SubDyn['M8N5RAye'] = False # (rad/s^2); ; +SubDyn['M8N6RAye'] = False # (rad/s^2); ; +SubDyn['M8N7RAye'] = False # (rad/s^2); ; +SubDyn['M8N8RAye'] = False # (rad/s^2); ; +SubDyn['M8N9RAye'] = False # (rad/s^2); ; +SubDyn['M9N1RAye'] = False # (rad/s^2); ; +SubDyn['M9N2RAye'] = False # (rad/s^2); ; +SubDyn['M9N3RAye'] = False # (rad/s^2); ; +SubDyn['M9N4RAye'] = False # (rad/s^2); ; +SubDyn['M9N5RAye'] = False # (rad/s^2); ; +SubDyn['M9N6RAye'] = False # (rad/s^2); ; +SubDyn['M9N7RAye'] = False # (rad/s^2); ; +SubDyn['M9N8RAye'] = False # (rad/s^2); ; +SubDyn['M9N9RAye'] = False # (rad/s^2); ; +SubDyn['M1N1RAze'] = False # (rad/s^2); ze component of the rotational acceleration displacement at Node Nj of member Mi-Element Reference System; +SubDyn['M1N2RAze'] = False # (rad/s^2); ; +SubDyn['M1N3RAze'] = False # (rad/s^2); ; +SubDyn['M1N4RAze'] = False # (rad/s^2); ; +SubDyn['M1N5RAze'] = False # (rad/s^2); ; +SubDyn['M1N6RAze'] = False # (rad/s^2); ; +SubDyn['M1N7RAze'] = False # (rad/s^2); ; +SubDyn['M1N8RAze'] = False # (rad/s^2); ; +SubDyn['M1N9RAze'] = False # (rad/s^2); ; +SubDyn['M2N1RAze'] = False # (rad/s^2); ; +SubDyn['M2N2RAze'] = False # (rad/s^2); ; +SubDyn['M2N3RAze'] = False # (rad/s^2); ; +SubDyn['M2N4RAze'] = False # (rad/s^2); ; +SubDyn['M2N5RAze'] = False # (rad/s^2); ; +SubDyn['M2N6RAze'] = False # (rad/s^2); ; +SubDyn['M2N7RAze'] = False # (rad/s^2); ; +SubDyn['M2N8RAze'] = False # (rad/s^2); ; +SubDyn['M2N9RAze'] = False # (rad/s^2); ; +SubDyn['M3N1RAze'] = False # (rad/s^2); ; +SubDyn['M3N2RAze'] = False # (rad/s^2); ; +SubDyn['M3N3RAze'] = False # (rad/s^2); ; +SubDyn['M3N4RAze'] = False # (rad/s^2); ; +SubDyn['M3N5RAze'] = False # (rad/s^2); ; +SubDyn['M3N6RAze'] = False # (rad/s^2); ; +SubDyn['M3N7RAze'] = False # (rad/s^2); ; +SubDyn['M3N8RAze'] = False # (rad/s^2); ; +SubDyn['M3N9RAze'] = False # (rad/s^2); ; +SubDyn['M4N1RAze'] = False # (rad/s^2); ; +SubDyn['M4N2RAze'] = False # (rad/s^2); ; +SubDyn['M4N3RAze'] = False # (rad/s^2); ; +SubDyn['M4N4RAze'] = False # (rad/s^2); ; +SubDyn['M4N5RAze'] = False # (rad/s^2); ; +SubDyn['M4N6RAze'] = False # (rad/s^2); ; +SubDyn['M4N7RAze'] = False # (rad/s^2); ; +SubDyn['M4N8RAze'] = False # (rad/s^2); ; +SubDyn['M4N9RAze'] = False # (rad/s^2); ; +SubDyn['M5N1RAze'] = False # (rad/s^2); ; +SubDyn['M5N2RAze'] = False # (rad/s^2); ; +SubDyn['M5N3RAze'] = False # (rad/s^2); ; +SubDyn['M5N4RAze'] = False # (rad/s^2); ; +SubDyn['M5N5RAze'] = False # (rad/s^2); ; +SubDyn['M5N6RAze'] = False # (rad/s^2); ; +SubDyn['M5N7RAze'] = False # (rad/s^2); ; +SubDyn['M5N8RAze'] = False # (rad/s^2); ; +SubDyn['M5N9RAze'] = False # (rad/s^2); ; +SubDyn['M6N1RAze'] = False # (rad/s^2); ; +SubDyn['M6N2RAze'] = False # (rad/s^2); ; +SubDyn['M6N3RAze'] = False # (rad/s^2); ; +SubDyn['M6N4RAze'] = False # (rad/s^2); ; +SubDyn['M6N5RAze'] = False # (rad/s^2); ; +SubDyn['M6N6RAze'] = False # (rad/s^2); ; +SubDyn['M6N7RAze'] = False # (rad/s^2); ; +SubDyn['M6N8RAze'] = False # (rad/s^2); ; +SubDyn['M6N9RAze'] = False # (rad/s^2); ; +SubDyn['M7N1RAze'] = False # (rad/s^2); ; +SubDyn['M7N2RAze'] = False # (rad/s^2); ; +SubDyn['M7N3RAze'] = False # (rad/s^2); ; +SubDyn['M7N4RAze'] = False # (rad/s^2); ; +SubDyn['M7N5RAze'] = False # (rad/s^2); ; +SubDyn['M7N6RAze'] = False # (rad/s^2); ; +SubDyn['M7N7RAze'] = False # (rad/s^2); ; +SubDyn['M7N8RAze'] = False # (rad/s^2); ; +SubDyn['M7N9RAze'] = False # (rad/s^2); ; +SubDyn['M8N1RAze'] = False # (rad/s^2); ; +SubDyn['M8N2RAze'] = False # (rad/s^2); ; +SubDyn['M8N3RAze'] = False # (rad/s^2); ; +SubDyn['M8N4RAze'] = False # (rad/s^2); ; +SubDyn['M8N5RAze'] = False # (rad/s^2); ; +SubDyn['M8N6RAze'] = False # (rad/s^2); ; +SubDyn['M8N7RAze'] = False # (rad/s^2); ; +SubDyn['M8N8RAze'] = False # (rad/s^2); ; +SubDyn['M8N9RAze'] = False # (rad/s^2); ; +SubDyn['M9N1RAze'] = False # (rad/s^2); ; +SubDyn['M9N2RAze'] = False # (rad/s^2); ; +SubDyn['M9N3RAze'] = False # (rad/s^2); ; +SubDyn['M9N4RAze'] = False # (rad/s^2); ; +SubDyn['M9N5RAze'] = False # (rad/s^2); ; +SubDyn['M9N6RAze'] = False # (rad/s^2); ; +SubDyn['M9N7RAze'] = False # (rad/s^2); ; +SubDyn['M9N8RAze'] = False # (rad/s^2); ; +SubDyn['M9N9RAze'] = False # (rad/s^2); ; + +# Reactions +SubDyn['ReactFXss'] = False # (N); Base Reaction Force along Xss; +SubDyn['ReactFYss'] = False # (N); Base Reaction Force along Yss; +SubDyn['ReactFZss'] = False # (N); Base Reaction Force along Zss; +SubDyn['ReactMXss'] = False # (Nm); Base Reaction Moment along Xss; +SubDyn['ReactMYss'] = False # (Nm); Base Reaction Moment along Yss; +SubDyn['ReactMZss'] = False # (Nm); Base Reaction Moment along Zss; +SubDyn['IntfFXss'] = False # (N); Interface Reaction Force along Xss; +SubDyn['IntfFYss'] = False # (N); Interface Reaction Force along Yss; +SubDyn['IntfFZss'] = False # (N); Interface Reaction Force along Zss; +SubDyn['IntfMXss'] = False # (Nm); Interface Reaction Moment along Xss; +SubDyn['IntfMYss'] = False # (Nm); Interface Reaction Moment along Yss; +SubDyn['IntfMZss'] = False # (Nm); Interface Reaction Moment along Zss; + +# Interface Deflections +SubDyn['IntfTDXss'] = False # (m); Interface Deflection along Xss; +SubDyn['IntfTDYss'] = False # (m); Interface Deflection along Yss; +SubDyn['IntfTDZss'] = False # (m); Interface Deflection along Zss; +SubDyn['IntfRDXss'] = False # (rad); Interface Angular Deflection along Xss; +SubDyn['IntfRDYss'] = False # (rad); Interface Angular Deflection along Yss; +SubDyn['IntfRDZss'] = False # (rad); Interface Angular Deflection along Zss; + +# Interface Accelerations +SubDyn['IntfTAXss'] = False # (m/s^2); Interface Acceleration along Xss; +SubDyn['IntfTAYss'] = False # (m/s^2); Interface Acceleration along Yss; +SubDyn['IntfTAZss'] = False # (m/s^2); Interface Acceleration along Zss; +SubDyn['IntfRAXss'] = False # (rad/s^2); Interface Angular Acceleration along Xss; +SubDyn['IntfRAYss'] = False # (rad/s^2); Interface Angular Acceleration along Yss; +SubDyn['IntfRAZss'] = False # (rad/s^2); Interface Angular Acceleration along Zss; + +# Modal Parameters +SubDyn['SSqm01'] = False # (--); Modal Parameter (01-99) values; +SubDyn['SSqm02'] = False # (--); ; +SubDyn['SSqm03'] = False # (--); ; +SubDyn['SSqm04'] = False # (--); ; +SubDyn['SSqm05'] = False # (--); ; +SubDyn['SSqm06'] = False # (--); ; +SubDyn['SSqm07'] = False # (--); ; +SubDyn['SSqm08'] = False # (--); ; +SubDyn['SSqm09'] = False # (--); ; +SubDyn['SSqm10'] = False # (--); ; +SubDyn['SSqm11'] = False # (--); ; +SubDyn['SSqm12'] = False # (--); ; +SubDyn['SSqm13'] = False # (--); ; +SubDyn['SSqm14'] = False # (--); ; +SubDyn['SSqm15'] = False # (--); ; +SubDyn['SSqm16'] = False # (--); ; +SubDyn['SSqm17'] = False # (--); ; +SubDyn['SSqm18'] = False # (--); ; +SubDyn['SSqm19'] = False # (--); ; +SubDyn['SSqm20'] = False # (--); ; +SubDyn['SSqm21'] = False # (--); ; +SubDyn['SSqm22'] = False # (--); ; +SubDyn['SSqm23'] = False # (--); ; +SubDyn['SSqm24'] = False # (--); ; +SubDyn['SSqm25'] = False # (--); ; +SubDyn['SSqm26'] = False # (--); ; +SubDyn['SSqm27'] = False # (--); ; +SubDyn['SSqm28'] = False # (--); ; +SubDyn['SSqm29'] = False # (--); ; +SubDyn['SSqm30'] = False # (--); ; +SubDyn['SSqm31'] = False # (--); ; +SubDyn['SSqm32'] = False # (--); ; +SubDyn['SSqm33'] = False # (--); ; +SubDyn['SSqm34'] = False # (--); ; +SubDyn['SSqm35'] = False # (--); ; +SubDyn['SSqm36'] = False # (--); ; +SubDyn['SSqm37'] = False # (--); ; +SubDyn['SSqm38'] = False # (--); ; +SubDyn['SSqm39'] = False # (--); ; +SubDyn['SSqm40'] = False # (--); ; +SubDyn['SSqm41'] = False # (--); ; +SubDyn['SSqm42'] = False # (--); ; +SubDyn['SSqm43'] = False # (--); ; +SubDyn['SSqm44'] = False # (--); ; +SubDyn['SSqm45'] = False # (--); ; +SubDyn['SSqm46'] = False # (--); ; +SubDyn['SSqm47'] = False # (--); ; +SubDyn['SSqm48'] = False # (--); ; +SubDyn['SSqm49'] = False # (--); ; +SubDyn['SSqm50'] = False # (--); ; +SubDyn['SSqm51'] = False # (--); ; +SubDyn['SSqm52'] = False # (--); ; +SubDyn['SSqm53'] = False # (--); ; +SubDyn['SSqm54'] = False # (--); ; +SubDyn['SSqm55'] = False # (--); ; +SubDyn['SSqm56'] = False # (--); ; +SubDyn['SSqm57'] = False # (--); ; +SubDyn['SSqm58'] = False # (--); ; +SubDyn['SSqm59'] = False # (--); ; +SubDyn['SSqm60'] = False # (--); ; +SubDyn['SSqm61'] = False # (--); ; +SubDyn['SSqm62'] = False # (--); ; +SubDyn['SSqm63'] = False # (--); ; +SubDyn['SSqm64'] = False # (--); ; +SubDyn['SSqm65'] = False # (--); ; +SubDyn['SSqm66'] = False # (--); ; +SubDyn['SSqm67'] = False # (--); ; +SubDyn['SSqm68'] = False # (--); ; +SubDyn['SSqm69'] = False # (--); ; +SubDyn['SSqm70'] = False # (--); ; +SubDyn['SSqm71'] = False # (--); ; +SubDyn['SSqm72'] = False # (--); ; +SubDyn['SSqm73'] = False # (--); ; +SubDyn['SSqm74'] = False # (--); ; +SubDyn['SSqm75'] = False # (--); ; +SubDyn['SSqm76'] = False # (--); ; +SubDyn['SSqm77'] = False # (--); ; +SubDyn['SSqm78'] = False # (--); ; +SubDyn['SSqm79'] = False # (--); ; +SubDyn['SSqm80'] = False # (--); ; +SubDyn['SSqm81'] = False # (--); ; +SubDyn['SSqm82'] = False # (--); ; +SubDyn['SSqm83'] = False # (--); ; +SubDyn['SSqm84'] = False # (--); ; +SubDyn['SSqm85'] = False # (--); ; +SubDyn['SSqm86'] = False # (--); ; +SubDyn['SSqm87'] = False # (--); ; +SubDyn['SSqm88'] = False # (--); ; +SubDyn['SSqm89'] = False # (--); ; +SubDyn['SSqm90'] = False # (--); ; +SubDyn['SSqm91'] = False # (--); ; +SubDyn['SSqm92'] = False # (--); ; +SubDyn['SSqm93'] = False # (--); ; +SubDyn['SSqm94'] = False # (--); ; +SubDyn['SSqm95'] = False # (--); ; +SubDyn['SSqm96'] = False # (--); ; +SubDyn['SSqm97'] = False # (--); ; +SubDyn['SSqm98'] = False # (--); ; +SubDyn['SSqm99'] = False # (--); ; +SubDyn['SSqmd01'] = False # (1/s); Modal Parameter (01-99) time derivatives; +SubDyn['SSqmd02'] = False # (1/s); ; +SubDyn['SSqmd03'] = False # (1/s); ; +SubDyn['SSqmd04'] = False # (1/s); ; +SubDyn['SSqmd05'] = False # (1/s); ; +SubDyn['SSqmd06'] = False # (1/s); ; +SubDyn['SSqmd07'] = False # (1/s); ; +SubDyn['SSqmd08'] = False # (1/s); ; +SubDyn['SSqmd09'] = False # (1/s); ; +SubDyn['SSqmd10'] = False # (1/s); ; +SubDyn['SSqmd11'] = False # (1/s); ; +SubDyn['SSqmd12'] = False # (1/s); ; +SubDyn['SSqmd13'] = False # (1/s); ; +SubDyn['SSqmd14'] = False # (1/s); ; +SubDyn['SSqmd15'] = False # (1/s); ; +SubDyn['SSqmd16'] = False # (1/s); ; +SubDyn['SSqmd17'] = False # (1/s); ; +SubDyn['SSqmd18'] = False # (1/s); ; +SubDyn['SSqmd19'] = False # (1/s); ; +SubDyn['SSqmd20'] = False # (1/s); ; +SubDyn['SSqmd21'] = False # (1/s); ; +SubDyn['SSqmd22'] = False # (1/s); ; +SubDyn['SSqmd23'] = False # (1/s); ; +SubDyn['SSqmd24'] = False # (1/s); ; +SubDyn['SSqmd25'] = False # (1/s); ; +SubDyn['SSqmd26'] = False # (1/s); ; +SubDyn['SSqmd27'] = False # (1/s); ; +SubDyn['SSqmd28'] = False # (1/s); ; +SubDyn['SSqmd29'] = False # (1/s); ; +SubDyn['SSqmd30'] = False # (1/s); ; +SubDyn['SSqmd31'] = False # (1/s); ; +SubDyn['SSqmd32'] = False # (1/s); ; +SubDyn['SSqmd33'] = False # (1/s); ; +SubDyn['SSqmd34'] = False # (1/s); ; +SubDyn['SSqmd35'] = False # (1/s); ; +SubDyn['SSqmd36'] = False # (1/s); ; +SubDyn['SSqmd37'] = False # (1/s); ; +SubDyn['SSqmd38'] = False # (1/s); ; +SubDyn['SSqmd39'] = False # (1/s); ; +SubDyn['SSqmd40'] = False # (1/s); ; +SubDyn['SSqmd41'] = False # (1/s); ; +SubDyn['SSqmd42'] = False # (1/s); ; +SubDyn['SSqmd43'] = False # (1/s); ; +SubDyn['SSqmd44'] = False # (1/s); ; +SubDyn['SSqmd45'] = False # (1/s); ; +SubDyn['SSqmd46'] = False # (1/s); ; +SubDyn['SSqmd47'] = False # (1/s); ; +SubDyn['SSqmd48'] = False # (1/s); ; +SubDyn['SSqmd49'] = False # (1/s); ; +SubDyn['SSqmd50'] = False # (1/s); ; +SubDyn['SSqmd51'] = False # (1/s); ; +SubDyn['SSqmd52'] = False # (1/s); ; +SubDyn['SSqmd53'] = False # (1/s); ; +SubDyn['SSqmd54'] = False # (1/s); ; +SubDyn['SSqmd55'] = False # (1/s); ; +SubDyn['SSqmd56'] = False # (1/s); ; +SubDyn['SSqmd57'] = False # (1/s); ; +SubDyn['SSqmd58'] = False # (1/s); ; +SubDyn['SSqmd59'] = False # (1/s); ; +SubDyn['SSqmd60'] = False # (1/s); ; +SubDyn['SSqmd61'] = False # (1/s); ; +SubDyn['SSqmd62'] = False # (1/s); ; +SubDyn['SSqmd63'] = False # (1/s); ; +SubDyn['SSqmd64'] = False # (1/s); ; +SubDyn['SSqmd65'] = False # (1/s); ; +SubDyn['SSqmd66'] = False # (1/s); ; +SubDyn['SSqmd67'] = False # (1/s); ; +SubDyn['SSqmd68'] = False # (1/s); ; +SubDyn['SSqmd69'] = False # (1/s); ; +SubDyn['SSqmd70'] = False # (1/s); ; +SubDyn['SSqmd71'] = False # (1/s); ; +SubDyn['SSqmd72'] = False # (1/s); ; +SubDyn['SSqmd73'] = False # (1/s); ; +SubDyn['SSqmd74'] = False # (1/s); ; +SubDyn['SSqmd75'] = False # (1/s); ; +SubDyn['SSqmd76'] = False # (1/s); ; +SubDyn['SSqmd77'] = False # (1/s); ; +SubDyn['SSqmd78'] = False # (1/s); ; +SubDyn['SSqmd79'] = False # (1/s); ; +SubDyn['SSqmd80'] = False # (1/s); ; +SubDyn['SSqmd81'] = False # (1/s); ; +SubDyn['SSqmd82'] = False # (1/s); ; +SubDyn['SSqmd83'] = False # (1/s); ; +SubDyn['SSqmd84'] = False # (1/s); ; +SubDyn['SSqmd85'] = False # (1/s); ; +SubDyn['SSqmd86'] = False # (1/s); ; +SubDyn['SSqmd87'] = False # (1/s); ; +SubDyn['SSqmd88'] = False # (1/s); ; +SubDyn['SSqmd89'] = False # (1/s); ; +SubDyn['SSqmd90'] = False # (1/s); ; +SubDyn['SSqmd91'] = False # (1/s); ; +SubDyn['SSqmd92'] = False # (1/s); ; +SubDyn['SSqmd93'] = False # (1/s); ; +SubDyn['SSqmd94'] = False # (1/s); ; +SubDyn['SSqmd95'] = False # (1/s); ; +SubDyn['SSqmd96'] = False # (1/s); ; +SubDyn['SSqmd97'] = False # (1/s); ; +SubDyn['SSqmd98'] = False # (1/s); ; +SubDyn['SSqmd99'] = False # (1/s); ; +SubDyn['SSqmdd01'] = False # (1/s^2); Modal Parameter (01-99) 2nd time derivatives; +SubDyn['SSqmdd02'] = False # (1/s^2); ; +SubDyn['SSqmdd03'] = False # (1/s^2); ; +SubDyn['SSqmdd04'] = False # (1/s^2); ; +SubDyn['SSqmdd05'] = False # (1/s^2); ; +SubDyn['SSqmdd06'] = False # (1/s^2); ; +SubDyn['SSqmdd07'] = False # (1/s^2); ; +SubDyn['SSqmdd08'] = False # (1/s^2); ; +SubDyn['SSqmdd09'] = False # (1/s^2); ; +SubDyn['SSqmdd10'] = False # (1/s^2); ; +SubDyn['SSqmdd11'] = False # (1/s^2); ; +SubDyn['SSqmdd12'] = False # (1/s^2); ; +SubDyn['SSqmdd13'] = False # (1/s^2); ; +SubDyn['SSqmdd14'] = False # (1/s^2); ; +SubDyn['SSqmdd15'] = False # (1/s^2); ; +SubDyn['SSqmdd16'] = False # (1/s^2); ; +SubDyn['SSqmdd17'] = False # (1/s^2); ; +SubDyn['SSqmdd18'] = False # (1/s^2); ; +SubDyn['SSqmdd19'] = False # (1/s^2); ; +SubDyn['SSqmdd20'] = False # (1/s^2); ; +SubDyn['SSqmdd21'] = False # (1/s^2); ; +SubDyn['SSqmdd22'] = False # (1/s^2); ; +SubDyn['SSqmdd23'] = False # (1/s^2); ; +SubDyn['SSqmdd24'] = False # (1/s^2); ; +SubDyn['SSqmdd25'] = False # (1/s^2); ; +SubDyn['SSqmdd26'] = False # (1/s^2); ; +SubDyn['SSqmdd27'] = False # (1/s^2); ; +SubDyn['SSqmdd28'] = False # (1/s^2); ; +SubDyn['SSqmdd29'] = False # (1/s^2); ; +SubDyn['SSqmdd30'] = False # (1/s^2); ; +SubDyn['SSqmdd31'] = False # (1/s^2); ; +SubDyn['SSqmdd32'] = False # (1/s^2); ; +SubDyn['SSqmdd33'] = False # (1/s^2); ; +SubDyn['SSqmdd34'] = False # (1/s^2); ; +SubDyn['SSqmdd35'] = False # (1/s^2); ; +SubDyn['SSqmdd36'] = False # (1/s^2); ; +SubDyn['SSqmdd37'] = False # (1/s^2); ; +SubDyn['SSqmdd38'] = False # (1/s^2); ; +SubDyn['SSqmdd39'] = False # (1/s^2); ; +SubDyn['SSqmdd40'] = False # (1/s^2); ; +SubDyn['SSqmdd41'] = False # (1/s^2); ; +SubDyn['SSqmdd42'] = False # (1/s^2); ; +SubDyn['SSqmdd43'] = False # (1/s^2); ; +SubDyn['SSqmdd44'] = False # (1/s^2); ; +SubDyn['SSqmdd45'] = False # (1/s^2); ; +SubDyn['SSqmdd46'] = False # (1/s^2); ; +SubDyn['SSqmdd47'] = False # (1/s^2); ; +SubDyn['SSqmdd48'] = False # (1/s^2); ; +SubDyn['SSqmdd49'] = False # (1/s^2); ; +SubDyn['SSqmdd50'] = False # (1/s^2); ; +SubDyn['SSqmdd51'] = False # (1/s^2); ; +SubDyn['SSqmdd52'] = False # (1/s^2); ; +SubDyn['SSqmdd53'] = False # (1/s^2); ; +SubDyn['SSqmdd54'] = False # (1/s^2); ; +SubDyn['SSqmdd55'] = False # (1/s^2); ; +SubDyn['SSqmdd56'] = False # (1/s^2); ; +SubDyn['SSqmdd57'] = False # (1/s^2); ; +SubDyn['SSqmdd58'] = False # (1/s^2); ; +SubDyn['SSqmdd59'] = False # (1/s^2); ; +SubDyn['SSqmdd60'] = False # (1/s^2); ; +SubDyn['SSqmdd61'] = False # (1/s^2); ; +SubDyn['SSqmdd62'] = False # (1/s^2); ; +SubDyn['SSqmdd63'] = False # (1/s^2); ; +SubDyn['SSqmdd64'] = False # (1/s^2); ; +SubDyn['SSqmdd65'] = False # (1/s^2); ; +SubDyn['SSqmdd66'] = False # (1/s^2); ; +SubDyn['SSqmdd67'] = False # (1/s^2); ; +SubDyn['SSqmdd68'] = False # (1/s^2); ; +SubDyn['SSqmdd69'] = False # (1/s^2); ; +SubDyn['SSqmdd70'] = False # (1/s^2); ; +SubDyn['SSqmdd71'] = False # (1/s^2); ; +SubDyn['SSqmdd72'] = False # (1/s^2); ; +SubDyn['SSqmdd73'] = False # (1/s^2); ; +SubDyn['SSqmdd74'] = False # (1/s^2); ; +SubDyn['SSqmdd75'] = False # (1/s^2); ; +SubDyn['SSqmdd76'] = False # (1/s^2); ; +SubDyn['SSqmdd77'] = False # (1/s^2); ; +SubDyn['SSqmdd78'] = False # (1/s^2); ; +SubDyn['SSqmdd79'] = False # (1/s^2); ; +SubDyn['SSqmdd80'] = False # (1/s^2); ; +SubDyn['SSqmdd81'] = False # (1/s^2); ; +SubDyn['SSqmdd82'] = False # (1/s^2); ; +SubDyn['SSqmdd83'] = False # (1/s^2); ; +SubDyn['SSqmdd84'] = False # (1/s^2); ; +SubDyn['SSqmdd85'] = False # (1/s^2); ; +SubDyn['SSqmdd86'] = False # (1/s^2); ; +SubDyn['SSqmdd87'] = False # (1/s^2); ; +SubDyn['SSqmdd88'] = False # (1/s^2); ; +SubDyn['SSqmdd89'] = False # (1/s^2); ; +SubDyn['SSqmdd90'] = False # (1/s^2); ; +SubDyn['SSqmdd91'] = False # (1/s^2); ; +SubDyn['SSqmdd92'] = False # (1/s^2); ; +SubDyn['SSqmdd93'] = False # (1/s^2); ; +SubDyn['SSqmdd94'] = False # (1/s^2); ; +SubDyn['SSqmdd95'] = False # (1/s^2); ; +SubDyn['SSqmdd96'] = False # (1/s^2); ; +SubDyn['SSqmdd97'] = False # (1/s^2); ; +SubDyn['SSqmdd98'] = False # (1/s^2); ; +SubDyn['SSqmdd99'] = False # (1/s^2); ; + +""" MoorDyn """ +# THIS IS NOT A COMPLETE LIST! +# the "flexible naming system" discussed on page 7-8 of the documentation is not included +# http://www.matt-hall.ca/files/MoorDyn-Users-Guide-2017-08-16.pdf + +# also assuming that like other OpenFAST variables, it is limited to 9 output locations per veriable, i.e. FairTen1-FairTen9 + +MoorDyn = {} +MoorDyn['FairTen1'] = False # (); ; +MoorDyn['FairTen2'] = False # (); ; +MoorDyn['FairTen3'] = False # (); ; +MoorDyn['FairTen4'] = False # (); ; +MoorDyn['FairTen5'] = False # (); ; +MoorDyn['FairTen6'] = False # (); ; +MoorDyn['FairTen7'] = False # (); ; +MoorDyn['FairTen8'] = False # (); ; +MoorDyn['FairTen9'] = False # (); ; +MoorDyn['AnchTen1'] = False # (); ; +MoorDyn['AnchTen2'] = False # (); ; +MoorDyn['AnchTen3'] = False # (); ; +MoorDyn['AnchTen4'] = False # (); ; +MoorDyn['AnchTen5'] = False # (); ; +MoorDyn['AnchTen6'] = False # (); ; +MoorDyn['AnchTen7'] = False # (); ; +MoorDyn['AnchTen8'] = False # (); ; +MoorDyn['AnchTen9'] = False # (); ; + +""" BeamDyn """ +BeamDyn = {} + +# Reaction Loads +BeamDyn['RootFxr'] = False # (N); x-component of the root reaction force expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootFyr'] = False # (N); y-component of the root reaction force expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootFzr'] = False # (N); z-component of the root reaction force expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootMxr'] = False # (N-m); x-component of the root reaction moment expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootMyr'] = False # (N-m); y-component of the root reaction moment expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['RootMzr'] = False # (N-m); z-component of the root reaction moment expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system + +# Tip Motions +BeamDyn['TipTDxr'] = False # (m); Tip translational deflection (relative to the undeflected position) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipTDyr'] = False # (m); Tip translational deflection (relative to the undeflected position) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipTDzr'] = False # (m); Tip translational deflection (relative to the undeflected position) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipRDxr'] = False # (-); Tip angular/rotational deflection Wiener-Milenkovi parameter (relative to the undeflected orientation) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipRDyr'] = False # (-); Tip angular/rotational deflection Wiener-Milenkovi parameter (relative to the undeflected orientation) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipRDzr'] = False # (-); Tip angular/rotational deflection Wiener-Milenkovi parameter (relative to the undeflected orientation) expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['TipTVXg'] = False # (m/s); Tip translational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipTVYg'] = False # (m/s); Tip translational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipTVZg'] = False # (m/s); Tip translational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipRVXg'] = False # (deg/s); Tip angular/rotational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipRVYg'] = False # (deg/s); Tip angular/rotational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipRVZg'] = False # (deg/s); Tip angular/rotational velocities (absolute) expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['TipTAXl'] = False # (m/s^2); Tip translational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipTAYl'] = False # (m/s^2); Tip translational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipTAZl'] = False # (m/s^2); Tip translational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipRAXl'] = False # (deg/s^2); Tip angular/rotational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipRAYl'] = False # (deg/s^2); Tip angular/rotational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['TipRAZl'] = False # (deg/s^2); Tip angular/rotational accelerations (absolute) expressed in l; l: a floating coordinate system local to the deflected beam + +# Sectional Loads +BeamDyn['N1Fxl'] = False # (N); Sectional force resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Fyl'] = False # (N); Sectional force resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Fzl'] = False # (N); Sectional force resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Fxl'] = False # (N); Sectional force resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Fyl'] = False # (N); Sectional force resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Fzl'] = False # (N); Sectional force resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Fxl'] = False # (N); Sectional force resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Fyl'] = False # (N); Sectional force resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Fzl'] = False # (N); Sectional force resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Fxl'] = False # (N); Sectional force resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Fyl'] = False # (N); Sectional force resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Fzl'] = False # (N); Sectional force resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Fxl'] = False # (N); Sectional force resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Fyl'] = False # (N); Sectional force resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Fzl'] = False # (N); Sectional force resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Fxl'] = False # (N); Sectional force resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Fyl'] = False # (N); Sectional force resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Fzl'] = False # (N); Sectional force resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Fxl'] = False # (N); Sectional force resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Fyl'] = False # (N); Sectional force resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Fzl'] = False # (N); Sectional force resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Fxl'] = False # (N); Sectional force resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Fyl'] = False # (N); Sectional force resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Fzl'] = False # (N); Sectional force resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Fxl'] = False # (N); Sectional force resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Fyl'] = False # (N); Sectional force resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Fzl'] = False # (N); Sectional force resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Mxl'] = False # (N-m); Sectional moment resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Myl'] = False # (N-m); Sectional moment resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1Mzl'] = False # (N-m); Sectional moment resultants at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Mxl'] = False # (N-m); Sectional moment resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Myl'] = False # (N-m); Sectional moment resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2Mzl'] = False # (N-m); Sectional moment resultants at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Mxl'] = False # (N-m); Sectional moment resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Myl'] = False # (N-m); Sectional moment resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3Mzl'] = False # (N-m); Sectional moment resultants at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Mxl'] = False # (N-m); Sectional moment resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Myl'] = False # (N-m); Sectional moment resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4Mzl'] = False # (N-m); Sectional moment resultants at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Mxl'] = False # (N-m); Sectional moment resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Myl'] = False # (N-m); Sectional moment resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5Mzl'] = False # (N-m); Sectional moment resultants at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Mxl'] = False # (N-m); Sectional moment resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Myl'] = False # (N-m); Sectional moment resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6Mzl'] = False # (N-m); Sectional moment resultants at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Mxl'] = False # (N-m); Sectional moment resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Myl'] = False # (N-m); Sectional moment resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7Mzl'] = False # (N-m); Sectional moment resultants at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Mxl'] = False # (N-m); Sectional moment resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Myl'] = False # (N-m); Sectional moment resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8Mzl'] = False # (N-m); Sectional moment resultants at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Mxl'] = False # (N-m); Sectional moment resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Myl'] = False # (N-m); Sectional moment resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9Mzl'] = False # (N-m); Sectional moment resultants at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam + +# Sectional Motions +BeamDyn['N1TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9TDxr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9TDyr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9TDzr'] = False # (m); Sectional translational deflection (relative to the undeflected position) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 1 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N2RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 2 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N3RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 3 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N4RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 4 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N5RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 5 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N6RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 6 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N7RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 7 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N8RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 8 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9RDxr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9RDyr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N9RDzr'] = False # (-); Sectional angular/rotational deflection Wiener-Milenkovic parameter (relative to the undeflected orientation) at Node 9 expressed in r; r: a floating reference coordinate system fixed to the root of the moving beam; when coupled to FAST for blades, this is equivalent to the IEC blade (b) coordinate system +BeamDyn['N1TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9TVXg'] = False # (m/s); Sectional translational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9TVYg'] = False # (m/s); Sectional translational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9TVZg'] = False # (m/s); Sectional translational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 1 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N2RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 2 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N3RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 3 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N4RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 4 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N5RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 5 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N6RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 6 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N7RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 7 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N8RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 8 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9RVXg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9RVYg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N9RVZg'] = False # (deg/s); Sectional angular/rotational velocities (absolute) at Node 9 expressed in g; g: the global inertial frame coordinate system; when coupled to FAST, this is equivalent to FAST s global inertial frame (i) coordinate system +BeamDyn['N1TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9TAXl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9TAYl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9TAZl'] = False # (m/s^2); Sectional translational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9RAXl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9RAYl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9RAZl'] = False # (deg/s^2); Sectional angular/rotational accelerations (absolute) at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam + +# Applied Loads +BeamDyn['N1PFxl'] = False # (N); Applied point forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PFyl'] = False # (N); Applied point forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PFzl'] = False # (N); Applied point forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PFxl'] = False # (N); Applied point forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PFyl'] = False # (N); Applied point forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PFzl'] = False # (N); Applied point forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PFxl'] = False # (N); Applied point forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PFyl'] = False # (N); Applied point forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PFzl'] = False # (N); Applied point forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PFxl'] = False # (N); Applied point forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PFyl'] = False # (N); Applied point forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PFzl'] = False # (N); Applied point forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PFxl'] = False # (N); Applied point forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PFyl'] = False # (N); Applied point forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PFzl'] = False # (N); Applied point forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PFxl'] = False # (N); Applied point forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PFyl'] = False # (N); Applied point forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PFzl'] = False # (N); Applied point forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PFxl'] = False # (N); Applied point forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PFyl'] = False # (N); Applied point forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PFzl'] = False # (N); Applied point forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PFxl'] = False # (N); Applied point forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PFyl'] = False # (N); Applied point forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PFzl'] = False # (N); Applied point forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PFxl'] = False # (N); Applied point forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PFyl'] = False # (N); Applied point forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PFzl'] = False # (N); Applied point forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PMxl'] = False # (N-m); Applied point moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PMyl'] = False # (N-m); Applied point moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1PMzl'] = False # (N-m); Applied point moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PMxl'] = False # (N-m); Applied point moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PMyl'] = False # (N-m); Applied point moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2PMzl'] = False # (N-m); Applied point moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PMxl'] = False # (N-m); Applied point moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PMyl'] = False # (N-m); Applied point moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3PMzl'] = False # (N-m); Applied point moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PMxl'] = False # (N-m); Applied point moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PMyl'] = False # (N-m); Applied point moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4PMzl'] = False # (N-m); Applied point moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PMxl'] = False # (N-m); Applied point moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PMyl'] = False # (N-m); Applied point moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5PMzl'] = False # (N-m); Applied point moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PMxl'] = False # (N-m); Applied point moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PMyl'] = False # (N-m); Applied point moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6PMzl'] = False # (N-m); Applied point moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PMxl'] = False # (N-m); Applied point moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PMyl'] = False # (N-m); Applied point moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7PMzl'] = False # (N-m); Applied point moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PMxl'] = False # (N-m); Applied point moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PMyl'] = False # (N-m); Applied point moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8PMzl'] = False # (N-m); Applied point moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PMxl'] = False # (N-m); Applied point moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PMyl'] = False # (N-m); Applied point moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9PMzl'] = False # (N-m); Applied point moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DFxl'] = False # (N/m); Applied distributed forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DFyl'] = False # (N/m); Applied distributed forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DFzl'] = False # (N/m); Applied distributed forces at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DFxl'] = False # (N/m); Applied distributed forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DFyl'] = False # (N/m); Applied distributed forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DFzl'] = False # (N/m); Applied distributed forces at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DFxl'] = False # (N/m); Applied distributed forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DFyl'] = False # (N/m); Applied distributed forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DFzl'] = False # (N/m); Applied distributed forces at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DFxl'] = False # (N/m); Applied distributed forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DFyl'] = False # (N/m); Applied distributed forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DFzl'] = False # (N/m); Applied distributed forces at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DFxl'] = False # (N/m); Applied distributed forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DFyl'] = False # (N/m); Applied distributed forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DFzl'] = False # (N/m); Applied distributed forces at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DFxl'] = False # (N/m); Applied distributed forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DFyl'] = False # (N/m); Applied distributed forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DFzl'] = False # (N/m); Applied distributed forces at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DFxl'] = False # (N/m); Applied distributed forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DFyl'] = False # (N/m); Applied distributed forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DFzl'] = False # (N/m); Applied distributed forces at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DFxl'] = False # (N/m); Applied distributed forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DFyl'] = False # (N/m); Applied distributed forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DFzl'] = False # (N/m); Applied distributed forces at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DFxl'] = False # (N/m); Applied distributed forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DFyl'] = False # (N/m); Applied distributed forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DFzl'] = False # (N/m); Applied distributed forces at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DMxl'] = False # (N-m/m); Applied distributed moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DMyl'] = False # (N-m/m); Applied distributed moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N1DMzl'] = False # (N-m/m); Applied distributed moments at Node 1 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DMxl'] = False # (N-m/m); Applied distributed moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DMyl'] = False # (N-m/m); Applied distributed moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N2DMzl'] = False # (N-m/m); Applied distributed moments at Node 2 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DMxl'] = False # (N-m/m); Applied distributed moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DMyl'] = False # (N-m/m); Applied distributed moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N3DMzl'] = False # (N-m/m); Applied distributed moments at Node 3 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DMxl'] = False # (N-m/m); Applied distributed moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DMyl'] = False # (N-m/m); Applied distributed moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N4DMzl'] = False # (N-m/m); Applied distributed moments at Node 4 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DMxl'] = False # (N-m/m); Applied distributed moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DMyl'] = False # (N-m/m); Applied distributed moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N5DMzl'] = False # (N-m/m); Applied distributed moments at Node 5 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DMxl'] = False # (N-m/m); Applied distributed moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DMyl'] = False # (N-m/m); Applied distributed moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N6DMzl'] = False # (N-m/m); Applied distributed moments at Node 6 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DMxl'] = False # (N-m/m); Applied distributed moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DMyl'] = False # (N-m/m); Applied distributed moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N7DMzl'] = False # (N-m/m); Applied distributed moments at Node 7 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DMxl'] = False # (N-m/m); Applied distributed moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DMyl'] = False # (N-m/m); Applied distributed moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N8DMzl'] = False # (N-m/m); Applied distributed moments at Node 8 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DMxl'] = False # (N-m/m); Applied distributed moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DMyl'] = False # (N-m/m); Applied distributed moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam +BeamDyn['N9DMzl'] = False # (N-m/m); Applied distributed moments at Node 9 expressed in l; l: a floating coordinate system local to the deflected beam + +# Pitch Actuator +BeamDyn['PAngInp'] = False # (deg); Pitch angle input; +BeamDyn['PAngAct'] = False # (deg); Actual pitch angle ; +BeamDyn['PRatAct'] = False # (deg/s); Actual pitch rate; +BeamDyn['PAccAct'] = False # (deg/s^2); Actual pitch acceleration; + +""" Final Output Dictionary """ +FstOutput = {} +FstOutput['ElastoDyn'] = ElastoDyn +FstOutput['BeamDyn'] = BeamDyn +FstOutput['ServoDyn'] = ServoDyn +FstOutput['AeroDyn'] = AeroDyn +FstOutput['InflowWind'] = InflowWind +FstOutput['WAMIT'] = WAMIT +FstOutput['HydroDyn'] = HydroDyn +FstOutput['Morison'] = Morison +FstOutput['SubDyn'] = SubDyn +FstOutput['BeamDyn'] = BeamDyn +FstOutput['MoorDyn'] = MoorDyn + +""" Generated from FAST OutListParameters.xlsx files with AeroelasticSE/src/AeroelasticSE/Util/create_output_vars.py """ + + +""" OutList """ +OutList = {} + +# Wind Motions +OutList['WindVxi'] = False # (m/s); Nominally downwind component of the hub-height wind velocity; Directed along the xi-axis +OutList['uWind'] = False # (m/s); Nominally downwind component of the hub-height wind velocity; Directed along the xi-axis +OutList['WindVyi'] = False # (m/s); Cross-wind component of the hub-height wind velocity; Directed along the yi-axis +OutList['vWind'] = False # (m/s); Cross-wind component of the hub-height wind velocity; Directed along the yi-axis +OutList['WindVzi'] = False # (m/s); Vertical component of the hub-height wind velocity; Directed along the zi-axis +OutList['wWind'] = False # (m/s); Vertical component of the hub-height wind velocity; Directed along the zi-axis +OutList['TotWindV'] = False # (m/s); Total hub-height wind velocity magnitude; N/A +OutList['HorWindV'] = False # (m/s); Horizontal hub-height wind velocity magnitude; In the xi- and yi-plane +OutList['HorWndDir'] = False # (deg); Horizontal hub-height wind direction. Please note that FAST uses the opposite sign convention that AeroDyn uses. Put a "-", "_", "m", or "M" character in front of this variable name if you want to use the AeroDyn convention.; About the zi-axis +OutList['VerWndDir'] = False # (deg); Vertical hub-height wind direction; About an axis orthogonal to the zi-axis and the HorWindV-vector + +# Blade 1 Tip Motions +OutList['TipDxc1'] = False # (m); Blade 1 out-of-plane tip deflection (relative to the undeflected position); Directed along the xc1-axis +OutList['OoPDefl1'] = False # (m); Blade 1 out-of-plane tip deflection (relative to the undeflected position); Directed along the xc1-axis +OutList['TipDyc1'] = False # (m); Blade 1 in-plane tip deflection (relative to the undeflected position); Directed along the yc1-axis +OutList['IPDefl1'] = False # (m); Blade 1 in-plane tip deflection (relative to the undeflected position); Directed along the yc1-axis +OutList['TipDzc1'] = False # (m); Blade 1 axial tip deflection (relative to the undeflected position); Directed along the zc1- and zb1-axes +OutList['TipDzb1'] = False # (m); Blade 1 axial tip deflection (relative to the undeflected position); Directed along the zc1- and zb1-axes +OutList['TipDxb1'] = False # (m); Blade 1 flapwise tip deflection (relative to the undeflected position); Directed along the xb1-axis +OutList['TipDyb1'] = False # (m); Blade 1 edgewise tip deflection (relative to the undeflected position); Directed along the yb1-axis +OutList['TipALxb1'] = False # (m/s^2); Blade 1 local flapwise tip acceleration (absolute); Directed along the local xb1-axis +OutList['TipALyb1'] = False # (m/s^2); Blade 1 local edgewise tip acceleration (absolute); Directed along the local yb1-axis +OutList['TipALzb1'] = False # (m/s^2); Blade 1 local axial tip acceleration (absolute); Directed along the local zb1-axis +OutList['TipRDxb1'] = False # (deg); Blade 1 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb1-axis +OutList['RollDefl1'] = False # (deg); Blade 1 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb1-axis +OutList['TipRDyb1'] = False # (deg); Blade 1 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb1-axis +OutList['PtchDefl1'] = False # (deg); Blade 1 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb1-axis +OutList['TipRDzc1'] = False # (deg); Blade 1 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc1- and zb1-axes +OutList['TipRDzb1'] = False # (deg); Blade 1 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc1- and zb1-axes +OutList['TwstDefl1'] = False # (deg); Blade 1 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc1- and zb1-axes +OutList['TipClrnc1'] = False # (m); Blade 1 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +OutList['TwrClrnc1'] = False # (m); Blade 1 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +OutList['Tip2Twr1'] = False # (m); Blade 1 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A + +# Blade 2 Tip Motions +OutList['TipDxc2'] = False # (m); Blade 2 out-of-plane tip deflection (relative to the pitch axis); Directed along the xc2-axis +OutList['OoPDefl2'] = False # (m); Blade 2 out-of-plane tip deflection (relative to the pitch axis); Directed along the xc2-axis +OutList['TipDyc2'] = False # (m); Blade 2 in-plane tip deflection (relative to the pitch axis); Directed along the yc2-axis +OutList['IPDefl2'] = False # (m); Blade 2 in-plane tip deflection (relative to the pitch axis); Directed along the yc2-axis +OutList['TipDzc2'] = False # (m); Blade 2 axial tip deflection (relative to the pitch axis); Directed along the zc2- and zb2-axes +OutList['TipDzb2'] = False # (m); Blade 2 axial tip deflection (relative to the pitch axis); Directed along the zc2- and zb2-axes +OutList['TipDxb2'] = False # (m); Blade 2 flapwise tip deflection (relative to the pitch axis); Directed along the xb2-axis +OutList['TipDyb2'] = False # (m); Blade 2 edgewise tip deflection (relative to the pitch axis); Directed along the yb2-axis +OutList['TipALxb2'] = False # (m/s^2); Blade 2 local flapwise tip acceleration (absolute); Directed along the local xb2-axis +OutList['TipALyb2'] = False # (m/s^2); Blade 2 local edgewise tip acceleration (absolute); Directed along the local yb2-axis +OutList['TipALzb2'] = False # (m/s^2); Blade 2 local axial tip acceleration (absolute); Directed along the local zb2-axis +OutList['TipRDxb2'] = False # (deg); Blade 2 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb2-axis +OutList['RollDefl2'] = False # (deg); Blade 2 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb2-axis +OutList['TipRDyb2'] = False # (deg); Blade 2 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb2-axis +OutList['PtchDefl2'] = False # (deg); Blade 2 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb2-axis +OutList['TipRDzc2'] = False # (deg); Blade 2 torsional (angular/rotational) tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc2- and zb2-axes +OutList['TipRDzb2'] = False # (deg); Blade 2 torsional (angular/rotational) tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc2- and zb2-axes +OutList['TwstDefl2'] = False # (deg); Blade 2 torsional (angular/rotational) tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc2- and zb2-axes +OutList['TipClrnc2'] = False # (m); Blade 2 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +OutList['TwrClrnc2'] = False # (m); Blade 2 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +OutList['Tip2Twr2'] = False # (m); Blade 2 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A + +# Blade 3 Tip Motions +OutList['TipDxc3'] = False # (m); Blade 3 out-of-plane tip deflection (relative to the pitch axis); Directed along the xc3-axis +OutList['OoPDefl3'] = False # (m); Blade 3 out-of-plane tip deflection (relative to the pitch axis); Directed along the xc3-axis +OutList['TipDyc3'] = False # (m); Blade 3 in-plane tip deflection (relative to the pitch axis); Directed along the yc3-axis +OutList['IPDefl3'] = False # (m); Blade 3 in-plane tip deflection (relative to the pitch axis); Directed along the yc3-axis +OutList['TipDzc3'] = False # (m); Blade 3 axial tip deflection (relative to the pitch axis); Directed along the zc3- and zb3-axes +OutList['TipDzb3'] = False # (m); Blade 3 axial tip deflection (relative to the pitch axis); Directed along the zc3- and zb3-axes +OutList['TipDxb3'] = False # (m); Blade 3 flapwise tip deflection (relative to the pitch axis); Directed along the xb3-axis +OutList['TipDyb3'] = False # (m); Blade 3 edgewise tip deflection (relative to the pitch axis); Directed along the yb3-axis +OutList['TipALxb3'] = False # (m/s^2); Blade 3 local flapwise tip acceleration (absolute); Directed along the local xb3-axis +OutList['TipALyb3'] = False # (m/s^2); Blade 3 local edgewise tip acceleration (absolute); Directed along the local yb3-axis +OutList['TipALzb3'] = False # (m/s^2); Blade 3 local axial tip acceleration (absolute); Directed along the local zb3-axis +OutList['TipRDxb3'] = False # (deg); Blade 3 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb3-axis +OutList['RollDefl3'] = False # (deg); Blade 3 roll (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the xb3-axis +OutList['TipRDyb3'] = False # (deg); Blade 3 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb3-axis +OutList['PtchDefl3'] = False # (deg); Blade 3 pitch (angular/rotational) tip deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the yb3-axis +OutList['TipRDzc3'] = False # (deg); Blade 3 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc3- and zb3-axes +OutList['TipRDzb3'] = False # (deg); Blade 3 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc3- and zb3-axes +OutList['TwstDefl3'] = False # (deg); Blade 3 torsional tip deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the zc3- and zb3-axes +OutList['TipClrnc3'] = False # (m); Blade 3 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +OutList['TwrClrnc3'] = False # (m); Blade 3 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A +OutList['Tip2Twr3'] = False # (m); Blade 3 tip-to-tower clearance estimate. This is computed as the perpendicular distance from the yaw axis to the tip of blade 1 when the blade tip is below the yaw bearing. When the tip of blade 1 is above the yaw bearing, it is computed as the absolute distance from the yaw bearing to the blade tip. Please note that you should reduce this value by the tower radius to obtain the actual tower clearance.; N/A + +# Blade 1 Local Span Motions +OutList['Spn1ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 1; Directed along the local xb1-axis +OutList['Spn1ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 1; Directed along the local yb1-axis +OutList['Spn1ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 1; Directed along the local zb1-axis +OutList['Spn2ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 2; Directed along the local xb1-axis +OutList['Spn2ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 2; Directed along the local yb1-axis +OutList['Spn2ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 2; Directed along the local zb1-axis +OutList['Spn3ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 3; Directed along the local xb1-axis +OutList['Spn3ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 3; Directed along the local yb1-axis +OutList['Spn3ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 3; Directed along the local zb1-axis +OutList['Spn4ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 4; Directed along the local xb1-axis +OutList['Spn4ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 4; Directed along the local yb1-axis +OutList['Spn4ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 4; Directed along the local zb1-axis +OutList['Spn5ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 5; Directed along the local xb1-axis +OutList['Spn5ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 5; Directed along the local yb1-axis +OutList['Spn5ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 5; Directed along the local zb1-axis +OutList['Spn6ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 6; Directed along the local xb1-axis +OutList['Spn6ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 6; Directed along the local yb1-axis +OutList['Spn6ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 6; Directed along the local zb1-axis +OutList['Spn7ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 7; Directed along the local xb1-axis +OutList['Spn7ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 7; Directed along the local yb1-axis +OutList['Spn7ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 7; Directed along the local zb1-axis +OutList['Spn8ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 8; Directed along the local xb1-axis +OutList['Spn8ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 8; Directed along the local yb1-axis +OutList['Spn8ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 8; Directed along the local zb1-axis +OutList['Spn9ALxb1'] = False # (m/s^2); Blade 1 local flapwise acceleration (absolute) of span station 9; Directed along the local xb1-axis +OutList['Spn9ALyb1'] = False # (m/s^2); Blade 1 local edgewise acceleration (absolute) of span station 9; Directed along the local yb1-axis +OutList['Spn9ALzb1'] = False # (m/s^2); Blade 1 local axial acceleration (absolute) of span station 9; Directed along the local zb1-axis +OutList['Spn1TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the xb1-axis +OutList['Spn1TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the yb1-axis +OutList['Spn1TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 1; Directed along the zb1-axis +OutList['Spn2TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the xb1-axis +OutList['Spn2TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the yb1-axis +OutList['Spn2TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 2; Directed along the zb1-axis +OutList['Spn3TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the xb1-axis +OutList['Spn3TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the yb1-axis +OutList['Spn3TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 3; Directed along the zb1-axis +OutList['Spn4TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the xb1-axis +OutList['Spn4TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the yb1-axis +OutList['Spn4TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 4; Directed along the zb1-axis +OutList['Spn5TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the xb1-axis +OutList['Spn5TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the yb1-axis +OutList['Spn5TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 5; Directed along the zb1-axis +OutList['Spn6TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the xb1-axis +OutList['Spn6TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the yb1-axis +OutList['Spn6TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 6; Directed along the zb1-axis +OutList['Spn7TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the xb1-axis +OutList['Spn7TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the yb1-axis +OutList['Spn7TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 7; Directed along the zb1-axis +OutList['Spn8TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the xb1-axis +OutList['Spn8TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the yb1-axis +OutList['Spn8TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 8; Directed along the zb1-axis +OutList['Spn9TDxb1'] = False # (m); Blade 1 local flapwise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the xb1-axis +OutList['Spn9TDyb1'] = False # (m); Blade 1 local edgewise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the yb1-axis +OutList['Spn9TDzb1'] = False # (m); Blade 1 local axial (translational) deflection (relative to the undeflected position) of span station 9; Directed along the zb1-axis +OutList['Spn1RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +OutList['Spn1RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +OutList['Spn1RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 1. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +OutList['Spn2RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +OutList['Spn2RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +OutList['Spn2RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 2. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +OutList['Spn3RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +OutList['Spn3RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +OutList['Spn3RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 3. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +OutList['Spn4RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +OutList['Spn4RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +OutList['Spn4RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 4. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +OutList['Spn5RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +OutList['Spn5RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +OutList['Spn5RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 5. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +OutList['Spn6RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +OutList['Spn6RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +OutList['Spn6RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 6. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +OutList['Spn7RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +OutList['Spn7RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +OutList['Spn7RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 7. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +OutList['Spn8RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +OutList['Spn8RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +OutList['Spn8RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 8. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis +OutList['Spn9RDxb1'] = False # (deg); Blade 1 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb1-axis +OutList['Spn9RDyb1'] = False # (deg); Blade 1 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb1-axis +OutList['Spn9RDzb1'] = False # (deg); Blade 1 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 9. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb1-axis + +# Blade 2 Local Span Motions +OutList['Spn1ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 1; Directed along the local xb2-axis +OutList['Spn1ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 1; Directed along the local yb2-axis +OutList['Spn1ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 1; Directed along the local zb2-axis +OutList['Spn2ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 2; Directed along the local xb2-axis +OutList['Spn2ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 2; Directed along the local yb2-axis +OutList['Spn2ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 2; Directed along the local zb2-axis +OutList['Spn3ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 3; Directed along the local xb2-axis +OutList['Spn3ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 3; Directed along the local yb2-axis +OutList['Spn3ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 3; Directed along the local zb2-axis +OutList['Spn4ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 4; Directed along the local xb2-axis +OutList['Spn4ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 4; Directed along the local yb2-axis +OutList['Spn4ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 4; Directed along the local zb2-axis +OutList['Spn5ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 5; Directed along the local xb2-axis +OutList['Spn5ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 5; Directed along the local yb2-axis +OutList['Spn5ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 5; Directed along the local zb2-axis +OutList['Spn6ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 6; Directed along the local xb2-axis +OutList['Spn6ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 6; Directed along the local yb2-axis +OutList['Spn6ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 6; Directed along the local zb2-axis +OutList['Spn7ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 7; Directed along the local xb2-axis +OutList['Spn7ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 7; Directed along the local yb2-axis +OutList['Spn7ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 7; Directed along the local zb2-axis +OutList['Spn8ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 8; Directed along the local xb2-axis +OutList['Spn8ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 8; Directed along the local yb2-axis +OutList['Spn8ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 8; Directed along the local zb2-axis +OutList['Spn9ALxb2'] = False # (m/s^2); Blade 2 local flapwise acceleration (absolute) of span station 9; Directed along the local xb2-axis +OutList['Spn9ALyb2'] = False # (m/s^2); Blade 2 local edgewise acceleration (absolute) of span station 9; Directed along the local yb2-axis +OutList['Spn9ALzb2'] = False # (m/s^2); Blade 2 local axial acceleration (absolute) of span station 9; Directed along the local zb2-axis +OutList['Spn1TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the xb2-axis +OutList['Spn1TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the yb2-axis +OutList['Spn1TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 1; Directed along the zb2-axis +OutList['Spn2TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the xb2-axis +OutList['Spn2TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the yb2-axis +OutList['Spn2TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 2; Directed along the zb2-axis +OutList['Spn3TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the xb2-axis +OutList['Spn3TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the yb2-axis +OutList['Spn3TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 3; Directed along the zb2-axis +OutList['Spn4TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the xb2-axis +OutList['Spn4TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the yb2-axis +OutList['Spn4TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 4; Directed along the zb2-axis +OutList['Spn5TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the xb2-axis +OutList['Spn5TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the yb2-axis +OutList['Spn5TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 5; Directed along the zb2-axis +OutList['Spn6TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the xb2-axis +OutList['Spn6TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the yb2-axis +OutList['Spn6TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 6; Directed along the zb2-axis +OutList['Spn7TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the xb2-axis +OutList['Spn7TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the yb2-axis +OutList['Spn7TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 7; Directed along the zb2-axis +OutList['Spn8TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the xb2-axis +OutList['Spn8TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the yb2-axis +OutList['Spn8TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 8; Directed along the zb2-axis +OutList['Spn9TDxb2'] = False # (m); Blade 2 local flapwise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the xb2-axis +OutList['Spn9TDyb2'] = False # (m); Blade 2 local edgewise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the yb2-axis +OutList['Spn9TDzb2'] = False # (m); Blade 2 local axial (translational) deflection (relative to the undeflected position) of span station 9; Directed along the zb2-axis +OutList['Spn1RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +OutList['Spn1RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +OutList['Spn1RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 1. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +OutList['Spn2RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +OutList['Spn2RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +OutList['Spn2RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 2. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +OutList['Spn3RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +OutList['Spn3RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +OutList['Spn3RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 3. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +OutList['Spn4RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +OutList['Spn4RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +OutList['Spn4RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 4. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +OutList['Spn5RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +OutList['Spn5RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +OutList['Spn5RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 5. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +OutList['Spn6RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +OutList['Spn6RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +OutList['Spn6RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 6. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +OutList['Spn7RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +OutList['Spn7RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +OutList['Spn7RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 7. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +OutList['Spn8RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +OutList['Spn8RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +OutList['Spn8RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 8. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis +OutList['Spn9RDxb2'] = False # (deg); Blade 2 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb2-axis +OutList['Spn9RDyb2'] = False # (deg); Blade 2 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb2-axis +OutList['Spn9RDzb2'] = False # (deg); Blade 2 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 9. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb2-axis + +# Blade 3 Local Span Motions +OutList['Spn1ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 1; Directed along the local xb3-axis +OutList['Spn1ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 1; Directed along the local yb3-axis +OutList['Spn1ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 1; Directed along the local zb3-axis +OutList['Spn2ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 2; Directed along the local xb3-axis +OutList['Spn2ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 2; Directed along the local yb3-axis +OutList['Spn2ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 2; Directed along the local zb3-axis +OutList['Spn3ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 3; Directed along the local xb3-axis +OutList['Spn3ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 3; Directed along the local yb3-axis +OutList['Spn3ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 3; Directed along the local zb3-axis +OutList['Spn4ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 4; Directed along the local xb3-axis +OutList['Spn4ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 4; Directed along the local yb3-axis +OutList['Spn4ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 4; Directed along the local zb3-axis +OutList['Spn5ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 5; Directed along the local xb3-axis +OutList['Spn5ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 5; Directed along the local yb3-axis +OutList['Spn5ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 5; Directed along the local zb3-axis +OutList['Spn6ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 6; Directed along the local xb3-axis +OutList['Spn6ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 6; Directed along the local yb3-axis +OutList['Spn6ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 6; Directed along the local zb3-axis +OutList['Spn7ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 7; Directed along the local xb3-axis +OutList['Spn7ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 7; Directed along the local yb3-axis +OutList['Spn7ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 7; Directed along the local zb3-axis +OutList['Spn8ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 8; Directed along the local xb3-axis +OutList['Spn8ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 8; Directed along the local yb3-axis +OutList['Spn8ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 8; Directed along the local zb3-axis +OutList['Spn9ALxb3'] = False # (m/s^2); Blade 3 local flapwise acceleration (absolute) of span station 9; Directed along the local xb3-axis +OutList['Spn9ALyb3'] = False # (m/s^2); Blade 3 local edgewise acceleration (absolute) of span station 9; Directed along the local yb3-axis +OutList['Spn9ALzb3'] = False # (m/s^2); Blade 3 local axial acceleration (absolute) of span station 9; Directed along the local zb3-axis +OutList['Spn1TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the xb3-axis +OutList['Spn1TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 1; Directed along the yb3-axis +OutList['Spn1TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 1; Directed along the zb3-axis +OutList['Spn2TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the xb3-axis +OutList['Spn2TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 2; Directed along the yb3-axis +OutList['Spn2TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 2; Directed along the zb3-axis +OutList['Spn3TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the xb3-axis +OutList['Spn3TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 3; Directed along the yb3-axis +OutList['Spn3TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 3; Directed along the zb3-axis +OutList['Spn4TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the xb3-axis +OutList['Spn4TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 4; Directed along the yb3-axis +OutList['Spn4TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 4; Directed along the zb3-axis +OutList['Spn5TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the xb3-axis +OutList['Spn5TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 5; Directed along the yb3-axis +OutList['Spn5TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 5; Directed along the zb3-axis +OutList['Spn6TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the xb3-axis +OutList['Spn6TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 6; Directed along the yb3-axis +OutList['Spn6TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 6; Directed along the zb3-axis +OutList['Spn7TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the xb3-axis +OutList['Spn7TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 7; Directed along the yb3-axis +OutList['Spn7TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 7; Directed along the zb3-axis +OutList['Spn8TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the xb3-axis +OutList['Spn8TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 8; Directed along the yb3-axis +OutList['Spn8TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 8; Directed along the zb3-axis +OutList['Spn9TDxb3'] = False # (m); Blade 3 local flapwise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the xb3-axis +OutList['Spn9TDyb3'] = False # (m); Blade 3 local edgewise (translational) deflection (relative to the undeflected position) of span station 9; Directed along the yb3-axis +OutList['Spn9TDzb3'] = False # (m); Blade 3 local axial (translational) deflection (relative to the undeflected position) of span station 9; Directed along the zb3-axis +OutList['Spn1RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +OutList['Spn1RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +OutList['Spn1RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 1. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +OutList['Spn2RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +OutList['Spn2RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +OutList['Spn2RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 2. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +OutList['Spn3RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +OutList['Spn3RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +OutList['Spn3RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 3. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +OutList['Spn4RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +OutList['Spn4RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +OutList['Spn4RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 4. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +OutList['Spn5RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +OutList['Spn5RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +OutList['Spn5RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 5. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +OutList['Spn6RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +OutList['Spn6RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +OutList['Spn6RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 6. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +OutList['Spn7RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +OutList['Spn7RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +OutList['Spn7RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 7. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +OutList['Spn8RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +OutList['Spn8RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +OutList['Spn8RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 8. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis +OutList['Spn9RDxb3'] = False # (deg); Blade 3 local roll (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local xb3-axis +OutList['Spn9RDyb3'] = False # (deg); Blade 3 local pitch (angular/rotational) deflection (relative to the undeflected position) of span station 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small blade deflections, so that the rotation sequence does not matter.; About the local yb3-axis +OutList['Spn9RDzb3'] = False # (deg); Blade 3 local torsional (angular/rotational) deflection (relative to the undeflected position) of span station 9. This output will always be zero for FAST simulation results. Use it for examining blade torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. Please note that this output uses the opposite of the sign convention used for blade pitch angles.; About the local zb3-axis + +# Blade Pitch Motions +OutList['PtchPMzc1'] = False # (deg); Blade 1 pitch angle (position); Positive towards feather about the minus zc1- and minus zb1-axes +OutList['PtchPMzb1'] = False # (deg); Blade 1 pitch angle (position); Positive towards feather about the minus zc1- and minus zb1-axes +OutList['BldPitch1'] = False # (deg); Blade 1 pitch angle (position); Positive towards feather about the minus zc1- and minus zb1-axes +OutList['BlPitch1'] = False # (deg); Blade 1 pitch angle (position); Positive towards feather about the minus zc1- and minus zb1-axes +OutList['PtchPMzc2'] = False # (deg); Blade 2 pitch angle (position); Positive towards feather about the minus zc2- and minus zb2-axes +OutList['PtchPMzb2'] = False # (deg); Blade 2 pitch angle (position); Positive towards feather about the minus zc2- and minus zb2-axes +OutList['BldPitch2'] = False # (deg); Blade 2 pitch angle (position); Positive towards feather about the minus zc2- and minus zb2-axes +OutList['BlPitch2'] = False # (deg); Blade 2 pitch angle (position); Positive towards feather about the minus zc2- and minus zb2-axes +OutList['PtchPMzc3'] = False # (deg); Blade 3 pitch angle (position); Positive towards feather about the minus zc3- and minus zb3-axes +OutList['PtchPMzb3'] = False # (deg); Blade 3 pitch angle (position); Positive towards feather about the minus zc3- and minus zb3-axes +OutList['BldPitch3'] = False # (deg); Blade 3 pitch angle (position); Positive towards feather about the minus zc3- and minus zb3-axes +OutList['BlPitch3'] = False # (deg); Blade 3 pitch angle (position); Positive towards feather about the minus zc3- and minus zb3-axes + +# Teeter Motions +OutList['TeetPya'] = False # (deg); Rotor teeter angle (position); About the ya-axis +OutList['RotTeetP'] = False # (deg); Rotor teeter angle (position); About the ya-axis +OutList['TeetDefl'] = False # (deg); Rotor teeter angle (position); About the ya-axis +OutList['TeetVya'] = False # (deg/s); Rotor teeter angular velocity; About the ya-axis +OutList['RotTeetV'] = False # (deg/s); Rotor teeter angular velocity; About the ya-axis +OutList['TeetAya'] = False # (deg/s^2); Rotor teeter angular acceleration; About the ya-axis +OutList['RotTeetA'] = False # (deg/s^2); Rotor teeter angular acceleration; About the ya-axis + +# Shaft Motions +OutList['LSSTipPxa'] = False # (deg); Rotor azimuth angle (position); About the xa- and xs-axes +OutList['LSSTipPxs'] = False # (deg); Rotor azimuth angle (position); About the xa- and xs-axes +OutList['LSSTipP'] = False # (deg); Rotor azimuth angle (position); About the xa- and xs-axes +OutList['Azimuth'] = False # (deg); Rotor azimuth angle (position); About the xa- and xs-axes +OutList['LSSTipVxa'] = False # (rpm); Rotor azimuth angular speed; About the xa- and xs-axes +OutList['LSSTipVxs'] = False # (rpm); Rotor azimuth angular speed; About the xa- and xs-axes +OutList['LSSTipV'] = False # (rpm); Rotor azimuth angular speed; About the xa- and xs-axes +OutList['RotSpeed'] = False # (rpm); Rotor azimuth angular speed; About the xa- and xs-axes +OutList['LSSTipAxa'] = False # (deg/s^2); Rotor azimuth angular acceleration; About the xa- and xs-axes +OutList['LSSTipAxs'] = False # (deg/s^2); Rotor azimuth angular acceleration; About the xa- and xs-axes +OutList['LSSTipA'] = False # (deg/s^2); Rotor azimuth angular acceleration; About the xa- and xs-axes +OutList['RotAccel'] = False # (deg/s^2); Rotor azimuth angular acceleration; About the xa- and xs-axes +OutList['LSSGagPxa'] = False # (deg); Low-speed shaft strain gage azimuth angle (position) (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +OutList['LSSGagPxs'] = False # (deg); Low-speed shaft strain gage azimuth angle (position) (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +OutList['LSSGagP'] = False # (deg); Low-speed shaft strain gage azimuth angle (position) (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +OutList['LSSGagVxa'] = False # (rpm); Low-speed shaft strain gage angular speed (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +OutList['LSSGagVxs'] = False # (rpm); Low-speed shaft strain gage angular speed (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +OutList['LSSGagV'] = False # (rpm); Low-speed shaft strain gage angular speed (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +OutList['LSSGagAxa'] = False # (deg/s^2); Low-speed shaft strain gage angular acceleration (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +OutList['LSSGagAxs'] = False # (deg/s^2); Low-speed shaft strain gage angular acceleration (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +OutList['LSSGagA'] = False # (deg/s^2); Low-speed shaft strain gage angular acceleration (on the gearbox side of the low-speed shaft); About the xa- and xs-axes +OutList['HSShftV'] = False # (rpm); Angular speed of the high-speed shaft and generator; Same sign as LSSGagVxa / LSSGagVxs / LSSGagV +OutList['GenSpeed'] = False # (rpm); Angular speed of the high-speed shaft and generator; Same sign as LSSGagVxa / LSSGagVxs / LSSGagV +OutList['HSShftA'] = False # (deg/s^2); Angular acceleration of the high-speed shaft and generator; Same sign as LSSGagAxa / LSSGagAxs / LSSGagA +OutList['GenAccel'] = False # (deg/s^2); Angular acceleration of the high-speed shaft and generator; Same sign as LSSGagAxa / LSSGagAxs / LSSGagA +OutList['TipSpdRat'] = False # (-); Rotor blade tip speed ratio; N/A +OutList['TSR'] = False # (-); Rotor blade tip speed ratio; N/A + +# Nacelle IMU Motions +OutList['NcIMUTVxs'] = False # (m/s); Nacelle inertial measurement unit translational velocity (absolute); Directed along the xs-axis +OutList['NcIMUTVys'] = False # (m/s); Nacelle inertial measurement unit translational velocity (absolute); Directed along the ys-axis +OutList['NcIMUTVzs'] = False # (m/s); Nacelle inertial measurement unit translational velocity (absolute); Directed along the zs-axis +OutList['NcIMUTAxs'] = False # (m/s^2); Nacelle inertial measurement unit translational acceleration (absolute); Directed along the xs-axis +OutList['NcIMUTAys'] = False # (m/s^2); Nacelle inertial measurement unit translational acceleration (absolute); Directed along the ys-axis +OutList['NcIMUTAzs'] = False # (m/s^2); Nacelle inertial measurement unit translational acceleration (absolute); Directed along the zs-axis +OutList['NcIMURVxs'] = False # (deg/s); Nacelle inertial measurement unit angular (rotational) velocity (absolute); About the xs-axis +OutList['NcIMURVys'] = False # (deg/s); Nacelle inertial measurement unit angular (rotational) velocity (absolute); About the ys-axis +OutList['NcIMURVzs'] = False # (deg/s); Nacelle inertial measurement unit angular (rotational) velocity (absolute); About the zs-axis +OutList['NcIMURAxs'] = False # (deg/s^2); Nacelle inertial measurement unit angular (rotational) acceleration (absolute); About the xs-axis +OutList['NcIMURAys'] = False # (deg/s^2); Nacelle inertial measurement unit angular (rotational) acceleration (absolute); About the ys-axis +OutList['NcIMURAzs'] = False # (deg/s^2); Nacelle inertial measurement unit angular (rotational) acceleration (absolute); About the zs-axis + +# Rotor-Furl Motions +OutList['RotFurlP'] = False # (deg); Rotor-furl angle (position); About the rotor-furl axis +OutList['RotFurl'] = False # (deg); Rotor-furl angle (position); About the rotor-furl axis +OutList['RotFurlV'] = False # (deg/s); Rotor-furl angular velocity; About the rotor-furl axis +OutList['RotFurlA'] = False # (deg/s^2); Rotor-furl angular acceleration; About the rotor-furl axis + +# Tail-Furl Motions +OutList['TailFurlP'] = False # (deg); Tail-furl angle (position); About the tail-furl axis +OutList['TailFurl'] = False # (deg); Tail-furl angle (position); About the tail-furl axis +OutList['TailFurlV'] = False # (deg/s); Tail-furl angular velocity; About the tail-furl axis +OutList['TailFurlA'] = False # (deg/s^2); Tail-furl angular acceleration; About the tail-furl axis + +# Nacelle Yaw Motions +OutList['YawPzn'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +OutList['YawPzp'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +OutList['NacYawP'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +OutList['NacYaw'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +OutList['YawPos'] = False # (deg); Nacelle yaw angle (position); About the zn- and zp-axes +OutList['YawVzn'] = False # (deg/s); Nacelle yaw angular velocity; About the zn- and zp-axes +OutList['YawVzp'] = False # (deg/s); Nacelle yaw angular velocity; About the zn- and zp-axes +OutList['NacYawV'] = False # (deg/s); Nacelle yaw angular velocity; About the zn- and zp-axes +OutList['YawRate'] = False # (deg/s); Nacelle yaw angular velocity; About the zn- and zp-axes +OutList['YawAzn'] = False # (deg/s^2); Nacelle yaw angular acceleration; About the zn- and zp-axes +OutList['YawAzp'] = False # (deg/s^2); Nacelle yaw angular acceleration; About the zn- and zp-axes +OutList['NacYawA'] = False # (deg/s^2); Nacelle yaw angular acceleration; About the zn- and zp-axes +OutList['YawAccel'] = False # (deg/s^2); Nacelle yaw angular acceleration; About the zn- and zp-axes +OutList['NacYawErr'] = False # (deg); Nacelle yaw error estimate. This is computed as follows: NacYawErr = HorWndDir - YawPzn - YawBrRDzt - PtfmRDzi. This estimate is not accurate instantaneously in the presence of significant tower deflection or platform angular (rotational) displacement since the angles used in the computation are not all defined about the same axis of rotation. However, the estimate should be useful in a yaw controller if averaged over a time scale long enough to diminish the effects of tower and platform motions (i.e., much longer than the period of oscillation).; About the zi-axis + +# Tower-Top / Yaw Bearing Motions +OutList['YawBrTDxp'] = False # (m); Tower-top / yaw bearing fore-aft (translational) deflection (relative to the undeflected position); Directed along the xp-axis +OutList['YawBrTDyp'] = False # (m); Tower-top / yaw bearing side-to-side (translational) deflection (relative to the undeflected position); Directed along the yp-axis +OutList['YawBrTDzp'] = False # (m); Tower-top / yaw bearing axial (translational) deflection (relative to the undeflected position); Directed along the zp-axis +OutList['YawBrTDxt'] = False # (m); Tower-top / yaw bearing fore-aft (translational) deflection (relative to the undeflected position); Directed along the xt-axis +OutList['TTDspFA'] = False # (m); Tower-top / yaw bearing fore-aft (translational) deflection (relative to the undeflected position); Directed along the xt-axis +OutList['YawBrTDyt'] = False # (m); Tower-top / yaw bearing side-to-side (translation) deflection (relative to the undeflected position); Directed along the yt-axis +OutList['TTDspSS'] = False # (m); Tower-top / yaw bearing side-to-side (translation) deflection (relative to the undeflected position); Directed along the yt-axis +OutList['YawBrTDzt'] = False # (m); Tower-top / yaw bearing axial (translational) deflection (relative to the undeflected position); Directed along the zt-axis +OutList['TTDspAx'] = False # (m); Tower-top / yaw bearing axial (translational) deflection (relative to the undeflected position); Directed along the zt-axis +OutList['YawBrTAxp'] = False # (m/s^2); Tower-top / yaw bearing fore-aft (translational) acceleration (absolute); Directed along the xp-axis +OutList['YawBrTAyp'] = False # (m/s^2); Tower-top / yaw bearing side-to-side (translational) acceleration (absolute); Directed along the yp-axis +OutList['YawBrTAzp'] = False # (m/s^2); Tower-top / yaw bearing axial (translational) acceleration (absolute); Directed along the zp-axis +OutList['YawBrRDxt'] = False # (deg); Tower-top / yaw bearing angular (rotational) roll deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the xt-axis +OutList['TTDspRoll'] = False # (deg); Tower-top / yaw bearing angular (rotational) roll deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the xt-axis +OutList['YawBrRDyt'] = False # (deg); Tower-top / yaw bearing angular (rotational) pitch deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the yt-axis +OutList['TTDspPtch'] = False # (deg); Tower-top / yaw bearing angular (rotational) pitch deflection (relative to the undeflected position). In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the yt-axis +OutList['YawBrRDzt'] = False # (deg); Tower-top / yaw bearing angular (rotational) torsion deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the zt-axis +OutList['TTDspTwst'] = False # (deg); Tower-top / yaw bearing angular (rotational) torsion deflection (relative to the undeflected position). This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the zt-axis +OutList['YawBrRVxp'] = False # (deg/s); Tower-top / yaw bearing angular (rotational) roll velocity (absolute); About the xp-axis +OutList['YawBrRVyp'] = False # (deg/s); Tower-top / yaw bearing angular (rotational) pitch velocity (absolute); About the yp-axis +OutList['YawBrRVzp'] = False # (deg/s); Tower-top / yaw bearing angular (rotational) torsion velocity. This output will always be very close to zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. (absolute); About the zp-axis +OutList['YawBrRAxp'] = False # (deg/s^2); Tower-top / yaw bearing angular (rotational) roll acceleration (absolute); About the xp-axis +OutList['YawBrRAyp'] = False # (deg/s^2); Tower-top / yaw bearing angular (rotational) pitch acceleration (absolute); About the yp-axis +OutList['YawBrRAzp'] = False # (deg/s^2); Tower-top / yaw bearing angular (rotational) torsion acceleration. This output will always be very close to zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. (absolute); About the zp-axis + +# Local Tower Motions +OutList['TwHt1ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 1 ; Directed along the local xt-axis +OutList['TwHt1ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 1 ; Directed along the local yt-axis +OutList['TwHt1ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 1 ; Directed along the local zt-axis +OutList['TwHt2ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 2; Directed along the local xt-axis +OutList['TwHt2ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 2; Directed along the local yt-axis +OutList['TwHt2ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 2; Directed along the local zt-axis +OutList['TwHt3ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 3; Directed along the local xt-axis +OutList['TwHt3ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 3; Directed along the local yt-axis +OutList['TwHt3ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 3; Directed along the local zt-axis +OutList['TwHt4ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 4; Directed along the local xt-axis +OutList['TwHt4ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 4; Directed along the local yt-axis +OutList['TwHt4ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 4; Directed along the local zt-axis +OutList['TwHt5ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 5; Directed along the local xt-axis +OutList['TwHt5ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 5; Directed along the local yt-axis +OutList['TwHt5ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 5; Directed along the local zt-axis +OutList['TwHt6ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 6; Directed along the local xt-axis +OutList['TwHt6ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 6; Directed along the local yt-axis +OutList['TwHt6ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 6; Directed along the local zt-axis +OutList['TwHt7ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 7; Directed along the local xt-axis +OutList['TwHt7ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 7; Directed along the local yt-axis +OutList['TwHt7ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 7; Directed along the local zt-axis +OutList['TwHt8ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 8; Directed along the local xt-axis +OutList['TwHt8ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 8; Directed along the local yt-axis +OutList['TwHt8ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 8; Directed along the local zt-axis +OutList['TwHt9ALxt'] = False # (m/s^2); Local tower fore-aft (translational) acceleration (absolute) of tower gage 9; Directed along the local xt-axis +OutList['TwHt9ALyt'] = False # (m/s^2); Local tower side-to-side (translational) acceleration (absolute) of tower gage 9; Directed along the local yt-axis +OutList['TwHt9ALzt'] = False # (m/s^2); Local tower axial (translational) acceleration (absolute) of tower gage 9; Directed along the local zt-axis +OutList['TwHt1TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 1; Directed along the local xt-axis +OutList['TwHt1TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 1; Directed along the local yt-axis +OutList['TwHt1TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 1; Directed along the local zt-axis +OutList['TwHt2TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 2; Directed along the local xt-axis +OutList['TwHt2TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 2; Directed along the local yt-axis +OutList['TwHt2TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 2; Directed along the local zt-axis +OutList['TwHt3TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 3; Directed along the local xt-axis +OutList['TwHt3TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 3; Directed along the local yt-axis +OutList['TwHt3TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 3; Directed along the local zt-axis +OutList['TwHt4TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 4; Directed along the local xt-axis +OutList['TwHt4TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 4; Directed along the local yt-axis +OutList['TwHt4TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 4; Directed along the local zt-axis +OutList['TwHt5TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 5; Directed along the local xt-axis +OutList['TwHt5TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 5; Directed along the local yt-axis +OutList['TwHt5TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 5; Directed along the local zt-axis +OutList['TwHt6TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 6; Directed along the local xt-axis +OutList['TwHt6TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 6; Directed along the local yt-axis +OutList['TwHt6TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 6; Directed along the local zt-axis +OutList['TwHt7TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 7; Directed along the local xt-axis +OutList['TwHt7TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 7; Directed along the local yt-axis +OutList['TwHt7TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 7; Directed along the local zt-axis +OutList['TwHt8TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 8; Directed along the local xt-axis +OutList['TwHt8TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 8; Directed along the local yt-axis +OutList['TwHt8TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 8; Directed along the local zt-axis +OutList['TwHt9TDxt'] = False # (m); Local tower fore-aft (translational) deflection (relative to the undeflected position) of tower gage 9; Directed along the local xt-axis +OutList['TwHt9TDyt'] = False # (m); Local tower side-to-side (translational) deflection (relative to the undeflected position) of tower gage 9; Directed along the local yt-axis +OutList['TwHt9TDzt'] = False # (m); Local tower axial (translational) deflection (relative to the undeflected position) of tower gage 9; Directed along the local zt-axis +OutList['TwHt1RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +OutList['TwHt1RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +OutList['TwHt1RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 1. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +OutList['TwHt2RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +OutList['TwHt2RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +OutList['TwHt2RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 2. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +OutList['TwHt3RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +OutList['TwHt3RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +OutList['TwHt3RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 3. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +OutList['TwHt4RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +OutList['TwHt4RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +OutList['TwHt4RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 4. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +OutList['TwHt5RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +OutList['TwHt5RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +OutList['TwHt5RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 5. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +OutList['TwHt6RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +OutList['TwHt6RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +OutList['TwHt6RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 6. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +OutList['TwHt7RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +OutList['TwHt7RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +OutList['TwHt7RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 7. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +OutList['TwHt8RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +OutList['TwHt8RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +OutList['TwHt8RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 8. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +OutList['TwHt9RDxt'] = False # (deg); Local tower angular (rotational) roll deflection (relative to the undeflected position) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local xt-axis +OutList['TwHt9RDyt'] = False # (deg); Local tower angular (rotational) pitch deflection (relative to the undeflected position) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower deflections, so that the rotation sequence does not matter.; About the local yt-axis +OutList['TwHt9RDzt'] = False # (deg); Local tower angular (rotational) torsion deflection (relative to the undeflected position) of tower gage 9. This output will always be zero for FAST simulation results. Use it for examining tower torsional deflections of ADAMS simulations run using ADAMS datasets created using the FAST-to-ADAMS preprocessor. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence.; About the local zt-axis +OutList['TwHt1TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 1; Directed along the local xi-axis +OutList['TwHt1TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 1; Directed along the local yi-axis +OutList['TwHt1TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 1; Directed along the local zi-axis +OutList['TwHt2TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 2; Directed along the local xi-axis +OutList['TwHt2TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 2; Directed along the local yi-axis +OutList['TwHt2TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 2; Directed along the local zi-axis +OutList['TwHt3TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 3; Directed along the local xi-axis +OutList['TwHt3TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 3; Directed along the local yi-axis +OutList['TwHt3TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 3; Directed along the local zi-axis +OutList['TwHt4TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 4; Directed along the local xi-axis +OutList['TwHt4TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 4; Directed along the local yi-axis +OutList['TwHt4TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 4; Directed along the local zi-axis +OutList['TwHt5TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 5; Directed along the local xi-axis +OutList['TwHt5TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 5; Directed along the local yi-axis +OutList['TwHt5TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 5; Directed along the local zi-axis +OutList['TwHt6TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 6; Directed along the local xi-axis +OutList['TwHt6TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 6; Directed along the local yi-axis +OutList['TwHt6TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 6; Directed along the local zi-axis +OutList['TwHt7TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 7; Directed along the local xi-axis +OutList['TwHt7TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 7; Directed along the local yi-axis +OutList['TwHt7TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 7; Directed along the local zi-axis +OutList['TwHt8TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 8; Directed along the local xi-axis +OutList['TwHt8TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 8; Directed along the local yi-axis +OutList['TwHt8TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 8; Directed along the local zi-axis +OutList['TwHt9TPxi'] = False # (m); xi-component of the translational position (relative to the inertia frame) of tower gage 9; Directed along the local xi-axis +OutList['TwHt9TPyi'] = False # (m); yi-component of the translational position (relative to the inertia frame) of tower gage 9; Directed along the local yi-axis +OutList['TwHt9TPzi'] = False # (m); zi-component of the translational position (relative to ground level [onshore] or MSL [offshore]) of tower gage 9; Directed along the local zi-axis +OutList['TwHt1RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +OutList['TwHt1RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +OutList['TwHt1RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 1. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +OutList['TwHt2RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +OutList['TwHt2RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +OutList['TwHt2RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 2. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +OutList['TwHt3RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +OutList['TwHt3RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +OutList['TwHt3RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 3. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +OutList['TwHt4RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +OutList['TwHt4RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +OutList['TwHt4RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 4. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +OutList['TwHt5RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +OutList['TwHt5RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +OutList['TwHt5RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 5. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +OutList['TwHt6RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +OutList['TwHt6RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +OutList['TwHt6RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 6. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +OutList['TwHt7RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +OutList['TwHt7RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +OutList['TwHt7RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 7. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +OutList['TwHt8RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +OutList['TwHt8RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +OutList['TwHt8RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 8. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis +OutList['TwHt9RPxi'] = False # (deg); xi-component of the rotational position (relative to the inertia frame) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local xi-axis +OutList['TwHt9RPyi'] = False # (deg); yi-component of the rotational position (relative to the inertia frame) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local yi-axis +OutList['TwHt9RPzi'] = False # (deg); zi-component of the rotational position (relative to the inertia frame) of tower gage 9. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small tower and platform rotational deflections, so that the rotation sequence does not matter.; About the local zi-axis + +# Platform Motions +OutList['PtfmTDxt'] = False # (m); Platform horizontal surge (translational) displacement; Directed along the xt-axis +OutList['PtfmTDyt'] = False # (m); Platform horizontal sway (translational) displacement; Directed along the yt-axis +OutList['PtfmTDzt'] = False # (m); Platform vertical heave (translational) displacement; Directed along the zt-axis +OutList['PtfmTDxi'] = False # (m); Platform horizontal surge (translational) displacement; Directed along the xi-axis +OutList['PtfmSurge'] = False # (m); Platform horizontal surge (translational) displacement; Directed along the xi-axis +OutList['PtfmTDyi'] = False # (m); Platform horizontal sway (translational) displacement; Directed along the yi-axis +OutList['PtfmSway'] = False # (m); Platform horizontal sway (translational) displacement; Directed along the yi-axis +OutList['PtfmTDzi'] = False # (m); Platform vertical heave (translational) displacement; Directed along the zi-axis +OutList['PtfmHeave'] = False # (m); Platform vertical heave (translational) displacement; Directed along the zi-axis +OutList['PtfmTVxt'] = False # (m/s); Platform horizontal surge (translational) velocity; Directed along the xt-axis +OutList['PtfmTVyt'] = False # (m/s); Platform horizontal sway (translational) velocity; Directed along the yt-axis +OutList['PtfmTVzt'] = False # (m/s); Platform vertical heave (translational) velocity; Directed along the zt-axis +OutList['PtfmTVxi'] = False # (m/s); Platform horizontal surge (translational) velocity; Directed along the xi-axis +OutList['PtfmTVyi'] = False # (m/s); Platform horizontal sway (translational) velocity; Directed along the yi-axis +OutList['PtfmTVzi'] = False # (m/s); Platform vertical heave (translational) velocity; Directed along the zi-axis +OutList['PtfmTAxt'] = False # (m/s^2); Platform horizontal surge (translational) acceleration; Directed along the xt-axis +OutList['PtfmTAyt'] = False # (m/s^2); Platform horizontal sway (translational) acceleration; Directed along the yt-axis +OutList['PtfmTAzt'] = False # (m/s^2); Platform vertical heave (translational) acceleration; Directed along the zt-axis +OutList['PtfmTAxi'] = False # (m/s^2); Platform horizontal surge (translational) acceleration; Directed along the xi-axis +OutList['PtfmTAyi'] = False # (m/s^2); Platform horizontal sway (translational) acceleration; Directed along the yi-axis +OutList['PtfmTAzi'] = False # (m/s^2); Platform vertical heave (translational) acceleration; Directed along the zi-axis +OutList['PtfmRDxi'] = False # (deg); Platform roll tilt angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the xi-axis +OutList['PtfmRoll'] = False # (deg); Platform roll tilt angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 3rd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the xi-axis +OutList['PtfmRDyi'] = False # (deg); Platform pitch tilt angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the yi-axis +OutList['PtfmPitch'] = False # (deg); Platform pitch tilt angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 2nd rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the yi-axis +OutList['PtfmRDzi'] = False # (deg); Platform yaw angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the zi-axis +OutList['PtfmYaw'] = False # (deg); Platform yaw angular (rotational) displacement. In ADAMS, it is output as an Euler angle computed as the 1st rotation in the yaw-pitch-roll rotation sequence. It is not output as an Euler angle in FAST, which assumes small rotational platform displacements, so that the rotation sequence does not matter.; About the zi-axis +OutList['PtfmRVxt'] = False # (deg/s); Platform roll tilt angular (rotational) velocity; About the xt-axis +OutList['PtfmRVyt'] = False # (deg/s); Platform pitch tilt angular (rotational) velocity; About the yt-axis +OutList['PtfmRVzt'] = False # (deg/s); Platform yaw angular (rotational) velocity; About the zt-axis +OutList['PtfmRVxi'] = False # (deg/s); Platform roll tilt angular (rotational) velocity; About the xi-axis +OutList['PtfmRVyi'] = False # (deg/s); Platform pitch tilt angular (rotational) velocity; About the yi-axis +OutList['PtfmRVzi'] = False # (deg/s); Platform yaw angular (rotational) velocity; About the zi-axis +OutList['PtfmRAxt'] = False # (deg/s^2); Platform roll tilt angular (rotational) acceleration; About the xt-axis +OutList['PtfmRAyt'] = False # (deg/s^2); Platform pitch tilt angular (rotational) acceleration; About the yt-axis +OutList['PtfmRAzt'] = False # (deg/s^2); Platform yaw angular (rotational) acceleration; About the zt-axis +OutList['PtfmRAxi'] = False # (deg/s^2); Platform roll tilt angular (rotational) acceleration; About the xi-axis +OutList['PtfmRAyi'] = False # (deg/s^2); Platform pitch tilt angular (rotational) acceleration; About the yi-axis +OutList['PtfmRAzi'] = False # (deg/s^2); Platform yaw angular (rotational) acceleration; About the zi-axis + +# Blade 1 Root Loads +OutList['RootFxc1'] = False # (kN); Blade 1 out-of-plane shear force at the blade root; Directed along the xc1-axis +OutList['RootFyc1'] = False # (kN); Blade 1 in-plane shear force at the blade root; Directed along the yc1-axis +OutList['RootFzc1'] = False # (kN); Blade 1 axial force at the blade root; Directed along the zc1- and zb1-axes +OutList['RootFzb1'] = False # (kN); Blade 1 axial force at the blade root; Directed along the zc1- and zb1-axes +OutList['RootFxb1'] = False # (kN); Blade 1 flapwise shear force at the blade root; Directed along the xb1-axis +OutList['RootFyb1'] = False # (kN); Blade 1 edgewise shear force at the blade root; Directed along the yb1-axis +OutList['RootMxc1'] = False # (kN m); Blade 1 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc1-axis +OutList['RootMIP1'] = False # (kN m); Blade 1 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc1-axis +OutList['RootMyc1'] = False # (kN m); Blade 1 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc1-axis +OutList['RootMOoP1'] = False # (kN m); Blade 1 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc1-axis +OutList['RootMzc1'] = False # (kN m); Blade 1 pitching moment at the blade root; About the zc1- and zb1-axes +OutList['RootMzb1'] = False # (kN m); Blade 1 pitching moment at the blade root; About the zc1- and zb1-axes +OutList['RootMxb1'] = False # (kN m); Blade 1 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb1-axis +OutList['RootMEdg1'] = False # (kN m); Blade 1 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb1-axis +OutList['RootMyb1'] = False # (kN m); Blade 1 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb1-axis +OutList['RootMFlp1'] = False # (kN m); Blade 1 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb1-axis + +# Blade 2 Root Loads +OutList['RootFxc2'] = False # (kN); Blade 2 out-of-plane shear force at the blade root; Directed along the xc2-axis +OutList['RootFyc2'] = False # (kN); Blade 2 in-plane shear force at the blade root; Directed along the yc2-axis +OutList['RootFzc2'] = False # (kN); Blade 2 axial force at the blade root; Directed along the zc2- and zb2-axes +OutList['RootFzb2'] = False # (kN); Blade 2 axial force at the blade root; Directed along the zc2- and zb2-axes +OutList['RootFxb2'] = False # (kN); Blade 2 flapwise shear force at the blade root; Directed along the xb2-axis +OutList['RootFyb2'] = False # (kN); Blade 2 edgewise shear force at the blade root; Directed along the yb2-axis +OutList['RootMxc2'] = False # (kN m); Blade 2 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc2-axis +OutList['RootMIP2'] = False # (kN m); Blade 2 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc2-axis +OutList['RootMyc2'] = False # (kN m); Blade 2 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc2-axis +OutList['RootMOoP2'] = False # (kN m); Blade 2 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc2-axis +OutList['RootMzc2'] = False # (kN m); Blade 2 pitching moment at the blade root; About the zc2- and zb2-axes +OutList['RootMzb2'] = False # (kN m); Blade 2 pitching moment at the blade root; About the zc2- and zb2-axes +OutList['RootMxb2'] = False # (kN m); Blade 2 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb2-axis +OutList['RootMEdg2'] = False # (kN m); Blade 2 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb2-axis +OutList['RootMyb2'] = False # (kN m); Blade 2 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb2-axis +OutList['RootMFlp2'] = False # (kN m); Blade 2 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb2-axis + +# Blade 3 Root Loads +OutList['RootFxc3'] = False # (kN); Blade 3 out-of-plane shear force at the blade root; Directed along the xc3-axis +OutList['RootFyc3'] = False # (kN); Blade 3 in-plane shear force at the blade root; Directed along the yc3-axis +OutList['RootFzc3'] = False # (kN); Blade 3 axial force at the blade root; Directed along the zc3- and zb3-axes +OutList['RootFzb3'] = False # (kN); Blade 3 axial force at the blade root; Directed along the zc3- and zb3-axes +OutList['RootFxb3'] = False # (kN); Blade 3 flapwise shear force at the blade root; Directed along the xb3-axis +OutList['RootFyb3'] = False # (kN); Blade 3 edgewise shear force at the blade root; Directed along the yb3-axis +OutList['RootMxc3'] = False # (kN m); Blade 3 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc3-axis +OutList['RootMIP3'] = False # (kN m); Blade 3 in-plane moment (i.e., the moment caused by in-plane forces) at the blade root; About the xc3-axis +OutList['RootMyc3'] = False # (kN m); Blade 3 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc3-axis +OutList['RootMOoP3'] = False # (kN m); Blade 3 out-of-plane moment (i.e., the moment caused by out-of-plane forces) at the blade root; About the yc3-axis +OutList['RootMzc3'] = False # (kN m); Blade 3 pitching moment at the blade root; About the zc3- and zb3-axes +OutList['RootMzb3'] = False # (kN m); Blade 3 pitching moment at the blade root; About the zc3- and zb3-axes +OutList['RootMxb3'] = False # (kN m); Blade 3 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb3-axis +OutList['RootMEdg3'] = False # (kN m); Blade 3 edgewise moment (i.e., the moment caused by edgewise forces) at the blade root; About the xb3-axis +OutList['RootMyb3'] = False # (kN m); Blade 3 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb3-axis +OutList['RootMFlp3'] = False # (kN m); Blade 3 flapwise moment (i.e., the moment caused by flapwise forces) at the blade root; About the yb3-axis + +# Blade 1 Local Span Loads +OutList['Spn1MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 1; About the local xb1-axis +OutList['Spn1MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 1; About the local yb1-axis +OutList['Spn1MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 1; About the local zb1-axis +OutList['Spn2MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 2; About the local xb1-axis +OutList['Spn2MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 2; About the local yb1-axis +OutList['Spn2MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 2; About the local zb1-axis +OutList['Spn3MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 3; About the local xb1-axis +OutList['Spn3MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 3; About the local yb1-axis +OutList['Spn3MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 3; About the local zb1-axis +OutList['Spn4MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 4; About the local xb1-axis +OutList['Spn4MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 4; About the local yb1-axis +OutList['Spn4MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 4; About the local zb1-axis +OutList['Spn5MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 5; About the local xb1-axis +OutList['Spn5MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 5; About the local yb1-axis +OutList['Spn5MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 5; About the local zb1-axis +OutList['Spn6MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 6; About the local xb1-axis +OutList['Spn6MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 6; About the local yb1-axis +OutList['Spn6MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 6; About the local zb1-axis +OutList['Spn7MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 7; About the local xb1-axis +OutList['Spn7MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 7; About the local yb1-axis +OutList['Spn7MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 7; About the local zb1-axis +OutList['Spn8MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 8; About the local xb1-axis +OutList['Spn8MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 8; About the local yb1-axis +OutList['Spn8MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 8; About the local zb1-axis +OutList['Spn9MLxb1'] = False # (kN m); Blade 1 local edgewise moment at span station 9; About the local xb1-axis +OutList['Spn9MLyb1'] = False # (kN m); Blade 1 local flapwise moment at span station 9; About the local yb1-axis +OutList['Spn9MLzb1'] = False # (kN m); Blade 1 local pitching moment at span station 9; About the local zb1-axis +OutList['Spn1FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 1; Directed along the local xb1-axis +OutList['Spn1FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 1; Directed along the local yb1-axis +OutList['Spn1FLzb1'] = False # (kN); Blade 1 local axial force at span station 1; Directed along the local zb1-axis +OutList['Spn2FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 2; Directed along the local xb1-axis +OutList['Spn2FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 2; Directed along the local yb1-axis +OutList['Spn2FLzb1'] = False # (kN); Blade 1 local axial force at span station 2; Directed along the local zb1-axis +OutList['Spn3FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 3; Directed along the local xb1-axis +OutList['Spn3FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 3; Directed along the local yb1-axis +OutList['Spn3FLzb1'] = False # (kN); Blade 1 local axial force at span station 3; Directed along the local zb1-axis +OutList['Spn4FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 4; Directed along the local xb1-axis +OutList['Spn4FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 4; Directed along the local yb1-axis +OutList['Spn4FLzb1'] = False # (kN); Blade 1 local axial force at span station 4; Directed along the local zb1-axis +OutList['Spn5FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 5; Directed along the local xb1-axis +OutList['Spn5FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 5; Directed along the local yb1-axis +OutList['Spn5FLzb1'] = False # (kN); Blade 1 local axial force at span station 5; Directed along the local zb1-axis +OutList['Spn6FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 6; Directed along the local xb1-axis +OutList['Spn6FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 6; Directed along the local yb1-axis +OutList['Spn6FLzb1'] = False # (kN); Blade 1 local axial force at span station 6; Directed along the local zb1-axis +OutList['Spn7FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 7; Directed along the local xb1-axis +OutList['Spn7FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 7; Directed along the local yb1-axis +OutList['Spn7FLzb1'] = False # (kN); Blade 1 local axial force at span station 7; Directed along the local zb1-axis +OutList['Spn8FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 8; Directed along the local xb1-axis +OutList['Spn8FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 8; Directed along the local yb1-axis +OutList['Spn8FLzb1'] = False # (kN); Blade 1 local axial force at span station 8; Directed along the local zb1-axis +OutList['Spn9FLxb1'] = False # (kN); Blade 1 local flapwise shear force at span station 9; Directed along the local xb1-axis +OutList['Spn9FLyb1'] = False # (kN); Blade 1 local edgewise shear force at span station 9; Directed along the local yb1-axis +OutList['Spn9FLzb1'] = False # (kN); Blade 1 local axial force at span station 9; Directed along the local zb1-axis + +# Blade 2 Local Span Loads +OutList['Spn1MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 1; About the local xb2-axis +OutList['Spn1MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 1; About the local yb2-axis +OutList['Spn1MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 1; About the local zb2-axis +OutList['Spn2MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 2; About the local xb2-axis +OutList['Spn2MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 2; About the local yb2-axis +OutList['Spn2MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 2; About the local zb2-axis +OutList['Spn3MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 3; About the local xb2-axis +OutList['Spn3MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 3; About the local yb2-axis +OutList['Spn3MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 3; About the local zb2-axis +OutList['Spn4MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 4; About the local xb2-axis +OutList['Spn4MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 4; About the local yb2-axis +OutList['Spn4MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 4; About the local zb2-axis +OutList['Spn5MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 5; About the local xb2-axis +OutList['Spn5MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 5; About the local yb2-axis +OutList['Spn5MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 5; About the local zb2-axis +OutList['Spn6MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 6; About the local xb2-axis +OutList['Spn6MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 6; About the local yb2-axis +OutList['Spn6MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 6; About the local zb2-axis +OutList['Spn7MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 7; About the local xb2-axis +OutList['Spn7MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 7; About the local yb2-axis +OutList['Spn7MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 7; About the local zb2-axis +OutList['Spn8MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 8; About the local xb2-axis +OutList['Spn8MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 8; About the local yb2-axis +OutList['Spn8MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 8; About the local zb2-axis +OutList['Spn9MLxb2'] = False # (kN m); Blade 2 local edgewise moment at span station 9; About the local xb2-axis +OutList['Spn9MLyb2'] = False # (kN m); Blade 2 local flapwise moment at span station 9; About the local yb2-axis +OutList['Spn9MLzb2'] = False # (kN m); Blade 2 local pitching moment at span station 9; About the local zb2-axis +OutList['Spn1FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 1; Directed along the local xb2-axis +OutList['Spn1FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 1; Directed along the local yb2-axis +OutList['Spn1FLzb2'] = False # (kN); Blade 2 local axial force at span station 1; Directed along the local zb2-axis +OutList['Spn2FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 2; Directed along the local xb2-axis +OutList['Spn2FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 2; Directed along the local yb2-axis +OutList['Spn2FLzb2'] = False # (kN); Blade 2 local axial force at span station 2; Directed along the local zb2-axis +OutList['Spn3FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 3; Directed along the local xb2-axis +OutList['Spn3FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 3; Directed along the local yb2-axis +OutList['Spn3FLzb2'] = False # (kN); Blade 2 local axial force at span station 3; Directed along the local zb2-axis +OutList['Spn4FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 4; Directed along the local xb2-axis +OutList['Spn4FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 4; Directed along the local yb2-axis +OutList['Spn4FLzb2'] = False # (kN); Blade 2 local axial force at span station 4; Directed along the local zb2-axis +OutList['Spn5FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 5; Directed along the local xb2-axis +OutList['Spn5FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 5; Directed along the local yb2-axis +OutList['Spn5FLzb2'] = False # (kN); Blade 2 local axial force at span station 5; Directed along the local zb2-axis +OutList['Spn6FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 6; Directed along the local xb2-axis +OutList['Spn6FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 6; Directed along the local yb2-axis +OutList['Spn6FLzb2'] = False # (kN); Blade 2 local axial force at span station 6; Directed along the local zb2-axis +OutList['Spn7FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 7; Directed along the local xb2-axis +OutList['Spn7FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 7; Directed along the local yb2-axis +OutList['Spn7FLzb2'] = False # (kN); Blade 2 local axial force at span station 7; Directed along the local zb2-axis +OutList['Spn8FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 8; Directed along the local xb2-axis +OutList['Spn8FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 8; Directed along the local yb2-axis +OutList['Spn8FLzb2'] = False # (kN); Blade 2 local axial force at span station 8; Directed along the local zb2-axis +OutList['Spn9FLxb2'] = False # (kN); Blade 2 local flapwise shear force at span station 9; Directed along the local xb2-axis +OutList['Spn9FLyb2'] = False # (kN); Blade 2 local edgewise shear force at span station 9; Directed along the local yb2-axis +OutList['Spn9FLzb2'] = False # (kN); Blade 2 local axial force at span station 9; Directed along the local zb2-axis + +# Blade 3 Local Span Loads +OutList['Spn1MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 1; About the local xb3-axis +OutList['Spn1MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 1; About the local yb3-axis +OutList['Spn1MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 1; About the local zb3-axis +OutList['Spn2MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 2; About the local xb3-axis +OutList['Spn2MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 2; About the local yb3-axis +OutList['Spn2MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 2; About the local zb3-axis +OutList['Spn3MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 3; About the local xb3-axis +OutList['Spn3MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 3; About the local yb3-axis +OutList['Spn3MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 3; About the local zb3-axis +OutList['Spn4MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 4; About the local xb3-axis +OutList['Spn4MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 4; About the local yb3-axis +OutList['Spn4MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 4; About the local zb3-axis +OutList['Spn5MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 5; About the local xb3-axis +OutList['Spn5MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 5; About the local yb3-axis +OutList['Spn5MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 5; About the local zb3-axis +OutList['Spn6MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 6; About the local xb3-axis +OutList['Spn6MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 6; About the local yb3-axis +OutList['Spn6MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 6; About the local zb3-axis +OutList['Spn7MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 7; About the local xb3-axis +OutList['Spn7MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 7; About the local yb3-axis +OutList['Spn7MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 7; About the local zb3-axis +OutList['Spn8MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 8; About the local xb3-axis +OutList['Spn8MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 8; About the local yb3-axis +OutList['Spn8MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 8; About the local zb3-axis +OutList['Spn9MLxb3'] = False # (kN m); Blade 3 local edgewise moment at span station 9; About the local xb3-axis +OutList['Spn9MLyb3'] = False # (kN m); Blade 3 local flapwise moment at span station 9; About the local yb3-axis +OutList['Spn9MLzb3'] = False # (kN m); Blade 3 local pitching moment at span station 9; About the local zb3-axis +OutList['Spn1FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 1; Directed along the local xb3-axis +OutList['Spn1FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 1; Directed along the local yb3-axis +OutList['Spn1FLzb3'] = False # (kN); Blade 3 local axial force at span station 1; Directed along the local zb3-axis +OutList['Spn2FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 2; Directed along the local xb3-axis +OutList['Spn2FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 2; Directed along the local yb3-axis +OutList['Spn2FLzb3'] = False # (kN); Blade 3 local axial force at span station 2; Directed along the local zb3-axis +OutList['Spn3FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 3; Directed along the local xb3-axis +OutList['Spn3FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 3; Directed along the local yb3-axis +OutList['Spn3FLzb3'] = False # (kN); Blade 3 local axial force at span station 3; Directed along the local zb3-axis +OutList['Spn4FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 4; Directed along the local xb3-axis +OutList['Spn4FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 4; Directed along the local yb3-axis +OutList['Spn4FLzb3'] = False # (kN); Blade 3 local axial force at span station 4; Directed along the local zb3-axis +OutList['Spn5FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 5; Directed along the local xb3-axis +OutList['Spn5FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 5; Directed along the local yb3-axis +OutList['Spn5FLzb3'] = False # (kN); Blade 3 local axial force at span station 5; Directed along the local zb3-axis +OutList['Spn6FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 6; Directed along the local xb3-axis +OutList['Spn6FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 6; Directed along the local yb3-axis +OutList['Spn6FLzb3'] = False # (kN); Blade 3 local axial force at span station 6; Directed along the local zb3-axis +OutList['Spn7FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 7; Directed along the local xb3-axis +OutList['Spn7FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 7; Directed along the local yb3-axis +OutList['Spn7FLzb3'] = False # (kN); Blade 3 local axial force at span station 7; Directed along the local zb3-axis +OutList['Spn8FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 8; Directed along the local xb3-axis +OutList['Spn8FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 8; Directed along the local yb3-axis +OutList['Spn8FLzb3'] = False # (kN); Blade 3 local axial force at span station 8; Directed along the local zb3-axis +OutList['Spn9FLxb3'] = False # (kN); Blade 3 local flapwise shear force at span station 9; Directed along the local xb3-axis +OutList['Spn9FLyb3'] = False # (kN); Blade 3 local edgewise shear force at span station 9; Directed along the local yb3-axis +OutList['Spn9FLzb3'] = False # (kN); Blade 3 local axial force at span station 9; Directed along the local zb3-axis + +# Hub and Rotor Loads +OutList['LSShftFxa'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +OutList['LSShftFxs'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +OutList['LSSGagFxa'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +OutList['LSSGagFxs'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +OutList['RotThrust'] = False # (kN); Low-speed shaft thrust force (this is constant along the shaft and is equivalent to the rotor thrust force); Directed along the xa- and xs-axes +OutList['LSShftFya'] = False # (kN); Rotating low-speed shaft shear force (this is constant along the shaft); Directed along the ya-axis +OutList['LSSGagFya'] = False # (kN); Rotating low-speed shaft shear force (this is constant along the shaft); Directed along the ya-axis +OutList['LSShftFza'] = False # (kN); Rotating low-speed shaft shear force (this is constant along the shaft); Directed along the za-axis +OutList['LSSGagFza'] = False # (kN); Rotating low-speed shaft shear force (this is constant along the shaft); Directed along the za-axis +OutList['LSShftFys'] = False # (kN); Nonrotating low-speed shaft shear force (this is constant along the shaft); Directed along the ys-axis +OutList['LSSGagFys'] = False # (kN); Nonrotating low-speed shaft shear force (this is constant along the shaft); Directed along the ys-axis +OutList['LSShftFzs'] = False # (kN); Nonrotating low-speed shaft shear force (this is constant along the shaft); Directed along the zs-axis +OutList['LSSGagFzs'] = False # (kN); Nonrotating low-speed shaft shear force (this is constant along the shaft); Directed along the zs-axis +OutList['LSShftMxa'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +OutList['LSShftMxs'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +OutList['LSSGagMxa'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +OutList['LSSGagMxs'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +OutList['RotTorq'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +OutList['LSShftTq'] = False # (kN m); Low-speed shaft torque (this is constant along the shaft and is equivalent to the rotor torque); About the xa- and xs-axes +OutList['LSSTipMya'] = False # (kN m); Rotating low-speed shaft bending moment at the shaft tip (teeter pin for 2-blader, apex of rotation for 3-blader); About the ya-axis +OutList['LSSTipMza'] = False # (kN m); Rotating low-speed shaft bending moment at the shaft tip (teeter pin for 2-blader, apex of rotation for 3-blader); About the za-axis +OutList['LSSTipMys'] = False # (kN m); Nonrotating low-speed shaft bending moment at the shaft tip (teeter pin for 2-blader, apex of rotation for 3-blader); About the ys-axis +OutList['LSSTipMzs'] = False # (kN m); Nonrotating low-speed shaft bending moment at the shaft tip (teeter pin for 2-blader, apex of rotation for 3-blader); About the zs-axis +OutList['CThrstAzm'] = False # (deg); Azimuth location of the center of thrust. This is estimated using values of LSSTipMys, LSSTipMzs, and RotThrust.; About the xa- and xs-axes +OutList['CThrstRad'] = False # (-); Dimensionless radial (arm) location of the center of thrust. This is estimated using values of LSSTipMys, LSSTipMzs, and RotThrust. (nondimensionalized using the undeflected tip radius normal to the shaft and limited to values between 0 and 1 (inclusive)); Always positive (directed radially outboard at azimuth angle CThrstAzm) +OutList['CThrstArm'] = False # (-); Dimensionless radial (arm) location of the center of thrust. This is estimated using values of LSSTipMys, LSSTipMzs, and RotThrust. (nondimensionalized using the undeflected tip radius normal to the shaft and limited to values between 0 and 1 (inclusive)); Always positive (directed radially outboard at azimuth angle CThrstAzm) +OutList['RotPwr'] = False # (kW); Rotor power (this is equivalent to the low-speed shaft power); N/A +OutList['LSShftPwr'] = False # (kW); Rotor power (this is equivalent to the low-speed shaft power); N/A +OutList['RotCq'] = False # (-); Rotor torque coefficient (this is equivalent to the low-speed shaft torque coefficient); N/A +OutList['LSShftCq'] = False # (-); Rotor torque coefficient (this is equivalent to the low-speed shaft torque coefficient); N/A +OutList['RotCp'] = False # (-); Rotor power coefficient (this is equivalent to the low-speed shaft power coefficient); N/A +OutList['LSShftCp'] = False # (-); Rotor power coefficient (this is equivalent to the low-speed shaft power coefficient); N/A +OutList['RotCt'] = False # (-); Rotor thrust coefficient (this is equivalent to the low-speed shaft thrust coefficient); N/A +OutList['LSShftCt'] = False # (-); Rotor thrust coefficient (this is equivalent to the low-speed shaft thrust coefficient); N/A + +# Shaft Strain Gage Loads +OutList['LSSGagMya'] = False # (kN m); Rotating low-speed shaft bending moment at the shaft's strain gage (shaft strain gage located by input ShftGagL); About the ya-axis +OutList['LSSGagMza'] = False # (kN m); Rotating low-speed shaft bending moment at the shaft's strain gage (shaft strain gage located by input ShftGagL); About the za-axis +OutList['LSSGagMys'] = False # (kN m); Nonrotating low-speed shaft bending moment at the shaft's strain gage (shaft strain gage located by input ShftGagL); About the ys-axis +OutList['LSSGagMzs'] = False # (kN m); Nonrotating low-speed shaft bending moment at the shaft's strain gage (shaft strain gage located by input ShftGagL); About the zs-axis + +# Generator and High-Speed Shaft Loads +OutList['HSShftTq'] = False # (kN m); High-speed shaft torque (this is constant along the shaft); Same sign as LSShftTq / RotTorq / LSShftMxa / LSShftMxs / LSSGagMxa / LSSGagMxs +OutList['HSShftPwr'] = False # (kW); High-speed shaft power; Same sign as HSShftTq +OutList['HSShftCq'] = False # (-); High-speed shaft torque coefficient; N/A +OutList['HSShftCp'] = False # (-); High-speed shaft power coefficient; N/A +OutList['GenTq'] = False # (kN m); Electrical generator torque; Positive reflects power extracted and negative represents a motoring-up situation (power input) +OutList['GenPwr'] = False # (kW); Electrical generator power; Same sign as GenTq +OutList['GenCq'] = False # (-); Electrical generator torque coefficient; N/A +OutList['GenCp'] = False # (-); Electrical generator power coefficient; N/A +OutList['HSSBrTq'] = False # (kN m); High-speed shaft brake torque (i.e., the moment applied to the high-speed shaft by the brake); Always positive (indicating dissipation of power) + +# Rotor-Furl Bearing Loads +OutList['RFrlBrM'] = False # (kN m); Rotor-furl bearing moment; About the rotor-furl axis + +# Tail-Furl Bearing Loads +OutList['TFrlBrM'] = False # (kN m); Tail-furl bearing moment; About the tail-furl axis + +# Tail Fin Aerodynamic Loads +OutList['TFinAlpha'] = False # (deg); Tail fin angle of attack. This is the angle between the relative velocity of the wind-inflow at the tail fin center-of-pressure and the tail fin chordline.; About the tail fin z-axis, which is the axis in the tail fin plane normal to the chordline +OutList['TFinCLift'] = False # (-); Tail fin dimensionless lift coefficient; N/A +OutList['TFinCDrag'] = False # (-); Tail fin dimensionless drag coefficient; N/A +OutList['TFinDnPrs'] = False # (Pa); Tail fin dynamic pressure, equal to 1/2*AirDens*Vrel^2 where Vrel is the relative velocity of the wind-inflow at the tail fin center-of-pressure; N/A +OutList['TFinCPFx'] = False # (kN); Tangential aerodynamic force at the tail fin center-of-pressure; Directed along the tail fin x-axis, which is the axis along the chordline, positive towards the trailing edge +OutList['TFinCPFy'] = False # (kN); Normal aerodynamic force at the tail fin center-of-pressure; Directed along the tail fin y-axis, which is orthogonal to the tail fin plane + +# Tower-Top / Yaw Bearing Loads +OutList['YawBrFxn'] = False # (kN); Rotating (with nacelle) tower-top / yaw bearing shear force; Directed along the xn-axis +OutList['YawBrFyn'] = False # (kN); Rotating (with nacelle) tower-top / yaw bearing shear force; Directed along the yn-axis +OutList['YawBrFzn'] = False # (kN); Tower-top / yaw bearing axial force; Directed along the zn- and zp-axes +OutList['YawBrFzp'] = False # (kN); Tower-top / yaw bearing axial force; Directed along the zn- and zp-axes +OutList['YawBrFxp'] = False # (kN); Tower-top / yaw bearing fore-aft (nonrotating) shear force; Directed along the xp-axis +OutList['YawBrFyp'] = False # (kN); Tower-top / yaw bearing side-to-side (nonrotating) shear force; Directed along the yp-axis +OutList['YawBrMxn'] = False # (kN m); Rotating (with nacelle) tower-top / yaw bearing roll moment; About the xn-axis +OutList['YawBrMyn'] = False # (kN m); Rotating (with nacelle) tower-top / yaw bearing pitch moment; About the yn-axis +OutList['YawBrMzn'] = False # (kN m); Tower-top / yaw bearing yaw moment; About the zn- and zp-axes +OutList['YawBrMzp'] = False # (kN m); Tower-top / yaw bearing yaw moment; About the zn- and zp-axes +OutList['YawMom'] = False # (kN m); Tower-top / yaw bearing yaw moment; About the zn- and zp-axes +OutList['YawBrMxp'] = False # (kN m); Nonrotating tower-top / yaw bearing roll moment; About the xp-axis +OutList['YawBrMyp'] = False # (kN m); Nonrotating tower-top / yaw bearing pitch moment; About the yp-axis + +# Tower Base Loads +OutList['TwrBsFxt'] = False # (kN); Tower base fore-aft shear force; Directed along the xt-axis +OutList['TwrBsFyt'] = False # (kN); Tower base side-to-side shear force; Directed along the yt-axis +OutList['TwrBsFzt'] = False # (kN); Tower base axial force; Directed along the zt-axis +OutList['TwrBsMxt'] = False # (kN m); Tower base roll (or side-to-side) moment (i.e., the moment caused by side-to-side forces); About the xt-axis +OutList['TwrBsMyt'] = False # (kN m); Tower base pitching (or fore-aft) moment (i.e., the moment caused by fore-aft forces); About the yt-axis +OutList['TwrBsMzt'] = False # (kN m); Tower base yaw (or torsional) moment; About the zt-axis + +# Local Tower Loads +OutList['TwHt1MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 1; About the local xt-axis +OutList['TwHt1MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 1; About the local yt-axis +OutList['TwHt1MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 1; About the local zt-axis +OutList['TwHt2MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 2; About the local xt-axis +OutList['TwHt2MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 2; About the local yt-axis +OutList['TwHt2MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 2; About the local zt-axis +OutList['TwHt3MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 3; About the local xt-axis +OutList['TwHt3MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 3; About the local yt-axis +OutList['TwHt3MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 3; About the local zt-axis +OutList['TwHt4MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 4; About the local xt-axis +OutList['TwHt4MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 4; About the local yt-axis +OutList['TwHt4MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 4; About the local zt-axis +OutList['TwHt5MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 5; About the local xt-axis +OutList['TwHt5MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 5; About the local yt-axis +OutList['TwHt5MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 5; About the local zt-axis +OutList['TwHt6MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 6; About the local xt-axis +OutList['TwHt6MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 6; About the local yt-axis +OutList['TwHt6MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 6; About the local zt-axis +OutList['TwHt7MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 7; About the local xt-axis +OutList['TwHt7MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 7; About the local yt-axis +OutList['TwHt7MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 7; About the local zt-axis +OutList['TwHt8MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 8; About the local xt-axis +OutList['TwHt8MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 8; About the local yt-axis +OutList['TwHt8MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 8; About the local zt-axis +OutList['TwHt9MLxt'] = False # (kN m); Local tower roll (or side-to-side) moment of tower gage 9; About the local xt-axis +OutList['TwHt9MLyt'] = False # (kN m); Local tower pitching (or fore-aft) moment of tower gage 9; About the local yt-axis +OutList['TwHt9MLzt'] = False # (kN m); Local tower yaw (or torsional) moment of tower gage 9; About the local zt-axis +OutList['TwHt1FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 1; About the local xt-axis +OutList['TwHt1FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 1; About the local yt-axis +OutList['TwHt1FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 1; About the local zt-axis +OutList['TwHt2FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 2; About the local xt-axis +OutList['TwHt2FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 2; About the local yt-axis +OutList['TwHt2FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 2; About the local zt-axis +OutList['TwHt3FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 3; About the local xt-axis +OutList['TwHt3FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 3; About the local yt-axis +OutList['TwHt3FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 3; About the local zt-axis +OutList['TwHt4FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 4; About the local xt-axis +OutList['TwHt4FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 4; About the local yt-axis +OutList['TwHt4FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 4; About the local zt-axis +OutList['TwHt5FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 5; About the local xt-axis +OutList['TwHt5FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 5; About the local yt-axis +OutList['TwHt5FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 5; About the local zt-axis +OutList['TwHt6FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 6; About the local xt-axis +OutList['TwHt6FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 6; About the local yt-axis +OutList['TwHt6FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 6; About the local zt-axis +OutList['TwHt7FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 7; About the local xt-axis +OutList['TwHt7FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 7; About the local yt-axis +OutList['TwHt7FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 7; About the local zt-axis +OutList['TwHt8FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 8; About the local xt-axis +OutList['TwHt8FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 8; About the local yt-axis +OutList['TwHt8FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 8; About the local zt-axis +OutList['TwHt9FLxt'] = False # (kN); Local tower roll (or side-to-side) force of tower gage 9; About the local xt-axis +OutList['TwHt9FLyt'] = False # (kN); Local tower pitching (or fore-aft) force of tower gage 9; About the local yt-axis +OutList['TwHt9FLzt'] = False # (kN); Local tower yaw (or torsional) force of tower gage 9; About the local zt-axis + +# Platform Loads +OutList['PtfmFxt'] = False # (kN); Platform horizontal surge shear force; Directed along the xt-axis +OutList['PtfmFyt'] = False # (kN); Platform horizontal sway shear force; Directed along the yt-axis +OutList['PtfmFzt'] = False # (kN); Platform vertical heave force; Directed along the zt-axis +OutList['PtfmFxi'] = False # (kN); Platform horizontal surge shear force; Directed along the xi-axis +OutList['PtfmFyi'] = False # (kN); Platform horizontal sway shear force; Directed along the yi-axis +OutList['PtfmFzi'] = False # (kN); Platform vertical heave force; Directed along the zi-axis +OutList['PtfmMxt'] = False # (kN m); Platform roll tilt moment; About the xt-axis +OutList['PtfmMyt'] = False # (kN m); Platform pitch tilt moment; About the yt-axis +OutList['PtfmMzt'] = False # (kN m); Platform yaw moment; About the zt-axis +OutList['PtfmMxi'] = False # (kN m); Platform roll tilt moment; About the xi-axis +OutList['PtfmMyi'] = False # (kN m); Platform pitch tilt moment; About the yi-axis +OutList['PtfmMzi'] = False # (kN m); Platform yaw moment; About the zi-axis + +# Mooring Line Loads +OutList['Fair1Ten'] = False # (kN); ; +OutList['Fair1Ang'] = False # (deg); ; +OutList['Anch1Ten'] = False # (kN); ; +OutList['Anch1Ang'] = False # (deg); ; +OutList['Fair2Ten'] = False # (kN); ; +OutList['Fair2Ang'] = False # (deg); ; +OutList['Anch2Ten'] = False # (kN); ; +OutList['Anch2Ang'] = False # (deg); ; +OutList['Fair3Ten'] = False # (kN); ; +OutList['Fair3Ang'] = False # (deg); ; +OutList['Anch3Ten'] = False # (kN); ; +OutList['Anch3Ang'] = False # (deg); ; +OutList['Fair4Ten'] = False # (kN); ; +OutList['Fair4Ang'] = False # (deg); ; +OutList['Anch4Ten'] = False # (kN); ; +OutList['Anch4Ang'] = False # (deg); ; +OutList['Fair5Ten'] = False # (kN); ; +OutList['Fair5Ang'] = False # (deg); ; +OutList['Anch5Ten'] = False # (kN); ; +OutList['Anch5Ang'] = False # (deg); ; +OutList['Fair6Ten'] = False # (kN); ; +OutList['Fair6Ang'] = False # (deg); ; +OutList['Anch6Ten'] = False # (kN); ; +OutList['Anch6Ang'] = False # (deg); ; +OutList['Fair7Ten'] = False # (kN); ; +OutList['Fair7Ang'] = False # (deg); ; +OutList['Anch7Ten'] = False # (kN); ; +OutList['Anch7Ang'] = False # (deg); ; +OutList['Fair8Ten'] = False # (kN); ; +OutList['Fair8Ang'] = False # (deg); ; +OutList['Anch8Ten'] = False # (kN); ; +OutList['Anch8Ang'] = False # (deg); ; +OutList['Fair9Ten'] = False # (kN); ; +OutList['Fair9Ang'] = False # (deg); ; +OutList['Anch9Ten'] = False # (kN); ; +OutList['Anch9Ang'] = False # (deg); ; + +# Wave Motions +OutList['WaveElev'] = False # (m); ; +OutList['Wave1Vxi'] = False # (m/s); ; +OutList['Wave1Vyi'] = False # (m/s); ; +OutList['Wave1Vzi'] = False # (m/s); ; +OutList['Wave1Axi'] = False # (m/s^2); ; +OutList['Wave1Ayi'] = False # (m/s^2); ; +OutList['Wave1Azi'] = False # (m/s^2); ; +OutList['Wave2Vxi'] = False # (m/s); ; +OutList['Wave2Vyi'] = False # (m/s); ; +OutList['Wave2Vzi'] = False # (m/s); ; +OutList['Wave2Axi'] = False # (m/s^2); ; +OutList['Wave2Ayi'] = False # (m/s^2); ; +OutList['Wave2Azi'] = False # (m/s^2); ; +OutList['Wave3Vxi'] = False # (m/s); ; +OutList['Wave3Vyi'] = False # (m/s); ; +OutList['Wave3Vzi'] = False # (m/s); ; +OutList['Wave3Axi'] = False # (m/s^2); ; +OutList['Wave3Ayi'] = False # (m/s^2); ; +OutList['Wave3Azi'] = False # (m/s^2); ; +OutList['Wave4Vxi'] = False # (m/s); ; +OutList['Wave4Vyi'] = False # (m/s); ; +OutList['Wave4Vzi'] = False # (m/s); ; +OutList['Wave4Axi'] = False # (m/s^2); ; +OutList['Wave4Ayi'] = False # (m/s^2); ; +OutList['Wave4Azi'] = False # (m/s^2); ; +OutList['Wave5Vxi'] = False # (m/s); ; +OutList['Wave5Vyi'] = False # (m/s); ; +OutList['Wave5Vzi'] = False # (m/s); ; +OutList['Wave5Axi'] = False # (m/s^2); ; +OutList['Wave5Ayi'] = False # (m/s^2); ; +OutList['Wave5Azi'] = False # (m/s^2); ; +OutList['Wave6Vxi'] = False # (m/s); ; +OutList['Wave6Vyi'] = False # (m/s); ; +OutList['Wave6Vzi'] = False # (m/s); ; +OutList['Wave6Axi'] = False # (m/s^2); ; +OutList['Wave6Ayi'] = False # (m/s^2); ; +OutList['Wave6Azi'] = False # (m/s^2); ; +OutList['Wave7Vxi'] = False # (m/s); ; +OutList['Wave7Vyi'] = False # (m/s); ; +OutList['Wave7Vzi'] = False # (m/s); ; +OutList['Wave7Axi'] = False # (m/s^2); ; +OutList['Wave7Ayi'] = False # (m/s^2); ; +OutList['Wave7Azi'] = False # (m/s^2); ; +OutList['Wave8Vxi'] = False # (m/s); ; +OutList['Wave8Vyi'] = False # (m/s); ; +OutList['Wave8Vzi'] = False # (m/s); ; +OutList['Wave8Axi'] = False # (m/s^2); ; +OutList['Wave8Ayi'] = False # (m/s^2); ; +OutList['Wave8Azi'] = False # (m/s^2); ; +OutList['Wave9Vxi'] = False # (m/s); ; +OutList['Wave9Vyi'] = False # (m/s); ; +OutList['Wave9Vzi'] = False # (m/s); ; +OutList['Wave9Axi'] = False # (m/s^2); ; +OutList['Wave9Ayi'] = False # (m/s^2); ; +OutList['Wave9Azi'] = False # (m/s^2); ; + +# Internal Degrees of Freedom +OutList['Q_B1E1'] = False # (m); Displacement of 1st edgewise bending-mode DOF of blade 1; +OutList['Q_B2E1'] = False # (m); Displacement of 1st edgewise bending-mode DOF of blade 2; +OutList['Q_B3E1'] = False # (m); Displacement of 1st edgewise bending-mode DOF of blade 3; +OutList['Q_B1F1'] = False # (m); Displacement of 1st flapwise bending-mode DOF of blade 1; +OutList['Q_B2F1'] = False # (m); Displacement of 1st flapwise bending-mode DOF of blade 2; +OutList['Q_B3F1'] = False # (m); Displacement of 1st flapwise bending-mode DOF of blade 3; +OutList['Q_B1F2'] = False # (m); Displacement of 2nd flapwise bending-mode DOF of blade 1; +OutList['Q_B2F2'] = False # (m); Displacement of 2nd flapwise bending-mode DOF of blade 2; +OutList['Q_B3F2'] = False # (m); Displacement of 2nd flapwise bending-mode DOF of blade 3; +OutList['Q_Teet'] = False # (rad); Displacement of hub teetering DOF; +OutList['Q_DrTr'] = False # (rad); Displacement of drivetrain rotational-flexibility DOF; +OutList['Q_GeAz'] = False # (rad); Displacement of variable speed generator DOF; +OutList['Q_RFrl'] = False # (rad); Displacement of rotor-furl DOF; +OutList['Q_TFrl'] = False # (rad); Displacement of tail-furl DOF; +OutList['Q_Yaw'] = False # (rad); Displacement of nacelle yaw DOF; +OutList['Q_TFA1'] = False # (m); Displacement of 1st tower fore-aft bending mode DOF; +OutList['Q_TSS1'] = False # (m); Displacement of 1st tower side-to-side bending mode DOF; +OutList['Q_TFA2'] = False # (m); Displacement of 2nd tower fore-aft bending mode DOF; +OutList['Q_TSS2'] = False # (m); Displacement of 2nd tower side-to-side bending mode DOF; +OutList['Q_Sg'] = False # (m); Displacement of platform horizontal surge translation DOF; +OutList['Q_Sw'] = False # (m); Displacement of platform horizontal sway translation DOF; +OutList['Q_Hv'] = False # (m); Displacement of platform vertical heave translation DOF; +OutList['Q_R'] = False # (rad); Displacement of platform roll tilt rotation DOF; +OutList['Q_P'] = False # (rad); Displacement of platform pitch tilt rotation DOF; +OutList['Q_Y'] = False # (rad); Displacement of platform yaw rotation DOF; +OutList['QD_B1E1'] = False # (m/s); Velocity of 1st edgewise bending-mode DOF of blade 1; +OutList['QD_B2E1'] = False # (m/s); Velocity of 1st edgewise bending-mode DOF of blade 2; +OutList['QD_B3E1'] = False # (m/s); Velocity of 1st edgewise bending-mode DOF of blade 3; +OutList['QD_B1F1'] = False # (m/s); Velocity of 1st flapwise bending-mode DOF of blade 1; +OutList['QD_B2F1'] = False # (m/s); Velocity of 1st flapwise bending-mode DOF of blade 2; +OutList['QD_B3F1'] = False # (m/s); Velocity of 1st flapwise bending-mode DOF of blade 3; +OutList['QD_B1F2'] = False # (m/s); Velocity of 2nd flapwise bending-mode DOF of blade 1; +OutList['QD_B2F2'] = False # (m/s); Velocity of 2nd flapwise bending-mode DOF of blade 2; +OutList['QD_B3F2'] = False # (m/s); Velocity of 2nd flapwise bending-mode DOF of blade 3; +OutList['QD_Teet'] = False # (rad/s); Velocity of hub teetering DOF; +OutList['QD_DrTr'] = False # (rad/s); Velocity of drivetrain rotational-flexibility DOF; +OutList['QD_GeAz'] = False # (rad/s); Velocity of variable speed generator DOF; +OutList['QD_RFrl'] = False # (rad/s); Velocity of rotor-furl DOF; +OutList['QD_TFrl'] = False # (rad/s); Velocity of tail-furl DOF; +OutList['QD_Yaw'] = False # (rad/s); Velocity of nacelle yaw DOF; +OutList['QD_TFA1'] = False # (m/s); Velocity of 1st tower fore-aft bending mode DOF; +OutList['QD_TSS1'] = False # (m/s); Velocity of 1st tower side-to-side bending mode DOF; +OutList['QD_TFA2'] = False # (m/s); Velocity of 2nd tower fore-aft bending mode DOF; +OutList['QD_TSS2'] = False # (m/s); Velocity of 2nd tower side-to-side bending mode DOF; +OutList['QD_Sg'] = False # (m/s); Velocity of platform horizontal surge translation DOF; +OutList['QD_Sw'] = False # (m/s); Velocity of platform horizontal sway translation DOF; +OutList['QD_Hv'] = False # (m/s); Velocity of platform vertical heave translation DOF; +OutList['QD_R'] = False # (rad/s); Velocity of platform roll tilt rotation DOF; +OutList['QD_P'] = False # (rad/s); Velocity of platform pitch tilt rotation DOF; +OutList['QD_Y'] = False # (rad/s); Velocity of platform yaw rotation DOF; +OutList['QD2_B1E1'] = False # (m/s^2); Acceleration of 1st edgewise bending-mode DOF of blade 1; +OutList['QD2_B2E1'] = False # (m/s^2); Acceleration of 1st edgewise bending-mode DOF of blade 2; +OutList['QD2_B3E1'] = False # (m/s^2); Acceleration of 1st edgewise bending-mode DOF of blade 3; +OutList['QD2_B1F1'] = False # (m/s^2); Acceleration of 1st flapwise bending-mode DOF of blade 1; +OutList['QD2_B2F1'] = False # (m/s^2); Acceleration of 1st flapwise bending-mode DOF of blade 2; +OutList['QD2_B3F1'] = False # (m/s^2); Acceleration of 1st flapwise bending-mode DOF of blade 3; +OutList['QD2_B1F2'] = False # (m/s^2); Acceleration of 2nd flapwise bending-mode DOF of blade 1; +OutList['QD2_B2F2'] = False # (m/s^2); Acceleration of 2nd flapwise bending-mode DOF of blade 2; +OutList['QD2_B3F2'] = False # (m/s^2); Acceleration of 2nd flapwise bending-mode DOF of blade 3; +OutList['QD2_Teet'] = False # (rad/s^2); Acceleration of hub teetering DOF; +OutList['QD2_DrTr'] = False # (rad/s^2); Acceleration of drivetrain rotational-flexibility DOF; +OutList['QD2_GeAz'] = False # (rad/s^2); Acceleration of variable speed generator DOF; +OutList['QD2_RFrl'] = False # (rad/s^2); Acceleration of rotor-furl DOF; +OutList['QD2_TFrl'] = False # (rad/s^2); Acceleration of tail-furl DOF; +OutList['QD2_Yaw'] = False # (rad/s^2); Acceleration of nacelle yaw DOF; +OutList['QD2_TFA1'] = False # (m/s^2); Acceleration of 1st tower fore-aft bending mode DOF; +OutList['QD2_TSS1'] = False # (m/s^2); Acceleration of 1st tower side-to-side bending mode DOF; +OutList['QD2_TFA2'] = False # (m/s^2); Acceleration of 2nd tower fore-aft bending mode DOF; +OutList['QD2_TSS2'] = False # (m/s^2); Acceleration of 2nd tower side-to-side bending mode DOF; +OutList['QD2_Sg'] = False # (m/s^2); Acceleration of platform horizontal surge translation DOF; +OutList['QD2_Sw'] = False # (m/s^2); Acceleration of platform horizontal sway translation DOF; +OutList['QD2_Hv'] = False # (m/s^2); Acceleration of platform vertical heave translation DOF; +OutList['QD2_R'] = False # (rad/s^2); Acceleration of platform roll tilt rotation DOF; +OutList['QD2_P'] = False # (rad/s^2); Acceleration of platform pitch tilt rotation DOF; +OutList['QD2_Y'] = False # (rad/s^2); Acceleration of platform yaw rotation DOF; + + +""" Final Output Dictionary """ +Fst7Output = {} +Fst7Output['OutList'] = OutList diff --git a/ofTools/fast_io/FAST_wrapper.py b/ofTools/fast_io/FAST_wrapper.py new file mode 100644 index 000000000..3f963829e --- /dev/null +++ b/ofTools/fast_io/FAST_wrapper.py @@ -0,0 +1,84 @@ +import os +import subprocess +import platform +import time + +class FastWrapper(object): + + def __init__(self, **kwargs): + self.FAST_ver = 'OPENFAST' #(FAST7, FAST8, OPENFAST) + + self.FAST_exe = None # Path to executable + self.FAST_InputFile = None # FAST input file (ext=.fst) + self.FAST_directory = None # Path to fst directory files + self.debug_level = 0 #(0:quiet, 1:output task description, 2:full FAST stdout) + + # Optional population class attributes from key word arguments + for k, w in kwargs.items(): + try: + setattr(self, k, w) + except: + pass + + super(FastWrapper, self).__init__() + + def execute(self): + + self.input_file = os.path.join(self.FAST_directory, self.FAST_InputFile) + + try: + if platform.system()!='Windows' and self.FAST_exe[-4:]=='.exe': + self.FAST_exe = self.FAST_exe[:-4] + except: + pass + + exec_str = [] + exec_str.append(self.FAST_exe) + exec_str.append(self.FAST_InputFile) + + olddir = os.getcwd() + os.chdir(self.FAST_directory) + + if self.debug_level > 0: + print ("EXECUTING", self.FAST_ver) + print ("Executable: \t", self.FAST_exe) + print ("Run directory: \t", self.FAST_directory) + print ("Input file: \t", self.FAST_InputFile) + print ("Exec string: \t", exec_str) + + start = time.time() + if self.debug_level > 1: + subprocess.call(exec_str) + else: + FNULL = open(os.devnull, 'w') + subprocess.call(exec_str, stdout=FNULL, stderr=subprocess.STDOUT) + runtime = time.time() - start + print('Runtime: \t{} = {:<6.2f}s'.format(self.FAST_InputFile, runtime)) + + os.chdir(olddir) + +if __name__=="__main__": + + + fast = FastWrapper(debug_level=2) + + fast.FAST_ver = 'OPENFAST' + + if fast.FAST_ver == 'FAST7': + fast.FAST_exe = 'C:/Users/egaertne/WT_Codes/FAST_v7.02.00d-bjj/FAST.exe' # Path to executable + fast.FAST_InputFile = 'test.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WISDEM/AeroelasticSE/src/AeroelasticSE/FAST_mdao/temp/FAST7' # Path to fst directory files + + elif fast.FAST_ver == 'FAST8': + fast.FAST_exe = 'C:/Users/egaertne/WT_Codes/FAST_v8.16.00a-bjj/bin/FAST_Win32.exe' # Path to executable + fast.FAST_InputFile = 'test.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WISDEM/AeroelasticSE/src/AeroelasticSE/FAST_mdao/temp/FAST8' # Path to fst directory files + + elif fast.FAST_ver == 'OPENFAST': + fast.FAST_exe = 'C:/Users/egaertne/WT_Codes/openfast-dev/build/glue-codes/openfast/openfast.exe' # Path to executable + # fast.FAST_InputFile = 'test.fst' # FAST input file (ext=.fst) + # fast.FAST_directory = 'C:/Users/egaertne/WISDEM/AeroelasticSE/src/AeroelasticSE/FAST_mdao/temp/OpenFAST' # Path to fst directory files + fast.FAST_InputFile = 'RotorSE_FAST_5MW_0.fst' # FAST input file (ext=.fst) + fast.FAST_directory = "C:/Users/egaertne/WISDEM/RotorSE_yaml/RotorSE/src/rotorse/temp/RotorSE_FAST_5MW" # Path to fst directory files + + fast.execute() diff --git a/ofTools/fast_io/FAST_writer.py b/ofTools/fast_io/FAST_writer.py new file mode 100644 index 000000000..274e70ae6 --- /dev/null +++ b/ofTools/fast_io/FAST_writer.py @@ -0,0 +1,2260 @@ +import os, sys, copy, random, time +import operator +import yaml +import numpy as np +from functools import reduce + +from ofTools.fast_io.FAST_reader import InputReader_Common, InputReader_OpenFAST, InputReader_FAST7 +from ofTools.fast_io.FAST_vars import FstModel + +from ROSCO_toolbox.utilities import write_rotor_performance, write_DISCON +ROSCO = True + + +def auto_format(f, var): + # Error handling for variables with 'Default' options + if isinstance(var, str): + f.write('{:}\n'.format(var)) + elif isinstance(var, int): + f.write('{:3}\n'.format(var)) + elif isinstance(var, float): + f.write('{: 2.15e}\n'.format(var)) + +def float_default_out(val): + # formatted float output when 'default' is an option + if type(val) is float: + return '{: 22f}'.format(val) + else: + return '{:<22}'.format(val) + +def int_default_out(val): + # formatted int output when 'default' is an option + if type(val) is float: + return '{:<22d}'.format(val) + else: + return '{:<22}'.format(val) + +# given a list of nested dictionary keys, return the dict at that point +def get_dict(vartree, branch): + return reduce(operator.getitem, branch, vartree) + +class InputWriter_Common(object): + """ Methods for writing input files that are (relatively) unchanged across FAST versions.""" + + def __init__(self, **kwargs): + + self.FAST_ver = 'OPENFAST' + self.FAST_namingOut = None #Master FAST file + self.FAST_runDirectory = None #Output directory + self.fst_vt = FstModel + self.fst_update = {} + + # Optional population class attributes from key word arguments + for (k, w) in kwargs.items(): + try: + setattr(self, k, w) + except: + pass + + super(InputWriter_Common, self).__init__() + + def write_yaml(self): + self.FAST_yamlfile = os.path.join(self.FAST_runDirectory, self.FAST_namingOut+'.yaml') + f = open(self.FAST_yamlfile, "w") + yaml.dump(self.fst_vt, f) + + + def update(self, fst_update={}): + """ Change fast variables based on the user supplied values """ + if fst_update: + self.fst_update = fst_update + + # recursively loop through fast variable levels and set them to their update values + def loop_dict(vartree, branch): + for var in vartree.keys(): + branch_i = copy.copy(branch) + branch_i.append(var) + if type(vartree[var]) is dict: + loop_dict(vartree[var], branch_i) + else: + # try: + get_dict(self.fst_vt, branch_i[:-1])[branch_i[-1]] = get_dict(self.fst_update, branch_i[:-1])[branch_i[-1]] + # except: + # pass + + # make sure update dictionary is not empty + if self.fst_update: + # if update dictionary uses list keys, convert to nested dictionaries + if type(list(self.fst_update.keys())) in [list, tuple]: + fst_update = copy.copy(self.fst_update) + self.fst_update = {} + for var_list in fst_update.keys(): + branch = [] + for i, var in enumerate(var_list[0:-1]): + if var not in get_dict(self.fst_update, branch).keys(): + get_dict(self.fst_update, branch)[var] = {} + branch.append(var) + + get_dict(self.fst_update, branch)[var_list[-1]] = fst_update[var_list] + else: + print('WARNING: OpenFAST user settings not correctly applied. Please check the modeling_options.yaml') + + # set fast variables to update values + loop_dict(self.fst_update, []) + + + def write_ElastoDynBlade(self): + + self.fst_vt['ElastoDyn']['BldFile1'] = self.FAST_namingOut + '_ElastoDyn_blade.dat' + self.fst_vt['ElastoDyn']['BldFile2'] = self.fst_vt['ElastoDyn']['BldFile1'] + self.fst_vt['ElastoDyn']['BldFile3'] = self.fst_vt['ElastoDyn']['BldFile1'] + blade_file = os.path.join(self.FAST_runDirectory,self.fst_vt['ElastoDyn']['BldFile1']) + f = open(blade_file, 'w') + + f.write('------- ELASTODYN V1.00.* INDIVIDUAL BLADE INPUT FILE --------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('---------------------- BLADE PARAMETERS ----------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['NBlInpSt'], 'NBlInpSt', '- Number of blade input stations (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFlDmp1'], 'BldFlDmp1', '- Blade flap mode #1 structural damping in percent of critical (%)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFlDmp2'], 'BldFlDmp2', '- Blade flap mode #2 structural damping in percent of critical (%)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldEdDmp1'], 'BldEdDmp1', '- Blade edge mode #1 structural damping in percent of critical (%)\n')) + f.write('---------------------- BLADE ADJUSTMENT FACTORS --------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['FlStTunr1'], 'FlStTunr1', '- Blade flapwise modal stiffness tuner, 1st mode (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['FlStTunr2'], 'FlStTunr2', '- Blade flapwise modal stiffness tuner, 2nd mode (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['AdjBlMs'], 'AdjBlMs', '- Factor to adjust blade mass density (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['AdjFlSt'], 'AdjFlSt', '- Factor to adjust blade flap stiffness (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['AdjEdSt'], 'AdjEdSt', '- Factor to adjust blade edge stiffness (-)\n')) + f.write('---------------------- DISTRIBUTED BLADE PROPERTIES ----------------------------\n') + f.write(' BlFract PitchAxis StrcTwst BMassDen FlpStff EdgStff\n') + f.write(' (-) (-) (deg) (kg/m) (Nm^2) (Nm^2)\n') + BlFract = self.fst_vt['ElastoDynBlade']['BlFract'] + PitchAxis = self.fst_vt['ElastoDynBlade']['PitchAxis'] + StrcTwst = self.fst_vt['ElastoDynBlade']['StrcTwst'] + BMassDen = self.fst_vt['ElastoDynBlade']['BMassDen'] + FlpStff = self.fst_vt['ElastoDynBlade']['FlpStff'] + EdgStff = self.fst_vt['ElastoDynBlade']['EdgStff'] + for BlFracti, PitchAxisi, StrcTwsti, BMassDeni, FlpStffi, EdgStffi in zip(BlFract, PitchAxis, StrcTwst, BMassDen, FlpStff, EdgStff): + f.write('{: 2.15e} {: 2.15e} {: 2.15e} {: 2.15e} {: 2.15e} {: 2.15e}\n'.format(BlFracti, PitchAxisi, StrcTwsti, BMassDeni, FlpStffi, EdgStffi)) + f.write('---------------------- BLADE MODE SHAPES ---------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl1Sh'][0], 'BldFl1Sh(2)', '- Flap mode 1, coeff of x^2\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl1Sh'][1], 'BldFl1Sh(3)', '- , coeff of x^3\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl1Sh'][2], 'BldFl1Sh(4)', '- , coeff of x^4\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl1Sh'][3], 'BldFl1Sh(5)', '- , coeff of x^5\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl1Sh'][4], 'BldFl1Sh(6)', '- , coeff of x^6\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl2Sh'][0], 'BldFl2Sh(2)', '- Flap mode 2, coeff of x^2\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl2Sh'][1], 'BldFl2Sh(3)', '- , coeff of x^3\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl2Sh'][2], 'BldFl2Sh(4)', '- , coeff of x^4\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl2Sh'][3], 'BldFl2Sh(5)', '- , coeff of x^5\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldFl2Sh'][4], 'BldFl2Sh(6)', '- , coeff of x^6\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldEdgSh'][0], 'BldEdgSh(2)', '- Edge mode 1, coeff of x^2\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldEdgSh'][1], 'BldEdgSh(3)', '- , coeff of x^3\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldEdgSh'][2], 'BldEdgSh(4)', '- , coeff of x^4\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldEdgSh'][3], 'BldEdgSh(5)', '- , coeff of x^5\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynBlade']['BldEdgSh'][4], 'BldEdgSh(6)', '- , coeff of x^6\n')) + + f.close() + + + def write_ElastoDynTower(self): + + self.fst_vt['ElastoDyn']['TwrFile'] = self.FAST_namingOut + '_ElastoDyn_tower.dat' + tower_file = os.path.join(self.FAST_runDirectory,self.fst_vt['ElastoDyn']['TwrFile']) + f = open(tower_file, 'w') + + f.write('------- ELASTODYN V1.00.* TOWER INPUT FILE -------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('---------------------- TOWER PARAMETERS ----------------------------------------\n') + if self.FAST_ver.lower() == 'fast7': + f.write('---\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['NTwInpSt'], 'NTwInpSt', '- Number of input stations to specify tower geometry\n')) + if self.FAST_ver.lower() == 'fast7': + f.write('{:}\n'.format(self.fst_vt['ElastoDynTower']['CalcTMode'])) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwrFADmp1'], 'TwrFADmp(1)', '- Tower 1st fore-aft mode structural damping ratio (%)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwrFADmp2'], 'TwrFADmp(2)', '- Tower 2nd fore-aft mode structural damping ratio (%)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwrSSDmp1'], 'TwrSSDmp(1)', '- Tower 1st side-to-side mode structural damping ratio (%)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwrSSDmp2'], 'TwrSSDmp(2)', '- Tower 2nd side-to-side mode structural damping ratio (%)\n')) + f.write('---------------------- TOWER ADJUSTMUNT FACTORS --------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['FAStTunr1'], 'FAStTunr(1)', '- Tower fore-aft modal stiffness tuner, 1st mode (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['FAStTunr2'], 'FAStTunr(2)', '- Tower fore-aft modal stiffness tuner, 2nd mode (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['SSStTunr1'], 'SSStTunr(1)', '- Tower side-to-side stiffness tuner, 1st mode (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['SSStTunr2'], 'SSStTunr(2)', '- Tower side-to-side stiffness tuner, 2nd mode (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['AdjTwMa'], 'AdjTwMa', '- Factor to adjust tower mass density (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['AdjFASt'], 'AdjFASt', '- Factor to adjust tower fore-aft stiffness (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['AdjSSSt'], 'AdjSSSt', '- Factor to adjust tower side-to-side stiffness (-)\n')) + f.write('---------------------- DISTRIBUTED TOWER PROPERTIES ----------------------------\n') + f.write(' HtFract TMassDen TwFAStif TwSSStif\n') + f.write(' (-) (kg/m) (Nm^2) (Nm^2)\n') + HtFract = self.fst_vt['ElastoDynTower']['HtFract'] + TMassDen = self.fst_vt['ElastoDynTower']['TMassDen'] + TwFAStif = self.fst_vt['ElastoDynTower']['TwFAStif'] + TwSSStif = self.fst_vt['ElastoDynTower']['TwSSStif'] + if self.FAST_ver.lower() == 'fast7': + gs = self.fst_vt['ElastoDynTower']['TwGJStif'] + es = self.fst_vt['ElastoDynTower']['TwEAStif'] + fi = self.fst_vt['ElastoDynTower']['TwFAIner'] + si = self.fst_vt['ElastoDynTower']['TwSSIner'] + fo = self.fst_vt['ElastoDynTower']['TwFAcgOf'] + so = self.fst_vt['ElastoDynTower']['TwSScgOf'] + for a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 in zip(HtFract, TMassDen, TwFAStif, TwSSStif, gs, es, fi, si, fo, so): + f.write('{:.9e}\t{:.9e}\t{:.9e}\t{:.9e}\t{:.9e}\t{:.9e}\t{:.9e}\t{:.9e}\t{:.9e}\t{:.9e}\n'.\ + format(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)) + else: + for HtFracti, TMassDeni, TwFAStifi, TwSSStifi in zip(HtFract, TMassDen, TwFAStif, TwSSStif): + f.write('{: 2.15e} {: 2.15e} {: 2.15e} {: 2.15e}\n'.format(HtFracti, TMassDeni, TwFAStifi, TwSSStifi)) + f.write('---------------------- TOWER FORE-AFT MODE SHAPES ------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM1Sh'][0], 'TwFAM1Sh(2)', '- Mode 1, coefficient of x^2 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM1Sh'][1], 'TwFAM1Sh(3)', '- , coefficient of x^3 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM1Sh'][2], 'TwFAM1Sh(4)', '- , coefficient of x^4 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM1Sh'][3], 'TwFAM1Sh(5)', '- , coefficient of x^5 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM1Sh'][4], 'TwFAM1Sh(6)', '- , coefficient of x^6 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM2Sh'][0], 'TwFAM2Sh(2)', '- Mode 2, coefficient of x^2 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM2Sh'][1], 'TwFAM2Sh(3)', '- , coefficient of x^3 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM2Sh'][2], 'TwFAM2Sh(4)', '- , coefficient of x^4 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM2Sh'][3], 'TwFAM2Sh(5)', '- , coefficient of x^5 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwFAM2Sh'][4], 'TwFAM2Sh(6)', '- , coefficient of x^6 term\n')) + f.write('---------------------- TOWER SIDE-TO-SIDE MODE SHAPES --------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM1Sh'][0], 'TwSSM1Sh(2)', '- Mode 1, coefficient of x^2 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM1Sh'][1], 'TwSSM1Sh(3)', '- , coefficient of x^3 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM1Sh'][2], 'TwSSM1Sh(4)', '- , coefficient of x^4 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM1Sh'][3], 'TwSSM1Sh(5)', '- , coefficient of x^5 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM1Sh'][4], 'TwSSM1Sh(6)', '- , coefficient of x^6 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM2Sh'][0], 'TwSSM2Sh(2)', '- Mode 2, coefficient of x^2 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM2Sh'][1], 'TwSSM2Sh(3)', '- , coefficient of x^3 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM2Sh'][2], 'TwSSM2Sh(4)', '- , coefficient of x^4 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM2Sh'][3], 'TwSSM2Sh(5)', '- , coefficient of x^5 term\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDynTower']['TwSSM2Sh'][4], 'TwSSM2Sh(6)', '- , coefficient of x^6 term\n')) + + f.close() + + def write_AeroDyn14Polar(self, filename, a_i): + # AeroDyn v14 Airfoil Polar Input File + + f = open(filename, 'w') + f.write('AeroDyn airfoil file, Aerodyn v14.04 formatting\n') + f.write('Generated with AeroElasticSE FAST driver\n') + + f.write('{:9d}\t{:}'.format(self.fst_vt['AeroDynBlade']['af_data'][a_i]['number_tables'], 'Number of airfoil tables in this file\n')) + for i in range(self.fst_vt['AeroDynBlade']['af_data'][a_i]['number_tables']): + param = self.fst_vt['AeroDynBlade']['af_data'][a_i]['af_tables'][i] + f.write('{:9g}\t{:}'.format(i, 'Table ID parameter\n')) + f.write('{: f}\t{:}'.format(param['StallAngle'], 'Stall angle (deg)\n')) + f.write('{: f}\t{:}'.format(0, 'No longer used, enter zero\n')) + f.write('{: f}\t{:}'.format(0, 'No longer used, enter zero\n')) + f.write('{: f}\t{:}'.format(0, 'No longer used, enter zero\n')) + f.write('{: f}\t{:}'.format(param['ZeroCn'], 'Angle of attack for zero Cn for linear Cn curve (deg)\n')) + f.write('{: f}\t{:}'.format(param['CnSlope'], 'Cn slope for zero lift for linear Cn curve (1/rad)\n')) + f.write('{: f}\t{:}'.format(param['CnPosStall'], 'Cn at stall value for positive angle of attack for linear Cn curve\n')) + f.write('{: f}\t{:}'.format(param['CnNegStall'], 'Cn at stall value for negative angle of attack for linear Cn curve\n')) + f.write('{: f}\t{:}'.format(param['alphaCdMin'], 'Angle of attack for minimum CD (deg)\n')) + f.write('{: f}\t{:}'.format(param['CdMin'], 'Minimum CD value\n')) + if param['cm']: + for a, cl, cd, cm in zip(param['alpha'], param['cl'], param['cd'], param['cm']): + f.write('{: 6e} {: 6e} {: 6e} {: 6e}\n'.format(a, cl, cd, cm)) + else: + for a, cl, cd in zip(param['alpha'], param['cl'], param['cd']): + f.write('{: 6e} {: 6e} {: 6e}\n'.format(a, cl, cd)) + + f.close() + + def get_outlist(self, vartree_head, channel_list=[]): + """ Loop through a list of output channel names, recursively find values set to True in the nested outlist dict """ + + # recursively search nested dictionaries + def loop_dict(vartree, outlist_i): + for var in vartree.keys(): + if type(vartree[var]) is dict: + loop_dict(vartree[var], outlist_i) + else: + if vartree[var]: + outlist_i.append(var) + return outlist_i + + # if specific outlist branches are not specified, get all + if not channel_list: + channel_list = vartree_head.keys() + + # loop through top level of dictionary + outlist = [] + for var in channel_list: + var = var.replace(' ', '') + outlist_i = [] + outlist_i = loop_dict(vartree_head[var], outlist_i) + if outlist_i: + outlist.append(sorted(outlist_i)) + + return outlist + + def update_outlist(self, channels): + """ Loop through a list of output channel names, recursively search the nested outlist dict and set to specified value""" + # 'channels' is a dict of channel names as keys with the boolean value they should be set to + + # given a list of nested dictionary keys, return the dict at that point + def get_dict(vartree, branch): + return reduce(operator.getitem, branch, self.fst_vt['outlist']) + # given a list of nested dictionary keys, set the value of the dict at that point + def set_dict(vartree, branch, val): + get_dict(vartree, branch[:-1])[branch[-1]] = val + # recursively loop through outlist dictionaries to set output channels + def loop_dict(vartree, search_var, val, branch): + for var in vartree.keys(): + branch_i = copy.copy(branch) + branch_i.append(var) + if type(vartree[var]) is dict: + loop_dict(vartree[var], search_var, val, branch_i) + else: + if var == search_var: + set_dict(self.fst_vt['outlist'], branch_i, val) + + # loop through outchannels on this line, loop through outlist dicts to set to True + channel_list = channels.keys() + for var in channel_list: + val = channels[var] + var = var.replace(' ', '') + loop_dict(self.fst_vt['outlist'], var, val, []) + + +class InputWriter_OpenFAST(InputWriter_Common): + + def execute(self): + + if not os.path.exists(self.FAST_runDirectory): + os.makedirs(self.FAST_runDirectory) + + self.write_ElastoDynBlade() + self.write_ElastoDynTower() + self.write_ElastoDyn() + # self.write_WindWnd() + self.write_InflowWind() + if self.fst_vt['Fst']['CompAero'] == 1: + self.write_AeroDyn14() + elif self.fst_vt['Fst']['CompAero'] == 2: + self.write_AeroDyn15() + + if 'DISCON_in' in self.fst_vt and ROSCO: + self.write_DISCON_in() + self.write_ServoDyn() + + if self.fst_vt['Fst']['CompHydro'] == 1: + self.write_HydroDyn() + if self.fst_vt['Fst']['CompSub'] == 1: + self.write_SubDyn() + if self.fst_vt['Fst']['CompMooring'] == 1: + self.write_MAP() + elif self.fst_vt['Fst']['CompMooring'] == 3: + self.write_MoorDyn() + + if self.fst_vt['Fst']['CompElast'] == 2: + self.write_BeamDyn() + + self.write_MainInput() + + + def write_MainInput(self): + # Main FAST v8.16-v8.17 Input File + # Currently no differences between FASTv8.16 and OpenFAST. + + self.FAST_InputFileOut = os.path.join(self.FAST_runDirectory, self.FAST_namingOut+'.fst') + + # Keep simple for now: + f = open(self.FAST_InputFileOut, 'w') + + # ===== .fst Input File ===== + + f.write('------- OpenFAST INPUT FILE -------------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('---------------------- SIMULATION CONTROL --------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['Fst']['Echo'], 'Echo', '- Echo input data to .ech (flag)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['AbortLevel']+'"', 'AbortLevel', '- Error level when simulation should abort (string) {"WARNING", "SEVERE", "FATAL"}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['TMax'], 'TMax', '- Total run time (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['DT'], 'DT', '- Recommended module time step (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['InterpOrder'], 'InterpOrder', '- Interpolation order for input/output time history (-) {1=linear, 2=quadratic}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['NumCrctn'], 'NumCrctn', '- Number of correction iterations (-) {0=explicit calculation, i.e., no corrections}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['DT_UJac'], 'DT_UJac', '- Time between calls to get Jacobians (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['UJacSclFact'], 'UJacSclFact', '- Scaling factor used in Jacobians (-)\n')) + f.write('---------------------- FEATURE SWITCHES AND FLAGS ------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['CompElast'], 'CompElast', '- Compute structural dynamics (switch) {1=ElastoDyn; 2=ElastoDyn + BeamDyn for blades}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['CompInflow'], 'CompInflow', '- Compute inflow wind velocities (switch) {0=still air; 1=InflowWind; 2=external from OpenFOAM}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['CompAero'], 'CompAero', '- Compute aerodynamic loads (switch) {0=None; 1=AeroDyn v14; 2=AeroDyn v15}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['CompServo'], 'CompServo', '- Compute control and electrical-drive dynamics (switch) {0=None; 1=ServoDyn}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['CompHydro'], 'CompHydro', '- Compute hydrodynamic loads (switch) {0=None; 1=HydroDyn}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['CompSub'], 'CompSub', '- Compute sub-structural dynamics (switch) {0=None; 1=SubDyn; 2=External Platform MCKF}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['CompMooring'], 'CompMooring', '- Compute mooring system (switch) {0=None; 1=MAP++; 2=FEAMooring; 3=MoorDyn; 4=OrcaFlex}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['CompIce'], 'CompIce', '- Compute ice loads (switch) {0=None; 1=IceFloe; 2=IceDyn}\n')) + f.write('---------------------- INPUT FILES ---------------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['EDFile']+'"', 'EDFile', '- Name of file containing ElastoDyn input parameters (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['BDBldFile(1)']+'"', 'BDBldFile(1)', '- Name of file containing BeamDyn input parameters for blade 1 (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['BDBldFile(2)']+'"', 'BDBldFile(2)', '- Name of file containing BeamDyn input parameters for blade 2 (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['BDBldFile(3)']+'"', 'BDBldFile(3)', '- Name of file containing BeamDyn input parameters for blade 3 (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['InflowFile']+'"', 'InflowFile', '- Name of file containing inflow wind input parameters (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['AeroFile']+'"', 'AeroFile', '- Name of file containing aerodynamic input parameters (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['ServoFile']+'"', 'ServoFile', '- Name of file containing control and electrical-drive input parameters (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['HydroFile']+'"', 'HydroFile', '- Name of file containing hydrodynamic input parameters (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['SubFile']+'"', 'SubFile', '- Name of file containing sub-structural input parameters (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['MooringFile']+'"', 'MooringFile', '- Name of file containing mooring system input parameters (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['IceFile']+'"', 'IceFile', '- Name of file containing ice input parameters (quoted string)\n')) + f.write('---------------------- OUTPUT --------------------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['Fst']['SumPrint'], 'SumPrint', '- Print summary data to ".sum" (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['SttsTime'], 'SttsTime', '- Amount of time between screen status messages (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['ChkptTime'], 'ChkptTime', '- Amount of time between creating checkpoint files for potential restart (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['DT_Out'], 'DT_Out', '- Time step for tabular output (s) (or "default")\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['TStart'], 'TStart', '- Time to begin tabular output (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['OutFileFmt'], 'OutFileFmt', '- Format for tabular (time-marching) output file (switch) {1: text file [.out], 2: binary file [.outb], 3: both}\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['Fst']['TabDelim'], 'TabDelim', '- Use tab delimiters in text tabular output file? (flag) {uses spaces if false}\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['Fst']['OutFmt']+'"', 'OutFmt', '- Format used for text tabular output, excluding the time channel. Resulting field should be 10 characters. (quoted string)\n')) + f.write('---------------------- LINEARIZATION -------------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['Fst']['Linearize'], 'Linearize', '- Linearization analysis (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['Fst']['CalcSteady'], 'CalcSteady', '- Calculate a steady-state periodic operating point before linearization? [unused if Linearize=False] (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['TrimCase'], 'TrimCase', '- Controller parameter to be trimmed {1:yaw; 2:torque; 3:pitch} [used only if CalcSteady=True] (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['TrimTol'], 'TrimTol', '- Tolerance for the rotational speed convergence [used only if CalcSteady=True] (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['TrimGain'], 'TrimGain', '- Proportional gain for the rotational speed error (>0) [used only if CalcSteady=True] (rad/(rad/s) for yaw or pitch; Nm/(rad/s) for torque)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['Twr_Kdmp'], 'Twr_Kdmp', '- Damping factor for the tower [used only if CalcSteady=True] (N/(m/s))\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['Bld_Kdmp'], 'Bld_Kdmp', '- Damping factor for the blades [used only if CalcSteady=True] (N/(m/s))\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['NLinTimes'], 'NLinTimes', '- Number of times to linearize (-) [>=1] [unused if Linearize=False]\n')) + f.write('{:<22} {:<11} {:}'.format(', '.join(['%f'%i for i in np.array(self.fst_vt['Fst']['LinTimes'], dtype=float)]), 'LinTimes', '- List of times at which to linearize (s) [1 to NLinTimes] [used only when Linearize=True and CalcSteady=False]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['LinInputs'], 'LinInputs', '- Inputs included in linearization (switch) {0=none; 1=standard; 2=all module inputs (debug)} [unused if Linearize=False]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['LinOutputs'], 'LinOutputs', '- Outputs included in linearization (switch) {0=none; 1=from OutList(s); 2=all module outputs (debug)} [unused if Linearize=False]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['Fst']['LinOutJac'], 'LinOutJac', '- Include full Jacobians in linearization output (for debug) (flag) [unused if Linearize=False; used only if LinInputs=LinOutputs=2]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['Fst']['LinOutMod'], 'LinOutMod', '- Write module-level linearization output files in addition to output for full system? (flag) [unused if Linearize=False]\n')) + f.write('---------------------- VISUALIZATION ------------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['WrVTK'], 'WrVTK', '- VTK visualization data output: (switch) {0=none; 1=initialization data only; 2=animation}\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['VTK_type'], 'VTK_type', '- Type of VTK visualization data: (switch) {1=surfaces; 2=basic meshes (lines/points); 3=all meshes (debug)} [unused if WrVTK=0]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['Fst']['VTK_fields'], 'VTK_fields', '- Write mesh fields to VTK data files? (flag) {true/false} [unused if WrVTK=0]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['VTK_fps'], 'VTK_fps', '- Frame rate for VTK output (frames per second){will use closest integer multiple of DT} [used only if WrVTK=2]\n')) + + f.close() + + + def write_ElastoDyn(self): + + self.fst_vt['Fst']['EDFile'] = self.FAST_namingOut + '_ElastoDyn.dat' + ed_file = os.path.join(self.FAST_runDirectory,self.fst_vt['Fst']['EDFile']) + f = open(ed_file, 'w') + + f.write('------- ELASTODYN v1.03.* INPUT FILE -------------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + + # ElastoDyn Simulation Control (ed_sim_ctrl) + f.write('---------------------- SIMULATION CONTROL --------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['Echo'], 'Echo', '- Echo input data to ".ech" (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['Method'], 'Method', '- Integration method: {1: RK4, 2: AB4, or 3: ABM4} (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['DT'], 'DT', 'Integration time step (s)\n')) + f.write('---------------------- ENVIRONMENTAL CONDITION ---------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['Gravity'], 'Gravity', '- Gravitational acceleration (m/s^2)\n')) + f.write('---------------------- DEGREES OF FREEDOM --------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['FlapDOF1'], 'FlapDOF1', '- First flapwise blade mode DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['FlapDOF2'], 'FlapDOF2', '- Second flapwise blade mode DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['EdgeDOF'], 'EdgeDOF', '- First edgewise blade mode DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetDOF'], 'TeetDOF', '- Rotor-teeter DOF (flag) [unused for 3 blades]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['DrTrDOF'], 'DrTrDOF', '- Drivetrain rotational-flexibility DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['GenDOF'], 'GenDOF', '- Generator DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['YawDOF'], 'YawDOF', '- Yaw DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TwFADOF1'], 'TwFADOF1', '- First fore-aft tower bending-mode DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TwFADOF2'], 'TwFADOF2', '- Second fore-aft tower bending-mode DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TwSSDOF1'], 'TwSSDOF1', '- First side-to-side tower bending-mode DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TwSSDOF2'], 'TwSSDOF2', '- Second side-to-side tower bending-mode DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmSgDOF'], 'PtfmSgDOF', '- Platform horizontal surge translation DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmSwDOF'], 'PtfmSwDOF', '- Platform horizontal sway translation DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmHvDOF'], 'PtfmHvDOF', '- Platform vertical heave translation DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmRDOF'], 'PtfmRDOF', '- Platform roll tilt rotation DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmPDOF'], 'PtfmPDOF', '- Platform pitch tilt rotation DOF (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmYDOF'], 'PtfmYDOF', '- Platform yaw rotation DOF (flag)\n')) + f.write('---------------------- INITIAL CONDITIONS --------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['OoPDefl'], 'OoPDefl', '- Initial out-of-plane blade-tip displacement (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['IPDefl'], 'IPDefl', '- Initial in-plane blade-tip deflection (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['BlPitch1'], 'BlPitch(1)', '- Blade 1 initial pitch (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['BlPitch2'], 'BlPitch(2)', '- Blade 2 initial pitch (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['BlPitch3'], 'BlPitch(3)', '- Blade 3 initial pitch (degrees) [unused for 2 blades]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetDefl'], 'TeetDefl', '- Initial or fixed teeter angle (degrees) [unused for 3 blades]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['Azimuth'], 'Azimuth', '- Initial azimuth angle for blade 1 (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['RotSpeed'], 'RotSpeed', '- Initial or fixed rotor speed (rpm)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NacYaw'], 'NacYaw', '- Initial or fixed nacelle-yaw angle (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TTDspFA'], 'TTDspFA', '- Initial fore-aft tower-top displacement (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TTDspSS'], 'TTDspSS', '- Initial side-to-side tower-top displacement (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmSurge'], 'PtfmSurge', '- Initial or fixed horizontal surge translational displacement of platform (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmSway'], 'PtfmSway', '- Initial or fixed horizontal sway translational displacement of platform (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmHeave'], 'PtfmHeave', '- Initial or fixed vertical heave translational displacement of platform (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmRoll'], 'PtfmRoll', '- Initial or fixed roll tilt rotational displacement of platform (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmPitch'], 'PtfmPitch', '- Initial or fixed pitch tilt rotational displacement of platform (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmYaw'], 'PtfmYaw', '- Initial or fixed yaw rotational displacement of platform (degrees)\n')) + f.write('---------------------- TURBINE CONFIGURATION -----------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NumBl'], 'NumBl', '- Number of blades (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TipRad'], 'TipRad', '- The distance from the rotor apex to the blade tip (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['HubRad'], 'HubRad', '- The distance from the rotor apex to the blade root (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PreCone(1)'], 'PreCone(1)', '- Blade 1 cone angle (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PreCone(2)'], 'PreCone(2)', '- Blade 2 cone angle (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PreCone(3)'], 'PreCone(3)', '- Blade 3 cone angle (degrees) [unused for 2 blades]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['HubCM'], 'HubCM', '- Distance from rotor apex to hub mass [positive downwind] (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['UndSling'], 'UndSling', '- Undersling length [distance from teeter pin to the rotor apex] (meters) [unused for 3 blades]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['Delta3'], 'Delta3', '- Delta-3 angle for teetering rotors (degrees) [unused for 3 blades]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['AzimB1Up'], 'AzimB1Up', '- Azimuth value to use for I/O when blade 1 points up (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['OverHang'], 'OverHang', '- Distance from yaw axis to rotor apex [3 blades] or teeter pin [2 blades] (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['ShftGagL'], 'ShftGagL', '- Distance from rotor apex [3 blades] or teeter pin [2 blades] to shaft strain gages [positive for upwind rotors] (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['ShftTilt'], 'ShftTilt', '- Rotor shaft tilt angle (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NacCMxn'], 'NacCMxn', '- Downwind distance from the tower-top to the nacelle CM (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NacCMyn'], 'NacCMyn', '- Lateral distance from the tower-top to the nacelle CM (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NacCMzn'], 'NacCMzn', '- Vertical distance from the tower-top to the nacelle CM (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NcIMUxn'], 'NcIMUxn', '- Downwind distance from the tower-top to the nacelle IMU (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NcIMUyn'], 'NcIMUyn', '- Lateral distance from the tower-top to the nacelle IMU (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NcIMUzn'], 'NcIMUzn', '- Vertical distance from the tower-top to the nacelle IMU (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['Twr2Shft'], 'Twr2Shft', '- Vertical distance from the tower-top to the rotor shaft (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TowerHt'], 'TowerHt', '- Height of tower above ground level [onshore] or MSL [offshore] (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TowerBsHt'], 'TowerBsHt', '- Height of tower base above ground level [onshore] or MSL [offshore] (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmCMxt'], 'PtfmCMxt', '- Downwind distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmCMyt'], 'PtfmCMyt', '- Lateral distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmCMzt'], 'PtfmCMzt', '- Vertical distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmRefzt'], 'PtfmRefzt', '- Vertical distance from the ground level [onshore] or MSL [offshore] to the platform reference point (meters)\n')) + f.write('---------------------- MASS AND INERTIA ----------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TipMass(1)'], 'TipMass(1)', '- Tip-brake mass, blade 1 (kg)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TipMass(2)'], 'TipMass(2)', '- Tip-brake mass, blade 2 (kg)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TipMass(3)'], 'TipMass(3)', '- Tip-brake mass, blade 3 (kg) [unused for 2 blades]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['HubMass'], 'HubMass', '- Hub mass (kg)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['HubIner'], 'HubIner', '- Hub inertia about rotor axis [3 blades] or teeter axis [2 blades] (kg m^2)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['GenIner'], 'GenIner', '- Generator inertia about HSS (kg m^2)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NacMass'], 'NacMass', '- Nacelle mass (kg)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NacYIner'], 'NacYIner', '- Nacelle inertia about yaw axis (kg m^2)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['YawBrMass'], 'YawBrMass', '- Yaw bearing mass (kg)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmMass'], 'PtfmMass', '- Platform mass (kg)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmRIner'], 'PtfmRIner', '- Platform inertia for roll tilt rotation about the platform CM (kg m^2)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmPIner'], 'PtfmPIner', '- Platform inertia for pitch tilt rotation about the platform CM (kg m^2)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['PtfmYIner'], 'PtfmYIner', '- Platform inertia for yaw rotation about the platform CM (kg m^2)\n')) + f.write('---------------------- BLADE ---------------------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['BldNodes'], 'BldNodes', '- Number of blade nodes (per blade) used for analysis (-)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ElastoDyn']['BldFile1']+'"', 'BldFile1', '- Name of file containing properties for blade 1 (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ElastoDyn']['BldFile2']+'"', 'BldFile2', '- Name of file containing properties for blade 2 (quoted string)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ElastoDyn']['BldFile3']+'"', 'BldFile3', '- Name of file containing properties for blade 3 (quoted string) [unused for 2 blades]\n')) + f.write('---------------------- ROTOR-TEETER --------------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetMod'], 'TeetMod', '- Rotor-teeter spring/damper model {0: none, 1: standard, 2: user-defined from routine UserTeet} (switch) [unused for 3 blades]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetDmpP'], 'TeetDmpP', '- Rotor-teeter damper position (degrees) [used only for 2 blades and when TeetMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetDmp'], 'TeetDmp', '- Rotor-teeter damping constant (N-m/(rad/s)) [used only for 2 blades and when TeetMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetCDmp'], 'TeetCDmp', '- Rotor-teeter rate-independent Coulomb-damping moment (N-m) [used only for 2 blades and when TeetMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetSStP'], 'TeetSStP', '- Rotor-teeter soft-stop position (degrees) [used only for 2 blades and when TeetMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetHStP'], 'TeetHStP', '- Rotor-teeter hard-stop position (degrees) [used only for 2 blades and when TeetMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetSSSp'], 'TeetSSSp', '- Rotor-teeter soft-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TeetHSSp'], 'TeetHSSp', '- Rotor-teeter hard-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1]\n')) + f.write('---------------------- DRIVETRAIN ----------------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['GBoxEff'], 'GBoxEff', '- Gearbox efficiency (%)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['GBRatio'], 'GBRatio', '- Gearbox ratio (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['DTTorSpr'], 'DTTorSpr', '- Drivetrain torsional spring (N-m/rad)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['DTTorDmp'], 'DTTorDmp', '- Drivetrain torsional damper (N-m/(rad/s))\n')) + f.write('---------------------- FURLING -------------------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['Furling'], 'Furling', '- Read in additional model properties for furling turbine (flag) [must currently be FALSE)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ElastoDyn']['FurlFile']+'"', 'FurlFile', '- Name of file containing furling properties (quoted string) [unused when Furling=False]\n')) + f.write('---------------------- TOWER ---------------------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TwrNodes'], 'TwrNodes', '- Number of tower nodes used for analysis (-)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ElastoDyn']['TwrFile']+'"', 'TwrFile', '- Name of file containing tower properties (quoted string)\n')) + f.write('---------------------- OUTPUT --------------------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['SumPrint'], 'SumPrint', '- Print summary data to ".sum" (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['OutFile'], 'OutFile', '- Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TabDelim'], 'TabDelim', '- Use tab delimiters in text tabular output file? (flag) (currently unused)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ElastoDyn']['OutFmt']+'"', 'OutFmt', '- Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['TStart'], 'TStart', '- Time to begin tabular output (s) (currently unused)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['DecFact'], 'DecFact', '- Decimation factor for tabular output {1: output every time step} (-) (currently unused)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NTwGages'], 'NTwGages', '- Number of tower nodes that have strain gages for output [0 to 9] (-)\n')) + f.write('{:<22} {:<11} {:}'.format(', '.join(self.fst_vt['ElastoDyn']['TwrGagNd']), 'TwrGagNd', '- List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ElastoDyn']['NBlGages'], 'NBlGages', '- Number of blade nodes that have strain gages for output [0 to 9] (-)\n')) + if self.fst_vt['ElastoDyn']['BldGagNd'] != 0: + f.write('{:<22} {:<11} {:}'.format(', '.join(['%d'%i for i in self.fst_vt['ElastoDyn']['BldGagNd']]), 'BldGagNd', '- List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0]\n')) + else: + f.write('{:<22} {:<11} {:}'.format('', 'BldGagNd', '- List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0]\n')) + f.write(' OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)\n') + + outlist = self.get_outlist(self.fst_vt['outlist'], ['ElastoDyn']) + + for channel_list in outlist: + for i in range(len(channel_list)): + f.write('"' + channel_list[i] + '"\n') + + f.write('END of input file (the word "END" must appear in the first 3 columns of this last OutList line)\n') + f.write('---------------------------------------------------------------------------------------\n') + f.close() + + + def write_BeamDyn(self): + self.fst_vt['Fst']['BDBldFile(1)'] = self.FAST_namingOut + '_BeamDyn.dat' + self.fst_vt['Fst']['BDBldFile(2)'] = self.fst_vt['Fst']['BDBldFile(1)'] + self.fst_vt['Fst']['BDBldFile(3)'] = self.fst_vt['Fst']['BDBldFile(1)'] + + self.write_BeamDynBlade() + + beamdyn_file = os.path.join(self.FAST_runDirectory,self.fst_vt['Fst']['BDBldFile(1)']) + f = open(beamdyn_file, 'w') + + f.write('--------- BEAMDYN with OpenFAST INPUT FILE -------------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('---------------------- SIMULATION CONTROL --------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['Echo'], 'Echo', '- Echo input data to ".ech" (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['QuasiStaticInit'], 'QuasiStaticInit', '- Use quasistatic pre-conditioning with centripetal accelerations in initialization (flag) [dynamic solve only]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['BeamDyn']['rhoinf'], 'rhoinf', '- Numerical damping parameter for generalized-alpha integrator\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['BeamDyn']['quadrature'], 'quadrature', '- Quadrature method: 1=Gaussian; 2=Trapezoidal (switch)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['refine'], 'refine', '- Refinement factor for trapezoidal quadrature (-). DEFAULT = 1 [used only when quadrature=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['n_fact'], 'n_fact', '- Factorization frequency (-). DEFAULT = 5\n')) + f.write(float_default_out(self.fst_vt['BeamDyn']['DTBeam']) + ' {:<11} {:}'.format('DTBeam', '- Time step size (s).\n')) + f.write(int_default_out(self.fst_vt['BeamDyn']['load_retries']) + ' {:<11} {:}'.format('load_retries', '- Number of factored load retries before quitting the aimulation\n')) + f.write(int_default_out(self.fst_vt['BeamDyn']['NRMax']) + ' {:<11} {:}'.format('NRMax', '- Max number of iterations in Newton-Ralphson algorithm (-). DEFAULT = 10\n')) + f.write(float_default_out(self.fst_vt['BeamDyn']['stop_tol']) + ' {:<11} {:}'.format('stop_tol', '- Tolerance for stopping criterion (-)\n')) + print('----------') + print(self.fst_vt['BeamDyn']['tngt_stf_fd'], type(self.fst_vt['BeamDyn']['tngt_stf_fd'])) + + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['tngt_stf_fd'], 'tngt_stf_fd', '- Flag to use finite differenced tangent stiffness matrix (-)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['tngt_stf_comp'], 'tngt_stf_comp', '- Flag to compare analytical finite differenced tangent stiffness matrix (-)\n')) + f.write(float_default_out(self.fst_vt['BeamDyn']['tngt_stf_pert']) + ' {:<11} {:}'.format('tngt_stf_pert', '- perturbation size for finite differencing (-)\n')) + f.write(float_default_out(self.fst_vt['BeamDyn']['tngt_stf_difftol']) + ' {:<11} {:}'.format('tngt_stf_difftol', '- Maximum allowable relative difference between analytical and fd tangent stiffness (-)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['RotStates'], 'RotStates', '- Orient states in the rotating frame during linearization? (flag) [used only when linearizing]\n')) + f.write('---------------------- GEOMETRY PARAMETER --------------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['BeamDyn']['member_total'], 'member_total', '- Total number of members (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['BeamDyn']['kp_total'], 'kp_total', '- Total number of key points (-) [must be at least 3]\n')) + for i in range(self.fst_vt['BeamDyn']['member_total']): + mem = self.fst_vt['BeamDyn']['members'][i] + f.write('{:<22} {:<11} {:}'.format(' '.join(['%d'%(i+1),'%d'%len(mem['kp_xr'])]), '', '- Member number; Number of key points in this member\n')) + f.write(" ".join(['{:^21s}'.format(i) for i in ['kp_xr', 'kp_yr', 'kp_zr', 'initial_twist']])+'\n') + f.write(" ".join(['{:^21s}'.format(i) for i in ['(m)', '(m)', '(m)', '(deg)']])+'\n') + for j in range(len(mem['kp_xr'])): + ln = [] + ln.append('{: 2.14e}'.format(mem['kp_xr'][j])) + ln.append('{: 2.14e}'.format(mem['kp_yr'][j])) + ln.append('{: 2.14e}'.format(mem['kp_zr'][j])) + ln.append('{: 2.14e}'.format(mem['initial_twist'][j])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- MESH PARAMETER ------------------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['BeamDyn']['order_elem'], 'order_elem', '- Order of interpolation (basis) function (-)\n')) + f.write('---------------------- MATERIAL PARAMETER --------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['BeamDyn']['BldFile']+'"', 'BldFile', '- Name of file containing properties for blade (quoted string)\n')) + f.write('---------------------- PITCH ACTUATOR PARAMETERS -------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['UsePitchAct'], 'UsePitchAct', '- Whether a pitch actuator should be used (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['PitchJ'], 'PitchJ', '- Pitch actuator inertia (kg-m^2) [used only when UsePitchAct is true]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['PitchK'], 'PitchK', '- Pitch actuator stiffness (kg-m^2/s^2) [used only when UsePitchAct is true]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['PitchC'], 'PitchC', '- Pitch actuator damping (kg-m^2/s) [used only when UsePitchAct is true]\n')) + f.write('---------------------- OUTPUTS -------------------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['SumPrint'], 'SumPrint', '- Print summary data to ".sum" (flag)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ServoDyn']['OutFmt']+'"', 'OutFmt', '- Format used for text tabular output, excluding the time channel.\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn']['NNodeOuts'], 'NNodeOuts', '- Number of nodes to output to file [0 - 9] (-)\n')) + f.write('{:<22} {:<11} {:}'.format(', '.join(self.fst_vt['BeamDyn']['OutNd']), 'OutNd', '- Nodes whose values will be output (-)\n')) + f.write(' OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)\n') + outlist = self.get_outlist(self.fst_vt['outlist'], ['BeamDyn']) + for channel_list in outlist: + for i in range(len(channel_list)): + f.write('"' + channel_list[i] + '"\n') + f.write('END of input file (the word "END" must appear in the first 3 columns of this last OutList line)') + f.write('---------------------------------------------------------------------------------------') + f.close() + + # f.write('{:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn'][''], '', '\n')) + # f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['BeamDyn'][''], '', '\n')) + # f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['BeamDyn'][''], '', '\n')) + # f.write('{: 2.15e} {:<11} {:}'.format(self.fst_vt['BeamDyn'][''], '', '\n')) + # f.write(float_default_out(self.fst_vt['BeamDyn']['']) + ' {:<11} {:}'.format('', '\n')) + # f.write(int_default_out(self.fst_vt['BeamDyn']['']) + ' {:<11} {:}'.format('', '\n')) + + def write_BeamDynBlade(self): + + # bd_blade_file = self.fst_vt['BeamDyn']['BldFile'] + bd_blade_file = os.path.abspath(os.path.join(self.FAST_runDirectory, self.FAST_namingOut + '_BeamDyn_Blade.dat')) + self.fst_vt['BeamDyn']['BldFile'] = bd_blade_file + f = open(bd_blade_file, 'w') + + f.write('------- BEAMDYN V1.00.* INDIVIDUAL BLADE INPUT FILE --------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('---------------------- BLADE PARAMETERS --------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['BeamDynBlade']['station_total'], 'station_total', '- Number of blade input stations (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['BeamDynBlade']['damp_type'], 'damp_type', '- Damping type: 0: no damping; 1: damped\n')) + f.write('---------------------- DAMPING COEFFICIENT------------------------------------\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['mu1','mu2','mu3','mu4','mu5','mu6']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)','(-)','(-)','(-)','(-)','(-)']])+'\n') + mu = [self.fst_vt['BeamDynBlade']['mu1'], self.fst_vt['BeamDynBlade']['mu2'], self.fst_vt['BeamDynBlade']['mu3'], self.fst_vt['BeamDynBlade']['mu4'], self.fst_vt['BeamDynBlade']['mu5'], self.fst_vt['BeamDynBlade']['mu6']] + f.write(" ".join(['{:^11f}'.format(i) for i in mu])+'\n') + f.write('---------------------- DISTRIBUTED PROPERTIES---------------------------------\n') + + for i in range(len(self.fst_vt['BeamDynBlade']['radial_stations'])): + f.write('{: 2.15e}\n'.format(self.fst_vt['BeamDynBlade']['radial_stations'][i])) + for j in range(6): + f.write(" ".join(['{: 2.15e}'.format(i) for i in self.fst_vt['BeamDynBlade']['beam_stiff'][i,j,:]])+'\n') + f.write('\n') + for j in range(6): + f.write(" ".join(['{: 2.15e}'.format(i) for i in self.fst_vt['BeamDynBlade']['beam_inertia'][i,j,:]])+'\n') + f.write('\n') + + f.write('\n') + + + def write_InflowWind(self): + self.fst_vt['Fst']['InflowFile'] = self.FAST_namingOut + '_InflowFile.dat' + inflow_file = os.path.join(self.FAST_runDirectory,self.fst_vt['Fst']['InflowFile']) + f = open(inflow_file, 'w') + + f.write('------- InflowWind v3.01.* INPUT FILE -------------------------------------------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('---------------------------------------------------------------------------------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['Echo'], 'Echo', '- Echo input data to .ech (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['WindType'], 'WindType', '- switch for wind file type (1=steady; 2=uniform; 3=binary TurbSim FF; 4=binary Bladed-style FF; 5=HAWC format; 6=User defined)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['PropagationDir'], 'PropagationDir', '- Direction of wind propagation (meteoroligical rotation from aligned with X (positive rotates towards -Y) -- degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['NWindVel'], 'NWindVel', '- Number of points to output the wind velocity (0 to 9)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['WindVxiList'], 'WindVxiList', '- List of coordinates in the inertial X direction (m)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['WindVyiList'], 'WindVyiList', '- List of coordinates in the inertial Y direction (m)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['WindVziList'], 'WindVziList', '- List of coordinates in the inertial Z direction (m)\n')) + f.write('================== Parameters for Steady Wind Conditions [used only for WindType = 1] =========================\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['HWindSpeed'], 'HWindSpeed', '- Horizontal windspeed (m/s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['RefHt'], 'RefHtT1', '- Reference height for horizontal wind speed (m)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['PLexp'], 'PLexp', '- Power law exponent (-)\n')) + f.write('================== Parameters for Uniform wind file [used only for WindType = 2] ============================\n') + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['InflowWind']['Filename']+'"', 'FilenameT2', '- Filename of time series data for uniform wind field. (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['RefHt'], 'RefHtT2', '- Reference height for horizontal wind speed (m)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['RefLength'], 'RefLength', '- Reference length for linear horizontal and vertical sheer (-)\n')) + f.write('================== Parameters for Binary TurbSim Full-Field files [used only for WindType = 3] ==============\n') + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['InflowWind']['Filename']+'"', 'FilenameT3', '- Name of the Full field wind file to use (.bts)\n')) + f.write('================== Parameters for Binary Bladed-style Full-Field files [used only for WindType = 4] =========\n') + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['InflowWind']['FilenameRoot']+'"', 'FilenameT4', '- Rootname of the full-field wind file to use (.wnd, .sum)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['TowerFile'], 'TowerFile', '- Have tower file (.twr) (flag)\n')) + f.write('================== Parameters for HAWC-format binary files [Only used with WindType = 5] =====================\n') + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['InflowWind']['FileName_u']+'"', 'FileName_u', '- name of the file containing the u-component fluctuating wind (.bin)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['InflowWind']['FileName_v']+'"', 'FileName_v', '- name of the file containing the v-component fluctuating wind (.bin)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['InflowWind']['FileName_w']+'"', 'FileName_w', '- name of the file containing the w-component fluctuating wind (.bin)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['nx'], 'nx', '- number of grids in the x direction (in the 3 files above) (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['ny'], 'ny', '- number of grids in the y direction (in the 3 files above) (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['nz'], 'nz', '- number of grids in the z direction (in the 3 files above) (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['dx'], 'dx', '- distance (in meters) between points in the x direction (m)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['dy'], 'dy', '- distance (in meters) between points in the y direction (m)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['dz'], 'dz', '- distance (in meters) between points in the z direction (m)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['RefHt'], 'RefHtT5', '- reference height; the height (in meters) of the vertical center of the grid (m)\n')) + f.write('------------- Scaling parameters for turbulence ---------------------------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['ScaleMethod'], 'ScaleMethod', '- Turbulence scaling method [0 = none, 1 = direct scaling, 2 = calculate scaling factor based on a desired standard deviation]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['SFx'], 'SFx', '- Turbulence scaling factor for the x direction (-) [ScaleMethod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['SFy'], 'SFy', '- Turbulence scaling factor for the y direction (-) [ScaleMethod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['SFz'], 'SFz', '- Turbulence scaling factor for the z direction (-) [ScaleMethod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['SigmaFx'], 'SigmaFx', '- Turbulence standard deviation to calculate scaling from in x direction (m/s) [ScaleMethod=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['SigmaFy'], 'SigmaFy', '- Turbulence standard deviation to calculate scaling from in y direction (m/s) [ScaleMethod=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['SigmaFz'], 'SigmaFz', '- Turbulence standard deviation to calculate scaling from in z direction (m/s) [ScaleMethod=2]\n')) + f.write('------------- Mean wind profile parameters (added to HAWC-format files) ---------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['URef'], 'URef', '- Mean u-component wind speed at the reference height (m/s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['WindProfile'], 'WindProfile', '- Wind profile type (0=constant;1=logarithmic,2=power law)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['PLExp'], 'PLExp', '- Power law exponent (-) (used for PL wind profile type only)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['Z0'], 'Z0', '- Surface roughness length (m) (used for LG wind profile type only)\n')) + f.write('====================== OUTPUT ==================================================\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['InflowWind']['SumPrint'], 'SumPrint', '- Print summary data to .IfW.sum (flag)\n')) + f.write('OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)\n') + + outlist = self.get_outlist(self.fst_vt['outlist'], ['InflowWind']) + for channel_list in outlist: + for i in range(len(channel_list)): + f.write('"' + channel_list[i] + '"\n') + + f.write('END of input file (the word "END" must appear in the first 3 columns of this last OutList line)\n') + f.write('---------------------------------------------------------------------------------------\n') + + f.close() + + # def WndWindWriter(self, wndfile): + + # wind_file = os.path.join(self.FAST_runDirectory,wndfile) + # f = open(wind_file, 'w') + + # for i in range(self.fst_vt['wnd_wind']['TimeSteps']): + # f.write('{: 2.15e}\t{: 2.15e}\t{: 2.15e}\t{: 2.15e}\t{: 2.15e}\t{: 2.15e}\t{: 2.15e}\t{: 2.15e}\n'.format(\ + # self.fst_vt['wnd_wind']['Time'][i], self.fst_vt['wnd_wind']['HorSpd'][i], self.fst_vt['wnd_wind']['WindDir'][i],\ + # self.fst_vt['wnd_wind']['VerSpd'][i], self.fst_vt['wnd_wind']['HorShr'][i],\ + # self.fst_vt['wnd_wind']['VerShr'][i], self.fst_vt['wnd_wind']['LnVShr'][i], self.fst_vt['wnd_wind']['GstSpd'][i])) + + # f.close() + + + def write_AeroDyn14(self): + + # ======= Airfoil Files ======== + # make directory for airfoil files + if not os.path.isdir(os.path.join(self.FAST_runDirectory,'AeroData')): + try: + os.mkdir(os.path.join(self.FAST_runDirectory,'AeroData')) + except: + try: + time.sleep(random.random()) + if not os.path.isdir(os.path.join(self.FAST_runDirectory,'AeroData')): + os.mkdir(os.path.join(self.FAST_runDirectory,'AeroData')) + except: + print("Error tring to make '%s'!"%os.path.join(self.FAST_runDirectory,'AeroData')) + + # create write airfoil objects to files + for i in range(self.fst_vt['AeroDyn14']['NumFoil']): + af_name = os.path.join(self.FAST_runDirectory, 'AeroData', 'Airfoil' + str(i) + '.dat') + self.fst_vt['AeroDyn14']['FoilNm'][i] = os.path.join('AeroData', 'Airfoil' + str(i) + '.dat') + self.write_AeroDyn14Polar(af_name, i) + + self.fst_vt['Fst']['AeroFile'] = self.FAST_namingOut + '_AeroDyn14.dat' + ad_file = os.path.join(self.FAST_runDirectory,self.fst_vt['Fst']['AeroFile']) + f = open(ad_file,'w') + + # create Aerodyn Tower + self.write_AeroDyn14Tower() + + # ======= Aerodyn Input File ======== + f.write('AeroDyn v14.04.* INPUT FILE\n\n') + + # f.write('{:}\n'.format(self.fst_vt['aerodyn']['SysUnits'])) + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['StallMod'])) + + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['UseCm'])) + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['InfModel'])) + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['IndModel'])) + f.write('{: 2.15e}\n'.format(self.fst_vt['AeroDyn14']['AToler'])) + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['TLModel'])) + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['HLModel'])) + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['TwrShad'])) + + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['TwrPotent'])) + + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['TwrShadow'])) + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['TwrFile'])) + f.write('{:}\n'.format(self.fst_vt['AeroDyn14']['CalcTwrAero'])) + + f.write('{: 2.15e}\n'.format(self.fst_vt['AeroDyn14']['AirDens'])) + + f.write('{: 2.15e}\n'.format(self.fst_vt['AeroDyn14']['KinVisc'])) + + f.write('{:2}\n'.format(self.fst_vt['AeroDyn14']['DTAero'])) + + + f.write('{:2}\n'.format(self.fst_vt['AeroDynBlade']['NumFoil'])) + for i in range (self.fst_vt['AeroDynBlade']['NumFoil']): + f.write('"{:}"\n'.format(self.fst_vt['AeroDynBlade']['FoilNm'][i])) + + f.write('{:2}\n'.format(self.fst_vt['AeroDynBlade']['BldNodes'])) + rnodes = self.fst_vt['AeroDynBlade']['RNodes'] + twist = self.fst_vt['AeroDynBlade']['AeroTwst'] + drnodes = self.fst_vt['AeroDynBlade']['DRNodes'] + chord = self.fst_vt['AeroDynBlade']['Chord'] + nfoil = self.fst_vt['AeroDynBlade']['NFoil'] + prnelm = self.fst_vt['AeroDynBlade']['PrnElm'] + f.write('Nodal properties\n') + for r, t, dr, c, a, p in zip(rnodes, twist, drnodes, chord, nfoil, prnelm): + f.write('{: 2.15e}\t{: 2.15e}\t{: 2.15e}\t{: 2.15e}\t{:5}\t{:}\n'.format(r, t, dr, c, a, p)) + + f.close() + + def write_AeroDyn14Tower(self): + # AeroDyn v14.04 Tower + self.fst_vt['AeroDyn14']['TwrFile'] = self.FAST_namingOut + '_AeroDyn14_tower.dat' + filename = os.path.join(self.FAST_runDirectory, self.fst_vt['AeroDyn14']['TwrFile']) + f = open(filename, 'w') + + f.write('AeroDyn tower file, Aerodyn v14.04 formatting\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDynTower']['NTwrHt'], 'NTwrHt', '- Number of tower input height stations listed (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDynTower']['NTwrRe'], 'NTwrRe', '- Number of tower Re values (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDynTower']['NTwrCD'], 'NTwrCD', '- Number of tower CD columns (-) Note: For current versions, this MUST be 1\n')) + f.write('{: 2.15e} {:<11} {:}'.format(self.fst_vt['AeroDynTower']['Tower_Wake_Constant'], 'Tower_Wake_Constant', '- Tower wake constant (-) {0.0: full potential flow, 0.1: Bak model}\n')) + f.write('---------------------- DISTRIBUTED TOWER PROPERTIES ----------------------------\n') + f.write('TwrHtFr TwrWid NTwrCDCol\n') + for HtFr, Wid, CDId in zip(self.fst_vt['AeroDynTower']['TwrHtFr'], self.fst_vt['AeroDynTower']['TwrWid'], self.fst_vt['AeroDynTower']['NTwrCDCol']): + f.write('{: 2.15e} {: 2.15e} {:d}\n'.format(HtFr, Wid, int(CDId))) + f.write('---------------------- Re v CD PROPERTIES --------------------------------------\n') + f.write('TwrRe '+ ' '.join(['TwrCD%d'%(i+1) for i in range(self.fst_vt['AeroDynTower']['NTwrCD'])]) +'\n') + for Re, CD in zip(self.fst_vt['AeroDynTower']['TwrRe'], self.fst_vt['AeroDynTower']['TwrCD']): + f.write('% 2.15e' %Re + ' '.join(['% 2.15e'%cdi for cdi in CD]) + '\n') + + f.close() + + def write_AeroDyn15(self): + # AeroDyn v15.03 + + # Generate AeroDyn v15 blade input file + self.write_AeroDyn15Blade() + + # Generate AeroDyn v15 polars + self.write_AeroDyn15Polar() + + # Generate AeroDyn v15 airfoil coordinates + if self.fst_vt['AeroDyn15']['af_data'][1][0]['NumCoords'] != 0: + self.write_AeroDyn15Coord() + + # Generate AeroDyn v15.03 input file + self.fst_vt['Fst']['AeroFile'] = self.FAST_namingOut + '_AeroDyn15.dat' + ad_file = os.path.join(self.FAST_runDirectory, self.fst_vt['Fst']['AeroFile']) + f = open(ad_file, 'w') + + f.write('------- AERODYN v15.03.* INPUT FILE ------------------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('====== General Options ============================================================================\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['Echo'], 'Echo', '- Echo the input to ".AD.ech"? (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['DTAero'], 'DTAero', '- Time interval for aerodynamic calculations {or "default"} (s)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['WakeMod'], 'WakeMod', '- Type of wake/induction model (switch) {0=none, 1=BEMT}\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['AFAeroMod'], 'AFAeroMod', '- Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model} [must be 1 when linearizing]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['TwrPotent'], 'TwrPotent', '- Type tower influence on wind based on potential flow around the tower (switch) {0=none, 1=baseline potential flow, 2=potential flow with Bak correction}\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['TwrShadow'], 'TwrShadow', '- Calculate tower influence on wind based on downstream tower shadow? (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['TwrAero'], 'TwrAero', '- Calculate tower aerodynamic loads? (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['FrozenWake'], 'FrozenWake', '- Assume frozen wake during linearization? (flag) [used only when WakeMod=1 and when linearizing]\n')) + if self.FAST_ver.lower() != 'fast8': + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['CavitCheck'], 'CavitCheck', '- Perform cavitation check? (flag) TRUE will turn off unsteady aerodynamics\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['CompAA'], 'CompAA', 'Flag to compute AeroAcoustics calculation [only used when WakeMod=1 or 2]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['AA_InputFile'], 'AA_InputFile', '- Aeroacoustics input file\n')) + + f.write('====== Environmental Conditions ===================================================================\n') + f.write('{: 2.15e} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['AirDens'], 'AirDens', '- Air density (kg/m^3)\n')) + f.write('{: 2.15e} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['KinVisc'], 'KinVisc', '- Kinematic air viscosity (m^2/s)\n')) + f.write('{: 2.15e} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['SpdSound'], 'SpdSound', '- Speed of sound (m/s)\n')) + if self.FAST_ver.lower() != 'fast8': + f.write('{: 2.15e} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['Patm'], 'Patm', '- Atmospheric pressure (Pa) [used only when CavitCheck=True]\n')) + f.write('{: 2.15e} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['Pvap'], 'Pvap', '- Vapour pressure of fluid (Pa) [used only when CavitCheck=True]\n')) + f.write('{: 2.15e} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['FluidDepth'], 'FluidDepth', '- Water depth above mid-hub height (m) [used only when CavitCheck=True]\n')) + f.write('====== Blade-Element/Momentum Theory Options ====================================================== [used only when WakeMod=1]\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['SkewMod'], 'SkewMod', '- Type of skewed-wake correction model (switch) {1=uncoupled, 2=Pitt/Peters, 3=coupled} [used only when WakeMod=1]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['SkewModFactor'], 'SkewModFactor', '- Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when SkewMod=2; unused when WakeMod=0]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['TipLoss'], 'TipLoss', '- Use the Prandtl tip-loss model? (flag) [used only when WakeMod=1]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['HubLoss'], 'HubLoss', '- Use the Prandtl hub-loss model? (flag) [used only when WakeMod=1]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['TanInd'], 'TanInd', '- Include tangential induction in BEMT calculations? (flag) [used only when WakeMod=1]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['AIDrag'], 'AIDrag', '- Include the drag term in the axial-induction calculation? (flag) [used only when WakeMod=1]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['TIDrag'], 'TIDrag', '- Include the drag term in the tangential-induction calculation? (flag) [used only when WakeMod=1 and TanInd=TRUE]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['IndToler'], 'IndToler', '- Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [used only when WakeMod=1]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['MaxIter'], 'MaxIter', '- Maximum number of iteration steps (-) [used only when WakeMod=1]\n')) + f.write('====== Dynamic Blade-Element/Momentum Theory Options ====================================================== [used only when WakeMod=1]\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['DBEMT_Mod'], 'DBEMT_Mod', '- Type of dynamic BEMT (DBEMT) model {1=constant tau1, 2=time-dependent tau1} (-) [used only when WakeMod=2]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['tau1_const'], 'tau1_const', '- Time constant for DBEMT (s) [used only when WakeMod=2 and DBEMT_Mod=1]\n')) + f.write('====== OLAF -- cOnvecting LAgrangian Filaments (Free Vortex Wake) Theory Options ================== [used only when WakeMod=3]\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['OLAFInputFileName'], 'OLAFInputFileName', '- Input file for OLAF [used only when WakeMod=3]\n')) + f.write('====== Beddoes-Leishman Unsteady Airfoil Aerodynamics Options ===================================== [used only when AFAeroMod=2]\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['UAMod'], 'UAMod', "Unsteady Aero Model Switch (switch) {1=Baseline model (Original), 2=Gonzalez's variant (changes in Cn,Cc,Cm), 3=Minemma/Pierce variant (changes in Cc and Cm)} [used only when AFAeroMod=2]\n")) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['FLookup'], 'FLookup', "Flag to indicate whether a lookup for f' will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when AFAeroMod=2]\n")) + f.write('====== Airfoil Information =========================================================================\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['AFTabMod'], 'AFTabMod', '- Interpolation method for multiple airfoil tables {1=1D interpolation on AoA (first table only); 2=2D interpolation on AoA and Re; 3=2D interpolation on AoA and UserProp} (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['InCol_Alfa'], 'InCol_Alfa', '- The column in the airfoil tables that contains the angle of attack (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['InCol_Cl'], 'InCol_Cl', '- The column in the airfoil tables that contains the lift coefficient (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['InCol_Cd'], 'InCol_Cd', '- The column in the airfoil tables that contains the drag coefficient (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['InCol_Cm'], 'InCol_Cm', '- The column in the airfoil tables that contains the pitching-moment coefficient; use zero if there is no Cm column (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['InCol_Cpmin'], 'InCol_Cpmin', '- The column in the airfoil tables that contains the Cpmin coefficient; use zero if there is no Cpmin column (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['NumAFfiles'], 'NumAFfiles', '- Number of airfoil files used (-)\n')) + for i in range(self.fst_vt['AeroDyn15']['NumAFfiles']): + if i == 0: + f.write('"' + self.fst_vt['AeroDyn15']['AFNames'][i] + '" AFNames - Airfoil file names (NumAFfiles lines) (quoted strings)\n') + else: + f.write('"' + self.fst_vt['AeroDyn15']['AFNames'][i] + '"\n') + f.write('====== Rotor/Blade Properties =====================================================================\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['UseBlCm'], 'UseBlCm', '- Include aerodynamic pitching moment in calculations? (flag)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['AeroDyn15']['ADBlFile1']+'"', 'ADBlFile(1)', '- Name of file containing distributed aerodynamic properties for Blade #1 (-)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['AeroDyn15']['ADBlFile2']+'"', 'ADBlFile(2)', '- Name of file containing distributed aerodynamic properties for Blade #2 (-) [unused if NumBl < 2]\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['AeroDyn15']['ADBlFile3']+'"', 'ADBlFile(3)', '- Name of file containing distributed aerodynamic properties for Blade #3 (-) [unused if NumBl < 3]\n')) + f.write('====== Tower Influence and Aerodynamics ============================================================= [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True]\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['NumTwrNds'], 'NumTwrNds', '- Number of tower nodes used in the analysis (-) [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True]\n')) + f.write('TwrElev TwrDiam TwrCd\n') + f.write('(m) (m) (-)\n') + for TwrElev, TwrDiam, TwrCd in zip(self.fst_vt['AeroDyn15']['TwrElev'], self.fst_vt['AeroDyn15']['TwrDiam'], self.fst_vt['AeroDyn15']['TwrCd']): + f.write('{: 2.15e} {: 2.15e} {: 2.15e} \n'.format(TwrElev, TwrDiam, TwrCd)) + f.write('====== Tower Influence and Aerodynamics ============================================================= [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True]\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['SumPrint'], 'SumPrint', '- Generate a summary file listing input options and interpolated properties to ".AD.sum"? (flag)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['NBlOuts'], 'NBlOuts', '- Number of blade node outputs [0 - 9] (-)\n')) + f.write('{:<22} {:<11} {:}'.format(', '.join(self.fst_vt['AeroDyn15']['BlOutNd']), 'BlOutNd', '- Blade nodes whose values will be output (-)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['NTwOuts'], 'NTwOuts', '- Number of tower node outputs [0 - 9] (-)\n')) + f.write('{:<22} {:<11} {:}'.format(', '.join(self.fst_vt['AeroDyn15']['TwOutNd']), 'TwOutNd', '- Tower nodes whose values will be output (-)\n')) + f.write(' OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)\n') + + outlist = self.get_outlist(self.fst_vt['outlist'], ['AeroDyn']) + for channel_list in outlist: + for i in range(len(channel_list)): + f.write('"' + channel_list[i] + '"\n') + f.write('END of input file (the word "END" must appear in the first 3 columns of this last OutList line)\n') + f.write('---------------------------------------------------------------------------------------\n') + f.close() + + def write_AeroDyn15Blade(self): + # AeroDyn v15.00 Blade + self.fst_vt['AeroDyn15']['ADBlFile1'] = self.FAST_namingOut + '_AeroDyn15_blade.dat' + self.fst_vt['AeroDyn15']['ADBlFile2'] = self.fst_vt['AeroDyn15']['ADBlFile1'] + self.fst_vt['AeroDyn15']['ADBlFile3'] = self.fst_vt['AeroDyn15']['ADBlFile1'] + filename = os.path.join(self.FAST_runDirectory, self.fst_vt['AeroDyn15']['ADBlFile1']) + f = open(filename, 'w') + + f.write('------- AERODYN v15.00.* BLADE DEFINITION INPUT FILE -------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('====== Blade Properties =================================================================\n') + f.write('{:<11d} {:<11} {:}'.format(self.fst_vt['AeroDynBlade']['NumBlNds'], 'NumBlNds', '- Number of blade nodes used in the analysis (-)\n')) + f.write(' BlSpn BlCrvAC BlSwpAC BlCrvAng BlTwist BlChord BlAFID\n') + f.write(' (m) (m) (m) (deg) (deg) (m) (-)\n') + BlSpn = self.fst_vt['AeroDynBlade']['BlSpn'] + BlCrvAC = self.fst_vt['AeroDynBlade']['BlCrvAC'] + BlSwpAC = self.fst_vt['AeroDynBlade']['BlSwpAC'] + BlCrvAng = self.fst_vt['AeroDynBlade']['BlCrvAng'] + BlTwist = self.fst_vt['AeroDynBlade']['BlTwist'] + BlChord = self.fst_vt['AeroDynBlade']['BlChord'] + BlAFID = self.fst_vt['AeroDynBlade']['BlAFID'] + for Spn, CrvAC, SwpAC, CrvAng, Twist, Chord, AFID in zip(BlSpn, BlCrvAC, BlSwpAC, BlCrvAng, BlTwist, BlChord, BlAFID): + f.write('{: 2.15e} {: 2.15e} {: 2.15e} {: 2.15e} {: 2.15e} {: 2.15e} {: 8d}\n'.format(Spn, CrvAC, SwpAC, CrvAng, Twist, Chord, int(AFID))) + + f.close() + + def write_AeroDyn15Polar(self): + # Airfoil Info v1.01 + + if not os.path.isdir(os.path.join(self.FAST_runDirectory,'Airfoils')): + try: + os.mkdir(os.path.join(self.FAST_runDirectory,'Airfoils')) + except: + try: + time.sleep(random.random()) + if not os.path.isdir(os.path.join(self.FAST_runDirectory,'Airfoils')): + os.mkdir(os.path.join(self.FAST_runDirectory,'Airfoils')) + except: + print("Error tring to make '%s'!"%os.path.join(self.FAST_runDirectory,'Airfoils')) + + + self.fst_vt['AeroDyn15']['NumAFfiles'] = len(self.fst_vt['AeroDyn15']['af_data']) + self.fst_vt['AeroDyn15']['AFNames'] = ['']*self.fst_vt['AeroDyn15']['NumAFfiles'] + + for afi in range(int(self.fst_vt['AeroDyn15']['NumAFfiles'])): + + self.fst_vt['AeroDyn15']['AFNames'][afi] = os.path.join('Airfoils', self.FAST_namingOut + '_AeroDyn15_Polar_%02d.dat'%afi) + af_file = os.path.join(self.FAST_runDirectory, self.fst_vt['AeroDyn15']['AFNames'][afi]) + f = open(af_file, 'w') + + f.write('! ------------ AirfoilInfo v1.01.x Input File ----------------------------------\n') + f.write('! AeroElasticSE FAST driver\n') + f.write('! line\n') + f.write('! line\n') + f.write('! ------------------------------------------------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][0]['InterpOrd'], 'InterpOrd', '! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][0]['NonDimArea'], 'NonDimArea', '! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded)\n')) + if self.fst_vt['AeroDyn15']['af_data'][1][0]['NumCoords'] != 0: + f.write('@"{:}_AF{:02d}_Coords.txt" {:<11} {:}'.format(self.FAST_namingOut, afi, 'NumCoords', '! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included.\n')) + else: + f.write('{:<22d} {:<11} {:}'.format(0, 'NumCoords', '! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included.\n')) + f.write('AF{:02d}_BL.txt {:<11} {:}'.format(afi, 'BL_file', '! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called.\n')) + # f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][0]['NumTabs'], 'NumTabs', '! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl.\n')) + + + # check if airfoils with multiple flaps exists. + # if yes, allocate the number of airfoils to the respective radial stations + if self.fst_vt['AeroDyn15']['af_data'][afi][0]['NumTabs'] > 1: + # for tab_orig in range(self.fst_vt['AeroDyn15']['af_data'][afi][0]['NumTabs'] - 1): + if self.fst_vt['AeroDyn15']['af_data'][afi][0]['Ctrl'] == self.fst_vt['AeroDyn15']['af_data'][afi][1]['Ctrl']: + num_tab = 1 # assume that all Ctrl angles of the flaps are identical if the first two are -> no flaps! + else: + num_tab = self.fst_vt['AeroDyn15']['af_data'][afi][0]['NumTabs'] + else: + num_tab = 1 + # f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][0]['NumTabs'], 'NumTabs','! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl.\n')) + f.write('{:<22d} {:<11} {:}'.format(num_tab, 'NumTabs','! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl.\n')) + + # for tab in range(self.fst_vt['AeroDyn15']['af_data'][afi][0]['NumTabs']): # For writting multiple tables (different Re or Ctrl values) + for tab in range(num_tab): # For writting multiple tables (different Re or Ctrl values) + f.write('! ------------------------------------------------------------------------------\n') + f.write("! data for table %i \n" % (tab + 1)) + f.write('! ------------------------------------------------------------------------------\n') + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Re'], 'Re', '! Reynolds number in millions\n')) + f.write('{:<22d} {:<11} {:}'.format(int(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Ctrl']), 'Ctrl', '! Control setting (must be 0 for current AirfoilInfo)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['InclUAdata'], 'InclUAdata', '! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line\n')) + f.write('!........................................\n') + if self.fst_vt['AeroDyn15']['af_data'][afi][tab]['InclUAdata']: + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['alpha0'], 'alpha0', '! 0-lift angle of attack, depends on airfoil.\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['alpha1'], 'alpha1', '! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg)\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['alpha2'], 'alpha2', '! Angle of attack at f=0.7, (approximately the stall angle) for AOA1]\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['S2'], 'S2', '! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1]\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['S3'], 'S3', '! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1]\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['S4'], 'S4', '! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1]\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Cn1'], 'Cn1', '! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers.\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Cn2'], 'Cn2', '! As Cn1 for negative AOAs.\n')) + # f.write('{: 22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi]['St_sh'], 'St_sh', "! Strouhal's shedding frequency constant. [default = 0.19]\n")) + f.write(float_default_out(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['St_sh']) + ' {:<11} {:}'.format('St_sh', "! Strouhal's shedding frequency constant. [default = 0.19]\n")) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Cd0'], 'Cd0', '! 2D drag coefficient value at 0-lift.\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Cm0'], 'Cm0', '! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0]\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['k0'], 'k0', '! Constant in the \\hat(x)_cp curve best-fit; = (\\hat(x)_AC-0.25). [ignored if UAMod<>1]\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['k1'], 'k1', '! Constant in the \\hat(x)_cp curve best-fit. [ignored if UAMod<>1]\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['k2'], 'k2', '! Constant in the \\hat(x)_cp curve best-fit. [ignored if UAMod<>1]\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['k3'], 'k3', '! Constant in the \\hat(x)_cp curve best-fit. [ignored if UAMod<>1]\n')) + f.write('{:<22f} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['k1_hat'], 'k1_hat', '! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1]\n')) + f.write(float_default_out(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['x_cp_bar']) + ' {:<11} {:}'.format('x_cp_bar', '! Constant in the expression of \\hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2]\n')) + f.write(float_default_out(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['UACutout']) + ' {:<11} {:}'.format('UACutout', '! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees]\n')) + f.write(float_default_out(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['filtCutOff']) + ' {:<11} {:}'.format('filtCutOff', '! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20]\n')) + + f.write('!........................................\n') + f.write('! Table of aerodynamics coefficients\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['NumAlf'], 'NumAlf', '! Number of data lines in the following table\n')) + f.write('! Alpha Cl Cd Cm\n') + f.write('! (deg) (-) (-) (-)\n') + + polar_map = [self.fst_vt['AeroDyn15']['InCol_Alfa'], self.fst_vt['AeroDyn15']['InCol_Cl'], self.fst_vt['AeroDyn15']['InCol_Cd'], self.fst_vt['AeroDyn15']['InCol_Cm'], self.fst_vt['AeroDyn15']['InCol_Cpmin']] + polar_map.remove(0) + polar_map = [i-1 for i in polar_map] + + alpha = np.asarray(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Alpha']) + cl = np.asarray(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Cl']) + cd = np.asarray(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Cd']) + cm = np.asarray(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Cm']) + cpmin = np.asarray(self.fst_vt['AeroDyn15']['af_data'][afi][tab]['Cpmin']) + + if alpha[0] != -180.: + print('Airfoil number ' + str(afi) + ' tab number ' + str(tab) + ' has the min angle of attack different than -180 deg, and equal to ' + str(alpha[0]) + ' deg. This is changed to -180 deg now.') + alpha[0] = -180. + if alpha[-1] != 180.: + print('Airfoil number ' + str(afi) + ' tab number ' + str(tab) + ' has the max angle of attack different than 180 deg, and equal to ' + str(alpha[0]) + ' deg. This is changed to 180 deg now.') + alpha[-1] = 180. + if cl[0] != cl[-1]: + print('Airfoil number ' + str(afi) + ' tab number ' + str(tab) + ' has the lift coefficient different between +-180 deg. This is changed to be the same now.') + cl[0] = cl[-1] + if cd[0] != cd[-1]: + print('Airfoil number ' + str(afi) + ' tab number ' + str(tab) + ' has the drag coefficient different between +-180 deg. This is changed to be the same now.') + cd[0] = cd[-1] + if cm[0] != cm[-1]: + print('Airfoil number ' + str(afi) + ' tab number ' + str(tab) + ' has the moment coefficient different between +-180 deg. This is changed to be the same now.') + cm[0] = cm[-1] + + + polar = np.column_stack((alpha, cl, cd, cm, cpmin)) + polar = polar[:,polar_map] + + + for row in polar: + f.write(' '.join(['{: 2.14e}'.format(val) for val in row])+'\n') + + f.close() + + def write_AeroDyn15Coord(self): + + self.fst_vt['AeroDyn15']['AFNames_coord'] = ['']*self.fst_vt['AeroDyn15']['NumAFfiles'] + + for afi in range(int(self.fst_vt['AeroDyn15']['NumAFfiles'])): + self.fst_vt['AeroDyn15']['AFNames_coord'][afi] = os.path.join('Airfoils', self.FAST_namingOut + '_AF%02d_Coords.txt'%afi) + + x = self.fst_vt['AeroDyn15']['af_coord'][afi]['x'] + y = self.fst_vt['AeroDyn15']['af_coord'][afi]['y'] + coord = np.vstack((x, y)).T + + af_file = os.path.join(self.FAST_runDirectory, self.fst_vt['AeroDyn15']['AFNames_coord'][afi]) + f = open(af_file, 'w') + + f.write('{: 22d} {:<11} {:}'.format(len(x)+1, 'NumCoords', '! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included.\n')) + f.write('! ......... x-y coordinates are next if NumCoords > 0 .............\n') + f.write('! x-y coordinate of airfoil reference\n') + f.write('! x/c y/c\n') + f.write('{: 5f} 0\n'.format(self.fst_vt['AeroDyn15']['rthick'][afi])) + f.write('! coordinates of airfoil shape\n') + f.write('! interpolation to 200 points\n') + f.write('! x/c y/c\n') + for row in coord: + f.write(' '.join(['{: 2.14e}'.format(val) for val in row])+'\n') + f.close() + + + def write_ServoDyn(self): + # ServoDyn v1.05 Input File + + self.fst_vt['Fst']['ServoFile'] = self.FAST_namingOut + '_ServoDyn.dat' + sd_file = os.path.join(self.FAST_runDirectory,self.fst_vt['Fst']['ServoFile']) + f = open(sd_file,'w') + + f.write('------- SERVODYN v1.05.* INPUT FILE --------------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('---------------------- SIMULATION CONTROL --------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['Echo'], 'Echo', '- Echo input data to .ech (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['DT'], 'DT', '- Communication interval for controllers (s) (or "default")\n')) + f.write('---------------------- PITCH CONTROL -------------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['PCMode'], 'PCMode', '- Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TPCOn'], 'TPCOn', '- Time to enable active pitch control (s) [unused when PCMode=0]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TPitManS1'], 'TPitManS(1)', '- Time to start override pitch maneuver for blade 1 and end standard pitch control (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TPitManS2'], 'TPitManS(2)', '- Time to start override pitch maneuver for blade 2 and end standard pitch control (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TPitManS3'], 'TPitManS(3)', '- Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['PitManRat1'], 'PitManRat(1)', '- Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['PitManRat2'], 'PitManRat(2)', '- Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['PitManRat3'], 'PitManRat(3)', '- Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['BlPitchF1'], 'BlPitchF(1)', '- Blade 1 final pitch for pitch maneuvers (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['BlPitchF2'], 'BlPitchF(2)', '- Blade 2 final pitch for pitch maneuvers (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['BlPitchF3'], 'BlPitchF(3)', '- Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades]\n')) + f.write('---------------------- GENERATOR AND TORQUE CONTROL ----------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['VSContrl'], 'VSContrl', '- Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['GenModel'], 'GenModel', '- Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['GenEff'], 'GenEff', '- Generator efficiency [ignored by the Thevenin and user-defined generator models] (%)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['GenTiStr'], 'GenTiStr', '- Method to start the generator {T: timed using TimGenOn, F: generator speed using SpdGenOn} (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['GenTiStp'], 'GenTiStp', '- Method to stop the generator {T: timed using TimGenOf, F: when generator power = 0} (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['SpdGenOn'], 'SpdGenOn', '- Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TimGenOn'], 'TimGenOn', '- Time to turn on the generator for a startup (s) [used only when GenTiStr=True]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TimGenOf'], 'TimGenOf', '- Time to turn off the generator (s) [used only when GenTiStp=True]\n')) + f.write('---------------------- SIMPLE VARIABLE-SPEED TORQUE CONTROL --------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['VS_RtGnSp'], 'VS_RtGnSp', '- Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['VS_RtTq'], 'VS_RtTq', '- Rated generator torque/constant generator torque in Region 3 for simple variable-speed generator control (HSS side) (N-m) [used only when VSContrl=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['VS_Rgn2K'], 'VS_Rgn2K', '- Generator torque constant in Region 2 for simple variable-speed generator control (HSS side) (N-m/rpm^2) [used only when VSContrl=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['VS_SlPc'], 'VS_SlPc', '- Rated generator slip percentage in Region 2 1/2 for simple variable-speed generator control (%) [used only when VSContrl=1]\n')) + f.write('---------------------- SIMPLE INDUCTION GENERATOR ------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['SIG_SlPc'], 'SIG_SlPc', '- Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['SIG_SySp'], 'SIG_SySp', '- Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['SIG_RtTq'], 'SIG_RtTq', '- Rated torque (N-m) [used only when VSContrl=0 and GenModel=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['SIG_PORt'], 'SIG_PORt', '- Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1]\n')) + f.write('---------------------- THEVENIN-EQUIVALENT INDUCTION GENERATOR -----------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TEC_Freq'], 'TEC_Freq', '- Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TEC_NPol'], 'TEC_NPol', '- Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TEC_SRes'], 'TEC_SRes', '- Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TEC_RRes'], 'TEC_RRes', '- Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TEC_VLL'], 'TEC_VLL', '- Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TEC_SLR'], 'TEC_SLR', '- Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TEC_RLR'], 'TEC_RLR', '- Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TEC_MR'], 'TEC_MR', '- Magnetizing reactance (ohms) [used only when VSContrl=0 and GenModel=2]\n')) + f.write('---------------------- HIGH-SPEED SHAFT BRAKE ----------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['HSSBrMode'], 'HSSBrMode', '- HSS brake model {0: none, 1: simple, 3: user-defined from routine UserHSSBr, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['THSSBrDp'], 'THSSBrDp', '- Time to initiate deployment of the HSS brake (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['HSSBrDT'], 'HSSBrDT', '- Time for HSS-brake to reach full deployment once initiated (sec) [used only when HSSBrMode=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['HSSBrTqF'], 'HSSBrTqF', '- Fully deployed HSS-brake torque (N-m)\n')) + f.write('---------------------- NACELLE-YAW CONTROL -------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['YCMode'], 'YCMode', '- Yaw control mode {0: none, 3: user-defined from routine UserYawCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TYCOn'], 'TYCOn', '- Time to enable active yaw control (s) [unused when YCMode=0]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['YawNeut'], 'YawNeut', '- Neutral yaw position--yaw spring force is zero at this yaw (degrees)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['YawSpr'], 'YawSpr', '- Nacelle-yaw spring constant (N-m/rad)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['YawDamp'], 'YawDamp', '- Nacelle-yaw damping constant (N-m/(rad/s))\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TYawManS'], 'TYawManS', '- Time to start override yaw maneuver and end standard yaw control (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['YawManRat'], 'YawManRat', '- Yaw maneuver rate (in absolute value) (deg/s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['NacYawF'], 'NacYawF', '- Final yaw angle for override yaw maneuvers (degrees)\n')) + f.write('---------------------- TUNED MASS DAMPER ---------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['CompNTMD'], 'CompNTMD', '- Compute nacelle tuned mass damper {true/false} (flag)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ServoDyn']['NTMDfile']+'"', 'NTMDfile', '- Name of the file for nacelle tuned mass damper (quoted string) [unused when CompNTMD is false]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['CompTTMD'], 'CompTTMD', '- Compute tower tuned mass damper {true/false} (flag)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ServoDyn']['TTMDfile']+'"', 'TTMDfile', '- Name of the file for tower tuned mass damper (quoted string) [unused when CompTTMD is false]\n')) + f.write('---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface]\n') + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ServoDyn']['DLL_FileName']+'"', 'DLL_FileName', '- Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ServoDyn']['DLL_InFile']+'"', 'DLL_InFile', '- Name of input file sent to the DLL (-) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ServoDyn']['DLL_ProcName']+'"', 'DLL_ProcName', '- Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['DLL_DT'], 'DLL_DT', '- Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['DLL_Ramp'], 'DLL_Ramp', '- Whether a linear ramp should be used between DLL_DT time steps [introduces time shift when true] (flag) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['BPCutoff'], 'BPCutoff', '- Cuttoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['NacYaw_North'], 'NacYaw_North', '- Reference yaw angle of the nacelle when the upwind end points due North (deg) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['Ptch_Cntrl'], 'Ptch_Cntrl', '- Record 28: Use individual pitch control {0: collective pitch; 1: individual pitch control} (switch) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['Ptch_SetPnt'], 'Ptch_SetPnt', '- Record 5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['Ptch_Min'], 'Ptch_Min', '- Record 6: Minimum pitch angle (deg) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['Ptch_Max'], 'Ptch_Max', '- Record 7: Maximum pitch angle (deg) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['PtchRate_Min'], 'PtchRate_Min', '- Record 8: Minimum pitch rate (most negative value allowed) (deg/s) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['PtchRate_Max'], 'PtchRate_Max', '- Record 9: Maximum pitch rate (deg/s) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['Gain_OM'], 'Gain_OM', '- Record 16: Optimal mode gain (Nm/(rad/s)^2) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['GenSpd_MinOM'], 'GenSpd_MinOM', '- Record 17: Minimum generator speed (rpm) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['GenSpd_MaxOM'], 'GenSpd_MaxOM', '- Record 18: Optimal mode maximum speed (rpm) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['GenSpd_Dem'], 'GenSpd_Dem', '- Record 19: Demanded generator speed above rated (rpm) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['GenTrq_Dem'], 'GenTrq_Dem', '- Record 22: Demanded generator torque above rated (Nm) [used only with Bladed Interface]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['GenPwr_Dem'], 'GenPwr_Dem', '- Record 13: Demanded power (W) [used only with Bladed Interface]\n')) + f.write('---------------------- BLADED INTERFACE TORQUE-SPEED LOOK-UP TABLE -------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['DLL_NumTrq'], 'DLL_NumTrq', '- Record 26: No. of points in torque-speed look-up table {0 = none and use the optimal mode parameters; nonzero = ignore the optimal mode PARAMETERs by setting Record 16 to 0.0} (-) [used only with Bladed Interface]\n')) + f.write('{:<22}\t{:<22}\n'.format("GenSpd_TLU", "GenTrq_TLU")) + f.write('{:<22}\t{:<22}\n'.format("(rpm)", "(Nm)")) + for i in range(self.fst_vt['ServoDyn']['DLL_NumTrq']): + a1 = self.fst_vt['ServoDyn']['GenSpd_TLU'][i] + a2 = self.fst_vt['ServoDyn']['GenTrq_TLU'][i] + f.write('{:<22}\t{:<22}\n'.format(a1, a2)) + f.write('---------------------- OUTPUT --------------------------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['SumPrint'], 'SumPrint', '- Print summary data to .sum (flag) (currently unused)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['OutFile'], 'OutFile', '- Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TabDelim'], 'TabDelim', '- Use tab delimiters in text tabular output file? (flag) (currently unused)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['ServoDyn']['OutFmt']+'"', 'OutFmt', '- Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['TStart'], 'TStart', '- Time to begin tabular output (s) (currently unused)\n')) + f.write(' OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)\n') + + outlist = self.get_outlist(self.fst_vt['outlist'], ['ServoDyn']) + for channel_list in outlist: + for i in range(len(channel_list)): + f.write('"' + channel_list[i] + '"\n') + + f.write('END of input file (the word "END" must appear in the first 3 columns of this last OutList line)\n') + f.write('---------------------------------------------------------------------------------------\n') + + f.close() + + def write_DISCON_in(self): + # Generate Bladed style Interface controller input file, intended for ROSCO https://github.com/NREL/ROSCO_toolbox + + # Fill controller and turbine objects for ROSCO + # - controller + controller = type('', (), {})() + controller.pc_gain_schedule = type('', (), {})() + controller.vs_gain_schedule = type('', (), {})() + controller.LoggingLevel = self.fst_vt['DISCON_in']['LoggingLevel'] + controller.F_LPFType = int(self.fst_vt['DISCON_in']['F_LPFType']) + controller.F_NotchType = int(self.fst_vt['DISCON_in']['F_NotchType']) + controller.IPC_ControlMode = int(self.fst_vt['DISCON_in']['IPC_ControlMode']) + controller.VS_ControlMode = int(self.fst_vt['DISCON_in']['VS_ControlMode']) + controller.PC_ControlMode = int(self.fst_vt['DISCON_in']['PC_ControlMode']) + controller.Y_ControlMode = int(self.fst_vt['DISCON_in']['Y_ControlMode']) + controller.SS_Mode = int(self.fst_vt['DISCON_in']['SS_Mode']) + controller.WE_Mode = int(self.fst_vt['DISCON_in']['WE_Mode']) + controller.PS_Mode = int(self.fst_vt['DISCON_in']['PS_Mode']) + controller.SD_Mode = int(self.fst_vt['DISCON_in']['SD_Mode']) + controller.Fl_Mode = int(self.fst_vt['DISCON_in']['Fl_Mode']) + controller.Flp_Mode = int(self.fst_vt['DISCON_in']['Flp_Mode']) + controller.F_LPFDamping = self.fst_vt['DISCON_in']['F_LPFDamping'] + controller.ss_cornerfreq = self.fst_vt['DISCON_in']['F_SSCornerFreq'] + controller.pitch_op_pc = self.fst_vt['DISCON_in']['PC_GS_angles'] + controller.pc_gain_schedule.Kp = self.fst_vt['DISCON_in']['PC_GS_KP'] + controller.pc_gain_schedule.Ki = self.fst_vt['DISCON_in']['PC_GS_KI'] + controller.Ki_ipc1p = self.fst_vt['DISCON_in']['IPC_KI'] + controller.max_pitch = self.fst_vt['DISCON_in']['PC_MaxPit'] + controller.min_pitch = self.fst_vt['DISCON_in']['PC_MinPit'] + controller.vs_minspd = self.fst_vt['DISCON_in']['VS_MinOMSpd'] + controller.vs_rgn2K = self.fst_vt['DISCON_in']['VS_Rgn2K'] + controller.vs_refspd = self.fst_vt['DISCON_in']['VS_RefSpd'] + controller.vs_gain_schedule.Kp = self.fst_vt['DISCON_in']['VS_KP'] + controller.vs_gain_schedule.Ki = self.fst_vt['DISCON_in']['VS_KI'] + controller.TSR_operational = self.fst_vt['DISCON_in']['VS_TSRopt'] + controller.ss_vsgain = self.fst_vt['DISCON_in']['SS_VSGain'] + controller.ss_pcgain = self.fst_vt['DISCON_in']['SS_PCGain'] + controller.v = self.fst_vt['DISCON_in']['WE_FOPoles_v'] + controller.A = self.fst_vt['DISCON_in']['WE_FOPoles'] + # controller.ps_wind_speeds = self.fst_vt['DISCON_in']['ps_wind_speeds'] + controller.ps_min_bld_pitch = self.fst_vt['DISCON_in']['PS_BldPitchMin'] + controller.sd_maxpit = self.fst_vt['DISCON_in']['SD_MaxPit'] + controller.sd_cornerfreq = self.fst_vt['DISCON_in']['SD_CornerFreq'] + controller.Kp_float = self.fst_vt['DISCON_in']['Fl_Kp'] + controller.Kp_flap = self.fst_vt['DISCON_in']['Flp_Kp'] + controller.Ki_flap = self.fst_vt['DISCON_in']['Flp_Ki'] + controller.flp_angle = self.fst_vt['DISCON_in']['Flp_Angle'] + controller.flp_maxpit = self.fst_vt['DISCON_in']['Flp_MaxPit'] + controller.Ki_ipc1p = self.fst_vt['DISCON_in']['IPC_KI'][0] + + turbine = type('', (), {})() + turbine.Cp = type('', (), {})() + turbine.Ct = type('', (), {})() + turbine.Cq = type('', (), {})() + turbine.rotor_radius = self.fst_vt['DISCON_in']['WE_BladeRadius'] + turbine.v_rated = self.fst_vt['DISCON_in']['v_rated'] + turbine.bld_flapwise_freq = self.fst_vt['DISCON_in']['F_FlpCornerFreq'][0] * 3. + turbine.bld_edgewise_freq = self.fst_vt['DISCON_in']['F_LPFCornerFreq'] * 4. + turbine.twr_freq = self.fst_vt['DISCON_in']['F_NotchCornerFreq'] + turbine.ptfm_freq = self.fst_vt['DISCON_in']['F_FlCornerFreq'][0] + turbine.max_pitch_rate = self.fst_vt['DISCON_in']['PC_MaxRat'] + turbine.min_pitch_rate = self.fst_vt['DISCON_in']['PC_MinRat'] + turbine.max_torque_rate = self.fst_vt['DISCON_in']['VS_MaxRat'] + turbine.rated_rotor_speed = self.fst_vt['DISCON_in']['PC_RefSpd'] / self.fst_vt['DISCON_in']['WE_GearboxRatio'] + turbine.rated_power = self.fst_vt['DISCON_in']['VS_RtPwr'] + turbine.rated_torque = self.fst_vt['DISCON_in']['VS_RtTq'] + turbine.max_torque = self.fst_vt['DISCON_in']['VS_MaxTq'] + turbine.TSR_operational = self.fst_vt['DISCON_in']['VS_TSRopt'] + turbine.rho = self.fst_vt['DISCON_in']['WE_RhoAir'] + turbine.Ng = self.fst_vt['DISCON_in']['WE_GearboxRatio'] + turbine.GenEff = self.fst_vt['ServoDyn']['GenEff'] + turbine.J = self.fst_vt['DISCON_in']['WE_Jtot'] + turbine.Cp = self.fst_vt['DISCON_in']['Cp'] + turbine.Ct = self.fst_vt['DISCON_in']['Ct'] + turbine.Cq = self.fst_vt['DISCON_in']['Cq'] + turbine.Cp_table = self.fst_vt['DISCON_in']['Cp_table'] + turbine.Ct_table = self.fst_vt['DISCON_in']['Ct_table'] + turbine.Cq_table = self.fst_vt['DISCON_in']['Cq_table'] + turbine.pitch_initial_rad = self.fst_vt['DISCON_in']['Cp_pitch_initial_rad'] + turbine.TSR_initial = self.fst_vt['DISCON_in']['Cp_TSR_initial'] + turbine.Cp.pitch_initial_rad = self.fst_vt['DISCON_in']['Cp_pitch_initial_rad'] + turbine.Cp.TSR_initial = self.fst_vt['DISCON_in']['Cp_TSR_initial'] + turbine.Ct.pitch_initial_rad = self.fst_vt['DISCON_in']['Cp_pitch_initial_rad'] + turbine.Ct.TSR_initial = self.fst_vt['DISCON_in']['Cp_TSR_initial'] + turbine.Cq.pitch_initial_rad = self.fst_vt['DISCON_in']['Cp_pitch_initial_rad'] + turbine.Cq.TSR_initial = self.fst_vt['DISCON_in']['Cp_TSR_initial'] + turbine.TurbineName = self.fst_vt['description'] + + # Define DISCON infile paths + self.fst_vt['ServoDyn']['DLL_InFile'] = self.FAST_namingOut + '_DISCON.IN' + discon_in_file = os.path.join(self.FAST_runDirectory, self.fst_vt['ServoDyn']['DLL_InFile']) + self.fst_vt['DISCON_in']['PerfFileName'] = self.FAST_namingOut + '_Cp_Ct_Cq.txt' + + # Write DISCON input files + write_rotor_performance(turbine, txt_filename=os.path.join(self.FAST_runDirectory, self.fst_vt['DISCON_in']['PerfFileName'])) + write_DISCON(turbine,controller,param_file=discon_in_file, txt_filename=self.fst_vt['DISCON_in']['PerfFileName']) + + def write_HydroDyn(self): + + # Generate HydroDyn v2.03 input file + self.fst_vt['Fst']['HydroFile'] = self.FAST_namingOut + '_HydroDyn.dat' + hd_file = os.path.join(self.FAST_runDirectory, self.fst_vt['Fst']['HydroFile']) + f = open(hd_file, 'w') + + f.write('------- HydroDyn v2.03.* Input File --------------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['Echo'], 'Echo', '- Echo the input file data (flag)\n')) + f.write('---------------------- ENVIRONMENTAL CONDITIONS --------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WtrDens'], 'WtrDens', '- Water density (kg/m^3)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WtrDpth'], 'WtrDpth', '- Water depth (meters)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['MSL2SWL'], 'MSL2SWL', '- Offset between still-water level and mean sea level (meters) [positive upward; unused when WaveMod = 6; must be zero if PotMod=1 or 2]\n')) + f.write('---------------------- WAVES ---------------------------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveMod'], 'WaveMod', '- Incident wave kinematics model {0: none=still water, 1: regular (periodic), 1P#: regular with user-specified phase, 2: JONSWAP/Pierson-Moskowitz spectrum (irregular), 3: White noise spectrum (irregular), 4: user-defined spectrum from routine UserWaveSpctrm (irregular), 5: Externally generated wave-elevation time series, 6: Externally generated full wave-kinematics time series [option 6 is invalid for PotMod/=0]} (switch)\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveStMod'], 'WaveStMod', '- Model for stretching incident wave kinematics to instantaneous free surface {0: none=no stretching, 1: vertical stretching, 2: extrapolation stretching, 3: Wheeler stretching} (switch) [unused when WaveMod=0 or when PotMod/=0]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveTMax'], 'WaveTMax', '- Analysis time for incident wave calculations (sec) [unused when WaveMod=0; determines WaveDOmega=2Pi/WaveTMax in the IFFT]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveDT'], 'WaveDT', '- Time step for incident wave calculations (sec) [unused when WaveMod=0; 0.1<=WaveDT<=1.0 recommended; determines WaveOmegaMax=Pi/WaveDT in the IFFT]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveHs'], 'WaveHs', '- Significant wave height of incident waves (meters) [used only when WaveMod=1, 2, or 3]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveTp'], 'WaveTp', '- Peak-spectral period of incident waves (sec) [used only when WaveMod=1 or 2]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WavePkShp'], 'WavePkShp', '- Peak-shape parameter of incident wave spectrum (-) or DEFAULT (string) [used only when WaveMod=2; use 1.0 for Pierson-Moskowitz]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WvLowCOff'], 'WvLowCOff', '- Low cut-off frequency or lower frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WvHiCOff'], 'WvHiCOff', '- High cut-off frequency or upper frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveDir'], 'WaveDir', '- Incident wave propagation heading direction (degrees) [unused when WaveMod=0 or 6]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveDirMod'], 'WaveDirMod', '- Directional spreading function {0: none, 1: COS2S} (-) [only used when WaveMod=2,3, or 4]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveDirSpread'], 'WaveDirSpread', '- Wave direction spreading coefficient ( > 0 ) (-) [only used when WaveMod=2,3, or 4 and WaveDirMod=1]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveNDir'], 'WaveNDir', '- Number of wave directions (-) [only used when WaveMod=2,3, or 4 and WaveDirMod=1; odd number only]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveDirRange'], 'WaveDirRange', '- Range of wave directions (full range: WaveDir +/- 1/2*WaveDirRange) (degrees) [only used when WaveMod=2,3,or 4 and WaveDirMod=1]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveSeed1'], 'WaveSeed(1)', '- First random seed of incident waves [-2147483648 to 2147483647] (-) [unused when WaveMod=0, 5, or 6]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveSeed2'], 'WaveSeed(2)', '- Second random seed of incident waves [-2147483648 to 2147483647] (-) [unused when WaveMod=0, 5, or 6]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WaveNDAmp'], 'WaveNDAmp', '- Flag for normally distributed amplitudes (flag) [only used when WaveMod=2, 3, or 4]\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['HydroDyn']['WvKinFile']+'"', 'WvKinFile', '- Root name of externally generated wave data file(s) (quoted string) [used only when WaveMod=5 or 6]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NWaveElev'], 'NWaveElev', '- Number of points where the incident wave elevations can be computed (-) [maximum of 9 output locations]\n')) + f.write('{:<22} {:<11} {:}'.format(", ".join(self.fst_vt['HydroDyn']['WaveElevxi']), 'WaveElevxi', '- List of xi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0]\n')) + f.write('{:<22} {:<11} {:}'.format(", ".join(self.fst_vt['HydroDyn']['WaveElevyi']), 'WaveElevyi', '- List of yi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0]\n')) + f.write('---------------------- 2ND-ORDER WAVES ----------------------------------------- [unused with WaveMod=0 or 6]\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WvDiffQTF'], 'WvDiffQTF', '- Full difference-frequency 2nd-order wave kinematics (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WvSumQTF'], 'WvSumQTF', '- Full summation-frequency 2nd-order wave kinematics (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WvLowCOffD'], 'WvLowCOffD', '- Low frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WvHiCOffD'], 'WvHiCOffD', '- High frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WvLowCOffS'], 'WvLowCOffS', '- Low frequency cutoff used in the summation-frequencies (rad/s) [Only used with a summation-frequency method]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WvHiCOffS'], 'WvHiCOffS', '- High frequency cutoff used in the summation-frequencies (rad/s) [Only used with a summation-frequency method]\n')) + f.write('---------------------- CURRENT ------------------------------------------------- [unused with WaveMod=6]\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['CurrMod'], 'CurrMod', '- Current profile model {0: none=no current, 1: standard, 2: user-defined from routine UserCurrent} (switch)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['CurrSSV0'], 'CurrSSV0', '- Sub-surface current velocity at still water level (m/s) [used only when CurrMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['CurrSSDir'], 'CurrSSDir', '- Sub-surface current heading direction (degrees) or DEFAULT (string) [used only when CurrMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['CurrNSRef'], 'CurrNSRef', '- Near-surface current reference depth (meters) [used only when CurrMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['CurrNSV0'], 'CurrNSV0', '- Near-surface current velocity at still water level (m/s) [used only when CurrMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['CurrNSDir'], 'CurrNSDir', '- Near-surface current heading direction (degrees) [used only when CurrMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['CurrDIV'], 'CurrDIV', '- Depth-independent current velocity (m/s) [used only when CurrMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['CurrDIDir'], 'CurrDIDir', '- Depth-independent current heading direction (degrees) [used only when CurrMod=1]\n')) + f.write('---------------------- FLOATING PLATFORM --------------------------------------- [unused with WaveMod=6]\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PotMod'], 'PotMod', '- Potential-flow model {0: none=no potential flow, 1: frequency-to-time-domain transforms based on WAMIT output, 2: fluid-impulse theory (FIT)} (switch)\n')) + f.write('{:<22} {:<11} {:}'.format('"'+self.fst_vt['HydroDyn']['PotFile']+'"', 'PotFile', '- Root name of potential-flow model data; WAMIT output files containing the linear, nondimensionalized, hydrostatic restoring matrix (.hst), frequency-dependent hydrodynamic added mass matrix and damping matrix (.1), and frequency- and direction-dependent wave excitation force vector per unit wave amplitude (.3) (quoted string) [MAKE SURE THE FREQUENCIES INHERENT IN THESE WAMIT FILES SPAN THE PHYSICALLY-SIGNIFICANT RANGE OF FREQUENCIES FOR THE GIVEN PLATFORM; THEY MUST CONTAIN THE ZERO- AND INFINITE-FREQUENCY LIMITS!]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['WAMITULEN'], 'WAMITULEN', '- Characteristic body length scale used to redimensionalize WAMIT output (meters) [only used when PotMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PtfmVol0'], 'PtfmVol0', '- Displaced volume of water when the platform is in its undisplaced position (m^3) [only used when PotMod=1; USE THE SAME VALUE COMPUTED BY WAMIT AS OUTPUT IN THE .OUT FILE!]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PtfmCOBxt'], 'PtfmCOBxt', '- The xt offset of the center of buoyancy (COB) from the platform reference point (meters) [only used when PotMod=1]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PtfmCOByt'], 'PtfmCOByt', '- The yt offset of the center of buoyancy (COB) from the platform reference point (meters) [only used when PotMod=1]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['ExctnMod'], 'ExctnMod', '- Wave Excitation model {0: None, 1: DFT, 2: state-space} (switch) [only used when PotMod=1; STATE-SPACE REQUIRES *.ssexctn INPUT FILE]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['RdtnMod'], 'RdtnMod', '- Radiation memory-effect model {0: no memory-effect calculation, 1: convolution, 2: state-space} (switch) [only used when PotMod=1; STATE-SPACE REQUIRES *.ss INPUT FILE]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['RdtnTMax'], 'RdtnTMax', '- Analysis time for wave radiation kernel calculations (sec) [only used when PotMod=1; determines RdtnDOmega=Pi/RdtnTMax in the cosine transform; MAKE SURE THIS IS LONG ENOUGH FOR THE RADIATION IMPULSE RESPONSE FUNCTIONS TO DECAY TO NEAR-ZERO FOR THE GIVEN PLATFORM!]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['RdtnDT'], 'RdtnDT', '- Time step for wave radiation kernel calculations (sec) [only used when PotMod=1; DT<=RdtnDT<=0.1 recommended; determines RdtnOmegaMax=Pi/RdtnDT in the cosine transform]\n')) + f.write('---------------------- 2ND-ORDER FLOATING PLATFORM FORCES ---------------------- [unused with WaveMod=0 or 6, or PotMod=0 or 2]\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['MnDrift'], 'MnDrift', "- Mean-drift 2nd-order forces computed {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero]\n")) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NewmanApp'], 'NewmanApp', "- Mean- and slow-drift 2nd-order forces computed with Newman's approximation {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero. Used only when WaveDirMod=0]\n")) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['DiffQTF'], 'DiffQTF', "- Full difference-frequency 2nd-order forces computed with full QTF {0: None; [10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero]\n")) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['SumQTF'], 'SumQTF', "- Full summation -frequency 2nd-order forces computed with full QTF {0: None; [10, 11, or 12]: WAMIT file to use}\n")) + f.write('---------------------- FLOATING PLATFORM FORCE FLAGS -------------------------- [unused with WaveMod=6]\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PtfmSgF'], 'PtfmSgF', '- Platform horizontal surge translation force (flag) or DEFAULT\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PtfmSwF'], 'PtfmSwF', '- Platform horizontal sway translation force (flag) or DEFAULT\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PtfmHvF'], 'PtfmHvF', '- Platform vertical heave translation force (flag) or DEFAULT\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PtfmRF'], 'PtfmRF', '- Platform roll tilt rotation force (flag) or DEFAULT\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PtfmPF'], 'PtfmPF', '- Platform pitch tilt rotation force (flag) or DEFAULT\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['PtfmYF'], 'PtfmYF', '- Platform yaw rotation force (flag) or DEFAULT\n')) + f.write('---------------------- PLATFORM ADDITIONAL STIFFNESS AND DAMPING --------------\n') + f.write(" ".join(['{:14}'.format(i) for i in self.fst_vt['HydroDyn']['AddF0']])+" AddF0 - Additional preload (N, N-m)\n") + for j in range(6): + try: + ln = " ".join(['{:14}'.format(i) for i in self.fst_vt['HydroDyn']['AddCLin'][j,:]]) + except: + ln = " ".join(['{:14}'.format(i) for i in self.fst_vt['HydroDyn']['AddCLin'][j]]) + if j == 0: + ln = ln + " AddCLin - Additional linear stiffness (N/m, N/rad, N-m/m, N-m/rad)\n" + else: + ln = ln + "\n" + f.write(ln) + for j in range(6): + try: + ln = " ".join(['{:14}'.format(i) for i in self.fst_vt['HydroDyn']['AddBLin'][j,:]]) + except: + ln = " ".join(['{:14}'.format(i) for i in self.fst_vt['HydroDyn']['AddBLin'][j]]) + if j == 0: + ln = ln + " AddBLin - Additional linear damping(N/(m/s), N/(rad/s), N-m/(m/s), N-m/(rad/s))\n" + else: + ln = ln + "\n" + f.write(ln) + for j in range(6): + try: + ln = " ".join(['{:14}'.format(i) for i in self.fst_vt['HydroDyn']['AddBQuad'][j,:]]) + except: + ln = " ".join(['{:14}'.format(i) for i in self.fst_vt['HydroDyn']['AddBQuad'][j]]) + if j == 0: + ln = ln + " AddBQuad - Additional quadratic drag(N/(m/s)^2, N/(rad/s)^2, N-m(m/s)^2, N-m/(rad/s)^2)\n" + else: + ln = ln + "\n" + f.write(ln) + f.write('---------------------- AXIAL COEFFICIENTS --------------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NAxCoef'], 'NAxCoef', '- Number of axial coefficients (-)\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['AxCoefID', 'AxCd', 'AxCa', 'AxCp']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)']*4])+'\n') + for i in range(self.fst_vt['HydroDyn']['NAxCoef']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['AxCoefID'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['AxCd'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['AxCa'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['AxCp'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- MEMBER JOINTS -------------------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NJoints'], 'NJoints', '- Number of joints (-) [must be exactly 0 or at least 2]\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['JointID', 'Jointxi', 'Jointyi', 'Jointzi', 'JointAxID', 'JointOvrlp']])+' [JointOvrlp= 0: do nothing at joint, 1: eliminate overlaps by calculating super member]\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(m)', '(m)', '(m)', '(-)', '(switch)']])+'\n') + for i in range(self.fst_vt['HydroDyn']['NJoints']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['JointID'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['Jointxi'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['Jointyi'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['Jointzi'][i])) + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['JointAxID'][i])) + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['JointOvrlp'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- MEMBER CROSS-SECTION PROPERTIES -------------------------\n') + f.write('{:<11d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NPropSets'], 'NPropSets', '- Number of member property sets (-)\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['PropSetID', 'PropD', 'PropThck']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(m)', '(m)']])+'\n') + for i in range(self.fst_vt['HydroDyn']['NPropSets']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['PropSetID'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['PropD'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['PropThck'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- SIMPLE HYDRODYNAMIC COEFFICIENTS (model 1) --------------\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['SimplCd', 'SimplCdMG', 'SimplCa', 'SimplCaMG', 'SimplCp', 'SimplCpMG', 'SimplAxCa', 'SimplAxCaMG', 'SimplAxCp', 'SimplAxCpMG']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)']*10])+'\n') + ln = [] + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplCd'])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplCdMG'])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplCa'])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplCaMG'])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplCp'])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplCpMG'])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplAxCa'])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplAxCaMG'])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplAxCp'])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['SimplAxCpMG'])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- DEPTH-BASED HYDRODYNAMIC COEFFICIENTS (model 2) ---------\n') + f.write('{:<11d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NCoefDpth'], 'NCoefDpth', '- Number of depth-dependent coefficients (-)\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['Dpth', 'DpthCd', 'DpthCdMG', 'DpthCa', 'DpthCaMG', 'DpthCp', 'DpthCpMG', 'DpthAxCa', 'DpthAxCaMG', 'DpthAxCp', 'DpthAxCpMG']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(m)', '(-)', '(-)', '(-)', '(-)', '(-)', '(-)', '(-)', '(-)', '(-)', '(-)']])+'\n') + for i in range(self.fst_vt['HydroDyn']['NCoefDpth']): + ln = [] + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['Dpth'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthCd'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthCdMG'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthCa'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthCaMG'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthCp'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthCpMG'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthAxCa'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthAxCaMG'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthAxCp'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['DpthAxCpMG'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- MEMBER-BASED HYDRODYNAMIC COEFFICIENTS (model 3) --------\n') + f.write('{:<11d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NCoefMembers'], 'NCoefMembers', '- Number of member-based coefficients (-)\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['MemberID_HydC', 'MemberCd1', 'MemberCd2', 'MemberCdMG1', 'MemberCdMG2', 'MemberCa1', 'MemberCa2', 'MemberCaMG1', 'MemberCaMG2', 'MemberCp1', 'MemberCp2', 'MemberCpMG1', 'MemberCpMG2', 'MemberAxCa1', 'MemberAxCa2', 'MemberAxCaMG1', 'MemberAxCaMG2', 'MemberAxCp1', 'MemberAxCp2', 'MemberAxCpMG1', 'MemberAxCpMG2']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)']*21])+'\n') + for i in range(self.fst_vt['HydroDyn']['NCoefMembers']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['MemberID_HydC'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCd1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCd2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCdMG1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCdMG2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCa1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCa2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCaMG1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCaMG2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCp1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCp2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCpMG1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberCpMG2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberAxCa1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberAxCa2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberAxCaMG1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberAxCaMG2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberAxCp1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberAxCp2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberAxCpMG1'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MemberAxCpMG2'][i])) + f.write(" ".join(ln) + '\n') + f.write('-------------------- MEMBERS -------------------------------------------------\n') + f.write('{:<11d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NMembers'], 'NMembers', '- Number of members (-)\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['MemberID', 'MJointID1', 'MJointID2', 'MPropSetID1', 'MPropSetID2', 'MDivSize', 'MCoefMod', 'PropPot']])+' [MCoefMod=1: use simple coeff table, 2: use depth-based coeff table, 3: use member-based coeff table] [ PropPot/=0 if member is modeled with potential-flow theory]\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(-)', '(-)', '(-)', '(-)', '(m)', '(switch)', '(flag)']])+'\n') + for i in range(self.fst_vt['HydroDyn']['NMembers']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['MemberID'][i])) + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['MJointID1'][i])) + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['MJointID2'][i])) + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['MPropSetID1'][i])) + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['MPropSetID2'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MDivSize'][i])) + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['MCoefMod'][i])) + ln.append('{!s:^11}'.format(self.fst_vt['HydroDyn']['PropPot'][i])) + f.write(" ".join(ln) + '\n') + f.write("---------------------- FILLED MEMBERS ------------------------------------------\n") + f.write('{:<11d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NFillGroups'], 'NFillGroups', '- Number of filled member groups (-) [If FillDens = DEFAULT, then FillDens = WtrDens; FillFSLoc is related to MSL2SWL]\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['FillNumM', 'FillMList', 'FillFSLoc', 'FillDens']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(-)', '(m)', '(kg/m^3)']])+'\n') + for i in range(self.fst_vt['HydroDyn']['NFillGroups']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['FillNumM'][i])) + ln.append(" ".join(['%d'%j for j in self.fst_vt['HydroDyn']['FillMList'][i]])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['FillFSLoc'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['FillDens'][i])) + f.write(" ".join(ln) + '\n') + f.write("---------------------- MARINE GROWTH -------------------------------------------\n") + f.write('{:<11d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NMGDepths'], 'NMGDepths', '- Number of marine-growth depths specified (-) [If FillDens = DEFAULT, then FillDens = WtrDens; FillFSLoc is related to MSL2SWL]\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['MGDpth', 'MGThck', 'MGDens']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(m)', '(m)', '(kg/m^3)']])+'\n') + for i in range(self.fst_vt['HydroDyn']['NMGDepths']): + ln = [] + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MGDpth'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MGThck'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['MGDens'][i])) + f.write(" ".join(ln) + '\n') + f.write("---------------------- MEMBER OUTPUT LIST --------------------------------------\n") + f.write('{:<11d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NMOutputs'], 'NMOutputs', '- Number of member outputs (-) [must be < 10]\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['MemberID_out', 'NOutLoc', 'NodeLocs']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)']*3])+'\n') + for i in range(self.fst_vt['HydroDyn']['NMOutputs']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['MemberID_out'][i])) + ln.append('{:^11d}'.format(self.fst_vt['HydroDyn']['NOutLoc'][i])) + ln.append('{:^11}'.format(self.fst_vt['HydroDyn']['NodeLocs'][i])) + f.write(" ".join(ln) + '\n') + f.write("---------------------- JOINT OUTPUT LIST ---------------------------------------\n") + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NJOutputs'], 'NJOutputs', '- Number of joint outputs [Must be < 10]\n')) + f.write('{:<22} {:<11} {:}'.format(" ".join(["%d"%i for i in self.fst_vt['HydroDyn']['JOutLst']]), 'JOutLst', '- List of JointIDs which are to be output (-)[unused if NJOutputs=0]\n')) + f.write("---------------------- OUTPUT --------------------------------------------------\n") + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['HDSum'], 'HDSum', '- Output a summary file [flag]\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['OutAll'], 'OutAll', '- Output all user-specified member and joint loads (only at each member end, not interior locations) [flag]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['HydroDyn']['OutSwtch'], 'OutSwtch', '- Output requested channels to: [1=Hydrodyn.out, 2=GlueCode.out, 3=both files]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['OutFmt'], 'OutFmt', '- Output format for numerical results (quoted string) [not checked for validity!]\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['OutSFmt'], 'OutSFmt', '- Output format for header strings (quoted string) [not checked for validity!]\n')) + f.write('---------------------- OUTPUT CHANNELS -----------------------------------------\n') + outlist = self.get_outlist(self.fst_vt['outlist'], ['HydroDyn']) + for channel_list in outlist: + for i in range(len(channel_list)): + f.write('"' + channel_list[i] + '"\n') + + f.write('END of output channels and end of file. (the word "END" must appear in the first 3 columns of this line)\n') + + f.close() + + def write_SubDyn(self): + # Generate SubDyn v1.1 input file + self.fst_vt['Fst']['SubFile'] = self.FAST_namingOut + '_SubDyn.dat' + sd_file = os.path.join(self.FAST_runDirectory, self.fst_vt['Fst']['SubFile']) + f = open(sd_file, 'w') + + f.write('----------- SubDyn v1.01.x MultiMember Support Structure Input File ------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('-------------------------- SIMULATION CONTROL ---------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['Echo'], 'Echo', '- Echo input data to ".SD.ech" (flag)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['SDdeltaT'], 'SDdeltaT', '- Local Integration Step. If "default", the glue-code integration step will be used.\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['IntMethod'], 'IntMethod', '- Integration Method [1/2/3/4 = RK4/AB4/ABM4/AM2].\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['SttcSolve'], 'SttcSolve', '- Solve dynamics about static equilibrium point\n')) + f.write('-------------------- FEA and CRAIG-BAMPTON PARAMETERS---------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['FEMMod'], 'FEMMod', '- FEM switch: element model in the FEM. [1= Euler-Bernoulli(E-B); 2=Tapered E-B (unavailable); 3= 2-node Timoshenko; 4= 2-node tapered Timoshenko (unavailable)]\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NDiv'], 'NDiv', '- Number of sub-elements per member\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['CBMod'], 'CBMod', '- [T/F] If True perform C-B reduction, else full FEM dofs will be retained. If True, select Nmodes to retain in C-B reduced system.\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['Nmodes'], 'Nmodes', '- Number of internal modes to retain (ignored if CBMod=False). If Nmodes=0 --> Guyan Reduction.\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['JDampings'], 'JDampings', '- Damping Ratios for each retained mode (% of critical) If Nmodes>0, list Nmodes structural damping ratios for each retained mode (% of critical), or a single damping ratio to be applied to all retained modes. (last entered value will be used for all remaining modes).\n')) + f.write('---- STRUCTURE JOINTS: joints connect structure members (~Hydrodyn Input File)---\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NJoints'], 'NJoints', '- Number of joints (-)\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['JointID', 'JointXss', 'JointYss', 'JointZss']])+' [Coordinates of Member joints in SS-Coordinate System]\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(m)', '(m)', '(m)']])+'\n') + for i in range(self.fst_vt['SubDyn']['NJoints']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['JointID'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['JointXss'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['JointYss'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['JointZss'][i])) + f.write(" ".join(ln) + '\n') + f.write('------------------- BASE REACTION JOINTS: 1/0 for Locked/Free DOF @ each Reaction Node ---------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NReact'], 'NReact', '- Number of Joints with reaction forces; be sure to remove all rigid motion DOFs of the structure (else det([K])=[0])\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['RJointID', 'RctTDXss', 'RctTDYss', 'RctTDZss', 'RctRDXss', 'RctRDYss', 'RctRDZss']])+' [Global Coordinate System]\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(flag)', '(flag)', '(flag)', '(flag)', '(flag)', '(flag)']])+'\n') + for i in range(self.fst_vt['SubDyn']['NReact']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['RJointID'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['RctTDXss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['RctTDYss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['RctTDZss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['RctRDXss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['RctRDYss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['RctRDZss'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['Rct_SoilFile'][i])) + f.write(" ".join(ln) + '\n') + f.write('------- INTERFACE JOINTS: 1/0 for Locked (to the TP)/Free DOF @each Interface Joint (only Locked-to-TP implemented thus far (=rigid TP)) ---------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NReact'], 'NReact', '- Number of Joints with reaction forces; be sure to remove all rigid motion DOFs of the structure (else det([K])=[0])\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['IJointID', 'ItfTDXss', 'ItfTDYss', 'ItfTDZss', 'ItfRDXss', 'ItfRDYss', 'ItfRDZss']])+' [Global Coordinate System]\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(flag)', '(flag)', '(flag)', '(flag)', '(flag)', '(flag)']])+'\n') + for i in range(self.fst_vt['SubDyn']['NReact']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['IJointID'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['ItfTDXss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['ItfTDYss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['ItfTDZss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['ItfRDXss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['ItfRDYss'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['ItfRDZss'][i])) + f.write(" ".join(ln) + '\n') + f.write('----------------------------------- MEMBERS --------------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NMembers'], 'NMembers', '- Number of frame members\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['MemberID', 'MJointID1', 'MJointID2', 'MPropSetID1', 'MPropSetID2', 'COSMID']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)','(-)','(-)','(-)','(-)','(-)']])+'\n') + for i in range(self.fst_vt['SubDyn']['NMembers']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['MemberID'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['MJointID1'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['MJointID2'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['MPropSetID1'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['MPropSetID2'][i])) + if self.fst_vt['SubDyn']['NCOSMs'] > 0: + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['COSMID'][i])) + f.write(" ".join(ln) + '\n') + f.write('------------------ MEMBER X-SECTION PROPERTY data 1/2 [isotropic material for now: use this table for circular-tubular elements] ------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NPropSets'], 'NPropSets', '- Number of structurally unique x-sections (i.e. how many groups of X-sectional properties are utilized throughout all of the members)\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['PropSetID', 'YoungE', 'ShearG1', 'MatDens', 'XsecD', 'XsecT']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)','(N/m2)','(N/m2)','(kg/m3)','(m)','(m)']])+'\n') + for i in range(self.fst_vt['SubDyn']['NPropSets']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['PropSetID1'][i])) + ln.append('{:^11e}'.format(self.fst_vt['SubDyn']['YoungE1'][i])) + ln.append('{:^11e}'.format(self.fst_vt['SubDyn']['ShearG1'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['MatDens1'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['XsecD'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['XsecT'][i])) + f.write(" ".join(ln) + '\n') + f.write('------------------ MEMBER X-SECTION PROPERTY data 2/2 [isotropic material for now: use this table if any section other than circular, however provide COSM(i,j) below] ------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NXPropSets'], 'NXPropSets', '- Number of structurally unique non-circular x-sections (if 0 the following table is ignored)\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['PropSetID', 'YoungE', 'ShearG2', 'MatDens', 'XsecA', 'XsecAsx', 'XsecAsy', 'XsecJxx', 'XsecJyy', 'XsecJ0']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)','(N/m2)','(N/m2)','(kg/m3)','(m2)','(m2)','(m2)','(m4)','(m4)','(m4)']])+'\n') + for i in range(self.fst_vt['SubDyn']['NXPropSets']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['PropSetID2'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['YoungE2'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['ShearG2'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['MatDens2'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['XsecA'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['XsecAsx'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['XsecAsy'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['XsecJxx'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['XsecJyy'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['XsecJ0'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- MEMBER COSINE MATRICES COSM(i,j) ------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NCOSMs'], 'NCOSMs', '- Number of unique cosine matrices (i.e., of unique member alignments including principal axis rotations); ignored if NXPropSets=0 or 9999 in any element below\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['COSMID', 'COSM11', 'COSM12', 'COSM13', 'COSM21', 'COSM22', 'COSM23', 'COSM31', 'COSM32', 'COSM33']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)','(-)','(-)','(-)','(-)','(-)','(-)','(-)','(-)','(-)']])+'\n') + for i in range(self.fst_vt['SubDyn']['NCOSMs']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['COSMID'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['COSM11'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['COSM12'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['COSM13'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['COSM21'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['COSM22'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['COSM23'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['COSM31'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['COSM32'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['COSM33'][i])) + f.write(" ".join(ln) + '\n') + f.write('------------------------ JOINT ADDITIONAL CONCENTRATED MASSES--------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NCmass'], 'NCmass', '- Number of joints with concentrated masses; Global Coordinate System\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['CMJointID', 'JMass', 'JMXX', 'JMYY', 'JMZZ']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)','(kg)','(kg*m^2)','(kg*m^2)','(kg*m^2)']])+'\n') + for i in range(self.fst_vt['SubDyn']['NCmass']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['CMJointID'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['JMass'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['JMXX'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['JMYY'][i])) + ln.append('{:^11}'.format(self.fst_vt['SubDyn']['JMZZ'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------------- OUTPUT: SUMMARY & OUTFILE ------------------------------\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['SSSum'], 'SSSum', '- Output a Summary File (flag).It contains: matrices K,M and C-B reduced M_BB, M-BM, K_BB, K_MM(OMG^2), PHI_R, PHI_L. It can also contain COSMs if requested.\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['OutCOSM'], 'OutCOSM', '- Output cosine matrices with the selected output member forces (flag)\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['OutAll'], 'OutAll', "- [T/F] Output all members' end forces\n")) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['OutSwtch'], 'OutSwtch', '- [1/2/3] Output requested channels to: 1=.SD.out; 2=.out (generated by FAST); 3=both files.\n')) + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['TabDelim'], 'TabDelim', '- Generate a tab-delimited output in the .SD.out file\n')) + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['OutDec'], 'OutDec', '- Decimation of output in the .SD.out file\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['OutFmt'], 'OutFmt', '- Output format for numerical results in the .SD.out file\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['SubDyn']['OutSFmt'], 'OutSFmt', '- Output format for header strings in the .SD.out file\n')) + f.write('------------------------- MEMBER OUTPUT LIST ------------------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['SubDyn']['NMOutputs'], 'NMOutputs', '- Number of members whose forces/displacements/velocities/accelerations will be output (-) [Must be <= 9].\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['MemberID', 'NOutCnt', 'NodeCnt']])+'[NOutCnt=how many nodes to get output for [< 10]; NodeCnt are local ordinal numbers from the start of the member, and must be >=1 and <= NDiv+1] If NMOutputs=0 leave blank as well.\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)','(-)','(-)']])+'\n') + for i in range(self.fst_vt['SubDyn']['NMOutputs']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['MemberID_out'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['NOutCnt'][i])) + ln.append('{:^11d}'.format(self.fst_vt['SubDyn']['NodeCnt'][i])) + f.write(" ".join(ln) + '\n') + f.write('------------------------- SSOutList: The next line(s) contains a list of output parameters that will be output in .SD.out or .out. ------\n') + outlist = self.get_outlist(self.fst_vt['outlist'], ['SubDyn']) + for channel_list in outlist: + for i in range(len(channel_list)): + f.write('"' + channel_list[i] + '"\n') + f.write('END of output channels and end of file. (the word "END" must appear in the first 3 columns of this line)\n') + f.close() + + def write_MAP(self): + + # Generate MAP++ input file + self.fst_vt['Fst']['MooringFile'] = self.FAST_namingOut + '_MAP.dat' + map_file = os.path.join(self.FAST_runDirectory, self.fst_vt['Fst']['MooringFile']) + f = open(map_file, 'w') + + f.write('---------------------- LINE DICTIONARY ---------------------------------------\n') + f.write(" ".join(['{:<11s}'.format(i) for i in ['LineType', 'Diam', 'MassDenInAir', 'EA', 'CB', 'CIntDamp', 'Ca', 'Cdn', 'Cdt']])+'\n') + f.write(" ".join(['{:<11s}'.format(i) for i in ['(-)', '(m)', '(kg/m)', '(N)', '(-)', '(Pa-s)', '(-)', '(-)', '(-)']])+'\n') + ln =[] + ln.append('{:<11}'.format(self.fst_vt['MAP']['LineType'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['Diam'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['MassDenInAir'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['EA'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['CB'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['CIntDamp'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['Ca'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['Cdn'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['Cdt'])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- NODE PROPERTIES ---------------------------------------\n') + f.write(" ".join(['{:<11s}'.format(i) for i in ['Node', 'Type', 'X', 'Y', 'Z', 'M', 'B', 'FX', 'FY', 'FZ']])+'\n') + f.write(" ".join(['{:<11s}'.format(i) for i in ['(-)', '(-)', '(m)', '(m)', '(m)', '(kg)', '(m^3)', '(N)', '(N)', '(N)']])+'\n') + for i in range(2): + ln =[] + ln.append('{:<11}'.format(self.fst_vt['MAP']['Node'][i])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['Type'][i])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['X'][i])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['Y'][i])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['Z'][i])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['M'][i])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['B'][i])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['FX'][i])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['FY'][i])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['FZ'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- LINE PROPERTIES ---------------------------------------\n') + f.write(" ".join(['{:<11s}'.format(i) for i in ['Line', 'LineType', 'UnstrLen', 'NodeAnch', 'NodeFair', 'Flags']])+'\n') + f.write(" ".join(['{:<11s}'.format(i) for i in ['(-)', '(-)', '(m)', '(-)', '(-)', '(-)']])+'\n') + ln =[] + ln.append('{:<11}'.format(self.fst_vt['MAP']['Line'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['LineType'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['UnstrLen'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['NodeAnch'])) + ln.append('{:<11}'.format(self.fst_vt['MAP']['NodeFair'])) + ln.append('{:<11}'.format(" ".join(self.fst_vt['MAP']['Flags']))) + f.write(" ".join(ln) + '\n') + f.write('---------------------- SOLVER OPTIONS-----------------------------------------\n') + f.write('{:<11s}'.format('Option'+'\n')) + f.write('{:<11s}'.format('(-)')+'\n') + f.write(" ".join(self.fst_vt['MAP']['Option']).strip() + '\n') + + f.close() + + def write_MoorDyn(self): + + self.fst_vt['Fst']['MooringFile'] = self.FAST_namingOut + '_MoorDyn.dat' + moordyn_file = os.path.join(self.FAST_runDirectory, self.fst_vt['Fst']['MooringFile']) + f = open(moordyn_file, 'w') + + f.write('--------------------- MoorDyn Input File ------------------------------------\n') + f.write('Generated with AeroElasticSE FAST driver\n') + f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['Echo'], 'Echo', '- echo the input file data (flag)\n')) + f.write('----------------------- LINE TYPES ------------------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['MoorDyn']['NTypes'], 'NTypes', '- number of LineTypes\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['Name', 'Diam', 'MassDen', 'EA', 'BA/-zeta', 'Can', 'Cat', 'Cdn', 'Cdt']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(m)', '(kg/m)', '(N)', '(N-s/-)', '(-)', '(-)', '(-)', '(-)']])+'\n') + for i in range(self.fst_vt['MoorDyn']['NTypes']): + ln = [] + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Name'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Diam'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['MassDen'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['EA'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['BA_zeta'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Can'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Cat'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Cdn'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Cdt'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- CONNECTION PROPERTIES --------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['MoorDyn']['NConnects'], 'NConnects', '- number of connections including anchors and fairleads\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['Node', 'Type', 'X', 'Y', 'Z', 'M', 'V', 'FX', 'FY', 'FZ', 'CdA', 'CA']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(-)', '(m)', '(m)', '(m)', '(kg)', '(m^3)', '(kN)', '(kN)', '(kN)', '(m^2)', '(-)']])+'\n') + for i in range(self.fst_vt['MoorDyn']['NConnects']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['MoorDyn']['Node'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Type'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['X'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Y'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Z'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['M'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['V'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['FX'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['FY'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['FZ'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['CdA'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['CA'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- LINE PROPERTIES --------------------------------------\n') + f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['MoorDyn']['NLines'], 'NLines', '- number of line objects\n')) + f.write(" ".join(['{:^11s}'.format(i) for i in ['Line', 'LineType', 'UnstrLen', 'NumSegs', 'NodeAnch', 'NodeFair', 'Flags/Outputs']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['(-)', '(-)', '(m)', '(-)', '(-)', '(-)', '(-)']])+'\n') + for i in range(self.fst_vt['MoorDyn']['NLines']): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['MoorDyn']['Line'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['LineType'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['UnstrLen'][i])) + ln.append('{:^11d}'.format(self.fst_vt['MoorDyn']['NumSegs'][i])) + ln.append('{:^11d}'.format(self.fst_vt['MoorDyn']['NodeAnch'][i])) + ln.append('{:^11d}'.format(self.fst_vt['MoorDyn']['NodeFair'][i])) + ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Flags_Outputs'][i])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- SOLVER OPTIONS ---------------------------------------\n') + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['dtM'], 'dtM', '- time step to use in mooring integration (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['kbot'], 'kbot', '- bottom stiffness (Pa/m)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['cbot'], 'cbot', '- bottom damping (Pa-s/m)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['dtIC'], 'dtIC', '- time interval for analyzing convergence during IC gen (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['TmaxIC'], 'TmaxIC', '- max time for ic gen (s)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['CdScaleIC'], 'CdScaleIC', '- factor by which to scale drag coefficients during dynamic relaxation (-)\n')) + f.write('{:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['threshIC'], 'threshIC', '- threshold for IC convergence (-)\n')) + f.write('------------------------ OUTPUTS --------------------------------------------\n') + outlist = self.get_outlist(self.fst_vt['outlist'], ['MoorDyn']) + for channel_list in outlist: + for i in range(len(channel_list)): + f.write('"' + channel_list[i] + '"\n') + f.write('END\n') + f.write('------------------------- need this line --------------------------------------\n') + + f.close() + +class InputWriter_FAST7(InputWriter_Common): + + def execute(self): + + if not os.path.exists(self.FAST_runDirectory): + os.makedirs(self.FAST_runDirectory) + + # self.write_WindWnd() + self.write_ElastoDynBlade() + self.write_ElastoDynTower() + self.write_AeroDyn_FAST7() + + self.write_MainInput() + + def write_MainInput(self): + + self.FAST_InputFileOut = os.path.join(self.FAST_runDirectory, self.FAST_namingOut+'.fst') + ofh = open(self.FAST_InputFileOut, 'w') + + # FAST Inputs + ofh.write('---\n') + ofh.write('---\n') + ofh.write('{:}\n'.format(self.fst_vt['description'])) + ofh.write('---\n') + ofh.write('---\n') + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['Echo'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['ADAMSPrep'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['AnalMode'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['NumBl'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TMax'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['DT'])) + ofh.write('---\n') + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['YCMode'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TYCOn'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['PCMode'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TPCOn'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['VSContrl'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['VS_RtGnSp'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['VS_RtTq'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['VS_Rgn2K'])) + ofh.write('{:.5e}\n'.format(self.fst_vt['Fst7']['VS_SlPc'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['GenModel'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['GenTiStr'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['GenTiStp'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['SpdGenOn'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TimGenOn'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TimGenOf'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['HSSBrMode'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['THSSBrDp'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TiDynBrk'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TTpBrDp1'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TTpBrDp2'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TTpBrDp3'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TBDepISp1'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TBDepISp2'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TBDepISp3'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TYawManS'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TYawManE'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NacYawF'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TPitManS1'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TPitManS2'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TPitManS3'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TPitManE1'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TPitManE2'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TPitManE3'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['BlPitch1'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['BlPitch2'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['BlPitch3'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['B1PitchF1'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['B1PitchF2'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['B1PitchF3'])) + ofh.write('---\n') + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['Gravity'])) + ofh.write('---\n') + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['FlapDOF1'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['FlapDOF2'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['EdgeDOF'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['TeetDOF'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['DrTrDOF'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['GenDOF'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['YawDOF'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['TwFADOF1'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['TwFADOF2'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['TwSSDOF1'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['TwSSDOF2'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['CompAero'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['CompNoise'])) + ofh.write('---\n') + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['OoPDefl'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['IPDefl'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TeetDefl'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['Azimuth'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['RotSpeed'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NacYaw'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TTDspFA'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TTDspSS'])) + ofh.write('---\n') + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TipRad'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['HubRad'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['PSpnElN'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['UndSling'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['HubCM'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['OverHang'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NacCMxn'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NacCMyn'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NacCMzn'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TowerHt'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['Twr2Shft'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TwrRBHt'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['ShftTilt'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['Delta3'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['PreCone(1)'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['PreCone(2)'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['PreCone(3)'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['AzimB1Up'])) + ofh.write('---\n') + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['YawBrMass'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NacMass'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['HubMass'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TipMass(1)'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TipMass(2)'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TipMass(3)'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NacYIner'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['GenIner'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['HubIner'])) + ofh.write('---\n') + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['GBoxEff'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['GenEff'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['GBRatio'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['GBRevers'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['HSSBrTqF'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['HSSBrDT'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['DynBrkFi'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['DTTorSpr'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['DTTorDmp'])) + ofh.write('---\n') + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['SIG_SlPc'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['SIG_SySp'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['SIG_RtTq'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['SIG_PORt'])) + ofh.write('---\n') + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TEC_Freq'])) + ofh.write('{:5}\n'.format(self.fst_vt['Fst7']['TEC_NPol'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TEC_SRes'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TEC_RRes'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TEC_VLL'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TEC_SLR'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TEC_RLR'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TEC_MR'])) + ofh.write('---\n') + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['PtfmModel'])) + ofh.write('"{:}"\n'.format(self.fst_vt['Fst7']['PtfmFile'])) + ofh.write('---\n') + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['TwrNodes'])) + ofh.write('"{:}"\n'.format(self.fst_vt['Fst7']['TwrFile'])) + ofh.write('---\n') + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['YawSpr'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['YawDamp'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['YawNeut'])) + ofh.write('---\n') + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['Furling'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['FurlFile'])) + ofh.write('---\n') + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['TeetMod'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TeetDmpP'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TeetDmp'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TeetCDmp'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TeetSStP'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TeetHStP'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TeetSSSp'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TeetHSSp'])) + ofh.write('---\n') + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TBDrConN'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TBDrConD'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TpBrDT'])) + ofh.write('---\n') + ofh.write('"{:}"\n'.format(self.fst_vt['Fst7']['BldFile1'])) + ofh.write('"{:}"\n'.format(self.fst_vt['Fst7']['BldFile2'])) + ofh.write('"{:}"\n'.format(self.fst_vt['Fst7']['BldFile3'])) + ofh.write('---\n') + ofh.write('"{:}"\n'.format(self.fst_vt['Fst7']['ADFile'])) + ofh.write('---\n') + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['NoiseFile'])) + ofh.write('---\n') + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['ADAMSFile'])) + ofh.write('---\n') + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['LinFile'])) + ofh.write('---\n') + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['SumPrint'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['OutFileFmt'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['TabDelim'])) + ofh.write('{:}\n'.format(self.fst_vt['Fst7']['OutFmt'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['TStart'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['DecFact'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['SttsTime'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NcIMUxn'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NcIMUyn'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['NcIMUzn'])) + ofh.write('{:.9f}\n'.format(self.fst_vt['Fst7']['ShftGagL'])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['NTwGages'])) + for i in range(self.fst_vt['Fst7']['NTwGages']-1): + ofh.write('{:3}, '.format(self.fst_vt['Fst7']['TwrGagNd'][i])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['TwrGagNd'][-1])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['NBlGages'])) + for i in range(self.fst_vt['Fst7']['NBlGages']-1): + ofh.write('{:3}, '.format(self.fst_vt['Fst7']['BldGagNd'][i])) + ofh.write('{:3}\n'.format(self.fst_vt['Fst7']['BldGagNd'][-1])) + + # Outlist + ofh.write('Outlist\n') + outlist = self.get_outlist(self.fst_vt['outlist7'], ['OutList']) + for channel_list in outlist: + for i in range(len(channel_list)): + f.write('"' + channel_list[i] + '"\n') + ofh.write('END\n') + ofh.close() + + ofh.close() + + def write_AeroDyn_FAST7(self): + if not os.path.isdir(os.path.join(self.FAST_runDirectory,'AeroData')): + os.mkdir(os.path.join(self.FAST_runDirectory,'AeroData')) + + # create airfoil objects + for i in range(self.fst_vt['AeroDyn14']['NumFoil']): + af_name = os.path.join(self.FAST_runDirectory, 'AeroData', 'Airfoil' + str(i) + '.dat') + self.fst_vt['AeroDyn14']['FoilNm'][i] = os.path.join('AeroData', 'Airfoil' + str(i) + '.dat') + self.write_AeroDyn14Polar(af_name, i) + + self.fst_vt['Fst7']['ADFile'] = self.FAST_namingOut + '_AeroDyn.dat' + ad_file = os.path.join(self.FAST_runDirectory,self.fst_vt['Fst7']['ADFile']) + ofh = open(ad_file,'w') + + ofh.write('Aerodyn input file for FAST\n') + + ofh.write('{:}\n'.format(self.fst_vt['AeroDyn14']['SysUnits'])) + ofh.write('{:}\n'.format(self.fst_vt['AeroDyn14']['StallMod'])) + + ofh.write('{:}\n'.format(self.fst_vt['AeroDyn14']['UseCm'])) + ofh.write('{:}\n'.format(self.fst_vt['AeroDyn14']['InfModel'])) + ofh.write('{:}\n'.format(self.fst_vt['AeroDyn14']['IndModel'])) + ofh.write('{:.3f}\n'.format(self.fst_vt['AeroDyn14']['AToler'])) + ofh.write('{:}\n'.format(self.fst_vt['AeroDyn14']['TLModel'])) + ofh.write('{:}\n'.format(self.fst_vt['AeroDyn14']['HLModel'])) + ofh.write('"{:}"\n'.format(self.fst_vt['AeroDyn14']['WindFile'])) + ofh.write('{:f}\n'.format(self.fst_vt['AeroDyn14']['HH'])) + + ofh.write('{:.1f}\n'.format(self.fst_vt['AeroDyn14']['TwrShad'])) + + ofh.write('{:.1f}\n'.format(self.fst_vt['AeroDyn14']['ShadHWid'])) + + ofh.write('{:.1f}\n'.format(self.fst_vt['AeroDyn14']['T_Shad_Refpt'])) + + ofh.write('{:.3f}\n'.format(self.fst_vt['AeroDyn14']['AirDens'])) + + ofh.write('{:.9f}\n'.format(self.fst_vt['AeroDyn14']['KinVisc'])) + + ofh.write('{:2}\n'.format(self.fst_vt['AeroDyn14']['DTAero'])) + + + ofh.write('{:2}\n'.format(self.fst_vt['AeroDyn14']['NumFoil'])) + for i in range (self.fst_vt['AeroDyn14']['NumFoil']): + ofh.write('"{:}"\n'.format(self.fst_vt['AeroDyn14']['FoilNm'][i])) + + ofh.write('{:2}\n'.format(self.fst_vt['AeroDynBlade']['BldNodes'])) + rnodes = self.fst_vt['AeroDynBlade']['RNodes'] + twist = self.fst_vt['AeroDynBlade']['AeroTwst'] + drnodes = self.fst_vt['AeroDynBlade']['DRNodes'] + chord = self.fst_vt['AeroDynBlade']['Chord'] + nfoil = self.fst_vt['AeroDynBlade']['NFoil'] + prnelm = self.fst_vt['AeroDynBlade']['PrnElm'] + ofh.write('Nodal properties\n') + for r, t, dr, c, a, p in zip(rnodes, twist, drnodes, chord, nfoil, prnelm): + ofh.write('{: 2.15e}\t{:.3f}\t{:.4f}\t{:.3f}\t{:5}\t{:}\n'.format(r, t, dr, c, a, p)) + + ofh.close() + + + +if __name__=="__main__": + + FAST_ver = 'openfast' + read_yaml = False + + fst_update = {} + fst_update['Fst', 'TMax'] = 20. + fst_update['AeroDyn15', 'TwrAero'] = False + + + if read_yaml: + fast = InputReader_Common(FAST_ver=FAST_ver) + fast.FAST_yamlfile = 'temp/OpenFAST/test.yaml' + fast.read_yaml() + + if FAST_ver.lower() == 'fast7': + if not read_yaml: + fast = InputReader_FAST7(FAST_ver=FAST_ver) + fast.FAST_InputFile = 'Test16.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/FAST_v7.02.00d-bjj/CertTest/' # Path to fst directory files + fast.execute() + + fastout = InputWriter_FAST7(FAST_ver=FAST_ver) + fastout.fst_vt = fast.fst_vt + fastout.FAST_runDirectory = 'temp/FAST7' + fastout.FAST_namingOut = 'test' + fastout.execute() + + elif FAST_ver.lower() == 'fast8': + if not read_yaml: + fast = InputReader_OpenFAST(FAST_ver=FAST_ver) + fast.FAST_InputFile = 'NREL5MW_onshore.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/FAST_v8.16.00a-bjj/ref/5mw_onshore/' # Path to fst directory files + fast.execute() + + fastout = InputWriter_OpenFAST(FAST_ver=FAST_ver) + fastout.fst_vt = fast.fst_vt + fastout.FAST_runDirectory = 'temp/FAST8' + fastout.FAST_namingOut = 'test' + fastout.execute() + + elif FAST_ver.lower() == 'openfast': + if not read_yaml: + fast = InputReader_OpenFAST(FAST_ver=FAST_ver) + # fast.FAST_InputFile = '5MW_Land_DLL_WTurb.fst' # FAST input file (ext=.fst) + # fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/openfast/glue-codes/fast/5MW_Land_DLL_WTurb' # Path to fst directory files + + # fast.FAST_InputFile = "5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth.fst" + # fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/openfast-dev/r-test/glue-codes/openfast/5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth' + + fast.FAST_InputFile = '5MW_OC3Spar_DLL_WTurb_WavesIrr.fst' # FAST input file (ext=.fst) + fast.FAST_directory = 'C:/Users/egaertne/WT_Codes/models/openfast-dev/r-test/glue-codes/openfast/5MW_OC3Spar_DLL_WTurb_WavesIrr' # Path to fst directory files + + fast.execute() + + fastout = InputWriter_OpenFAST(FAST_ver=FAST_ver) + fastout.fst_vt = fast.fst_vt + fastout.FAST_runDirectory = 'temp/OpenFAST' + fastout.FAST_namingOut = 'test' + fastout.update(fst_update=fst_update) + fastout.execute() + + fastout.write_yaml() + + + diff --git a/ofTools/fast_io/__init__.py b/ofTools/fast_io/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ofTools/fast_io/file.py b/ofTools/fast_io/file.py new file mode 100644 index 000000000..900600d43 --- /dev/null +++ b/ofTools/fast_io/file.py @@ -0,0 +1,205 @@ +import os +# for encoding detection: +#import codecs +#import chardet + +class WrongFormatError(Exception): + pass + +class EmptyFileError(Exception): + pass + +class BrokenFormatError(Exception): + pass + +class BrokenReaderError(Exception): + pass + +try: #Python3 + FileNotFoundError=FileNotFoundError +except NameError: # Python2 + FileNotFoundError = IOError + +class File(dict): + def __init__(self,filename=None,**kwargs): + self._size=None + self._encoding=None + if filename: + ### If there is a new filename, replace the object variable + self.filename = filename + ### If the filename is provided, read the file + self.read(**kwargs) + else: + self.filename = None + + def read(self, filename=None, **kwargs): + if filename: + self.filename = filename + if not self.filename: + raise Exception('No filename provided') + if not os.path.isfile(self.filename): + raise OSError(2,'File not found:',self.filename) + if os.stat(self.filename).st_size == 0: + raise EmptyFileError('File is empty:',self.filename) + # Calling children function + self._read(**kwargs) + + def write(self, filename=None): + if filename: + self.filename = filename + if not self.filename: + raise Exception('No filename provided') + # Calling children function + self._write() + + def toDataFrame(self): + return self._toDataFrame() + + # -------------------------------------------------------------------------------- + # --- Properties + # -------------------------------------------------------------------------------- + @property + def size(self): + if self._size is None: + self._size = os.path.getsize(self.filename) + return self._size + + #@property + #def encoding(self): + # """ Detects encoding""" + # if self._encoding is None: + # byts = min(32, self.size) + # with open(self.filename, 'rb') as f: + # raw = f.read(byts) + # if raw.startswith(codecs.BOM_UTF8): + # self._encoding = 'utf-8-sig' + # else: + # result = chardet.detect(raw) + # self._encoding = result['encoding'] + # return self._encoding + + + # --------------------------------------------------------------------------------} + # --- Helper methods + # --------------------------------------------------------------------------------{ + + # -------------------------------------------------------------------------------- + # --- Sub class methods + # -------------------------------------------------------------------------------- + def _read(self,**kwargs): + raise NotImplementedError("Method must be implemented in the subclass") + + def _write(self): + raise NotImplementedError("Method must be implemented in the subclass") + + def _toDataFrame(self): + raise NotImplementedError("Method must be implemented in the subclass") + + def _fromDataFrame(self): + raise NotImplementedError("Method must be implemented in the subclass") + + def _fromDictionary(self): + raise NotImplementedError("Method must be implemented in the subclass") + + def _fromFile(self): + raise NotImplementedError("Method must be implemented in the subclass") + + # -------------------------------------------------------------------------------- + # --- Static methods + # -------------------------------------------------------------------------------- + @staticmethod + def defaultExtension(): + raise NotImplementedError("Method must be implemented in the subclass") + + @staticmethod + def formatName(): + raise NotImplementedError("Method must be implemented in the subclass") + + @classmethod + def isRightFormat(cls,filename): + """ Tries to open a file, return true and the file if it succeeds """ + #raise NotImplementedError("Method must be implemented in the subclass") + try: + F=cls(filename=filename) + return True,F + except MemoryError: + raise + except WrongFormatError: + return False,None + except: + raise + + def test_write_read(self,bDelete=False): + """ Test that we can write and then read what we wrote + NOTE: this does not check that what we read is the same.. + """ + # --- First, test write function (assuming read) + try: + f,ext=os.path.splitext(self.filename) + filename_out = f+'_TMP'+ext + self.write(filename_out) + except Exception as e: + raise Exception('Error writing what we read\n'+e.args[0]) + # --- Second, re-read what we wrote + try: + self.read(filename_out) + except Exception as e: + raise Exception('Error reading what we wrote\n'+e.args[0]) + if bDelete: + os.remove(filename_out) + return filename_out + + def test_ascii(self,bCompareWritesOnly=False,bDelete=True): + # compare ourselves (assuming read has occured) with what we write + + f,ext=os.path.splitext(self.filename) + # --- Perform a simple write/read test + filename_out=self.test_write_read() + + # --- Perform ascii comparison (and delete if success) + if bCompareWritesOnly: + f1 = filename_out + f2 = f+'_TMP2'+ext + self.write(f2) + else: + f1 = self.filename + f2 = filename_out + bStat=ascii_comp(f1,f2,bDelete=bDelete) + + if bStat: + if bCompareWritesOnly and bDelete: + os.remove(f1) + else: + raise Exception('The ascii content of {} and {} are different'.format(f1,f2)) + +# --------------------------------------------------------------------------------} +# --- Helper functions +# --------------------------------------------------------------------------------{ +def isBinary(filename): + with open(filename, 'r') as f: + try: + f.readline() + return False + except UnicodeDecodeError: + return True + +def ascii_comp(file1,file2,bDelete=False): + """ Compares two ascii files line by line. + Comparison is done ignoring multiple white spaces for now""" + # --- Read original as ascii + with open(file1, 'r') as f1: + lines1 = f1.read().splitlines(); + lines1 = '|'.join([l.replace('\t',' ').strip() for l in lines1]) + lines1 = ' '.join(lines1.split()) + # --- Read second file as ascii + with open(file2, 'r') as f2: + lines2 = f2.read().splitlines(); + lines2 = '|'.join([l.replace('\t',' ').strip() for l in lines2]) + lines2 = ' '.join(lines2.split()) + + if lines1 == lines2: + if bDelete: + os.remove(file2) + return True + else: + return False diff --git a/ofTools/fast_io/output_processing.py b/ofTools/fast_io/output_processing.py new file mode 100644 index 000000000..f6c5dc7f9 --- /dev/null +++ b/ofTools/fast_io/output_processing.py @@ -0,0 +1,571 @@ +''' +A number of the file processing tools used here were provided by or modified from: https://github.com/ebranlard/weio. + +Functions: +-------- +run_openfast +load_fast_out +load_ascii_output +load_binary_output +trim_output +''' +import os +import numpy as np +import matplotlib.pyplot as plt +from matplotlib import transforms +from itertools import takewhile +import struct + +from ofTools.util import spectral + +class output_processing(): + ''' + Some plotting utilities for OpenFAST data. + + Methods: + load_fast_out + plot_fast_out + plot_spectral + ''' + + def __init__(self, filenames=[], cases=None, tmin=None, tmax=None, verbose=False): + + # Define generic plotting cases + if cases: + self.plot_cases=cases + else: + self.plot_cases = {'Baseline': ['Wind1VelX', 'GenPwr', 'RotSpeed', 'BldPitch1', 'GenTq']} + + if len(filenames) > 0: + self.load_fast_out(filenames, tmin=tmin, tmax=tmax, verbose=verbose) + + def load_fast_out(self, filenames, tmin=None, tmax=None, verbose=False): + """Load a FAST binary or ascii output file + + Parameters + ---------- + filenames : list + list of filenames + tmin : float, optional + initial time to trim output data to + tmax : float, optional + final data to trim output data to + verbose : bool, optional + Print updates + + Returns + ------- + fastout: list + List of dictionaries containing OpenFAST output data. + """ + if type(filenames) is str: + filenames = [filenames] + + # data = [] + # info = [] + try: + self.fastout + except AttributeError: + self.fastout = [] + for i, filename in enumerate(filenames): + assert os.path.isfile(filename), "File, %s, does not exists" % filename + with open(filename, 'r') as f: + if verbose: + print('Loading data from {}'.format(filename)) + try: + f.readline() + except UnicodeDecodeError: + data, info = load_binary_output(filename) + else: + data, info = load_ascii_output(filename) + + # Build dictionary + fast_data = dict(zip(info['channels'],data.T)) + fast_data['meta'] = info + fast_data['meta']['filename'] = filename + self.fastout.append(fast_data) + + # Trim outputs + if (tmin) or (tmax): + trim_output(self.fastout, tmin=tmin, tmax=tmax, verbose=verbose) + + # return fastout + return self.fastout + + def plot_fast_out(self, fastout=None, cases=None, showplot=True, fignum=None, xlim=None): + ''' + Plots OpenFAST outputs for desired channels + + Parameters: + ----------- + cases : dict + Dictionary of lists containing desired outputs + fastout : list + List of dictionaries of OpenFAST output information, output from load_fast_out + showplot: bool, optional + Show the plot + fignum: int, optional + Define figure number. Note: Should only be used when plotting a singular case. + + Returns: + -------- + figlist: list + list of figure handles + axeslist: list + list of axes handles + ''' + + if not fastout: + try: + fastout = self.fastout + except: + raise AttributeError('Cannot plot OpenFAST output data before it is loaded with load_fast_out.') + if not cases: + cases = self.plot_cases + + figlist = [] + axeslist = [] + # Plot cases + for case in cases.keys(): + # channels to plot + channels = cases[case] + # instantiate plot and legend + fig, axes = plt.subplots(len(channels), 1, sharex=True, num=fignum, constrained_layout=True) + myleg = [] + for fast_out in fastout: # Multiple channels + # write legend + Time = fast_out['Time'] + myleg.append(fast_out['meta']['name']) + if len(channels) > 1: # Multiple channels + for axj, channel in zip(axes, channels): + try: + # plot + axj.plot(Time, fast_out[channel]) + # label + unit_idx = fast_out['meta']['channels'].index(channel) + axj.set_ylabel('{:^} \n ({:^})'.format( + channel, + fast_out['meta']['attribute_units'][unit_idx])) + axj.grid(True) + except: + print('{} is not available as an output channel.'.format(channel)) + axes[0].set_title(case) + + else: # Single channel + try: + # plot + axes.plot(Time, fast_out[channel]) + # label + axes.set_ylabel('{:^} \n ({:^})'.format( + channel, + fast_out['meta']['attribute_units'][unit_idx])) + axes.grid(True) + axes.set_title(case) + except: + print('{} is not available as an output channel.'.format(channel)) + plt.legend(myleg, loc='upper center', bbox_to_anchor=( + 0.5, 0.0), borderaxespad=2, ncol=len(fastout)) + + figlist.append(fig) + axeslist.append(axes) + + if xlim: + plt.xlim(xlim) + + if showplot: + plt.show() + + return figlist, axeslist + + def plot_spectral(self, fastout=None, cases=None, + averaging='None', averaging_window='Hann', detrend=False, nExp=None, + show_RtSpeed=False, RtSpeed_idx=None, + add_freqs=None, add_freq_labels=None, + showplot=False, fignum=None): + ''' + Plots OpenFAST outputs for desired channels + + Parameters: + ----------- + fastout : dict + Dictionary of OpenFAST output information, output from load_fast_out + cases : list of tuples (str, int) + Dictionary of lists containing desired outputs. + Of the format (channel, case), i.e. [('RotSpeed', 0)] + averaging: str, optional + PSD averaging method. None, Welch + averaging_window: str, optional + PSD averaging window method. Hamming, Hann, Rectangular + detrend: bool, optional + Detrend data? + nExp: float, optional + Exponent for hamming windowing + show_RtSpeed: Bool, optional + Plot 1p and 3p rotor speeds for simulation cases plotted + RtSpeed_idx: ind, optional + Specify the index for the simulation case that the rotor speed is plotted from. + add_freqs: list, optional + List of floats containing additional frequencies to plot lines of + add_freq_labels: list, optional + List of strings to label add_freqs + showplot: bool, optional + Show the plot + fignum: int, optional + Define figure number. Note: Should only be used when plotting a singular case. + + Returns: + ------- + fig, ax - corresponds to generated figure + ''' + + if not fastdict: + try: + fastdict = self.fastout + except: + Error('Cannot plot OpenFAST output data before it is loaded with load_fast_out.') + if not cases: + cases=self.plot_cases + + if averaging.lower() not in ['none', 'welch']: + raise ValueError('{} is not a supported averaging method.'.format(averaging)) + + if averaging_window.lower() not in ['hamming', 'hann', 'rectangular']: + raise ValueError('{} is not a supported averaging window.'.format(averaging_window)) + + fig, ax = plt.subplots(num=fignum) + + leg = [] + for channel, run in cases: + try: + # Find time + Time = fastout[run]['Time'] + # Load PSD + fq, y, info = spectral.fft_wrap( + Time, fastout[run][channel], averaging=averaging, averaging_window=averaging_window, detrend=detrend, nExp=nExp) + # Plot data + plt.loglog(fq, y, label='{}, run: {}'.format(channel, str(run))) + except: + print('{} is not an available channel in run {}'.format(channel, str(run))) + # Show rotor speed range (1P, 3P, 6P?) + if show_RtSpeed: + if not RtSpeed_idx: + RtSpeed_idx = [0] + print('No rotor speed run indices defined, plotting spectral range for the first run only.') + for rt_idx in RtSpeed_idx: + f_1P_min = min(fastout[rt_idx]['RotSpeed']) / 60. # Hz + f_1P_max = max(fastout[rt_idx]['RotSpeed']) / 60. + f_3P_min = f_1P_min*3 + f_3P_max = f_1P_max*3 + f_6P_min = f_1P_min*6 + f_6P_max = f_1P_max*6 + plt.axvspan(f_1P_min, f_1P_max, alpha=0.5, color=[0.7, 0.7, 0.7], label='1P') + plt.axvspan(f_3P_min, f_3P_max, alpha=0.5, color=[0.8, 0.8, 0.8], label='3P') + # if f_6P_min<1.: + # plt.axvspan(f_6P_min, f_6P_max, alpha=0.5, color=[0.9,0.9,0.9], label='6P') + + # Add specific frequencies if desired + if add_freqs: + co = np.linspace(0.3, 0.0, len(add_freqs)) + if add_freq_labels is None: + add_freq_labels = [None]*len(add_freqs) + for freq, flabel, c in zip(add_freqs, add_freq_labels, co): + plt.axvline(freq, color=[c, c, c]) # , label=flabel) + trans = transforms.blended_transform_factory(ax.transData, ax.transAxes) + plt.text(freq+(10**np.floor(np.log10(freq))/10), 0.01, flabel, transform=trans) + + # Formatting + plt.legend(loc='best') + if len(list(cases)) > 1: + plt.ylabel('PSD') + else: + unit_idx = fastout[run]['meta']['channels'].index(channel) + plt.ylabel( + 'PSD ({}$^2$/Hz)'.format(fastout[run]['meta']['attribute_units'][unit_idx])) + plt.xlabel('Frequency (Hz)') + plt.grid(True) + + if showplot: + plt.show() + + return fig, ax + + +def load_ascii_output(filename): + ''' + Load FAST ascii output file + + Parameters + ---------- + filename : str + filename + + Returns + ------- + data : ndarray + data values + info : dict + info containing: + - name: filename + - description: description of dataset + - channels: list of attribute names + - attribute_units: list of attribute units + ''' + with open(filename) as f: + info = {} + info['name'] = os.path.splitext(os.path.basename(filename))[0] + # Header is whatever is before the keyword `time` + in_header = True + header = [] + while in_header: + l = f.readline() + if not l: + raise Exception('Error finding the end of FAST out file header. Keyword Time missing.') + in_header= (l+' dummy').lower().split()[0] != 'time' + if in_header: + header.append(l) + else: + info['description'] = header + info['channels'] = l.split() + info['attribute_units'] = [unit[1:-1] for unit in f.readline().split()] + + # Data, up to end of file or empty line (potential comment line at the end) + data = np.array([l.strip().split() for l in takewhile(lambda x: len(x.strip())>0, f.readlines())]).astype(np.float) + return data, info + + +def load_binary_output(filename, use_buffer=True): + """ + + Info about ReadFASTbinary.m: + + Original Author: Bonnie Jonkman, National Renewable Energy Laboratory + (c) 2012, National Renewable Energy Laboratory + Edited for FAST v7.02.00b-bjj 22-Oct-2012 + 03/09/15: Ported from ReadFASTbinary.m by Mads M Pedersen, DTU Wind + 10/24/18: Low memory/buffered version by E. Branlard, NREL + 18/01/19: New file format for exctended channels, by E. Branlard, NREL + 11/4/19: Implemented in ROSCO toolbox by N. Abbas, NREL + 8/6/20: Synced between rosco toolbox and weio by P Bortolotti, NREL + + Parameters + ---------- + filename : str + filename + Returns + ------- + data : ndarray + data values + info : dict + info containing: + - name: filename + - description: description of dataset + - channels: list of attribute names + - attribute_units: list of attribute units + """ + def fread(fid, n, type): + fmt, nbytes = {'uint8': ('B', 1), 'int16':('h', 2), 'int32':('i', 4), 'float32':('f', 4), 'float64':('d', 8)}[type] + return struct.unpack(fmt * n, fid.read(nbytes * n)) + + def freadRowOrderTableBuffered(fid, n, type_in, nCols, nOff=0, type_out='float64'): + """ + Reads of row-ordered table from a binary file. + Read `n` data of type `type_in`, assumed to be a row ordered table of `nCols` columns. + Memory usage is optimized by allocating the data only once. + Buffered reading is done for improved performances (in particular for 32bit python) + `nOff` allows for additional column space at the begining of the storage table. + Typically, `nOff=1`, provides a column at the beginning to store the time vector. + @author E.Branlard, NREL + """ + fmt, nbytes = {'uint8': ('B', 1), 'int16':('h', 2), 'int32':('i', 4), 'float32':('f', 4), 'float64':('d', 8)}[type_in] + nLines = int(n/nCols) + GoodBufferSize = 4096*40 + nLinesPerBuffer = int(GoodBufferSize/nCols) + BufferSize = nCols * nLinesPerBuffer + nBuffer = int(n/BufferSize) + # Allocation of data + data = np.zeros((nLines,nCols+nOff), dtype = type_out) + # Reading + try: + nIntRead = 0 + nLinesRead = 0 + while nIntRead len(fd['Time']): + raise ValueError('The initial time to trim {} to is after the end of the simulation.'.format(fd['meta']['name'])) + + # # Modify time + fd['Time'] = fd['Time'][T0ind:Tfind] - fd['Time'][T0ind] + + # Remove all vales in data where time is not in desired range + for key in fd.keys(): + if key.lower() not in ['time', 'meta']: + fd[key] = fd[key][T0ind:Tfind] + + + return fast_data diff --git a/ofTools/fast_io/pyIECWind.py b/ofTools/fast_io/pyIECWind.py new file mode 100644 index 000000000..2305e4fc0 --- /dev/null +++ b/ofTools/fast_io/pyIECWind.py @@ -0,0 +1,558 @@ +import numpy as np +import os, sys +# import matplotlib.pyplot as plt + +from ofTools.fast_io.turbsim_io.turbsim_writer import TurbsimBuilder +from ofTools.fast_io.turbsim_io.turbsim_wrapper import Turbsim_wrapper +from ofTools.fast_io.turbsim_io.turbsim_vartrees import turbsiminputs + +# from AeroelasticSE.Turbsim_mdao.pyturbsim_wrapper import pyTurbsim_wrapper + +class pyIECWind_extreme(): + + def __init__(self): + + self.Turbine_Class = 'I' # IEC Wind Turbine Class + self.Turbulence_Class = 'B' # IEC Turbulance Class + self.Vert_Slope = 0 # Vertical slope of the wind inflow (deg) + self.TStart = 30 # Time to start transient conditions (s) + self.dt = 0.05 # Transient wind time step (s) + self.dir_change = 'both' # '+','-','both': sign for transient events in EDC, EWS + self.shear_orient = 'both' # 'v','h','both': vertical or horizontal shear for EWS + self.z_hub = 90. # wind turbine hub height (m) + self.D = 126. # rotor diameter (m) + + self.T0 = 0. + self.TF = 630. + + def setup(self): + # General turbulence parameters: 6.3 + # Sigma_1: logitudinal turbulence scale parameter + + # Setup + if self.Turbine_Class == 'I': + self.V_ref = 50. + elif self.Turbine_Class == 'II': + self.V_ref = 42.5 + elif self.Turbine_Class == 'III': + self.V_ref = 37.5 + elif self.Turbine_Class == 'IV': + self.V_ref = 30. + self.V_ave = self.V_ref*0.2 + + if self.Turbulence_Class == 'A+': + self.I_ref = 0.18 + elif self.Turbulence_Class == 'A': + self.I_ref = 0.16 + elif self.Turbulence_Class == 'B': + self.I_ref = 0.14 + elif self.Turbulence_Class == 'C': + self.I_ref = 0.12 + + if self.z_hub > 60: + self.Sigma_1 = 42 + else: + self.Sigma_1 = 0.7*self.z_hub + + + def NTM(self, V_hub): + # Normal turbulence model: 6.3.1.3 + b = 5.6 + sigma_1 = self.I_ref*(0.75*V_hub + b) + return sigma_1 + + def ETM(self, V_hub): + # Extreme turbulence model: 6.3.2.3 + c = 2 + sigma_1 = c*self.I_ref*(0.072*(self.V_ave/c + 3)*(V_hub/c - 4) + 10) + return sigma_1 + + def EWM(self, V_hub): + # Extreme wind speed model: 6.3.2.1 + + # Steady + V_e50 = 1.4*self.V_ref + V_e1 = 0.8*V_e50 + # Turb + V_50 = self.V_ref + V_1 = 0.8*V_50 + sigma_1 = 0.11*V_hub + + return sigma_1, V_e50, V_e1, V_50, V_1 + + def EOG(self, V_hub_in): + # Extreme operating guest: 6.3.2.2 + + self.setup() + + T = 10.5 + t = np.linspace(0., T, num=(T/self.dt+1)) + + # constants from standard + alpha = 0.2 + + # Flow angle adjustments + V_hub = V_hub_in*np.cos(self.Vert_Slope*np.pi/180) + V_vert_mag = V_hub_in*np.sin(self.Vert_Slope*np.pi/180) + + sigma_1 = self.NTM(V_hub) + __, __, V_e1, __, __ = self.EWM(V_hub) + + # Contant variables + V = np.zeros_like(t)+V_hub + V_dir = np.zeros_like(t) + V_vert = np.zeros_like(t)+V_vert_mag + shear_horz = np.zeros_like(t) + shear_vert = np.zeros_like(t)+alpha + shear_vert_lin = np.zeros_like(t) + V_gust = np.zeros_like(t) + + V_gust = min([ 1.35*(V_e1 - V_hub), 3.3*(sigma_1/(1+0.1*(self.D/self.Sigma_1))) ]) + + V_gust_t = np.zeros_like(t) + for i, ti in enumerate(t): + if ti 180.: + Theta_e = 180. + + Theta_p = np.zeros_like(t) + Theta_n = np.zeros_like(t) + for i, ti in enumerate(t): + if ti self.iMax: + raise StopIteration + else: + self.iCurrent += 1 + return self.data[self.iCurrent] + + # Making it behave like a dictionary + def __setitem__(self,key,item): + I = self.getIDs(key) + for i in I: + self.data[i]['value'] = item + + def __getitem__(self,key): + i = self.getID(key) + return self.data[i]['value'] + + def __repr__(self): + s ='Fast input file: {}\n'.format(self.filename) + return s+'\n'.join(['{:15s}: {}'.format(d['label'],d['value']) for i,d in enumerate(self.data)]) + + def addKeyVal(self,key,val,descr=None): + d=getDict() + d['label']=key + d['value']=val + if descr is not None: + d['descr']=descr + self.data.append(d) + + def _read(self): + + # TODO members for BeamDyn with mutliple key point ####### TODO PropSetID is Duplicate SubDyn and used in HydroDyn + NUMTAB_FROM_VAL_DETECT = ['HtFract' , 'TwrElev' , 'BlFract' , 'Genspd_TLU' , 'BlSpn' , 'WndSpeed' , 'HvCoefID' , 'AxCoefID' , 'JointID' , 'Dpth' , 'FillNumM' , 'MGDpth' , 'SimplCd' , 'RNodes' , 'kp_xr' , 'mu1' , 'TwrHtFr' , 'TwrRe' , 'RJointID' , 'IJointID' , 'COSMID' , 'CMJointID' , 'WT_X'] + NUMTAB_FROM_VAL_DIM_VAR = ['NTwInpSt' , 'NumTwrNds' , 'NBlInpSt' , 'DLL_NumTrq' , 'NumBlNds' , 'NumCases' , 'NHvCoef' , 'NAxCoef' , 'NJoints' , 'NCoefDpth' , 'NFillGroups' , 'NMGDepths' , 1 , 'BldNodes' , 'kp_total' , 1 , 'NTwrHt' , 'NTwrRe' , 'NReact' , 'NInterf' , 'NCOSMs' , 'NCmass' , 'NumTurbines'] + NUMTAB_FROM_VAL_VARNAME = ['TowProp' , 'TowProp' , 'BldProp' , 'DLLProp' , 'BldAeroNodes' , 'Cases' , 'HvCoefs' , 'AxCoefs' , 'Joints' , 'DpthProp' , 'FillGroups' , 'MGProp' , 'SmplProp' , 'BldAeroNodes' , 'MemberGeom' , 'DampingCoeffs' , 'TowerProp' , 'TowerRe' , 'BaseReactJoints' , 'InterfaceJoints' , 'MemberCosineMatrix' , 'ConcentratedMasses','WindTurbines'] + NUMTAB_FROM_VAL_NHEADER = [2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 1 , 2 , 2 , 1 , 1 , 2 , 2 , 2 , 2 ,2] + NUMTAB_FROM_VAL_TYPE = ['num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'mix' , 'num' , 'num' , 'num' , 'num' , 'mix' , 'num' , 'num' , 'num' ,'mix'] + NUMTAB_FROM_VAL_DETECT_L = [s.lower() for s in NUMTAB_FROM_VAL_DETECT] + + # NOTE: MJointID1, used by SubDyn and HydroDyn + NUMTAB_FROM_LAB_DETECT = ['NumAlf' , 'F_X' , 'MemberCd1' , 'MJointID1' , 'NOutLoc' , 'NOutCnt' , 'PropD' , 'YoungE' , 'YoungE' ] + NUMTAB_FROM_LAB_DIM_VAR = ['NumAlf' , 'NKInpSt' , 'NCoefMembers' , 'NMembers' , 'NMOutputs' , 'NMOutputs' , 'NPropSets' , 'NPropSets' , 'NXPropSets' ] + NUMTAB_FROM_LAB_VARNAME = ['AFCoeff' , 'TMDspProp' , 'MemberProp' , 'Members' , 'MemberOuts' , 'MemberOuts' , 'MemberSectionProp' , 'MemberSectionProp' , 'MemberSectionProp2' ] + NUMTAB_FROM_LAB_TYPE = ['num' , 'num' , 'num' , 'mix' , 'num' , 'num' , 'num' , 'num' , 'num' ] + NUMTAB_FROM_LAB_DETECT_L = [s.lower() for s in NUMTAB_FROM_LAB_DETECT] + + FILTAB_FROM_LAB_DETECT = ['FoilNm' ,'AFNames'] + FILTAB_FROM_LAB_DIM_VAR = ['NumFoil','NumAFfiles'] + FILTAB_FROM_LAB_VARNAME = ['FoilNm' ,'AFNames'] + FILTAB_FROM_LAB_DETECT_L = [s.lower() for s in FILTAB_FROM_LAB_DETECT] + + self.data = [] + self.module = None + #with open(self.filename, 'r', errors="surrogateescape") as f: + with open(self.filename, 'r', errors="surrogateescape") as f: + lines=f.read().splitlines() + # IF NEEDED> DO THE FOLLOWING FORMATTING: + #lines = [str(l).encode('utf-8').decode('ascii','ignore') for l in f.read().splitlines()] + + # Fast files start with ! or - + #if lines[0][0]!='!' and lines[0][0]!='-': + # raise Exception('Fast file do not start with ! or -, is it the right format?') + + # Special filetypes + if self.detectAndReadExtPtfmSE(lines): + return + if self.detectAndReadAirfoil(lines): + return + + # Parsing line by line, storing each line into a dictionary + i=0 + nComments = 0 + nWrongLabels = 0 + allowSpaceSeparatedList=False + while i0 \ + or line.upper().find('MESH-BASED OUTPUTS')>0 \ + or line.upper().find('OUTPUT CHANNELS' )>0: + # TODO, lazy implementation so far, MAKE SUB FUNCTION + parts = re.match(r'^\W*\w+', line) + if parts: + firstword = parts.group(0).strip() + else: + raise NotImplementedError + remainer = re.sub(r'^\W*\w+\W*', '', line) + # Parsing outlist, and then we continue at a new "i" (to read END etc.) + OutList,i = parseFASTOutList(lines,i+1) + d = getDict() + d['label'] = firstword + d['descr'] = remainer + d['tabType'] = TABTYPE_FIL # TODO + d['value'] = ['']+OutList + self.data.append(d) + if i>=len(lines): + break + + # --- Here we cheat and force an exit of the input file + # The reason for this is that some files have a lot of things after the END, which will result in the file being intepreted as a wrong format due to too many comments + if i+20: + print('>>>Bld Nodal outputs present') + else: + self.data.append(parseFASTInputLine('END of input file (the word "END" must appear in the first 3 columns of this last OutList line)',i+1)) + self.data.append(parseFASTInputLine('---------------------------------------------------------------------------------------',i+2)) + break + elif line.upper().find('SSOUTLIST' )>0: + # SUBDYN Outlist doesn not follow regular format + self.data.append(parseFASTInputLine(line,i)) + # OUTLIST Exception for BeamDyn + OutList,i = parseFASTOutList(lines,i+1) + # TODO + for o in OutList: + d = getDict() + d['isComment'] = True + d['value']=o + self.data.append(d) + # --- Here we cheat and force an exit of the input file + self.data.append(parseFASTInputLine('END of input file (the word "END" must appear in the first 3 columns of this last OutList line)',i+1)) + self.data.append(parseFASTInputLine('---------------------------------------------------------------------------------------',i+2)) + break + + elif line.upper().find('ADDITIONAL STIFFNESS')>0: + # TODO, lazy implementation so far, MAKE SUB FUNCTION + self.data.append(parseFASTInputLine(line,i)) + i +=1 + KDAdd = [] + for _ in range(19): + KDAdd.append(lines[i]) + i +=1 + d = getDict() + d['label'] = 'KDAdd' # TODO + d['tabType'] = TABTYPE_FIL # TODO + d['value'] = KDAdd + self.data.append(d) + if i>=len(lines): + break + elif line.upper().find('DISTRIBUTED PROPERTIES')>0: + self.data.append(parseFASTInputLine(line,i)); + i+=1; + self.readBeamDynProps(lines,i) + return + + # --- Parsing of standard lines: value(s) key comment + line = lines[i] + d = parseFASTInputLine(line,i,allowSpaceSeparatedList) + + # --- Handling of special files + if d['label'].lower()=='kp_total': + # BeamDyn has weird space speparated list around keypoint definition + allowSpaceSeparatedList=True + elif d['label'].lower()=='numcoords': + # TODO, lazy implementation so far, MAKE SUB FUNCTION + if isStr(d['value']): + if d['value'][0]=='@': + # it's a ref to the airfoil coord file + pass + else: + if not strIsInt(d['value']): + raise WrongFormatError('Wrong value of NumCoords') + if int(d['value'])<=0: + pass + else: + self.data.append(d); i+=1; + # 3 comment lines + self.data.append(parseFASTInputLine(lines[i],i)); i+=1; + self.data.append(parseFASTInputLine(lines[i],i)); i+=1; + self.data.append(parseFASTInputLine(lines[i],i)); i+=1; + splits=cleanAfterChar(cleanLine(lines[i]),'!').split() + # Airfoil ref point + try: + pos=[float(splits[0]), float(splits[1])] + except: + raise WrongFormatError('Wrong format while reading coordinates of airfoil reference') + i+=1 + d = getDict() + d['label'] = 'AirfoilRefPoint' + d['value'] = pos + self.data.append(d) + # 2 comment lines + self.data.append(parseFASTInputLine(lines[i],i)); i+=1; + self.data.append(parseFASTInputLine(lines[i],i)); i+=1; + # Table of coordinats itself + d = getDict() + d['label'] = 'AirfoilCoord' + d['tabDimVar'] = 'NumCoords' + d['tabType'] = TABTYPE_NUM_WITH_HEADERCOM + nTabLines = self[d['tabDimVar']]-1 # SOMEHOW ONE DATA POINT LESS + d['value'], d['tabColumnNames'],_ = parseFASTNumTable(self.filename,lines[i:i+nTabLines+1],nTabLines,i,1) + d['tabUnits'] = ['(-)','(-)'] + self.data.append(d) + break + + + + #print('label>',d['label'],'<',type(d['label'])); + #print('value>',d['value'],'<',type(d['value'])); + #print(isStr(d['value'])) + #if isStr(d['value']): + # print(d['value'].lower() in NUMTAB_FROM_VAL_DETECT_L) + + + # --- Handling of tables + if isStr(d['value']) and d['value'].lower() in NUMTAB_FROM_VAL_DETECT_L: + # Table with numerical values, + ii = NUMTAB_FROM_VAL_DETECT_L.index(d['value'].lower()) + tab_type = NUMTAB_FROM_VAL_TYPE[ii] + if tab_type=='num': + d['tabType'] = TABTYPE_NUM_WITH_HEADER + else: + d['tabType'] = TABTYPE_MIX_WITH_HEADER + d['label'] = NUMTAB_FROM_VAL_VARNAME[ii] + d['tabDimVar'] = NUMTAB_FROM_VAL_DIM_VAR[ii] + nHeaders = NUMTAB_FROM_VAL_NHEADER[ii] + nTabLines=0 + if isinstance(d['tabDimVar'],int): + nTabLines = d['tabDimVar'] + else: + nTabLines = self[d['tabDimVar']] + #print('Reading table {} Dimension {} (based on {})'.format(d['label'],nTabLines,d['tabDimVar'])); + d['value'], d['tabColumnNames'], d['tabUnits'] = parseFASTNumTable(self.filename,lines[i:i+nTabLines+nHeaders],nTabLines,i,nHeaders,tableType=tab_type) + i += nTabLines+nHeaders-1 + + # --- Temporary hack for e.g. SubDyn, that has duplicate table, impossible to detect in the current way... + # So we remove the element form the list one read + del NUMTAB_FROM_VAL_DETECT[ii] + del NUMTAB_FROM_VAL_DIM_VAR[ii] + del NUMTAB_FROM_VAL_VARNAME[ii] + del NUMTAB_FROM_VAL_NHEADER[ii] + del NUMTAB_FROM_VAL_TYPE [ii] + del NUMTAB_FROM_VAL_DETECT_L[ii] + + elif isStr(d['label']) and d['label'].lower() in NUMTAB_FROM_LAB_DETECT_L: + ii = NUMTAB_FROM_LAB_DETECT_L.index(d['label'].lower()) + tab_type = NUMTAB_FROM_LAB_TYPE[ii] + # Special case for airfoil data, the table follows NumAlf, so we add d first + if d['label'].lower()=='numalf': + d['tabType']=TABTYPE_NOT_A_TAB + self.data.append(d) + # Creating a new dictionary for the table + d = {'value':None, 'label':'NumAlf', 'isComment':False, 'descr':'', 'tabType':None} + i += 1 + d['label'] = NUMTAB_FROM_LAB_VARNAME[ii] + d['tabDimVar'] = NUMTAB_FROM_LAB_DIM_VAR[ii] + if d['label'].lower()=='afcoeff' : + d['tabType'] = TABTYPE_NUM_WITH_HEADERCOM + else: + if tab_type=='num': + d['tabType'] = TABTYPE_NUM_WITH_HEADER + else: + d['tabType'] = TABTYPE_MIX_WITH_HEADER + nTabLines = self[d['tabDimVar']] + #print('Reading table {} Dimension {} (based on {})'.format(d['label'],nTabLines,d['tabDimVar'])); + d['value'], d['tabColumnNames'], d['tabUnits'] = parseFASTNumTable(self.filename,lines[i:i+nTabLines+2],nTabLines,i,2,tableType=tab_type) + i += nTabLines+1 + + # --- Temporary hack for e.g. SubDyn, that has duplicate table, impossible to detect in the current way... + # So we remove the element form the list one read + del NUMTAB_FROM_LAB_DETECT[ii] + del NUMTAB_FROM_LAB_DIM_VAR[ii] + del NUMTAB_FROM_LAB_VARNAME[ii] + del NUMTAB_FROM_LAB_TYPE [ii] + del NUMTAB_FROM_LAB_DETECT_L[ii] + + elif isStr(d['label']) and d['label'].lower() in FILTAB_FROM_LAB_DETECT_L: + ii = FILTAB_FROM_LAB_DETECT_L.index(d['label'].lower()) + d['label'] = FILTAB_FROM_LAB_VARNAME[ii] + d['tabDimVar'] = FILTAB_FROM_LAB_DIM_VAR[ii] + d['tabType'] = TABTYPE_FIL + nTabLines = self[d['tabDimVar']] + #print('Reading table {} Dimension {} (based on {})'.format(d['label'],nTabLines,d['tabDimVar'])); + d['value'] = parseFASTFilTable(lines[i:i+nTabLines],nTabLines,i) + i += nTabLines-1 + + + + self.data.append(d) + i += 1 + # --- Safety checks + if d['isComment']: + #print(line) + nComments +=1 + else: + if hasSpecialChars(d['label']): + nWrongLabels +=1 + #print('label>',d['label'],'<',type(d['label']),line); + if i>3: # first few lines may be comments, we allow it + #print('Line',i,'Label:',d['label']) + raise WrongFormatError('Special Character found in Label: `{}`'.format(d['label'])) + if len(d['label'])==0: + nWrongLabels +=1 + if nComments>len(lines)*0.35: + #print('Comment fail',nComments,len(lines),self.filename) + raise WrongFormatError('Most lines were read as comments, probably not a FAST Input File') + if nWrongLabels>len(lines)*0.10: + #print('Label fail',nWrongLabels,len(lines),self.filename) + raise WrongFormatError('Too many lines with wrong labels, probably not a FAST Input File') + + # --- PostReading checks + labels = self.keys() + duplicates = set([x for x in labels if labels.count(x) > 1]) + if len(duplicates)>0: + print('[WARN] Duplicate labels found in file: '+self.filename) + print(' Duplicates: '+', '.join(duplicates)) + print(' It\'s strongly recommended to make them unique! ') +# except WrongFormatError as e: +# raise WrongFormatError('Fast File {}: '.format(self.filename)+'\n'+e.args[0]) +# except Exception as e: +# raise e +# # print(e) +# raise Exception('Fast File {}: '.format(self.filename)+'\n'+e.args[0]) + + + def toString(self): + s='' + # Special file formats, TODO subclass + if self.module=='ExtPtfm': + s+='!Comment\n' + s+='!Comment Flex 5 Format\n' + s+='!Dimension: {}\n'.format(self['nDOF']) + s+='!Time increment in simulation: {}\n'.format(self['dt']) + s+='!Total simulation time in file: {}\n'.format(self['T']) + + s+='\n!Mass Matrix\n' + s+='!Dimension: {}\n'.format(self['nDOF']) + s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in self['MassMatrix']) + + s+='\n\n!Stiffness Matrix\n' + s+='!Dimension: {}\n'.format(self['nDOF']) + s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in self['StiffnessMatrix']) + + s+='\n\n!Damping Matrix\n' + s+='!Dimension: {}\n'.format(self['nDOF']) + s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in self['DampingMatrix']) + + s+='\n\n!Loading and Wave Elevation\n' + s+='!Dimension: 1 time column - {} force columns\n'.format(self['nDOF']) + s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in self['Loading']) + return s + + def toStringVLD(val,lab,descr): + val='{}'.format(val) + lab='{}'.format(lab) + if len(val)<13: + val='{:13s}'.format(val) + if len(lab)<13: + lab='{:13s}'.format(lab) + return val+' '+lab+' - '+descr.strip().strip('-').strip()+'\n' + + for i in range(len(self.data)): + d=self.data[i] + if d['isComment']: + s+='{}'.format(d['value']) + elif d['tabType']==TABTYPE_NOT_A_TAB: + if isinstance(d['value'], list): + sList=', '.join([str(x) for x in d['value']]) + s+='{} {} {}'.format(sList,d['label'],d['descr']) + else: + s+=toStringVLD(d['value'],d['label'],d['descr']).strip() + elif d['tabType']==TABTYPE_NUM_WITH_HEADER: + s+='{}'.format(' '.join(['{:15s}'.format(s) for s in d['tabColumnNames']])) + #s+=d['descr'] # Not ready for that + if d['tabUnits'] is not None: + s+='\n' + s+='{}'.format(' '.join(['{:15s}'.format(s) for s in d['tabUnits']])) + if np.size(d['value'],0) > 0 : + s+='\n' + s+='\n'.join('\t'.join( ('{:15.0f}'.format(x) if int(x)==x else '{:15.8e}'.format(x) ) for x in y) for y in d['value']) + elif d['tabType']==TABTYPE_MIX_WITH_HEADER: + s+='{}'.format(' '.join(['{:15s}'.format(s) for s in d['tabColumnNames']])) + if d['tabUnits'] is not None: + s+='\n' + s+='{}'.format(' '.join(['{:15s}'.format(s) for s in d['tabUnits']])) + if np.size(d['value'],0) > 0 : + s+='\n' + s+='\n'.join('\t'.join('{}'.format(x) for x in y) for y in d['value']) + elif d['tabType']==TABTYPE_NUM_WITH_HEADERCOM: + s+='! {}\n'.format(' '.join(['{:15s}'.format(s) for s in d['tabColumnNames']])) + s+='! {}\n'.format(' '.join(['{:15s}'.format(s) for s in d['tabUnits']])) + s+='\n'.join('\t'.join('{:15.8e}'.format(x) for x in y) for y in d['value']) + elif d['tabType']==TABTYPE_FIL: + #f.write('{} {} {}\n'.format(d['value'][0],d['tabDetect'],d['descr'])) + s+='{} {} {}\n'.format(d['value'][0],d['label'],d['descr']) # TODO? + s+='\n'.join(fil for fil in d['value'][1:]) + else: + raise Exception('Unknown table type for variable {}',d) + if i0: + # Hack for blade files, we add the modes + x=Val[:,0] + Modes=np.zeros((x.shape[0],3)) + Modes[:,0] = x**2 * self['BldFl1Sh(2)'] \ + + x**3 * self['BldFl1Sh(3)'] \ + + x**4 * self['BldFl1Sh(4)'] \ + + x**5 * self['BldFl1Sh(5)'] \ + + x**6 * self['BldFl1Sh(6)'] + Modes[:,1] = x**2 * self['BldFl2Sh(2)'] \ + + x**3 * self['BldFl2Sh(3)'] \ + + x**4 * self['BldFl2Sh(4)'] \ + + x**5 * self['BldFl2Sh(5)'] \ + + x**6 * self['BldFl2Sh(6)'] + Modes[:,2] = x**2 * self['BldEdgSh(2)'] \ + + x**3 * self['BldEdgSh(3)'] \ + + x**4 * self['BldEdgSh(4)'] \ + + x**5 * self['BldEdgSh(5)'] \ + + x**6 * self['BldEdgSh(6)'] + Val = np.hstack((Val,Modes)) + Cols = Cols + ['ShapeFlap1_[-]','ShapeFlap2_[-]','ShapeEdge1_[-]'] + + elif self.getIDSafe('TwFAM1Sh(2)')>0: + # Hack for tower files, we add the modes + x=Val[:,0] + Modes=np.zeros((x.shape[0],4)) + Modes[:,0] = x**2 * self['TwFAM1Sh(2)'] \ + + x**3 * self['TwFAM1Sh(3)'] \ + + x**4 * self['TwFAM1Sh(4)'] \ + + x**5 * self['TwFAM1Sh(5)'] \ + + x**6 * self['TwFAM1Sh(6)'] + Modes[:,1] = x**2 * self['TwFAM2Sh(2)'] \ + + x**3 * self['TwFAM2Sh(3)'] \ + + x**4 * self['TwFAM2Sh(4)'] \ + + x**5 * self['TwFAM2Sh(5)'] \ + + x**6 * self['TwFAM2Sh(6)'] + Modes[:,2] = x**2 * self['TwSSM1Sh(2)'] \ + + x**3 * self['TwSSM1Sh(3)'] \ + + x**4 * self['TwSSM1Sh(4)'] \ + + x**5 * self['TwSSM1Sh(5)'] \ + + x**6 * self['TwSSM1Sh(6)'] + Modes[:,3] = x**2 * self['TwSSM2Sh(2)'] \ + + x**3 * self['TwSSM2Sh(3)'] \ + + x**4 * self['TwSSM2Sh(4)'] \ + + x**5 * self['TwSSM2Sh(5)'] \ + + x**6 * self['TwSSM2Sh(6)'] + Val = np.hstack((Val,Modes)) + Cols = Cols + ['ShapeForeAft1_[-]','ShapeForeAft2_[-]','ShapeSideSide1_[-]','ShapeSideSide2_[-]'] + + name=d['label'] + dfs[name]=pd.DataFrame(data=Val,columns=Cols) + elif d['tabType'] in [TABTYPE_NUM_BEAMDYN]: + data = d['value'] + Cols =['Span'] + Cols+=['K{}{}'.format(i+1,j+1) for i in range(6) for j in range(6)] + Cols+=['M{}{}'.format(i+1,j+1) for i in range(6) for j in range(6)] + # Putting the main terms first + IAll = range(1+36+36) + IMain= [0] + [i*6+i+1 for i in range(6)] + [i*6+i+37 for i in range(6)] + IOrg = IMain + [i for i in range(1+36+36) if i not in IMain] + Cols = [Cols[i] for i in IOrg] + data = data[:,IOrg] + name=d['label'] + dfs[name]=pd.DataFrame(data=data,columns=Cols) + if len(dfs)==1: + dfs=dfs[list(dfs.keys())[0]] + return dfs + +# --------------------------------------------------------------------------------} +# --- SubReaders /detectors +# --------------------------------------------------------------------------------{ + def detectAndReadExtPtfmSE(self,lines): + def readmat(n,m,lines,iStart): + M=np.zeros((n,m)) + for j in np.arange(n): + i=iStart+j + M[j,:]=np.array(lines[i].split()).astype(float) + return M + if len(lines)<10: + return False + if not (lines[0][0]=='!' and lines[1][0]=='!'): + return False + if lines[1].lower().find('flex')<0: + return + if lines[2].lower().find('!dimension')<0: + return + # --- At this stage we assume it's in the proper format + self.module='ExtPtfm' + nDOFCommon = -1 + i=2; + try: + while i0: + if l[0]=='!': + if l.find('!dimension')==0: + self.addKeyVal('nDOF',int(l.split(':')[1])) + nDOFCommon=self['nDOF'] + elif l.find('!time increment')==0: + self.addKeyVal('dt',np.float(l.split(':')[1])) + elif l.find('!total simulation time')==0: + self.addKeyVal('T',np.float(l.split(':')[1])) + else: + raise BrokenFormatError('Unexcepted content found on line {}'.format(i)) + i+=1 + except BrokenFormatError as e: + raise e + except: + raise + + + return True + + + + def detectAndReadAirfoil(self,lines): + if len(lines)<14: + return False + # Reading number of tables + L3 = lines[2].strip().split() + if len(L3)<=0: + return False + if not strIsInt(L3[0]): + return False + nTables=int(L3[0]) + # Reading table ID + L4 = lines[3].strip().split() + if len(L4)<=nTables: + return False + TableID=L4[:nTables] + if nTables==1: + TableID=[''] + # Keywords for file format + KW1=lines[12].strip().split() + KW2=lines[13].strip().split() + if len(KW1)>nTables and len(KW2)>nTables: + if KW1[nTables].lower()=='angle' and KW2[nTables].lower()=='minimum': + d = getDict(); d['isComment'] = True; d['value'] = lines[0]; self.data.append(d); + d = getDict(); d['isComment'] = True; d['value'] = lines[1]; self.data.append(d); + for i in range(2,14): + splits = lines[i].split() + #print(splits) + d = getDict() + d['label'] = ' '.join(splits[1:]) # TODO + d['descr'] = ' '.join(splits[1:]) # TODO + d['value'] = float(splits[0]) + self.data.append(d) + #pass + #for i in range(2,14): + nTabLines=0 + while 14+nTabLines0 : + nTabLines +=1 + #data = np.array([lines[i].strip().split() for i in range(14,len(lines)) if len(lines[i])>0]).astype(np.float) + #data = np.array([lines[i].strip().split() for i in takewhile(lambda x: len(lines[i].strip())>0, range(14,len(lines)-1))]).astype(np.float) + data = np.array([lines[i].strip().split() for i in range(14,nTabLines+14)]).astype(np.float) + #print(data) + d = getDict() + d['label'] = 'Polar' + d['tabDimVar'] = nTabLines + d['tabType'] = TABTYPE_NUM_NO_HEADER + d['value'] = data + if np.size(data,1)==1+nTables*3: + d['tabColumnNames'] = ['Alpha']+[n+l for l in TableID for n in ['Cl','Cd','Cm']] + d['tabUnits'] = ['(deg)']+['(-)' , '(-)' , '(-)']*nTables + elif np.size(data,1)==1+nTables*2: + d['tabColumnNames'] = ['Alpha']+[n+l for l in TableID for n in ['Cl','Cd']] + d['tabUnits'] = ['(deg)']+['(-)' , '(-)']*nTables + else: + d['tabColumnNames'] = ['col{}'.format(j) for j in range(np.size(data,1))] + self.data.append(d) + return True + + def readBeamDynProps(self,lines,iStart): + nStations=self['station_total'] + M=np.zeros((nStations,1+36+36)) + i=iStart; + try: + for j in range(nStations): + M[j,0]=float(lines[i]); i+=1; + LL = lines[i:i+6] + M[j,1:37]=np.array((' '.join(lines[i:i+6])).split()).astype(np.float) + i+=7 + M[j,37:]=np.array((' '.join(lines[i:i+6])).split()).astype(np.float) + i+=7 + except: + raise WrongFormatError('An error occured while reading section {}/{}'.format(j+1,nStations)) + d = getDict() + d['label'] = 'BeamProperties' + d['descr'] = '' + d['tabType'] = TABTYPE_NUM_BEAMDYN + d['value'] = M + self.data.append(d) + + +# --------------------------------------------------------------------------------} +# --- Helper functions +# --------------------------------------------------------------------------------{ +def isStr(s): + # Python 2 and 3 compatible + # Two options below + # NOTE: all this avoided since we import str from builtins + # --- Version 2 + # isString = False; + # if(isinstance(s, str)): + # isString = True; + # try: + # if(isinstance(s, basestring)): # todo unicode as well + # isString = True; + # except NameError: + # pass; + # return isString + # --- Version 1 + # try: + # basestring # python 2 + # return isinstance(s, basestring) or isinstance(s,unicode) + # except NameError: + # basestring=str #python 3 + # return isinstance(s, str) + return isinstance(s, str) + +def strIsFloat(s): + #return s.replace('.',',1').isdigit() + try: + float(s) + return True + except: + return False + +def strIsBool(s): + return (s.lower() == 'true') or (s.lower() == 'false') + +def strIsInt(s): + s = str(s) + if s[0] in ('-', '+'): + return s[1:].isdigit() + return s.isdigit() + +def hasSpecialChars(s): + # fast allows for parenthesis + # For now we allow for - but that's because of BeamDyn geometry members + return not re.match("^[\"\'a-zA-Z0-9_()-]*$", s) + +def cleanLine(l): + # makes a string single space separated + l = l.replace('\t',' ') + l = ' '.join(l.split()) + l = l.strip() + return l + +def cleanAfterChar(l,c): + # remove whats after a character + n = l.find(c); + if n>0: + return l[:n] + else: + return l + +def getDict(): + return {'value':None, 'label':'', 'isComment':False, 'descr':'', 'tabType':TABTYPE_NOT_A_TAB} + + +def parseFASTInputLine(line_raw,i,allowSpaceSeparatedList=False): + d = getDict() + #print(line_raw) + try: + # preliminary cleaning (Note: loss of formatting) + line = cleanLine(line_raw) + # Comment + if any(line.startswith(c) for c in ['#','!','--','==']) or len(line)==0: + d['isComment']=True + d['value']=line_raw + return d + + # Detecting lists + List=[]; + iComma=line.find(',') + if iComma>0 and iComma<30: + fakeline=line.replace(' ',',') + fakeline=re.sub(',+',',',fakeline) + csplits=fakeline.split(',') + # Splitting based on comma and looping while it's numbers of booleans + ii=0 + s=csplits[ii] + #print(csplits) + while strIsFloat(s) or strIsBool(s) and ii=len(csplits): + raise WrongFormatError('Wrong number of list values') + s = csplits[ii] + #print('[INFO] Line {}: Found list: '.format(i),List) + # Defining value and remaining splits + if len(List)>=2: + d['value']=List + line_remaining=line + # eating line, removing each values + for iii in range(ii): + sValue=csplits[iii] + ipos=line_remaining.find(sValue) + line_remaining = line_remaining[ipos+len(sValue):] + splits=line_remaining.split() + iNext=0 + else: + # It's not a list, we just use space as separators + splits=line.split(' ') + s=splits[0] + + if strIsInt(s): + d['value']=int(s) + if allowSpaceSeparatedList and len(splits)>1: + if strIsInt(splits[1]): + d['value']=splits[0]+ ' '+splits[1] + elif strIsFloat(s): + d['value']=float(s) + elif strIsBool(s): + d['value']=bool(s) + else: + d['value']=s + iNext=1 + #import pdb ; pdb.set_trace(); + + # Extracting label (TODO, for now only second split) + bOK=False + while (not bOK) and iNext comment assumed'.format(i+1)) + d['isComment']=True + d['value']=line_raw + iNext = len(splits)+1 + + # Recombining description + if len(splits)>=iNext+1: + d['descr']=' '.join(splits[iNext:]) + except WrongFormatError as e: + raise WrongFormatError('Line {}: '.format(i+1)+e.args[0]) + except Exception as e: + raise Exception('Line {}: '.format(i+1)+e.args[0]) + + return d + +def parseFASTOutList(lines,iStart): + OutList=[] + i = iStart + MAX=200 + while iMAX : + raise Exception('More that 200 lines found in outlist') + if i>=len(lines): + print('[WARN] End of file reached while reading Outlist') + #i=min(i+1,len(lines)) + return OutList,iStart+len(OutList) + + +def extractWithinParenthesis(s): + mo = re.search(r'\((.*)\)', s) + if mo: + return mo.group(1) + return '' + +def extractWithinBrackets(s): + mo = re.search(r'\((.*)\)', s) + if mo: + return mo.group(1) + return '' + +def detectUnits(s,nRef): + nPOpen=s.count('(') + nPClos=s.count(')') + nBOpen=s.count('[') + nBClos=s.count(']') + + sep='!#@#!' + if (nPOpen == nPClos) and (nPOpen>=nRef): + #that's pretty good + Units=s.replace('(','').replace(')',sep).split(sep)[:-1] + elif (nBOpen == nBClos) and (nBOpen>=nRef): + Units=s.replace('[','').replace(']',sep).split(sep)[:-1] + else: + Units=s.split() + return Units + + +def parseFASTNumTable(filename,lines,n,iStart,nHeaders=2,tableType='num'): + Tab = None + ColNames = None + Units = None + + if len(lines)!=n+nHeaders: + raise BrokenFormatError('Not enough lines in table: {} lines instead of {}\nFile:{}'.format(len(lines)-nHeaders,n,filename)) + + if nHeaders<1: + raise NotImplementedError('Reading FAST tables with no headers not implemented yet') + + try: + if nHeaders>=1: + # Extract column names + i = 0 + sTmp = cleanLine(lines[i]) + sTmp = cleanAfterChar(sTmp,'[') + if sTmp.startswith('!'): + sTmp=sTmp[1:].strip() + ColNames=sTmp.split() + if nHeaders>=2: + # Extract units + i = 1 + sTmp = cleanLine(lines[i]) + if sTmp.startswith('!'): + sTmp=sTmp[1:].strip() + + Units = detectUnits(sTmp,len(ColNames)) + Units = ['({})'.format(u.strip()) for u in Units] + # Forcing user to match number of units and column names + if len(ColNames) != len(Units): + print(ColNames) + print(Units) + raise Exception('Number of column names different from number of units in table') + + nCols=len(ColNames) + + if tableType=='num': + Tab = np.zeros((n, nCols)) + for i in range(nHeaders,n+nHeaders): + l = lines[i].lower() + v = l.split() + if len(v) > nCols: + print('[WARN] {}: Line {}: number of data different from number of column names'.format(filename, iStart+i+1)) + if len(v) < nCols: + raise Exception('Number of data is lower than number of column names') + # Accounting for TRUE FALSE and converting to float + v = [s.replace('true','1').replace('false','0').replace('noprint','0').replace('print','1') for s in v] + v = [float(s) for s in v[0:nCols]] + if len(v) < nCols: + raise Exception('Number of data is lower than number of column names') + Tab[i-nHeaders,:] = v + elif tableType=='mix': + # a mix table contains a mixed of strings and floats + # For now, we are being a bit more relaxed about the number of columns + Tab = np.zeros((n, nCols)).astype(object) + for i in range(nHeaders,n+nHeaders): + l = lines[i] + v = l.split() + if len(v) != nCols: + print('[WARN] {}: Line {}: Number of data is different than number of column names'.format(filename,iStart+1+i)) + v=v[0:min(len(v),nCols)] + Tab[i-nHeaders,0:len(v)] = v + else: + raise Exception('Unknown table type') + + except Exception as e: + raise BrokenFormatError('Line {}: {}'.format(iStart+i+1,e.args[0])) + return Tab, ColNames, Units + + +def parseFASTFilTable(lines,n,iStart): + Tab = [] + try: + i=0 + if len(lines)!=n: + raise WrongFormatError('Not enough lines in table: {} lines instead of {}'.format(len(lines),n)) + for i in range(n): + l = lines[i].split() + #print(l[0].strip()) + Tab.append(l[0].strip()) + + except Exception as e: + raise Exception('Line {}: '.format(iStart+i+1)+e.args[0]) + return Tab + + +if __name__ == "__main__": + B=FASTInFile('BeamDyn_Blade.dat') + + + diff --git a/ofTools/fast_io/turbsim_io/__init__.py b/ofTools/fast_io/turbsim_io/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ofTools/fast_io/turbsim_io/turbsim_reader.py b/ofTools/fast_io/turbsim_io/turbsim_reader.py new file mode 100644 index 000000000..925590f4f --- /dev/null +++ b/ofTools/fast_io/turbsim_io/turbsim_reader.py @@ -0,0 +1,94 @@ +from turbsim_vartrees import turbsiminputs + +class turbsimReader(object): + def __init__(self): + self.turbsim_vt = turbsiminputs() + def read_input_file(self, input_file_name): + inpf = open(input_file_name, 'r') + + # Runtime Options + inpf.readline() + inpf.readline() + inpf.readline() + self.turbsim_vt.runtime_options.echo = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.RandSeed1 = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.RandSeed2 = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.WrBHHTP = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.WrFHHTP = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.WrADHH = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.WrADFF = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.WrBLFF = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.WrADTWR = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.WrFMTFF = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.WrACT = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.Clockwise = inpf.readline().split()[0] + self.turbsim_vt.runtime_options.ScaleIEC = inpf.readline().split()[0] + + # Turbine/Model Specifications + inpf.readline() + inpf.readline() + self.turbsim_vt.tmspecs.NumGrid_Z = inpf.readline().split()[0] + self.turbsim_vt.tmspecs.NumGrid_Y = inpf.readline().split()[0] + self.turbsim_vt.tmspecs.TimeStep = inpf.readline().split()[0] + self.turbsim_vt.tmspecs.AnalysisTime = inpf.readline().split()[0] + self.turbsim_vt.tmspecs.UsableTime = inpf.readline().split()[0] + self.turbsim_vt.tmspecs.HubHt = inpf.readline().split()[0] + self.turbsim_vt.tmspecs.GridHeight = inpf.readline().split()[0] + self.turbsim_vt.tmspecs.GridWidth = inpf.readline().split()[0] + self.turbsim_vt.tmspecs.VFlowAng = inpf.readline().split()[0] + self.turbsim_vt.tmspecs.HFlowAng = inpf.readline().split()[0] + + # Meteorological Boundary Conditions + inpf.readline() + inpf.readline() + self.turbsim_vt.metboundconds.TurbModel = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.UserFile = inpf.readline().split()[0].replace("'","").replace('"','') + self.turbsim_vt.metboundconds.IECstandard = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.IECturbc = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.IEC_WindType = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.ETMc = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.WindProfileType = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.ProfileFile = inpf.readline().split()[0].replace("'","").replace('"','') + self.turbsim_vt.metboundconds.RefHt = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.URef = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.ZJetMax = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.PLExp = inpf.readline().split()[0] + self.turbsim_vt.metboundconds.Z0 = inpf.readline().split()[0] + + + # Meteorological Boundary Conditions + inpf.readline() + inpf.readline() + self.turbsim_vt.noniecboundconds.Latitude = inpf.readline().split()[0] + self.turbsim_vt.noniecboundconds.RICH_NO = inpf.readline().split()[0] + self.turbsim_vt.noniecboundconds.UStar = inpf.readline().split()[0] + self.turbsim_vt.noniecboundconds.ZI = inpf.readline().split()[0] + self.turbsim_vt.noniecboundconds.PC_UW = inpf.readline().split()[0] + self.turbsim_vt.noniecboundconds.PC_UV = inpf.readline().split()[0] + self.turbsim_vt.noniecboundconds.PC_VW = inpf.readline().split()[0] + + # Spatial Coherence Parameters + inpf.readline() + inpf.readline() + self.turbsim_vt.spatialcoherance.SCMod1 = inpf.readline().split()[0] + self.turbsim_vt.spatialcoherance.SCMod2 = inpf.readline().split()[0] + self.turbsim_vt.spatialcoherance.SCMod3 = inpf.readline().split()[0] + self.turbsim_vt.spatialcoherance.InCDec1 = inpf.readline()[1:-2].split() + self.turbsim_vt.spatialcoherance.InCDec2 = inpf.readline()[1:-2].split() + self.turbsim_vt.spatialcoherance.InCDec3 = inpf.readline()[1:-2].split() + self.turbsim_vt.spatialcoherance.CohExp = inpf.readline().split()[0] + + # Spatial Coherence Parameters + inpf.readline() + inpf.readline() + self.turbsim_vt.coherentTurbulence.CTEventPath = inpf.readline().split()[0] + self.turbsim_vt.coherentTurbulence.CTEventFile = inpf.readline().split()[0] + self.turbsim_vt.coherentTurbulence.Randomize = inpf.readline().split()[0] + self.turbsim_vt.coherentTurbulence.DistScl = inpf.readline().split()[0] + self.turbsim_vt.coherentTurbulence.CTLy = inpf.readline().split()[0] + self.turbsim_vt.coherentTurbulence.CTLz = inpf.readline().split()[0] + self.turbsim_vt.coherentTurbulence.CTStartTime = inpf.readline().split()[0] + +if __name__=='__main__': + reader = turbsimReader() + reader.read_input_file('turbsim_default.in') diff --git a/ofTools/fast_io/turbsim_io/turbsim_vartrees.py b/ofTools/fast_io/turbsim_io/turbsim_vartrees.py new file mode 100644 index 000000000..45873278c --- /dev/null +++ b/ofTools/fast_io/turbsim_io/turbsim_vartrees.py @@ -0,0 +1,104 @@ +from numpy import zeros, array +import numpy as np + +# This variable tree contains all parameters required to create a FAST model +# for FAST versions 7 and 8. + + +########################## +### Main input file ###### +########################## +# Runtime Options +class runtime_options(object): + def __init__(self): + self.echo = False + self.RandSeed1 = np.random.uniform(1, 1e8) + self.RandSeed2 = '"RANLUX"' + self.WrBHHTP = False + self.WrFHHTP = False + self.WrADHH = False + self.WrADFF = True + self.WrBLFF = False + self.WrADTWR = False + self.WrFMTFF = False + self.WrACT = False + self.Clockwise = True + self.ScaleIEC = 0 + +# Turbine/Model Specifications +class tmspecs(object): + def __init__(self): + self.NumGrid_Z = 30 + self.NumGrid_Y = 30 + self.TimeStep = 0.05 + self.AnalysisTime = 630 + self.UsableTime = '"ALL"' + self.HubHt = 90 + self.GridHeight = 138 + self.GridWidth = 138 + self.VFlowAng = 0 + self.HFlowAng = 0 + +# Meteorological Boundary Conditions +class metboundconds(object): + def __init__(self): + self.TurbModel = '"USRINP"' + self.UserFile = 'turbulence_user.inp' + self.IECstandard = '"1-ED3"' + self.IECturbc = '"B"' + self.IEC_WindType = '"NTM"' + self.ETMc = '"default"' + self.WindProfileType = '"USR"' + self.ProfileFile = 'shear.profile' + self.RefHt = 90 + self.URef = 12 + self.ZJetMax = '"default"' + self.PLExp = '"default"' + self.Z0 = '"default"' + +# Non-IEC Meteorological Boundary Conditions +class noniecboundconds(object): + def __init__(self): + self.Latitude = '"default"' + self.RICH_NO = 0 + self.UStar = '"default"' + self.ZI = '"default"' + self.PC_UW = -0.85 + self.PC_UV = 0.15 + self.PC_VW = -0.1 + +# Spatial Coherence Parameters +class spatialcoherance(object): + def __init__(self): + self.SCMod1 = '"GENERAL"' + self.SCMod2 = '"GENERAL"' + self.SCMod3 = '"GENERAL"' + self.InCDec1 = [13.75, 0.04] + self.InCDec2 = [9.85, 0.0015] + self.InCDec3 = [9.5, 0.003] + self.CohExp = 0.5 + +# Coherent Turbulence Scaling Parameters +class coherentTurbulence(object): + def __init__(self): + self.CTEventPath = '"Y:\Wind\Archive\Public\Projects\KH_Billow\EventData"' + self.CTEventFile = '"Random"' + self.Randomize = True + self.DistScl = 1 + self.CTLy = 0.5 + self.CTLz = 0.5 + self.CTStartTime = 30 + +class turbsiminputs(object): + def __init__(self): + self.runtime_options = runtime_options() + self.tmspecs = tmspecs() + self.metboundconds = metboundconds() + self.noniecboundconds = noniecboundconds() + self.spatialcoherance = spatialcoherance() + self.coherentTurbulence = coherentTurbulence() + +########################## +### Turbulance input file ###### +########################## + diff --git a/ofTools/fast_io/turbsim_io/turbsim_wrapper.py b/ofTools/fast_io/turbsim_io/turbsim_wrapper.py new file mode 100644 index 000000000..0c13a35bc --- /dev/null +++ b/ofTools/fast_io/turbsim_io/turbsim_wrapper.py @@ -0,0 +1,36 @@ +import os +import subprocess +class Turbsim_wrapper(object): + def __init__(self): + self.turbsim_exe = 'turbsim' + #self.turbsim_input = './turbsim_default.in' + self.turbsim_input = "/Users/pgraf/work/wese/turbsim_studies/pghacking/TurbSim.inp" + self.run_dir = '.' + self.debug_level = 2 + + def execute(self): + exec_string = [self.turbsim_exe, self.turbsim_input] + olddir = os.getcwd() + os.chdir(self.run_dir) + + if self.debug_level > 0: + print ("EXECUTING TurbSim") + print ("Executable: \t", self.turbsim_exe ) + print ("Run directory: \t", self.run_dir) + print ("Input file: \t", self.turbsim_input) + print ("Exec string: \t", exec_string) + + if self.debug_level > 1: + subprocess.call(exec_string) + else: + FNULL = open(os.devnull, 'w') + subprocess.call(exec_string, stdout=FNULL, stderr=subprocess.STDOUT) + + if self.debug_level > 0: + print ("COMPLETE TurbSim") + + os.chdir(olddir) +if __name__=='__main__': + wrapper = Turbsim_wrapper() + wrapper.turbsim_exe = '/Users/jquick/TurbSim/bin/TurbSim_glin64' + wrapper.execute() diff --git a/ofTools/fast_io/turbsim_io/turbsim_writer.py b/ofTools/fast_io/turbsim_io/turbsim_writer.py new file mode 100644 index 000000000..9d46c5cd0 --- /dev/null +++ b/ofTools/fast_io/turbsim_io/turbsim_writer.py @@ -0,0 +1,166 @@ +from ofTools.fast_io.turbsim_io.turbsim_vartrees import turbsiminputs +from ofTools.fast_io.turbsim_io.turbulence_spectrum import turb_specs +from ofTools.fast_io.turbsim_io.wind_profile_writer import write_wind +import os +import numpy as np +import random +from time import sleep +class TurbsimBuilder(turbsiminputs): + def __init__(self): + self.turbsim_vt = turbsiminputs() + self.tsim_input_file = 'turbsim_default.in' + self.tsim_turbulence_file = 'turbulence_default.in' + self.tsim_profile_file = 'default.shear' + + # Turbulence file parameters + self.wind_speed = 8. + self.L_u = 2.54e+02 + self.L_v=1.635e+02 + self.L_w=4.7e+01 + self.sigma_u=1.325 + self.sigma_v=0.9 + self.sigma_w=0.7625 + self.turbulence_file_name = 'tsim_user_turbulence_default.inp' + self.turbulence_template_file = 'TurbsimInputFiles/turbulence_user.inp' + + # profile file parameters + self.profile_template = 'TurbsimInputFiles/shear.profile' + self.shear_exponent = 0.7 + self.veer = 12.5 + self.turbsim_vt.metboundconds.ProfileFile = 'default.profile' + + self.run_dir = 'run%d'%np.random.uniform(0,1e10) + + def execute(self, write_specs=False, write_profile=False): + if not os.path.exists(self.run_dir): + try: + sleep(random.uniform(0, 1)) + if not os.path.exists(self.run_dir): + os.makedirs(self.run_dir) + except: + pass + + # Write turbulence file + if write_specs: + self.turbsim_vt.metboundconds.UserFile = os.sep.join([self.run_dir, self.turbulence_file_name]) + turb_specs(V_ref=float(self.wind_speed), L_u=float(self.L_u), L_v=float(self.L_v), L_w=float(self.L_w), sigma_u=float(self.sigma_u), sigma_v=float(self.sigma_v), sigma_w=float(self.sigma_w), filename=self.turbsim_vt.metboundconds.UserFile, template_file=self.turbulence_template_file) + self.turbsim_vt.metboundconds.UserFile = os.sep.join(['..', self.run_dir, self.turbulence_file_name]) + + # Write profile file + if write_profile: + self.turbsim_vt.metboundconds.ProfileFile = os.sep.join([self.run_dir, self.turbsim_vt.metboundconds.ProfileFile]) + write_wind(V_ref=float(self.wind_speed), alpha=float(self.shear_exponent), Beta=float(self.veer), Z_hub=float(self.turbsim_vt.tmspecs.HubHt), filename=self.turbsim_vt.metboundconds.ProfileFile, template_file=self.profile_template) + self.turbsim_vt.metboundconds.ProfileFile = os.sep.join(['..', self.turbsim_vt.metboundconds.ProfileFile]) + self.turbsim_vt.metboundconds.ProfileFile = os.sep.join(['..', self.run_dir, self.turbsim_vt.metboundconds.ProfileFile]) + + tsinp = open(os.sep.join([self.run_dir, self.tsim_input_file]), 'w') + tsinp.write("---------TurbSim v2.00.* Input File------------------------\n") + tsinp.write(" Turbsim input file for {}\n".format(self.turbulence_file_name)) + tsinp.write("---------Runtime Options-----------------------------------\n") + + # runtime options + tsinp.write('{!s:<12} Echo - Echo input data to .ech (flag)\n'.format(self.turbsim_vt.runtime_options.echo)) + tsinp.write('{!s:<12} RandSeed1 - First random seed (-2147483648 to 2147483647)\n'.format(int(self.turbsim_vt.runtime_options.RandSeed1))) + tsinp.write('{!s:<12} RandSeed2 - Second random seed (-2147483648 to 2147483647) for intrinsic pRNG, or an alternative pRNG: "RanLux" or "RNSNLW"\n'.format(self.turbsim_vt.runtime_options.RandSeed2)) + tsinp.write('{!s:<12} WrBHHTP - Output hub-height turbulence parameters in binary form? (Generates RootName.bin)\n'.format(self.turbsim_vt.runtime_options.WrBHHTP)) + tsinp.write('{!s:<12} WrFHHTP - Output hub-height turbulence parameters in formatted form? (Generates RootName.dat)\n'.format(self.turbsim_vt.runtime_options.WrFHHTP)) + tsinp.write('{!s:<12} WrADHH - Output hub-height time-series data in AeroDyn form? (Generates RootName.hh)\n'.format(self.turbsim_vt.runtime_options.WrADHH)) + tsinp.write('{!s:<12} WrADFF - Output full-field time-series data in TurbSim/AeroDyn form? (Generates RootName.bts)\n'.format(self.turbsim_vt.runtime_options.WrADFF)) + tsinp.write('{!s:<12} WrBLFF - Output full-field time-series data in BLADED/AeroDyn form? (Generates RootName.wnd)\n'.format(self.turbsim_vt.runtime_options.WrBLFF)) + tsinp.write('{!s:<12} WrADTWR - Output tower time-series data? (Generates RootName.twr)\n'.format(self.turbsim_vt.runtime_options.WrADTWR)) + tsinp.write('{!s:<12} WrFMTFF - Output full-field time-series data in formatted (readable) form? (Generates RootName.u, RootName.v, RootName.w)\n'.format(self.turbsim_vt.runtime_options.WrFMTFF)) + tsinp.write('{!s:<12} WrACT - Output coherent turbulence time steps in AeroDyn form? (Generates RootName.cts)\n'.format(self.turbsim_vt.runtime_options.WrACT)) + tsinp.write('{!s:<12} Clockwise - Clockwise rotation looking downwind? (used only for full-field binary files - not necessary for AeroDyn)\n'.format(self.turbsim_vt.runtime_options.Clockwise)) + tsinp.write('{!s:<12} ScaleIEC - Scale IEC turbulence models to exact target standard deviation? [0=no additional scaling; 1=use hub scale uniformly; 2=use individual scales]\n'.format(self.turbsim_vt.runtime_options.ScaleIEC)) + + # Turbine/Model Specifications + tsinp.write("\n") + tsinp.write("--------Turbine/Model Specifications-----------------------\n") + tsinp.write('{!s:<12} NumGrid_Z - Vertical grid-point matrix dimension\n'.format(self.turbsim_vt.tmspecs.NumGrid_Z)) + tsinp.write('{!s:<12} NumGrid_Y - Horizontal grid-point matrix dimension\n'.format(self.turbsim_vt.tmspecs.NumGrid_Y)) + tsinp.write('{!s:<12} TimeStep - Time step [seconds]\n'.format(self.turbsim_vt.tmspecs.TimeStep)) + tsinp.write('{!s:<12} AnalysisTime - Length of analysis time series [seconds] (program will add time if necessary: AnalysisTime = MAX(AnalysisTime, UsableTime+GridWidth/MeanHHWS) )\n'.format(self.turbsim_vt.tmspecs.AnalysisTime)) + tsinp.write('{!s:<12} UsableTime - Usable length of output time series [seconds] (program will add GridWidth/MeanHHWS seconds unless UsableTime is "ALL")\n'.format(self.turbsim_vt.tmspecs.UsableTime)) + tsinp.write('{!s:<12} HubHt - Hub height [m] (should be > 0.5*GridHeight)\n'.format(self.turbsim_vt.tmspecs.HubHt)) + tsinp.write('{!s:<12} GridHeight - Grid height [m]\n'.format(self.turbsim_vt.tmspecs.GridHeight)) + tsinp.write('{!s:<12} GridWidth - Grid width [m] (should be >= 2*(RotorRadius+ShaftLength))\n'.format(self.turbsim_vt.tmspecs.GridWidth)) + tsinp.write('{!s:<12} VFlowAng - Vertical mean flow (uptilt) angle [degrees]\n'.format(self.turbsim_vt.tmspecs.VFlowAng)) + tsinp.write('{!s:<12} HFlowAng - Horizontal mean flow (skew) angle [degrees]\n'.format(self.turbsim_vt.tmspecs.HFlowAng)) + + # Meteorological Boundary Conditions + tsinp.write("\n") + tsinp.write("--------Meteorological Boundary Conditions-------------------\n") + tsinp.write('{!s:<12} TurbModel - Turbulence model ("IECKAI","IECVKM","GP_LLJ","NWTCUP","SMOOTH","WF_UPW","WF_07D","WF_14D","TIDAL","API","USRINP","TIMESR", or "NONE")\n'.format(self.turbsim_vt.metboundconds.TurbModel)) + tsinp.write('{!s:<12} UserFile - Name of the file that contains inputs for user-defined spectra or time series inputs (used only for "USRINP" and "TIMESR" models)\n'.format(self.turbsim_vt.metboundconds.UserFile)) + tsinp.write('{!s:<12} IECstandard - Number of IEC 61400-x standard (x=1,2, or 3 with optional 61400-1 edition number (i.e. "1-Ed2") )\n'.format(self.turbsim_vt.metboundconds.IECstandard)) + tsinp.write('{!s:<12} IECturbc - IEC turbulence characteristic ("A", "B", "C" or the turbulence intensity in percent) ("KHTEST" option with NWTCUP model, not used for other models)\n'.format(self.turbsim_vt.metboundconds.IECturbc)) + tsinp.write('{!s:<12} IEC_WindType - IEC turbulence type ("NTM"=normal, "xETM"=extreme turbulence, "xEWM1"=extreme 1-year wind, "xEWM50"=extreme 50-year wind, where x=wind turbine class 1, 2, or 3)\n'.format(self.turbsim_vt.metboundconds.IEC_WindType)) + tsinp.write('{!s:<12} ETMc - IEC Extreme Turbulence Model "c" parameter [m/s]\n'.format(self.turbsim_vt.metboundconds.ETMc)) + tsinp.write('{!s:<12} WindProfileType - Velocity profile type ("LOG";"PL"=power law;"JET";"H2L"=Log law for TIDAL model;"API";"USR";"TS";"IEC"=PL on rotor disk, LOG elsewhere; or "default")\n'.format(self.turbsim_vt.metboundconds.WindProfileType)) + tsinp.write('{!s:<12} ProfileFile - Name of the file that contains input profiles for WindProfileType="USR" and/or TurbModel="USRVKM" [-]\n'.format(self.turbsim_vt.metboundconds.ProfileFile)) + tsinp.write('{!s:<12} RefHt - Height of the reference velocity (URef) [m]\n'.format(self.turbsim_vt.metboundconds.RefHt)) + tsinp.write('{!s:<12} URef - Mean (total) velocity at the reference height [m/s] (or "default" for JET velocity profile) [must be 1-hr mean for API model; otherwise is the mean over AnalysisTime seconds]\n'.format(self.turbsim_vt.metboundconds.URef)) + tsinp.write('{!s:<12} ZJetMax - Jet height [m] (used only for JET velocity profile, valid 70-490 m)\n'.format(self.turbsim_vt.metboundconds.ZJetMax)) + tsinp.write('{!s:<12} PLExp - Power law exponent [-] (or "default")\n'.format(self.turbsim_vt.metboundconds.PLExp)) + tsinp.write('{!s:<12} Z0 - Surface roughness length [m] (or "default")\n'.format(self.turbsim_vt.metboundconds.Z0)) + + # Non-IEC Meteorological Boundary Conditions + tsinp.write("\n") + tsinp.write("--------Non-IEC Meteorological Boundary Conditions------------\n") + tsinp.write('{!s:<12} Latitude - Site latitude [degrees] (or "default")\n'.format(self.turbsim_vt.noniecboundconds.Latitude)) + tsinp.write('{!s:<12} RICH_NO - Gradient Richardson number [-]\n'.format(self.turbsim_vt.noniecboundconds.RICH_NO)) + tsinp.write('{!s:<12} UStar - Friction or shear velocity [m/s] (or "default")\n'.format(self.turbsim_vt.noniecboundconds.UStar)) + tsinp.write('{!s:<12} ZI - Mixing layer depth [m] (or "default")\n'.format(self.turbsim_vt.noniecboundconds.ZI)) + tsinp.write('{!s:<12} PC_UW - Hub mean uw Reynolds stress [m^2/s^2] (or "default" or "none")\n'.format(self.turbsim_vt.noniecboundconds.PC_UW)) + tsinp.write('{!s:<12} PC_UV - Hub mean uv Reynolds stress [m^2/s^2] (or "default" or "none")\n'.format(self.turbsim_vt.noniecboundconds.PC_UV)) + tsinp.write('{!s:<12} PC_VW - Hub mean vw Reynolds stress [m^2/s^2] (or "default" or "none")\n'.format(self.turbsim_vt.noniecboundconds.PC_VW)) + + # Spatial Coherence Parameters + tsinp.write('\n') + tsinp.write( + '--------Spatial Coherence Parameters----------------------------\n') + tsinp.write('{!s:<12} SCMod1 - u-component coherence model ("GENERAL", "IEC", "API", "NONE", or "default")\n'.format( + self.turbsim_vt.spatialcoherance.SCMod1)) + tsinp.write('{!s:<12} SCMod2 - v-component coherence model ("GENERAL", "IEC", "NONE", or "default")\n'.format( + self.turbsim_vt.spatialcoherance.SCMod2)) + tsinp.write('{!s:<12} SCMod3 - w-component coherence model ("GENERAL", "IEC", "NONE", or "default")\n'.format( + self.turbsim_vt.spatialcoherance.SCMod3)) + if not type(self.turbsim_vt.spatialcoherance.InCDec1) is str: + tsinp.write('{:<5.2f} {:<5.2f} InCDec1 - u-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default")\n'.format( + float(self.turbsim_vt.spatialcoherance.InCDec1[0]), float(self.turbsim_vt.spatialcoherance.InCDec1[1]))) + else: + tsinp.write('{!s:<12} InCDec1 - u-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default")\n'.format( + self.turbsim_vt.spatialcoherance.InCDec1)) + if not type(self.turbsim_vt.spatialcoherance.InCDec2) is str: + tsinp.write('{:<5.2f} {:<5.2f} InCDec2 - v-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default")\n'.format( + float(self.turbsim_vt.spatialcoherance.InCDec2[0]), float(self.turbsim_vt.spatialcoherance.InCDec2[1]))) + else: + tsinp.write('{!s:<12} InCDec2 - v-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default")\n'.format( + self.turbsim_vt.spatialcoherance.InCDec2)) + if not type(self.turbsim_vt.spatialcoherance.InCDec3) is str: + tsinp.write('{:<5.2f} {:<5.2f} InCDec3 - w-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default")\n'.format( + float(self.turbsim_vt.spatialcoherance.InCDec3[0]), float(self.turbsim_vt.spatialcoherance.InCDec3[1]))) + else: + tsinp.write('{!s:<12} InCDec3 - w-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default")\n'.format( + self.turbsim_vt.spatialcoherance.InCDec3)) + tsinp.write('{!s:<12} CohExp - Coherence exponent for general model [-] (or "default")\n'.format( + self.turbsim_vt.spatialcoherance.CohExp)) + + # Coherent Turbulence Scaling Parameters + tsinp.write('\n') + tsinp.write('--------Coherent Turbulence Scaling Parameters-------------------\n') + tsinp.write('{!s:<12} CTEventPath - Name of the path where event data files are located\n'.format(self.turbsim_vt.coherentTurbulence.CTEventPath)) + tsinp.write('{!s:<12} CTEventFile - Type of event files ("LES", "DNS", or "RANDOM")\n'.format(self.turbsim_vt.coherentTurbulence.CTEventFile)) + tsinp.write('{!s:<12} Randomize - Randomize the disturbance scale and locations? (true/false)\n'.format(self.turbsim_vt.coherentTurbulence.Randomize)) + tsinp.write('{!s:<12} DistScl - Disturbance scale [-] (ratio of event dataset height to rotor disk). (Ignored when Randomize = true.)\n'.format(self.turbsim_vt.coherentTurbulence.DistScl)) + tsinp.write('{!s:<12} CTLy - Fractional location of tower centerline from right [-] (looking downwind) to left side of the dataset. (Ignored when Randomize = true.)\n'.format(self.turbsim_vt.coherentTurbulence.CTLy)) + tsinp.write('{!s:<12} CTLz - Fractional location of hub height from the bottom of the dataset. [-] (Ignored when Randomize = true.)\n'.format(self.turbsim_vt.coherentTurbulence.CTLz)) + tsinp.write('{!s:<12} CTStartTime - Minimum start time for coherent structures in RootName.cts [seconds]\n'.format(self.turbsim_vt.coherentTurbulence.CTStartTime)) + + + +if __name__=='__main__': + s = TurbsimBuilder() + s.turbsim_vt.metboundconds.UserFile = 'tsim_user_turbulence_default.inp' + s.turbsim_vt.metboundconds.ProfileFile = 'default.profile' + s.execute() diff --git a/ofTools/fast_io/turbsim_io/turbulence_spectrum.py b/ofTools/fast_io/turbsim_io/turbulence_spectrum.py new file mode 100644 index 000000000..d139bbb4d --- /dev/null +++ b/ofTools/fast_io/turbsim_io/turbulence_spectrum.py @@ -0,0 +1,37 @@ +import numpy as np +import os +# import pandas +from collections import OrderedDict + +def turb_specs(V_ref, L_u, L_v, L_w, sigma_u, sigma_v, sigma_w, template_file, filename): + + f=(np.array([np.arange(0.0015873015873015873015873015873, 20.00001, 0.0015873015873015873015873015873)])).T + + a=int(len(f)) + + U=np.zeros((a,1),dtype=float) + V=np.zeros((a,1),dtype=float) + W=np.zeros((a,1),dtype=float) + + for i in range(0,a): + U[i,0]= (4*L_u/V_ref)*sigma_u**2/((1+6*f[i,0]*L_u/V_ref)**(5./3.)) + V[i,0]= (4*L_v/V_ref)*sigma_v**2/((1+6*f[i,0]*L_v/V_ref)**(5./3.)) + W[i,0]= (4*L_w/V_ref)*sigma_w**2/((1+6*f[i,0]*L_w/V_ref)**(5./3.)) + + df=pandas.DataFrame({'Frequency (Hz)':f[:,0],'u-component PSD (m^2/s)': U[:,0],'v-component PSD (m^2/s)': V[:,0],'w-component PSD (m^2/s)':W[:,0]}) + with open(template_file, 'r') as f: + get_all=f.readlines() + + + + with open(filename,'w') as f: + for i,line in enumerate(get_all): + if i < 11: ## STARTS THE NUMBERING FROM 1 (by default it begins with 0) + f.writelines(line) ## OVERWRITES line:2 + else: + f.write(df.to_string(index=False,header=False,col_space=15)) + break + + + + diff --git a/ofTools/fast_io/turbsim_io/wind_profile_writer.py b/ofTools/fast_io/turbsim_io/wind_profile_writer.py new file mode 100644 index 000000000..f798b25fc --- /dev/null +++ b/ofTools/fast_io/turbsim_io/wind_profile_writer.py @@ -0,0 +1,48 @@ +import numpy as np +import os +import decimal +# import pandas +from collections import OrderedDict + +def write_wind(V_ref, alpha, Beta, Z_hub, filename, template_file): + + Height=(np.array([np.arange(0,181,10)],dtype=float)) + + new_Height=(Height/Z_hub).T + + Height=(np.array([np.arange(0,181,10)])).T + a=len(Height) + + + U=np.zeros((a,1),dtype=float) + Beta1=np.zeros((a,1),dtype=float) + + + for i in range(0,a): + U[i,0]= V_ref*(new_Height[i,0])**alpha + Beta1[i,0]= (Beta/63)*(Height[i,0])-90*(Beta/63) + + + df1= ['%.3f'% x for x in Height] + df2 = ['%.3f'% x for x in U] + df3 =['%.3f'% x for x in Beta1] + + + with open(template_file,'r') as f: + get_all=f.readlines() + + with open(filename,'w') as f2: + for i,line in enumerate(get_all,1): + if i < 12: + f2.writelines(line) + else: + for p in range(len(df1)): + if len(str(df1[p]))<5 : + f2.write(str(df1[p]) + " " + str(df2[p]) + " " + str(df3[p]) + "\n") + else: + f2.write(str(df1[p]) + " " + str(df2[p]) + " " + str(df3[p]) + "\n") + break + f2.close() + + + diff --git a/ofTools/util/FileTools.py b/ofTools/util/FileTools.py new file mode 100644 index 000000000..b66ac5220 --- /dev/null +++ b/ofTools/util/FileTools.py @@ -0,0 +1,263 @@ +import os, copy, operator +import numpy as np +import yaml +from functools import reduce +try: + import ruamel_yaml as ry +except: + try: + import ruamel.yaml as ry + except: + raise ImportError('No module named ruamel.yaml or ruamel_yaml') + +""" +Common utilites for handling the text I/O for using AeroelasticSE +""" + +def remove_numpy(fst_vt): + # recursively move through nested dictionary, remove numpy data types + # for formatting dictionaries before writing to yaml files + + def get_dict(vartree, branch): + return reduce(operator.getitem, branch, vartree) + + def loop_dict(vartree, branch): + for var in vartree.keys(): + branch_i = copy.copy(branch) + branch_i.append(var) + if type(vartree[var]) is dict: + loop_dict(vartree[var], branch_i) + else: + data_type = type(get_dict(fst_vt, branch_i[:-1])[branch_i[-1]]) + + if data_type in [np.int_, np.intc, np.intp, np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64]: + get_dict(fst_vt, branch_i[:-1])[branch_i[-1]] = int(get_dict(fst_vt, branch_i[:-1])[branch_i[-1]]) + elif data_type in [np.single, np.double, np.longdouble, np.csingle, np.cdouble, np.float_, np.float16, np.float32, np.float64, np.complex64, np.complex128]: + get_dict(fst_vt, branch_i[:-1])[branch_i[-1]] = float(get_dict(fst_vt, branch_i[:-1])[branch_i[-1]]) + elif data_type in [np.bool_]: + get_dict(fst_vt, branch_i[:-1])[branch_i[-1]] = bool(get_dict(fst_vt, branch_i[:-1])[branch_i[-1]]) + elif data_type in [np.ndarray]: + get_dict(fst_vt, branch_i[:-1])[branch_i[-1]] = get_dict(fst_vt, branch_i[:-1])[branch_i[-1]].tolist() + + # set fast variables to update values + loop_dict(fst_vt, []) + + return fst_vt + +def convert_str(val): + # string parsing tool + + def try_type(val, data_type): + try: + data_type(val) + return True + except ValueError: + return False + + if try_type(val, int): + return int(val) + elif try_type(val, float): + return float(val) + elif val=='True': + return True + elif val=='False': + return False + else: + return val + + +def str_repeats(string): + # find repeated sequences in a string + for x in range(1, len(string)): + substring = string[:x] + if substring * (len(string)//len(substring))+(substring[:len(string)%len(substring)]) == string: + return substring + + +def load_case_matrix(fname): + # load the AeroelasticSE case_matrix + + fid = open(fname) + text = fid.readlines() + fid.close() + + module = text[0].strip().split() + var_names = text[1].strip().split() + if len(module) == len(var_names)+1: + var_names = ["ID"] + var_names + + out = {} + for var in var_names: + out[var] = [] + + for ln in text[2:]: + val_list = ln.strip().split() + for var, val in zip(var_names, val_list): + out[var].append(convert_str(val)) + + return out + +def load_yaml(fname_input, package=0): + # Import a .yaml file + + if package == 0: + with open(fname_input) as f: + data = yaml.safe_load(f) + return data + + elif package == 1: + with open(fname_input, 'r') as myfile: + text_input = myfile.read() + myfile.close() + ryaml = ry.YAML() + return dict(ryaml.load(text_input)) + + +def save_yaml(outdir, fname, data_out): + + if not os.path.isdir(outdir) and outdir!='': + os.makedirs(outdir) + fname = os.path.join(outdir, fname) + + data_out = remove_numpy(data_out) + + f = open(fname, "w") + yaml=ry.YAML() + yaml.default_flow_style = None + yaml.width = float("inf") + yaml.indent(mapping=4, sequence=6, offset=3) + yaml.dump(data_out, f) + + +def select_cases(cases, var_sel, val_sel): + # Find a variable value from the AeroelasticSE case_matrix + + n_var = len(var_sel) + n_cases = len(cases[var_sel[0]]) + + truth = [True]*n_cases + for vari, vali in zip(var_sel, val_sel): + test = [valj == vali for valj in cases[vari]] + truth = [truthi and testi for truthi, testi in zip(truth, test)] + + case_idx = [i for i, x in enumerate(truth) if x] + return case_idx + +def get_dlc_label(cases, include_seed=True): + # Get descriptive string describing IEC DLC cases from the case_matrix + + labels = [] + # from txt + try: + for idx in range(len(cases['DLC'])): + + DLC = cases['DLC'][idx] + wind_fname = cases['Filename'][idx] + + if DLC == 1.1: + ntm = wind_fname.split('NTM')[-1].split('_') + ntm_U = float(".".join(ntm[1].strip("U").split('.')[:-1])) + ntm_Seed = float(".".join(ntm[2].strip("Seed").split('.')[:-1])) + if include_seed == True: + label_i = "DLC 1.1, Normal Turbulence, U=%0.1f m/s, Seed=%d"%(ntm_U, ntm_Seed) + else: + label_i = "DLC 1.1, Normal Turbulence, U=%0.1f m/s"%(ntm_U) + + if DLC == 1.3: + etm = wind_fname.split('ETM')[-1].split('_') + etm_U = float(".".join(etm[1].strip("U").split('.')[:-1])) + etm_Seed = float(".".join(etm[2].strip("Seed").split('.')[:-1])) + if include_seed == True: + label_i = "DLC 1.3, Extreme Turbulence, U=%0.1f m/s, Seed=%d"%(etm_U, etm_Seed) + else: + label_i = "DLC 1.3, Extreme Turbulence, U=%0.1f m/s"%(etm_U) + + if DLC == 1.4: + ecd = wind_fname.split('ECD')[-1].split('_') + ecd_dir = ecd[1] + ecd_U = float(".".join(ecd[2].strip("U").split('.')[:-1])) + label_i = "DLC 1.4, %s ECD, U=%0.1f m/s"%(ecd_dir, ecd_U) + + if DLC == 1.5: + ews = wind_fname.split('EWS')[-1].split('_') + ews_type = ews[1] + ews_dir = ews[2] + ews_U = float(".".join(ews[3].strip("U").split('.')[:-1])) + if ews_type == "H": + ews_type = "Hor." + elif ews_type == "V": + ews_type = "Vert." + if ews_dir == "P": + ews_dir = "Pos." + elif ews_dir == "N": + ews_dir = "Neg." + label_i = "DLC 1.5, Extreme %s Shear, %s, U=%0.1f m/s"%(ews_type, ews_dir, ews_U) + + if DLC == 6.1: + label_i = "DLC 6.1" + + if DLC == 6.3: + label_i = "DLC 6.3" + + labels.append(label_i) + + # From yaml + except KeyError: + for idx in range(len(cases[('IEC','DLC')])): + + DLC = cases[('IEC','DLC')][idx] + wind_fname = cases[('InflowWind', 'Filename')][idx] + + if DLC == 1.1: + ntm = wind_fname.split('NTM')[-1].split('_') + ntm_U = float(".".join(ntm[1].strip("U").split('.')[:-1])) + ntm_Seed = float(".".join(ntm[2].strip("Seed").split('.')[:-1])) + if include_seed == True: + label_i = "DLC 1.1, Normal Turbulence, U=%0.1f m/s, Seed=%d"%(ntm_U, ntm_Seed) + else: + label_i = "DLC 1.1, Normal Turbulence, U=%0.1f m/s"%(ntm_U) + + if DLC == 1.3: + etm = wind_fname.split('ETM')[-1].split('_') + etm_U = float(".".join(etm[1].strip("U").split('.')[:-1])) + etm_Seed = float(".".join(etm[2].strip("Seed").split('.')[:-1])) + if include_seed == True: + label_i = "DLC 1.3, Extreme Turbulence, U=%0.1f m/s, Seed=%d"%(etm_U, etm_Seed) + else: + label_i = "DLC 1.3, Extreme Turbulence, U=%0.1f m/s"%(etm_U) + + if DLC == 1.4: + ecd = wind_fname.split('ECD')[-1].split('_') + ecd_dir = ecd[1] + ecd_U = float(".".join(ecd[2].strip("U").split('.')[:-1])) + label_i = "DLC 1.4, %s ECD, U=%0.1f m/s"%(ecd_dir, ecd_U) + + if DLC == 1.5: + ews = wind_fname.split('EWS')[-1].split('_') + ews_type = ews[1] + ews_dir = ews[2] + ews_U = float(".".join(ews[3].strip("U").split('.')[:-1])) + if ews_type == "H": + ews_type = "Hor." + elif ews_type == "V": + ews_type = "Vert." + if ews_dir == "P": + ews_dir = "Pos." + elif ews_dir == "N": + ews_dir = "Neg." + label_i = "DLC 1.5, Extreme %s Shear, %s, U=%0.1f m/s"%(ews_type, ews_dir, ews_U) + + if DLC == 6.1: + label_i = "DLC 6.1" + + if DLC == 6.3: + label_i = "DLC 6.3" + + labels.append(label_i) + + + return labels + +def load_file_list(fname_flist): + # load list of filenames from file + return np.genfromtxt(fname_flist, dtype='str') diff --git a/ofTools/util/__init__.py b/ofTools/util/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ofTools/util/spectral.py b/ofTools/util/spectral.py new file mode 100644 index 000000000..e5af299dc --- /dev/null +++ b/ofTools/util/spectral.py @@ -0,0 +1,945 @@ +''' +# Tools for spectral analysis of a real valued signal. +# +# The functions in this file were adapted from the python package scipy according to the following license: +# +# License: +# Copyright 2001, 2002 Enthought, Inc. +# All rights reserved. +# +# Copyright 2003-2013 SciPy Developers. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +# Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +# Neither the name of Enthought nor the names of the SciPy Developers may be used to endorse or promote products derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +''' +from __future__ import division, print_function, absolute_import + +import numpy as np +from six import string_types + +__all__ = ['fft_wrap','welch', 'psd', 'fft_amplitude'] +__all__ += ['pwelch', 'csd', 'coherence'] +__all__ += ['fnextpow2'] +__all__ += ['hann','hamming','boxcar','general_hamming','get_window'] +__all__ += ['TestSpectral'] + + +# --------------------------------------------------------------------------------} +# --- FFT wrap +# --------------------------------------------------------------------------------{ +def fft_wrap(t,y,dt=None, output_type='amplitude',averaging='None',averaging_window='hamming',detrend=False,nExp=None): + """ + Wrapper to compute FFT amplitude or power spectra, with averaging. + INPUTS: + output_type : amplitude, PSD, f x PSD + averaging_method : None, Welch + averaging_window : Hamming, Hann, Rectangular + OUTPUTS: + frq: vector of frequencies + Y : Amplitude spectrum, PSD, or f * PSD + Info: a dictionary of info values + """ + + # Formatting inputs + output_type = output_type.lower() + averaging = averaging.lower() + averaging_window = averaging_window.lower() + y = np.asarray(y) + y = y[~np.isnan(y)] + n = len(y) + + if dt is None: + dtDelta0 = t[1]-t[0] + # Hack to use a constant dt + dt = (np.max(t)-np.min(t))/(n-1) + if dtDelta0 !=dt: + print('[WARN] dt from tmax-tmin different from dt from t2-t1' ) + Fs = 1/dt + if averaging=='none': + frq, PSD, Info = psd(y, fs=Fs, detrend=detrend, return_onesided=True) + elif averaging=='welch': + # --- Welch - PSD + #overlap_frac=0.5 + #return fnextpow2(np.sqrt(len(x)/(1-overlap_frac))) + nFFTAll=fnextpow2(n) + if nExp is None: + nExp=int(np.log(nFFTAll)/np.log(2))-1 + nPerSeg=2**nExp + if nPerSeg>n: + print('[WARN] Power of 2 value was too high and was reduced. Disable averaging to use the full spectrum.'); + nExp=int(np.log(nFFTAll)/np.log(2))-1 + nPerSeg=2**nExp + if averaging_window=='hamming': + window = hamming(nPerSeg, True)# True=Symmetric, like matlab + elif averaging_window=='hann': + window = hann(nPerSeg, True) + elif averaging_window=='rectangular': + window = boxcar(nPerSeg) + else: + raise Exception('Averaging window unknown {}'.format(averaging_window)) + frq, PSD, Info = pwelch(y, fs=Fs, window=window, detrend=detrend) + Info.nExp = nExp + else: + raise Exception('Averaging method unknown {}'.format(averaging)) + + # --- Formatting output + if output_type=='amplitude': + deltaf = frq[1]-frq[0] + Y = np.sqrt(PSD*2*deltaf) + # NOTE: the above should be the same as:Y=abs(Y[range(nhalf)])/n;Y[1:-1]=Y[1:-1]*2; + elif output_type=='psd': # one sided + Y = PSD + elif output_type=='f x psd': + Y = PSD*frq + else: + raise NotImplementedError('Contact developer') + if detrend: + frq= frq[1:] + Y = Y[1:] + return frq, Y, Info + + + +# --------------------------------------------------------------------------------} +# --- Spectral simple (averaging below) +# --------------------------------------------------------------------------------{ +def fft_amplitude(y, fs=1.0, detrend ='constant', return_onesided=True): + """ Returns FFT amplitude of signal """ + frq, PSD, Info = psd(y, fs=fs, detrend=detrend, return_onesided=return_onesided) + deltaf = frq[1]-frq[0] + Y = np.sqrt(PSD*2*deltaf) + return frq, Y, Info + +def psd(y, fs=1.0, detrend ='constant', return_onesided=True): + """ Perform PSD without averaging """ + if not return_onesided: + raise NotImplementedError('Double sided todo') + + if detrend is None: + detrend=False + + if detrend=='constant' or detrend==True: + m=np.mean(y); + else: + m=0; + + n = len(y) + if n%2==0: + nhalf = int(n/2+1) + else: + nhalf = int((n+1)/2) + + frq = np.arange(nhalf)*fs/n; + Y = np.fft.rfft(y-m) #Y = np.fft.fft(y) + PSD = abs(Y[range(nhalf)])**2 /(n*fs) # PSD + PSD[1:-1] = PSD[1:-1]*2; + class InfoClass(): + pass + Info = InfoClass(); + Info.df = frq[1]-frq[0] + Info.fMax = frq[-1] + Info.LFreq = len(frq) + Info.LSeg = len(Y) + Info.LWin = len(Y) + Info.LOvlp = 0 + Info.nFFT = len(Y) + Info.nseg = 1 + return frq, PSD, Info + + +# --------------------------------------------------------------------------------} +# --- Windows +# --------------------------------------------------------------------------------{ +"""The suite of window functions.""" +def fnextpow2(x): + return 2**np.ceil( np.log(x)*0.99999999999/np.log(2)); + +def fDefaultWinLen(x,overlap_frac=0.5): + return fnextpow2(np.sqrt(len(x)/(1-overlap_frac))) + +def fDefaultWinLenMatlab(x): + return np.fix((len(x)-3)*2./9.) + +def _len_guards(M): + """Handle small or incorrect window lengths""" + if int(M) != M or M < 0: + raise ValueError('Window length M must be a non-negative integer') + return M <= 1 + +def _extend(M, sym): + """Extend window by 1 sample if needed for DFT-even symmetry""" + if not sym: + return M + 1, True + else: + return M, False + +def _truncate(w, needed): + """Truncate window by 1 sample if needed for DFT-even symmetry""" + if needed: + return w[:-1] + else: + return w + +def general_cosine(M, a, sym=True): + if _len_guards(M): + return np.ones(M) + M, needs_trunc = _extend(M, sym) + + fac = np.linspace(-np.pi, np.pi, M) + w = np.zeros(M) + for k in range(len(a)): + w += a[k] * np.cos(k * fac) + + return _truncate(w, needs_trunc) + + +def boxcar(M, sym=True): + """Return a boxcar or rectangular window. + Also known as a rectangular window or Dirichlet window, this is equivalent + to no window at all. + """ + if _len_guards(M): + return np.ones(M) + M, needs_trunc = _extend(M, sym) + + w = np.ones(M, float) + + return _truncate(w, needs_trunc) + +def hann(M, sym=True): # same as hanning(*args, **kwargs): + return general_hamming(M, 0.5, sym) + + +def general_hamming(M, alpha, sym=True): + r"""Return a generalized Hamming window. + The generalized Hamming window is constructed by multiplying a rectangular + window by one period of a cosine function [1]_. + w(n) = \alpha - \left(1 - \alpha\right) \cos\left(\frac{2\pi{n}}{M-1}\right) + \qquad 0 \leq n \leq M-1 + """ + return general_cosine(M, [alpha, 1. - alpha], sym) + + +def hamming(M, sym=True): + r"""Return a Hamming window. + The Hamming window is a taper formed by using a raised cosine with + non-zero endpoints, optimized to minimize the nearest side lobe. + w(n) = 0.54 - 0.46 \cos\left(\frac{2\pi{n}}{M-1}\right) + \qquad 0 \leq n \leq M-1 + """ + return general_hamming(M, 0.54, sym) + +_win_equiv_raw = { + ('boxcar', 'box', 'ones', 'rect', 'rectangular'): (boxcar, False), + ('hamming', 'hamm', 'ham'): (hamming, False), + ('hanning', 'hann', 'han'): (hann, False), +} + +# Fill dict with all valid window name strings +_win_equiv = {} +for k, v in _win_equiv_raw.items(): + for key in k: + _win_equiv[key] = v[0] + +# Keep track of which windows need additional parameters +_needs_param = set() +for k, v in _win_equiv_raw.items(): + if v[1]: + _needs_param.update(k) + + +def get_window(window, Nx, fftbins=True): + """ + Return a window. + Parameters + ---------- + window : string, float, or tuple + The type of window to create. See below for more details. + Nx : int + The number of samples in the window. + fftbins : bool, optional + If True (default), create a "periodic" window, ready to use with + `ifftshift` and be multiplied by the result of an FFT (see also + `fftpack.fftfreq`). + If False, create a "symmetric" window, for use in filter design. + """ + sym = not fftbins + try: + beta = float(window) + except (TypeError, ValueError): + args = () + if isinstance(window, tuple): + winstr = window[0] + if len(window) > 1: + args = window[1:] + elif isinstance(window, string_types): + if window in _needs_param: + raise ValueError("The '" + window + "' window needs one or " + "more parameters -- pass a tuple.") + else: + winstr = window + else: + raise ValueError("%s as window type is not supported." % + str(type(window))) + + try: + winfunc = _win_equiv[winstr] + except KeyError: + raise ValueError("Unknown window type.") + + params = (Nx,) + args + (sym,) + else: + winfunc = kaiser + params = (Nx, beta, sym) + + return winfunc(*params) + + + + + + +# --------------------------------------------------------------------------------} +# --- Helpers +# --------------------------------------------------------------------------------{ +def odd_ext(x, n, axis=-1): + """ + Odd extension at the boundaries of an array + Generate a new ndarray by making an odd extension of `x` along an axis. + """ + if n < 1: + return x + if n > x.shape[axis] - 1: + raise ValueError(("The extension length n (%d) is too big. " + + "It must not exceed x.shape[axis]-1, which is %d.") + % (n, x.shape[axis] - 1)) + left_end = axis_slice(x, start=0, stop=1, axis=axis) + left_ext = axis_slice(x, start=n, stop=0, step=-1, axis=axis) + right_end = axis_slice(x, start=-1, axis=axis) + right_ext = axis_slice(x, start=-2, stop=-(n + 2), step=-1, axis=axis) + ext = np.concatenate((2 * left_end - left_ext, + x, + 2 * right_end - right_ext), + axis=axis) + return ext + + +def even_ext(x, n, axis=-1): + """ + Even extension at the boundaries of an array + Generate a new ndarray by making an even extension of `x` along an axis. + """ + if n < 1: + return x + if n > x.shape[axis] - 1: + raise ValueError(("The extension length n (%d) is too big. " + + "It must not exceed x.shape[axis]-1, which is %d.") + % (n, x.shape[axis] - 1)) + left_ext = axis_slice(x, start=n, stop=0, step=-1, axis=axis) + right_ext = axis_slice(x, start=-2, stop=-(n + 2), step=-1, axis=axis) + ext = np.concatenate((left_ext, + x, + right_ext), + axis=axis) + return ext + + +def const_ext(x, n, axis=-1): + """ + Constant extension at the boundaries of an array + Generate a new ndarray that is a constant extension of `x` along an axis. + The extension repeats the values at the first and last element of + the axis. + """ + if n < 1: + return x + left_end = axis_slice(x, start=0, stop=1, axis=axis) + ones_shape = [1] * x.ndim + ones_shape[axis] = n + ones = np.ones(ones_shape, dtype=x.dtype) + left_ext = ones * left_end + right_end = axis_slice(x, start=-1, axis=axis) + right_ext = ones * right_end + ext = np.concatenate((left_ext, + x, + right_ext), + axis=axis) + return ext + + +def zero_ext(x, n, axis=-1): + """ + Zero padding at the boundaries of an array + Generate a new ndarray that is a zero padded extension of `x` along + an axis. + """ + if n < 1: + return x + zeros_shape = list(x.shape) + zeros_shape[axis] = n + zeros = np.zeros(zeros_shape, dtype=x.dtype) + ext = np.concatenate((zeros, x, zeros), axis=axis) + return ext + +def signaltools_detrend(data, axis=-1, type='linear', bp=0): + """ + Remove linear trend along axis from data. + Parameters + ---------- + data : array_like + The input data. + axis : int, optional + The axis along which to detrend the data. By default this is the + last axis (-1). + type : {'linear', 'constant'}, optional + The type of detrending. If ``type == 'linear'`` (default), + the result of a linear least-squares fit to `data` is subtracted + from `data`. + If ``type == 'constant'``, only the mean of `data` is subtracted. + bp : array_like of ints, optional + A sequence of break points. If given, an individual linear fit is + performed for each part of `data` between two break points. + Break points are specified as indices into `data`. + Returns + ------- + ret : ndarray + The detrended input data. + """ + if type not in ['linear', 'l', 'constant', 'c']: + raise ValueError("Trend type must be 'linear' or 'constant'.") + data = np.asarray(data) + dtype = data.dtype.char + if dtype not in 'dfDF': + dtype = 'd' + if type in ['constant', 'c']: + #print('Removing mean') + ret = data - np.expand_dims(np.mean(data, axis), axis) + return ret + else: + #print('Removing linear?') + dshape = data.shape + N = dshape[axis] + bp = sort(unique(r_[0, bp, N])) + if np.any(bp > N): + raise ValueError("Breakpoints must be less than length " + "of data along given axis.") + Nreg = len(bp) - 1 + # Restructure data so that axis is along first dimension and + # all other dimensions are collapsed into second dimension + rnk = len(dshape) + if axis < 0: + axis = axis + rnk + newdims = r_[axis, 0:axis, axis + 1:rnk] + newdata = reshape(np.transpose(data, tuple(newdims)), + (N, _prod(dshape) // N)) + newdata = newdata.copy() # make sure we have a copy + if newdata.dtype.char not in 'dfDF': + newdata = newdata.astype(dtype) + # Find leastsq fit and remove it for each piece + for m in range(Nreg): + Npts = bp[m + 1] - bp[m] + A = ones((Npts, 2), dtype) + A[:, 0] = cast[dtype](np.arange(1, Npts + 1) * 1.0 / Npts) + sl = slice(bp[m], bp[m + 1]) + coef, resids, rank, s = np.linalg.lstsq(A, newdata[sl]) + newdata[sl] = newdata[sl] - dot(A, coef) + # Put data back in original shape. + tdshape = take(dshape, newdims, 0) + ret = np.reshape(newdata, tuple(tdshape)) + vals = list(range(1, rnk)) + olddims = vals[:axis] + [0] + vals[axis:] + ret = np.transpose(ret, tuple(olddims)) + return ret + + + +# --------------------------------------------------------------------------------} +# --- Spectral Averaging +# --------------------------------------------------------------------------------{ +"""Tools for spectral analysis. """ + +def welch(x, fs=1.0, window='hann', nperseg=None, noverlap=None, nfft=None, + detrend='constant', return_onesided=True, scaling='density', + axis=-1): + """Interface identical to scipy.signal """ + + if detrend==True: + detrend='constant' + + freqs, Pxx = csd(x, x, fs, window, nperseg, noverlap, nfft, detrend, return_onesided, scaling, axis) + return freqs, Pxx.real + +#>>>> +def pwelch(x, window='hamming', noverlap=None, nfft=None, fs=1.0, nperseg=None, + detrend=False, return_onesided=True, scaling='density', + axis=-1): + r""" + NOTE: interface and default options modified to match matlab's implementation + >> detrend: default to False + >> window : default to 'hamming' + >> window: if an integer, use 'hamming(window, sym=True)' + Estimate power spectral density using Welch's method. + Welch's method [1]_ computes an estimate of the power spectral + density by dividing the data into overlapping segments, computing a + modified periodogram for each segment and averaging the + periodograms. + Parameters + ---------- + x : array_like + Time series of measurement values + fs : float, optional + Sampling frequency of the `x` time series. Defaults to 1.0. + window : str or tuple or array_like, optional + Desired window to use. If `window` is a string or tuple, it is + passed to `get_window` to generate the window values, which are + DFT-even by default. See `get_window` for a list of windows and + required parameters. If `window` is array_like it will be used + directly as the window and its length must be nperseg. Defaults + to a Hann window. + nperseg : int, optional + Length of each segment. Defaults to None, but if window is str or + tuple, is set to 256, and if window is array_like, is set to the + length of the window. + noverlap : int, optional + Number of points to overlap between segments. If `None`, + ``noverlap = nperseg // 2``. Defaults to `None`. + nfft : int, optional + Length of the FFT used, if a zero padded FFT is desired. If + `None`, the FFT length is `nperseg`. Defaults to `None`. + detrend : str or function or `False`, optional + Specifies how to detrend each segment. If `detrend` is a + string, it is passed as the `type` argument to the `detrend` + function. If it is a function, it takes a segment and returns a + detrended segment. If `detrend` is `False`, no detrending is + done. Defaults to 'constant'. + return_onesided : bool, optional + If `True`, return a one-sided spectrum for real data. If + `False` return a two-sided spectrum. Note that for complex + data, a two-sided spectrum is always returned. + scaling : { 'density', 'spectrum' }, optional + Selects between computing the power spectral density ('density') + where `Pxx` has units of V**2/Hz and computing the power + spectrum ('spectrum') where `Pxx` has units of V**2, if `x` + is measured in V and `fs` is measured in Hz. Defaults to + 'density' + axis : int, optional + Axis along which the periodogram is computed; the default is + over the last axis (i.e. ``axis=-1``). + Returns + ------- + f : ndarray + Array of sample frequencies. + Pxx : ndarray + Power spectral density or power spectrum of x. + See Also + -------- + periodogram: Simple, optionally modified periodogram + lombscargle: Lomb-Scargle periodogram for unevenly sampled data + Notes + ----- + An appropriate amount of overlap will depend on the choice of window + and on your requirements. For the default Hann window an overlap of + 50% is a reasonable trade off between accurately estimating the + signal power, while not over counting any of the data. Narrower + windows may require a larger overlap. + If `noverlap` is 0, this method is equivalent to Bartlett's method + [2]_. + .. versionadded:: 0.12.0 + References + ---------- + .. [1] P. Welch, "The use of the fast Fourier transform for the + estimation of power spectra: A method based on time averaging + over short, modified periodograms", IEEE Trans. Audio + Electroacoust. vol. 15, pp. 70-73, 1967. + .. [2] M.S. Bartlett, "Periodogram Analysis and Continuous Spectra", + Biometrika, vol. 37, pp. 1-16, 1950. + """ + import math + def fnextpow2(x): + return 2**math.ceil( math.log(x)*0.99999999999/math.log(2)); + + # MANU >>> CHANGE OF DEFAULT OPTIONS + # MANU - If a length is provided use symmetric hamming window + if type(window)==int: + window=hamming(window, True) + # MANU - do not use 256 as default + if isinstance(window, string_types) or isinstance(window, tuple): + if nperseg is None: + if noverlap is None: + overlap_frac=0.5 + elif noverlap is 0: + overlap_frac=0 + else: + raise NotImplementedError('TODO noverlap set but not nperseg') + #nperseg = 256 # then change to default + nperseg=fnextpow2(math.sqrt(x.shape[-1]/(1-overlap_frac))); + + # MANU accepting true as detrend + if detrend==True: + detrend='constant' + + freqs, Pxx, Info = csd(x, x, fs, window, nperseg, noverlap, nfft, detrend, + return_onesided, scaling, axis) + + return freqs, Pxx.real, Info + + +def csd(x, y, fs=1.0, window='hann', nperseg=None, noverlap=None, nfft=None, + detrend='constant', return_onesided=True, scaling='density', axis=-1): + r""" + Estimate the cross power spectral density, Pxy, using Welch's + method. + """ + + freqs, _, Pxy, Info = _spectral_helper(x, y, fs, window, nperseg, noverlap, nfft, + detrend, return_onesided, scaling, axis, + mode='psd') + + # Average over windows. + if len(Pxy.shape) >= 2 and Pxy.size > 0: + if Pxy.shape[-1] > 1: + Pxy = Pxy.mean(axis=-1) + else: + Pxy = np.reshape(Pxy, Pxy.shape[:-1]) + + return freqs, Pxy, Info + + + +def coherence(x, y, fs=1.0, window='hann', nperseg=None, noverlap=None, + nfft=None, detrend='constant', axis=-1): + r""" + Estimate the magnitude squared coherence estimate, Cxy, of + discrete-time signals X and Y using Welch's method. + ``Cxy = abs(Pxy)**2/(Pxx*Pyy)``, where `Pxx` and `Pyy` are power + spectral density estimates of X and Y, and `Pxy` is the cross + spectral density estimate of X and Y. + """ + + freqs, Pxx, Infoxx = welch(x, fs, window, nperseg, noverlap, nfft, detrend, axis=axis) + _, Pyy, Infoyy = welch(y, fs, window, nperseg, noverlap, nfft, detrend, axis=axis) + _, Pxy, Infoxy = csd(x, y, fs, window, nperseg, noverlap, nfft, detrend, axis=axis) + + Cxy = np.abs(Pxy)**2 / Pxx / Pyy + + return freqs, Cxy, Infoxx + + +def _spectral_helper(x, y, fs=1.0, window='hann', nperseg=None, noverlap=None, + nfft=None, detrend='constant', return_onesided=True, + scaling='spectrum', axis=-1, mode='psd', boundary=None, + padded=False): + """ Calculate various forms of windowed FFTs for PSD, CSD, etc. """ + if mode not in ['psd', 'stft']: + raise ValueError("Unknown value for mode %s, must be one of: " + "{'psd', 'stft'}" % mode) + + + + + + boundary_funcs = {'even': even_ext, + 'odd': odd_ext, + 'constant': const_ext, + 'zeros': zero_ext, + None: None} + + if boundary not in boundary_funcs: + raise ValueError("Unknown boundary option '{0}', must be one of: {1}" + .format(boundary, list(boundary_funcs.keys()))) + + # If x and y are the same object we can save ourselves some computation. + same_data = y is x + + if not same_data and mode != 'psd': + raise ValueError("x and y must be equal if mode is 'stft'") + + axis = int(axis) + + # Ensure we have np.arrays, get outdtype + x = np.asarray(x) + if not same_data: + y = np.asarray(y) + outdtype = np.result_type(x, y, np.complex64) + else: + outdtype = np.result_type(x, np.complex64) + + if not same_data: + # Check if we can broadcast the outer axes together + xouter = list(x.shape) + youter = list(y.shape) + xouter.pop(axis) + youter.pop(axis) + try: + outershape = np.broadcast(np.empty(xouter), np.empty(youter)).shape + except ValueError: + raise ValueError('x and y cannot be broadcast together.') + + if same_data: + if x.size == 0: + return np.empty(x.shape), np.empty(x.shape), np.empty(x.shape) + else: + if x.size == 0 or y.size == 0: + outshape = outershape + (min([x.shape[axis], y.shape[axis]]),) + emptyout = np.rollaxis(np.empty(outshape), -1, axis) + return emptyout, emptyout, emptyout + + if x.ndim > 1: + if axis != -1: + x = np.rollaxis(x, axis, len(x.shape)) + if not same_data and y.ndim > 1: + y = np.rollaxis(y, axis, len(y.shape)) + + # Check if x and y are the same length, zero-pad if necessary + if not same_data: + if x.shape[-1] != y.shape[-1]: + if x.shape[-1] < y.shape[-1]: + pad_shape = list(x.shape) + pad_shape[-1] = y.shape[-1] - x.shape[-1] + x = np.concatenate((x, np.zeros(pad_shape)), -1) + else: + pad_shape = list(y.shape) + pad_shape[-1] = x.shape[-1] - y.shape[-1] + y = np.concatenate((y, np.zeros(pad_shape)), -1) + + if nperseg is not None: # if specified by user + nperseg = int(nperseg) + if nperseg < 1: + raise ValueError('nperseg must be a positive integer') + + # parse window; if array like, then set nperseg = win.shape + win, nperseg = _triage_segments(window, nperseg,input_length=x.shape[-1]) + + if nfft is None: + nfft = nperseg + elif nfft < nperseg: + raise ValueError('nfft must be greater than or equal to nperseg.') + else: + nfft = int(nfft) + + if noverlap is None: + noverlap = nperseg//2 + else: + noverlap = int(noverlap) + if noverlap >= nperseg: + raise ValueError('noverlap must be less than nperseg.') + nstep = nperseg - noverlap + + # Padding occurs after boundary extension, so that the extended signal ends + # in zeros, instead of introducing an impulse at the end. + # I.e. if x = [..., 3, 2] + # extend then pad -> [..., 3, 2, 2, 3, 0, 0, 0] + # pad then extend -> [..., 3, 2, 0, 0, 0, 2, 3] + + if boundary is not None: + ext_func = boundary_funcs[boundary] + x = ext_func(x, nperseg//2, axis=-1) + if not same_data: + y = ext_func(y, nperseg//2, axis=-1) + + if padded: + # Pad to integer number of windowed segments + # I.e make x.shape[-1] = nperseg + (nseg-1)*nstep, with integer nseg + nadd = (-(x.shape[-1]-nperseg) % nstep) % nperseg + zeros_shape = list(x.shape[:-1]) + [nadd] + x = np.concatenate((x, np.zeros(zeros_shape)), axis=-1) + if not same_data: + zeros_shape = list(y.shape[:-1]) + [nadd] + y = np.concatenate((y, np.zeros(zeros_shape)), axis=-1) + + # Handle detrending and window functions + if not detrend: + def detrend_func(d): + return d + elif not hasattr(detrend, '__call__'): + def detrend_func(d): + return signaltools_detrend(d, type=detrend, axis=-1) + elif axis != -1: + # Wrap this function so that it receives a shape that it could + # reasonably expect to receive. + def detrend_func(d): + d = np.rollaxis(d, -1, axis) + d = detrend(d) + return np.rollaxis(d, axis, len(d.shape)) + else: + detrend_func = detrend + + if np.result_type(win,np.complex64) != outdtype: + win = win.astype(outdtype) + + if scaling == 'density': + scale = 1.0 / (fs * (win*win).sum()) + elif scaling == 'spectrum': + scale = 1.0 / win.sum()**2 + else: + raise ValueError('Unknown scaling: %r' % scaling) + + if mode == 'stft': + scale = np.sqrt(scale) + + if return_onesided: + if np.iscomplexobj(x): + sides = 'twosided' + #warnings.warn('Input data is complex, switching to ' 'return_onesided=False') + else: + sides = 'onesided' + if not same_data: + if np.iscomplexobj(y): + sides = 'twosided' + #warnings.warn('Input data is complex, switching to return_onesided=False') + else: + sides = 'twosided' + + if sides == 'twosided': + raise Exception('NOT IMPLEMENTED') + #freqs = fftpack.fftfreq(nfft, 1/fs) + elif sides == 'onesided': + freqs = np.fft.rfftfreq(nfft, 1/fs) + + # Perform the windowed FFTs + result = _fft_helper(x, win, detrend_func, nperseg, noverlap, nfft, sides) + + if not same_data: + # All the same operations on the y data + result_y = _fft_helper(y, win, detrend_func, nperseg, noverlap, nfft, + sides) + result = np.conjugate(result) * result_y + elif mode == 'psd': + result = np.conjugate(result) * result + + result *= scale + if sides == 'onesided' and mode == 'psd': + if nfft % 2: + result[..., 1:] *= 2 + else: + # Last point is unpaired Nyquist freq point, don't double + result[..., 1:-1] *= 2 + + time = np.arange(nperseg/2, x.shape[-1] - nperseg/2 + 1, + nperseg - noverlap)/float(fs) + if boundary is not None: + time -= (nperseg/2) / fs + + result = result.astype(outdtype) + + # All imaginary parts are zero anyways + if same_data and mode != 'stft': + result = result.real + + # Output is going to have new last axis for time/window index, so a + # negative axis index shifts down one + if axis < 0: + axis -= 1 + + # Roll frequency axis back to axis where the data came from + result = np.rollaxis(result, -1, axis) + + # TODO + class InfoClass(): + pass + Info = InfoClass(); + Info.df=freqs[1]-freqs[0] + Info.fMax=freqs[-1] + Info.LFreq=len(freqs) + Info.LSeg=nperseg + Info.LWin=len(win) + Info.LOvlp=noverlap + Info.nFFT=nfft + Info.nseg=-1 + #print('df:{:.3f} - fm:{:.2f} - nseg:{} - Lf:{:5d} - Lseg:{:5d} - Lwin:{:5d} - Lovlp:{:5d} - Nfft:{:5d} - Lsig:{}'.format(freqs[1]-freqs[0],freqs[-1],-1,len(freqs),nperseg,len(win),noverlap,nfft,x.shape[-1])) + return freqs, time, result, Info + + +def _fft_helper(x, win, detrend_func, nperseg, noverlap, nfft, sides): + """ Calculate windowed FFT """ + # Created strided array of data segments + if nperseg == 1 and noverlap == 0: + result = x[..., np.newaxis] + else: + # http://stackoverflow.com/a/5568169 + step = nperseg - noverlap + shape = x.shape[:-1]+((x.shape[-1]-noverlap)//step, nperseg) + strides = x.strides[:-1]+(step*x.strides[-1], x.strides[-1]) + result = np.lib.stride_tricks.as_strided(x, shape=shape, + strides=strides) + + # Detrend each data segment individually + result = detrend_func(result) + + # Apply window by multiplication + result = win * result + + # Perform the fft. Acts on last axis by default. Zero-pads automatically + if sides == 'twosided': + raise Exception('NOT IMPLEMENTED') + #func = fftpack.fft + else: + result = result.real + func = np.fft.rfft + result = func(result, n=nfft) + + return result + +def _triage_segments(window, nperseg,input_length): + """ + Parses window and nperseg arguments for spectrogram and _spectral_helper. + This is a helper function, not meant to be called externally. + """ + + #parse window; if array like, then set nperseg = win.shape + if isinstance(window, string_types) or isinstance(window, tuple): + # if nperseg not specified + if nperseg is None: + nperseg = 256 # then change to default + if nperseg > input_length: + print('nperseg = {0:d} is greater than input length ' + ' = {1:d}, using nperseg = {1:d}' + .format(nperseg, input_length)) + nperseg = input_length + win = get_window(window, nperseg) + else: + win = np.asarray(window) + if len(win.shape) != 1: + raise ValueError('window must be 1-D') + if input_length < win.shape[-1]: + raise ValueError('window is longer than input signal') + if nperseg is None: + nperseg = win.shape[0] + elif nperseg is not None: + if nperseg != win.shape[0]: + raise ValueError("value specified for nperseg is different from" + " length of window") + + return win, nperseg + + + + + + +# --------------------------------------------------------------------------------} +# --- Unittests +# --------------------------------------------------------------------------------{ +import unittest + +class TestSpectral(unittest.TestCase): + + def test_fft_amplitude(self): + dt=0.1 + t=np.arange(0,10,dt); + f0=1; + A=5; + y=A*np.sin(2*np.pi*f0*t) + f,Y,_=fft_amplitude(y,fs=1/dt,detrend=False) + i=np.argmax(Y) + self.assertAlmostEqual(Y[i],A) + self.assertAlmostEqual(f[i],f0) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/setup.py b/setup.py index e007dcf42..7bfea46e7 100644 --- a/setup.py +++ b/setup.py @@ -20,9 +20,19 @@ import io import os import sys -from shutil import rmtree - +from shutil import rmtree, copy +import glob +import platform from setuptools import find_packages, setup, Command +from numpy.distutils.command.build_ext import build_ext +from numpy.distutils.core import setup, Extension + +import multiprocessing as mp +from distutils.core import run_setup +from setuptools import find_packages +from numpy.distutils.command.build_ext import build_ext +from numpy.distutils.core import setup, Extension +from io import open # Package meta-data. NAME = 'rosco-toolbox' @@ -31,7 +41,7 @@ EMAIL = 'nikhar.abbas@nrel.gov' AUTHOR = 'NREL National Wind Technology Center' REQUIRES_PYTHON = '>=3.4' -VERSION = '2.1.4' +VERSION = '3.0.0' # These packages are required for all of the code to be executed. # - Maybe you can get away with older versions... @@ -52,6 +62,64 @@ } } + +# For the CMake Extensions +this_directory = os.path.abspath(os.path.dirname(__file__)) +ncpus = mp.cpu_count() +class CMakeExtension(Extension): + + def __init__(self, name, sourcedir='', **kwa): + Extension.__init__(self, name, sources=[], **kwa) + self.sourcedir = os.path.abspath(sourcedir) + +class CMakeBuildExt(build_ext): + + def copy_extensions_to_source(self): + newext = [] + for ext in self.extensions: + if isinstance(ext, CMakeExtension): continue + newext.append( ext ) + self.extensions = newext + super().copy_extensions_to_source() + + def build_extension(self, ext): + if isinstance(ext, CMakeExtension): + # Ensure that CMake is present and working + try: + self.spawn(['cmake', '--version']) + except OSError: + raise RuntimeError('Cannot find CMake executable') + + # Refresh build directory + localdir = os.path.join(this_directory, 'ROSCO','install') + os.makedirs(localdir, exist_ok=True) + + cmake_args = ['-DBUILD_SHARED_LIBS=OFF'] + cmake_args += ['-DCMAKE_Fortran_FLAGS=-ffree-line-length-0'] + + if platform.system() == 'Windows': + cmake_args += ['-DCMAKE_INSTALL_PREFIX={}'.format(localdir)] + if self.compiler.compiler_type == 'msvc': + cmake_args += ['-DCMAKE_GENERATOR_PLATFORM=x64'] + else: + cmake_args += ['-G', 'MinGW Makefiles'] + cmake_args += ['-D', 'CMAKE_Fortran_COMPILER=gfortran'] + + self.build_temp += '_'+ext.name + os.makedirs(localdir, exist_ok=True) + # Need fresh build directory for CMake + os.makedirs(self.build_temp, exist_ok=True) + + self.spawn(['cmake', '-S', ext.sourcedir, '-B', self.build_temp] + cmake_args) + self.spawn(['cmake', '--build', self.build_temp, '--target', 'install', '--config', 'Release']) + + else: + super().build_extension(ext) + + +# All of the extensions +roscoExt = CMakeExtension('rosco','ROSCO') + # The rest you shouldn't have to touch too much :) # ------------------------------------------------ # Except, perhaps the License and Trove Classifiers! @@ -113,24 +181,25 @@ def run(self): sys.exit() -# Where the magic happens: -setup( - name=NAME, - version=about['__version__'], - description=DESCRIPTION, - long_description=long_description, - long_description_content_type='text/markdown', - author=AUTHOR, - author_email=EMAIL, - python_requires=REQUIRES_PYTHON, - url=URL, - packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]), - install_requires=REQUIRED, - extras_require=EXTRAS, - include_package_data=True, - license='Apache License, Version 2.0', - - cmdclass={ - 'upload': UploadCommand, - }, + +metadata = dict( + name = NAME, + version = about['__version__'], + description = DESCRIPTION, + long_description = long_description, + long_description_content_type = 'text/markdown', + author = AUTHOR, + author_email = EMAIL, + url = URL, + install_requires = REQUIRED, + python_requires = REQUIRES_PYTHON, + extras_require = EXTRAS, + include_package_date = True, + packages = find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]), + license = 'Apache License, Version 2.0', + ext_modules = [roscoExt], + cmdclass = {'build_ext': CMakeBuildExt, 'upload': UploadCommand}, + zip_safe = False, ) + +setup(**metadata)