Commit b4e9d7c9 authored by Naumann, Andreas's avatar Naumann, Andreas
Browse files

corrected bug with parametric 3d (problem was commented out refineInterpol)

comments for evalAtPoint (it's implemented for WorldVector and double only)
parent 72c0d2a0
......@@ -68,7 +68,7 @@ namespace AMDiS {
template<>
const double DOFVector<double>::evalAtPoint(WorldVector<double> &p, ElInfo *oldElInfo, double* values) const
const double& DOFVector<double>::evalAtPoint(WorldVector<double> &p, ElInfo *oldElInfo, double* values) const
{
FUNCNAME("DOFVector<double>::evalAtCoords()");
......@@ -82,7 +82,7 @@ namespace AMDiS {
DimVec<double> lambda(dim, NO_INIT);
ElInfo *elInfo = mesh->createNewElInfo();
double value = 0.0;
static double value = 0.0;
bool inside = false;
if (oldElInfo && oldElInfo->getMacroElement()) {
......@@ -114,7 +114,7 @@ namespace AMDiS {
template<>
const WorldVector<double> DOFVector<WorldVector<double> >::evalAtPoint(WorldVector<double> &p, ElInfo *oldElInfo, WorldVector<double>* values) const
const WorldVector<double>& DOFVector<WorldVector<double> >::evalAtPoint(WorldVector<double> &p, ElInfo *oldElInfo, WorldVector<double>* values) const
{
FUNCNAME("DOFVector<double>::evalAtCoords()");
......
......@@ -386,7 +386,7 @@ namespace AMDiS {
/// Restriction after coarsening. Implemented for DOFVector<double>
inline void coarseRestrict(RCNeighbourList&, int) {}
/// Interpolation after refinement.
/// Interpolation after refinement. Implemented for DOFVector<double>
inline void refineInterpol(RCNeighbourList&, int) {}
/// Returns \ref vec
......@@ -540,9 +540,16 @@ namespace AMDiS {
void interpol(DOFVector<T> *v, double factor = 1.0);
/// eval DOFVector at given point p. If oldElInfo != NULL the search for the element, where p is inside,
/// starts from oldElInfo.
const T evalAtPoint(WorldVector<double> &p, ElInfo *oldElInfo = NULL, T* value = NULL) const;
/** eval DOFVector at given point p. If oldElInfo != NULL the search for the element, where p is inside,
* starts from oldElInfo.
* implemented for: double, WorldVector< double >
*/
inline const T& evalAtPoint(WorldVector<double> &p, ElInfo *oldElInfo = NULL, T* value = NULL) const
{
FUNCNAME("DOFVector::evalAtPoint())");
TEST_EXIT(false)("Please implement your evaluation\n");
return *value;
}
/// Writes the data of the DOFVector to an output stream.
void serialize(std::ostream &out)
......@@ -582,17 +589,17 @@ namespace AMDiS {
};
/*template<>
const double DOFVector<double>::evalAtPoint(WorldVector<double> &p, ElInfo *oldElInfo, double* value) const;
template<>
const double& DOFVector<double>::evalAtPoint(WorldVector<double> &p, ElInfo *oldElInfo, double* value) const;
template<>
const WorldVector<double>& DOFVector<WorldVector<double> >::evalAtPoint(WorldVector<double> &p, ElInfo *oldElInfo, WorldVector<double>* value) const;
template<>
void DOFVector<double>::refineInterpol(RCNeighbourList&, int);
void DOFVector<double>::refineInterpol(RCNeighbourList&, int);
template<>
void DOFVector<double>::coarseRestrict(RCNeighbourList&, int); */
void DOFVector<double>::coarseRestrict(RCNeighbourList&, int);
inline double min(const DOFVector<double>& v)
{
......@@ -682,7 +689,7 @@ namespace AMDiS {
template<typename T>
void print(DOFVector<T> *vec)
{
{
vec->print();
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment