diff --git a/rod3d.cc b/rod3d.cc index e0b6aedac6a463339bcdf370f0d772daa481600f..fdb3577e62270f24dc3ea22b3cbaff1f35d2cb70 100644 --- a/rod3d.cc +++ b/rod3d.cc @@ -76,8 +76,6 @@ int main (int argc, char *argv[]) try grid.globalRefine(numLevels-1); - std::vector<BitField> dirichletNodes(1); - SolutionType x(grid.size(grid.maxLevel(),1)); // ////////////////////////// @@ -119,15 +117,12 @@ int main (int argc, char *argv[]) try std::cout << "director 1: " << x[x.size()-1].q.director(1) << std::endl; std::cout << "director 2: " << x[x.size()-1].q.director(2) << std::endl; - dirichletNodes.resize(numLevels); - for (int i=0; i<numLevels; i++) { - - dirichletNodes[i].resize( blocksize * grid.size(i,1), false ); + BlockBitField<blocksize> dirichletNodes(grid.size(1)); + dirichletNodes.unsetAll(); - for (int j=0; j<blocksize; j++) { - dirichletNodes[i][j] = true; - dirichletNodes[i][dirichletNodes[i].size()-1-j] = true; - } + for (int j=0; j<blocksize; j++) { + dirichletNodes[0][j] = true; + dirichletNodes[dirichletNodes.size()-1][j] = true; } // /////////////////////////////////////////// @@ -140,6 +135,7 @@ int main (int argc, char *argv[]) try rodSolver.setup(grid, &rodAssembler, x, + dirichletNodes, tolerance, maxTrustRegionSteps, initialTrustRegionRadius,