| 1715 | } |
| 1716 | |
| 1717 | int |
| 1718 | ASDCoupledHinge3D::commitState(void) |
| 1719 | { |
| 1720 | int err = 0; |
| 1721 | |
| 1722 | err += axialMaterial->commitState(); |
| 1723 | err += MyMaterial->commitState(); |
| 1724 | err += MzMaterial->commitState(); |
| 1725 | err += VyMaterial->commitState(); |
| 1726 | err += VzMaterial->commitState(); |
| 1727 | err += torsionMaterial->commitState(); |
| 1728 | |
| 1729 | #ifdef _DBG_COUPLEDSEC3D |
| 1730 | opserr << "ASDCoupleHinge3D::commitState\n\t" << "N = " << axialMaterial->getStress() << endln; |
| 1731 | #endif |
| 1732 | if (err == 0) { |
| 1733 | updateLaws(); |
| 1734 | |
| 1735 | #ifdef _DBG_COUPLEDSEC3D |
| 1736 | opserr << "\nLaws updated after commit: " << endln; |
| 1737 | opserr << "My\n"; |
| 1738 | MyMaterial->Print(opserr, 2); |
| 1739 | opserr << "Mz\n"; |
| 1740 | MzMaterial->Print(opserr, 2); |
| 1741 | opserr << "Finished update " << endln; |
| 1742 | #endif |
| 1743 | |
| 1744 | //double My, Mz; |
| 1745 | //My = MyMaterial->getStress(); |
| 1746 | //Mz = MzMaterial->getStress(); |
| 1747 | |
| 1748 | //MyMaterial->setTrialStrain(MyMaterial->getStrain()); |
| 1749 | //MzMaterial->setTrialStrain(MzMaterial->getStrain()); |
| 1750 | |
| 1751 | //// compare My with MyMaterial->getStress(); |
| 1752 | //double errY = abs(MyMaterial->getStress() - My); |
| 1753 | //double errZ = abs(MzMaterial->getStress() - Mz); |
| 1754 | |
| 1755 | //errExplicit = std::max(errY, errZ) / MmaxAbs; |
| 1756 | |
| 1757 | //// revert to last commit |
| 1758 | //err += MyMaterial->revertToLastCommit(); |
| 1759 | //err += MzMaterial->revertToLastCommit(); |
| 1760 | #ifdef _DBG_COUPLEDSEC3D |
| 1761 | opserr << "\nReverted to Last commit\n"; |
| 1762 | opserr << "My\n"; |
| 1763 | MyMaterial->Print(opserr, 2); |
| 1764 | opserr << "Mz\n"; |
| 1765 | MzMaterial->Print(opserr, 2); |
| 1766 | #endif |
| 1767 | } |
| 1768 | #ifdef _DBG_COUPLEDSEC3D |
| 1769 | opserr << "ASDCoupledHinge3D::commitState (updated laws)\n"; |
| 1770 | opserr << "My tangent: " << m_num_tang(1); |
| 1771 | opserr << " Mz tangent: " << m_num_tang(2) << endln; |
| 1772 | opserr << "-- My law: " << endln; |
| 1773 | MyMaterial->Print(opserr, 3); |
| 1774 | opserr << "\n"; |