diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index c46797a9ced89dd47b7bf0ed6180d5c514bc51db..2538ccc5b1500c883d19c59fb55b517d594937ce 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -115,13 +115,12 @@ void setup_boundary(GridType const &grid, } // Assembles Neumann boundary term in f -template <class GridType, class LocalVectorType, class FEBasis> -void assemble_neumann(GridType const &grid, FEBasis const &feBasis, +template <class GridType, class GridView, class LocalVectorType, class FEBasis> +void assemble_neumann(GridView const &gridView, FEBasis const &feBasis, Dune::BitSetVector<1> const &neumannNodes, Dune::BlockVector<LocalVectorType> & f) { // constant sample function on neumann boundary - BoundaryPatch<typename GridType::LeafGridView> neumannBoundary( - grid.leafView(), neumannNodes); + BoundaryPatch<GridView> neumannBoundary(gridView, neumannNodes); LocalVectorType SampleVector; // FIXME: random values SampleVector[0] = 1; @@ -138,13 +137,12 @@ void assemble_neumann(GridType const &grid, FEBasis const &feBasis, } // Assembles constant 1-function on frictional boundary in nodalIntegrals -template <class GridType, class LocalVectorType, class FEBasis> +template <class GridType, class GridView, class LocalVectorType, class FEBasis> void assemble_frictional( - GridType const &grid, FEBasis const &feBasis, + GridView const &gridView, FEBasis const &feBasis, Dune::BitSetVector<1> const &frictionalNodes, std::vector<Dune::FieldVector<double, 1>> &nodalIntegrals) { - BoundaryPatch<typename GridType::LeafGridView> frictionalBoundary( - grid.leafView(), frictionalNodes); + BoundaryPatch<GridView> frictionalBoundary(gridView, frictionalNodes); ConstantFunction<LocalVectorType, Dune::FieldVector<double, 1>> constantOneFunction(1); NeumannBoundaryAssembler<GridType, Dune::FieldVector<double, 1>> @@ -206,13 +204,14 @@ int main() { VectorType u2 = u1; VectorType f(grid.size(grid.maxLevel(), dim)); - assemble_neumann<GridType, SmallVector, P1Basis>(grid, p1Basis, - neumannNodes, f); + assemble_neumann<GridType, GridType::LeafGridView, SmallVector, P1Basis>( + grid.leafView(), p1Basis, neumannNodes, f); { std::vector<Dune::FieldVector<double, 1>> nodalIntegrals; - assemble_frictional<GridType, SmallVector, P1Basis>( - grid, p1Basis, frictionalNodes, nodalIntegrals); + assemble_frictional<GridType, GridType::LeafGridView, SmallVector, + P1Basis>(grid.leafView(), p1Basis, frictionalNodes, + nodalIntegrals); // TODO: populate on S_F std::vector<double> normalStress;