From 021da3351c2a12f911dc016b769981c948f16bb9 Mon Sep 17 00:00:00 2001 From: kronbichler Date: Fri, 18 Jan 2013 08:27:04 +0000 Subject: [PATCH] deal.II assumes positive volume elements. git-svn-id: https://svn.dealii.org/trunk@28121 0785d39b-7218-0410-832d-ea1e28bc413d --- .../include/deal.II/matrix_free/mapping_info.templates.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/deal.II/include/deal.II/matrix_free/mapping_info.templates.h b/deal.II/include/deal.II/matrix_free/mapping_info.templates.h index 647ed1476c..59ed7db300 100644 --- a/deal.II/include/deal.II/matrix_free/mapping_info.templates.h +++ b/deal.II/include/deal.II/matrix_free/mapping_info.templates.h @@ -436,12 +436,9 @@ end_set: current_data.jacobians.push_back (transpose(invert(jac))); const Tensor<2,dim,VectorizedArray > &inv_jac = current_data.jacobians.back(); - // TODO: deal.II does not use abs on determinants. Is - // there an assumption somewhere that negative - // determinants are not allowed? if (update_flags & update_JxW_values) current_data.JxW_values.push_back - (std::abs(det) * current_data.quadrature_weights[fe_index][q]); + (det * current_data.quadrature_weights[fe_index][q]); if (update_flags & update_jacobian_grads) { @@ -576,7 +573,7 @@ end_set: cartesian_data[it->second].first[d] = 1./jac_d; det *= jac_d; } - cartesian_data[it->second].second = std::abs(det); + cartesian_data[it->second].second = det; } affine_data.resize(affines.size()); for (typename std::map, @@ -590,8 +587,8 @@ end_set: v::n_array_elements; ++v) jac[d][e][v] = it->first[d][e][v]; + affine_data[it->second].second = determinant(jac); affine_data[it->second].first = transpose(invert(jac)); - affine_data[it->second].second = std::abs(determinant(jac)); } } } -- 2.39.5