From 433e1b8fd0fc8efa1427f20f480a77bd57a040d3 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Wed, 14 Jan 2015 21:31:16 +0000
Subject: [PATCH] [cleanup] Remove the intermediate 'gridPtr' variable

[[Imported from SVN: r10011]]
---
 src/harmonicmaps.cc | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/src/harmonicmaps.cc b/src/harmonicmaps.cc
index 64000706..c0aa944c 100644
--- a/src/harmonicmaps.cc
+++ b/src/harmonicmaps.cc
@@ -127,7 +127,7 @@ int main (int argc, char *argv[]) try
     // ///////////////////////////////////////
     typedef std::conditional<dim==1,OneDGrid,UGGrid<dim> >::type GridType;
 
-    shared_ptr<GridType> gridPtr;
+    shared_ptr<GridType> grid;
     FieldVector<double,dim> lower(0), upper(1);
 
     if (parameterSet.get<bool>("structuredGrid")) {
@@ -136,31 +136,29 @@ int main (int argc, char *argv[]) try
         upper = parameterSet.get<FieldVector<double,dim> >("upper");
 
         array<unsigned int,dim> elements = parameterSet.get<array<unsigned int,dim> >("elements");
-        gridPtr = StructuredGridFactory<GridType>::createCubeGrid(lower, upper, elements);
+        grid = StructuredGridFactory<GridType>::createCubeGrid(lower, upper, elements);
 
     } else {
 
         std::string path                = parameterSet.get<std::string>("path");
         std::string gridFile            = parameterSet.get<std::string>("gridFile");
 
-        gridPtr = shared_ptr<GridType>(AmiraMeshReader<GridType>::read(path + gridFile));
+        grid = shared_ptr<GridType>(AmiraMeshReader<GridType>::read(path + gridFile));
     }
 
-    GridType& grid = *gridPtr.get();
+    grid->globalRefine(numLevels-1);
 
-    grid.globalRefine(numLevels-1);
-
-    SolutionType x(grid.size(dim));
+    SolutionType x(grid->size(dim));
 
     // /////////////////////////////////////////
     //   Read Dirichlet values
     // /////////////////////////////////////////
 
-    BitSetVector<1> allNodes(grid.size(dim));
+    BitSetVector<1> allNodes(grid->size(dim));
     allNodes.setAll();
-    BoundaryPatch<GridType::LeafGridView> dirichletBoundary(grid.leafGridView(), allNodes);
+    BoundaryPatch<GridType::LeafGridView> dirichletBoundary(grid->leafGridView(), allNodes);
 
-    BitSetVector<blocksize> dirichletNodes(grid.size(dim));
+    BitSetVector<blocksize> dirichletNodes(grid->size(dim));
     for (size_t i=0; i<dirichletNodes.size(); i++)
         dirichletNodes[i] = dirichletBoundary.containsVertex(i);
 
@@ -169,7 +167,7 @@ int main (int argc, char *argv[]) try
     // //////////////////////////
 
     typedef P1NodalBasis<typename GridType::LeafGridView,double> FEBasis;
-    FEBasis feBasis(grid.leafGridView());
+    FEBasis feBasis(grid->leafGridView());
 
     std::string lambda = std::string("lambda x: (") + parameterSet.get<std::string>("initialIterate") + std::string(")");
     PythonFunction<FieldVector<double,dim>, TargetSpace::CoordinateType > pythonInitialIterate(Python::evaluate(lambda));
@@ -195,14 +193,14 @@ int main (int argc, char *argv[]) try
                                   FEBasis::LocalFiniteElement,
                                   TargetSpace> localGFEADOLCStiffness(&harmonicEnergyADOLCLocalStiffness);
 
-    GeodesicFEAssembler<FEBasis,TargetSpace> assembler(grid.leafGridView(), &localGFEADOLCStiffness);
+    GeodesicFEAssembler<FEBasis,TargetSpace> assembler(grid->leafGridView(), &localGFEADOLCStiffness);
 
     // /////////////////////////////////////////////////
     //   Create a Riemannian trust-region solver
     // /////////////////////////////////////////////////
 
     RiemannianTrustRegionSolver<GridType,TargetSpace> solver;
-    solver.setup(grid,
+    solver.setup(*grid,
                  &assembler,
                  x,
                  dirichletNodes,
@@ -257,7 +255,7 @@ int main (int argc, char *argv[]) try
 #endif
     }
 
-    VTKWriter<GridType::LeafGridView> vtkWriter(grid.leafGridView());
+    VTKWriter<GridType::LeafGridView> vtkWriter(grid->leafGridView());
     Dune::shared_ptr<VTKBasisGridFunction<FEBasis,EmbeddedVectorType> > vtkVectorField
         = Dune::shared_ptr<VTKBasisGridFunction<FEBasis,EmbeddedVectorType> >
                (new VTKBasisGridFunction<FEBasis,EmbeddedVectorType>(feBasis, xEmbedded, "orientation"));
@@ -276,7 +274,7 @@ int main (int argc, char *argv[]) try
     // //////////////////////////////////////////////////////////////////////
 
     typedef P1NodalBasis<GridType::LeafGridView,double> FEBasis;
-    FEBasis basis(grid.leafGridView());
+    FEBasis basis(grid->leafGridView());
     OperatorAssembler<FEBasis,FEBasis> operatorAssembler(basis, basis);
 
     LaplaceAssembler<GridType, FEBasis::LocalFiniteElement, FEBasis::LocalFiniteElement> laplaceLocalAssembler;
-- 
GitLab