diff --git a/test/harmonicenergytest.cc b/test/harmonicenergytest.cc index 54f8b48ea9a9ca40b16f6fd43a70cb400a52defb..70d292b6029c15b5f5a3cd0e633c596a8dd6bd97 100644 --- a/test/harmonicenergytest.cc +++ b/test/harmonicenergytest.cc @@ -2,6 +2,8 @@ #include <dune/grid/uggrid.hh> +#include <dune/localfunctions/lagrange/pqkfactory.hh> + #include <dune/gfe/unitvector.hh> #include <dune/gfe/harmonicenergystiffness.hh> @@ -16,7 +18,13 @@ using namespace Dune; template <class GridType> void testEnergy(const GridType* grid, const std::vector<TargetSpace>& coefficients) { - HarmonicEnergyLocalStiffness<typename GridType::LeafGridView,TargetSpace> assembler; + PQkLocalFiniteElementCache<double,double,GridType::dimension,1> feCache; + typedef typename PQkLocalFiniteElementCache<double,double,GridType::dimension,1>::FiniteElementType LocalFiniteElement; + + //LocalGeodesicFEFunction<domainDim,double,LocalFiniteElement,TargetSpace> f(feCache.get(element),corners); + + + HarmonicEnergyLocalStiffness<typename GridType::LeafGridView,LocalFiniteElement,TargetSpace> assembler; std::vector<TargetSpace> rotatedCoefficients(coefficients.size()); for (int i=0; i<10; i++) { @@ -32,6 +40,7 @@ void testEnergy(const GridType* grid, const std::vector<TargetSpace>& coefficien } std::cout << "energy: " << assembler.energy(*grid->template leafbegin<0>(), + feCache.get(grid->template leafbegin<0>()->type()), rotatedCoefficients) << std::endl; std::vector<typename TargetSpace::EmbeddedTangentVector> rotatedGradient; @@ -52,7 +61,11 @@ void testEnergy(const GridType* grid, const std::vector<TargetSpace>& coefficien template <class GridType> void testGradientOfEnergy(const GridType* grid, const std::vector<TargetSpace>& coefficients) { - HarmonicEnergyLocalStiffness<typename GridType::LeafGridView,TargetSpace> assembler; + PQkLocalFiniteElementCache<double,double,GridType::dimension,1> feCache; + typedef typename PQkLocalFiniteElementCache<double,double,GridType::dimension,1>::FiniteElementType LocalFiniteElement; + + //LocalGeodesicFEFunction<domainDim,double,LocalFiniteElement,TargetSpace> f(feCache.get(element),corners); + HarmonicEnergyLocalStiffness<typename GridType::LeafGridView,LocalFiniteElement,TargetSpace> assembler; std::vector<typename TargetSpace::EmbeddedTangentVector> gradient; assembler.assembleEmbeddedGradient(*grid->template leafbegin<0>(),