From f8a200bb45711316fee622af2069750754f810e7 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Thu, 28 Nov 2013 09:18:00 +0000
Subject: [PATCH] Do the right thing if the 'neumannValues' parameter is not
 given

[[Imported from SVN: r9551]]
---
 cosserat-continuum.cc | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/cosserat-continuum.cc b/cosserat-continuum.cc
index 83bf4cd1..88709970 100644
--- a/cosserat-continuum.cc
+++ b/cosserat-continuum.cc
@@ -256,8 +256,10 @@ int main (int argc, char *argv[]) try
     // ////////////////////////////////////////////////////////////
 
     const ParameterTree& materialParameters = parameterSet.sub("materialParameters");
-    NeumannFunction neumannFunction(parameterSet.get<FieldVector<double,3> >("neumannValues"),
-                                    homotopyParameter);
+    shared_ptr<NeumannFunction> neumannFunction;
+    if (parameterSet.hasKey("neumannValues"))
+        neumannFunction = make_shared<NeumannFunction>(parameterSet.get<FieldVector<double,3> >("neumannValues"),
+                                                       homotopyParameter);
 
     std::cout << "Material parameters:" << std::endl;
     materialParameters.report();
@@ -267,7 +269,7 @@ int main (int argc, char *argv[]) try
                                  P1Basis::LocalFiniteElement,
                                  3> cosseratEnergyLocalStiffness(materialParameters,
                                                                  &neumannBoundary,
-                                                                 &neumannFunction);
+                                                                 neumannFunction.get());
 
     GeodesicFEAssembler<P1Basis,TargetSpace> assembler(grid->leafView(),
                                                                       &cosseratEnergyLocalStiffness);
@@ -278,7 +280,7 @@ int main (int argc, char *argv[]) try
                                  P1Basis::LocalFiniteElement,
                                  3,adouble> cosseratEnergyADOLCLocalStiffness(materialParameters,
                                                                               &neumannBoundary,
-                                                                 &neumannFunction);
+                                                                              neumannFunction.get());
     LocalGeodesicFEADOLCStiffness<GridType::LeafGridView,
                                   P1Basis::LocalFiniteElement,
                                   TargetSpace> localGFEADOLCStiffness(&cosseratEnergyADOLCLocalStiffness);
-- 
GitLab