| 2785 | } |
| 2786 | |
| 2787 | void |
| 2788 | ForceBeamColumnCBDI3d::computew(Vector &w, Vector &wp, double xi[], |
| 2789 | const Vector &kappa, const Vector &gamma) |
| 2790 | { |
| 2791 | double L = crdTransf->getInitialLength(); |
| 2792 | |
| 2793 | Matrix ls(numSections, numSections); |
| 2794 | |
| 2795 | Matrix Ginv(numSections, numSections); |
| 2796 | this->getGinv(numSections, xi, Ginv); |
| 2797 | |
| 2798 | Matrix H(numSections, numSections); |
| 2799 | |
| 2800 | bool isGamma = false; |
| 2801 | for (int i = 0; i < numSections; i++) { |
| 2802 | if (gamma(i) != 0.0) |
| 2803 | isGamma = true; |
| 2804 | } |
| 2805 | isGamma = CSBDI && isGamma; |
| 2806 | |
| 2807 | this->getHk(numSections, xi, H); |
| 2808 | ls.addMatrixProduct(0.0, H, Ginv, 1.0); |
| 2809 | w.addMatrixVector(0.0, ls, kappa, L*L); |
| 2810 | |
| 2811 | if (isGamma) { |
| 2812 | this->getHg(numSections, xi, H); |
| 2813 | ls.addMatrixProduct(0.0, H, Ginv, 1.0); |
| 2814 | w.addMatrixVector(1.0, ls, gamma, L); |
| 2815 | |
| 2816 | this->getHkp(numSections, xi, H); |
| 2817 | ls.addMatrixProduct(0.0, H, Ginv, 1.0); |
| 2818 | wp.addMatrixVector(0.0, ls, kappa, L); |
| 2819 | |
| 2820 | this->getHgp(numSections, xi, H); |
| 2821 | ls.addMatrixProduct(0.0, H, Ginv, 1.0); |
| 2822 | wp.addMatrixVector(1.0, ls, gamma, 1.0); |
| 2823 | } |
| 2824 | } |
| 2825 | |
| 2826 | void |
| 2827 | ForceBeamColumnCBDI3d::computedwdq(Matrix &dwidq, const Vector &q, |
no test coverage detected