Commit 64021684 authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

Changes in interface designs.

parent c2460445
...@@ -140,6 +140,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ ...@@ -140,6 +140,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@ PATH_SEPARATOR = @PATH_SEPARATOR@
PETSC_DIR = @PETSC_DIR@ PETSC_DIR = @PETSC_DIR@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@
......
...@@ -1578,10 +1578,27 @@ linux*) ...@@ -1578,10 +1578,27 @@ linux*)
# before this can be enabled. # before this can be enabled.
hardcode_into_libs=yes hardcode_into_libs=yes
# find out which ABI we are using
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
case `/usr/bin/file conftest.$ac_objext` in
*64-bit*)
libsuff=64
sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
;;
esac
fi
rm -rf conftest*
;;
esac
# Append ld.so.conf contents to the search path # Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi fi
# We used to test for /lib/ld.so.1 and disable shared libraries on # We used to test for /lib/ld.so.1 and disable shared libraries on
...@@ -4288,6 +4305,9 @@ CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) ...@@ -4288,6 +4305,9 @@ CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
# Is the compiler the GNU C compiler? # Is the compiler the GNU C compiler?
with_gcc=$_LT_AC_TAGVAR(GCC, $1) with_gcc=$_LT_AC_TAGVAR(GCC, $1)
gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
gcc_ver=\`gcc -dumpversion\`
# An ERE matcher. # An ERE matcher.
EGREP=$lt_EGREP EGREP=$lt_EGREP
...@@ -4421,11 +4441,11 @@ striplib=$lt_striplib ...@@ -4421,11 +4441,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a # Dependencies to place before the objects being linked to create a
# shared library. # shared library.
predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place after the objects being linked to create a # Dependencies to place after the objects being linked to create a
# shared library. # shared library.
postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place before the objects being linked to create a # Dependencies to place before the objects being linked to create a
# shared library. # shared library.
...@@ -4437,7 +4457,7 @@ postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) ...@@ -4437,7 +4457,7 @@ postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
# 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=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Method to check whether dependent libraries are shared objects. # Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method deplibs_check_method=$lt_deplibs_check_method
...@@ -4517,7 +4537,7 @@ variables_saved_for_relink="$variables_saved_for_relink" ...@@ -4517,7 +4537,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
# Compile-time system search path for libraries # Compile-time system search path for libraries
sys_lib_search_path_spec=$lt_sys_lib_search_path_spec sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Run-time system search path for libraries # Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
...@@ -6353,6 +6373,7 @@ do ...@@ -6353,6 +6373,7 @@ do
done done
done done
done done
IFS=$as_save_IFS
lt_ac_max=0 lt_ac_max=0
lt_ac_count=0 lt_ac_count=0
# Add /usr/xpg4/bin/sed as it is typically found on Solaris # Add /usr/xpg4/bin/sed as it is typically found on Solaris
...@@ -6385,6 +6406,7 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do ...@@ -6385,6 +6406,7 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
done done
]) ])
SED=$lt_cv_path_SED SED=$lt_cv_path_SED
AC_SUBST([SED])
AC_MSG_RESULT([$SED]) AC_MSG_RESULT([$SED])
]) ])
......
...@@ -423,6 +423,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ ...@@ -423,6 +423,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@ PATH_SEPARATOR = @PATH_SEPARATOR@
PETSC_DIR = @PETSC_DIR@ PETSC_DIR = @PETSC_DIR@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@
......
...@@ -68,42 +68,34 @@ namespace AMDiS { ...@@ -68,42 +68,34 @@ namespace AMDiS {
return nrm; return nrm;
} }
double
ElementL1Norm_DOF::calcElNorm(ElInfo *elInfo, double ElementL1Norm_DOF::calcElNorm(ElInfo *elInfo,
const double &det, const double &det,
const double &fac) const double &fac)
{ {
double val = 0.0; double val = 0.0;
const double *dofAtQPs = dofVec->getVecAtQPs(elInfo, mtl::dense_vector<double> dofAtQPs(q->getNumPoints());
q, dofVec->getVecAtQPs(elInfo, q, NULL, dofAtQPs);
NULL,
NULL);
for (int iq = 0; iq < nQPts; ++iq) { for (int iq = 0; iq < nQPts; ++iq)
val += q->getWeight(iq) * fabs(dofAtQPs[iq]); val += q->getWeight(iq) * fabs(dofAtQPs[iq]);
}
double nrm = det * val; return det * val;
return nrm;
} }
double
ElementL2Norm_DOF::calcElNorm(ElInfo *elInfo, double ElementL2Norm_DOF::calcElNorm(ElInfo *elInfo,
const double &det, const double &det,
const double &fac) const double &fac)
{ {
double val = 0.0; double val = 0.0;
const double *dofAtQPs = dofVec->getVecAtQPs(elInfo, mtl::dense_vector<double> dofAtQPs(q->getNumPoints());
q, dofVec->getVecAtQPs(elInfo, q, NULL, dofAtQPs);
NULL,
NULL);
for (int iq = 0; iq < nQPts; ++iq) { for (int iq = 0; iq < nQPts; ++iq)
val += q->getWeight(iq) * sqr(dofAtQPs[iq]); val += q->getWeight(iq) * sqr(dofAtQPs[iq]);
}
double nrm = det * val; return det * val;
return nrm;
} }
double double
...@@ -131,17 +123,15 @@ namespace AMDiS { ...@@ -131,17 +123,15 @@ namespace AMDiS {
return nrm; return nrm;
} }
double
ElementL2Err::calcElNorm(ElInfo *elInfo, double ElementL2Err::calcElNorm(ElInfo *elInfo,
const double &det, const double &det,
const double &fac) const double &fac)
{ {
double val = 0.0; double val = 0.0;
double val_nrm = 0.0; double val_nrm = 0.0;
const double *uhAtQPs = uh->getVecAtQPs(elInfo, mtl::dense_vector<double> uhAtQPs(q->getNumPoints());
q, uh->getVecAtQPs(elInfo, q, NULL, uhAtQPs);
NULL,
NULL);
WorldVector<double> worldCoordsAtQP; WorldVector<double> worldCoordsAtQP;
for (int iq = 0; iq < nQPts; ++iq) { for (int iq = 0; iq < nQPts; ++iq) {
...@@ -160,10 +150,10 @@ namespace AMDiS { ...@@ -160,10 +150,10 @@ namespace AMDiS {
return err; return err;
} }
double
ElementH1Err::calcElNorm(ElInfo *elInfo, double ElementH1Err::calcElNorm(ElInfo *elInfo,
const double &det, const double &det,
const double &fac) const double &fac)
{ {
double val = 0.0; double val = 0.0;
double val_nrm = 0.0; double val_nrm = 0.0;
......
...@@ -36,18 +36,18 @@ void CompositeFEMMethods::setPosLsToFct(DOFVector<double> *dof, ...@@ -36,18 +36,18 @@ void CompositeFEMMethods::setPosLsToFct(DOFVector<double> *dof,
const BasisFunction *basisFcts = dof->getFeSpace()->getBasisFcts(); const BasisFunction *basisFcts = dof->getFeSpace()->getBasisFcts();
const DOFAdmin *admin = dof->getFeSpace()->getAdmin(); const DOFAdmin *admin = dof->getFeSpace()->getAdmin();
const int dim = dof->getFeSpace()->getMesh()->getDim(); const int dim = dof->getFeSpace()->getMesh()->getDim();
const double *locVec;
const DegreeOfFreedom *locInd; const DegreeOfFreedom *locInd;
TraverseStack stack; TraverseStack stack;
ElInfo *elInfo = stack.traverseFirst(dof->getFeSpace()->getMesh(), -1, ElInfo *elInfo = stack.traverseFirst(dof->getFeSpace()->getMesh(), -1,
Mesh::CALL_LEAF_EL | Mesh::FILL_COORDS); Mesh::CALL_LEAF_EL | Mesh::FILL_COORDS);
ElementVector locVec(basisFcts->getNumber());
while (elInfo) { while (elInfo) {
const Element *el = elInfo->getElement(); const Element *el = elInfo->getElement();
// Get level set function values for all vertices of element. // Get level set function values for all vertices of element.
locVec = lsFct_dof->getLocalVector(el, NULL); lsFct_dof->getLocalVector(el, locVec);
// Get dof indices of vertices. // Get dof indices of vertices.
locInd = basisFcts->getLocalIndices(el, admin, NULL); locInd = basisFcts->getLocalIndices(el, admin, NULL);
......
This diff is collapsed.
...@@ -92,7 +92,11 @@ namespace AMDiS { ...@@ -92,7 +92,11 @@ namespace AMDiS {
lastVecEl = lastMatEl = NULL; lastVecEl = lastMatEl = NULL;
if ((el != lastMatEl && el != lastVecEl) || !operat->isOptimized()) if ((el != lastMatEl && el != lastVecEl) || !operat->isOptimized())
initElement(smallElInfo, largeElInfo); if (smallElInfo == colElInfo)
initElement(smallElInfo);
else
initElement(smallElInfo, largeElInfo);
if (el != lastMatEl || !operat->isOptimized()) { if (el != lastMatEl || !operat->isOptimized()) {
if (rememberElMat) if (rememberElMat)
...@@ -165,15 +169,18 @@ namespace AMDiS { ...@@ -165,15 +169,18 @@ namespace AMDiS {
smallElInfo->getSubElemCoordsMat(rowFeSpace->getBasisFcts()->getDegree()); smallElInfo->getSubElemCoordsMat(rowFeSpace->getBasisFcts()->getDegree());
if (smallElInfo == colElInfo) if (smallElInfo == colElInfo)
tmpMat = m * mat; tmpMat = m * mat;
else else
tmpMat = mat * trans(m); tmpMat = mat;
// else
// tmpMat = mat * trans(m);
mat = tmpMat; mat = tmpMat;
} }
if (rememberElMat && &userMat != &elementMatrix) if (rememberElMat && &userMat != &elementMatrix)
userMat += factor * elementMatrix; userMat += factor * elementMatrix;
} }
...@@ -292,9 +299,9 @@ namespace AMDiS { ...@@ -292,9 +299,9 @@ namespace AMDiS {
FUNCNAME("Assembler::matVecAssemble()"); FUNCNAME("Assembler::matVecAssemble()");
Element *el = elInfo->getElement(); Element *el = elInfo->getElement();
std::vector<double> uhOldLoc(operat->uhOld->getFeSpace() == rowFeSpace ? nRow : nCol); ElementVector uhOldLoc(operat->uhOld->getFeSpace() == rowFeSpace ? nRow : nCol);
operat->uhOld->getLocalVector(el, &(uhOldLoc[0])); operat->uhOld->getLocalVector(el, uhOldLoc);
if (el != lastMatEl) { if (el != lastMatEl) {
set_to_zero(elementMatrix); set_to_zero(elementMatrix);
...@@ -328,9 +335,9 @@ namespace AMDiS { ...@@ -328,9 +335,9 @@ namespace AMDiS {
const BasisFunction *basFcts = rowFeSpace->getBasisFcts(); const BasisFunction *basFcts = rowFeSpace->getBasisFcts();
int nBasFcts = basFcts->getNumber(); int nBasFcts = basFcts->getNumber();
std::vector<double> uhOldLoc(nBasFcts); ElementVector uhOldLoc(nBasFcts);
operat->uhOld->getLocalVector(auxEl, &(uhOldLoc[0])); operat->uhOld->getLocalVector(auxEl, uhOldLoc);
if (mainEl != lastMatEl) { if (mainEl != lastMatEl) {
set_to_zero(elementMatrix); set_to_zero(elementMatrix);
......
...@@ -51,7 +51,7 @@ namespace AMDiS { ...@@ -51,7 +51,7 @@ namespace AMDiS {
/****************************************************************************/ /****************************************************************************/
double BasisFunction::evalUh(const DimVec<double>& lambda, double BasisFunction::evalUh(const DimVec<double>& lambda,
const double *uh_loc) const const ElementVector& uh_loc) const
{ {
double val = 0.0; double val = 0.0;
...@@ -63,7 +63,7 @@ namespace AMDiS { ...@@ -63,7 +63,7 @@ namespace AMDiS {
const WorldVector<double>& BasisFunction::evalUh(const DimVec<double>& lambda, const WorldVector<double>& BasisFunction::evalUh(const DimVec<double>& lambda,
const WorldVector<double> *uh_loc, const mtl::dense_vector<WorldVector<double> >& uh_loc,
WorldVector<double>* values) const WorldVector<double>* values) const
{ {
static WorldVector<double> Values(DEFAULT_VALUE, 0.0); static WorldVector<double> Values(DEFAULT_VALUE, 0.0);
...@@ -84,7 +84,7 @@ namespace AMDiS { ...@@ -84,7 +84,7 @@ namespace AMDiS {
const WorldVector<double>& BasisFunction::evalGrdUh(const DimVec<double>& lambda, const WorldVector<double>& BasisFunction::evalGrdUh(const DimVec<double>& lambda,
const DimVec<WorldVector<double> >& grd_lambda, const DimVec<WorldVector<double> >& grd_lambda,
const double *uh_loc, const ElementVector& uh_loc,
WorldVector<double>* val) const WorldVector<double>* val) const
{ {
TEST_EXIT_DBG(val)("return value is NULL\n"); TEST_EXIT_DBG(val)("return value is NULL\n");
...@@ -113,6 +113,7 @@ namespace AMDiS { ...@@ -113,6 +113,7 @@ namespace AMDiS {
return ((*val)); return ((*val));
} }
const WorldMatrix<double>& BasisFunction::evalD2Uh(const DimVec<double>& lambda, const WorldMatrix<double>& BasisFunction::evalD2Uh(const DimVec<double>& lambda,
const DimVec<WorldVector<double> >& grd_lambda, const DimVec<WorldVector<double> >& grd_lambda,
const double *uh_loc, WorldMatrix<double>* D2_uh) const const double *uh_loc, WorldMatrix<double>* D2_uh) const
......
...@@ -307,7 +307,7 @@ namespace AMDiS { ...@@ -307,7 +307,7 @@ namespace AMDiS {
* Evaluates elements value at barycentric coordinates lambda with local * Evaluates elements value at barycentric coordinates lambda with local
* coefficient vector uh. * coefficient vector uh.
*/ */
double evalUh(const DimVec<double>& lambda, const double* uh) const; double evalUh(const DimVec<double>& lambda, const ElementVector& uh) const;
/** \brief /** \brief
* Evaluates elements value at barycentric coordinates lambda with local * Evaluates elements value at barycentric coordinates lambda with local
...@@ -316,7 +316,7 @@ namespace AMDiS { ...@@ -316,7 +316,7 @@ namespace AMDiS {
* will be overwritten after the next call. * will be overwritten after the next call.
*/ */
const WorldVector<double>& evalUh(const DimVec<double>& lambda, const WorldVector<double>& evalUh(const DimVec<double>& lambda,
const WorldVector<double>* uh, const mtl::dense_vector<WorldVector<double> >& uh,
WorldVector<double>* val) const; WorldVector<double>* val) const;
/** \brief /** \brief
...@@ -328,7 +328,8 @@ namespace AMDiS { ...@@ -328,7 +328,8 @@ namespace AMDiS {
*/ */
const WorldVector<double>& evalGrdUh(const DimVec<double>& lambda, const WorldVector<double>& evalGrdUh(const DimVec<double>& lambda,
const DimVec<WorldVector<double> >& Lambda, const DimVec<WorldVector<double> >& Lambda,
const double* uh, WorldVector<double>* val) const; const ElementVector& uh,
WorldVector<double>* val) const;
/** \brief /** \brief
* Evaluates the second derivative at barycentric coordinates lambda. * Evaluates the second derivative at barycentric coordinates lambda.
......
...@@ -245,8 +245,10 @@ namespace AMDiS { ...@@ -245,8 +245,10 @@ namespace AMDiS {
std::vector<Operator*>::iterator it = operators.begin(); std::vector<Operator*>::iterator it = operators.begin();
std::vector<double*>::iterator factorIt = operatorFactor.begin(); std::vector<double*>::iterator factorIt = operatorFactor.begin();
for (; it != operators.end(); ++it, ++factorIt) for (; it != operators.end(); ++it, ++factorIt)
if ((*it)->getNeedDualTraverse() == false) if ((*it)->getNeedDualTraverse() == false) {
// MSG("OP NO NEED DT!\n");
(*it)->getElementMatrix(elInfo, elementMatrix, *factorIt ? **factorIt : 1.0); (*it)->getElementMatrix(elInfo, elementMatrix, *factorIt ? **factorIt : 1.0);
}
if (factor != 1.0) if (factor != 1.0)
elementMatrix *= factor; elementMatrix *= factor;
......
...@@ -105,7 +105,7 @@ namespace AMDiS { ...@@ -105,7 +105,7 @@ namespace AMDiS {
for (int i = 0; i < nDofs; i++) for (int i = 0; i < nDofs; i++)
bary.push_back(basFcts->getCoords(i)); bary.push_back(basFcts->getCoords(i));
double *localUh = new double[basFcts->getNumber()]; ElementVector localUh(basFcts->getNumber());
// traverse mesh // traverse mesh
std::vector<bool> visited(getUsedSize(), false); std::vector<bool> visited(getUsedSize(), false);
...@@ -135,8 +135,6 @@ namespace AMDiS { ...@@ -135,8 +135,6 @@ namespace AMDiS {
elInfo = stack.traverseNext(elInfo); elInfo = stack.traverseNext(elInfo);
} }
delete [] localUh;
return result; return result;
} }
...@@ -184,7 +182,7 @@ namespace AMDiS { ...@@ -184,7 +182,7 @@ namespace AMDiS {
Mesh::CALL_LEAF_EL | Mesh::FILL_DET | Mesh::CALL_LEAF_EL | Mesh::FILL_DET |
Mesh::FILL_GRD_LAMBDA | Mesh::FILL_COORDS); Mesh::FILL_GRD_LAMBDA | Mesh::FILL_COORDS);
double *localUh = new double[basFcts->getNumber()]; ElementVector localUh(basFcts->getNumber());
while (elInfo) { while (elInfo) {
double det = elInfo->getDet(); double det = elInfo->getDet();
...@@ -202,8 +200,6 @@ namespace AMDiS { ...@@ -202,8 +200,6 @@ namespace AMDiS {
elInfo = stack.traverseNext(elInfo); elInfo = stack.traverseNext(elInfo);
} }
delete [] localUh;
DOFVector<double>::Iterator volIt(&volume, USED_DOFS); DOFVector<double>::Iterator volIt(&volume, USED_DOFS);
DOFVector<WorldVector<double> >::Iterator grdIt(result, USED_DOFS); DOFVector<WorldVector<double> >::Iterator grdIt(result, USED_DOFS);
...@@ -252,8 +248,8 @@ namespace AMDiS { ...@@ -252,8 +248,8 @@ namespace AMDiS {
result = grd; result = grd;
} }
double *localVec = localVectors[myRank]; const ElementVector& localVec = localVectors[myRank];
getLocalVector(elInfo->getElement(), localVec); getLocalVector(elInfo->getElement(), const_cast<ElementVector&>(localVec));
DimVec<double> &grd1 = *grdTmp[myRank]; DimVec<double> &grd1 = *grdTmp[myRank];
int parts = Global::getGeo(PARTS, dim); int parts = Global::getGeo(PARTS, dim);
...@@ -338,8 +334,8 @@ namespace AMDiS { ...@@ -338,8 +334,8 @@ namespace AMDiS {
result = grd; result = grd;
} }
double *localVec = localVectors[myRank]; const ElementVector& localVec = localVectors[myRank];
getLocalVector(largeElInfo->getElement(), localVec); getLocalVector(largeElInfo->getElement(), const_cast<ElementVector&>(localVec));
const BasisFunction *basFcts = feSpace->getBasisFcts(); const BasisFunction *basFcts = feSpace->getBasisFcts();
mtl::dense2D<double> &m = smallElInfo->getSubElemCoordsMat(basFcts->getDegree()); mtl::dense2D<double> &m = smallElInfo->getSubElemCoordsMat(basFcts->getDegree());
...@@ -417,8 +413,8 @@ namespace AMDiS { ...@@ -417,8 +413,8 @@ namespace AMDiS {
result = vec; result = vec;
} }
double *localVec = localVectors[myRank]; const ElementVector& localVec = localVectors[myRank];
getLocalVector(el, localVec); getLocalVector(el, const_cast<ElementVector&>(localVec));
DimMat<double> D2Tmp(dim, DEFAULT_VALUE, 0.0); DimMat<double> D2Tmp(dim, DEFAULT_VALUE, 0.0);
int parts = Global::getGeo(PARTS, dim); int parts = Global::getGeo(PARTS, dim);
...@@ -491,7 +487,7 @@ namespace AMDiS { ...@@ -491,7 +487,7 @@ namespace AMDiS {
this->set(0.0); this->set(0.0);