From 124ab62a91685f88507922b72497ad5307d5514a Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Wed, 21 Apr 2010 21:21:29 +0000 Subject: [PATCH] a test to compare SO(2) and S^1, which should be the same, but implemented differently [[Imported from SVN: r5919]] --- test/Makefile.am | 4 +++- test/unitcircletest.cc | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 test/unitcircletest.cc diff --git a/test/Makefile.am b/test/Makefile.am index d11177b9..8fdc5dc7 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -5,7 +5,7 @@ LDADD = $(UG_LDFLAGS) $(AMIRAMESH_LDFLAGS) $(UG_LIBS) $(AMIRAMESH_LIBS) AM_CPPFLAGS += $(UG_CPPFLAGS) $(AMIRAMESH_CPPFLAGS) -Wall check_PROGRAMS = frameinvariancetest rotationtest fdcheck localgeodesicfefunctiontest \ - harmonicenergytest averagedistanceassemblertest + harmonicenergytest averagedistanceassemblertest unitcircletest frameinvariancetest_SOURCES = frameinvariancetest.cc @@ -19,6 +19,8 @@ harmonicenergytest_SOURCES = harmonicenergytest.cc averagedistanceassemblertest_SOURCES = averagedistanceassemblertest.cc +unitcircletest_SOURCES = unitcircletest.cc + # don't follow the full GNU-standard # we need automake 1.5 AUTOMAKE_OPTIONS = foreign 1.5 diff --git a/test/unitcircletest.cc b/test/unitcircletest.cc new file mode 100644 index 00000000..425f4779 --- /dev/null +++ b/test/unitcircletest.cc @@ -0,0 +1,31 @@ +#include <config.h> + +#include <dune/src/unitvector.hh> +#include <dune/src/rotation.hh> + + +using namespace Dune; + +int main() +{ + // Set up elements of S^1 + FieldVector<double,2> v; + v[0] = 1; v[1] = 1; + UnitVector<2> uv1; uv1 = v; + v[0] = 0; v[1] = 1; + UnitVector<2> uv0; uv0 = v; + + // Set up elements of SO(2) + Rotation<2,double> ro1(M_PI/4); + Rotation<2,double> ro0(M_PI/2); + + std::cout << UnitVector<2>::distance(uv0, uv1) << std::endl; + std::cout << Rotation<2,double>::distance(ro0, ro1) << std::endl; + + std::cout << UnitVector<2>::derivativeOfDistanceSquaredWRTSecondArgument(uv0, uv1) << std::endl; + std::cout << Rotation<2,double>::derivativeOfDistanceSquaredWRTSecondArgument(ro0, ro1) << std::endl; + + std::cout << UnitVector<2>::secondDerivativeOfDistanceSquaredWRTSecondArgument(uv0, uv1) << std::endl; + std::cout << Rotation<2,double>::secondDerivativeOfDistanceSquaredWRTSecondArgument(ro0, ro1) << std::endl; +} + -- GitLab