| 33 | } |
| 34 | |
| 35 | Float LinearTriangleIntegrator::integrate_grad_C(size_t elem_idx, |
| 36 | size_t local_func_i, size_t local_func_j, const MatrixF& C) { |
| 37 | const Vector3F coord(1.0/3.0, 1.0/3.0, 1.0/3.0); |
| 38 | const VectorF grad_i = m_shape_func->evaluate_grad( |
| 39 | elem_idx, local_func_i, coord); |
| 40 | const VectorF grad_j = m_shape_func->evaluate_grad( |
| 41 | elem_idx, local_func_j, coord); |
| 42 | const Float vol = m_mesh->getElementVolume(elem_idx); |
| 43 | return grad_i.dot(C * grad_j) * vol; |
| 44 | } |
| 45 | |
| 46 | MatrixF LinearTriangleIntegrator::integrate_material_contraction( |
| 47 | size_t elem_idx, size_t local_func_i, size_t local_func_j, |
no test coverage detected