From b1a6228e97b444fbbc96632fb6898bfea4bf0386 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Fri, 16 Jan 2015 18:46:48 +0000
Subject: [PATCH] Allow to set the parameters of the skyrmion energy from the
 parameter file

[[Imported from SVN: r10014]]
---
 dune/gfe/chiralskyrmionenergy.hh | 10 ++++++++--
 src/harmonicmaps.cc              |  2 +-
 src/harmonicmaps.parset          | 11 ++++++++++-
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/dune/gfe/chiralskyrmionenergy.hh b/dune/gfe/chiralskyrmionenergy.hh
index 55cc3201..99ee3ca9 100644
--- a/dune/gfe/chiralskyrmionenergy.hh
+++ b/dune/gfe/chiralskyrmionenergy.hh
@@ -31,6 +31,12 @@ class ChiralSkyrmionEnergy
 
 public:
 
+  ChiralSkyrmionEnergy(const Dune::ParameterTree& parameters)
+  {
+    h_     = parameters.template get<double>("h");
+    kappa_ = parameters.template get<double>("kappa");
+  }
+
   //! Dimension of a tangent space
   enum { blocksize = TargetSpace::TangentVector::dimension };
 
@@ -39,8 +45,8 @@ public:
              const LocalFiniteElement& localFiniteElement,
              const std::vector<TargetSpace>& localConfiguration) const;
 
-  field_type h_ = 3;
-  field_type kappa_ = 1;
+  field_type h_;
+  field_type kappa_;
 };
 
 template <class GridView, class LocalFiniteElement, class field_type>
diff --git a/src/harmonicmaps.cc b/src/harmonicmaps.cc
index e5fe7ab3..fa8de884 100644
--- a/src/harmonicmaps.cc
+++ b/src/harmonicmaps.cc
@@ -198,7 +198,7 @@ int main (int argc, char *argv[]) try
     } else if (energy == "chiral_skyrmion")
     {
 
-      localEnergy.reset(new GFE::ChiralSkyrmionEnergy<GridType::LeafGridView, FEBasis::LocalFiniteElement, adouble>);
+      localEnergy.reset(new GFE::ChiralSkyrmionEnergy<GridType::LeafGridView, FEBasis::LocalFiniteElement, adouble>(parameterSet.sub("energyParameters")));
 
     } else
       DUNE_THROW(Exception, "Unknown energy type '" << energy << "'");
diff --git a/src/harmonicmaps.parset b/src/harmonicmaps.parset
index 2e3892da..2fae1702 100644
--- a/src/harmonicmaps.parset
+++ b/src/harmonicmaps.parset
@@ -54,8 +54,17 @@ energy = chiral_skyrmion
 
 structuredGrid = true
 lower = -10 -10
-upper =  10  10
+upper =  10 10
 elements = 100 100
 
+[energyParameters]
+
+h = 1
+
+kappa = 1
+
+[]
+
+
 # Inverse stereographic projection
 initialIterate = "[2*x[0] / (x[0]*x[0]+x[1]*x[1]+1), 2*x[1] / (x[0]*x[0]+x[1]*x[1]+1), (x[0]*x[0]+x[1]*x[1]-1)/ (x[0]*x[0]+x[1]*x[1]+1)]"
-- 
GitLab