#ifndef ASSEMBLERS_HH #define ASSEMBLERS_HH #include <dune/common/bitsetvector.hh> #include <dune/common/function.hh> #include <dune/common/fvector.hh> #include <dune/common/shared_ptr.hh> #include <dune/istl/bvector.hh> #include <dune/fufem/assemblers/assembler.hh> #include <dune/tectonic/globalnonlinearity.hh> template <class GridView, class LocalVectorType, class AssemblerType> void assemble_neumann(GridView const &gridView, AssemblerType const &assembler, Dune::BitSetVector<1> const &neumannNodes, Dune::BlockVector<LocalVectorType> &f, Dune::VirtualFunction<double, double> const &neumann, double time); template <class GridView, class LocalVectorType, class AssemblerType> Dune::shared_ptr<Dune::BlockVector<Dune::FieldVector<double, 1>>> assemble_frictional(GridView const &gridView, AssemblerType const &assembler, Dune::BitSetVector<1> const &frictionalNodes); template <class MatrixType, class VectorType> Dune::shared_ptr<Dune::GlobalNonlinearity<MatrixType, VectorType>> assemble_nonlinearity( Dune::BitSetVector<1> const &frictionalNodes, Dune::BlockVector<Dune::FieldVector<double, 1>> const &nodalIntegrals, FrictionData const &fd); #endif