diff --git a/demo/init/ellipt.dat.2d b/demo/init/ellipt.dat.2d index 84855f2bbd494badfd2ed8f493778b765dbca6be..11b7aba4e8f061bd9128fda5f661c49415714306 100644 --- a/demo/init/ellipt.dat.2d +++ b/demo/init/ellipt.dat.2d @@ -1,7 +1,7 @@ dimension of world: 2 elliptMesh->macro file name: ./macro/macro.stand.2d -elliptMesh->global refinements: 2 +elliptMesh->global refinements: 0 ellipt->mesh: elliptMesh ellipt->dim: 2 @@ -19,11 +19,11 @@ ellipt->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM ellipt->estimator->C0: 0.1 % constant of element residual ellipt->estimator->C1: 0.1 % constant of jump residual -ellipt->marker->strategy: 0 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS +ellipt->marker->strategy: 2 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS ellipt->marker->MSGamma: 0.5 ellipt->adapt->tolerance: 1e-4 -ellipt->adapt->max iteration: 0 +ellipt->adapt->max iteration: 10 ellipt->adapt->refine bisections: 2 ellipt->output->filename: ellipt diff --git a/demo/src/ellipt.cc b/demo/src/ellipt.cc index 9417c1c9c1edc677459cc3df0ffec75fa71a15f6..7ac58241ad8414f55773326473d2ffc47670e0c6 100644 --- a/demo/src/ellipt.cc +++ b/demo/src/ellipt.cc @@ -83,41 +83,10 @@ int main(int argc, char* argv[]) // ===== start adaption loop ===== - // adapt.adapt(); - - - - // Speichert hier bei jedem 2D-Element die DOFs auf dem Element. - std::vector<DegreeOfFreedom> localDofs(3); - // Damit wir jeden DOF nur einmal aufrufen, speichern wir hier jeden - // besuchten DOF. - std::set<DegreeOfFreedom> dofsVisited; - - // Okay, einfach das Gitter traversieren. - TraverseStack stack; - ElInfo *elInfo = stack.traverseFirst(ellipt.getMesh(), -1, Mesh::CALL_LEAF_EL | Mesh::FILL_COORDS); - while (elInfo) { - // Zuerst lassen wir uns die DOFs des aktuellen Elements in localDofs abspeichern. - ellipt.getFeSpace()->getBasisFcts()->getLocalIndices(elInfo->getElement(), - ellipt.getFeSpace()->getAdmin(), - localDofs); - - // Dann durchlaufen wir die drei DOFs (ist also fix für lineare Elemente in 2D!!!!) - for (int i = 0; i < 3; i++) { - // Falls der DOF noch nicht ausgegeben wurde. - if (dofsVisited.count(localDofs[i]) == 0) { - // Gib globalen DOF Index und seine Welt-Koordinaten aus. - std::cout << "DOF " << localDofs[i] << ": " - << elInfo->getCoord(i)[0] << " " << elInfo->getCoord(i)[1] << "\n"; - - // Merke dir den DOF, dass er schon ausgegebe wurde. - dofsVisited.insert(localDofs[i]); - } - } - - elInfo = stack.traverseNext(elInfo); - } + adapt.adapt(); + + ellipt.writeFiles(adaptInfo, true); }