# top1-15x05.dat QQR2-MN-v-v # Original AMPL coding by Sven Leyffer, University of Dundee, April 2000. # # Topology optimization for compliance minimization of statically loaded # structures. # # Reference: O. Sigmund, "A 99 line topology optimization code written # in Matlab", Techincal University of Denmark, October 1999. # # Example 1 (15x05 grid) # ... number of elements in x-y direction param nelx = 15; param nely = 5; # ... other parameters param E := 1.0; param nu := 0.3; param p := 3.0; param volfrac := 0.5; # ... elements are defined by 8 nodes (square, two per vertex) set elements := ( 1 , 2 , 13 , 14 , 15 , 16 , 3 , 4 ) ( 13 , 14 , 25 , 26 , 27 , 28 , 15 , 16 ) ( 25 , 26 , 37 , 38 , 39 , 40 , 27 , 28 ) ( 37 , 38 , 49 , 50 , 51 , 52 , 39 , 40 ) ( 49 , 50 , 61 , 62 , 63 , 64 , 51 , 52 ) ( 61 , 62 , 73 , 74 , 75 , 76 , 63 , 64 ) ( 73 , 74 , 85 , 86 , 87 , 88 , 75 , 76 ) ( 85 , 86 , 97 , 98 , 99 , 100 , 87 , 88 ) ( 97 , 98 , 109 , 110 , 111 , 112 , 99 , 100 ) ( 109 , 110 , 121 , 122 , 123 , 124 , 111 , 112 ) ( 121 , 122 , 133 , 134 , 135 , 136 , 123 , 124 ) ( 133 , 134 , 145 , 146 , 147 , 148 , 135 , 136 ) ( 145 , 146 , 157 , 158 , 159 , 160 , 147 , 148 ) ( 157 , 158 , 169 , 170 , 171 , 172 , 159 , 160 ) ( 169 , 170 , 181 , 182 , 183 , 184 , 171 , 172 ) ( 3 , 4 , 15 , 16 , 17 , 18 , 5 , 6 ) ( 15 , 16 , 27 , 28 , 29 , 30 , 17 , 18 ) ( 27 , 28 , 39 , 40 , 41 , 42 , 29 , 30 ) ( 39 , 40 , 51 , 52 , 53 , 54 , 41 , 42 ) ( 51 , 52 , 63 , 64 , 65 , 66 , 53 , 54 ) ( 63 , 64 , 75 , 76 , 77 , 78 , 65 , 66 ) ( 75 , 76 , 87 , 88 , 89 , 90 , 77 , 78 ) ( 87 , 88 , 99 , 100 , 101 , 102 , 89 , 90 ) ( 99 , 100 , 111 , 112 , 113 , 114 , 101 , 102 ) ( 111 , 112 , 123 , 124 , 125 , 126 , 113 , 114 ) ( 123 , 124 , 135 , 136 , 137 , 138 , 125 , 126 ) ( 135 , 136 , 147 , 148 , 149 , 150 , 137 , 138 ) ( 147 , 148 , 159 , 160 , 161 , 162 , 149 , 150 ) ( 159 , 160 , 171 , 172 , 173 , 174 , 161 , 162 ) ( 171 , 172 , 183 , 184 , 185 , 186 , 173 , 174 ) ( 5 , 6 , 17 , 18 , 19 , 20 , 7 , 8 ) ( 17 , 18 , 29 , 30 , 31 , 32 , 19 , 20 ) ( 29 , 30 , 41 , 42 , 43 , 44 , 31 , 32 ) ( 41 , 42 , 53 , 54 , 55 , 56 , 43 , 44 ) ( 53 , 54 , 65 , 66 , 67 , 68 , 55 , 56 ) ( 65 , 66 , 77 , 78 , 79 , 80 , 67 , 68 ) ( 77 , 78 , 89 , 90 , 91 , 92 , 79 , 80 ) ( 89 , 90 , 101 , 102 , 103 , 104 , 91 , 92 ) ( 101 , 102 , 113 , 114 , 115 , 116 , 103 , 104 ) ( 113 , 114 , 125 , 126 , 127 , 128 , 115 , 116 ) ( 125 , 126 , 137 , 138 , 139 , 140 , 127 , 128 ) ( 137 , 138 , 149 , 150 , 151 , 152 , 139 , 140 ) ( 149 , 150 , 161 , 162 , 163 , 164 , 151 , 152 ) ( 161 , 162 , 173 , 174 , 175 , 176 , 163 , 164 ) ( 173 , 174 , 185 , 186 , 187 , 188 , 175 , 176 ) ( 7 , 8 , 19 , 20 , 21 , 22 , 9 , 10 ) ( 19 , 20 , 31 , 32 , 33 , 34 , 21 , 22 ) ( 31 , 32 , 43 , 44 , 45 , 46 , 33 , 34 ) ( 43 , 44 , 55 , 56 , 57 , 58 , 45 , 46 ) ( 55 , 56 , 67 , 68 , 69 , 70 , 57 , 58 ) ( 67 , 68 , 79 , 80 , 81 , 82 , 69 , 70 ) ( 79 , 80 , 91 , 92 , 93 , 94 , 81 , 82 ) ( 91 , 92 , 103 , 104 , 105 , 106 , 93 , 94 ) ( 103 , 104 , 115 , 116 , 117 , 118 , 105 , 106 ) ( 115 , 116 , 127 , 128 , 129 , 130 , 117 , 118 ) ( 127 , 128 , 139 , 140 , 141 , 142 , 129 , 130 ) ( 139 , 140 , 151 , 152 , 153 , 154 , 141 , 142 ) ( 151 , 152 , 163 , 164 , 165 , 166 , 153 , 154 ) ( 163 , 164 , 175 , 176 , 177 , 178 , 165 , 166 ) ( 175 , 176 , 187 , 188 , 189 , 190 , 177 , 178 ) ( 9 , 10 , 21 , 22 , 23 , 24 , 11 , 12 ) ( 21 , 22 , 33 , 34 , 35 , 36 , 23 , 24 ) ( 33 , 34 , 45 , 46 , 47 , 48 , 35 , 36 ) ( 45 , 46 , 57 , 58 , 59 , 60 , 47 , 48 ) ( 57 , 58 , 69 , 70 , 71 , 72 , 59 , 60 ) ( 69 , 70 , 81 , 82 , 83 , 84 , 71 , 72 ) ( 81 , 82 , 93 , 94 , 95 , 96 , 83 , 84 ) ( 93 , 94 , 105 , 106 , 107 , 108 , 95 , 96 ) ( 105 , 106 , 117 , 118 , 119 , 120 , 107 , 108 ) ( 117 , 118 , 129 , 130 , 131 , 132 , 119 , 120 ) ( 129 , 130 , 141 , 142 , 143 , 144 , 131 , 132 ) ( 141 , 142 , 153 , 154 , 155 , 156 , 143 , 144 ) ( 153 , 154 , 165 , 166 , 167 , 168 , 155 , 156 ) ( 165 , 166 , 177 , 178 , 179 , 180 , 167 , 168 ) ( 177 , 178 , 189 , 190 , 191 , 192 , 179 , 180 ); # ... define loads and support (half MBB-beam) set fixnodes := 1 , 3 , 5 , 7 , 9 , 11 , 192; let F[2] := -1; # ... entries of element stiffness matrix let k[1] := E / ( 1 - nu^2 ) * ( 1/2 - nu/6 ); let k[2] := E / ( 1 - nu^2 ) * ( 1/8 + nu/8 ); let k[3] := E / ( 1 - nu^2 ) * ( -1/4 - nu/12 ); let k[4] := E / ( 1 - nu^2 ) * ( -1/8 + 3*nu/8 ); let k[5] := E / ( 1 - nu^2 ) * ( -1/4 + nu/12 ); let k[6] := E / ( 1 - nu^2 ) * ( -1/8 - nu/8 ); let k[7] := E / ( 1 - nu^2 ) * ( nu/6 ); let k[8] := E / ( 1 - nu^2 ) * ( 1/8 - 3*nu/8 ); ### set scaling here suffix scale IN; let {j in freenodes} U[j].scale := 1000;