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