| 2703 | } |
| 2704 | |
| 2705 | void |
| 2706 | ForceBeamColumn3d::Print(OPS_Stream &s, int flag) |
| 2707 | { |
| 2708 | // flags with negative values are used by GSA |
| 2709 | if (flag == -1) { |
| 2710 | int eleTag = this->getTag(); |
| 2711 | s << "EL_BEAM\t" << eleTag << "\t"; |
| 2712 | s << sections[0]->getTag() << "\t" << sections[numSections-1]->getTag(); |
| 2713 | s << "\t" << connectedExternalNodes(0) << "\t" << connectedExternalNodes(1); |
| 2714 | s << "\t0\t0.0000000\n"; |
| 2715 | } |
| 2716 | |
| 2717 | // flags with negative values are used by GSA |
| 2718 | else if (flag < -1) { |
| 2719 | int eleTag = this->getTag(); |
| 2720 | int counter = (flag +1) * -1; |
| 2721 | double P = Secommit(0); |
| 2722 | double MZ1 = Secommit(1); |
| 2723 | double MZ2 = Secommit(2); |
| 2724 | double MY1 = Secommit(3); |
| 2725 | double MY2 = Secommit(4); |
| 2726 | double L = crdTransf->getInitialLength(); |
| 2727 | double VY = (MZ1+MZ2)/L; |
| 2728 | theVector(1) = VY; |
| 2729 | theVector(4) = -VY; |
| 2730 | double VZ = (MY1+MY2)/L; |
| 2731 | double T = Secommit(5); |
| 2732 | |
| 2733 | double p0[5]; p0[0] = p0[1] = p0[2] = p0[3] = p0[4] = 0.0; |
| 2734 | if (numEleLoads > 0) |
| 2735 | this->computeReactions(p0); |
| 2736 | |
| 2737 | s << "FORCE\t" << eleTag << "\t" << counter << "\t0"; |
| 2738 | s << "\t" << -P+p0[0] << "\t" << VY+p0[1] << "\t" << -VZ+p0[3] << endln; |
| 2739 | s << "FORCE\t" << eleTag << "\t" << counter << "\t1"; |
| 2740 | s << "\t" << P << ' ' << -VY+p0[2] << ' ' << VZ+p0[4] << endln; |
| 2741 | s << "MOMENT\t" << eleTag << "\t" << counter << "\t0"; |
| 2742 | s << "\t" << -T << "\t" << MY1 << "\t" << MZ1 << endln; |
| 2743 | s << "MOMENT\t" << eleTag << "\t" << counter << "\t1"; |
| 2744 | s << "\t" << T << ' ' << MY2 << ' ' << MZ2 << endln; |
| 2745 | } |
| 2746 | |
| 2747 | // flag set to 2 used to print everything .. used for viewing data for UCSD renderer |
| 2748 | else if (flag == 2) { |
| 2749 | static Vector xAxis(3); |
| 2750 | static Vector yAxis(3); |
| 2751 | static Vector zAxis(3); |
| 2752 | |
| 2753 | |
| 2754 | crdTransf->getLocalAxes(xAxis, yAxis, zAxis); |
| 2755 | |
| 2756 | s << "#ForceBeamColumn3D\n"; |
| 2757 | s << "#LocalAxis " << xAxis(0) << " " << xAxis(1) << " " << xAxis(2); |
| 2758 | s << " " << yAxis(0) << " " << yAxis(1) << " " << yAxis(2) << " "; |
| 2759 | s << zAxis(0) << " " << zAxis(1) << " " << zAxis(2) << endln; |
| 2760 | |
| 2761 | const Vector &node1Crd = theNodes[0]->getCrds(); |
| 2762 | const Vector &node2Crd = theNodes[1]->getCrds(); |
no test coverage detected