Skip to content
Snippets Groups Projects
frictioncouplingpair.hh 1.12 KiB
Newer Older
podlesny's avatar
.
podlesny committed
#ifndef SRC_FRICTIONCOUPLINGPAIR_HH
#define SRC_FRICTIONCOUPLINGPAIR_HH

#include <dune/fufem/geometry/convexpolyhedron.hh>
#include <dune/contact/common/couplingpair.hh>
#include <dune/tectonic/globalfrictiondata.hh>

template <class GridType, class LocalVectorType, class field_type = double>
class FrictionCouplingPair : public Dune::Contact::CouplingPair<GridType, GridType, field_type>{
private:
    static const int dim = GridType::dimensionworld;

    using Base = Dune::Contact::CouplingPair<GridType,GridType,field_type>;
    using LocalVector = LocalVectorType;

    // friction data
    std::shared_ptr<ConvexPolyhedron<LocalVector>> weakeningPatch_;
    std::shared_ptr<GlobalFrictionData<dim>> frictionData_;

public:
  void setWeakeningPatch(std::shared_ptr<ConvexPolyhedron<LocalVector>> weakeningPatch) {
      weakeningPatch_ = weakeningPatch;
  }

  void setFrictionData(std::shared_ptr<GlobalFrictionData<dim>> frictionData) {
      frictionData_ = frictionData;
  }

  const auto& weakeningPatch() const {
      return *weakeningPatch_;
  }

  const auto& frictionData() const {
      return *frictionData_;
  }
};
#endif