| 1570 | } |
| 1571 | |
| 1572 | int ASDShellT3::calculateAll(Matrix& LHS, Vector& RHS, int options) |
| 1573 | { |
| 1574 | // Check options |
| 1575 | if (!m_transformation->isLinear()) { |
| 1576 | // corotational calculation of the tangent LHS requires the RHS! |
| 1577 | if (options & OPT_LHS) |
| 1578 | options |= OPT_RHS; |
| 1579 | } |
| 1580 | |
| 1581 | // Zero output |
| 1582 | int result = 0; |
| 1583 | if (options & OPT_RHS) |
| 1584 | RHS.Zero(); |
| 1585 | if (options & OPT_LHS) |
| 1586 | LHS.Zero(); |
| 1587 | |
| 1588 | // Global displacements |
| 1589 | auto& UG = ASDShellT3Globals::instance().UG; |
| 1590 | m_transformation->computeGlobalDisplacements(UG); |
| 1591 | |
| 1592 | // update transformation |
| 1593 | if (options & OPT_UPDATE) |
| 1594 | m_transformation->update(UG); |
| 1595 | |
| 1596 | // Compute the reference coordinate system |
| 1597 | ASDShellT3LocalCoordinateSystem reference_cs = |
| 1598 | m_transformation->createReferenceCoordinateSystem(); |
| 1599 | |
| 1600 | // Compute the local coordinate system. |
| 1601 | ASDShellT3LocalCoordinateSystem local_cs = |
| 1602 | m_transformation->createLocalCoordinateSystem(UG); |
| 1603 | |
| 1604 | // Some matrices/vectors |
| 1605 | auto& N = ASDShellT3Globals::instance().N; |
| 1606 | auto& dN = ASDShellT3Globals::instance().dN; |
| 1607 | auto& dNdX = ASDShellT3Globals::instance().dNdX; |
| 1608 | auto& jac = ASDShellT3Globals::instance().jac; |
| 1609 | auto& B = ASDShellT3Globals::instance().B; |
| 1610 | auto& Bd = ASDShellT3Globals::instance().Bd; |
| 1611 | auto& Bhx = ASDShellT3Globals::instance().Bhx; |
| 1612 | auto& Bhy = ASDShellT3Globals::instance().Bhy; |
| 1613 | auto& B1 = ASDShellT3Globals::instance().B1; |
| 1614 | auto& B1TD = ASDShellT3Globals::instance().B1TD; |
| 1615 | auto& E = ASDShellT3Globals::instance().E; |
| 1616 | auto& S = ASDShellT3Globals::instance().S; |
| 1617 | auto& D = ASDShellT3Globals::instance().D; |
| 1618 | auto& Dsection = ASDShellT3Globals::instance().Dsection; |
| 1619 | |
| 1620 | // matrices for orienting strains in section coordinate system |
| 1621 | auto& Re = ASDShellT3Globals::instance().Re; |
| 1622 | auto& Rs = ASDShellT3Globals::instance().Rs; |
| 1623 | if (m_angle != 0.0) { |
| 1624 | if (options & OPT_UPDATE) |
| 1625 | getRotationMatrixForGeneralizedStrains(-m_angle, Re); |
| 1626 | if ((options & OPT_RHS) || (options & OPT_LHS)) |
| 1627 | getRotationMatrixForGeneralizedStresses(m_angle, Rs); |
| 1628 | } |
| 1629 |
nothing calls this directly
no test coverage detected