diff --git a/dirneucoupling.cc b/dirneucoupling.cc index 9f0d6f4974093a9620e811645a06d0c2bd33156c..e7d2a02f7bfd91f38e5eed8b4caf9c2caca50707 100644 --- a/dirneucoupling.cc +++ b/dirneucoupling.cc @@ -178,10 +178,8 @@ int main (int argc, char *argv[]) try // ///////////////////////////////////////////////////// // Determine the Dirichlet nodes // ///////////////////////////////////////////////////// - std::vector<VectorType> dirichletValues; - dirichletValues.resize(toplevel+1); - dirichletValues[0].resize(complex.continua_["continuum"].grid_->size(0, dim)); - AmiraMeshReader<int>::readFunction(dirichletValues[0], path + dirichletValuesFile); + VectorType coarseDirichletValues(complex.continua_["continuum"].grid_->size(0, dim)); + AmiraMeshReader<int>::readFunction(coarseDirichletValues, path + dirichletValuesFile); LevelBoundaryPatch<GridType> coarseDirichletBoundary; coarseDirichletBoundary.setup(*complex.continua_["continuum"].grid_, 0); @@ -197,7 +195,7 @@ int main (int argc, char *argv[]) try dirichletNodes[i] = dirichletBoundary.containsVertex(i); sampleOnBitField(*complex.continua_["continuum"].grid_, - dirichletValues[0], + coarseDirichletValues, complex.continua_["continuum"].dirichletValues_, dirichletNodes); @@ -243,11 +241,12 @@ int main (int argc, char *argv[]) try rhs3d = 0; // Set initial solution + const VectorType& dirichletValues = complex.continua_["continuum"].dirichletValues_; x3d = 0; for (int i=0; i<x3d.size(); i++) for (int j=0; j<dim; j++) if (dirichletNodes[i][j]) - x3d[i][j] = dirichletValues[toplevel][i][j]; + x3d[i][j] = dirichletValues[i][j]; // /////////////////////////////////////////// // Dirichlet nodes for the rod problem