diff --git a/README.md b/README.md new file mode 100644 index 0000000..3f99ea4 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ + +# OpenSees VTK Support + +## Usage +- Copy the opensees-vtk.tcl file into your project. +- Source the opensees-vtk.tcl in your script before doing anything. +- Use vtk_output* commands to output to vtk file format. diff --git a/examples/quad.out.vtk b/examples/quad.out.vtk new file mode 100644 index 0000000..e525462 --- /dev/null +++ b/examples/quad.out.vtk @@ -0,0 +1,947 @@ +# vtk DataFile Version 2.0 +opensees model +ASCII +DATASET UNSTRUCTURED_GRID +POINTS 121 float +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 1.00000000000000000000 0.0 +0.00000000000000000000 2.00000000000000000000 0.0 +0.00000000000000000000 3.00000000000000000000 0.0 +0.00000000000000000000 4.00000000000000000000 0.0 +0.00000000000000000000 5.00000000000000000000 0.0 +0.00000000000000000000 6.00000000000000000000 0.0 +0.00000000000000000000 7.00000000000000000000 0.0 +0.00000000000000000000 8.00000000000000000000 0.0 +0.00000000000000000000 9.00000000000000000000 0.0 +0.00000000000000000000 10.00000000000000000000 0.0 +10.00000000000000000000 0.00000000000000000000 0.0 +10.00000000000000000000 1.00000000000000000000 0.0 +10.00000000000000000000 2.00000000000000000000 0.0 +10.00000000000000000000 3.00000000000000000000 0.0 +10.00000000000000000000 4.00000000000000000000 0.0 +10.00000000000000000000 5.00000000000000000000 0.0 +10.00000000000000000000 6.00000000000000000000 0.0 +10.00000000000000000000 7.00000000000000000000 0.0 +10.00000000000000000000 8.00000000000000000000 0.0 +10.00000000000000000000 9.00000000000000000000 0.0 +10.00000000000000000000 10.00000000000000000000 0.0 +20.00000000000000000000 0.00000000000000000000 0.0 +20.00000000000000000000 1.00000000000000000000 0.0 +20.00000000000000000000 2.00000000000000000000 0.0 +20.00000000000000000000 3.00000000000000000000 0.0 +20.00000000000000000000 4.00000000000000000000 0.0 +20.00000000000000000000 5.00000000000000000000 0.0 +20.00000000000000000000 6.00000000000000000000 0.0 +20.00000000000000000000 7.00000000000000000000 0.0 +20.00000000000000000000 8.00000000000000000000 0.0 +20.00000000000000000000 9.00000000000000000000 0.0 +20.00000000000000000000 10.00000000000000000000 0.0 +30.00000000000000000000 0.00000000000000000000 0.0 +30.00000000000000000000 1.00000000000000000000 0.0 +30.00000000000000000000 2.00000000000000000000 0.0 +30.00000000000000000000 3.00000000000000000000 0.0 +30.00000000000000000000 4.00000000000000000000 0.0 +30.00000000000000000000 5.00000000000000000000 0.0 +30.00000000000000000000 6.00000000000000000000 0.0 +30.00000000000000000000 7.00000000000000000000 0.0 +30.00000000000000000000 8.00000000000000000000 0.0 +30.00000000000000000000 9.00000000000000000000 0.0 +30.00000000000000000000 10.00000000000000000000 0.0 +40.00000000000000000000 0.00000000000000000000 0.0 +40.00000000000000000000 1.00000000000000000000 0.0 +40.00000000000000000000 2.00000000000000000000 0.0 +40.00000000000000000000 3.00000000000000000000 0.0 +40.00000000000000000000 4.00000000000000000000 0.0 +40.00000000000000000000 5.00000000000000000000 0.0 +40.00000000000000000000 6.00000000000000000000 0.0 +40.00000000000000000000 7.00000000000000000000 0.0 +40.00000000000000000000 8.00000000000000000000 0.0 +40.00000000000000000000 9.00000000000000000000 0.0 +40.00000000000000000000 10.00000000000000000000 0.0 +50.00000000000000000000 0.00000000000000000000 0.0 +50.00000000000000000000 1.00000000000000000000 0.0 +50.00000000000000000000 2.00000000000000000000 0.0 +50.00000000000000000000 3.00000000000000000000 0.0 +50.00000000000000000000 4.00000000000000000000 0.0 +50.00000000000000000000 5.00000000000000000000 0.0 +50.00000000000000000000 6.00000000000000000000 0.0 +50.00000000000000000000 7.00000000000000000000 0.0 +50.00000000000000000000 8.00000000000000000000 0.0 +50.00000000000000000000 9.00000000000000000000 0.0 +50.00000000000000000000 10.00000000000000000000 0.0 +60.00000000000000000000 0.00000000000000000000 0.0 +60.00000000000000000000 1.00000000000000000000 0.0 +60.00000000000000000000 2.00000000000000000000 0.0 +60.00000000000000000000 3.00000000000000000000 0.0 +60.00000000000000000000 4.00000000000000000000 0.0 +60.00000000000000000000 5.00000000000000000000 0.0 +60.00000000000000000000 6.00000000000000000000 0.0 +60.00000000000000000000 7.00000000000000000000 0.0 +60.00000000000000000000 8.00000000000000000000 0.0 +60.00000000000000000000 9.00000000000000000000 0.0 +60.00000000000000000000 10.00000000000000000000 0.0 +70.00000000000000000000 0.00000000000000000000 0.0 +70.00000000000000000000 1.00000000000000000000 0.0 +70.00000000000000000000 2.00000000000000000000 0.0 +70.00000000000000000000 3.00000000000000000000 0.0 +70.00000000000000000000 4.00000000000000000000 0.0 +70.00000000000000000000 5.00000000000000000000 0.0 +70.00000000000000000000 6.00000000000000000000 0.0 +70.00000000000000000000 7.00000000000000000000 0.0 +70.00000000000000000000 8.00000000000000000000 0.0 +70.00000000000000000000 9.00000000000000000000 0.0 +70.00000000000000000000 10.00000000000000000000 0.0 +80.00000000000000000000 0.00000000000000000000 0.0 +80.00000000000000000000 1.00000000000000000000 0.0 +80.00000000000000000000 2.00000000000000000000 0.0 +80.00000000000000000000 3.00000000000000000000 0.0 +80.00000000000000000000 4.00000000000000000000 0.0 +80.00000000000000000000 5.00000000000000000000 0.0 +80.00000000000000000000 6.00000000000000000000 0.0 +80.00000000000000000000 7.00000000000000000000 0.0 +80.00000000000000000000 8.00000000000000000000 0.0 +80.00000000000000000000 9.00000000000000000000 0.0 +80.00000000000000000000 10.00000000000000000000 0.0 +90.00000000000000000000 0.00000000000000000000 0.0 +90.00000000000000000000 1.00000000000000000000 0.0 +90.00000000000000000000 2.00000000000000000000 0.0 +90.00000000000000000000 3.00000000000000000000 0.0 +90.00000000000000000000 4.00000000000000000000 0.0 +90.00000000000000000000 5.00000000000000000000 0.0 +90.00000000000000000000 6.00000000000000000000 0.0 +90.00000000000000000000 7.00000000000000000000 0.0 +90.00000000000000000000 8.00000000000000000000 0.0 +90.00000000000000000000 9.00000000000000000000 0.0 +90.00000000000000000000 10.00000000000000000000 0.0 +100.00000000000000000000 0.00000000000000000000 0.0 +100.00000000000000000000 1.00000000000000000000 0.0 +100.00000000000000000000 2.00000000000000000000 0.0 +100.00000000000000000000 3.00000000000000000000 0.0 +100.00000000000000000000 4.00000000000000000000 0.0 +100.00000000000000000000 5.00000000000000000000 0.0 +100.00000000000000000000 6.00000000000000000000 0.0 +100.00000000000000000000 7.00000000000000000000 0.0 +100.00000000000000000000 8.00000000000000000000 0.0 +100.00000000000000000000 9.00000000000000000000 0.0 +100.00000000000000000000 10.00000000000000000000 0.0 + +CELLS 100 500 +4 0 11 12 1 +4 1 12 13 2 +4 2 13 14 3 +4 3 14 15 4 +4 4 15 16 5 +4 5 16 17 6 +4 6 17 18 7 +4 7 18 19 8 +4 8 19 20 9 +4 9 20 21 10 +4 11 22 23 12 +4 12 23 24 13 +4 13 24 25 14 +4 14 25 26 15 +4 15 26 27 16 +4 16 27 28 17 +4 17 28 29 18 +4 18 29 30 19 +4 19 30 31 20 +4 20 31 32 21 +4 22 33 34 23 +4 23 34 35 24 +4 24 35 36 25 +4 25 36 37 26 +4 26 37 38 27 +4 27 38 39 28 +4 28 39 40 29 +4 29 40 41 30 +4 30 41 42 31 +4 31 42 43 32 +4 33 44 45 34 +4 34 45 46 35 +4 35 46 47 36 +4 36 47 48 37 +4 37 48 49 38 +4 38 49 50 39 +4 39 50 51 40 +4 40 51 52 41 +4 41 52 53 42 +4 42 53 54 43 +4 44 55 56 45 +4 45 56 57 46 +4 46 57 58 47 +4 47 58 59 48 +4 48 59 60 49 +4 49 60 61 50 +4 50 61 62 51 +4 51 62 63 52 +4 52 63 64 53 +4 53 64 65 54 +4 55 66 67 56 +4 56 67 68 57 +4 57 68 69 58 +4 58 69 70 59 +4 59 70 71 60 +4 60 71 72 61 +4 61 72 73 62 +4 62 73 74 63 +4 63 74 75 64 +4 64 75 76 65 +4 66 77 78 67 +4 67 78 79 68 +4 68 79 80 69 +4 69 80 81 70 +4 70 81 82 71 +4 71 82 83 72 +4 72 83 84 73 +4 73 84 85 74 +4 74 85 86 75 +4 75 86 87 76 +4 77 88 89 78 +4 78 89 90 79 +4 79 90 91 80 +4 80 91 92 81 +4 81 92 93 82 +4 82 93 94 83 +4 83 94 95 84 +4 84 95 96 85 +4 85 96 97 86 +4 86 97 98 87 +4 88 99 100 89 +4 89 100 101 90 +4 90 101 102 91 +4 91 102 103 92 +4 92 103 104 93 +4 93 104 105 94 +4 94 105 106 95 +4 95 106 107 96 +4 96 107 108 97 +4 97 108 109 98 +4 99 110 111 100 +4 100 111 112 101 +4 101 112 113 102 +4 102 113 114 103 +4 103 114 115 104 +4 104 115 116 105 +4 105 116 117 106 +4 106 117 118 107 +4 107 118 119 108 +4 108 119 120 109 + +CELL_TYPES 100 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 +9 + +POINT_DATA 121 +VECTORS node_disp_0.100000 float +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.14458681123624306242 0.16762733120885700555 0.0 +0.11429508651256779783 0.16067582944307803872 0.0 +0.08498500609751503954 0.15533137242376379716 0.0 +0.05632712379066926595 0.15154851493047694078 0.0 +0.02806861387949756426 0.14929294008675195182 0.0 +-0.00000000033171502056 0.14854346418321776047 0.0 +-0.02806861430098302190 0.14929294054109729095 0.0 +-0.05632712372263823375 0.15154851564129692698 0.0 +-0.08498500591437262164 0.15533137298853663677 0.0 +-0.11429508700190295356 0.16067582949221229094 0.0 +-0.14458681099863227026 0.16762733161600662513 0.0 +0.28128884942742726771 0.59982599785436929718 0.0 +0.22491876118235243354 0.59521165468401349141 0.0 +0.16856157435362709163 0.59155874822283938119 0.0 +0.11229436060036596112 0.58891701801290874396 0.0 +0.05611967810992792710 0.58731947594012789970 0.0 +-0.00000000012183811085 0.58678492712688035127 0.0 +-0.05611967872182257316 0.58731947411754081845 0.0 +-0.11229436157755785797 0.58891701528089035467 0.0 +-0.16856157395714030378 0.59155874614786552179 0.0 +-0.22491875726771737298 0.59521165427027900030 0.0 +-0.28128884821590616205 0.59982599554386861751 0.0 +0.40109350583497394016 1.29202691185878792979 0.0 +0.32029852652808732394 1.28764484040521742791 0.0 +0.23992150754823260428 1.28426942665741350424 0.0 +0.15981351663149009901 1.28187333946335391133 0.0 +0.07986819923388409348 1.28044094519713747005 0.0 +0.00000000709334615669 1.27996429038344161633 0.0 +-0.07986818632766290449 1.28044094845377420810 0.0 +-0.15981350914419853448 1.28187334320563128820 0.0 +-0.23992151248802195962 1.28426942685042799752 0.0 +-0.32029854752743824875 1.28764483631894832705 0.0 +-0.40109351674936655208 1.29202691748978115704 0.0 +0.50469318462184531437 2.20697653628456080810 0.0 +0.40331061788965277826 2.20330786697726876966 0.0 +0.30220978264441605843 2.20044177304375132564 0.0 +0.20133935855382736890 2.19838968426475611651 0.0 +0.10062893048122999173 2.19715696288636141986 0.0 +-0.00000004349209996403 2.19674585794764354318 0.0 +-0.10062900505909173898 2.19715697362625528299 0.0 +-0.20133939496012154269 2.19838971034491681422 0.0 +-0.30220975794460835928 2.20044181819831363711 0.0 +-0.40331053657149157354 2.20330792032507094547 0.0 +-0.50469315201291831130 2.20697654383422081636 0.0 +0.59218787308050102602 3.31312941648387848659 0.0 +0.47327323865239423473 3.31006257188409236392 0.0 +0.35468186980922700169 3.30768130531750648160 0.0 +0.23632577027641807343 3.30598156653231045610 0.0 +0.11812446419483654814 3.30496193766233226086 0.0 +0.00000014418844179896 3.30462204183394803181 0.0 +-0.11812422716089006347 3.30496182271220106941 0.0 +-0.23632567708942664453 3.30598134349452132952 0.0 +-0.35468196859468403837 3.30768100196604297736 0.0 +-0.47327345145236060509 3.31006226866102393203 0.0 +-0.59218781280500343289 3.31312930388026805062 0.0 +0.66351771047253282898 4.57809186750176078107 0.0 +0.53034598654966946807 4.57565230253387777992 0.0 +0.39748443424072221752 4.57375395717703803200 0.0 +0.26485820536559578908 4.57239800271529350795 0.0 +0.13238956587492450856 4.57158460285474177454 0.0 +-0.00000010953037279319 4.57131365007938406109 0.0 +-0.13238967414948346613 4.57158505884088750548 0.0 +-0.26485803610087221838 4.57239883476235586812 0.0 +-0.39748401055499987811 4.57375498240888056500 0.0 +-0.53034574018592484101 4.57565318711057589240 0.0 +-0.66351886704342011303 4.57809204998301044753 0.0 +0.71870486687536816461 5.96956630436765411929 0.0 +0.57448837692564258539 5.96775147013224938064 0.0 +0.43058946611155202167 5.96633986347059686040 0.0 +0.28692763190167269727 5.96533121870378479912 0.0 +0.14342350678927745511 5.96472573682162732212 0.0 +-0.00000184014783066671 5.96452369108820779076 0.0 +-0.14342713154140585008 5.96472527630185744840 0.0 +-0.28693094578537620132 5.96533057456261506246 0.0 +-0.43059175091108381483 5.96633960054665735129 0.0 +-0.57448803648635105024 5.96775245925705188910 0.0 +-0.71869883055339278677 5.96956973771618226721 0.0 +0.75772644203932637552 7.45529211077637210536 0.0 +0.60572400667016823572 7.45408820825478546368 0.0 +0.45402864604391607317 7.45315015711897110862 0.0 +0.30256289373968148215 7.45247901106349175393 0.0 +0.15124970516713528990 7.45207512108540726103 0.0 +0.00001222638894106271 7.45193849906297067776 0.0 +-0.15122639477802085617 7.45206899579208137396 0.0 +-0.30254315685180449558 7.45246636403102957757 0.0 +-0.45401536332847314270 7.45313022963407689758 0.0 +-0.60572084321604913182 7.45405995874703197757 0.0 +-0.75773823459695921478 7.45525436410934361220 0.0 +0.78055504523548713269 9.00267150125110404701 0.0 +0.62395415939656129201 9.00214802150537529712 0.0 +0.46767211575291611769 9.00175346130522058274 0.0 +0.31163312293814948717 9.00148192087192100530 0.0 +0.15575795626417551776 9.00132944776866317227 0.0 +-0.00003468825749876055 9.00129381618465806980 0.0 +-0.15582713222612071258 9.00137440211920214495 0.0 +-0.31170180882685716295 9.00157212705270914910 0.0 +-0.46774038915606241940 9.00188945973923715371 0.0 +-0.62402282525585262007 9.00233047657076923542 0.0 +-0.78062619806105859599 9.00290099627681428274 0.0 +0.78836424163372875729 10.58085238187889309813 0.0 +0.63021305026651719405 10.58060698976302660412 0.0 +0.47236944290817434178 10.58037641049966026685 0.0 +0.31475676311931705120 10.58018938065462855036 0.0 +0.15729886247558128032 10.58006630002028636284 0.0 +-0.00008021847889986570 10.58001924825920347928 0.0 +-0.15745623761962704301 10.58005200003999135561 0.0 +-0.31490456036993702549 10.58016002412652944997 0.0 +-0.47249990927843621424 10.58033045946300099160 0.0 +-0.63031616096688447559 10.58054207041010918999 0.0 +-0.78842630581288553060 10.58076518950335476177 0.0 + +VECTORS node_disp_0.200000 float +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.28917362250596934103 0.33525466245723151149 0.0 +0.22859017305156242861 0.32135165892408146249 0.0 +0.16997001221465829479 0.31066274488423051281 0.0 +0.11265424759434022883 0.30309702989679232488 0.0 +0.05613722776547602766 0.29858588020882692593 0.0 +-0.00000000066341956585 0.29708692840158690274 0.0 +-0.05613722860842595974 0.29858588111751638294 0.0 +-0.11265424745825713959 0.30309703131842963275 0.0 +-0.16997001184835214271 0.31066274601377252829 0.0 +-0.22859017403021111847 0.32135165902234508195 0.0 +-0.28917362203072549676 0.33525466327152453339 0.0 +0.56257769891882991597 1.19965199584779469433 0.0 +0.44983752241583419007 1.19042330950608210571 0.0 +0.33712314874555937561 1.18311749658293896559 0.0 +0.22458872122624901069 1.17783403616250170742 0.0 +0.11223935623261716010 1.17463895201659118683 0.0 +-0.00000000024365252725 1.17356985438997885041 0.0 +-0.11223935745635921224 1.17463894837141502592 0.0 +-0.22458872318058586970 1.17783403069846182021 0.0 +-0.33712314795253905952 1.18311749243298525158 0.0 +-0.44983751458651777266 1.19042330867860579602 0.0 +-0.56257769649574207449 1.19965199122678489729 0.0 +0.80218701175938789127 2.58405382401289118732 0.0 +0.64059705312756554108 2.57528968110484512977 0.0 +0.47984301514992711013 2.56853885360854228281 0.0 +0.31962703329859232237 2.56374667921993060204 0.0 +0.15973639848557907861 2.56088189068720417652 0.0 +0.00000001418672557641 2.55992858105971521354 0.0 +-0.15973637267306978194 2.56088189720047765263 0.0 +-0.31962701832394146972 2.56374668670448713215 0.0 +-0.47984302502943776414 2.56853885399457437799 0.0 +-0.64059709512619877891 2.57528967293231003666 0.0 +-0.80218703358810494741 2.58405383527487941819 0.0 +1.00938636935371794934 4.41395307306661432989 0.0 +0.80662123586720468893 4.40661573445133036842 0.0 +0.60441956535468710499 4.40088354658374747430 0.0 +0.40267871715153302770 4.39677936902536448116 0.0 +0.20125786098440889837 4.39431392626833883241 0.0 +-0.00000008698415701824 4.39349171639082136664 0.0 +-0.20125801014004665590 4.39431394774812122961 0.0 +-0.40267878996403544400 4.39677942118567699481 0.0 +-0.60441951595498366601 4.40088363689286232727 0.0 +-0.80662107323079168530 4.40661584114692317371 0.0 +-1.00938630413577001832 4.41395308816591658285 0.0 +1.18437574628693909062 6.62625883370369450631 0.0 +0.94654647740541864032 6.62012514450359645934 0.0 +0.70936373969386679050 6.61536261137001346810 0.0 +0.47265154060309610973 6.61196313379932298915 0.0 +0.23624892841482331152 6.60992387605918985116 0.0 +0.00000028837694577281 6.60924408440236010875 0.0 +-0.23624845434680577516 6.60992364615892036284 0.0 +-0.47265135422898835182 6.61196268772372874878 0.0 +-0.70936393726465596377 6.61536200466705714973 0.0 +-0.94654690300522725810 6.62012453805742318025 0.0 +-1.18437562573581978143 6.62625860849643633088 0.0 +1.32703542108247374287 9.15618373600515056410 0.0 +1.06069197320916819294 9.15130460606902218501 0.0 +0.79496886856376969277 9.14750791535506024843 0.0 +0.52971641078607067943 9.14479600643137047200 0.0 +0.26477913177731920991 9.14316920671014088384 0.0 +-0.00000021906066635125 9.14262730115938282438 0.0 +-0.26477934832627969541 9.14317011868243412209 0.0 +-0.52971607225646999417 9.14479767052549696871 0.0 +-0.79496802119217757632 9.14750996581874886715 0.0 +-1.06069148048153794051 9.15130637522242196269 0.0 +-1.32703773422411419602 9.15618410096765700246 0.0 +1.43740973389568704732 11.93913261002112591314 0.0 +1.14897675396716625329 11.93550294155009439123 0.0 +0.86117893230997699661 11.93267972822661704413 0.0 +0.57385526386125729204 11.93066243869287390567 0.0 +0.28684701360753595001 11.92945147492849322646 0.0 +-0.00000368029559639734 11.92904738346164350560 0.0 +-0.28685426311166195568 11.92945055388897657167 0.0 +-0.57386189162853473711 11.93066115041057884127 0.0 +-0.86118350190891213014 11.93267920237878954026 0.0 +-1.14897607308845506324 11.93550491979974736978 0.0 +-1.43739766125160928212 11.93913947671823549967 0.0 +1.51545288422795110250 14.91058422313441766960 0.0 +1.21144801345970143380 14.90817641809113247575 0.0 +0.90805729217731867564 14.90630031581940961871 0.0 +0.60512578753901369311 14.90495802370838518414 0.0 +0.30249941036411398532 14.90415024375217534214 0.0 +0.00002445277793481370 14.90387699970728618837 0.0 +-0.30245278958577809236 14.90413799316552712071 0.0 +-0.60508631376314503392 14.90493272964346616050 0.0 +-0.90803072674631002403 14.90626046084963185479 0.0 +-1.21144168655133244172 14.90811991907563971438 0.0 +-1.51547646934308000155 14.91050872980036956506 0.0 +1.56111009062196304242 18.00534300438542345546 0.0 +1.24790831891388687147 18.00429604489393398126 0.0 +0.93534423159639901169 18.00350692449359968350 0.0 +0.62326624593668888963 18.00296384362697210690 0.0 +0.31151591255857691287 18.00265889742042446642 0.0 +-0.00006937651492896092 18.00258763425240005063 0.0 +-0.31165426448232880219 18.00274880612148464820 0.0 +-0.62340361771396435309 18.00314425598850931465 0.0 +-0.93548077840254939552 18.00377892136158664016 0.0 +-1.24804565063232253408 18.00466095502466856715 0.0 +-1.56125239627295453460 18.00580199443678708349 0.0 +1.57672848341870297517 21.16170476594334104448 0.0 +1.26042610065404914188 21.16121398171160095103 0.0 +0.94473888590713350766 21.16075282318486117106 0.0 +0.62951352629919221648 21.16037876349479418536 0.0 +0.31459772498149174424 21.16013260222610981032 0.0 +-0.00016043695770011709 21.16003849870393338506 0.0 +-0.31491247526938537238 21.16010400226549492686 0.0 +-0.62980912080023698785 21.16032005043856401016 0.0 +-0.94499981864746795956 21.16066092111149643529 0.0 +-1.26063232205459785362 21.16108414300570927935 0.0 +-1.57685261177683377909 21.16153038119220397562 0.0 + +VECTORS node_disp_0.300000 float +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.43376043377569606374 0.50288199370560648926 0.0 +0.34288525959055732306 0.48202748840508524708 0.0 +0.25495501833180167495 0.46599411734469786683 0.0 +0.16898137139801128193 0.45464554486310826409 0.0 +0.08420584165145450495 0.44787882033090253842 0.0 +-0.00000000099512421461 0.44563039261995673890 0.0 +-0.08420584291586909187 0.44787882169393616882 0.0 +-0.16898137119387629523 0.45464554699556314343 0.0 +-0.25495501778233198298 0.46599411903900928023 0.0 +-0.34288526105851957482 0.48202748855247856685 0.0 +-0.43376043306281908407 0.50288199492704310778 0.0 +0.84386654841023345242 1.79947799384122264499 0.0 +0.67475628364931661274 1.78563496432815282944 0.0 +0.50568472313749213143 1.77467624494304043736 0.0 +0.33688308185213244883 1.76675105431209722440 0.0 +0.16835903435530644168 1.76195842809305691645 0.0 +-0.00000000036546704889 1.76035478165307956999 0.0 +-0.16835903619089609418 1.76195842262529134281 0.0 +-0.33688308478361428389 1.76675104611603472904 0.0 +-0.50568472194793845365 1.77467623871810697977 0.0 +-0.67475627190531894950 1.78563496308693414605 0.0 +-0.84386654477557887510 1.79947798690970328650 0.0 +1.20328051768380328568 3.87608073616699977393 0.0 +0.96089557972704497946 3.86293452180447882682 0.0 +0.71976452275162239314 3.85280828055967727863 0.0 +0.47944054996569496208 3.84562001897651306592 0.0 +0.23960459773727435517 3.84132283617727487979 0.0 +0.00000002128010498413 3.83989287173599258551 0.0 +-0.23960455901847715898 3.84132284594718598214 0.0 +-0.47944052750368537641 3.84562003020334719494 0.0 +-0.71976453757085478991 3.85280828113872519936 0.0 +-0.96089564272496130748 3.86293450954567685329 0.0 +-1.20328055042684600728 3.87608075305998234228 0.0 +1.51407955408559247168 6.62092960984867673346 0.0 +1.20993185384475854249 6.60992360192540218122 0.0 +0.90662934806495942830 6.60132532012375250474 0.0 +0.60401807574923993549 6.59516905378598039533 0.0 +0.30188679148758867932 6.59147088965032423857 0.0 +-0.00000013047621367429 6.59023757483400896007 0.0 +-0.30188701522100153118 6.59147092186999650210 0.0 +-0.60401818496794978941 6.59516913202644872172 0.0 +-0.90662927396536008295 6.60132545558742123148 0.0 +-1.20993160989009362893 6.60992376196878872463 0.0 +-1.51407945625862394579 6.62092963249762789246 0.0 +1.77656361949338004180 9.93938825092352651325 0.0 +1.41981971615844559942 9.93018771712311476563 0.0 +1.06404560957850868874 9.92304391742253244502 0.0 +0.70897731092977556155 9.91794470106634840079 0.0 +0.35437339263481082430 9.91488581445605987597 0.0 +0.00000043256544993043 9.91386612697078462020 0.0 +-0.35437268153272183380 9.91488546960565209076 0.0 +-0.70897703136855072525 9.91794403195294904663 0.0 +-1.06404590593462877735 9.92304300736808642114 0.0 +-1.41982035455809540991 9.93018680745383619524 0.0 +-1.77656343866663846143 9.93938791311261837791 0.0 +1.99055313169241787641 13.73427560450855899887 0.0 +1.59103795986866902723 13.72695690960418701820 0.0 +1.19245330288681938846 13.72126187353310555750 0.0 +0.79457461620654679102 13.71719401014746964051 0.0 +0.39716869767971485494 13.71475381056555953307 0.0 +-0.00000032859095912060 13.71394095223940468031 0.0 +-0.39716902250307561939 13.71475517852399761409 0.0 +-0.79457410841206832508 13.71719650628865494468 0.0 +-1.19245203182935677333 13.72126494922863670922 0.0 +-1.59103722077715259431 13.72695956333429379015 0.0 +-1.99055660140481061049 13.73427615195232753820 0.0 +2.15611460091600770639 17.90869891567461991144 0.0 +1.72346513100869103141 17.90325441296796071811 0.0 +1.29176839850840319279 17.89901959298266120868 0.0 +0.86078289582084321907 17.89599365868198077578 0.0 +0.43027052042579561064 17.89417721303538044708 0.0 +-0.00000552044336086180 17.89357107583509787219 0.0 +-0.43028139468191772821 17.89417583147611878758 0.0 +-0.86079283747169332841 17.89599172625856837726 0.0 +-1.29177525290674122260 17.89901880421094659823 0.0 +-1.72346410969056051954 17.90325738034246683128 0.0 +-2.15609649194982733178 17.90870921572031093660 0.0 +2.27317932641657893811 22.36587633549249432008 0.0 +1.81717202024923629722 22.36226462792750879771 0.0 +1.36208593831072199976 22.35945047451987832687 0.0 +0.90768868133834468281 22.35743703635331058877 0.0 +0.45374911556109120969 22.35622536641897539766 0.0 +0.00003667916692609868 22.35581550035163189705 0.0 +-0.45367918439353827065 22.35620699053900040099 0.0 +-0.90762947067448962457 22.35739909525593560602 0.0 +-1.36204609016415112421 22.35939069206521523370 0.0 +-1.81716252988662008150 22.36217987940427320837 0.0 +-2.27321470408920500716 22.36576309549142749233 0.0 +2.34166513600843817500 27.00801450751977483833 0.0 +1.87186247843121145173 27.00644406828252641617 0.0 +1.40301634743988135057 27.00526038768201075868 0.0 +0.93489936893522829209 27.00444576638204807750 0.0 +0.46727386885297850228 27.00398834707220885321 0.0 +-0.00010406477235842538 27.00388145232017222952 0.0 +-0.46748139673853617015 27.00412321012378669138 0.0 +-0.93510542660106943380 27.00471638492432546741 0.0 +-1.40322116764903359609 27.00566838298395566653 0.0 +-1.87206847600879022764 27.00699143347859632058 0.0 +-2.34187859448484925196 27.00870299259678830595 0.0 +2.36509272520368352133 31.74255715000781918889 0.0 +1.89063915104158586367 31.74182097366020727236 0.0 +1.41710832890609772505 31.74112923587009049697 0.0 +0.94427028947907065692 31.74056814633499001843 0.0 +0.47189658748740470617 31.74019890443196345586 0.0 +-0.00024065543649926516 31.74005774914868283076 0.0 +-0.47236871291914317439 31.74015600449102691982 0.0 +-0.94471368123053833799 31.74048007675062876842 0.0 +-1.41749972801650203635 31.74099138276002207704 0.0 +-1.89094848314231467334 31.74162621560133601406 0.0 +-2.36527891774078602438 31.74229557288108338753 0.0 + +VECTORS node_disp_0.400000 float +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.57834724504542300849 0.67050932495398163358 0.0 +0.45718034612955243956 0.64270331788608936474 0.0 +0.33994002444894527715 0.62132548980516510984 0.0 +0.22530849520168244604 0.60619405982942409228 0.0 +0.11227445553743305162 0.59717176045297792886 0.0 +-0.00000000132682879409 0.59417385683832635301 0.0 +-0.11227445722331215461 0.59717176227035562164 0.0 +-0.22530849492949542312 0.60619406267269637656 0.0 +-0.33994002371631193427 0.62132549206424569910 0.0 +-0.45718034808682816994 0.64270331808261194073 0.0 +-0.57834724409491278241 0.67050932658256168217 0.0 +1.12515539790163709988 2.39930399183465059565 0.0 +0.89967504488279914643 2.38084661915022355316 0.0 +0.67424629752942499827 2.36623499330314235323 0.0 +0.44917744247801583146 2.35566807246169229728 0.0 +0.22447871247799577876 2.34927790416952264607 0.0 +-0.00000000048728152581 2.34713970891618073367 0.0 +-0.22447871492543297611 2.34927789687916810379 0.0 +-0.44917744638664269807 2.35566806153360808196 0.0 +-0.67424629594333773674 2.36623498500322870797 0.0 +-0.89967502922412023736 2.38084661749526294017 0.0 +-1.12515539305541611981 2.39930398259262167571 0.0 +1.60437402360821890213 5.16810764832110791644 0.0 +1.28119410632652397375 5.15057936250411074752 0.0 +0.95968603035331756512 5.13707770751081049809 0.0 +0.63925406663279782382 5.12749335873309419753 0.0 +0.31947279698896974276 5.12176378166734558306 0.0 +0.00000002837348458522 5.11985716241226995749 0.0 +-0.31947274536388414745 5.12176379469389431165 0.0 +-0.63925403668342872798 5.12749337370220814591 0.0 +-0.95968605011227148260 5.13707770828287735299 0.0 +-1.28119419032372361400 5.15057934615904500220 0.0 +-1.60437406726558640102 5.16810767084508704272 0.0 +2.01877273881746610584 8.82790614663073824886 0.0 +1.61324247182231195197 8.81323146939947221767 0.0 +1.20883913077523130752 8.80176709366375753518 0.0 +0.80535743434694617715 8.79355873854659719768 0.0 +0.40251572199076779413 8.78862785303230964473 0.0 +-0.00000017396827066724 8.78698343327719300078 0.0 +-0.40251602030195665627 8.78862789599186911005 0.0 +-0.80535757997186430135 8.79355884286721689591 0.0 +-1.20883903197573627786 8.80176727428198013570 0.0 +-1.61324214654939468438 8.81323168279065072284 0.0 +-2.01877260838147698507 8.82790617682933564936 0.0 +2.36875149269982010480 13.25251766814335319111 0.0 +1.89309295491147189239 13.24025028974262774284 0.0 +1.41872747946315014289 13.23072522347504786921 0.0 +0.94530308125645512440 13.22392626833337203607 0.0 +0.47249785685479872566 13.21984775285292634806 0.0 +0.00000057675395494564 13.21848816953920646711 0.0 +-0.47249690871863680997 13.21984729305238204233 0.0 +-0.94530270850811193295 13.22392537618216756812 0.0 +-1.41872787460460081377 13.23072401006911036347 0.0 +-1.89309380611096256253 13.24024907685024743387 0.0 +-2.36875125159745536507 13.25251721772880131311 0.0 +2.65407084230236023359 18.31236747301196388094 0.0 +2.12138394652816897334 18.30260921313934119325 0.0 +1.58993773720986819598 18.29501583171114020843 0.0 +1.05943282162702256954 18.28959201386356170360 0.0 +0.52955826358211033345 18.28633841442097107688 0.0 +-0.00000043812125207196 18.28525460331941587810 0.0 +-0.52955869667987176541 18.28634023836555400067 0.0 +-1.05943214456766643394 18.28959534205180759159 0.0 +-1.58993604246653474910 18.29501993263852455129 0.0 +-2.12138296107276635993 18.30261275144615851218 0.0 +-2.65407546858550613678 18.31236820293699452122 0.0 +2.87481946793632969772 23.87826522132810680432 0.0 +2.29795350805021669771 23.87100588438581638684 0.0 +1.72235786470682961102 23.86535945773869826780 0.0 +1.14771052778042870202 23.86132487867108409318 0.0 +0.57369402724405471616 23.85890295114226233864 0.0 +-0.00000736059112550715 23.85809476820854868606 0.0 +-0.57370852625217350074 23.85890110906325389806 0.0 +-1.14772378331485191971 23.86132230210654725511 0.0 +-1.72236700390456998200 23.86535840604309655077 0.0 +-2.29795214629266553175 23.87100984088518274007 0.0 +-2.87479532264804449326 23.87827895472238282082 0.0 +3.03090576860520766189 29.82116844785056741785 0.0 +2.42289602703877227086 29.81635283776387979060 0.0 +1.81611458444412754432 29.81260063322033815325 0.0 +1.21025157513767922524 29.80991604899822178254 0.0 +0.60499882075807220883 29.80830048908575946598 0.0 +0.00004890555592159390 29.80775400099596339487 0.0 +-0.60490557920129450764 29.80827598791246657584 0.0 +-1.21017262758582999638 29.80986546086839084069 0.0 +-1.81606145358198789452 29.81252092328078617811 0.0 +-2.42288337322190328038 29.81623983973289782057 0.0 +-3.03095293883532601598 29.82101746118247476147 0.0 +3.12222018139491375166 36.01068601065411201034 0.0 +2.49581663794853803040 36.00859209167109753480 0.0 +1.87068846328336602092 36.00701385087040051758 0.0 +1.24653249193376991499 36.00592768913710983725 0.0 +0.62303182514738186804 36.00531779672397902914 0.0 +-0.00013875302978641807 36.00517527038793730298 0.0 +-0.62330852899474109563 36.00549761412608518185 0.0 +-1.24680723548817251611 36.00628851386014162017 0.0 +-1.87096155689551624235 36.00755784460631758748 0.0 +-2.49609130138525747711 36.00932191193251696859 0.0 +-3.12250479269674219296 36.01160399075677531755 0.0 +3.15345696698866184704 42.32340953407227601701 0.0 +2.52085220142912191932 42.32242796560879583012 0.0 +1.88947777190506083222 42.32150564855529495389 0.0 +1.25902705265894909736 42.32075752917516808793 0.0 +0.62919544999331877833 42.32026520663779933784 0.0 +-0.00032087391529526086 42.32007699959342517104 0.0 +-0.62982495056889808982 42.32020800671654825464 0.0 +-1.25961824166083569132 42.32064010306267931583 0.0 +-1.88999963738553100612 42.32132184440853706064 0.0 +-2.52126464423002571991 42.32216828819695564334 0.0 +-3.15370522370473160834 42.32306076456994503587 0.0 + +VECTORS node_disp_0.500000 float +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +0.72293405631514962018 0.83813665620235666687 0.0 +0.57147543266854727850 0.80337914736709314933 0.0 +0.42492503056608876832 0.77665686226563246386 0.0 +0.28163561900535355464 0.75774257479574003149 0.0 +0.14034306942341157054 0.74646470057505354134 0.0 +-0.00000000165853338512 0.74271732105669607815 0.0 +-0.14034307153075523122 0.74646470284677524099 0.0 +-0.28163561866511449550 0.75774257834982960969 0.0 +-0.42492502965029171902 0.77665686508948228450 0.0 +-0.57147543511513654302 0.80337914761274542563 0.0 +-0.72293405512700625870 0.83813665823808025657 0.0 +1.40644424739304008121 2.99912998982807721404 0.0 +1.12459380611628123603 2.97605827397229383280 0.0 +0.84280787192135742103 2.95779374166324338091 0.0 +0.56147180310389910307 2.94458509061128737017 0.0 +0.28059839060068508809 2.93659738024598748751 0.0 +-0.00000000060909585459 2.93392463617928100916 0.0 +-0.28059839365996952498 2.93659737113304419864 0.0 +-0.56147180798967077919 2.94458507695118099079 0.0 +-0.84280786993873668678 2.95779373128835043616 0.0 +-1.12459378654292119215 2.97605827190359129020 0.0 +-1.40644424133525269838 2.99912997827554006491 0.0 +2.00546752953263274222 6.46013456047521383852 0.0 +1.60149263292600219089 6.43822420320374089187 0.0 +1.19960753795501218200 6.42134713446194194120 0.0 +0.79906758329990001943 6.40936669848967355279 0.0 +0.39934099624066482503 6.40220472715741362180 0.0 +0.00000003546686404807 6.39982145308854377674 0.0 +-0.39934093170929113592 6.40220474344059997662 0.0 +-0.79906754586317185751 6.40936671720106687644 0.0 +-1.19960756265368773121 6.42134713542702773026 0.0 +-1.60149273792248525439 6.43822418277241226292 0.0 +-2.00546758410432612862 6.46013458863019085499 0.0 +2.52346592354933996205 11.03488268341279443518 0.0 +2.01655308979986491735 11.01653933687353692505 0.0 +1.51104891348550318675 11.00220886720375546020 0.0 +1.00669679294465286290 10.99194842330720689461 0.0 +0.50314465249394735302 10.98578481641428972182 0.0 +-0.00000021746032747643 10.98372929172037615331 0.0 +-0.50314502538291128175 10.98578487011373994164 0.0 +-1.00669697497577814715 10.99194855370798329375 0.0 +-1.51104878998611180663 11.00220909297653371084 0.0 +-2.01655268320869573984 11.01653960361250916833 0.0 +-2.52346576050432958027 11.03488272116103985354 0.0 +2.96093936590625794736 16.56564708536317453991 0.0 +2.36636619366449618695 16.55031286236213716734 0.0 +1.77340934934778959864 16.53840652952755974070 0.0 +1.18162885158313235578 16.52990783560039034228 0.0 +0.59062232107478462861 16.52480969124978926743 0.0 +0.00000072094245836819 16.52311021210762120859 0.0 +-0.59062113590455345147 16.52480911649910666483 0.0 +-1.18162838564767436189 16.52990672041137898418 0.0 +-1.77340984327457307224 16.53840501277013075310 0.0 +-2.36636725766382882696 16.55031134624665156707 0.0 +-2.96093906452827182463 16.56564652234497359018 0.0 +3.31758855291230192464 22.89045934151535988121 0.0 +2.65172993318766803128 22.87826151667449536831 0.0 +1.98742217153291611531 22.86876978988917130664 0.0 +1.32429102704749745989 22.86199001757964310855 0.0 +0.66194782948450481275 22.85792301827637373890 0.0 +-0.00000054765154629739 22.85656825439941997047 0.0 +-0.66194837085666857757 22.85792529820710683452 0.0 +-1.32429018072326498690 22.86199417781495313307 0.0 +-1.98742005310371450122 22.86877491604839462980 0.0 +-2.65172870136838101374 22.87826593955801257607 0.0 +-3.31759433576620210715 22.89046025392164551704 0.0 +3.59352433495664680407 29.84783152698158303906 0.0 +2.87244188509173969948 29.83875735580366495014 0.0 +2.15294733090525447494 29.83169932249472111607 0.0 +1.43463815974001374087 29.82665609866017675245 0.0 +0.71711753406231415475 29.82362868924913001933 0.0 +-0.00000920073888985102 29.82261846058198528908 0.0 +-0.71713565782242827407 29.82362638665037479768 0.0 +-1.43465472915800873466 29.82665287795451902753 0.0 +-2.15295875490239652095 29.83169800787523584518 0.0 +-2.87244018289476787942 29.83876230142788443800 0.0 +-3.59349415334625899021 29.84784869372444404689 0.0 +3.78863221079383638568 37.27646056020861919933 0.0 +3.02862003382830824449 37.27044104760022946721 0.0 +2.27014323057753220070 37.26575079192078021606 0.0 +1.51281446893701199130 37.26239506164312587089 0.0 +0.75624852595505087649 37.26037561175253642887 0.0 +0.00006113194491390136 37.25969250164028778727 0.0 +-0.75613197400905363121 37.26034498528591853983 0.0 +-1.51271578449717303272 37.26233182648083186450 0.0 +-2.27007681699982644119 37.26565115449634646438 0.0 +-3.02860421655718781153 37.27029980006150822192 0.0 +-3.78869117358144702479 37.27627182687349716161 0.0 +3.90277522678139110468 45.01335751378843497150 0.0 +3.11977079746586438702 45.01074011505966154800 0.0 +2.33836057912684980309 45.00876731405878672376 0.0 +1.55816561493230998359 45.00740961189217159699 0.0 +0.77878978144178412357 45.00664724637574920507 0.0 +-0.00017344128721502402 45.00646908845568106017 0.0 +-0.77913566125094713133 45.00687201812837656689 0.0 +-1.55850904437527759683 45.00786064279594711479 0.0 +-2.33870194614200155314 45.00944730622867240299 0.0 +-3.12011412676172650293 45.01165239038641630032 0.0 +-3.90313099090863779850 45.01450498891675522373 0.0 +3.94182120877364239320 52.90426191813673995057 0.0 +3.15106525181665819701 52.90303495755738794060 0.0 +2.36184721490402305122 52.90188206124052072710 0.0 +1.57378381583882664962 52.90094691201534971015 0.0 +0.78649431249923140719 52.90033150884363521982 0.0 +-0.00040109239409614274 52.90009625003816040589 0.0 +-0.78728118821865777921 52.90026000894206248404 0.0 +-1.57452280209113792964 52.90080012937472275780 0.0 +-2.36249954675456486086 52.90165230605704493883 0.0 +-3.15158080531774231758 52.90271036079256816720 0.0 +-3.94213152966868474181 52.90382595625880668422 0.0 + diff --git a/examples/quad.tcl b/examples/quad.tcl new file mode 100644 index 0000000..6522a53 --- /dev/null +++ b/examples/quad.tcl @@ -0,0 +1,257 @@ + +wipe +model BasicBuilder -ndm 2 -ndf 2 +timeSeries Linear 1 +nDMaterial ElasticIsotropic 1 3000 0.3 +node 1 0 0 +node 2 0 1 +node 3 0 2 +node 4 0 3 +node 5 0 4 +node 6 0 5 +node 7 0 6 +node 8 0 7 +node 9 0 8 +node 10 0 9 +node 11 0 10 +node 12 10 0 +node 13 10 1 +node 14 10 2 +node 15 10 3 +node 16 10 4 +node 17 10 5 +node 18 10 6 +node 19 10 7 +node 20 10 8 +node 21 10 9 +node 22 10 10 +node 23 20 0 +node 24 20 1 +node 25 20 2 +node 26 20 3 +node 27 20 4 +node 28 20 5 +node 29 20 6 +node 30 20 7 +node 31 20 8 +node 32 20 9 +node 33 20 10 +node 34 30 0 +node 35 30 1 +node 36 30 2 +node 37 30 3 +node 38 30 4 +node 39 30 5 +node 40 30 6 +node 41 30 7 +node 42 30 8 +node 43 30 9 +node 44 30 10 +node 45 40 0 +node 46 40 1 +node 47 40 2 +node 48 40 3 +node 49 40 4 +node 50 40 5 +node 51 40 6 +node 52 40 7 +node 53 40 8 +node 54 40 9 +node 55 40 10 +node 56 50 0 +node 57 50 1 +node 58 50 2 +node 59 50 3 +node 60 50 4 +node 61 50 5 +node 62 50 6 +node 63 50 7 +node 64 50 8 +node 65 50 9 +node 66 50 10 +node 67 60 0 +node 68 60 1 +node 69 60 2 +node 70 60 3 +node 71 60 4 +node 72 60 5 +node 73 60 6 +node 74 60 7 +node 75 60 8 +node 76 60 9 +node 77 60 10 +node 78 70 0 +node 79 70 1 +node 80 70 2 +node 81 70 3 +node 82 70 4 +node 83 70 5 +node 84 70 6 +node 85 70 7 +node 86 70 8 +node 87 70 9 +node 88 70 10 +node 89 80 0 +node 90 80 1 +node 91 80 2 +node 92 80 3 +node 93 80 4 +node 94 80 5 +node 95 80 6 +node 96 80 7 +node 97 80 8 +node 98 80 9 +node 99 80 10 +node 100 90 0 +node 101 90 1 +node 102 90 2 +node 103 90 3 +node 104 90 4 +node 105 90 5 +node 106 90 6 +node 107 90 7 +node 108 90 8 +node 109 90 9 +node 110 90 10 +node 111 100 0 +node 112 100 1 +node 113 100 2 +node 114 100 3 +node 115 100 4 +node 116 100 5 +node 117 100 6 +node 118 100 7 +node 119 100 8 +node 120 100 9 +node 121 100 10 +fix 1 1 1 +fix 2 1 1 +fix 3 1 1 +fix 4 1 1 +fix 5 1 1 +fix 6 1 1 +fix 7 1 1 +fix 8 1 1 +fix 9 1 1 +fix 10 1 1 +fix 11 1 1 +element quad 1 1 12 13 2 0.1 PlaneStrain 1 +element quad 2 2 13 14 3 0.1 PlaneStrain 1 +element quad 3 3 14 15 4 0.1 PlaneStrain 1 +element quad 4 4 15 16 5 0.1 PlaneStrain 1 +element quad 5 5 16 17 6 0.1 PlaneStrain 1 +element quad 6 6 17 18 7 0.1 PlaneStrain 1 +element quad 7 7 18 19 8 0.1 PlaneStrain 1 +element quad 8 8 19 20 9 0.1 PlaneStrain 1 +element quad 9 9 20 21 10 0.1 PlaneStrain 1 +element quad 10 10 21 22 11 0.1 PlaneStrain 1 +element quad 11 12 23 24 13 0.1 PlaneStrain 1 +element quad 12 13 24 25 14 0.1 PlaneStrain 1 +element quad 13 14 25 26 15 0.1 PlaneStrain 1 +element quad 14 15 26 27 16 0.1 PlaneStrain 1 +element quad 15 16 27 28 17 0.1 PlaneStrain 1 +element quad 16 17 28 29 18 0.1 PlaneStrain 1 +element quad 17 18 29 30 19 0.1 PlaneStrain 1 +element quad 18 19 30 31 20 0.1 PlaneStrain 1 +element quad 19 20 31 32 21 0.1 PlaneStrain 1 +element quad 20 21 32 33 22 0.1 PlaneStrain 1 +element quad 21 23 34 35 24 0.1 PlaneStrain 1 +element quad 22 24 35 36 25 0.1 PlaneStrain 1 +element quad 23 25 36 37 26 0.1 PlaneStrain 1 +element quad 24 26 37 38 27 0.1 PlaneStrain 1 +element quad 25 27 38 39 28 0.1 PlaneStrain 1 +element quad 26 28 39 40 29 0.1 PlaneStrain 1 +element quad 27 29 40 41 30 0.1 PlaneStrain 1 +element quad 28 30 41 42 31 0.1 PlaneStrain 1 +element quad 29 31 42 43 32 0.1 PlaneStrain 1 +element quad 30 32 43 44 33 0.1 PlaneStrain 1 +element quad 31 34 45 46 35 0.1 PlaneStrain 1 +element quad 32 35 46 47 36 0.1 PlaneStrain 1 +element quad 33 36 47 48 37 0.1 PlaneStrain 1 +element quad 34 37 48 49 38 0.1 PlaneStrain 1 +element quad 35 38 49 50 39 0.1 PlaneStrain 1 +element quad 36 39 50 51 40 0.1 PlaneStrain 1 +element quad 37 40 51 52 41 0.1 PlaneStrain 1 +element quad 38 41 52 53 42 0.1 PlaneStrain 1 +element quad 39 42 53 54 43 0.1 PlaneStrain 1 +element quad 40 43 54 55 44 0.1 PlaneStrain 1 +element quad 41 45 56 57 46 0.1 PlaneStrain 1 +element quad 42 46 57 58 47 0.1 PlaneStrain 1 +element quad 43 47 58 59 48 0.1 PlaneStrain 1 +element quad 44 48 59 60 49 0.1 PlaneStrain 1 +element quad 45 49 60 61 50 0.1 PlaneStrain 1 +element quad 46 50 61 62 51 0.1 PlaneStrain 1 +element quad 47 51 62 63 52 0.1 PlaneStrain 1 +element quad 48 52 63 64 53 0.1 PlaneStrain 1 +element quad 49 53 64 65 54 0.1 PlaneStrain 1 +element quad 50 54 65 66 55 0.1 PlaneStrain 1 +element quad 51 56 67 68 57 0.1 PlaneStrain 1 +element quad 52 57 68 69 58 0.1 PlaneStrain 1 +element quad 53 58 69 70 59 0.1 PlaneStrain 1 +element quad 54 59 70 71 60 0.1 PlaneStrain 1 +element quad 55 60 71 72 61 0.1 PlaneStrain 1 +element quad 56 61 72 73 62 0.1 PlaneStrain 1 +element quad 57 62 73 74 63 0.1 PlaneStrain 1 +element quad 58 63 74 75 64 0.1 PlaneStrain 1 +element quad 59 64 75 76 65 0.1 PlaneStrain 1 +element quad 60 65 76 77 66 0.1 PlaneStrain 1 +element quad 61 67 78 79 68 0.1 PlaneStrain 1 +element quad 62 68 79 80 69 0.1 PlaneStrain 1 +element quad 63 69 80 81 70 0.1 PlaneStrain 1 +element quad 64 70 81 82 71 0.1 PlaneStrain 1 +element quad 65 71 82 83 72 0.1 PlaneStrain 1 +element quad 66 72 83 84 73 0.1 PlaneStrain 1 +element quad 67 73 84 85 74 0.1 PlaneStrain 1 +element quad 68 74 85 86 75 0.1 PlaneStrain 1 +element quad 69 75 86 87 76 0.1 PlaneStrain 1 +element quad 70 76 87 88 77 0.1 PlaneStrain 1 +element quad 71 78 89 90 79 0.1 PlaneStrain 1 +element quad 72 79 90 91 80 0.1 PlaneStrain 1 +element quad 73 80 91 92 81 0.1 PlaneStrain 1 +element quad 74 81 92 93 82 0.1 PlaneStrain 1 +element quad 75 82 93 94 83 0.1 PlaneStrain 1 +element quad 76 83 94 95 84 0.1 PlaneStrain 1 +element quad 77 84 95 96 85 0.1 PlaneStrain 1 +element quad 78 85 96 97 86 0.1 PlaneStrain 1 +element quad 79 86 97 98 87 0.1 PlaneStrain 1 +element quad 80 87 98 99 88 0.1 PlaneStrain 1 +element quad 81 89 100 101 90 0.1 PlaneStrain 1 +element quad 82 90 101 102 91 0.1 PlaneStrain 1 +element quad 83 91 102 103 92 0.1 PlaneStrain 1 +element quad 84 92 103 104 93 0.1 PlaneStrain 1 +element quad 85 93 104 105 94 0.1 PlaneStrain 1 +element quad 86 94 105 106 95 0.1 PlaneStrain 1 +element quad 87 95 106 107 96 0.1 PlaneStrain 1 +element quad 88 96 107 108 97 0.1 PlaneStrain 1 +element quad 89 97 108 109 98 0.1 PlaneStrain 1 +element quad 90 98 109 110 99 0.1 PlaneStrain 1 +element quad 91 100 111 112 101 0.1 PlaneStrain 1 +element quad 92 101 112 113 102 0.1 PlaneStrain 1 +element quad 93 102 113 114 103 0.1 PlaneStrain 1 +element quad 94 103 114 115 104 0.1 PlaneStrain 1 +element quad 95 104 115 116 105 0.1 PlaneStrain 1 +element quad 96 105 116 117 106 0.1 PlaneStrain 1 +element quad 97 106 117 118 107 0.1 PlaneStrain 1 +element quad 98 107 118 119 108 0.1 PlaneStrain 1 +element quad 99 108 119 120 109 0.1 PlaneStrain 1 +element quad 100 109 120 121 110 0.1 PlaneStrain 1 +pattern Plain 1 1 { + load 110 0.0 1.0 + load 111 0.0 1.0 + load 112 0.0 1.0 + load 113 0.0 1.0 + load 114 0.0 1.0 + load 115 0.0 1.0 + load 116 0.0 1.0 + load 117 0.0 1.0 + load 118 0.0 1.0 + load 119 0.0 1.0 + load 120 0.0 1.0 + load 121 0.0 1.0 +} +system BandSPD +constraints Plain +numberer RCM +algorithm Linear +integrator LoadControl 0.1 +analysis Static diff --git a/examples/run-quad.tcl b/examples/run-quad.tcl new file mode 100644 index 0000000..8eb4016 --- /dev/null +++ b/examples/run-quad.tcl @@ -0,0 +1,25 @@ + +source ../opensees-vtk.tcl + +source quad.tcl +set fd [open "./quad.out.vtk" "w"] +vtk_output_meta $fd +vtk_output_mesh $fd +vtk_output_point_data_header $fd + +analyze 1 +vtk_output_node_disp $fd + +analyze 1 +vtk_output_node_disp $fd + +analyze 1 +vtk_output_node_disp $fd + +analyze 1 +vtk_output_node_disp $fd + +analyze 1 +vtk_output_node_disp $fd + +close $fd diff --git a/examples/run-truss.tcl b/examples/run-truss.tcl new file mode 100644 index 0000000..eefc320 --- /dev/null +++ b/examples/run-truss.tcl @@ -0,0 +1,22 @@ + +source ../opensees-vtk.tcl + +source truss.tcl +set fd [open "./truss.out.vtk" "w"] +vtk_output_meta $fd +vtk_output_mesh $fd +vtk_output_point_data_header $fd + +analyze 1 +vtk_output_node_disp $fd + +analyze 1 +vtk_output_node_disp $fd + +analyze 1 +vtk_output_node_disp $fd + +analyze 1 +vtk_output_node_disp $fd + +close $fd diff --git a/examples/truss.out.vtk b/examples/truss.out.vtk new file mode 100644 index 0000000..440c0a4 --- /dev/null +++ b/examples/truss.out.vtk @@ -0,0 +1,56 @@ +# vtk DataFile Version 2.0 +opensees model +ASCII +DATASET UNSTRUCTURED_GRID +POINTS 5 float +0.00000000000000000000 0.00000000000000000000 0.0 +2.00000000000000000000 0.00000000000000000000 0.0 +4.00000000000000000000 0.00000000000000000000 0.0 +2.00000000000000000000 -1.50000000000000000000 0.0 +4.00000000000000000000 -3.00000000000000000000 0.0 + +CELLS 6 18 +2 0 1 +2 0 3 +2 1 2 +2 3 2 +2 3 4 +2 3 1 + +CELL_TYPES 6 +3 +3 +3 +3 +3 +3 + +POINT_DATA 5 +VECTORS node_disp_1.000000 float +-10.66666666666666429819 -52.41666666666666429819 0.0 +-5.33333333333333214910 -21.86111111111112137451 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +5.20833333333332859638 -17.36111111111112137451 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 + +VECTORS node_disp_2.000000 float +-10.66666666666666785090 -52.41666666666667140362 0.0 +-5.33333333333333392545 -21.86111111111111071637 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +5.20833333333333392545 -17.36111111111111071637 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 + +VECTORS node_disp_3.000000 float +-10.66666666666666785090 -52.41666666666667140362 0.0 +-5.33333333333333392545 -21.86111111111111426908 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +5.20833333333333303727 -17.36111111111111426908 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 + +VECTORS node_disp_4.000000 float +-10.66666666666666785090 -52.41666666666667140362 0.0 +-5.33333333333333392545 -21.86111111111111071637 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 +5.20833333333333481363 -17.36111111111111071637 0.0 +0.00000000000000000000 0.00000000000000000000 0.0 + diff --git a/examples/truss.tcl b/examples/truss.tcl new file mode 100644 index 0000000..8d92755 --- /dev/null +++ b/examples/truss.tcl @@ -0,0 +1,69 @@ + +wipe; +model basic -ndm 2 -ndf 2 + +set A 1 +set B 2 +set C 3 +set D 4 +set E 5 + +node $A 0.0 0.0 +node $B 2.0 0.0 +node $C 4.0 0.0 +node $D 2.0 -1.5 +node $E 4.0 -3.0 + +uniaxialMaterial Elastic 1 1 + +element truss 1 $A $B 1.0 1 +element truss 2 $A $D 1.0 1 +element truss 3 $B $C 1.0 1 +element truss 4 $D $C 1.0 1 +element truss 5 $D $E 1.0 1 +element truss 6 $D $B 1.0 1 + +fix $C 1 1 +fix $E 1 1 + +timeSeries Constant 1 +pattern Plain 1 1 { + load $A 0.0 -2.0 + load $B 0.0 -3.0 +} + +constraints Plain +integrator LoadControl 1 +test NormUnbalance 1.0e-6 30 +algorithm Linear +numberer Plain +system BandGeneral +analysis Static + +# analyze 1 + +# set T1 [eleResponse 1 axialForce] +# set T2 [eleResponse 2 axialForce] +# set T3 [eleResponse 3 axialForce] +# set T4 [eleResponse 4 axialForce] +# set T5 [eleResponse 5 axialForce] +# set T6 [eleResponse 6 axialForce] + +# # format to float: +# set T1 [expr $T1] +# set T2 [expr $T2] +# set T3 [expr $T3] +# set T4 [expr $T4] +# set T5 [expr $T5] +# set T6 [expr $T6] + +# set res [list $T1 $T2 $T3 $T4 $T5 $T6] + + +# foreach name {T1 T2 T3 T4 T5 T6}\ +# unit {kN kN kN kN kN kN} val $res { +# set val [format "%.6f" $val] +# puts "${name} ($unit) = $val" +# } + +# puts [getNodeTags] diff --git a/opensees-vtk.tcl b/opensees-vtk.tcl new file mode 100644 index 0000000..e58b344 --- /dev/null +++ b/opensees-vtk.tcl @@ -0,0 +1,217 @@ + +package require cmdline + +set __ele_conn [dict create] +set __ele_vtk_cell [dict create] +set __ele_nn [dict create] +set __ele_type [dict create] + +# init element type to number of nodes dictionary +dict set __ele_nn truss 2 +dict set __ele_nn elasticBeamColumn 2 +dict set __ele_nn quad 4 + +# init element type to vtk cell type dictionary +dict set __ele_vtk_cell truss 3 +dict set __ele_vtk_cell elasticBeamColumn 3 +dict set __ele_vtk_cell quad 9 + +set renamed_model_command "__model__[clock clicks -milliseconds]" +rename model $renamed_model_command + +proc model args { + global __ndm + global __ndf + global renamed_model_command + eval "$renamed_model_command $args" + set __ndm [eval parse_ndm $args] + set __ndf [eval parse_ndf $args] + wrap_element_cmd +} + +proc parse_ndm args { + set len [llength $args] + for {set i 0} {$i < $len} {incr i} { + set arg [lindex $args $i] + if {[string equal $arg "-ndm"] && [expr $i + 1] < $len} { + return [lindex $args [expr $i + 1]] + } + } + return 2 +} + +proc parse_ndf {args} { + set len [llength $args] + for {set i 0} {$i < $len} {incr i} { + set arg [lindex $args $i] + if {[string equal $arg "-ndf"] && [expr $i + 1] < $len} { + return [lindex $args [expr $i + 1]] + } + } + return 3 +} + +proc get_ndf {} { global __ndf; return $__ndf; } +proc get_ndm {} { global __ndm; return $__ndm; } + +proc wrap_element_cmd {} { + global element + global renamed_element_command + set renamed_element_command "__element__[clock clicks -milliseconds]" + rename element $renamed_element_command + proc element args { + global renamed_element_command + global __ele_conn + global __ele_type + eval "$renamed_element_command $args" + set etype [lindex $args 0] + set eid [lindex $args 1] + set nn [get_ele_nn_by_type $etype] + set conn [lrange $args 2 [expr 2 + $nn - 1]] + dict set __ele_conn $eid $conn + dict set __ele_type $eid $etype + } +} + +proc get_ele_nn eid { + set etype [get_ele_type $eid] + return [get_ele_nn_by_type $etype] +} + +proc get_ele_nn_by_type etype { + global __ele_nn + if {[dict exists $__ele_nn $etype]} { + return [dict get $__ele_nn $etype] + } else { + return [] + } +} + +proc get_ele_conn {eid} { + global __ele_conn + if {[dict exists $__ele_conn $eid]} { + return [dict get $__ele_conn $eid] + } else { + return [] + } +} + +proc get_ele_type eid { + global __ele_type + if {[dict exists $__ele_type $eid]} { + return [dict get $__ele_type $eid] + } else { + return "" + } +} + +proc get_ele_vtk_cell eid { + global __ele_vtk_cell + set etype [get_ele_type $eid] + if {[dict exists $__ele_vtk_cell $etype]} { + return [dict get $__ele_vtk_cell $etype] + } else { + return "" + } +} + +proc vtk_output_points {chan} { + set nids [getNodeTags] + set num_of_nodes [llength $nids] + + puts $chan "POINTS $num_of_nodes float" + + foreach n $nids { + set xyz [string trim [nodeCoord $n]] + set xyz [regexp -inline -all {\S+} $xyz] + while {[llength $xyz] < 3} { lappend xyz 0.0 } + puts $chan $xyz + } +} + +proc vtk_count_cell_list_size {eids} { + set size 0 + foreach eid $eids { + set nn [get_ele_nn $eid] + set size [expr $size + $nn + 1] + } + return $size +} + +proc build_node_indx {nids} { + set node_indx [dict create] + set i 0 + foreach n $nids { + dict set node_indx $n $i + incr i + } + return $node_indx +} + +proc map_node_indx {node_indx conn} { + set res [] + foreach n $conn { + lappend res [dict get $node_indx $n] + } + return $res +} + +proc vtk_output_cells {chan} { + set eids [getEleTags] + set num_of_eles [llength $eids] + set cell_list_size [vtk_count_cell_list_size $eids] + + set nids [getNodeTags] + set node_indx [build_node_indx $nids] + + puts $chan "CELLS $num_of_eles $cell_list_size" + foreach eid $eids { + set nn [get_ele_nn $eid] + set conn [map_node_indx $node_indx [get_ele_conn $eid]] + puts $chan "$nn $conn" + } + + puts $chan "" + puts $chan "CELL_TYPES $num_of_eles" + foreach eid $eids { + set cell_type [get_ele_vtk_cell $eid] + puts $chan $cell_type + } +} + +proc vtk_output_mesh {chan} { + puts $chan "DATASET UNSTRUCTURED_GRID" + vtk_output_points $chan + puts $chan "" + vtk_output_cells $chan +} + +proc vtk_output_meta {chan} { + puts $chan "# vtk DataFile Version 2.0" + puts $chan "opensees model" + puts $chan "ASCII" +} + +proc vtk_output_point_data_header {chan} { + set nids [getNodeTags] + set num_of_nodes [llength $nids] + puts $chan "" + puts $chan "POINT_DATA $num_of_nodes" +} + +proc vtk_output_node_disp {chan} { + set nids [getNodeTags] + set num_of_nodes [llength $nids] + set cur_time [getTime] + set ndf [get_ndf] + + puts $chan "VECTORS node_disp_$cur_time float" + foreach n $nids { + set disp [string trim [nodeDisp $n]] + set disp [regexp -inline -all {\S+} $disp] + while {[llength $disp] < 3} { lappend disp 0.0 } + if {$ndf > 3} { set disp [lrange $disp 0 2] } + puts $chan $disp + } + puts $chan "" +}