From 34d046ef4a8a8db4a532dd370c7e3c52bb2bc0f8 Mon Sep 17 00:00:00 2001
From: Oliver Sander <oliver.sander@tu-dresden.de>
Date: Wed, 24 May 2023 06:00:09 +0200
Subject: [PATCH] Move all implementations of spaces into a dedicated directory

---
 CHANGELOG.md                                      |  3 +++
 dune/gfe/CMakeLists.txt                           |  2 ++
 dune/gfe/cosseratenergystiffness.hh               |  4 ++--
 dune/gfe/cosseratrodenergy.hh                     |  2 +-
 dune/gfe/cosseratvtkreader.hh                     |  2 +-
 dune/gfe/cosseratvtkwriter.hh                     |  2 +-
 dune/gfe/geodesicfeassemblerwrapper.hh            |  4 ++--
 dune/gfe/localgeodesicfefunction.hh               |  2 +-
 dune/gfe/localintegralenergy.hh                   |  4 ++--
 dune/gfe/localprojectedfefunction.hh              |  6 +++---
 dune/gfe/localquickanddirtyfefunction.hh          |  2 +-
 dune/gfe/nonplanarcosseratshellenergy.hh          |  4 ++--
 dune/gfe/polardecomposition.hh                    |  2 +-
 dune/gfe/simofoxenergy.hh                         |  4 ++--
 dune/gfe/spaces/CMakeLists.txt                    | 11 +++++++++++
 dune/gfe/{ => spaces}/hyperbolichalfspacepoint.hh |  4 ++--
 dune/gfe/{ => spaces}/orthogonalmatrix.hh         |  6 +++---
 dune/gfe/{ => spaces}/productmanifold.hh          |  4 ++--
 dune/gfe/{ => spaces}/quaternion.hh               |  4 ++--
 dune/gfe/{ => spaces}/realtuple.hh                |  4 ++--
 dune/gfe/{ => spaces}/rigidbodymotion.hh          |  8 ++++----
 dune/gfe/{ => spaces}/rotation.hh                 |  8 ++++----
 dune/gfe/{ => spaces}/unitvector.hh               |  4 ++--
 dune/gfe/surfacecosseratenergy.hh                 |  3 +--
 dune/gfe/surfacecosseratstressassembler.hh        |  2 +-
 src/compute-disc-error.cc                         |  6 +++---
 src/cosserat-continuum.cc                         |  2 +-
 src/film-on-substrate-stress-plot.cc              |  2 +-
 src/film-on-substrate.cc                          |  2 +-
 src/gradient-flow.cc                              |  2 +-
 src/harmonicmaps.cc                               |  8 ++++----
 src/rod3d.cc                                      |  2 +-
 src/simofoxshell.cc                               |  4 ++--
 test/adolctest.cc                                 |  2 +-
 test/averagedistanceassemblertest.cc              |  8 ++++----
 test/cosseratenergytest.cc                        |  2 +-
 test/cosseratrodenergytest.cc                     |  2 +-
 test/cosseratrodtest.cc                           |  2 +-
 test/embeddedglobalgfefunctiontest.cc             |  2 +-
 test/harmonicenergytest.cc                        |  2 +-
 test/harmonicmaptest.cc                           |  2 +-
 test/localgeodesicfefunctiontest.cc               |  8 ++++----
 test/localgfetestfunctiontest.cc                  |  8 ++++----
 test/localprojectedfefunctiontest.cc              |  8 ++++----
 test/nonplanarcosseratenergytest.cc               |  2 +-
 test/orthogonalmatrixtest.cc                      |  2 +-
 test/polardecompositiontest.cc                    |  2 +-
 test/rigidbodymotiontest.cc                       |  2 +-
 test/rotationtest.cc                              |  2 +-
 test/surfacecosseratstressassemblertest.cc        |  2 +-
 test/targetspacetest.cc                           | 10 +++++-----
 test/valuefactory.hh                              | 14 +++++++-------
 52 files changed, 113 insertions(+), 98 deletions(-)
 create mode 100644 dune/gfe/spaces/CMakeLists.txt
 rename dune/gfe/{ => spaces}/hyperbolichalfspacepoint.hh (99%)
 rename dune/gfe/{ => spaces}/orthogonalmatrix.hh (97%)
 rename dune/gfe/{ => spaces}/productmanifold.hh (99%)
 rename dune/gfe/{ => spaces}/quaternion.hh (98%)
 rename dune/gfe/{ => spaces}/realtuple.hh (99%)
 rename dune/gfe/{ => spaces}/rigidbodymotion.hh (98%)
 rename dune/gfe/{ => spaces}/rotation.hh (99%)
 rename dune/gfe/{ => spaces}/unitvector.hh (99%)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5b2415ab..26d0bd10 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
 # Master
 
+- All files that implement target spaces have been moved to the
+  `spaces` subdirectory.
+
 - The file `periodic1dpq1nodalbasis.hh` has been removed.  Use `periodicbasis.hh`
   from the `dune-functions` module in the future.
 
diff --git a/dune/gfe/CMakeLists.txt b/dune/gfe/CMakeLists.txt
index 0cb24b31..52fdc576 100644
--- a/dune/gfe/CMakeLists.txt
+++ b/dune/gfe/CMakeLists.txt
@@ -1,2 +1,4 @@
 #install headers
 install(FILES gfe.hh DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dune/gfe)
+
+add_subdirectory("spaces")
diff --git a/dune/gfe/cosseratenergystiffness.hh b/dune/gfe/cosseratenergystiffness.hh
index 1aca4d04..4c1883ee 100644
--- a/dune/gfe/cosseratenergystiffness.hh
+++ b/dune/gfe/cosseratenergystiffness.hh
@@ -20,10 +20,10 @@
 #else
 #include "localgeodesicfefunction.hh"
 #endif
-#include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/tensor3.hh>
-#include <dune/gfe/orthogonalmatrix.hh>
 #include <dune/gfe/cosseratstrain.hh>
+#include <dune/gfe/spaces/orthogonalmatrix.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 #define DONT_USE_CURL
 
diff --git a/dune/gfe/cosseratrodenergy.hh b/dune/gfe/cosseratrodenergy.hh
index 3f91e06a..be436f1d 100644
--- a/dune/gfe/cosseratrodenergy.hh
+++ b/dune/gfe/cosseratrodenergy.hh
@@ -17,7 +17,7 @@
 #include <dune/fufem/boundarypatch.hh>
 
 #include <dune/gfe/localenergy.hh>
-#include <dune/gfe/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 namespace Dune::GFE {
 
diff --git a/dune/gfe/cosseratvtkreader.hh b/dune/gfe/cosseratvtkreader.hh
index f48d93f7..7e0e6109 100644
--- a/dune/gfe/cosseratvtkreader.hh
+++ b/dune/gfe/cosseratvtkreader.hh
@@ -1,7 +1,7 @@
 #ifndef DUNE_GFE_COSSERATVTKREADER_HH
 #define DUNE_GFE_COSSERATVTKREADER_HH
 
-#include <dune/gfe/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 namespace Dune
 {
diff --git a/dune/gfe/cosseratvtkwriter.hh b/dune/gfe/cosseratvtkwriter.hh
index bf21d164..84799c74 100644
--- a/dune/gfe/cosseratvtkwriter.hh
+++ b/dune/gfe/cosseratvtkwriter.hh
@@ -10,8 +10,8 @@
 #include <dune/functions/functionspacebases/interpolate.hh>
 #include <dune/functions/gridfunctions/discreteglobalbasisfunction.hh>
 
-#include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/vtkfile.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 
 /** \brief Write the configuration of a Cosserat material in VTK format */
diff --git a/dune/gfe/geodesicfeassemblerwrapper.hh b/dune/gfe/geodesicfeassemblerwrapper.hh
index 35918edb..5b2ad650 100644
--- a/dune/gfe/geodesicfeassemblerwrapper.hh
+++ b/dune/gfe/geodesicfeassemblerwrapper.hh
@@ -3,8 +3,8 @@
 
 #include <dune/gfe/mixedgfeassembler.hh>
 #include <dune/common/tuplevector.hh>
-#include <dune/gfe/rigidbodymotion.hh>
-#include <dune/gfe/productmanifold.hh>
+#include <dune/gfe/spaces/productmanifold.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 namespace Dune::GFE {
 
diff --git a/dune/gfe/localgeodesicfefunction.hh b/dune/gfe/localgeodesicfefunction.hh
index eb4cab23..8318f9d6 100644
--- a/dune/gfe/localgeodesicfefunction.hh
+++ b/dune/gfe/localgeodesicfefunction.hh
@@ -10,7 +10,7 @@
 #include <dune/gfe/averagedistanceassembler.hh>
 #include <dune/gfe/targetspacertrsolver.hh>
 #include <dune/gfe/localquickanddirtyfefunction.hh>
-#include <dune/gfe/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 #include <dune/gfe/tensor3.hh>
 #include <dune/gfe/tensorssd.hh>
diff --git a/dune/gfe/localintegralenergy.hh b/dune/gfe/localintegralenergy.hh
index 7e3e7b4e..30cbd6ee 100644
--- a/dune/gfe/localintegralenergy.hh
+++ b/dune/gfe/localintegralenergy.hh
@@ -7,8 +7,8 @@
 #include <dune/geometry/quadraturerules.hh>
 
 #include <dune/gfe/localenergy.hh>
-#include <dune/gfe/realtuple.hh>
-#include <dune/gfe/rigidbodymotion.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 #include <dune/elasticity/materials/localdensity.hh>
 
diff --git a/dune/gfe/localprojectedfefunction.hh b/dune/gfe/localprojectedfefunction.hh
index 46c4a686..7551fbb9 100644
--- a/dune/gfe/localprojectedfefunction.hh
+++ b/dune/gfe/localprojectedfefunction.hh
@@ -8,11 +8,11 @@
 
 #include <dune/geometry/type.hh>
 
-#include <dune/gfe/rotation.hh>
-#include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/linearalgebra.hh>
 #include <dune/gfe/polardecomposition.hh>
-#include <dune/gfe/realtuple.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rotation.hh>
 
 namespace Dune {
 
diff --git a/dune/gfe/localquickanddirtyfefunction.hh b/dune/gfe/localquickanddirtyfefunction.hh
index 2679b110..34603132 100644
--- a/dune/gfe/localquickanddirtyfefunction.hh
+++ b/dune/gfe/localquickanddirtyfefunction.hh
@@ -7,8 +7,8 @@
 
 #include <dune/geometry/type.hh>
 
-#include <dune/gfe/rotation.hh>
 #include <dune/gfe/linearalgebra.hh>
+#include <dune/gfe/spaces/rotation.hh>
 
 namespace Dune {
 
diff --git a/dune/gfe/nonplanarcosseratshellenergy.hh b/dune/gfe/nonplanarcosseratshellenergy.hh
index b926f074..33bd23c8 100644
--- a/dune/gfe/nonplanarcosseratshellenergy.hh
+++ b/dune/gfe/nonplanarcosseratshellenergy.hh
@@ -18,11 +18,11 @@
 #include <dune/gfe/cosseratenergystiffness.hh>
 #include <dune/gfe/localenergy.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
-#include <dune/gfe/rigidbodymotion.hh>
-#include <dune/gfe/unitvector.hh>
 #include <dune/gfe/tensor3.hh>
 #include <dune/gfe/localprojectedfefunction.hh>
 #include <dune/gfe/mixedlocalgfeadolcstiffness.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 #if HAVE_DUNE_CURVEDGEOMETRY
 #include <dune/curvedgeometry/curvedgeometry.hh>
diff --git a/dune/gfe/polardecomposition.hh b/dune/gfe/polardecomposition.hh
index cc6944d8..5b73a5cd 100644
--- a/dune/gfe/polardecomposition.hh
+++ b/dune/gfe/polardecomposition.hh
@@ -6,8 +6,8 @@
 #include <dune/common/fmatrix.hh>
 #include <dune/common/version.hh>
 #include <dune/common/exceptions.hh>
-#include <dune/gfe/rotation.hh>
 #include <dune/gfe/linearalgebra.hh>
+#include <dune/gfe/spaces/rotation.hh>
 
 ///////////////////////////////////////////////////////////////////////////////////////////
 //  Two Methods to compute the Polar Factor of a 3x3 matrix
diff --git a/dune/gfe/simofoxenergy.hh b/dune/gfe/simofoxenergy.hh
index 853a5fe6..33f533ca 100644
--- a/dune/gfe/simofoxenergy.hh
+++ b/dune/gfe/simofoxenergy.hh
@@ -12,8 +12,8 @@
 #include <dune/gfe/linearalgebra.hh>
 #include <dune/gfe/localenergy.hh>
 #include <dune/gfe/mixedlocalgeodesicfestiffness.hh>
-#include <dune/gfe/realtuple.hh>
-#include <dune/gfe/unitvector.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 namespace Dune::GFE {
 
diff --git a/dune/gfe/spaces/CMakeLists.txt b/dune/gfe/spaces/CMakeLists.txt
new file mode 100644
index 00000000..f158d605
--- /dev/null
+++ b/dune/gfe/spaces/CMakeLists.txt
@@ -0,0 +1,11 @@
+#install headers
+install(FILES
+        hyperbolichalfspacepoint.hh
+        orthogonalmatrix.hh
+        productmanifold.hh
+        quaternion.hh
+        realtuple.hh
+        rigidbodymotion.hh
+        rotation.hh
+        unitvector.hh
+        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dune/gfe/spaces)
diff --git a/dune/gfe/hyperbolichalfspacepoint.hh b/dune/gfe/spaces/hyperbolichalfspacepoint.hh
similarity index 99%
rename from dune/gfe/hyperbolichalfspacepoint.hh
rename to dune/gfe/spaces/hyperbolichalfspacepoint.hh
index a8a803d4..2a8f6b20 100644
--- a/dune/gfe/hyperbolichalfspacepoint.hh
+++ b/dune/gfe/spaces/hyperbolichalfspacepoint.hh
@@ -1,5 +1,5 @@
-#ifndef HYPERBOLIC_HALF_SPACE_POINT_HH
-#define HYPERBOLIC_HALF_SPACE_POINT_HH
+#ifndef DUNE_GFE_SPACES_HYPERBOLICHALFSPACEPOINT_HH
+#define DUNE_GFE_SPACES_HYPERBOLICHALFSPACEPOINT_HH
 
 #include <dune/common/fvector.hh>
 #include <dune/common/fmatrix.hh>
diff --git a/dune/gfe/orthogonalmatrix.hh b/dune/gfe/spaces/orthogonalmatrix.hh
similarity index 97%
rename from dune/gfe/orthogonalmatrix.hh
rename to dune/gfe/spaces/orthogonalmatrix.hh
index 36d7c10b..d87effc5 100644
--- a/dune/gfe/orthogonalmatrix.hh
+++ b/dune/gfe/spaces/orthogonalmatrix.hh
@@ -1,5 +1,5 @@
-#ifndef ORTHOGONAL_MATRIX_HH
-#define ORTHOGONAL_MATRIX_HH
+#ifndef DUNE_GFE_SPACES_ORTHOGONALMATRIX_HH
+#define DUNE_GFE_SPACES_ORTHOGONALMATRIX_HH
 
 #include <dune/common/fmatrix.hh>
 
@@ -177,4 +177,4 @@ private:
     
 };
 
-#endif // ORTHOGONAL_MATRIX_HH
+#endif  // DUNE_GFE_SPACES_ORTHOGONALMATRIX_HH
diff --git a/dune/gfe/productmanifold.hh b/dune/gfe/spaces/productmanifold.hh
similarity index 99%
rename from dune/gfe/productmanifold.hh
rename to dune/gfe/spaces/productmanifold.hh
index c22f35d0..afc37cf9 100644
--- a/dune/gfe/productmanifold.hh
+++ b/dune/gfe/spaces/productmanifold.hh
@@ -1,5 +1,5 @@
-#ifndef DUNE_GFE_PRODUCTMANIFOLD_HH
-#define DUNE_GFE_PRODUCTMANIFOLD_HH
+#ifndef DUNE_GFE_SPACES_PRODUCTMANIFOLD_HH
+#define DUNE_GFE_SPACES_PRODUCTMANIFOLD_HH
 
 #include <iostream>
 #include <tuple>
diff --git a/dune/gfe/quaternion.hh b/dune/gfe/spaces/quaternion.hh
similarity index 98%
rename from dune/gfe/quaternion.hh
rename to dune/gfe/spaces/quaternion.hh
index e88ee526..3ac4ab1b 100644
--- a/dune/gfe/quaternion.hh
+++ b/dune/gfe/spaces/quaternion.hh
@@ -1,5 +1,5 @@
-#ifndef QUATERNION_HH
-#define QUATERNION_HH
+#ifndef DUNE_GFE_SPACES_QUATERNION_HH
+#define DUNE_GFE_SPACES_QUATERNION_HH
 
 #include <dune/common/fvector.hh>
 #include <dune/common/fmatrix.hh>
diff --git a/dune/gfe/realtuple.hh b/dune/gfe/spaces/realtuple.hh
similarity index 99%
rename from dune/gfe/realtuple.hh
rename to dune/gfe/spaces/realtuple.hh
index 1fdba416..1a3f3d07 100644
--- a/dune/gfe/realtuple.hh
+++ b/dune/gfe/spaces/realtuple.hh
@@ -1,5 +1,5 @@
-#ifndef REAL_TUPLE_HH
-#define REAL_TUPLE_HH
+#ifndef DUNE_GFE_SPACES_REALTUPLE_HH
+#define DUNE_GFE_SPACES_REALTUPLE_HH
 
 #include <dune/common/fvector.hh>
 
diff --git a/dune/gfe/rigidbodymotion.hh b/dune/gfe/spaces/rigidbodymotion.hh
similarity index 98%
rename from dune/gfe/rigidbodymotion.hh
rename to dune/gfe/spaces/rigidbodymotion.hh
index b77a6bc8..c82c2688 100644
--- a/dune/gfe/rigidbodymotion.hh
+++ b/dune/gfe/spaces/rigidbodymotion.hh
@@ -1,10 +1,10 @@
-#ifndef RIGID_BODY_MOTION_HH
-#define RIGID_BODY_MOTION_HH
+#ifndef DUNE_GFE_SPACES_RIGIDBODYMOTION_HH
+#define DUNE_GFE_SPACES_RIGIDBODYMOTION_HH
 
 #include <dune/common/fvector.hh>
 
-#include <dune/gfe/realtuple.hh>
-#include "rotation.hh"
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rotation.hh>
 
 /** \brief A rigid-body motion in R^N, i.e., a member of SE(N) */
 template <class T, int N>
diff --git a/dune/gfe/rotation.hh b/dune/gfe/spaces/rotation.hh
similarity index 99%
rename from dune/gfe/rotation.hh
rename to dune/gfe/spaces/rotation.hh
index 8589fcc4..6217e046 100644
--- a/dune/gfe/rotation.hh
+++ b/dune/gfe/spaces/rotation.hh
@@ -1,5 +1,5 @@
-#ifndef ROTATION_HH
-#define ROTATION_HH
+#ifndef DUNE_GFE_SPACES_ROTATION_HH
+#define DUNE_GFE_SPACES_ROTATION_HH
 
 /** \file
     \brief Define rotations in Euclidean spaces
@@ -12,11 +12,11 @@
 #include <dune/common/exceptions.hh>
 #include <dune/common/math.hh>
 
-#include "quaternion.hh"
 #include <dune/gfe/tensor3.hh>
-#include <dune/gfe/unitvector.hh>
 #include <dune/gfe/skewmatrix.hh>
 #include <dune/gfe/symmetricmatrix.hh>
+#include <dune/gfe/spaces/quaternion.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 template <class T, int dim>
 class Rotation
diff --git a/dune/gfe/unitvector.hh b/dune/gfe/spaces/unitvector.hh
similarity index 99%
rename from dune/gfe/unitvector.hh
rename to dune/gfe/spaces/unitvector.hh
index 3d1eb4c5..d3d19dd3 100644
--- a/dune/gfe/unitvector.hh
+++ b/dune/gfe/spaces/unitvector.hh
@@ -1,5 +1,5 @@
-#ifndef UNIT_VECTOR_HH
-#define UNIT_VECTOR_HH
+#ifndef DUNE_GFE_SPACES_UNITVECTOR_HH
+#define DUNE_GFE_SPACES_UNITVECTOR_HH
 
 #include <dune/common/fvector.hh>
 #include <dune/common/fmatrix.hh>
diff --git a/dune/gfe/surfacecosseratenergy.hh b/dune/gfe/surfacecosseratenergy.hh
index 4fad540f..2174df54 100644
--- a/dune/gfe/surfacecosseratenergy.hh
+++ b/dune/gfe/surfacecosseratenergy.hh
@@ -12,9 +12,8 @@
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/localprojectedfefunction.hh>
 #include <dune/gfe/mixedlocalgeodesicfestiffness.hh>
-#include <dune/gfe/orthogonalmatrix.hh>
-#include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/tensor3.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 #include <dune/curvedgeometry/curvedgeometry.hh>
 #include <dune/localfunctions/lagrange/lfecache.hh>
diff --git a/dune/gfe/surfacecosseratstressassembler.hh b/dune/gfe/surfacecosseratstressassembler.hh
index a939256d..5c4f6da3 100644
--- a/dune/gfe/surfacecosseratstressassembler.hh
+++ b/dune/gfe/surfacecosseratstressassembler.hh
@@ -4,8 +4,8 @@
 #include <dune/fufem/boundarypatch.hh>
 
 #include <dune/gfe/linearalgebra.hh>
-#include <dune/gfe/rotation.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
+#include <dune/gfe/spaces/rotation.hh>
 
 #include <dune/matrix-vector/transpose.hh>
 
diff --git a/src/compute-disc-error.cc b/src/compute-disc-error.cc
index c9859b27..ae1a3300 100644
--- a/src/compute-disc-error.cc
+++ b/src/compute-disc-error.cc
@@ -24,12 +24,12 @@
 #include <dune/fufem/dunepython.hh>
 #include <dune/fufem/makesphere.hh>
 
-#include <dune/gfe/rotation.hh>
-#include <dune/gfe/unitvector.hh>
-#include <dune/gfe/realtuple.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/localprojectedfefunction.hh>
 #include <dune/gfe/embeddedglobalgfefunction.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rotation.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 // grid dimension
 const int dim = 2;
diff --git a/src/cosserat-continuum.cc b/src/cosserat-continuum.cc
index eef6a5a8..0efd6fce 100644
--- a/src/cosserat-continuum.cc
+++ b/src/cosserat-continuum.cc
@@ -70,7 +70,7 @@
 #include <dune/gfe/geodesicfeassemblerwrapper.hh>
 #include <dune/gfe/riemannianpnsolver.hh>
 #include <dune/gfe/riemanniantrsolver.hh>
-#include <dune/gfe/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 #endif
 
 #if HAVE_DUNE_VTK
diff --git a/src/film-on-substrate-stress-plot.cc b/src/film-on-substrate-stress-plot.cc
index fce87fe3..388828b6 100644
--- a/src/film-on-substrate-stress-plot.cc
+++ b/src/film-on-substrate-stress-plot.cc
@@ -34,8 +34,8 @@
 #include <dune/grid/io/file/vtk.hh>
 
 #include <dune/gfe/filereader.hh>
-#include <dune/gfe/rotation.hh>
 #include <dune/gfe/surfacecosseratstressassembler.hh>
+#include <dune/gfe/spaces/rotation.hh>
 
 // grid dimension
 #ifndef WORLD_DIM
diff --git a/src/film-on-substrate.cc b/src/film-on-substrate.cc
index b15612c2..fda9a0cb 100644
--- a/src/film-on-substrate.cc
+++ b/src/film-on-substrate.cc
@@ -69,7 +69,7 @@
 #include <dune/gfe/geodesicfeassemblerwrapper.hh>
 #include <dune/gfe/riemannianpnsolver.hh>
 #include <dune/gfe/riemanniantrsolver.hh>
-#include <dune/gfe/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 #endif
 
 #include <dune/istl/multitypeblockvector.hh>
diff --git a/src/gradient-flow.cc b/src/gradient-flow.cc
index 5c87533c..bb8dc917 100644
--- a/src/gradient-flow.cc
+++ b/src/gradient-flow.cc
@@ -34,7 +34,6 @@
 #include <dune/solvers/solvers/iterativesolver.hh>
 #include <dune/solvers/norms/energynorm.hh>
 
-#include <dune/gfe/unitvector.hh>
 #include <dune/gfe/localgeodesicfeadolcstiffness.hh>
 #include <dune/gfe/geodesicfeassembler.hh>
 #include <dune/gfe/riemanniantrsolver.hh>
@@ -43,6 +42,7 @@
 #include <dune/gfe/harmonicenergy.hh>
 #include <dune/gfe/l2distancesquaredenergy.hh>
 #include <dune/gfe/weightedsumenergy.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 // grid dimension
 const int dim = 1;
diff --git a/src/harmonicmaps.cc b/src/harmonicmaps.cc
index a5f0c3a4..cf9c5243 100644
--- a/src/harmonicmaps.cc
+++ b/src/harmonicmaps.cc
@@ -38,10 +38,6 @@
 #include <dune/solvers/solvers/iterativesolver.hh>
 #include <dune/solvers/norms/energynorm.hh>
 
-#include <dune/gfe/rotation.hh>
-#include <dune/gfe/unitvector.hh>
-#include <dune/gfe/realtuple.hh>
-#include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/localprojectedfefunction.hh>
 #include <dune/gfe/localgeodesicfeadolcstiffness.hh>
@@ -50,6 +46,10 @@
 #include <dune/gfe/geodesicfeassembler.hh>
 #include <dune/gfe/riemanniantrsolver.hh>
 #include <dune/gfe/embeddedglobalgfefunction.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rotation.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 // grid dimension
 const int dim = 2;
diff --git a/src/rod3d.cc b/src/rod3d.cc
index 53a44f8a..63112aa1 100644
--- a/src/rod3d.cc
+++ b/src/rod3d.cc
@@ -38,8 +38,8 @@
 #include <dune/gfe/localgeodesicfeadolcstiffness.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/localprojectedfefunction.hh>
-#include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/riemanniantrsolver.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 typedef RigidBodyMotion<double,3> TargetSpace;
 
diff --git a/src/simofoxshell.cc b/src/simofoxshell.cc
index fee050e2..7285a45c 100644
--- a/src/simofoxshell.cc
+++ b/src/simofoxshell.cc
@@ -27,14 +27,14 @@
 #include <dune/gfe/embeddedglobalgfefunction.hh>
 #include <dune/gfe/mixedgfeassembler.hh>
 #include <dune/gfe/mixedriemanniantrsolver.hh>
-#include <dune/gfe/unitvector.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/localprojectedfefunction.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 #if !MIXED_SPACE
 #include <dune/gfe/geodesicfeassemblerwrapper.hh>
-#include <dune/gfe/productmanifold.hh>
 #include <dune/gfe/riemannianpnsolver.hh>
+#include <dune/gfe/spaces/productmanifold.hh>
 #endif
 
 #if HAVE_DUNE_VTK
diff --git a/test/adolctest.cc b/test/adolctest.cc
index 9a408d04..34de35df 100644
--- a/test/adolctest.cc
+++ b/test/adolctest.cc
@@ -37,12 +37,12 @@ typedef double FDType;
 #include <dune/functions/functionspacebases/interpolate.hh>
 #include <dune/functions/functionspacebases/powerbasis.hh>
 
-#include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/localgeodesicfestiffness.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/cosseratenergystiffness.hh>
 #include <dune/gfe/localgeodesicfeadolcstiffness.hh>
 #include <dune/gfe/localgeodesicfefdstiffness.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 // grid dimension
 const int dim = 2;
diff --git a/test/averagedistanceassemblertest.cc b/test/averagedistanceassemblertest.cc
index 03f97eac..c106a08a 100644
--- a/test/averagedistanceassemblertest.cc
+++ b/test/averagedistanceassemblertest.cc
@@ -6,10 +6,10 @@
 #include <dune/geometry/quadraturerules.hh>
 #include <dune/geometry/type.hh>
 
-#include <dune/gfe/rotation.hh>
-#include <dune/gfe/realtuple.hh>
-#include <dune/gfe/unitvector.hh>
-#include <dune/gfe/productmanifold.hh>
+#include <dune/gfe/spaces/productmanifold.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rotation.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 #include <dune/gfe/localgeodesicfefunction.hh>
 
diff --git a/test/cosseratenergytest.cc b/test/cosseratenergytest.cc
index 1d41eff2..65c7dc1d 100644
--- a/test/cosseratenergytest.cc
+++ b/test/cosseratenergytest.cc
@@ -7,8 +7,8 @@
 
 #include <dune/functions/functionspacebases/lagrangebasis.hh>
 
-#include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/cosseratenergystiffness.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 #include "multiindex.hh"
 #include "valuefactory.hh"
diff --git a/test/cosseratrodenergytest.cc b/test/cosseratrodenergytest.cc
index 6a485ac5..9cd83397 100644
--- a/test/cosseratrodenergytest.cc
+++ b/test/cosseratrodenergytest.cc
@@ -6,7 +6,7 @@
 
 #include <dune/gfe/cosseratrodenergy.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
-#include <dune/gfe/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 
 using namespace Dune;
diff --git a/test/cosseratrodtest.cc b/test/cosseratrodtest.cc
index b3309e9d..7c7ad4fc 100644
--- a/test/cosseratrodtest.cc
+++ b/test/cosseratrodtest.cc
@@ -21,8 +21,8 @@
 #include <dune/gfe/localgeodesicfeadolcstiffness.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/localprojectedfefunction.hh>
-#include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/riemanniantrsolver.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 typedef RigidBodyMotion<double,3> TargetSpace;
 
diff --git a/test/embeddedglobalgfefunctiontest.cc b/test/embeddedglobalgfefunctiontest.cc
index ca9be834..7691842e 100644
--- a/test/embeddedglobalgfefunctiontest.cc
+++ b/test/embeddedglobalgfefunctiontest.cc
@@ -11,7 +11,7 @@
 #include <dune/gfe/embeddedglobalgfefunction.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/localprojectedfefunction.hh>
-#include <dune/gfe/unitvector.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 using namespace Dune;
 
diff --git a/test/harmonicenergytest.cc b/test/harmonicenergytest.cc
index 632fe3df..b66466f1 100644
--- a/test/harmonicenergytest.cc
+++ b/test/harmonicenergytest.cc
@@ -4,9 +4,9 @@
 
 #include <dune/functions/functionspacebases/lagrangebasis.hh>
 
-#include <dune/gfe/unitvector.hh>
 #include <dune/gfe/harmonicenergy.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 #include "multiindex.hh"
 #include "valuefactory.hh"
diff --git a/test/harmonicmaptest.cc b/test/harmonicmaptest.cc
index 11282720..0025d9f7 100644
--- a/test/harmonicmaptest.cc
+++ b/test/harmonicmaptest.cc
@@ -21,13 +21,13 @@
 #include <dune/fufem/boundarypatch.hh>
 #include <dune/fufem/functiontools/boundarydofs.hh>
 
-#include <dune/gfe/unitvector.hh>
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/localprojectedfefunction.hh>
 #include <dune/gfe/localgeodesicfeadolcstiffness.hh>
 #include <dune/gfe/harmonicenergy.hh>
 #include <dune/gfe/geodesicfeassembler.hh>
 #include <dune/gfe/riemanniantrsolver.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 // grid dimension
 const int dim = 2;
diff --git a/test/localgeodesicfefunctiontest.cc b/test/localgeodesicfefunctiontest.cc
index 613fbda9..fb421102 100644
--- a/test/localgeodesicfefunctiontest.cc
+++ b/test/localgeodesicfefunctiontest.cc
@@ -11,10 +11,10 @@
 
 #include <dune/localfunctions/lagrange/pqkfactory.hh>
 
-#include <dune/gfe/rotation.hh>
-#include <dune/gfe/realtuple.hh>
-#include <dune/gfe/unitvector.hh>
-#include <dune/gfe/productmanifold.hh>
+#include <dune/gfe/spaces/productmanifold.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rotation.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include "multiindex.hh"
diff --git a/test/localgfetestfunctiontest.cc b/test/localgfetestfunctiontest.cc
index a57aa3f1..3eae5446 100644
--- a/test/localgfetestfunctiontest.cc
+++ b/test/localgfetestfunctiontest.cc
@@ -7,10 +7,10 @@
 #include <dune/common/fvector.hh>
 #include <dune/localfunctions/lagrange/pqkfactory.hh>
 
-#include <dune/gfe/rotation.hh>
-#include <dune/gfe/realtuple.hh>
-#include <dune/gfe/unitvector.hh>
-#include <dune/gfe/productmanifold.hh>
+#include <dune/gfe/spaces/productmanifold.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rotation.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 #include <dune/gfe/localgeodesicfefunction.hh>
 #include <dune/gfe/localgfetestfunctionbasis.hh>
diff --git a/test/localprojectedfefunctiontest.cc b/test/localprojectedfefunctiontest.cc
index 2ca8e555..e94720f0 100644
--- a/test/localprojectedfefunctiontest.cc
+++ b/test/localprojectedfefunctiontest.cc
@@ -12,10 +12,10 @@
 
 #include <dune/localfunctions/lagrange/pqkfactory.hh>
 
-#include <dune/gfe/rotation.hh>
-#include <dune/gfe/realtuple.hh>
-#include <dune/gfe/unitvector.hh>
-#include <dune/gfe/productmanifold.hh>
+#include <dune/gfe/spaces/productmanifold.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rotation.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 #include <dune/gfe/localprojectedfefunction.hh>
 #include "multiindex.hh"
diff --git a/test/nonplanarcosseratenergytest.cc b/test/nonplanarcosseratenergytest.cc
index 20f181f7..8756dd62 100644
--- a/test/nonplanarcosseratenergytest.cc
+++ b/test/nonplanarcosseratenergytest.cc
@@ -13,7 +13,7 @@
 
 #include <dune/gfe/cosseratvtkwriter.hh>
 #include <dune/gfe/nonplanarcosseratshellenergy.hh>
-#include <dune/gfe/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 #include "multiindex.hh"
 #include "valuefactory.hh"
diff --git a/test/orthogonalmatrixtest.cc b/test/orthogonalmatrixtest.cc
index 27990a64..31f13e67 100644
--- a/test/orthogonalmatrixtest.cc
+++ b/test/orthogonalmatrixtest.cc
@@ -1,6 +1,6 @@
 #include <config.h>
 
-#include <dune/gfe/orthogonalmatrix.hh>
+#include <dune/gfe/spaces/orthogonalmatrix.hh>
 
 #include "valuefactory.hh"
 
diff --git a/test/polardecompositiontest.cc b/test/polardecompositiontest.cc
index b7f67cef..b4c87f6a 100644
--- a/test/polardecompositiontest.cc
+++ b/test/polardecompositiontest.cc
@@ -3,7 +3,7 @@
 #include <dune/common/fmatrix.hh>
 #include <dune/common/fvector.hh>
 #include <dune/gfe/polardecomposition.hh>
-#include <dune/gfe/rotation.hh>
+#include <dune/gfe/spaces/rotation.hh>
 
 #include <chrono>
 #include <fstream>
diff --git a/test/rigidbodymotiontest.cc b/test/rigidbodymotiontest.cc
index 2f39109d..7aa8020a 100644
--- a/test/rigidbodymotiontest.cc
+++ b/test/rigidbodymotiontest.cc
@@ -8,7 +8,7 @@
 #include <dune/localfunctions/lagrange/pqkfactory.hh>
 
 #include <dune/gfe/localgeodesicfefunction.hh>
-#include <dune/gfe/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
 
 #include "multiindex.hh"
 #include "valuefactory.hh"
diff --git a/test/rotationtest.cc b/test/rotationtest.cc
index 36e8b8d3..aa67c616 100644
--- a/test/rotationtest.cc
+++ b/test/rotationtest.cc
@@ -5,7 +5,7 @@
 
 #include <dune/common/fmatrix.hh>
 
-#include <dune/gfe/rotation.hh>
+#include <dune/gfe/spaces/rotation.hh>
 #include "valuefactory.hh"
 
 using namespace Dune;
diff --git a/test/surfacecosseratstressassemblertest.cc b/test/surfacecosseratstressassemblertest.cc
index f44ff097..bf8e64a6 100644
--- a/test/surfacecosseratstressassemblertest.cc
+++ b/test/surfacecosseratstressassemblertest.cc
@@ -26,8 +26,8 @@
 #include <dune/grid/utility/structuredgridfactory.hh>
 
 #include <dune/gfe/filereader.hh>
-#include <dune/gfe/rotation.hh>
 #include <dune/gfe/surfacecosseratstressassembler.hh>
+#include <dune/gfe/spaces/rotation.hh>
 
 #include <dune/matrix-vector/transpose.hh>
 
diff --git a/test/targetspacetest.cc b/test/targetspacetest.cc
index 765a46c9..81819cc3 100644
--- a/test/targetspacetest.cc
+++ b/test/targetspacetest.cc
@@ -1,10 +1,10 @@
 #include <config.h>
 
-#include <dune/gfe/unitvector.hh>
-#include <dune/gfe/realtuple.hh>
-#include <dune/gfe/rotation.hh>
-#include <dune/gfe/productmanifold.hh>
-#include <dune/gfe/hyperbolichalfspacepoint.hh>
+#include <dune/gfe/spaces/hyperbolichalfspacepoint.hh>
+#include <dune/gfe/spaces/productmanifold.hh>
+#include <dune/gfe/spaces/unitvector.hh>
+#include <dune/gfe/spaces/realtuple.hh>
+#include <dune/gfe/spaces/rotation.hh>
 
 #include "valuefactory.hh"
 
diff --git a/test/valuefactory.hh b/test/valuefactory.hh
index 9d235791..03f3f0af 100644
--- a/test/valuefactory.hh
+++ b/test/valuefactory.hh
@@ -3,12 +3,12 @@
 
 #include <vector>
 
-#include <dune/gfe/unitvector.hh>
-#include <dune/gfe/rotation.hh>
-#include <dune/gfe/rigidbodymotion.hh>
-#include <dune/gfe/productmanifold.hh>
-#include <dune/gfe/orthogonalmatrix.hh>
-#include <dune/gfe/hyperbolichalfspacepoint.hh>
+#include <dune/gfe/spaces/hyperbolichalfspacepoint.hh>
+#include <dune/gfe/spaces/orthogonalmatrix.hh>
+#include <dune/gfe/spaces/productmanifold.hh>
+#include <dune/gfe/spaces/rigidbodymotion.hh>
+#include <dune/gfe/spaces/rotation.hh>
+#include <dune/gfe/spaces/unitvector.hh>
 
 /** \brief A class that creates sets of values of various types, to be used in unit tests
  *
@@ -355,4 +355,4 @@ public:
 };
 
 
-#endif
\ No newline at end of file
+#endif
-- 
GitLab