]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
deal.II assumes positive volume elements.
authorkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 18 Jan 2013 08:27:04 +0000 (08:27 +0000)
committerkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 18 Jan 2013 08:27:04 +0000 (08:27 +0000)
git-svn-id: https://svn.dealii.org/trunk@28121 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/include/deal.II/matrix_free/mapping_info.templates.h

index 647ed1476c1d20e0ee034ef560a52e7078f30e06..59ed7db300d0c3a2ef7c999f17da91016b092ec9 100644 (file)
@@ -436,12 +436,9 @@ end_set:
                       current_data.jacobians.push_back (transpose(invert(jac)));
                       const Tensor<2,dim,VectorizedArray<Number> > &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<Tensor<2,dim,VEC_ARRAY>,
@@ -590,8 +587,8 @@ end_set:
                            v<VectorizedArray<Number>::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));
                 }
             }
         }

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.