diff --git a/cosserat-continuum.cc b/cosserat-continuum.cc index 74892cafadcc808bd9d2098e7ed234715f4e98bf..8607c1e9f4bb3ecbe19b6e4d6d146a4c7c60926d 100644 --- a/cosserat-continuum.cc +++ b/cosserat-continuum.cc @@ -142,7 +142,7 @@ int main (int argc, char *argv[]) try #if 0 BitSetVector<1> allNodes(grid.size(dim)); allNodes.setAll(); - LeafBoundaryPatch<GridType> dirichletBoundary(grid, allNodes); + BoundaryPatch<GridType::LeafGridView> dirichletBoundary(grid.leafView(), allNodes); BitSetVector<blocksize> dirichletNodes(grid.size(dim), false); for (int i=0; i<dirichletNodes.size(); i++) { diff --git a/dirneucoupling.cc b/dirneucoupling.cc index a397abed46b714fc62c4a72be09de3a255f2c66f..4cdcb90a3604af97665feeb5e1e240e1d27f1348 100644 --- a/dirneucoupling.cc +++ b/dirneucoupling.cc @@ -22,7 +22,7 @@ #include <dune/fufem/readbitfield.hh> #include <dune/solvers/norms/energynorm.hh> #include <dune/fufem/boundarypatch.hh> -#include <dune/fufem/prolongboundarypatch.hh> +#include <dune/fufem/boundarypatchprolongator.hh> #include <dune/fufem/sampleonbitfield.hh> #include <dune/fufem/computestress.hh> @@ -128,6 +128,9 @@ int main (int argc, char *argv[]) try typedef OneDGrid RodGridType; typedef UGGrid<dim> GridType; + typedef BoundaryPatch<GridType::LevelGridView> LevelBoundaryPatch; + typedef BoundaryPatch<GridType::LeafGridView> LeafBoundaryPatch; + RodContinuumComplex<RodGridType,GridType> complex; complex.rods_["rod"].grid_ = shared_ptr<RodGridType> @@ -207,14 +210,14 @@ int main (int argc, char *argv[]) try // Determine the continuum Dirichlet nodes // ///////////////////////////////////////////////////// VectorType coarseDirichletValues(complex.continua_["continuum"].grid_->size(0, dim)); - AmiraMeshReader<int>::readFunction(coarseDirichletValues, path + dirichletValuesFile); + AmiraMeshReader<GridType>::readFunction(coarseDirichletValues, path + dirichletValuesFile); - LevelBoundaryPatch<GridType> coarseDirichletBoundary; - coarseDirichletBoundary.setup(*complex.continua_["continuum"].grid_, 0); - readBoundaryPatch(coarseDirichletBoundary, path + dirichletNodesFile); + LevelBoundaryPatch coarseDirichletBoundary; + coarseDirichletBoundary.setup(complex.continua_["continuum"].grid_->levelView(0)); + readBoundaryPatch<GridType>(coarseDirichletBoundary, path + dirichletNodesFile); - LeafBoundaryPatch<GridType> dirichletBoundary(*complex.continua_["continuum"].grid_); - PatchProlongator<GridType>::prolong(coarseDirichletBoundary, dirichletBoundary); + LeafBoundaryPatch dirichletBoundary(complex.continua_["continuum"].grid_->leafView()); + BoundaryPatchProlongator<GridType>::prolong(coarseDirichletBoundary, dirichletBoundary); complex.continua_["continuum"].dirichletBoundary_ = dirichletBoundary; BitSetVector<dim> dirichletNodes( complex.continua_["continuum"].grid_->size(dim) ); @@ -244,10 +247,10 @@ int main (int argc, char *argv[]) try complex.couplings_[interfaceName].rodInterfaceBoundary_.setup(*complex.rods_["rod"].grid_, rodCouplingBitfield); // then for the continuum - LevelBoundaryPatch<GridType> coarseInterfaceBoundary(*complex.continua_["continuum"].grid_, 0); - readBoundaryPatch(coarseInterfaceBoundary, path + interfaceNodesFile); + LevelBoundaryPatch coarseInterfaceBoundary(complex.continua_["continuum"].grid_->levelView(0)); + readBoundaryPatch<GridType>(coarseInterfaceBoundary, path + interfaceNodesFile); - PatchProlongator<GridType>::prolong(coarseInterfaceBoundary, complex.couplings_[interfaceName].continuumInterfaceBoundary_); + BoundaryPatchProlongator<GridType>::prolong(coarseInterfaceBoundary, complex.couplings_[interfaceName].continuumInterfaceBoundary_); // ////////////////////////////////////////// // Assemble 3d linear elasticity problem @@ -559,7 +562,7 @@ int main (int argc, char *argv[]) try iAsAscii << i; std::string iSolFilename = tmpPath + "intermediate3dSolution_" + iAsAscii.str(); - AmiraMeshReader<int>::readFunction(intermediateSol3d, iSolFilename); + AmiraMeshReader<GridType>::readFunction(intermediateSol3d, iSolFilename); // Read rod solution from file iSolFilename = tmpPath + "intermediateRodSolution_" + iAsAscii.str(); diff --git a/harmonicmaps-eoc.cc b/harmonicmaps-eoc.cc index 78e4ccd5c8228ff2691a3e108794471fb0b4f8d8..7fab78c788432814cd572d7554f2c17bf24235fc 100644 --- a/harmonicmaps-eoc.cc +++ b/harmonicmaps-eoc.cc @@ -57,7 +57,7 @@ void solve (const shared_ptr<GridType>& grid, BitSetVector<1> allNodes(grid->size(dim)); allNodes.setAll(); - LeafBoundaryPatch<GridType> dirichletBoundary(*grid, allNodes); + BoundaryPatch<GridType::LeafGridView> dirichletBoundary(grid->leafView(), allNodes); BitSetVector<blocksize> dirichletNodes(grid->size(dim)); for (int i=0; i<dirichletNodes.size(); i++) diff --git a/harmonicmaps.cc b/harmonicmaps.cc index 9765983728bf946234d872ef803ce7c3ef87ef2c..eacb9927fb3657c1b237c20ce7154b911bd187d8 100644 --- a/harmonicmaps.cc +++ b/harmonicmaps.cc @@ -130,7 +130,7 @@ int main (int argc, char *argv[]) try BitSetVector<1> allNodes(grid.size(dim)); allNodes.setAll(); - LeafBoundaryPatch<GridType> dirichletBoundary(grid, allNodes); + BoundaryPatch<GridType::LeafGridView> dirichletBoundary(grid.leafView(), allNodes); BitSetVector<blocksize> dirichletNodes(grid.size(dim)); for (int i=0; i<dirichletNodes.size(); i++)