LM change nodes numbering 4-----3 | | | | 1-----2 UpperSide - 34 LowerSide - 12 LeftSide 14 RightSide - 23
| 1275 | // 1-----2 |
| 1276 | // UpperSide - 34 LowerSide - 12 LeftSide 14 RightSide - 23 |
| 1277 | void |
| 1278 | SSPquadUP::setPressureLoadAtNodes(void) |
| 1279 | { |
| 1280 | pressureLoad.Zero(); |
| 1281 | |
| 1282 | if (pressureUpperSide == 0.0 && pressureLowerSide == 0.0 && pressureLeftSide == 0.0 && pressureRightSide == 0.0) { |
| 1283 | return; |
| 1284 | } |
| 1285 | |
| 1286 | const Vector &node1 = theNodes[0]->getCrds(); |
| 1287 | const Vector &node2 = theNodes[1]->getCrds(); |
| 1288 | const Vector &node3 = theNodes[2]->getCrds(); |
| 1289 | const Vector &node4 = theNodes[3]->getCrds(); |
| 1290 | |
| 1291 | double x1 = node1(0); |
| 1292 | double y1 = node1(1); |
| 1293 | double x2 = node2(0); |
| 1294 | double y2 = node2(1); |
| 1295 | double x3 = node3(0); |
| 1296 | double y3 = node3(1); |
| 1297 | double x4 = node4(0); |
| 1298 | double y4 = node4(1); |
| 1299 | |
| 1300 | double dx12 = x2-x1; |
| 1301 | double dy12 = y2-y1; |
| 1302 | double dx23 = x3-x2; |
| 1303 | double dy23 = y3-y2; |
| 1304 | double dx34 = x4-x3; |
| 1305 | double dy34 = y4-y3; |
| 1306 | double dx41 = x1-x4; |
| 1307 | double dy41 = y1-y4; |
| 1308 | |
| 1309 | double pressureOver12 = pressureLowerSide*mThickness/2.0; |
| 1310 | double pressureOver23 = pressureRightSide*mThickness/2.0; |
| 1311 | double pressureOver34 = pressureUpperSide*mThickness/2.0; |
| 1312 | double pressureOver41 = pressureLeftSide*mThickness/2.0; |
| 1313 | |
| 1314 | // Contribution from side 12 |
| 1315 | pressureLoad(0) += pressureOver12*dy12; // horizontal node 1 load |
| 1316 | pressureLoad(3) += pressureOver12*dy12; // horizontal node 2 load |
| 1317 | pressureLoad(1) += pressureOver12*-dx12; // vertical node 1 load |
| 1318 | pressureLoad(2) += pressureOver12*-dx12; // vertical node 2 load |
| 1319 | |
| 1320 | // Contribution from side 12 |
| 1321 | pressureLoad(3) += pressureOver23*dy23; // horizontal node 2 load |
| 1322 | pressureLoad(6) += pressureOver23*dy23; // horizontal node 3 load |
| 1323 | pressureLoad(4) += pressureOver23*-dx23; // vertical node 2 load |
| 1324 | pressureLoad(7) += pressureOver23*-dx23; // vertical node 3 load |
| 1325 | |
| 1326 | // Contribution from side 12 |
| 1327 | pressureLoad(6) += pressureOver34*dy34; // horizontal node 3 load |
| 1328 | pressureLoad(9) += pressureOver34*dy34; // horizontal node 4 load |
| 1329 | pressureLoad(7) += pressureOver34*-dx34; // vertical node 3 load |
| 1330 | pressureLoad(10) += pressureOver34*-dx34; // vertical node 4 load |
| 1331 | |
| 1332 | // Contribution from side 12 |
| 1333 | pressureLoad(9) += pressureOver41*dy41; // horizontal node 4 load |
| 1334 | pressureLoad(0) += pressureOver41*dy41; // horizontal node 1 load |
no test coverage detected