diff --git a/src/sand-wedge-data/mygrid.cc b/src/sand-wedge-data/mygrid.cc index b6001067dd79afc1f74b1265a6223a277be92411..b19d164885a0f495f05d55921abf8c7dbad74998 100644 --- a/src/sand-wedge-data/mygrid.cc +++ b/src/sand-wedge-data/mygrid.cc @@ -53,12 +53,19 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() { auto const BC = midPoint(B, C); auto const AAB = midPoint(A, AB); - auto const AAC = midPoint(A, AC); auto const ABB = midPoint(AB, B); - auto const ABC = midPoint(AB, C); // the interiour point + + auto const AAC = midPoint(A, AC); auto const ACC = midPoint(AC, C); - unsigned int const vc = 11; + auto const BBC = midPoint(B, BC); + auto const BCC = midPoint(BC, C); + + auto const ABAC = midPoint(AB, AC); + auto const ABBC = midPoint(AB, BC); + auto const ACBC = midPoint(AC, BC); + + unsigned int const vc = 15; #if MY_DIM == 3 Dune::FieldMatrix<double, 2 * vc, MY_DIM> vertices; @@ -73,10 +80,14 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() { vertices[k++][i] = ABB[i]; vertices[k++][i] = B[i]; vertices[k++][i] = AAC[i]; + vertices[k++][i] = ABAC[i]; + vertices[k++][i] = ABBC[i]; + vertices[k++][i] = BBC[i]; vertices[k++][i] = AC[i]; - vertices[k++][i] = ABC[i]; + vertices[k++][i] = ACBC[i]; vertices[k++][i] = BC[i]; vertices[k++][i] = ACC[i]; + vertices[k++][i] = BCC[i]; vertices[k++][i] = C[i]; assert(k == vc); #if MY_DIM == 3 @@ -86,10 +97,14 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() { vertices[k++][i] = ABB[i]; vertices[k++][i] = B[i]; vertices[k++][i] = AAC[i]; + vertices[k++][i] = ABAC[i]; + vertices[k++][i] = ABBC[i]; + vertices[k++][i] = BBC[i]; vertices[k++][i] = AC[i]; - vertices[k++][i] = ABC[i]; + vertices[k++][i] = ACBC[i]; vertices[k++][i] = BC[i]; vertices[k++][i] = ACC[i]; + vertices[k++][i] = BCC[i]; vertices[k++][i] = C[i]; assert(k == 2 * vc); #endif @@ -117,16 +132,28 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() { #else SimplexManager sm; #endif - sm.addFromVerticesFBB(1, 5, 0); - sm.addFromVerticesFBB(1, 6, 5); - sm.addFromVerticesFBB(2, 6, 1); + // bottom row + sm.addFromVerticesFFB(1, 5, 0); + sm.addFromVerticesFFB(2, 6, 1); + sm.addFromVerticesFFB(3, 7, 2); + sm.addFromVerticesFFB(4, 8, 3); + + sm.addFromVerticesFBB(6, 5, 1); sm.addFromVerticesFBB(7, 6, 2); - sm.addFromVerticesFBB(7, 2, 3); - sm.addFromVerticesFBB(7, 3, 8); - sm.addFromVerticesFBB(7, 8, 10); - sm.addFromVerticesFBB(7, 10, 9); - sm.addFromVerticesFBB(7, 9, 6); - sm.addFromVerticesFBB(8, 3, 4); + sm.addFromVerticesFBB(8, 7, 3); + + // the wheel + sm.addFromVerticesFBB(10, 9, 6); + sm.addFromVerticesFBB(10, 12, 9); + sm.addFromVerticesFBB(10, 13, 12); + sm.addFromVerticesFBB(10, 11, 13); + sm.addFromVerticesFBB(10, 7, 11); + sm.addFromVerticesFBB(10, 6, 7); + + // the three surrounders + sm.addFromVerticesFBB(6, 9, 5); + sm.addFromVerticesFBB(11, 7, 8); + sm.addFromVerticesFBB(12, 13, 14); auto const &simplices = sm.getSimplices(); // sanity-check choices of simplices