Skip to content
Snippets Groups Projects
Commit 0aaa6459 authored by Elias Pipping's avatar Elias Pipping
Browse files

[Algorit] Grid: Use different refinement

parent 4ef15a45
No related branches found
No related tags found
No related merge requests found
...@@ -53,12 +53,19 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() { ...@@ -53,12 +53,19 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() {
auto const BC = midPoint(B, C); auto const BC = midPoint(B, C);
auto const AAB = midPoint(A, AB); auto const AAB = midPoint(A, AB);
auto const AAC = midPoint(A, AC);
auto const ABB = midPoint(AB, B); 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); 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 #if MY_DIM == 3
Dune::FieldMatrix<double, 2 * vc, MY_DIM> vertices; Dune::FieldMatrix<double, 2 * vc, MY_DIM> vertices;
...@@ -73,10 +80,14 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() { ...@@ -73,10 +80,14 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() {
vertices[k++][i] = ABB[i]; vertices[k++][i] = ABB[i];
vertices[k++][i] = B[i]; vertices[k++][i] = B[i];
vertices[k++][i] = AAC[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] = AC[i];
vertices[k++][i] = ABC[i]; vertices[k++][i] = ACBC[i];
vertices[k++][i] = BC[i]; vertices[k++][i] = BC[i];
vertices[k++][i] = ACC[i]; vertices[k++][i] = ACC[i];
vertices[k++][i] = BCC[i];
vertices[k++][i] = C[i]; vertices[k++][i] = C[i];
assert(k == vc); assert(k == vc);
#if MY_DIM == 3 #if MY_DIM == 3
...@@ -86,10 +97,14 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() { ...@@ -86,10 +97,14 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() {
vertices[k++][i] = ABB[i]; vertices[k++][i] = ABB[i];
vertices[k++][i] = B[i]; vertices[k++][i] = B[i];
vertices[k++][i] = AAC[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] = AC[i];
vertices[k++][i] = ABC[i]; vertices[k++][i] = ACBC[i];
vertices[k++][i] = BC[i]; vertices[k++][i] = BC[i];
vertices[k++][i] = ACC[i]; vertices[k++][i] = ACC[i];
vertices[k++][i] = BCC[i];
vertices[k++][i] = C[i]; vertices[k++][i] = C[i];
assert(k == 2 * vc); assert(k == 2 * vc);
#endif #endif
...@@ -117,16 +132,28 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() { ...@@ -117,16 +132,28 @@ template <class Grid> GridConstructor<Grid>::GridConstructor() {
#else #else
SimplexManager sm; SimplexManager sm;
#endif #endif
sm.addFromVerticesFBB(1, 5, 0); // bottom row
sm.addFromVerticesFBB(1, 6, 5); sm.addFromVerticesFFB(1, 5, 0);
sm.addFromVerticesFBB(2, 6, 1); 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, 6, 2);
sm.addFromVerticesFBB(7, 2, 3); sm.addFromVerticesFBB(8, 7, 3);
sm.addFromVerticesFBB(7, 3, 8);
sm.addFromVerticesFBB(7, 8, 10); // the wheel
sm.addFromVerticesFBB(7, 10, 9); sm.addFromVerticesFBB(10, 9, 6);
sm.addFromVerticesFBB(7, 9, 6); sm.addFromVerticesFBB(10, 12, 9);
sm.addFromVerticesFBB(8, 3, 4); 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(); auto const &simplices = sm.getSimplices();
// sanity-check choices of simplices // sanity-check choices of simplices
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment