Commit f320e33d authored by Müller, Felix's avatar Müller, Felix Committed by Praetorius, Simon
Browse files

replaced calls to leafGridView by globalBasis->gridView, estimator is now accessed by treepath

parent bd9927ab
......@@ -18,6 +18,7 @@ namespace AMDiS {
switch (strategy) {
case 0: // no refinement/coarsening
marker = NULL;
break;
case 1:
msg("Creating global refinement (GR) marker\n");
......
......@@ -279,13 +279,19 @@ namespace AMDiS
solution_ = std::make_shared<SystemVector>(*globalBasis_, "solution");
rhs_ = std::make_shared<SystemVector>(*globalBasis_, "rhs");
estimates.resize(leafGridView().indexSet().size(0));
for (std::size_t i = 0; i < estimates.size(); i++) {
estimates[i].resize(nComponents);
for (std::size_t j = 0; j < estimates[i].size(); j++) {
systemMatrix = std::make_shared<SystemMatrix>(*globalBasis, *globalBasis, "mat");
solution = std::make_shared<SystemVector>(*globalBasis, "solution");
auto localView = globalBasis->localView();
forEachNode(localView.tree(), [&,this](auto const& node, auto treePath)
{
std::string i = to_string(treePath);
estimates[i].resize(globalBasis->gridView().indexSet().size(0));
for (std::size_t j = 0; j < estimates[i].size(); j++)
estimates[i][j] = 0.0; // TODO: Remove when estimate() is implemented
}
}
});
rhs_ = std::make_shared<SystemVector>(*globalBasis_, "rhs");
}
void createSolver()
......@@ -300,7 +306,7 @@ namespace AMDiS
}
void createEstimator()
{/*
{/* COPIED FROM AMDiS
for (std::size_t i = 0, i < nComponents, i++) {
std::string estName = "";
Parameters::get(name + "->estimator->name[" + std::to_string(i) + "]", estName);
......@@ -400,7 +406,7 @@ namespace AMDiS
/// A vector with the local element error estimates
/// reverse indexed by [component index][element index]
std::vector<std::vector<double> > estimates;
std::map<std::string, std::vector<double> > estimates;
/// A block-vector (load-vector) corresponding to the right.hand side
/// of the equation, filled during assembling
......
......@@ -142,9 +142,11 @@ void ProblemStat<Traits>::createMarker()
return;
int i = std::stoi(to_string(treePath)); // TODO: To be removed
// replace with treePath once supported
marker.push_back(Marker<Traits>::createMarker(
componentName, i, estimates[i], componentGrids[i]));
// replace i with treePath once supported
auto marker_ = Marker<Traits>::createMarker(
componentName, i, estimates[std::to_string(i)], componentGrids[i]);
if (marker_)
marker.push_back(marker_);
// If there is more than one marker, and all components are defined
// on the same grid, the maximum marking has to be enabled.
......@@ -379,7 +381,7 @@ Flag ProblemStat<Traits>::refineMesh(AdaptInfo& adaptInfo)
std::map<typename Grid::LocalIdSet::IdType, double> vertexData;
// std::map<typename Grid::LocalIdSet::IdType, double> elementData;
const auto& gridView = grid->leafGridView();
const auto& gridView = globalBasis->gridView();
const auto& indexSet = gridView.indexSet();
const auto& idSet = grid->localIdSet();
......
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