| 1868 | } |
| 1869 | |
| 1870 | int ASDShellQ4::calculateAll(Matrix& LHS, Vector& RHS, int options) |
| 1871 | { |
| 1872 | // Check options |
| 1873 | if (!m_transformation->isLinear()) { |
| 1874 | // corotational calculation of the tangent LHS requires the RHS! |
| 1875 | if (options & OPT_LHS) |
| 1876 | options |= OPT_RHS; |
| 1877 | } |
| 1878 | |
| 1879 | // Zero output |
| 1880 | int result = 0; |
| 1881 | if(options & OPT_RHS) |
| 1882 | RHS.Zero(); |
| 1883 | if(options & OPT_LHS) |
| 1884 | LHS.Zero(); |
| 1885 | |
| 1886 | // Global displacements |
| 1887 | auto& UG = ASDShellQ4Globals::instance().UG; |
| 1888 | m_transformation->computeGlobalDisplacements(UG); |
| 1889 | |
| 1890 | // update transformation |
| 1891 | if(options & OPT_UPDATE) |
| 1892 | m_transformation->update(UG); |
| 1893 | |
| 1894 | // Compute the reference coordinate system |
| 1895 | ASDShellQ4LocalCoordinateSystem reference_cs = |
| 1896 | m_transformation->createReferenceCoordinateSystem(); |
| 1897 | |
| 1898 | // Compute the local coordinate system. |
| 1899 | ASDShellQ4LocalCoordinateSystem local_cs = |
| 1900 | m_transformation->createLocalCoordinateSystem(UG); |
| 1901 | |
| 1902 | // Prepare all the parameters needed for the MITC4 |
| 1903 | // and AGQI formulations. |
| 1904 | // This is to be done here outside the Gauss Loop. |
| 1905 | auto& mitc = ASDShellQ4Globals::instance().mitc; |
| 1906 | auto& agq = ASDShellQ4Globals::instance().agq; |
| 1907 | mitc.compute(reference_cs); |
| 1908 | if(m_eas) |
| 1909 | agq.compute(reference_cs); |
| 1910 | |
| 1911 | // Jacobian |
| 1912 | auto& jac = ASDShellQ4Globals::instance().jac; |
| 1913 | |
| 1914 | // Some matrices/vectors |
| 1915 | auto& B = ASDShellQ4Globals::instance().B; |
| 1916 | auto& Bd = ASDShellQ4Globals::instance().Bd; |
| 1917 | auto& Bd0 = ASDShellQ4Globals::instance().Bd0; |
| 1918 | auto& BQ = ASDShellQ4Globals::instance().BQ; |
| 1919 | auto& BQ_mean = ASDShellQ4Globals::instance().BQ_mean; |
| 1920 | auto& BQTD = ASDShellQ4Globals::instance().BQTD; |
| 1921 | auto& DBQ = ASDShellQ4Globals::instance().DBQ; |
| 1922 | auto& B1 = ASDShellQ4Globals::instance().B1; |
| 1923 | auto& B1TD = ASDShellQ4Globals::instance().B1TD; |
| 1924 | auto& N = ASDShellQ4Globals::instance().N; |
| 1925 | auto& dN = ASDShellQ4Globals::instance().dN; |
| 1926 | auto& E = ASDShellQ4Globals::instance().E; |
| 1927 | auto& S = ASDShellQ4Globals::instance().S; |
nothing calls this directly
no test coverage detected