From 7584df4c3b0dae779ab29754dacae69a8acd9123 Mon Sep 17 00:00:00 2001 From: Oliver Sander <oliver.sander@tu-dresden.de> Date: Tue, 18 Dec 2018 14:23:24 +0100 Subject: [PATCH] Improve call to ChiralSkyrmionEnergy --- src/harmonicmaps.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/harmonicmaps.cc b/src/harmonicmaps.cc index c7530ee4..9ba0c2cd 100644 --- a/src/harmonicmaps.cc +++ b/src/harmonicmaps.cc @@ -299,8 +299,17 @@ int main (int argc, char *argv[]) } else if (energy == "chiral_skyrmion") { - - localEnergy.reset(new GFE::ChiralSkyrmionEnergy<FEBasis, LocalInterpolationRule, adouble>(parameterSet.sub("energyParameters"))); +// // Doesn't work: we are not inside of a template +// if constexpr (std::is_same<TargetSpace, UnitVector<double,3> >::value) +// { + if (parameterSet["interpolationMethod"] == "geodesic") + localEnergy.reset(new GFE::ChiralSkyrmionEnergy<FEBasis, GeodesicInterpolationRule, adouble>(parameterSet.sub("energyParameters"))); + else if (parameterSet["interpolationMethod"] == "projected") + localEnergy.reset(new GFE::ChiralSkyrmionEnergy<FEBasis, ProjectedInterpolationRule, adouble>(parameterSet.sub("energyParameters"))); + else + DUNE_THROW(Exception, "Unknown interpolation method " << parameterSet["interpolationMethod"] << " requested!"); +// } else +// DUNE_THROW(Exception, "Build program with TargetSpace = UnitVector<3> for the ChiralSkyrmion energy!"); } else DUNE_THROW(Exception, "Unknown energy type '" << energy << "'"); -- GitLab