Liebe Gitlab-Nutzer, lieber Gitlab-Nutzer, es ist nun möglich sich mittels des ZIH-Logins/LDAP an unserem Dienst anzumelden. Ein Anmelden über dieses erzeugt ein neues Konto. Das alte Konto ist über den Reiter "Standard" erreichbar. Die Administratoren

Dear Gitlab user, it is now possible to log in to our service using the ZIH login/LDAP. Logging in via this will create a new account. The old account can be accessed via the "Standard" tab. The administrators

Commit 729ab8dc authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

Fixed problem with getRecoveryGradient.

parent 7ab4ab7b
......@@ -18,8 +18,8 @@ namespace AMDiS {
DOFAdmin::DOFAdmin(Mesh* m)
: mesh(m),
nrDOF(mesh->getDim(), NO_INIT),
nr0DOF(mesh->getDim(), NO_INIT)
nDof(mesh->getDim(), NO_INIT),
nPreDof(mesh->getDim(), NO_INIT)
{
init();
}
......@@ -28,8 +28,8 @@ namespace AMDiS {
DOFAdmin::DOFAdmin(Mesh* m, std::string aName)
: name(aName),
mesh(m),
nrDOF(mesh->getDim(), NO_INIT),
nr0DOF(mesh->getDim(), NO_INIT)
nDof(mesh->getDim(), NO_INIT),
nPreDof(mesh->getDim(), NO_INIT)
{
init();
}
......@@ -62,8 +62,8 @@ namespace AMDiS {
holeCount = src.holeCount;
sizeUsed = src.sizeUsed;
for (int i = 0; i <= mesh->getDim(); i++) {
nrDOF[i] = src.nrDOF[i];
nr0DOF[i] = src.nr0DOF[i];
nDof[i] = src.nDof[i];
nPreDof[i] = src.nPreDof[i];
}
dofIndexedList = src.dofIndexedList;
dofContainerList = src.dofContainerList;
......@@ -142,10 +142,10 @@ namespace AMDiS {
firstHole = i;
} else { // if there is no hole
// enlarge dof-list
enlargeDOFLists();
enlargeDofLists();
TEST_EXIT_DBG(firstHole < static_cast<int>(dofFree.size()))
("no free entry after enlargeDOFLists\n");
("no free entry after enlargeDofLists\n");
TEST_EXIT_DBG(dofFree[firstHole])("no free bit at firstHole\n");
dofFree[firstHole] = false;
dof = firstHole;
......@@ -161,9 +161,9 @@ namespace AMDiS {
}
void DOFAdmin::enlargeDOFLists(int minsize)
void DOFAdmin::enlargeDofLists(int minsize)
{
FUNCNAME("DOFAdmin::enlargeDOFLists()");
FUNCNAME("DOFAdmin::enlargeDofLists()");
int old = size;
if (minsize > 0)
......@@ -316,23 +316,23 @@ namespace AMDiS {
}
void DOFAdmin::setNumberOfDOFs(int i, int v)
void DOFAdmin::setNumberOfDofs(int i, int v)
{
FUNCNAME("DOFAdmin::setNumberOfDOFs()");
TEST_EXIT_DBG(0 <= i && 4 > i)("Should not happen!\n");
nrDOF[i] = v;
nDof[i] = v;
}
void DOFAdmin::setNumberOfPreDOFs(int i, int v)
void DOFAdmin::setNumberOfPreDofs(int i, int v)
{
FUNCNAME("DOFAdmin::setNumberOfPreDOFs()");
TEST_EXIT_DBG(0 <= i && 4 > i)("Should not happen!\n");
nr0DOF[i] = v;
nPreDof[i] = v;
}
......@@ -361,8 +361,8 @@ namespace AMDiS {
SerUtil::serialize(out, holeCount);
SerUtil::serialize(out, sizeUsed);
nrDOF.serialize(out);
nr0DOF.serialize(out);
nDof.serialize(out);
nPreDof.serialize(out);
}
......@@ -388,8 +388,8 @@ namespace AMDiS {
SerUtil::deserialize(in, holeCount);
SerUtil::deserialize(in, sizeUsed);
nrDOF.deserialize(in);
nr0DOF.deserialize(in);
nDof.deserialize(in);
nPreDof.deserialize(in);
std::list<DOFIndexedBase*>::iterator di;
std::list<DOFIndexedBase*>::iterator end = dofIndexedList.end();
......
......@@ -66,7 +66,7 @@ namespace AMDiS {
* Enlarges the number of DOFs that can be managed at least to minsize by
* a step size of \ref sizeIncrement.
*/
void enlargeDOFLists(int minsize = 0);
void enlargeDofLists(int minsize = 0);
/// assignment operator
DOFAdmin& operator=(const DOFAdmin&);
......@@ -77,7 +77,7 @@ namespace AMDiS {
/// Compares two DOFAdmins by their names.
inline bool operator!=(const DOFAdmin& ad) const
{
return !(ad==*this);
return !(ad == *this);
}
/** \brief
......@@ -150,28 +150,28 @@ namespace AMDiS {
return name;
}
/// Returns \ref nrDOF[i], i.e., the number of dofs for the position i.
/// Returns \ref nDof[i], i.e., the number of dofs for the position i.
inline const int getNumberOfDofs(int i) const
{
return nrDOF[i];
return nDof[i];
}
/// Returns \ref nrDOF
/// Returns \ref nDof
inline const DimVec<int>& getNumberOfDofs() const
{
return nrDOF;
return nDof;
}
/// Returns \ref nr0DOF[i]
inline const int getNumberOfPreDOFs(int i) const
/// Returns \ref nPreDof[i]
inline const int getNumberOfPreDofs(int i) const
{
return nr0DOF[i];
return nPreDof[i];
}
/// Returns \ref nr0DOF
inline const DimVec<int>& getNumberOfPreDOFs() const
/// Returns \ref nPreDof
inline const DimVec<int>& getNumberOfPreDofs() const
{
return nr0DOF;
return nPreDof;
}
/// Returns \ref mesh
......@@ -181,19 +181,19 @@ namespace AMDiS {
}
/// Returns \ref dofFree, the array denoting DOFs to be either free or used.
inline const std::vector<bool>& getDOFFree() const
inline const std::vector<bool>& getDofFree() const
{
return dofFree;
}
/// Returns if the given DOF is free.
inline const bool isDOFFree(int i) const
inline const bool isDofFree(int i) const
{
return dofFree[i];
}
/// Sets a DOF to be free or not.
inline void setDOFFree(int i, bool b)
inline void setDofFree(int i, bool b)
{
dofFree[i] = b;
}
......@@ -224,17 +224,17 @@ namespace AMDiS {
* \{
*/
/// Sets \ref nrDOF[i] = v
void setNumberOfDOFs(int i, int v);
/// Sets \ref nDof[i] = v
void setNumberOfDofs(int i, int v);
/// Sets all values of \ref nrDOF
void setNumberOfDOFs(DimVec<int> v)
/// Sets all values of \ref nDof
void setNumberOfDofs(DimVec<int> v)
{
nrDOF = v;
nDof = v;
}
/// Sets \ref nr0DOF[i] = v
void setNumberOfPreDOFs(int i, int v);
/// Sets \ref nPreDof[i] = v
void setNumberOfPreDofs(int i, int v);
/// Sets \ref name = n
inline void setName(std::string n)
......@@ -300,10 +300,10 @@ namespace AMDiS {
* Number of dofs for each position, i.e., vertex, edge, ..., center,
* for this DOFAdmin.
*/
DimVec<int> nrDOF;
DimVec<int> nDof;
/// Dofs from previous DOFAdmins
DimVec<int> nr0DOF;
DimVec<int> nPreDof;
/// List of all managed DOFIndexed objects.
std::list<DOFIndexedBase*> dofIndexedList;
......
......@@ -45,7 +45,7 @@ namespace AMDiS {
return;
Element *el = list.getElement(0);
int n0 = feSpace->getAdmin()->getNumberOfPreDOFs(VERTEX);
int n0 = feSpace->getAdmin()->getNumberOfPreDofs(VERTEX);
DegreeOfFreedom dof0 = el->getDof(0, n0);
DegreeOfFreedom dof1 = el->getDof(1, n0);
DegreeOfFreedom dof_new = el->getChild(0)->getDof(feSpace->getMesh()->getDim(), n0);
......@@ -79,8 +79,8 @@ namespace AMDiS {
DOFAdmin *admin = feSpace->getAdmin();
// count number of nodes and dofs per node
std::vector<int> numNodeDOFs;
std::vector<int> numNodePreDOFs;
std::vector<int> nNodeDOFs;
std::vector<int> nNodePreDofs;
std::vector<DimVec<double>*> bary;
int nNodes = 0;
......@@ -89,12 +89,12 @@ namespace AMDiS {
for (int i = 0; i < dim + 1; i++) {
GeoIndex geoIndex = INDEX_OF_DIM(i, dim);
int nPositions = mesh->getGeo(geoIndex);
int numPreDOFs = admin->getNumberOfPreDOFs(i);
int numPreDofs = admin->getNumberOfPreDofs(i);
for (int j = 0; j < nPositions; j++) {
int dofs = basFcts->getNumberOfDofs(geoIndex);
numNodeDOFs.push_back(dofs);
nNodeDOFs.push_back(dofs);
nDofs += dofs;
numNodePreDOFs.push_back(numPreDOFs);
nNodePreDofs.push_back(numPreDofs);
}
nNodes += nPositions;
}
......@@ -120,8 +120,8 @@ namespace AMDiS {
int localDOFNr = 0;
for (int i = 0; i < nNodes; i++) { // for all nodes
for (int j = 0; j < numNodeDOFs[i]; j++) { // for all dofs at this node
DegreeOfFreedom dofIndex = dof[i][numNodePreDOFs[i] + j];
for (int j = 0; j < nNodeDOFs[i]; j++) { // for all dofs at this node
DegreeOfFreedom dofIndex = dof[i][nNodePreDofs[i] + j];
if (!visited[dofIndex]) {
basFcts->evalGrdUh(*(bary[localDOFNr]), grdLambda,
localUh, &((*result)[dofIndex]));
......@@ -171,7 +171,7 @@ namespace AMDiS {
volume.set(0.0);
const BasisFunction *basFcts = feSpace->getBasisFcts();
int nPreDOFs = feSpace->getAdmin()->getNumberOfPreDOFs(0);
int nPreDofs = feSpace->getAdmin()->getNumberOfPreDofs(VERTEX);
DimVec<double> bary(dim, DEFAULT_VALUE, (1.0 / (dim + 1.0)));
WorldVector<double> grd;
......@@ -193,7 +193,7 @@ namespace AMDiS {
basFcts->evalGrdUh(bary, grdLambda, localUh, &grd);
for (int i = 0; i < dim + 1; i++) {
DegreeOfFreedom dofIndex = dof[i][nPreDOFs];
DegreeOfFreedom dofIndex = dof[i][nPreDofs];
(*result)[dofIndex] += grd * det;
volume[dofIndex] += det;
}
......@@ -640,8 +640,8 @@ namespace AMDiS {
}
// count number of nodes and dofs per node
std::vector<int> numNodeDOFs;
std::vector<int> numNodePreDOFs;
std::vector<int> nNodeDOFs;
std::vector<int> nNodePreDofs;
std::vector<DimVec<double>*> bary;
int nNodes = 0;
......@@ -650,12 +650,12 @@ namespace AMDiS {
for (int i = 0; i < dim + 1; i++) {
GeoIndex geoIndex = INDEX_OF_DIM(i, dim);
int numPositionNodes = mesh->getGeo(geoIndex);
int numPreDOFs = admin->getNumberOfPreDOFs(i);
int numPreDofs = admin->getNumberOfPreDofs(i);
for (int j = 0; j < numPositionNodes; j++) {
int dofs = basFcts->getNumberOfDofs(geoIndex);
numNodeDOFs.push_back(dofs);
nNodeDOFs.push_back(dofs);
nDofs += dofs;
numNodePreDOFs.push_back(numPreDOFs);
nNodePreDofs.push_back(numPreDofs);
}
nNodes += numPositionNodes;
}
......@@ -681,8 +681,8 @@ namespace AMDiS {
int localDOFNr = 0;
for (int i = 0; i < nNodes; i++) { // for all nodes
for (int j = 0; j < numNodeDOFs[i]; j++) { // for all dofs at this node
DegreeOfFreedom dofIndex = dof[i][numNodePreDOFs[i] + j];
for (int j = 0; j < nNodeDOFs[i]; j++) { // for all dofs at this node
DegreeOfFreedom dofIndex = dof[i][nNodePreDofs[i] + j];
if (!visited[dofIndex]) {
basFcts->evalGrdUh(*(bary[localDOFNr]), grdLambda, localUh, &grd);
......
......@@ -860,7 +860,7 @@ namespace AMDiS {
#pragma omp parallel for schedule(dynamic, 25000) default(shared) private(i)
#endif
for (i = 0; i < maxI; i++)
if (!admin->isDOFFree(i))
if (!admin->isDofFree(i))
y[i] += alpha * x[i];
}
......@@ -926,7 +926,7 @@ namespace AMDiS {
#pragma omp parallel for schedule(dynamic, 25000) default(shared) private(i)
#endif
for (i = 0; i < maxI; i++)
if (!admin->isDOFFree(i))
if (!admin->isDofFree(i))
y[i] = alpha * y[i] + x[i];
}
......
......@@ -207,7 +207,7 @@ namespace AMDiS {
if ((nd = admin->getNumberOfDofs(VERTEX))) {
int vertices = mesh->getGeo(VERTEX);
nd0 = admin->getNumberOfPreDOFs(VERTEX);
nd0 = admin->getNumberOfPreDofs(VERTEX);
n0 = admin->getMesh()->getNode(VERTEX);
for (int i = 0; i < vertices; i++)
changeDofs1(admin, newDofIndex, n0, nd0, nd, i);
......@@ -216,7 +216,7 @@ namespace AMDiS {
if (mesh->getDim() > 1) {
if ((nd = admin->getNumberOfDofs(EDGE))) {
int edges = mesh->getGeo(EDGE);
nd0 = admin->getNumberOfPreDOFs(EDGE);
nd0 = admin->getNumberOfPreDofs(EDGE);
n0 = admin->getMesh()->getNode(EDGE);
for (int i = 0; i < edges; i++)
changeDofs1(admin, newDofIndex, n0, nd0, nd, i);
......@@ -226,7 +226,7 @@ namespace AMDiS {
if (mesh->getDim() == 3) {
if ((nd = admin->getNumberOfDofs(FACE))) {
int faces = mesh->getGeo(FACE);
nd0 = admin->getNumberOfPreDOFs(FACE);
nd0 = admin->getNumberOfPreDofs(FACE);
n0 = admin->getMesh()->getNode(FACE);
for (int i = 0; i < faces; i++)
changeDofs1(admin, newDofIndex, n0, nd0, nd, i);
......@@ -234,7 +234,7 @@ namespace AMDiS {
}
if ((nd = admin->getNumberOfDofs(CENTER))) {
nd0 = admin->getNumberOfPreDOFs(CENTER);
nd0 = admin->getNumberOfPreDofs(CENTER);
n0 = admin->getMesh()->getNode(CENTER);
changeDofs1(admin, newDofIndex, n0, nd0, nd, 0);
}
......@@ -248,7 +248,7 @@ namespace AMDiS {
int nd = admin->getNumberOfDofs(VERTEX);
if (nd) {
int vertices = mesh->getGeo(VERTEX);
nd0 = admin->getNumberOfPreDOFs(VERTEX);
nd0 = admin->getNumberOfPreDofs(VERTEX);
n0 = admin->getMesh()->getNode(VERTEX);
for (int i = 0; i < vertices; i++)
changeDofs2(n0, nd0, nd, i);
......@@ -258,7 +258,7 @@ namespace AMDiS {
nd = admin->getNumberOfDofs(EDGE);
if (nd) {
int edges = mesh->getGeo(EDGE);
nd0 = admin->getNumberOfPreDOFs(EDGE);
nd0 = admin->getNumberOfPreDofs(EDGE);
n0 = admin->getMesh()->getNode(EDGE);
for (int i = 0; i < edges; i++)
changeDofs2(n0, nd0, nd, i);
......@@ -269,7 +269,7 @@ namespace AMDiS {
nd = admin->getNumberOfDofs(FACE);
if (nd) {
int faces = mesh->getGeo(FACE);
nd0 = admin->getNumberOfPreDOFs(FACE);
nd0 = admin->getNumberOfPreDofs(FACE);
n0 = admin->getMesh()->getNode(FACE);
for (int i = 0; i < faces; i++)
changeDofs2(n0, nd0, nd, i);
......@@ -278,7 +278,7 @@ namespace AMDiS {
nd = admin->getNumberOfDofs(CENTER);
if (nd) {
nd0 = admin->getNumberOfPreDOFs(CENTER);
nd0 = admin->getNumberOfPreDofs(CENTER);
n0 = admin->getMesh()->getNode(CENTER);
// only one center
changeDofs2(n0, nd0, nd, 0);
......
......@@ -30,7 +30,7 @@ namespace AMDiS {
TEST_EXIT_DBG(nDofs != 0)("Mh, I've to think about this situation!\n");
// Calculate displacement. Is used if there is more than one dof admin on the mesh.
n0 = admin->getNumberOfPreDOFs(posIndex);
n0 = admin->getNumberOfPreDofs(posIndex);
// Get first dof index position for vertices.
node0 = mesh->getNode(posIndex);
// Get number of vertices in this dimension.
......@@ -40,6 +40,7 @@ namespace AMDiS {
orderPosition = basisFcts->orderOfPositionIndices(element, posIndex, 0);
}
bool ElementDofIterator::next()
{
// First iterate over the dofs of one element (vertex, edge, face).
......@@ -76,7 +77,7 @@ namespace AMDiS {
nElements = Global::getGeo(posIndex, dim);
// Calculate displacement. Is used if there is more than one dof admin on the mesh.
n0 = admin->getNumberOfPreDOFs(posIndex);
n0 = admin->getNumberOfPreDofs(posIndex);
// Get first dof index position for the geo index position.
node0 = mesh->getNode(posIndex);
......@@ -99,6 +100,7 @@ namespace AMDiS {
return true;
}
bool ElementDofIterator::nextStrict()
{
dofPos = nDofs;
......
......@@ -47,12 +47,15 @@ namespace AMDiS {
feSpaces.push_back(this);
}
FiniteElemSpace::FiniteElemSpace()
{}
FiniteElemSpace::~FiniteElemSpace()
{}
FiniteElemSpace& FiniteElemSpace::operator=(const FiniteElemSpace& feSpace)
{
if (&feSpace == this)
......@@ -69,14 +72,13 @@ namespace AMDiS {
return *this;
}
FiniteElemSpace *FiniteElemSpace::provideFeSpace(DOFAdmin *admin,
const BasisFunction *basFcts,
Mesh *mesh,
std::string name_)
{
int numSpaces = static_cast<int>(feSpaces.size());
for (int i = 0; i < numSpaces; i++)
for (unsigned int i = 0; i < feSpaces.size(); i++)
if (feSpaces[i]->basFcts == basFcts &&
feSpaces[i]->mesh == mesh &&
(!admin || (admin && feSpaces[i]->admin == admin)))
......@@ -85,6 +87,7 @@ namespace AMDiS {
return new FiniteElemSpace(admin, basFcts, mesh, name_);
}
int FiniteElemSpace::calcMemoryUsage()
{
int result = sizeof(FiniteElemSpace);
......@@ -92,6 +95,7 @@ namespace AMDiS {
return result;
}
void FiniteElemSpace::clear()
{
for (int i = 0; i < static_cast<int>(feSpaces.size()); i++) {
......
......@@ -78,7 +78,7 @@ namespace AMDiS {
{
if (static_cast<int>(phiDimDegree[dim][degree].size()) == 0) {
// for all positions
for (int i = 0; i < dim+1; i++) {
for (int i = 0; i < dim + 1; i++) {
// no vertex dofs for degree 0 ?
if (degree == 0 && i != dim)
continue;
......@@ -88,7 +88,7 @@ namespace AMDiS {
for (int k = 0; k < (*nDOF)[INDEX_OF_DIM(i, dim)]; k++) {
// basis function
phiDimDegree[dim][degree].push_back(new Phi(this,
INDEX_OF_DIM(i ,dim),j, k));
INDEX_OF_DIM(i ,dim), j, k));
// gradients
grdPhiDimDegree[dim][degree].push_back(new GrdPhi(this,
INDEX_OF_DIM(i, dim),
......@@ -939,7 +939,7 @@ namespace AMDiS {
nrDOFs = admin->getNumberOfDofs(posIndex);
if (nrDOFs) {
n0 = admin->getNumberOfPreDOFs(posIndex);
n0 = admin->getNumberOfPreDofs(posIndex);
node0 = admin->getMesh()->getNode(posIndex);
num = Global::getGeo(posIndex, dim);
......@@ -971,7 +971,7 @@ namespace AMDiS {
nrDOFs = admin->getNumberOfDofs(posIndex);
if (nrDOFs) {
n0 = admin->getNumberOfPreDOFs(posIndex);
n0 = admin->getNumberOfPreDofs(posIndex);
node0 = admin->getMesh()->getNode(posIndex);
num = Global::getGeo(posIndex, dim);
......@@ -1052,7 +1052,7 @@ namespace AMDiS {
if (n < 1)
return;
int n0 = drv->getFeSpace()->getAdmin()->getNumberOfPreDOFs(CENTER);
int n0 = drv->getFeSpace()->getAdmin()->getNumberOfPreDofs(CENTER);
Element *el = list->getElement(0);
int node = drv->getFeSpace()->getMesh()->getNode(CENTER);
// Parent center
......@@ -1075,7 +1075,7 @@ namespace AMDiS {
return;
int dim = drv->getFeSpace()->getMesh()->getDim();
int n0 = drv->getFeSpace()->getAdmin()->getNumberOfPreDOFs(VERTEX);
int n0 = drv->getFeSpace()->getAdmin()->getNumberOfPreDofs(VERTEX);
Element *el = list->getElement(0);
// 1st endpoint of refinement edge
DegreeOfFreedom dof0 = el->getDof(0, n0);
......@@ -1099,7 +1099,7 @@ namespace AMDiS {
const DegreeOfFreedom *pdof = basFct->getLocalIndices(el, admin, NULL);
int node = drv->getFeSpace()->getMesh()->getNode(VERTEX);
int n0 = admin->getNumberOfPreDOFs(VERTEX);
int n0 = admin->getNumberOfPreDofs(VERTEX);
/****************************************************************************/
/* newest vertex of child[0] and child[1] */
......@@ -1110,7 +1110,7 @@ namespace AMDiS {
(*drv)[cdof] = (*drv)[pdof[2]];
node = drv->getFeSpace()->getMesh()->getNode(CENTER);
n0 = admin->getNumberOfPreDOFs(CENTER);
n0 = admin->getNumberOfPreDofs(CENTER);
/****************************************************************************/
/* midpoint of edge on child[0] at the refinement edge */
......@@ -1143,17 +1143,17 @@ namespace AMDiS {
const DegreeOfFreedom *pdof = basFct->getLocalIndices(el, admin, NULL);
int node = drv->getFeSpace()->getMesh()->getNode(VERTEX);
int n0 = admin->getNumberOfPreDOFs(VERTEX);
int n0 = admin->getNumberOfPreDofs(VERTEX);
/****************************************************************************/
/* newest vertex of child[0] and child[1] */
/****************************************************************************/
DegreeOfFreedom cdof = el->getChild(0)->getDof(node+2, n0); /* newest vertex is DIM */
DegreeOfFreedom cdof = el->getChild(0)->getDof(node + 2, n0); /* newest vertex is DIM */
(*drv)[cdof] = (*drv)[pdof[5]];
node = drv->getFeSpace()->getMesh()->getNode(EDGE);
n0 = admin->getNumberOfPreDOFs(EDGE);
n0 = admin->getNumberOfPreDofs(EDGE);
/****************************************************************************/
/* midpoint of edge on child[0] at the refinement edge */
......@@ -1167,7 +1167,7 @@ namespace AMDiS {
/* node in the common edge of child[0] and child[1] */
/****************************************************************************/
cdof = el->getChild(0)->getDof(node+1, n0);
cdof = el->getChild(0)->getDof(node + 1, n0);
(*drv)[cdof] =
-0.125 * ((*drv)[pdof[0]] + (*drv)[pdof[1]]) + 0.25 * (*drv)[pdof[5]]
+ 0.5 * ((*drv)[pdof[3]] + (*drv)[pdof[4]]);
......@@ -1176,7 +1176,7 @@ namespace AMDiS {
/* midpoint of edge on child[1] at the refinement edge */
/****************************************************************************/
cdof = el->getChild(1)->getDof(node+1, n0);
cdof = el->getChild(1)->getDof(node + 1, n0);
(*drv)[cdof] =
-0.125 * (*drv)[pdof[0]] + 0.375 * (*drv)[pdof[1]] + 0.75 * (*drv)[pdof[5]];
......@@ -1187,7 +1187,7 @@ namespace AMDiS {
el = list->getElement(1);
pdof = basFct->getLocalIndices(el, admin, NULL);
cdof = el->getChild(0)->getDof(node+1, n0);
cdof = el->getChild(0)->getDof(node + 1, n0);
(*drv)[cdof] =
-0.125 * ((*drv)[pdof[0]] + (*drv)[pdof[1]]) + 0.25 * (*drv)[pdof[5]]
+ 0.5 * ((*drv)[pdof[3]] + (*drv)[pdof[4]]);
......@@ -1210,7 +1210,7 @@ namespace AMDiS {
basFct->getLocalIndices(el, admin, pdof);
int node0 = drv->getFeSpace()->getMesh()->getNode(EDGE);
int n0 = admin->getNumberOfPreDOFs(EDGE);
int n0 = admin->getNumberOfPreDofs(EDGE);
/****************************************************************************/
/* values on child[0] */
......@@ -1261,13 +1261,13 @@ namespace AMDiS {