diff --git a/src/finite-strain-elasticity.cc b/src/finite-strain-elasticity.cc
index 5ee163bbc1e62f7c9ec71b54e122006544249898..1bd5fd1495c3726caa10b149a0ea775ef82b7f69 100644
--- a/src/finite-strain-elasticity.cc
+++ b/src/finite-strain-elasticity.cc
@@ -33,6 +33,9 @@
 
 #include <dune/gfe/localadolcstiffness.hh>
 #include <dune/gfe/stvenantkirchhoffenergy.hh>
+#include <dune/gfe/henckyenergy.hh>
+#include <dune/gfe/exphenckyenergy.hh>
+#include <dune/gfe/neohookeenergy.hh>
 #include <dune/gfe/neumannenergy.hh>
 #include <dune/gfe/sumenergy.hh>
 #include <dune/gfe/feassembler.hh>
@@ -249,9 +252,33 @@ int main (int argc, char *argv[]) try
     }
 
     // Assembler using ADOL-C
-    auto elasticEnergy = std::make_shared<StVenantKirchhoffEnergy<GridView,
-                                                                  FEBasis::LocalView::Tree::FiniteElement,
-                                                                  adouble> >(materialParameters);
+    std::cout << "Selected energy is: " << parameterSet.get<std::string>("energy") << std::endl;
+    std::shared_ptr<LocalFEStiffness<GridView,
+                                     FEBasis::LocalView::Tree::FiniteElement,
+                                     std::vector<Dune::FieldVector<adouble, 3> > > > elasticEnergy;
+
+    if (parameterSet.get<std::string>("energy") == "stvenantkirchhoff")
+      elasticEnergy = std::make_shared<StVenantKirchhoffEnergy<GridView,
+                                                               FEBasis::LocalView::Tree::FiniteElement,
+                                                               adouble> >(materialParameters);
+
+    if (parameterSet.get<std::string>("energy") == "neohooke")
+      elasticEnergy = std::make_shared<NeoHookeEnergy<GridView,
+                                                      FEBasis::LocalView::Tree::FiniteElement,
+                                                      adouble> >(materialParameters);
+
+    if (parameterSet.get<std::string>("energy") == "hencky")
+      elasticEnergy = std::make_shared<HenckyEnergy<GridView,
+                                                    FEBasis::LocalView::Tree::FiniteElement,
+                                                    adouble> >(materialParameters);
+
+    if (parameterSet.get<std::string>("energy") == "exphencky")
+      elasticEnergy = std::make_shared<ExpHenckyEnergy<GridView,
+                                                       FEBasis::LocalView::Tree::FiniteElement,
+                                                       adouble> >(materialParameters);
+
+    if(!elasticEnergy)
+      DUNE_THROW(Exception, "Error: Selected energy not available!");
 
     auto neumannEnergy = std::make_shared<NeumannEnergy<GridView,
                                                         FEBasis::LocalView::Tree::FiniteElement,