From 304e015a3d320133febdce37b67a1b69268b341a Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Mon, 6 Feb 2012 10:02:02 +0000 Subject: [PATCH] factor out grid creation into a separate method [[Imported from SVN: r8402]] --- test/cosseratenergytest.cc | 66 +++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 37 deletions(-) diff --git a/test/cosseratenergytest.cc b/test/cosseratenergytest.cc index c6b8ec11..edaaffe9 100644 --- a/test/cosseratenergytest.cc +++ b/test/cosseratenergytest.cc @@ -24,6 +24,33 @@ typedef RigidBodyMotion<double,3> TargetSpace; using namespace Dune; +// //////////////////////////////////////////////////////// +// Make a test grid consisting of a single simplex +// //////////////////////////////////////////////////////// + +template <class GridType> +std::auto_ptr<GridType> makeSingleSimplexGrid() +{ + static const int domainDim = GridType::dimension; + GridFactory<GridType> factory; + + FieldVector<double,dim> pos(0); + factory.insertVertex(pos); + + for (int i=0; i<domainDim+1; i++) { + pos = 0; + pos[i] = 1; + factory.insertVertex(pos); + } + + std::vector<unsigned int> v(domainDim+1); + for (int i=0; i<domainDim+1; i++) + v[i] = i; + factory.insertElement(GeometryType(GeometryType::simplex,dim), v); + + return std::auto_ptr<GridType>(factory.createGrid()); +} + template <int domainDim,class LocalFiniteElement> Tensor3<double,3,3,3> evaluateDerivativeFD(const LocalGeodesicFEFunction<domainDim,double,LocalFiniteElement,TargetSpace>& f, @@ -185,24 +212,7 @@ void testFrameInvariance() // //////////////////////////////////////////////////////// typedef UGGrid<domainDim> GridType; - - GridFactory<GridType> factory; - - FieldVector<double,dim> pos(0); - factory.insertVertex(pos); - - for (int i=0; i<domainDim+1; i++) { - pos = 0; - pos[i] = 1; - factory.insertVertex(pos); - } - - std::vector<unsigned int> v(domainDim+1); - for (int i=0; i<domainDim+1; i++) - v[i] = i; - factory.insertElement(GeometryType(GeometryType::simplex,dim), v); - - const std::auto_ptr<GridType> grid(factory.createGrid()); + const std::auto_ptr<GridType> grid = makeSingleSimplexGrid<GridType>(); // ////////////////////////////////////////////////////////// // Test whether the energy is invariant under isometries @@ -239,26 +249,8 @@ void testEnergyGradient() // //////////////////////////////////////////////////////// typedef UGGrid<domainDim> GridType; + const std::auto_ptr<GridType> grid = makeSingleSimplexGrid<GridType>(); - GridFactory<GridType> factory; - - FieldVector<double,dim> pos(0); - factory.insertVertex(pos); - - for (int i=0; i<domainDim+1; i++) { - pos = 0; - pos[i] = 1; - factory.insertVertex(pos); - } - - std::vector<unsigned int> v(domainDim+1); - for (int i=0; i<domainDim+1; i++) - v[i] = i; - factory.insertElement(GeometryType(GeometryType::simplex,dim), v); - - const std::auto_ptr<GridType> grid(factory.createGrid()); - - //////////////////////////////////////////////////////////////////////////// // Create a local assembler object //////////////////////////////////////////////////////////////////////////// -- GitLab