| 302 | } |
| 303 | |
| 304 | ZSparseMatrix Assembler3D::getStrainStressMatrix() { |
| 305 | typedef Eigen::Triplet<double> T; |
| 306 | std::vector<T> triplets; |
| 307 | |
| 308 | for (size_t i=0; i<m_mesh->getNbrElements(); i++) { |
| 309 | for (size_t j=0; j<6; j++) { |
| 310 | for (size_t k=0; k<6; k++) { |
| 311 | if (m_D(j,k) != 0) { |
| 312 | triplets.push_back(T(i*6+j, i*6+k, m_D(j,k))); |
| 313 | } |
| 314 | } |
| 315 | } |
| 316 | } |
| 317 | |
| 318 | Eigen::SparseMatrix<double> D = Eigen::SparseMatrix<double>(6*m_mesh->getNbrElements(), 6*m_mesh->getNbrElements()); |
| 319 | D.setFromTriplets(triplets.begin(), triplets.end()); |
| 320 | return ZSparseMatrix(D); |
| 321 | } |
| 322 | |
| 323 | ZSparseMatrix Assembler3D::getBdLaplacianMatrix() { |
| 324 | typedef Eigen::Triplet<double> T; |
nothing calls this directly
no test coverage detected