Skip to content
Snippets Groups Projects
Forked from agnumpde / dune-tectonic
754 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
assemblers.hh 1.33 KiB
#ifndef ASSEMBLERS_HH
#define ASSEMBLERS_HH

#include <dune/common/bitsetvector.hh>
#include <dune/common/function.hh>
#include <dune/common/fvector.hh>
#include <dune/common/parametertree.hh>
#include <dune/common/shared_ptr.hh>
#include <dune/istl/bvector.hh>

#include <dune/tectonic/globalnonlinearity.hh>

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,
                      Dune::VirtualFunction<double, double> const &neumann,
                      double time);

template <class GridType, class GridView, class LocalVectorType, class FEBasis>
Dune::shared_ptr<Dune::BlockVector<Dune::FieldVector<double, 1>>>
assemble_frictional(GridView const &gridView, FEBasis const &feBasis,
                    Dune::BitSetVector<1> const &frictionalNodes);

template <class MatrixType, class VectorType>
Dune::shared_ptr<Dune::GlobalNonlinearity<MatrixType, VectorType> const>
assemble_nonlinearity(
    Dune::ParameterTree const &parset,
    Dune::shared_ptr<Dune::BlockVector<Dune::FieldVector<double, 1>>>
        nodalIntegrals,
    Dune::shared_ptr<Dune::BlockVector<Dune::FieldVector<double, 1>>> state,
    double h);

#endif