Commit 739be0ef authored by Thomas Witkowski's avatar Thomas Witkowski

A lot of work on mesh repartitioning in parallel computations.

parent dd514ad5
...@@ -85,7 +85,7 @@ NM="/usr/bin/nm -B" ...@@ -85,7 +85,7 @@ NM="/usr/bin/nm -B"
LN_S="ln -s" LN_S="ln -s"
# What is the maximum length of a command? # What is the maximum length of a command?
max_cmd_len=98304 max_cmd_len=1572864
# Object file suffix (normally "o"). # Object file suffix (normally "o").
objext=o objext=o
...@@ -128,7 +128,7 @@ old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib" ...@@ -128,7 +128,7 @@ old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
old_postuninstall_cmds="" old_postuninstall_cmds=""
# A C compiler. # A C compiler.
LTCC="/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpicc" LTCC="/usr/lib64/mpi/gcc/openmpi//bin/mpicc"
# LTCC compiler flags. # LTCC compiler flags.
LTCFLAGS="-g -O2" LTCFLAGS="-g -O2"
...@@ -233,10 +233,10 @@ finish_eval="" ...@@ -233,10 +233,10 @@ finish_eval=""
hardcode_into_libs=yes hardcode_into_libs=yes
# Compile-time system search path for libraries. # Compile-time system search path for libraries.
sys_lib_search_path_spec="/usr/lib64/gcc/x86_64-suse-linux/4.1.2 /usr/lib64 /lib64 /fastfs/wir/local/lib /usr/x86_64-suse-linux/lib" sys_lib_search_path_spec="/usr/lib64/gcc/x86_64-suse-linux/4.5 /usr/lib64 /lib64 /usr/x86_64-suse-linux/lib"
# Run-time system search path for libraries. # Run-time system search path for libraries.
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib64/Xaw3d /usr/X11R6/lib64 /usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/x86_64-suse-linux/lib /usr/local/lib64 /usr/local/lib /opt/kde3/lib64 /opt/kde3/lib /opt/gnome/lib64 /opt/gnome/lib /lib64 /lib /usr/lib64 /usr/lib /opt/cluster/intel/cce/9.1.042/lib /opt/cluster/intel/fce/9.1.036/lib /opt/cluster/Pathscale3.0/lib/2.9.99 /opt/cluster/Pathscale3.0/lib/2.9.99/32 /work/licsoft/compilers/pgi/linux86-64/6.2/lib /work/licsoft/compilers/pgi/linux86-64/6.2/libso " sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib64/Xaw3d /usr/X11R6/lib64 /usr/lib64/Xaw3d /usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/lib/Xaw3d /usr/x86_64-suse-linux/lib /usr/local/lib /opt/kde3/lib /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /opt/kde3/lib64 /usr/lib64/graphviz /usr/lib64/graphviz/sharp /usr/lib64/graphviz/java /usr/lib64/graphviz/perl /usr/lib64/graphviz/php /usr/lib64/graphviz/ocaml /usr/lib64/graphviz/python /usr/lib64/graphviz/lua /usr/lib64/graphviz/tcl /usr/lib64/graphviz/guile /usr/lib64/graphviz/ruby /usr/lib64/octave-3.2.4 "
# Whether dlopen is supported. # Whether dlopen is supported.
dlopen_support=unknown dlopen_support=unknown
...@@ -259,7 +259,7 @@ LD="/usr/x86_64-suse-linux/bin/ld -m elf_x86_64" ...@@ -259,7 +259,7 @@ LD="/usr/x86_64-suse-linux/bin/ld -m elf_x86_64"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib" old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
# A language specific compiler. # A language specific compiler.
CC="/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpicc" CC="/usr/lib64/mpi/gcc/openmpi//bin/mpicc"
# Is the compiler the GNU compiler? # Is the compiler the GNU compiler?
with_gcc=yes with_gcc=yes
...@@ -8914,7 +8914,7 @@ LD="/usr/x86_64-suse-linux/bin/ld -m elf_x86_64" ...@@ -8914,7 +8914,7 @@ LD="/usr/x86_64-suse-linux/bin/ld -m elf_x86_64"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib" old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
# A language specific compiler. # A language specific compiler.
CC="/licsoft/libraries/openmpi/1.2.6/64bit/bin/mpicxx" CC="/usr/lib64/mpi/gcc/openmpi//bin/mpicxx"
# Is the compiler the GNU compiler? # Is the compiler the GNU compiler?
with_gcc=yes with_gcc=yes
...@@ -9039,17 +9039,17 @@ file_list_spec="" ...@@ -9039,17 +9039,17 @@ file_list_spec=""
hardcode_action=immediate hardcode_action=immediate
# The directories searched by this compiler when creating a shared library. # The directories searched by this compiler when creating a shared library.
compiler_lib_search_dirs="/usr/lib64 /licsoft/libraries/openmpi/1.2.6/64bit/lib /usr/lib64/gcc/x86_64-suse-linux/4.1.2 /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /fastfs/wir/local/lib /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/lib /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../.." compiler_lib_search_dirs="/usr/lib64/mpi/gcc/openmpi/lib64 /usr/lib64/gcc/x86_64-suse-linux/4.5 /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/lib /usr/lib64/gcc/x86_64-suse-linux/4.5/../../.."
# Dependencies to place before and after the objects being linked to # Dependencies to place before and after the objects being linked to
# create a shared library. # create a shared library.
predep_objects="/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-suse-linux/4.1.2/crtbeginS.o" predep_objects="/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-suse-linux/4.5/crtbeginS.o"
postdep_objects="/usr/lib64/gcc/x86_64-suse-linux/4.1.2/crtendS.o /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../lib64/crtn.o" postdep_objects="/usr/lib64/gcc/x86_64-suse-linux/4.5/crtendS.o /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64/crtn.o"
predeps="" predeps=""
postdeps="-lmpi_cxx -lmpi -lopen-rte -lopen-pal -libverbs -lrt -lnuma -ldl -lnsl -lutil -ldl -lstdc++ -lm -lgcc_s -lpthread -lc -lgcc_s" postdeps="-lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -lnsl -lutil -ldl -lstdc++ -lm -lgcc_s -lpthread -lc -lgcc_s"
# The library search path used internally by the compiler when linking # The library search path used internally by the compiler when linking
# a shared library. # a shared library.
compiler_lib_search_path="-L/usr/lib64 -L/licsoft/libraries/openmpi/1.2.6/64bit/lib -L/usr/lib64/gcc/x86_64-suse-linux/4.1.2 -L/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/fastfs/wir/local/lib -L/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/lib -L/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../.." compiler_lib_search_path="-L/usr/lib64/mpi/gcc/openmpi/lib64 -L/usr/lib64/gcc/x86_64-suse-linux/4.5 -L/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/lib -L/usr/lib64/gcc/x86_64-suse-linux/4.5/../../.."
# ### END LIBTOOL TAG CONFIG: CXX # ### END LIBTOOL TAG CONFIG: CXX
#ifndef AMDIS_H #ifndef AMDIS_H
#define AMDIS_H #define AMDIS_H
#include "stdint.h"
#include "AbstractFunction.h" #include "AbstractFunction.h"
#include "AdaptInfo.h" #include "AdaptInfo.h"
#include "AdaptInstationary.h" #include "AdaptInstationary.h"
......
#include <fstream> #include <fstream>
#include <stdint.h>
#include "ArhReader.h" #include "ArhReader.h"
#include "Mesh.h" #include "Mesh.h"
...@@ -107,13 +108,13 @@ namespace AMDiS { ...@@ -107,13 +108,13 @@ namespace AMDiS {
if (!macroElement) { if (!macroElement) {
Element *mEl = elInfo->getMacroElement()->getElement(); Element *mEl = elInfo->getMacroElement()->getElement();
for (int i = 0; i <= mesh->getDim(); i++) for (int i = 0; i <= mesh->getDim(); i++)
(*vec)[mEl->getDOF(i, 0)] = values[valuePos++]; (*vec)[mEl->getDof(i, 0)] = values[valuePos++];
macroElement = true; macroElement = true;
} }
Element *el = elInfo->getElement(); Element *el = elInfo->getElement();
if (!el->isLeaf()) if (!el->isLeaf())
(*vec)[el->getChild(0)->getDOF(mesh->getDim(), 0)] = values[valuePos++]; (*vec)[el->getChild(0)->getDof(mesh->getDim(), 0)] = values[valuePos++];
elInfo = stack.traverseNext(elInfo); elInfo = stack.traverseNext(elInfo);
} }
......
#include <fstream> #include <fstream>
#include <stdint.h>
#include "ArhWriter.h" #include "ArhWriter.h"
#include "Mesh.h" #include "Mesh.h"
...@@ -73,7 +74,7 @@ namespace AMDiS { ...@@ -73,7 +74,7 @@ namespace AMDiS {
values[i].clear(); values[i].clear();
for (int j = 0; j <= mesh->getDim(); j++) for (int j = 0; j <= mesh->getDim(); j++)
values[i].push_back((*vecs[i])[elInfo->getElement()->getDOF(j, 0)]); values[i].push_back((*vecs[i])[elInfo->getElement()->getDof(j, 0)]);
} }
} }
...@@ -81,7 +82,7 @@ namespace AMDiS { ...@@ -81,7 +82,7 @@ namespace AMDiS {
if (!elInfo->getElement()->isLeaf()) { if (!elInfo->getElement()->isLeaf()) {
for (unsigned int i = 0; i < vecs.size(); i++) for (unsigned int i = 0; i < vecs.size(); i++)
values[i].push_back((*vecs[i])[elInfo->getElement()->getChild(0)->getDOF(mesh->getDim(), 0)]); values[i].push_back((*vecs[i])[elInfo->getElement()->getChild(0)->getDof(mesh->getDim(), 0)]);
} }
elInfo = stack.traverseNext(elInfo); elInfo = stack.traverseNext(elInfo);
......
...@@ -70,12 +70,12 @@ namespace AMDiS { ...@@ -70,12 +70,12 @@ namespace AMDiS {
if (mesh->getNumberOfDOFs(VERTEX) && !mesh->queryCoarseDOFs()) { if (mesh->getNumberOfDOFs(VERTEX) && !mesh->queryCoarseDOFs()) {
int node = mesh->getNode(VERTEX); int node = mesh->getNode(VERTEX);
parent->setDOF(node+0, const_cast<int*>( child[0]->getDOF(node+0))); parent->setDof(node+0, const_cast<int*>( child[0]->getDof(node+0)));
parent->setDOF(node+1, const_cast<int*>( child[1]->getDOF(node+1))); parent->setDof(node+1, const_cast<int*>( child[1]->getDof(node+1)));
} }
if (mesh->getNumberOfDOFs(CENTER) && !mesh->queryCoarseDOFs()) { if (mesh->getNumberOfDOFs(CENTER) && !mesh->queryCoarseDOFs()) {
parent->setDOF(mesh->getNode(CENTER), mesh->getDof(CENTER)); parent->setDof(mesh->getNode(CENTER), mesh->getDof(CENTER));
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
...@@ -102,13 +102,13 @@ namespace AMDiS { ...@@ -102,13 +102,13 @@ namespace AMDiS {
if (mesh->getNumberOfDOFs(VERTEX)) /*--- midpoint of parent ---*/ if (mesh->getNumberOfDOFs(VERTEX)) /*--- midpoint of parent ---*/
{ {
mesh->freeDof(const_cast<int*>( child[1]->getDOF(mesh->getNode(VERTEX))), VERTEX); mesh->freeDof(const_cast<int*>( child[1]->getDof(mesh->getNode(VERTEX))), VERTEX);
} }
if (mesh->getNumberOfDOFs(CENTER)) /*--- center of the children ---*/ if (mesh->getNumberOfDOFs(CENTER)) /*--- center of the children ---*/
{ {
mesh->freeDof(const_cast<int*>( child[0]->getDOF(mesh->getNode(CENTER))), CENTER); mesh->freeDof(const_cast<int*>( child[0]->getDof(mesh->getNode(CENTER))), CENTER);
mesh->freeDof(const_cast<int*>( child[1]->getDOF(mesh->getNode(CENTER))), CENTER); mesh->freeDof(const_cast<int*>( child[1]->getDof(mesh->getNode(CENTER))), CENTER);
} }
parent->coarsenElementData(child[0], child[1]); parent->coarsenElementData(child[0], child[1]);
......
...@@ -31,14 +31,14 @@ namespace AMDiS { ...@@ -31,14 +31,14 @@ namespace AMDiS {
// remove dof from common edge of child[0] and child[1] // remove dof from common edge of child[0] and child[1]
if (mesh->getNumberOfDOFs(EDGE)) if (mesh->getNumberOfDOFs(EDGE))
mesh->freeDof(const_cast<int*>(child[0]->getDOF(4)), EDGE); mesh->freeDof(const_cast<int*>(child[0]->getDof(4)), EDGE);
// remove dof from the barycenters of child[0] and child[1] // remove dof from the barycenters of child[0] and child[1]
if (mesh->getNumberOfDOFs(CENTER)) { if (mesh->getNumberOfDOFs(CENTER)) {
int node = mesh->getNode(CENTER); int node = mesh->getNode(CENTER);
mesh->freeDof(const_cast<int*>(child[0]->getDOF(node)), CENTER); mesh->freeDof(const_cast<int*>(child[0]->getDof(node)), CENTER);
mesh->freeDof(const_cast<int*>(child[1]->getDOF(node)), CENTER); mesh->freeDof(const_cast<int*>(child[1]->getDof(node)), CENTER);
} }
el->coarsenElementData(child[0], child[1]); el->coarsenElementData(child[0], child[1]);
...@@ -71,10 +71,10 @@ namespace AMDiS { ...@@ -71,10 +71,10 @@ namespace AMDiS {
dynamic_cast<Triangle*>(const_cast<Element*>(coarsenList->getElement(1))); dynamic_cast<Triangle*>(const_cast<Element*>(coarsenList->getElement(1)));
DegreeOfFreedom *dof[3]; DegreeOfFreedom *dof[3];
dof[0] = const_cast<int*>(el->getChild(0)->getDOF(2)); dof[0] = const_cast<int*>(el->getChild(0)->getDof(2));
if (mesh->getNumberOfDOFs(EDGE)) { if (mesh->getNumberOfDOFs(EDGE)) {
dof[1] = const_cast<int*>(el->getChild(0)->getDOF(3)); dof[1] = const_cast<int*>(el->getChild(0)->getDof(3));
dof[2] = const_cast<int*>(el->getChild(1)->getDOF(4)); dof[2] = const_cast<int*>(el->getChild(1)->getDof(4));
} else { } else {
dof[1] = dof[2] = 0; dof[1] = dof[2] = 0;
} }
...@@ -83,10 +83,10 @@ namespace AMDiS { ...@@ -83,10 +83,10 @@ namespace AMDiS {
int node = mesh->getNode(EDGE); int node = mesh->getNode(EDGE);
// get new dof on el at the midpoint of the coarsening edge // get new dof on el at the midpoint of the coarsening edge
if (!el->getDOF(node + 2)) { if (!el->getDof(node + 2)) {
el->setDOF(node + 2, mesh->getDof(EDGE)); el->setDof(node + 2, mesh->getDof(EDGE));
if (neigh) if (neigh)
neigh->setDOF(node + 2, const_cast<int*>(el->getDOF(node + 2))); neigh->setDof(node + 2, const_cast<int*>(el->getDof(node + 2)));
} }
} }
...@@ -149,12 +149,12 @@ namespace AMDiS { ...@@ -149,12 +149,12 @@ namespace AMDiS {
// give the refinement edge the right orientation // give the refinement edge the right orientation
if (el->getDOF(0,0) < el->getDOF(1,0)) { if (el->getDof(0,0) < el->getDof(1,0)) {
edge[0] = const_cast<int*>(el->getDOF(0)); edge[0] = const_cast<int*>(el->getDof(0));
edge[1] = const_cast<int*>(el->getDOF(1)); edge[1] = const_cast<int*>(el->getDof(1));
} else { } else {
edge[1] = const_cast<int*>(el->getDOF(0)); edge[1] = const_cast<int*>(el->getDof(0));
edge[0] = const_cast<int*>(el->getDOF(1)); edge[0] = const_cast<int*>(el->getDof(1));
} }
coarse_list.setElement(0, el, true); coarse_list.setElement(0, el, true);
......
...@@ -47,12 +47,12 @@ namespace AMDiS { ...@@ -47,12 +47,12 @@ namespace AMDiS {
/* give the refinement edge the right orientation */ /* give the refinement edge the right orientation */
/****************************************************************************/ /****************************************************************************/
if (el->getDOF(0,0) < el->getDOF(1,0)) { if (el->getDof(0,0) < el->getDof(1,0)) {
edge[0] = const_cast<int*>(el->getDOF(0)); edge[0] = const_cast<int*>(el->getDof(0));
edge[1] = const_cast<int*>(el->getDOF(1)); edge[1] = const_cast<int*>(el->getDof(1));
} else { } else {
edge[1] = const_cast<int*>(el->getDOF(0)); edge[1] = const_cast<int*>(el->getDof(0));
edge[0] = const_cast<int*>(el->getDOF(1)); edge[0] = const_cast<int*>(el->getDof(1));
} }
coarsenList->setElement(0, el, true); coarsenList->setElement(0, el, true);
...@@ -135,13 +135,13 @@ namespace AMDiS { ...@@ -135,13 +135,13 @@ namespace AMDiS {
if (mesh->getNumberOfDOFs(EDGE)) { if (mesh->getNumberOfDOFs(EDGE)) {
node = mesh->getNode(EDGE) + Tetrahedron::nChildEdge[el_type][0][dir]; node = mesh->getNode(EDGE) + Tetrahedron::nChildEdge[el_type][0][dir];
mesh->freeDof(const_cast<int*>( child[0]->getDOF(node)), EDGE); mesh->freeDof(const_cast<int*>( child[0]->getDof(node)), EDGE);
} }
if (mesh->getNumberOfDOFs(FACE)) { if (mesh->getNumberOfDOFs(FACE)) {
node = mesh->getNode(FACE) + Tetrahedron::nChildFace[el_type][0][dir]; node = mesh->getNode(FACE) + Tetrahedron::nChildFace[el_type][0][dir];
mesh->freeDof(const_cast<int*>( child[0]->getDOF(node)), FACE); mesh->freeDof(const_cast<int*>( child[0]->getDof(node)), FACE);
node = mesh->getNode(FACE) + Tetrahedron::nChildFace[el_type][1][dir]; node = mesh->getNode(FACE) + Tetrahedron::nChildFace[el_type][1][dir];
mesh->freeDof(const_cast<int*>( child[1]->getDOF(node)), FACE); mesh->freeDof(const_cast<int*>( child[1]->getDof(node)), FACE);
} }
} }
} }
...@@ -153,14 +153,14 @@ namespace AMDiS { ...@@ -153,14 +153,14 @@ namespace AMDiS {
if (mesh->getNumberOfDOFs(FACE)) { if (mesh->getNumberOfDOFs(FACE)) {
node = mesh->getNode(FACE); node = mesh->getNode(FACE);
mesh->freeDof(const_cast<int*>( child[0]->getDOF(node)), FACE); mesh->freeDof(const_cast<int*>( child[0]->getDof(node)), FACE);
} }
if (mesh->getNumberOfDOFs(CENTER)) { if (mesh->getNumberOfDOFs(CENTER)) {
node = mesh->getNode(CENTER); node = mesh->getNode(CENTER);
for (i = 0; i < 2; i++) for (i = 0; i < 2; i++)
mesh->freeDof(const_cast<int*>( child[i]->getDOF(node)), CENTER); mesh->freeDof(const_cast<int*>( child[i]->getDof(node)), CENTER);
} }
/****************************************************************************/ /****************************************************************************/
...@@ -238,20 +238,20 @@ namespace AMDiS { ...@@ -238,20 +238,20 @@ namespace AMDiS {
while (neigh != el) { while (neigh != el) {
for (j = 0; j < n_vertices; j++) for (j = 0; j < n_vertices; j++)
if (neigh->getDOF(j) == edge[0]) break; if (neigh->getDof(j) == edge[0]) break;
for (k = 0; k < n_vertices; k++) for (k = 0; k < n_vertices; k++)
if (neigh->getDOF(k) == edge[1]) break; if (neigh->getDof(k) == edge[1]) break;
if (j > 3 || k > 3) { if (j > 3 || k > 3) {
for (j = 0; j < n_vertices; j++) for (j = 0; j < n_vertices; j++)
if (mesh->associated(neigh->getDOF(j, 0), edge[0][0])) break; if (mesh->associated(neigh->getDof(j, 0), edge[0][0])) break;
for (k = 0; k < n_vertices; k++) for (k = 0; k < n_vertices; k++)
if (mesh->associated(neigh->getDOF(k, 0), edge[1][0])) break; if (mesh->associated(neigh->getDof(k, 0), edge[1][0])) break;
TEST_EXIT_DBG(j < n_vertices && k < n_vertices) TEST_EXIT_DBG(j < n_vertices && k < n_vertices)
("dof %d or dof %d not found on element %d with nodes (%d %d %d %d)\n", ("dof %d or dof %d not found on element %d with nodes (%d %d %d %d)\n",
edge[0][0], edge[1][0], neigh->getIndex(), neigh->getDOF(0,0), edge[0][0], edge[1][0], neigh->getIndex(), neigh->getDof(0,0),
neigh->getDOF(1,0), neigh->getDOF(2,0), neigh->getDOF(3,0)); neigh->getDof(1,0), neigh->getDof(2,0), neigh->getDof(3,0));
} }
edge_no = Tetrahedron::edgeOfDofs[j][k]; edge_no = Tetrahedron::edgeOfDofs[j][k];
coarsenList->setCoarsePatch(*n_neigh, edge_no == 0); coarsenList->setCoarsePatch(*n_neigh, edge_no == 0);
...@@ -323,7 +323,7 @@ namespace AMDiS { ...@@ -323,7 +323,7 @@ namespace AMDiS {
/* get dof for coarsening edge */ /* get dof for coarsening edge */
/****************************************************************************/ /****************************************************************************/
node = mesh->getNode(EDGE); node = mesh->getNode(EDGE);
if (!(dof = const_cast<int*>( el->getDOF(node)))) if (!(dof = const_cast<int*>( el->getDof(node))))
dof = mesh->getDof(EDGE); dof = mesh->getDof(EDGE);
} else { } else {
dof = NULL; dof = NULL;
...@@ -356,13 +356,13 @@ namespace AMDiS { ...@@ -356,13 +356,13 @@ namespace AMDiS {
/* remove dof's of the coarsening edge */ /* remove dof's of the coarsening edge */
/****************************************************************************/ /****************************************************************************/
mesh->freeDof(const_cast<int*>( el->getChild(0)->getDOF(3)), VERTEX); mesh->freeDof(const_cast<int*>( el->getChild(0)->getDof(3)), VERTEX);
mesh->incrementNumberOfVertices(-1); mesh->incrementNumberOfVertices(-1);
if (mesh->getNumberOfDOFs(EDGE)) { if (mesh->getNumberOfDOFs(EDGE)) {
node = mesh->getNode(EDGE) + 2; node = mesh->getNode(EDGE) + 2;
mesh->freeDof(const_cast<int*>( el->getChild(0)->getDOF(node)), EDGE); mesh->freeDof(const_cast<int*>( el->getChild(0)->getDof(node)), EDGE);
mesh->freeDof(const_cast<int*>( el->getChild(1)->getDOF(node)), EDGE); mesh->freeDof(const_cast<int*>( el->getChild(1)->getDof(node)), EDGE);
} }
if (coarsenList->getElement(0)->isNewCoordSet()) if (coarsenList->getElement(0)->isNewCoordSet())
......
...@@ -257,12 +257,12 @@ namespace AMDiS { ...@@ -257,12 +257,12 @@ namespace AMDiS {
void init(); void init();
/** \brief /** \brief
* Adds one index to all DOF lists. Used by Mesh::getDOF() to provide * Adds one index to all DOF lists. Used by Mesh::getDof() to provide
* DOFS for a specific position * DOFS for a specific position
*/ */
int getDOFIndex(); int getDOFIndex();
/// Frees index dof. Used by Mesh::getDOF() /// Frees index dof. Used by Mesh::getDof()
void freeDofIndex(int dof); void freeDofIndex(int dof);
/// ///
......
...@@ -46,9 +46,9 @@ namespace AMDiS { ...@@ -46,9 +46,9 @@ namespace AMDiS {
Element *el = list.getElement(0); Element *el = list.getElement(0);
int n0 = feSpace->getAdmin()->getNumberOfPreDOFs(VERTEX); int n0 = feSpace->getAdmin()->getNumberOfPreDOFs(VERTEX);
DegreeOfFreedom dof0 = el->getDOF(0, n0); DegreeOfFreedom dof0 = el->getDof(0, n0);
DegreeOfFreedom dof1 = el->getDOF(1, n0); DegreeOfFreedom dof1 = el->getDof(1, n0);
DegreeOfFreedom dof_new = el->getChild(0)->getDOF(feSpace->getMesh()->getDim(), n0); DegreeOfFreedom dof_new = el->getChild(0)->getDof(feSpace->getMesh()->getDim(), n0);
vec[dof_new] = vec[dof0]; vec[dof_new] = vec[dof0];
vec[dof_new] += vec[dof1]; vec[dof_new] += vec[dof1];
vec[dof_new] *= 0.5; vec[dof_new] *= 0.5;
...@@ -114,7 +114,7 @@ namespace AMDiS { ...@@ -114,7 +114,7 @@ namespace AMDiS {
ElInfo *elInfo = stack.traverseFirst(mesh, -1, fillFlag); ElInfo *elInfo = stack.traverseFirst(mesh, -1, fillFlag);
while (elInfo) { while (elInfo) {
const DegreeOfFreedom **dof = elInfo->getElement()->getDOF(); const DegreeOfFreedom **dof = elInfo->getElement()->getDof();
const DimVec<WorldVector<double> > &grdLambda = elInfo->getGrdLambda(); const DimVec<WorldVector<double> > &grdLambda = elInfo->getGrdLambda();
getLocalVector(elInfo->getElement(), localUh); getLocalVector(elInfo->getElement(), localUh);
...@@ -186,7 +186,7 @@ namespace AMDiS { ...@@ -186,7 +186,7 @@ namespace AMDiS {
while (elInfo) { while (elInfo) {
double det = elInfo->getDet(); double det = elInfo->getDet();
const DegreeOfFreedom **dof = elInfo->getElement()->getDOF(); const DegreeOfFreedom **dof = elInfo->getElement()->getDof();
const DimVec<WorldVector<double> > &grdLambda = elInfo->getGrdLambda(); const DimVec<WorldVector<double> > &grdLambda = elInfo->getGrdLambda();
getLocalVector(elInfo->getElement(), localUh); getLocalVector(elInfo->getElement(), localUh);
basFcts->evalGrdUh(bary, grdLambda, localUh, &grd); basFcts->evalGrdUh(bary, grdLambda, localUh, &grd);
...@@ -674,7 +674,7 @@ namespace AMDiS { ...@@ -674,7 +674,7 @@ namespace AMDiS {
ElementVector localUh(basFcts->getNumber()); ElementVector localUh(basFcts->getNumber());
while (elInfo) { while (elInfo) {
const DegreeOfFreedom **dof = elInfo->getElement()->getDOF(); const DegreeOfFreedom **dof = elInfo->getElement()->getDof();
getLocalVector(elInfo->getElement(), localUh); getLocalVector(elInfo->getElement(), localUh);
const DimVec<WorldVector<double> > &grdLambda = elInfo->getGrdLambda(); const DimVec<WorldVector<double> > &grdLambda = elInfo->getGrdLambda();
......
...@@ -204,7 +204,7 @@ namespace AMDiS { ...@@ -204,7 +204,7 @@ namespace AMDiS {
{ {
FUNCNAME("DataCollector::addElementData()"); FUNCNAME("DataCollector::addElementData()");
const DegreeOfFreedom **dof = elInfo->getElement()->getDOF(); const DegreeOfFreedom **dof = elInfo->getElement()->getDof();
DegreeOfFreedom vertexDOF; DegreeOfFreedom vertexDOF;
WorldVector<double> vertexCoords; WorldVector<double> vertexCoords;
...@@ -384,13 +384,13 @@ namespace AMDiS { ...@@ -384,13 +384,13 @@ namespace AMDiS {
int index1 = elInfo->getElement()->getVertexOfPosition(INDEX_OF_DIM(dim - 1, dim), int index1 = elInfo->getElement()->getVertexOfPosition(INDEX_OF_DIM(dim - 1, dim),
it->elementSide, it->elementSide,
i); i);
int dof1 = elInfo->getElement()->getDOF(index1, nPreDofs); int dof1 = elInfo->getElement()->getDof(index1, nPreDofs);
for (int j = 0; j < dim; j++) { for (int j = 0; j < dim