diff --git a/dune/gfe/cosseratenergystiffness.hh b/dune/gfe/cosseratenergystiffness.hh index 755f749bb789a4a89661704c1f5037510a024941..93de487c793f15eb96a79e814521a75cdb9ba5d2 100644 --- a/dune/gfe/cosseratenergystiffness.hh +++ b/dune/gfe/cosseratenergystiffness.hh @@ -20,12 +20,14 @@ //#define QUADRATIC_MEMBRANE_ENERGY -template<class GridView, class LocalFiniteElement, int dim, class field_type=double> +template<class Basis, int dim, class field_type=double> class CosseratEnergyLocalStiffness - : public LocalGeodesicFEStiffness<GridView,LocalFiniteElement,RigidBodyMotion<field_type,dim> > + : public LocalGeodesicFEStiffness<Basis,RigidBodyMotion<field_type,dim> > { // grid types - typedef typename GridView::Grid::ctype DT; + typedef typename Basis::GridView GridView; + typedef typename Basis::LocalView::Tree::FiniteElement LocalFiniteElement; + typedef typename GridView::ctype DT; typedef RigidBodyMotion<field_type,dim> TargetSpace; typedef typename TargetSpace::ctype RT; typedef typename GridView::template Codim<0>::Entity Entity; @@ -294,11 +296,11 @@ public: const Dune::VirtualFunction<Dune::FieldVector<double,gridDim>, Dune::FieldVector<double,3> >* neumannFunction_; }; -template <class GridView, class LocalFiniteElement, int dim, class field_type> -typename CosseratEnergyLocalStiffness<GridView,LocalFiniteElement,dim,field_type>::RT -CosseratEnergyLocalStiffness<GridView,LocalFiniteElement,dim,field_type>:: +template <class Basis, int dim, class field_type> +typename CosseratEnergyLocalStiffness<Basis,dim,field_type>::RT +CosseratEnergyLocalStiffness<Basis,dim,field_type>:: energy(const Entity& element, - const LocalFiniteElement& localFiniteElement, + const typename Basis::LocalView::Tree::FiniteElement& localFiniteElement, const std::vector<RigidBodyMotion<field_type,dim> >& localSolution) const { assert(element.type() == localFiniteElement.type());