Changeset [44118347e964327bd42c9fe2d0b3f8b0e66e50c7] by Jed Brown
Revision 44118347e964327bd42c9fe2d0b3f8b0e66e50c7,
committed by Jed Brown
· November 17th, 2008 @ 11:59 PM
Partial implementation of geometric maps.
-
We still need plumbing for the geometric maps. The map can either be computed in advance or every time we visit elements. With Q1 element maps, 24=8*3 doubles must be stored. To store it instead, we need 10q (9 values for inverse Jacobian, 1 for determinant) where q is the number of quadrature points. For linear elements, q=8 is natural. For a scalar problem (worst case), 8 new (in cache) values are used so an extra 80 for the stored element map seems disproportionate. This motivates recomputing the map every element, a cost of around 234q. It's not clear yet whether this reduced stress on memory actually pays off. Of course affine elements are a big win, but they are pretty rare in a fully unstructured hexahedral mesh.
-
Remove -Wcast-qual from pedantic warnings. The problem is that there is no way to specify a const array type, for instance when casting
const double a[]; const double (b)[3] = (const double()[3])a;
which complains since the const means that the elements are const. There is no way to indicate that the (double[3]) objects are const, only that the elements are const. GCC is technically correct to complain about this cast, but I believe that the qualifier (const) should be promoted from the elements to the object (double[3]) so that the warning would not be thrown in this case.
Signed-off-by: Jed Brown jed@59A2.org http://github.com/jedbrown/dohp/...
5 changed files
-
M
CMakeLists.txt -
M
include/dohpgeom.h -
M
include/private/fsimpl.h -
M
src/jacobi/impls/tensor/efstopo.c -
M
src/jacobi/impls/tensor/ruletopo.c