| 1516 | |
| 1517 | |
| 1518 | int MixedBeamColumn3d::getResponse(int responseID, Information &eleInfo) { |
| 1519 | if (responseID == 1) { // global forces |
| 1520 | return eleInfo.setVector(this->getResistingForce()); |
| 1521 | |
| 1522 | } else if (responseID == 2) { // local forces |
| 1523 | // Axial |
| 1524 | double N = internalForceOpenSees(0); |
| 1525 | theVector(6) = N; |
| 1526 | theVector(0) = -N+p0[0]; |
| 1527 | |
| 1528 | // Torsion |
| 1529 | double T = internalForceOpenSees(5); |
| 1530 | theVector(9) = T; |
| 1531 | theVector(3) = -T; |
| 1532 | |
| 1533 | // Moments about z and shears along y |
| 1534 | double M1 = internalForceOpenSees(1); |
| 1535 | double M2 = internalForceOpenSees(2); |
| 1536 | theVector(5) = M1; |
| 1537 | theVector(11) = M2; |
| 1538 | double L = crdTransf->getInitialLength(); |
| 1539 | double V = (M1+M2)/L; |
| 1540 | theVector(1) = V+p0[1]; |
| 1541 | theVector(7) = -V+p0[2]; |
| 1542 | |
| 1543 | // Moments about y and shears along z |
| 1544 | M1 = internalForceOpenSees(3); |
| 1545 | M2 = internalForceOpenSees(4); |
| 1546 | theVector(4) = M1; |
| 1547 | theVector(10) = M2; |
| 1548 | V = (M1+M2)/L; |
| 1549 | theVector(2) = -V+p0[3]; |
| 1550 | theVector(8) = V+p0[4]; |
| 1551 | |
| 1552 | return eleInfo.setVector(theVector); |
| 1553 | |
| 1554 | } else if (responseID == 3) { // basic forces |
| 1555 | return eleInfo.setVector(internalForceOpenSees); |
| 1556 | |
| 1557 | } else if (responseID == 4) { // section deformation (from forces) |
| 1558 | |
| 1559 | int i; |
| 1560 | Vector tempVector(3*numSections); |
| 1561 | tempVector.Zero(); |
| 1562 | for ( i = 0; i < numSections; i++ ){ |
| 1563 | tempVector(3*i) = sectionDefFibers[i](0); |
| 1564 | tempVector(3*i+1) = sectionDefFibers[i](1); |
| 1565 | tempVector(3*i+2) = sectionDefFibers[i](2); |
| 1566 | } |
| 1567 | |
| 1568 | return eleInfo.setVector(tempVector); |
| 1569 | |
| 1570 | } else if (responseID == 5) { // plastic section deformation (from forces) |
| 1571 | |
| 1572 | int i; |
| 1573 | Vector tempVector(3*numSections); |
| 1574 | Vector sectionForce(NDM_SECTION); |
| 1575 | Vector plasticSectionDef(NDM_SECTION); |
nothing calls this directly
no test coverage detected