From e5ac7552b59af77ab8b3cacd9dc1bd4d6621c635 Mon Sep 17 00:00:00 2001
From: Soeren Peters <peters@irmb.tu-bs.de>
Date: Thu, 1 Oct 2020 18:56:43 +0200
Subject: [PATCH] Update lineendings.

---
 3rdParty/MarchingCubes/CMakePackage.txt       |  12 +-
 3rdParty/MarchingCubes/Matrix3DWrapper.h      | 252 ++++----
 3rdParty/MarchingCubes/Matrix4DWrapper.h      | 262 ++++----
 3rdParty/MarchingCubes/McWrapper.h            | 610 +++++++++---------
 3rdParty/fftw/fftw-3.3.7/CMakeLists.txt       |  88 +--
 CMake/CMakeSetCompilerFlags.cmake             | 176 ++---
 .../cmake_config_files/BOMBADIL.config.cmake  | 170 ++---
 CMake/cmake_config_files/HOST2.config.cmake   |  44 +-
 CMake/cmake_config_files/TESLA01.config.cmake |  34 +-
 .../{clang.cmake => Clang.cmake}              |   0
 10 files changed, 828 insertions(+), 820 deletions(-)
 rename CMake/compilerflags/{clang.cmake => Clang.cmake} (100%)

diff --git a/3rdParty/MarchingCubes/CMakePackage.txt b/3rdParty/MarchingCubes/CMakePackage.txt
index bea0c0b7d..b4e619a03 100644
--- a/3rdParty/MarchingCubes/CMakePackage.txt
+++ b/3rdParty/MarchingCubes/CMakePackage.txt
@@ -1,6 +1,6 @@
-GET_FILENAME_COMPONENT( CURRENT_DIR  ${CMAKE_CURRENT_LIST_FILE} PATH) 
-COLLECT_PACKAGE_DATA_WITH_OPTION(${CURRENT_DIR} ALL_SOURCES outOption outSourceGroupName)
-
-IF(${outOption})
-   LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -DMC_CUBES  )
-ENDIF()
+GET_FILENAME_COMPONENT( CURRENT_DIR  ${CMAKE_CURRENT_LIST_FILE} PATH) 
+COLLECT_PACKAGE_DATA_WITH_OPTION(${CURRENT_DIR} ALL_SOURCES outOption outSourceGroupName)
+
+IF(${outOption})
+   list(APPEND VF_COMPILER_DEFINITION MC_CUBES)
+ENDIF()
diff --git a/3rdParty/MarchingCubes/Matrix3DWrapper.h b/3rdParty/MarchingCubes/Matrix3DWrapper.h
index 0c334d0c4..159b5d53c 100644
--- a/3rdParty/MarchingCubes/Matrix3DWrapper.h
+++ b/3rdParty/MarchingCubes/Matrix3DWrapper.h
@@ -1,126 +1,126 @@
-//  _    ___      __              __________      _     __
-// | |  / (_)____/ /___  ______ _/ / ____/ /_  __(_)___/ /____
-// | | / / / ___/ __/ / / / __ `/ / /_  / / / / / / __  / ___/
-// | |/ / / /  / /_/ /_/ / /_/ / / __/ / / /_/ / / /_/ (__  )
-// |___/_/_/   \__/\__,_/\__,_/_/_/   /_/\__,_/_/\__,_/____/
-//
-#ifndef MATRIX3DWRAPPER_H
-#define MATRIX3DWRAPPER_H
-
-//extension by CAB
-#include <vector>
-#include <string>
-#include <fstream>
-
-#include <basics/utilities/UbException.h>
-#include <MarchingCubes/McTypes.h>
-
-//neu: matrix muss lediglich double operator()(int x1, int x2, int x3) ueberladen, dann kann man sie verwenden!!
-
-//////////////////////////////////////////////////////////////////////////
-//Matrix3DWrapper-Wrapper
-//   CbUniformMatrix3D<double> data(10,8,5);
-//   for(int x3=0; x3<data.getNX3(); x3++)
-//    for(int x2=0; x2<data.getNX2(); x2++)
-//      for(int x1=0; x1<data.getNX1(); x1++)
-//        data(x1,x2,x3) = x1;
-//
-//   Matrix3DWrapper< CbUniformMatrix3D<double> > wrapper(&data);
-//   MarchingCubes< Matrix3DWrapper< CbUniformMatrix3D<double> > > mc( wrapper );
-//
-//   mc.init_all();
-//   mc.run(3.5);
-//   mc.writeUCD("c:/temp/triangles.inp");
-//   mc.clean_all();
-
-namespace McCubes{
-
-template< typename Matrix3D >
-class Matrix3DWrapper
-{
-public:
-   Matrix3DWrapper()
-      :  matrix(NULL)
-       , minX1(-1), minX2(-1), minX3(-1)
-       , maxX1(-1), maxX2(-1), maxX3(-1)
-       , nx1(-1)  , nx2(-1)  , nx3(-1)
-   {
-      //wird benoetigt, damit MarchingCubes generell eine membervariabel erstellen kann
-   }
-   /*==========================================================*/
-   Matrix3DWrapper( Matrix3D* matrix)
-      : matrix(matrix)
-   {
-      nx1 = (int)matrix->getNX1();
-      nx2 = (int)matrix->getNX2();
-      nx3 = (int)matrix->getNX3();
-
-      minX1 = minX2 = minX3 = 0;
-      maxX1 = nx1-1;
-      maxX2 = nx2-1;
-      maxX3 = nx3-1;
-   }
-   /*==========================================================*/
-   Matrix3DWrapper( Matrix3D* matrix, const int& n1, const int& nx2, const int& nx3)
-      : matrix(matrix)
-      , nx1(nx1), nx2(nx2), nx3(nx3)
-   {
-      minX1 = minX2 = minX3 = 0;
-      maxX1 = nx1-1;
-      maxX2 = nx2-1;
-      maxX3 = nx3-1;
-   }
-   /*==========================================================*/
-   Matrix3DWrapper( Matrix3D* matrix, const int& minX1, const int& minX2, const int& minX3
-                                    , const int& maxX1, const int& maxX2, const int& maxX3 )
-      :  matrix(matrix)
-       , minX1(minX1), minX2(minX2), minX3(minX3)
-       , maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
-   {
-      nx1 = matrix->getNX1();
-      nx2 = matrix->getNX2();
-      nx3 = matrix->getNX3();
-
-      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
-         throw UbException(UB_EXARGS,"range error");
-   }
-   /*==========================================================*/
-   //wenn man z.B. matrixX1 von[0..10] geht und man nur den bereich 1..9 fuer MC
-   //verwenden moechte -> minX1=1 und maxX2=2
-   Matrix3DWrapper( Matrix3D* matrix, const int& minX1, const int& minX2, const int& minX3
-                                    , const int& maxX1, const int& maxX2, const int& maxX3
-                                    , const int& n1   , const int& nx2  , const int& nx3   )
-      :   matrix(matrix)
-        , minX1(minX1), minX2(minX2), minX3(minX3)
-        , maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
-        , nx1(n1)     , nx2(nx2)    , nx3(nx3)
-   {
-      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
-         throw UbException(UB_EXARGS,"range error");
-   }
-   /*==========================================================*/
-   inline real getData(const int& x1, const int& x2, const int& x3 ) const
-   {
-      return static_cast<real>( (*matrix)(x1, x2, x3) );
-   }
-   /*==========================================================*/
-   inline int getMinX1() const { return minX1; }  
-   inline int getMinX2() const { return minX2; }  
-   inline int getMinX3() const { return minX3; }  
-
-   inline int getMaxX1() const { return maxX1; }  
-   inline int getMaxX2() const { return maxX2; }  
-   inline int getMaxX3() const { return maxX3; }  
-
-   inline int getNX1()   const { return nx1;   }  
-   inline int getNX2()   const { return nx2;   }  
-   inline int getNX3()   const { return nx3;   }  
-
-protected:
-   Matrix3D* matrix;
-   int minX1, minX2, minX3, maxX1, maxX2, maxX3, nx1, nx2, nx3;
-};
-
-} //namespace McCubes
-
-#endif //MATRIX3DWRAPPER_H
+//  _    ___      __              __________      _     __
+// | |  / (_)____/ /___  ______ _/ / ____/ /_  __(_)___/ /____
+// | | / / / ___/ __/ / / / __ `/ / /_  / / / / / / __  / ___/
+// | |/ / / /  / /_/ /_/ / /_/ / / __/ / / /_/ / / /_/ (__  )
+// |___/_/_/   \__/\__,_/\__,_/_/_/   /_/\__,_/_/\__,_/____/
+//
+#ifndef MATRIX3DWRAPPER_H
+#define MATRIX3DWRAPPER_H
+
+//extension by CAB
+#include <vector>
+#include <string>
+#include <fstream>
+
+#include <basics/utilities/UbException.h>
+#include <MarchingCubes/McTypes.h>
+
+//neu: matrix muss lediglich double operator()(int x1, int x2, int x3) ueberladen, dann kann man sie verwenden!!
+
+//////////////////////////////////////////////////////////////////////////
+//Matrix3DWrapper-Wrapper
+//   CbUniformMatrix3D<double> data(10,8,5);
+//   for(int x3=0; x3<data.getNX3(); x3++)
+//    for(int x2=0; x2<data.getNX2(); x2++)
+//      for(int x1=0; x1<data.getNX1(); x1++)
+//        data(x1,x2,x3) = x1;
+//
+//   Matrix3DWrapper< CbUniformMatrix3D<double> > wrapper(&data);
+//   MarchingCubes< Matrix3DWrapper< CbUniformMatrix3D<double> > > mc( wrapper );
+//
+//   mc.init_all();
+//   mc.run(3.5);
+//   mc.writeUCD("c:/temp/triangles.inp");
+//   mc.clean_all();
+
+namespace McCubes{
+
+template< typename Matrix3D >
+class Matrix3DWrapper
+{
+public:
+   Matrix3DWrapper()
+      :  matrix(NULL)
+       , minX1(-1), minX2(-1), minX3(-1)
+       , maxX1(-1), maxX2(-1), maxX3(-1)
+       , nx1(-1)  , nx2(-1)  , nx3(-1)
+   {
+      //wird benoetigt, damit MarchingCubes generell eine membervariabel erstellen kann
+   }
+   /*==========================================================*/
+   Matrix3DWrapper( Matrix3D* matrix)
+      : matrix(matrix)
+   {
+      nx1 = (int)matrix->getNX1();
+      nx2 = (int)matrix->getNX2();
+      nx3 = (int)matrix->getNX3();
+
+      minX1 = minX2 = minX3 = 0;
+      maxX1 = nx1-1;
+      maxX2 = nx2-1;
+      maxX3 = nx3-1;
+   }
+   /*==========================================================*/
+   Matrix3DWrapper( Matrix3D* matrix, const int& n1, const int& nx2, const int& nx3)
+      : matrix(matrix)
+      , nx1(nx1), nx2(nx2), nx3(nx3)
+   {
+      minX1 = minX2 = minX3 = 0;
+      maxX1 = nx1-1;
+      maxX2 = nx2-1;
+      maxX3 = nx3-1;
+   }
+   /*==========================================================*/
+   Matrix3DWrapper( Matrix3D* matrix, const int& minX1, const int& minX2, const int& minX3
+                                    , const int& maxX1, const int& maxX2, const int& maxX3 )
+      :  matrix(matrix)
+       , minX1(minX1), minX2(minX2), minX3(minX3)
+       , maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
+   {
+      nx1 = matrix->getNX1();
+      nx2 = matrix->getNX2();
+      nx3 = matrix->getNX3();
+
+      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
+         throw UbException(UB_EXARGS,"range error");
+   }
+   /*==========================================================*/
+   //wenn man z.B. matrixX1 von[0..10] geht und man nur den bereich 1..9 fuer MC
+   //verwenden moechte -> minX1=1 und maxX2=2
+   Matrix3DWrapper( Matrix3D* matrix, const int& minX1, const int& minX2, const int& minX3
+                                    , const int& maxX1, const int& maxX2, const int& maxX3
+                                    , const int& n1   , const int& nx2  , const int& nx3   )
+      :   matrix(matrix)
+        , minX1(minX1), minX2(minX2), minX3(minX3)
+        , maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
+        , nx1(n1)     , nx2(nx2)    , nx3(nx3)
+   {
+      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
+         throw UbException(UB_EXARGS,"range error");
+   }
+   /*==========================================================*/
+   inline real getData(const int& x1, const int& x2, const int& x3 ) const
+   {
+      return static_cast<real>( (*matrix)(x1, x2, x3) );
+   }
+   /*==========================================================*/
+   inline int getMinX1() const { return minX1; }  
+   inline int getMinX2() const { return minX2; }  
+   inline int getMinX3() const { return minX3; }  
+
+   inline int getMaxX1() const { return maxX1; }  
+   inline int getMaxX2() const { return maxX2; }  
+   inline int getMaxX3() const { return maxX3; }  
+
+   inline int getNX1()   const { return nx1;   }  
+   inline int getNX2()   const { return nx2;   }  
+   inline int getNX3()   const { return nx3;   }  
+
+protected:
+   Matrix3D* matrix;
+   int minX1, minX2, minX3, maxX1, maxX2, maxX3, nx1, nx2, nx3;
+};
+
+} //namespace McCubes
+
+#endif //MATRIX3DWRAPPER_H
diff --git a/3rdParty/MarchingCubes/Matrix4DWrapper.h b/3rdParty/MarchingCubes/Matrix4DWrapper.h
index bbfc29a0c..dda3e3fb9 100644
--- a/3rdParty/MarchingCubes/Matrix4DWrapper.h
+++ b/3rdParty/MarchingCubes/Matrix4DWrapper.h
@@ -1,131 +1,131 @@
-//  _    ___      __              __________      _     __
-// | |  / (_)____/ /___  ______ _/ / ____/ /_  __(_)___/ /____
-// | | / / / ___/ __/ / / / __ `/ / /_  / / / / / / __  / ___/
-// | |/ / / /  / /_/ /_/ / /_/ / / __/ / / /_/ / / /_/ (__  )
-// |___/_/_/   \__/\__,_/\__,_/_/_/   /_/\__,_/_/\__,_/____/
-//
-#ifndef MATRIX4DWRAPPER_H
-#define MATRIX4DWRAPPER_H
-
-//extension by CAB
-#include <vector>
-#include <string>
-#include <fstream>
-
-#include <basics/utilities/UbException.h>
-#include <MarchingCubes/McTypes.h>
-
-//neu: matrix muss lediglich double operator()(int x1, int x2, int x3, int x4) ueberladen, dann kann man sie verwenden!!
-
-//////////////////////////////////////////////////////////////////////////
-//Matrix4DWrapper-Wrapper
-//example:
-//   int indexForDataValue = 1;
-//   CbUniformMatrix4D<double> data(10,8,5,2);
-//   for(int x3=0; x3<data.getNX3(); x3++)
-//    for(int x2=0; x2<data.getNX2(); x2++)
-//      for(int x1=0; x1<data.getNX1(); x1++)
-//        data(x1,x2,x3,indexForDataValue) = x1;
-//
-//   Matrix4DWrapper< CbUniformMatrix4D<double> > wrapper(&data,indexForDataValue);
-//   MarchingCubes< Matrix4DWrapper< CbUniformMatrix4D<double> > > mc( wrapper );
-//
-//   mc.init_all();
-//   mc.run(3.5);
-//   mc.writeUCD("c:/temp/triangles.inp");
-//   mc.clean_all();
-
-namespace McCubes{
-
-template< typename Matrix4D >
-class Matrix4DWrapper
-{
-public:
-   Matrix4DWrapper() 
-      :  valIndex(-1), matrix(NULL)
-       , minX1(-1), minX2(-1), minX3(-1)
-       , maxX1(-1), maxX2(-1), maxX3(-1)
-       , nx1(-1)  , nx2(-1)  , nx3(-1)
-   {
-      //wird benoetigt, damit MarchingCubes generell eine membervariabel erstellen kann
-   }
-   /*==========================================================*/
-   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex,const int& n1, const int& nx2, const int& nx3)
-      :  valIndex(valIndex), matrix(matrix)
-       , nx1(nx1), nx2(nx2), nx3(nx3)
-   {
-      minX1 = minX2 = minX3 = 0;
-      maxX1 = nx1-1;
-      maxX2 = nx2-1;
-      maxX3 = nx3-1;
-   }
-   /*==========================================================*/
-   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex)
-      : valIndex(valIndex), matrix(matrix)
-   {
-      nx1 = matrix->getNX1();
-      nx2 = matrix->getNX2();
-      nx3 = matrix->getNX3();
-
-      minX1 = minX2 = minX3 = 0;
-      maxX1 = nx1-1;
-      maxX2 = nx2-1;
-      maxX3 = nx3-1;
-   }
-   /*==========================================================*/
-   //wenn man z.B. matrixX1 von[0..10] geht und man nur den bereich 1..9 fuer MC
-   //verwenden moechte -> minX1=1 und maxX2=2
-   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex, const int& minX1, const int& minX2, const int& minX3,
-                                                           const int& maxX1, const int& maxX2, const int& maxX3)
-       :  valIndex(valIndex), matrix(matrix)
-        , minX1(minX1), minX2(minX2), minX3(minX3)
-        , maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
-   {
-      nx1 = matrix->getNX1();
-      nx2 = matrix->getNX2();
-      nx3 = matrix->getNX3();
-
-      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
-         throw UbException(UB_EXARGS,"range error");
-   }
-   /*==========================================================*/
-   //wenn man z.B. matrixX1 von[0..10] geht und man nur den bereich 1..9 fuer MC
-   //verwenden moechte -> minX1=1 und maxX2=2
-   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex, const int& minX1, const int& minX2, const int& minX3
-                                                         , const int& maxX1, const int& maxX2, const int& maxX3
-                                                         , const int& n1   , const int& nx2  , const int& nx3   )
-      :  valIndex(valIndex), matrix(matrix)
-       , minX1(minX1), minX2(minX2), minX3(minX3)
-       , maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
-       , nx1(nx1)    , nx2(nx2)    , nx3(nx3)
-   {
-      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
-         throw UbException(UB_EXARGS,"range error");
-   }
-   /*==========================================================*/
-   inline real getData(const int& x1, const int& x2, const int& x3 ) const
-   {
-      return static_cast<real>( (*matrix)(x1, x2, x3, valIndex) );
-   }
-   /*==========================================================*/
-   inline int getMinX1() const { return minX1; }  
-   inline int getMinX2() const { return minX2; }  
-   inline int getMinX3() const { return minX3; }  
-
-   inline int getMaxX1() const { return maxX1; }  
-   inline int getMaxX2() const { return maxX2; }  
-   inline int getMaxX3() const { return maxX3; }  
-
-   inline int getNX1()   const { return nx1;   }  
-   inline int getNX2()   const { return nx2;   }  
-   inline int getNX3()   const { return nx3;   }  
-
-protected:
-   int valIndex;
-   Matrix4D* matrix;
-   int minX1, minX2, minX3, maxX1, maxX2, maxX3, nx1, nx2, nx3;
-};
-
-} //namespace McCubes
-
-#endif //MATRIX4DWRAPPER_H
+//  _    ___      __              __________      _     __
+// | |  / (_)____/ /___  ______ _/ / ____/ /_  __(_)___/ /____
+// | | / / / ___/ __/ / / / __ `/ / /_  / / / / / / __  / ___/
+// | |/ / / /  / /_/ /_/ / /_/ / / __/ / / /_/ / / /_/ (__  )
+// |___/_/_/   \__/\__,_/\__,_/_/_/   /_/\__,_/_/\__,_/____/
+//
+#ifndef MATRIX4DWRAPPER_H
+#define MATRIX4DWRAPPER_H
+
+//extension by CAB
+#include <vector>
+#include <string>
+#include <fstream>
+
+#include <basics/utilities/UbException.h>
+#include <MarchingCubes/McTypes.h>
+
+//neu: matrix muss lediglich double operator()(int x1, int x2, int x3, int x4) ueberladen, dann kann man sie verwenden!!
+
+//////////////////////////////////////////////////////////////////////////
+//Matrix4DWrapper-Wrapper
+//example:
+//   int indexForDataValue = 1;
+//   CbUniformMatrix4D<double> data(10,8,5,2);
+//   for(int x3=0; x3<data.getNX3(); x3++)
+//    for(int x2=0; x2<data.getNX2(); x2++)
+//      for(int x1=0; x1<data.getNX1(); x1++)
+//        data(x1,x2,x3,indexForDataValue) = x1;
+//
+//   Matrix4DWrapper< CbUniformMatrix4D<double> > wrapper(&data,indexForDataValue);
+//   MarchingCubes< Matrix4DWrapper< CbUniformMatrix4D<double> > > mc( wrapper );
+//
+//   mc.init_all();
+//   mc.run(3.5);
+//   mc.writeUCD("c:/temp/triangles.inp");
+//   mc.clean_all();
+
+namespace McCubes{
+
+template< typename Matrix4D >
+class Matrix4DWrapper
+{
+public:
+   Matrix4DWrapper() 
+      :  valIndex(-1), matrix(NULL)
+       , minX1(-1), minX2(-1), minX3(-1)
+       , maxX1(-1), maxX2(-1), maxX3(-1)
+       , nx1(-1)  , nx2(-1)  , nx3(-1)
+   {
+      //wird benoetigt, damit MarchingCubes generell eine membervariabel erstellen kann
+   }
+   /*==========================================================*/
+   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex,const int& n1, const int& nx2, const int& nx3)
+      :  valIndex(valIndex), matrix(matrix)
+       , nx1(nx1), nx2(nx2), nx3(nx3)
+   {
+      minX1 = minX2 = minX3 = 0;
+      maxX1 = nx1-1;
+      maxX2 = nx2-1;
+      maxX3 = nx3-1;
+   }
+   /*==========================================================*/
+   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex)
+      : valIndex(valIndex), matrix(matrix)
+   {
+      nx1 = matrix->getNX1();
+      nx2 = matrix->getNX2();
+      nx3 = matrix->getNX3();
+
+      minX1 = minX2 = minX3 = 0;
+      maxX1 = nx1-1;
+      maxX2 = nx2-1;
+      maxX3 = nx3-1;
+   }
+   /*==========================================================*/
+   //wenn man z.B. matrixX1 von[0..10] geht und man nur den bereich 1..9 fuer MC
+   //verwenden moechte -> minX1=1 und maxX2=2
+   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex, const int& minX1, const int& minX2, const int& minX3,
+                                                           const int& maxX1, const int& maxX2, const int& maxX3)
+       :  valIndex(valIndex), matrix(matrix)
+        , minX1(minX1), minX2(minX2), minX3(minX3)
+        , maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
+   {
+      nx1 = matrix->getNX1();
+      nx2 = matrix->getNX2();
+      nx3 = matrix->getNX3();
+
+      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
+         throw UbException(UB_EXARGS,"range error");
+   }
+   /*==========================================================*/
+   //wenn man z.B. matrixX1 von[0..10] geht und man nur den bereich 1..9 fuer MC
+   //verwenden moechte -> minX1=1 und maxX2=2
+   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex, const int& minX1, const int& minX2, const int& minX3
+                                                         , const int& maxX1, const int& maxX2, const int& maxX3
+                                                         , const int& n1   , const int& nx2  , const int& nx3   )
+      :  valIndex(valIndex), matrix(matrix)
+       , minX1(minX1), minX2(minX2), minX3(minX3)
+       , maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
+       , nx1(nx1)    , nx2(nx2)    , nx3(nx3)
+   {
+      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
+         throw UbException(UB_EXARGS,"range error");
+   }
+   /*==========================================================*/
+   inline real getData(const int& x1, const int& x2, const int& x3 ) const
+   {
+      return static_cast<real>( (*matrix)(x1, x2, x3, valIndex) );
+   }
+   /*==========================================================*/
+   inline int getMinX1() const { return minX1; }  
+   inline int getMinX2() const { return minX2; }  
+   inline int getMinX3() const { return minX3; }  
+
+   inline int getMaxX1() const { return maxX1; }  
+   inline int getMaxX2() const { return maxX2; }  
+   inline int getMaxX3() const { return maxX3; }  
+
+   inline int getNX1()   const { return nx1;   }  
+   inline int getNX2()   const { return nx2;   }  
+   inline int getNX3()   const { return nx3;   }  
+
+protected:
+   int valIndex;
+   Matrix4D* matrix;
+   int minX1, minX2, minX3, maxX1, maxX2, maxX3, nx1, nx2, nx3;
+};
+
+} //namespace McCubes
+
+#endif //MATRIX4DWRAPPER_H
diff --git a/3rdParty/MarchingCubes/McWrapper.h b/3rdParty/MarchingCubes/McWrapper.h
index e1df35141..b36a2a7ea 100644
--- a/3rdParty/MarchingCubes/McWrapper.h
+++ b/3rdParty/MarchingCubes/McWrapper.h
@@ -1,305 +1,305 @@
-// _    ___      __              __________      _     __
-//| |  / (_)____/ /___  ______ _/ / ____/ /_  __(_)___/ /____
-//| | / / / ___/ __/ / / / __ `/ / /_  / / / / / / __  / ___/
-//| |/ / / /  / /_/ /_/ / /_/ / / __/ / / /_/ / / /_/ (__  )
-//|___/_/_/   \__/\__,_/\__,_/_/_/   /_/\__,_/_/\__,_/____/
-//
-//#ifndef MCWRAPPER_H
-//#define MCWRAPPER_H
-//
-//extension by CAB
-//#include <vector>
-//#include <string>
-//#include <fstream>
-//
-//#include <basics/utilities/UbException.h>
-//#include <basics/container/CbUniformMatrix3D.h>
-//#include <basics/container/CbUniformMatrix4D.h>
-//
-//#include <3rdParty/MarchingCubes/McTypes.h>
-//
-//namespace McCubes{
-//
-//////////////////////////////////////////////////////////////////////////
-//Standard-Wrapper
-//  MarchingCubes<DataWrapper> mc( 10,8,5 );
-//  for(int z=0; z<mc.size_z(); z++)
-//   for(int y=0; y<mc.size_y(); y++)
-//     for(int x=0; x<mc.size_x(); x++)
-//       mc.set_data(x,x,y,z);
-//
-//  //mc.set_method(false) //<-MC methode, STD=false
-//  mc.init_all();
-//
-//  mc.run(3.5);
-//  mc.writeUCD("c:/temp/triangles.inp");
-//  mc.clean_all();
-
-//template< typename T=real >
-//class McDataWrapper
-//{
-//public:
-//   typedef T                                                   value_type;
-//   typedef typename std::vector< value_type >::reference       reference;
-//   typedef typename std::vector< value_type >::const_reference const_reference;
-//   typedef typename std::vector< value_type >::pointer         pointer;
-//   typedef typename std::vector< value_type >::const_pointer   const_pointer;
-//
-//public:
-//   McDataWrapper() : size_x1(-1), size_x2(-1), size_x3(-1)
-//   {
-//   }
-//   /*==========================================================*/
-//   McDataWrapper(const int& size_x1, const int& size_x2, const int& size_x3, const T& initVal=T())
-//   {
-//      this->resize(size_x1,size_x2,size_x3,initVal);
-//   }
-//   /*=======================================================================*/
-//   reference operator() (const int& x1, const int& x2, const int& x3)
-//   {
-//      #ifdef _DEBUG
-//         return this->data.at(x1 + x2*size_x1 + x3*size_x1*size_x2);
-//      #else
-//         return this->data[x1 + x2*size_x1 + x3*size_x1*size_x2];
-//      #endif
-//   }
-//   /*=======================================================================*/
-//   const_reference operator() (const int& x1, const int& x2, const int& x3)	const
-//   {
-//      #ifdef _DEBUG
-//         return this->data.at(x1 + x2*size_x1 + x3*size_x1*size_x2);
-//      #else
-//         return this->data[x1 + x2*size_x1 + x3*size_x1*size_x2];
-//      #endif
-//   }
-//   /*==========================================================*/
-//   inline void setData( const T& val, const int& x1, const int& x2, const int& x3 )
-//   {
-//      #ifdef _DEBUG
-//         this->data.at(x1 + x2*size_x1 + x3*size_x1*size_x2) = val;
-//      #else
-//         this->data[x1 + x2*size_x1 + x3*size_x1*size_x2] = val;
-//      #endif
-//   }
-//   /*==========================================================*/
-//   inline value_type getData(const int& x1, const int& x2, const int& x3 ) const
-//   {
-//      #ifdef _DEBUG
-//         return this->data.at(x1 + x2*size_x1 + x3*size_x1*size_x2);
-//      #else
-//         return this->data[x1 + x2*size_x1 + x3*size_x1*size_x2];
-//      #endif
-//   }
-//   /*==========================================================*/
-//   inline void resize(const int& size_x1, const int& size_x2, const int& size_x3)
-//   {
-//      if(size_x1>0 && size_x2>0 && size_x3>0)
-//      {
-//         this->size_x1 = size_x1;
-//         this->size_x2 = size_x2;
-//         this->size_x3 = size_x3;
-//         this->data.resize(size_x1*size_x2*size_x3);
-//      }
-//   }
-//   /*==========================================================*/
-//   inline void resize(const int& size_x1, const int& size_x2, const int& size_x3, const T& initVal)
-//   {
-//      if(size_x1>0 && size_x2>0 && size_x3>0)
-//      {
-//         this->size_x1 = size_x1;
-//         this->size_x2 = size_x2;
-//         this->size_x3 = size_x3;
-//         this->data.resize(size_x1*size_x2*size_x3,initVal);
-//      }
-//   }
-//   /*==========================================================*/
-//   int getNX1() const { return size_x1; }
-//   int getNX2() const { return size_x2; }
-//   int getNX3() const { return size_x3; }
-//
-//protected:
-//   std::vector<T> data;
-//   int size_x1, size_x2, size_x3;
-//};
-//
-//////////////////////////////////////////////////////////////////////////
-//Matrix4DWrapper-Wrapper
-//example:
-//  int indexForDataValue = 1;
-//  CbUniformMatrix4D<double> data(10,8,5,2);
-//  for(int x3=0; x3<data.getNX3(); x3++)
-//   for(int x2=0; x2<data.getNX2(); x2++)
-//     for(int x1=0; x1<data.getNX1(); x1++)
-//       data(x1,x2,x3,indexForDataValue) = x1;
-//
-//  Matrix4DWrapper< CbUniformMatrix4D<double> > wrapper(&data,indexForDataValue);
-//  MarchingCubes< Matrix4DWrapper< CbUniformMatrix4D<double> > > mc( wrapper );
-//
-//  mc.init_all();
-//  mc.run(3.5);
-//  mc.writeUCD("c:/temp/triangles.inp");
-//  mc.clean_all();
-//template< typename Matrix4D >
-//class Matrix4DWrapper
-//{
-//public:
-//   typedef typename Matrix4D::value_type value_type;
-//
-//public:
-//   Matrix4DWrapper() : valIndex(-1), matrix(NULL), minX1(-1), minX2(-1), minX3(-1), maxX1(-1), maxX2(-1), maxX3(-1)
-//   {
-//      //wird benoetigt, damit MarchingCubes generell eine membervariabel erstellen kann
-//   }
-//   /*==========================================================*/
-//   //fuer beliebige matrizen
-//   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex)
-//      : valIndex(valIndex), matrix(matrix)
-//   {
-//
-//   }
-//   /*==========================================================*/
-//   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex,const int& n1, const int& nx2, const int& nx3)
-//      : valIndex(valIndex), matrix(matrix), nx1(nx1), nx2(nx2), nx3(nx3)
-//   {
-//      minX1 = minX2 = minX3 = 0;
-//      maxX1 = nx1-1;
-//      maxX2 = nx2-1;
-//      maxX3 = nx3-1;
-//   }
-//   /*==========================================================*/
-//   //wenn man z.B. matrixX1 von[0..10] geht und man nur den bereich 1..9 fuer MC
-//   //verwenden moechte -> minX1=1 und maxX2=2
-//   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex, const int& minX1, const int& minX2, const int& minX3,
-//                                                           const int& maxX1, const int& maxX2, const int& maxX3)
-//       : valIndex(valIndex), matrix(matrix), minX1(minX1), minX2(minX2), minX3(minX3), maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
-//   {
-//      nx1 = matrix->getNX1()-1;
-//      nx2 = matrix->getNX2()-1;
-//      nx3 = matrix->getNX3()-1;
-//
-//      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
-//         throw UbException(UB_EXARGS,"range error");
-//   }
-//   /*==========================================================*/
-//   inline void setData( const real& val, const int& x1, const int& x2, const int& x3 )
-//   {
-//      (*matrix)(minX1+x1, minX2+x2, minX3+x3, valIndex) = static_cast<value_type>(val);
-//   }
-//   /*==========================================================*/
-//   inline value_type getData(const int& x1, const int& x2, const int& x3 ) const
-//   {
-//      return (*matrix)(minX1+x1, minX2+x2, minX3+x3, valIndex);
-//   }
-//   /*==========================================================*/
-//   inline void resize(const int& size_x1, const int& size_x2, const int& size_x3)
-//   {
-//      throw UbException("Matrix4DWrapper::resize(int,int,int) - mit diesem wrapper nicht erlaubt");
-//   }
-//   /*==========================================================*/
-//   inline int getMinX1() const { return minX1; }  
-//   inline int getMinX2() const { return minX2; }  
-//   inline int getMinX3() const { return minX3; }  
-//
-//   inline int getMaxX1() const { return maxX1; }  
-//   inline int getMaxX2() const { return maxX2; }  
-//   inline int getMaxX3() const { return maxX3; }  
-//
-//   inline int getNX1()   const { nx1; }  
-//   inline int getNX2()   const { nx2; }  
-//   inline int getNX3()   const { nx3; }  
-//
-//protected:
-//   int valIndex;
-//   Matrix4D* matrix;
-//   int minX1, minX2, minX3, maxX1, maxX2, maxX3, nx1, nx2, nx3;
-//};
-//
-//////////////////////////////////////////////////////////////////////////
-//Matrix3DWrapper-Wrapper
-//  CbUniformMatrix3D<double> data(10,8,5);
-//  for(int x3=0; x3<data.getNX3(); x3++)
-//   for(int x2=0; x2<data.getNX2(); x2++)
-//     for(int x1=0; x1<data.getNX1(); x1++)
-//       data(x1,x2,x3) = x1;
-//
-//  Matrix3DWrapper< CbUniformMatrix3D<double> > wrapper(&data);
-//  MarchingCubes< Matrix3DWrapper< CbUniformMatrix3D<double> > > mc( wrapper );
-//
-//  mc.init_all();
-//  mc.run(3.5);
-//  mc.writeUCD("c:/temp/triangles.inp");
-//  mc.clean_all();
-//template< typename Matrix3D >
-//class Matrix3DWrapper
-//{
-//public:
-//   typedef typename Matrix3D::value_type value_type;
-//
-//public:
-//   Matrix3DWrapper() : matrix(NULL), minX1(-1), minX2(-1), minX3(-1), maxX1(-1), maxX2(-1), maxX3(-1)
-//   {
-//      //wird benoetigt, damit MarchingCubes generell eine membervariabel erstellen kann
-//   }
-//   /*==========================================================*/
-//   Matrix3DWrapper( Matrix3D* matrix)
-//      : matrix(matrix)
-//   {
-//      minX1 = minX2 = minX3 = 0;
-//      maxX1 = matrix->getNX1();
-//      maxX2 = matrix->getNX2();
-//      maxX3 = matrix->getNX3();
-//
-//      minX1 = minX2 = minX3 = 0;
-//      maxX1 = nx1-1;
-//      maxX2 = nx2-1;
-//      maxX3 = nx3-1;
-//
-//   }
-//   /*==========================================================*/
-//   Matrix3DWrapper( Matrix3D* matrix, const int& minX1, const int& minX2, const int& minX3
-//                                    , const int& maxX1, const int& maxX2, const int& maxX3 )
-//      : matrix(matrix), minX1(minX1), minX2(minX2), minX3(minX3), maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
-//   {
-//
-//   }
-//   /*==========================================================*/
-//   Matrix3DWrapper(const int& size_x1, const int& size_x2, const int& size_x3)
-//   {
-//      throw UbException("Matrix3DWrapper(int,int,int) - mit diesem wrapper nicht erlaubt");
-//   }
-//   /*==========================================================*/
-//   inline void setData( const real& val, const int& x1, const int& x2, const int& x3 )
-//   {
-//      (*matrix)(minX1+x1, minX2+x2, minX3+x3) = static_cast<value_type>(val);
-//   }
-//   /*==========================================================*/
-//   inline value_type getData(const int& x1, const int& x2, const int& x3 ) const
-//   {
-//      return (*matrix)(minX1+x1, minX2+x2, minX3+x3);
-//   }
-//   /*==========================================================*/
-//   inline void resize(const int& size_x1, const int& size_x2, const int& size_x3)
-//   {
-//      throw UbException("Matrix3DWrapper::resize(int,int,int) - mit diesem wrapper nicht erlaubt");
-//   }
-//   /*==========================================================*/
-//   inline int getMinX1() const { return minX1; }  
-//   inline int getMinX2() const { return minX2; }  
-//   inline int getMinX3() const { return minX3; }  
-//
-//   inline int getMaxX1() const { return maxX1; }  
-//   inline int getMaxX2() const { return maxX2; }  
-//   inline int getMaxX3() const { return maxX3; }  
-//
-//   inline int getNX1()   const { nx1; }  
-//   inline int getNX2()   const { nx2; }  
-//   inline int getNX3()   const { nx3; }  
-//
-//protected:
-//   Matrix3D* matrix;
-//   int minX1, minX2, minX3, maxX1, maxX2, maxX3, nx1, nx2, nx3;
-//};
-//
-//} //namespace McCubes
-//
-//#endif //MCWRAPPER_H
+// _    ___      __              __________      _     __
+//| |  / (_)____/ /___  ______ _/ / ____/ /_  __(_)___/ /____
+//| | / / / ___/ __/ / / / __ `/ / /_  / / / / / / __  / ___/
+//| |/ / / /  / /_/ /_/ / /_/ / / __/ / / /_/ / / /_/ (__  )
+//|___/_/_/   \__/\__,_/\__,_/_/_/   /_/\__,_/_/\__,_/____/
+//
+//#ifndef MCWRAPPER_H
+//#define MCWRAPPER_H
+//
+//extension by CAB
+//#include <vector>
+//#include <string>
+//#include <fstream>
+//
+//#include <basics/utilities/UbException.h>
+//#include <basics/container/CbUniformMatrix3D.h>
+//#include <basics/container/CbUniformMatrix4D.h>
+//
+//#include <3rdParty/MarchingCubes/McTypes.h>
+//
+//namespace McCubes{
+//
+//////////////////////////////////////////////////////////////////////////
+//Standard-Wrapper
+//  MarchingCubes<DataWrapper> mc( 10,8,5 );
+//  for(int z=0; z<mc.size_z(); z++)
+//   for(int y=0; y<mc.size_y(); y++)
+//     for(int x=0; x<mc.size_x(); x++)
+//       mc.set_data(x,x,y,z);
+//
+//  //mc.set_method(false) //<-MC methode, STD=false
+//  mc.init_all();
+//
+//  mc.run(3.5);
+//  mc.writeUCD("c:/temp/triangles.inp");
+//  mc.clean_all();
+
+//template< typename T=real >
+//class McDataWrapper
+//{
+//public:
+//   typedef T                                                   value_type;
+//   typedef typename std::vector< value_type >::reference       reference;
+//   typedef typename std::vector< value_type >::const_reference const_reference;
+//   typedef typename std::vector< value_type >::pointer         pointer;
+//   typedef typename std::vector< value_type >::const_pointer   const_pointer;
+//
+//public:
+//   McDataWrapper() : size_x1(-1), size_x2(-1), size_x3(-1)
+//   {
+//   }
+//   /*==========================================================*/
+//   McDataWrapper(const int& size_x1, const int& size_x2, const int& size_x3, const T& initVal=T())
+//   {
+//      this->resize(size_x1,size_x2,size_x3,initVal);
+//   }
+//   /*=======================================================================*/
+//   reference operator() (const int& x1, const int& x2, const int& x3)
+//   {
+//      #ifdef _DEBUG
+//         return this->data.at(x1 + x2*size_x1 + x3*size_x1*size_x2);
+//      #else
+//         return this->data[x1 + x2*size_x1 + x3*size_x1*size_x2];
+//      #endif
+//   }
+//   /*=======================================================================*/
+//   const_reference operator() (const int& x1, const int& x2, const int& x3)	const
+//   {
+//      #ifdef _DEBUG
+//         return this->data.at(x1 + x2*size_x1 + x3*size_x1*size_x2);
+//      #else
+//         return this->data[x1 + x2*size_x1 + x3*size_x1*size_x2];
+//      #endif
+//   }
+//   /*==========================================================*/
+//   inline void setData( const T& val, const int& x1, const int& x2, const int& x3 )
+//   {
+//      #ifdef _DEBUG
+//         this->data.at(x1 + x2*size_x1 + x3*size_x1*size_x2) = val;
+//      #else
+//         this->data[x1 + x2*size_x1 + x3*size_x1*size_x2] = val;
+//      #endif
+//   }
+//   /*==========================================================*/
+//   inline value_type getData(const int& x1, const int& x2, const int& x3 ) const
+//   {
+//      #ifdef _DEBUG
+//         return this->data.at(x1 + x2*size_x1 + x3*size_x1*size_x2);
+//      #else
+//         return this->data[x1 + x2*size_x1 + x3*size_x1*size_x2];
+//      #endif
+//   }
+//   /*==========================================================*/
+//   inline void resize(const int& size_x1, const int& size_x2, const int& size_x3)
+//   {
+//      if(size_x1>0 && size_x2>0 && size_x3>0)
+//      {
+//         this->size_x1 = size_x1;
+//         this->size_x2 = size_x2;
+//         this->size_x3 = size_x3;
+//         this->data.resize(size_x1*size_x2*size_x3);
+//      }
+//   }
+//   /*==========================================================*/
+//   inline void resize(const int& size_x1, const int& size_x2, const int& size_x3, const T& initVal)
+//   {
+//      if(size_x1>0 && size_x2>0 && size_x3>0)
+//      {
+//         this->size_x1 = size_x1;
+//         this->size_x2 = size_x2;
+//         this->size_x3 = size_x3;
+//         this->data.resize(size_x1*size_x2*size_x3,initVal);
+//      }
+//   }
+//   /*==========================================================*/
+//   int getNX1() const { return size_x1; }
+//   int getNX2() const { return size_x2; }
+//   int getNX3() const { return size_x3; }
+//
+//protected:
+//   std::vector<T> data;
+//   int size_x1, size_x2, size_x3;
+//};
+//
+//////////////////////////////////////////////////////////////////////////
+//Matrix4DWrapper-Wrapper
+//example:
+//  int indexForDataValue = 1;
+//  CbUniformMatrix4D<double> data(10,8,5,2);
+//  for(int x3=0; x3<data.getNX3(); x3++)
+//   for(int x2=0; x2<data.getNX2(); x2++)
+//     for(int x1=0; x1<data.getNX1(); x1++)
+//       data(x1,x2,x3,indexForDataValue) = x1;
+//
+//  Matrix4DWrapper< CbUniformMatrix4D<double> > wrapper(&data,indexForDataValue);
+//  MarchingCubes< Matrix4DWrapper< CbUniformMatrix4D<double> > > mc( wrapper );
+//
+//  mc.init_all();
+//  mc.run(3.5);
+//  mc.writeUCD("c:/temp/triangles.inp");
+//  mc.clean_all();
+//template< typename Matrix4D >
+//class Matrix4DWrapper
+//{
+//public:
+//   typedef typename Matrix4D::value_type value_type;
+//
+//public:
+//   Matrix4DWrapper() : valIndex(-1), matrix(NULL), minX1(-1), minX2(-1), minX3(-1), maxX1(-1), maxX2(-1), maxX3(-1)
+//   {
+//      //wird benoetigt, damit MarchingCubes generell eine membervariabel erstellen kann
+//   }
+//   /*==========================================================*/
+//   //fuer beliebige matrizen
+//   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex)
+//      : valIndex(valIndex), matrix(matrix)
+//   {
+//
+//   }
+//   /*==========================================================*/
+//   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex,const int& n1, const int& nx2, const int& nx3)
+//      : valIndex(valIndex), matrix(matrix), nx1(nx1), nx2(nx2), nx3(nx3)
+//   {
+//      minX1 = minX2 = minX3 = 0;
+//      maxX1 = nx1-1;
+//      maxX2 = nx2-1;
+//      maxX3 = nx3-1;
+//   }
+//   /*==========================================================*/
+//   //wenn man z.B. matrixX1 von[0..10] geht und man nur den bereich 1..9 fuer MC
+//   //verwenden moechte -> minX1=1 und maxX2=2
+//   Matrix4DWrapper( Matrix4D* matrix, const int& valIndex, const int& minX1, const int& minX2, const int& minX3,
+//                                                           const int& maxX1, const int& maxX2, const int& maxX3)
+//       : valIndex(valIndex), matrix(matrix), minX1(minX1), minX2(minX2), minX3(minX3), maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
+//   {
+//      nx1 = matrix->getNX1()-1;
+//      nx2 = matrix->getNX2()-1;
+//      nx3 = matrix->getNX3()-1;
+//
+//      if(minX1<0 || minX2<0 || minX3<0 || maxX1>=nx1 || maxX2>=nx2 || maxX3>=nx3)
+//         throw UbException(UB_EXARGS,"range error");
+//   }
+//   /*==========================================================*/
+//   inline void setData( const real& val, const int& x1, const int& x2, const int& x3 )
+//   {
+//      (*matrix)(minX1+x1, minX2+x2, minX3+x3, valIndex) = static_cast<value_type>(val);
+//   }
+//   /*==========================================================*/
+//   inline value_type getData(const int& x1, const int& x2, const int& x3 ) const
+//   {
+//      return (*matrix)(minX1+x1, minX2+x2, minX3+x3, valIndex);
+//   }
+//   /*==========================================================*/
+//   inline void resize(const int& size_x1, const int& size_x2, const int& size_x3)
+//   {
+//      throw UbException("Matrix4DWrapper::resize(int,int,int) - mit diesem wrapper nicht erlaubt");
+//   }
+//   /*==========================================================*/
+//   inline int getMinX1() const { return minX1; }  
+//   inline int getMinX2() const { return minX2; }  
+//   inline int getMinX3() const { return minX3; }  
+//
+//   inline int getMaxX1() const { return maxX1; }  
+//   inline int getMaxX2() const { return maxX2; }  
+//   inline int getMaxX3() const { return maxX3; }  
+//
+//   inline int getNX1()   const { nx1; }  
+//   inline int getNX2()   const { nx2; }  
+//   inline int getNX3()   const { nx3; }  
+//
+//protected:
+//   int valIndex;
+//   Matrix4D* matrix;
+//   int minX1, minX2, minX3, maxX1, maxX2, maxX3, nx1, nx2, nx3;
+//};
+//
+//////////////////////////////////////////////////////////////////////////
+//Matrix3DWrapper-Wrapper
+//  CbUniformMatrix3D<double> data(10,8,5);
+//  for(int x3=0; x3<data.getNX3(); x3++)
+//   for(int x2=0; x2<data.getNX2(); x2++)
+//     for(int x1=0; x1<data.getNX1(); x1++)
+//       data(x1,x2,x3) = x1;
+//
+//  Matrix3DWrapper< CbUniformMatrix3D<double> > wrapper(&data);
+//  MarchingCubes< Matrix3DWrapper< CbUniformMatrix3D<double> > > mc( wrapper );
+//
+//  mc.init_all();
+//  mc.run(3.5);
+//  mc.writeUCD("c:/temp/triangles.inp");
+//  mc.clean_all();
+//template< typename Matrix3D >
+//class Matrix3DWrapper
+//{
+//public:
+//   typedef typename Matrix3D::value_type value_type;
+//
+//public:
+//   Matrix3DWrapper() : matrix(NULL), minX1(-1), minX2(-1), minX3(-1), maxX1(-1), maxX2(-1), maxX3(-1)
+//   {
+//      //wird benoetigt, damit MarchingCubes generell eine membervariabel erstellen kann
+//   }
+//   /*==========================================================*/
+//   Matrix3DWrapper( Matrix3D* matrix)
+//      : matrix(matrix)
+//   {
+//      minX1 = minX2 = minX3 = 0;
+//      maxX1 = matrix->getNX1();
+//      maxX2 = matrix->getNX2();
+//      maxX3 = matrix->getNX3();
+//
+//      minX1 = minX2 = minX3 = 0;
+//      maxX1 = nx1-1;
+//      maxX2 = nx2-1;
+//      maxX3 = nx3-1;
+//
+//   }
+//   /*==========================================================*/
+//   Matrix3DWrapper( Matrix3D* matrix, const int& minX1, const int& minX2, const int& minX3
+//                                    , const int& maxX1, const int& maxX2, const int& maxX3 )
+//      : matrix(matrix), minX1(minX1), minX2(minX2), minX3(minX3), maxX1(maxX1), maxX2(maxX2), maxX3(maxX3)
+//   {
+//
+//   }
+//   /*==========================================================*/
+//   Matrix3DWrapper(const int& size_x1, const int& size_x2, const int& size_x3)
+//   {
+//      throw UbException("Matrix3DWrapper(int,int,int) - mit diesem wrapper nicht erlaubt");
+//   }
+//   /*==========================================================*/
+//   inline void setData( const real& val, const int& x1, const int& x2, const int& x3 )
+//   {
+//      (*matrix)(minX1+x1, minX2+x2, minX3+x3) = static_cast<value_type>(val);
+//   }
+//   /*==========================================================*/
+//   inline value_type getData(const int& x1, const int& x2, const int& x3 ) const
+//   {
+//      return (*matrix)(minX1+x1, minX2+x2, minX3+x3);
+//   }
+//   /*==========================================================*/
+//   inline void resize(const int& size_x1, const int& size_x2, const int& size_x3)
+//   {
+//      throw UbException("Matrix3DWrapper::resize(int,int,int) - mit diesem wrapper nicht erlaubt");
+//   }
+//   /*==========================================================*/
+//   inline int getMinX1() const { return minX1; }  
+//   inline int getMinX2() const { return minX2; }  
+//   inline int getMinX3() const { return minX3; }  
+//
+//   inline int getMaxX1() const { return maxX1; }  
+//   inline int getMaxX2() const { return maxX2; }  
+//   inline int getMaxX3() const { return maxX3; }  
+//
+//   inline int getNX1()   const { nx1; }  
+//   inline int getNX2()   const { nx2; }  
+//   inline int getNX3()   const { nx3; }  
+//
+//protected:
+//   Matrix3D* matrix;
+//   int minX1, minX2, minX3, maxX1, maxX2, maxX3, nx1, nx2, nx3;
+//};
+//
+//} //namespace McCubes
+//
+//#endif //MCWRAPPER_H
diff --git a/3rdParty/fftw/fftw-3.3.7/CMakeLists.txt b/3rdParty/fftw/fftw-3.3.7/CMakeLists.txt
index e2155c440..52e70d7d0 100644
--- a/3rdParty/fftw/fftw-3.3.7/CMakeLists.txt
+++ b/3rdParty/fftw/fftw-3.3.7/CMakeLists.txt
@@ -10,8 +10,8 @@ if (POLICY CMP0042)
   cmake_policy (SET CMP0042 NEW)
 endif ()
 
-option (BUILD_SHARED_LIBS "Build shared libraries" ON)
-option (BUILD_TESTS "Build tests" OFF)
+#option (BUILD_SHARED_LIBS "Build shared libraries" ON)
+#option (BUILD_TESTS "Build tests" OFF)
 
 option (ENABLE_OPENMP "Use OpenMP for multithreading" OFF)
 option (ENABLE_THREADS "Use pthread for multithreading" OFF)
@@ -335,7 +335,8 @@ if (OPENMP_FOUND)
   target_compile_options (${fftw3_lib}_omp PRIVATE ${OpenMP_C_FLAGS})
 endif ()
 
-groupTarget(${fftw3_lib} ${thirdPartyFolder})
+groupTarget(${fftw3_lib} ${thirdFolder})
+target_include_directories(${fftw3_lib} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/api)
 
 foreach(subtarget ${subtargets})
   set_target_properties (${subtarget} PROPERTIES SOVERSION 3.5.7 VERSION 3)
@@ -344,16 +345,23 @@ foreach(subtarget ${subtargets})
 	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
           ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endforeach ()
-install(TARGETS ${fftw3_lib}
-          EXPORT FFTW3LibraryDepends
-          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-
-install (FILES api/fftw3.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-if (EXISTS api/fftw3.f)
-  install (FILES api/fftw3.f DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-endif ()
+#install(TARGETS ${fftw3_lib}
+#          EXPORT FFTW3LibraryDepends
+#          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+#          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+#          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+set_target_properties(${fftw3_lib}
+        PROPERTIES
+        RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+        LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+        ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+        PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
+
+#install (FILES api/fftw3.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+#if (EXISTS api/fftw3.f)
+#  install (FILES api/fftw3.f DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+#endif ()
 
 if (BUILD_TESTS)
 
@@ -380,30 +388,30 @@ if (BUILD_TESTS)
   endif ()
 endif ()
 
-# pkgconfig file
-set (prefix ${CMAKE_INSTALL_PREFIX})
-set (exec_prefix ${CMAKE_INSTALL_PREFIX})
-set (libdir ${CMAKE_INSTALL_FULL_LIBDIR})
-set (includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
-set (VERSION ${FFTW_VERSION})
-configure_file (fftw.pc.in fftw${PREC_SUFFIX}.pc @ONLY)
-install (FILES
-          ${CMAKE_CURRENT_BINARY_DIR}/fftw${PREC_SUFFIX}.pc
-         DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
-         COMPONENT Development)
-
-# cmake file
-set (FFTW3_LIBRARIES "FFTW3::${fftw3_lib}")
-configure_file (FFTW3Config.cmake.in FFTW3${PREC_SUFFIX}Config.cmake @ONLY)
-configure_file (FFTW3ConfigVersion.cmake.in FFTW3${PREC_SUFFIX}ConfigVersion.cmake @ONLY)
-install (FILES
-          ${CMAKE_CURRENT_BINARY_DIR}/FFTW3${PREC_SUFFIX}Config.cmake
-          ${CMAKE_CURRENT_BINARY_DIR}/FFTW3${PREC_SUFFIX}ConfigVersion.cmake
-	  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/fftw3${PREC_SUFFIX}
-         COMPONENT Development)
-
-export (TARGETS ${fftw3_lib} NAMESPACE FFTW3:: FILE ${PROJECT_BINARY_DIR}/FFTW3LibraryDepends.cmake)
-install(EXPORT FFTW3LibraryDepends
-        NAMESPACE FFTW3::
-        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/fftw3${PREC_SUFFIX}
-        COMPONENT Development)
+## pkgconfig file
+#set (prefix ${CMAKE_INSTALL_PREFIX})
+#set (exec_prefix ${CMAKE_INSTALL_PREFIX})
+#set (libdir ${CMAKE_INSTALL_FULL_LIBDIR})
+#set (includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
+#set (VERSION ${FFTW_VERSION})
+#configure_file (fftw.pc.in fftw${PREC_SUFFIX}.pc @ONLY)
+#install (FILES
+#          ${CMAKE_CURRENT_BINARY_DIR}/fftw${PREC_SUFFIX}.pc
+#         DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+#         COMPONENT Development)
+#
+## cmake file
+#set (FFTW3_LIBRARIES "FFTW3::${fftw3_lib}")
+#configure_file (FFTW3Config.cmake.in FFTW3${PREC_SUFFIX}Config.cmake @ONLY)
+#configure_file (FFTW3ConfigVersion.cmake.in FFTW3${PREC_SUFFIX}ConfigVersion.cmake @ONLY)
+#install (FILES
+#          ${CMAKE_CURRENT_BINARY_DIR}/FFTW3${PREC_SUFFIX}Config.cmake
+#          ${CMAKE_CURRENT_BINARY_DIR}/FFTW3${PREC_SUFFIX}ConfigVersion.cmake
+#	  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/fftw3${PREC_SUFFIX}
+#         COMPONENT Development)
+#
+#export (TARGETS ${fftw3_lib} NAMESPACE FFTW3:: FILE ${PROJECT_BINARY_DIR}/FFTW3LibraryDepends.cmake)
+#install(EXPORT FFTW3LibraryDepends
+#        NAMESPACE FFTW3::
+#        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/fftw3${PREC_SUFFIX}
+#        COMPONENT Development)
diff --git a/CMake/CMakeSetCompilerFlags.cmake b/CMake/CMakeSetCompilerFlags.cmake
index 9ecf18701..b00a17fdb 100644
--- a/CMake/CMakeSetCompilerFlags.cmake
+++ b/CMake/CMakeSetCompilerFlags.cmake
@@ -1,89 +1,89 @@
-
-###############################################################
-# set hostname -> CAB_MACHINE and load an optional config file
-###############################################################
-macro(loadMachineFile)
-
-    IF(NOT CAB_MACHINE)
-        SET(CAB_MACHINE $ENV{CAB_MACHINE})
-
-        IF( CAB_MACHINE )
-            STRING(TOUPPER  "${CAB_MACHINE}" CAB_MACHINE)
-        ELSE()
-            EXECUTE_PROCESS( COMMAND hostname OUTPUT_VARIABLE CAB_MACHINE)
-            STRING(REGEX REPLACE "[ ]*([A-Za-z0-9]+).*[\\\\n]*" "\\1" CAB_MACHINE "${CAB_MACHINE}" )
-            STRING(TOUPPER  "${CAB_MACHINE}" CAB_MACHINE)
-        ENDIF()
-    ENDIF()
-
-    LIST(APPEND VF_COMPILER_DEFINITION CAB_MACHINE=${CAB_MACHINE})
-    SET(CMAKE_CONFIG_FILE "${VF_CMAKE_DIR}/cmake_config_files/${CAB_MACHINE}.config.cmake")
-
-    IF(NOT EXISTS ${CMAKE_CONFIG_FILE})
-        status("No configuration file found.")
-    ELSE()
-        status("Load configuration file ${CAB_MACHINE}.config.cmake")
-        include(${CMAKE_CONFIG_FILE})
-    ENDIF()
-
-endmacro()
-
-
-################################################################
-###               SET_COMPILER_SPECIFIC_FLAGS                ###
-###  determines compiler flags variables                     ###
-################################################################
-macro(loadCompilerFlags)
-
-  SET(CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "")
-  SET(CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "")
-  SET(CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE "")
-
-   # https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html#variable:CMAKE_<LANG>_COMPILER_ID
-
-   IF( SPECIFIC_COMPILER_FLAG_FILE )
-       include( ${SPECIFIC_COMPILER_FLAG_FILE})
-   ELSEIF( EXISTS "${VF_CMAKE_DIR}/compilerflags/${CMAKE_CXX_COMPILER_ID}.cmake" )
-       status("Load compiler file: ${CMAKE_CXX_COMPILER_ID}.cmake")
-	   include(${VF_CMAKE_DIR}/compilerflags/${CMAKE_CXX_COMPILER_ID}.cmake)
-	ELSE()
-	   MESSAGE(FATAL_ERROR "compiler=${CMAKE_CXX_COMPILER_ID} seems to be a not supported compiler")
-	ENDIF()
-
-endmacro()
-
-################################################################
-###             ADD_COMPILER_FLAGS_TO_PROJECT                ###
-################################################################
-function(addAdditionalFlags project_name)
-
-    status_lib("additional compiler flags CXX: ${CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS}")
-    status_lib("additional compiler flags CXX debug: ${CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG}")
-    status_lib("additional compiler flags CXX release: ${CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE}")
-    status_lib("additional compiler definitions: ${VF_COMPILER_DEFINITION}")
-    status_lib("additional linker flags: ${VF_LINK_OPTIONS}")
-
-    # compile definitions
-    foreach(flag IN LISTS VF_COMPILER_DEFINITION)
-        target_compile_definitions(${library_name} PRIVATE ${flag})
-    endforeach()
-
-    # link options
-    foreach(flag IN LISTS VF_LINK_OPTIONS) #TODO: check what happens when lib is static
-        target_link_options(${library_name} PRIVATE ${flag})
-    endforeach()
-
-    # compile options
-    foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS)
-        target_compile_options(${project_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:${flag}>")
-    endforeach()
-
-    foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG)
-        target_compile_options(${project_name} PRIVATE "$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>:${flag}>")
-    endforeach()
-
-    foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE)
-        target_compile_options(${project_name} PRIVATE "$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>:${flag}>")
-    endforeach()
-
+
+###############################################################
+# set hostname -> CAB_MACHINE and load an optional config file
+###############################################################
+macro(loadMachineFile)
+
+    IF(NOT CAB_MACHINE)
+        SET(CAB_MACHINE $ENV{CAB_MACHINE})
+
+        IF( CAB_MACHINE )
+            STRING(TOUPPER  "${CAB_MACHINE}" CAB_MACHINE)
+        ELSE()
+            EXECUTE_PROCESS( COMMAND hostname OUTPUT_VARIABLE CAB_MACHINE)
+            STRING(REGEX REPLACE "[ ]*([A-Za-z0-9]+).*[\\\\n]*" "\\1" CAB_MACHINE "${CAB_MACHINE}" )
+            STRING(TOUPPER  "${CAB_MACHINE}" CAB_MACHINE)
+        ENDIF()
+    ENDIF()
+
+    LIST(APPEND VF_COMPILER_DEFINITION CAB_MACHINE=${CAB_MACHINE})
+    SET(CMAKE_CONFIG_FILE "${VF_CMAKE_DIR}/cmake_config_files/${CAB_MACHINE}.config.cmake")
+
+    IF(NOT EXISTS ${CMAKE_CONFIG_FILE})
+        status("No configuration file found.")
+    ELSE()
+        status("Load configuration file ${CAB_MACHINE}.config.cmake")
+        include(${CMAKE_CONFIG_FILE})
+    ENDIF()
+
+endmacro()
+
+
+################################################################
+###               SET_COMPILER_SPECIFIC_FLAGS                ###
+###  determines compiler flags variables                     ###
+################################################################
+macro(loadCompilerFlags)
+
+  SET(CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "")
+  SET(CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "")
+  SET(CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE "")
+
+   # https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html#variable:CMAKE_<LANG>_COMPILER_ID
+
+   IF( SPECIFIC_COMPILER_FLAG_FILE )
+       include( ${SPECIFIC_COMPILER_FLAG_FILE})
+   ELSEIF( EXISTS "${VF_CMAKE_DIR}/compilerflags/${CMAKE_CXX_COMPILER_ID}.cmake" )
+       status("Load compiler file: ${CMAKE_CXX_COMPILER_ID}.cmake")
+	   include(${VF_CMAKE_DIR}/compilerflags/${CMAKE_CXX_COMPILER_ID}.cmake)
+	ELSE()
+	   MESSAGE(FATAL_ERROR "compiler=${CMAKE_CXX_COMPILER_ID} seems to be a not supported compiler")
+	ENDIF()
+
+endmacro()
+
+################################################################
+###             ADD_COMPILER_FLAGS_TO_PROJECT                ###
+################################################################
+function(addAdditionalFlags project_name)
+
+    status_lib("additional compiler flags CXX: ${CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS}")
+    status_lib("additional compiler flags CXX debug: ${CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG}")
+    status_lib("additional compiler flags CXX release: ${CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE}")
+    status_lib("additional compiler definitions: ${VF_COMPILER_DEFINITION}")
+    status_lib("additional linker flags: ${VF_LINK_OPTIONS}")
+
+    # compile definitions
+    foreach(flag IN LISTS VF_COMPILER_DEFINITION)
+        target_compile_definitions(${library_name} PRIVATE ${flag})
+    endforeach()
+
+    # link options
+    foreach(flag IN LISTS VF_LINK_OPTIONS) #TODO: check what happens when lib is static
+        target_link_options(${library_name} PRIVATE ${flag})
+    endforeach()
+
+    # compile options
+    foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS)
+        target_compile_options(${project_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:${flag}>")
+    endforeach()
+
+    foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG)
+        target_compile_options(${project_name} PRIVATE "$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>:${flag}>")
+    endforeach()
+
+    foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE)
+        target_compile_options(${project_name} PRIVATE "$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>:${flag}>")
+    endforeach()
+
 endfunction()
\ No newline at end of file
diff --git a/CMake/cmake_config_files/BOMBADIL.config.cmake b/CMake/cmake_config_files/BOMBADIL.config.cmake
index 7838e2f52..9a205596d 100644
--- a/CMake/cmake_config_files/BOMBADIL.config.cmake
+++ b/CMake/cmake_config_files/BOMBADIL.config.cmake
@@ -1,86 +1,86 @@
-#################################################################################
-# VirtualFluids MACHINE FILE
-# Responsible: Konstantin Kutscher
-# OS:          Windows 10
-#################################################################################
-
-#################################################################################
-# MPI
-#################################################################################
-#SET(MPI_DIR  "C:/Program Files (x86)/mpich2")
-#SET(MPI_DIR  "C:/Program Files/mpich2")
-#SET(USE_MPI_CXX_SYNTAX OFF)
-#SET(MPI_COMPILER "C:/Program Files/mpich2/bin/mpicxx")
-#SET(MPI_INCLUDE_PATH "C:/Program Files (x86)/mpich2/include")
-#SET(MPI_LIBRARY "C:/Program Files/mpich2/lib/libmpi.a")
-#SET(MPI_CXX_LIBRARY "C:/Program Files/MPICH2/lib/cxx.lib")
-#################################################################################
-#  BOOST  
-#################################################################################
-SET(BOOST_VERSION "1.60.0")
-SET(BOOST_ROOT "d:/Tools/boost/boost_1_60_0")
-SET(BOOST_DIR ${BOOST_ROOT})
-SET(BOOST_LIBRARYDIR ${BOOST_ROOT}"/stageMSVC64/lib")  
-#################################################################################
-#  VTK  
-#################################################################################
-set(VTK_DIR "d:/Tools/VTK/build/VTK-8.0.0")
-
-#################################################################################
-#  METIS  
-#################################################################################
-IF(${USE_METIS})
-  SET(METIS_INCLUDEDIR "d:/Tools/metis-5.1.0/include")
-  SET(METIS_DEBUG_LIBRARY "d:/Tools/metis-5.1.0/build/libmetis/Debug/metis.lib") 
-  SET(METIS_RELEASE_LIBRARY "d:/Tools/metis-5.1.0/build/libmetis/Release/metis.lib") 
-  
-  # SET(METIS_INCLUDEDIR "/mnt/d/Tools/metis-5.1.0/include")
-  # SET(METIS_DEBUG_LIBRARY "/mnt/d/Tools/metis-5.1.0/build/Linux-x86_64/libmetis/libmetis.a") 
-  # SET(METIS_RELEASE_LIBRARY "/mnt/d/Tools/metis-5.1.0/build/Linux-x86_64/libmetis/libmetis.a") 
-ENDIF()
-
-#################################################################################
-#  PE  
-#################################################################################
-IF(${USE_DEM_COUPLING})
-  SET(PE_BINARY_DIR "d:/Tools/waLBerla/walberlaGit/build" CACHE PATH "pe binary dir")
-  SET(PE_ROOT "d:/Tools/waLBerla/walberlaGit" CACHE PATH "pe root")
- 
-  SET(PE_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/pe/Debug/pe.lib) 
-  SET(PE_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/pe/Release/pe.lib)
-  SET(BLOCKFOREST_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/blockforest/Debug/blockforest.lib) 
-  SET(BLOCKFOREST_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/blockforest/Release/blockforest.lib)
-  SET(DOMAIN_DECOMPOSITION_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/domain_decomposition/Debug/domain_decomposition.lib) 
-  SET(DOMAIN_DECOMPOSITION_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/domain_decomposition/Release/domain_decomposition.lib)
-  SET(GEOMETRY_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/geometry/Debug/geometry.lib) 
-  SET(GEOMETRY_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/geometry/Release/geometry.lib)
-  SET(CORE_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/core/Debug/core.lib) 
-  SET(CORE_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/core/Release/core.lib)
-
- ENDIF()
-
-##################################################################################
-#  FETOL
-##################################################################################
-IF(${USE_FETOL})
-  SET(FETOL_INCLUDEDIR "d:/Projects/FETOL/dev/CppFETOLlib")
-  SET(FETOL_DEBUG_LIBRARY "d:/Projects/FETOL/dev/CppFETOLlib/build/Debug/fetol.lib") 
-  SET(FETOL_RELEASE_LIBRARY "d:/Projects/FETOL/dev/CppFETOLlib/build/Release/fetol.lib") 
-  
-  SET(YAML_INCLUDEDIR "d:/Tools/yaml-cpp/include")
-  SET(YAML_DEBUG_LIBRARY "d:/Tools/yaml-cpp/buildVS11/Debug/libyaml-cppmdd.lib") 
-  SET(YAML_RELEASE_LIBRARY "d:/Tools/yaml-cpp/buildVS11/Release/libyaml-cppmd.lib") 
-  
-  SET(BOND_INCLUDEDIR "d:/Projects/FETOL/dev/bond_src/cpp/bond/fetol")
-  SET(BOND_DEBUG_LIBRARY "d:/Projects/FETOL/dev/bond_lib/Debug/bond.lib") 
-  SET(BOND_RELEASE_LIBRARY "d:/Projects/FETOL/dev/bond_lib/Release/bond.lib")   
-ENDIF()
-
-##################################################################################
-#  Java
-##############################################################################
-### FindJNI.cmake
-#find_package(JNI REQUIRED) 
-#SET(JNI_INCLUDE_DIRS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2} ${JAVA_AWT_INCLUDE_PATH})
-#SET(JNI_LIBRARIES ${JAVA_AWT_LIBRARY} ${JAVA_JVM_LIBRARY})
+#################################################################################
+# VirtualFluids MACHINE FILE
+# Responsible: Konstantin Kutscher
+# OS:          Windows 10
+#################################################################################
+
+#################################################################################
+# MPI
+#################################################################################
+#SET(MPI_DIR  "C:/Program Files (x86)/mpich2")
+#SET(MPI_DIR  "C:/Program Files/mpich2")
+#SET(USE_MPI_CXX_SYNTAX OFF)
+#SET(MPI_COMPILER "C:/Program Files/mpich2/bin/mpicxx")
+#SET(MPI_INCLUDE_PATH "C:/Program Files (x86)/mpich2/include")
+#SET(MPI_LIBRARY "C:/Program Files/mpich2/lib/libmpi.a")
+#SET(MPI_CXX_LIBRARY "C:/Program Files/MPICH2/lib/cxx.lib")
+#################################################################################
+#  BOOST  
+#################################################################################
+SET(BOOST_VERSION "1.60.0")
+SET(BOOST_ROOT "d:/Tools/boost/boost_1_60_0")
+SET(BOOST_DIR ${BOOST_ROOT})
+SET(BOOST_LIBRARYDIR ${BOOST_ROOT}"/stageMSVC64/lib")  
+#################################################################################
+#  VTK  
+#################################################################################
+set(VTK_DIR "d:/Tools/VTK/build/VTK-8.0.0")
+
+#################################################################################
+#  METIS  
+#################################################################################
+IF(${USE_METIS})
+  SET(METIS_INCLUDEDIR "d:/Tools/metis-5.1.0/include")
+  SET(METIS_DEBUG_LIBRARY "d:/Tools/metis-5.1.0/build/libmetis/Debug/metis.lib") 
+  SET(METIS_RELEASE_LIBRARY "d:/Tools/metis-5.1.0/build/libmetis/Release/metis.lib") 
+  
+  # SET(METIS_INCLUDEDIR "/mnt/d/Tools/metis-5.1.0/include")
+  # SET(METIS_DEBUG_LIBRARY "/mnt/d/Tools/metis-5.1.0/build/Linux-x86_64/libmetis/libmetis.a") 
+  # SET(METIS_RELEASE_LIBRARY "/mnt/d/Tools/metis-5.1.0/build/Linux-x86_64/libmetis/libmetis.a") 
+ENDIF()
+
+#################################################################################
+#  PE  
+#################################################################################
+IF(${USE_DEM_COUPLING})
+  SET(PE_BINARY_DIR "d:/Tools/waLBerla/walberlaGit/build" CACHE PATH "pe binary dir")
+  SET(PE_ROOT "d:/Tools/waLBerla/walberlaGit" CACHE PATH "pe root")
+ 
+  SET(PE_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/pe/Debug/pe.lib) 
+  SET(PE_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/pe/Release/pe.lib)
+  SET(BLOCKFOREST_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/blockforest/Debug/blockforest.lib) 
+  SET(BLOCKFOREST_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/blockforest/Release/blockforest.lib)
+  SET(DOMAIN_DECOMPOSITION_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/domain_decomposition/Debug/domain_decomposition.lib) 
+  SET(DOMAIN_DECOMPOSITION_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/domain_decomposition/Release/domain_decomposition.lib)
+  SET(GEOMETRY_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/geometry/Debug/geometry.lib) 
+  SET(GEOMETRY_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/geometry/Release/geometry.lib)
+  SET(CORE_DEBUG_LIBRARY ${PE_BINARY_DIR}/src/core/Debug/core.lib) 
+  SET(CORE_RELEASE_LIBRARY ${PE_BINARY_DIR}/src/core/Release/core.lib)
+
+ ENDIF()
+
+##################################################################################
+#  FETOL
+##################################################################################
+IF(${USE_FETOL})
+  SET(FETOL_INCLUDEDIR "d:/Projects/FETOL/dev/CppFETOLlib")
+  SET(FETOL_DEBUG_LIBRARY "d:/Projects/FETOL/dev/CppFETOLlib/build/Debug/fetol.lib") 
+  SET(FETOL_RELEASE_LIBRARY "d:/Projects/FETOL/dev/CppFETOLlib/build/Release/fetol.lib") 
+  
+  SET(YAML_INCLUDEDIR "d:/Tools/yaml-cpp/include")
+  SET(YAML_DEBUG_LIBRARY "d:/Tools/yaml-cpp/buildVS11/Debug/libyaml-cppmdd.lib") 
+  SET(YAML_RELEASE_LIBRARY "d:/Tools/yaml-cpp/buildVS11/Release/libyaml-cppmd.lib") 
+  
+  SET(BOND_INCLUDEDIR "d:/Projects/FETOL/dev/bond_src/cpp/bond/fetol")
+  SET(BOND_DEBUG_LIBRARY "d:/Projects/FETOL/dev/bond_lib/Debug/bond.lib") 
+  SET(BOND_RELEASE_LIBRARY "d:/Projects/FETOL/dev/bond_lib/Release/bond.lib")   
+ENDIF()
+
+##################################################################################
+#  Java
+##############################################################################
+### FindJNI.cmake
+#find_package(JNI REQUIRED) 
+#SET(JNI_INCLUDE_DIRS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2} ${JAVA_AWT_INCLUDE_PATH})
+#SET(JNI_LIBRARIES ${JAVA_AWT_LIBRARY} ${JAVA_JVM_LIBRARY})
 #SET(JNI_FOUND 1) 
\ No newline at end of file
diff --git a/CMake/cmake_config_files/HOST2.config.cmake b/CMake/cmake_config_files/HOST2.config.cmake
index caba4aed9..3bfbaf2dd 100644
--- a/CMake/cmake_config_files/HOST2.config.cmake
+++ b/CMake/cmake_config_files/HOST2.config.cmake
@@ -1,22 +1,22 @@
-#################################################################################
-# VirtualFluids MACHINE FILE
-# Responsible: Konstantin Kutscher
-# OS:          ???
-#################################################################################
-
-#################################################################################
-#  BOOST  
-#################################################################################
-SET(BOOST_VERSION "1.47")
-SET(BOOST_USE_MULTITHREAD ON)
-SET(BOOST_USE_STATIC_LIBS ON)
-
-SET(BOOST_ROOT "/host/tools/boost/boost_1_47_0")
-SET(BOOST_LIBRARYDIR "/host/tools/boost/boost_1_47_0/stageLinux/lib")
-
-#################################################################################
-#  METIS  
-#################################################################################
-SET(METIS_INCLUDEDIR "c:/Tools/metis-5.0.1/include")
-SET(METIS_DEBUG_LIBRARY "c:/Tools/metis-5.0.1/build/libmetis/Debug/metis.lib")
-SET(METIS_RELEASE_LIBRARY "c:/Tools/metis-5.0.1/build/libmetis/Release/metis.lib")
+#################################################################################
+# VirtualFluids MACHINE FILE
+# Responsible: Konstantin Kutscher
+# OS:          ???
+#################################################################################
+
+#################################################################################
+#  BOOST  
+#################################################################################
+SET(BOOST_VERSION "1.47")
+SET(BOOST_USE_MULTITHREAD ON)
+SET(BOOST_USE_STATIC_LIBS ON)
+
+SET(BOOST_ROOT "/host/tools/boost/boost_1_47_0")
+SET(BOOST_LIBRARYDIR "/host/tools/boost/boost_1_47_0/stageLinux/lib")
+
+#################################################################################
+#  METIS  
+#################################################################################
+SET(METIS_INCLUDEDIR "c:/Tools/metis-5.0.1/include")
+SET(METIS_DEBUG_LIBRARY "c:/Tools/metis-5.0.1/build/libmetis/Debug/metis.lib")
+SET(METIS_RELEASE_LIBRARY "c:/Tools/metis-5.0.1/build/libmetis/Release/metis.lib")
diff --git a/CMake/cmake_config_files/TESLA01.config.cmake b/CMake/cmake_config_files/TESLA01.config.cmake
index c92603b35..97771db2a 100644
--- a/CMake/cmake_config_files/TESLA01.config.cmake
+++ b/CMake/cmake_config_files/TESLA01.config.cmake
@@ -1,17 +1,17 @@
-#################################################################################
-# VirtualFluids MACHINE FILE
-# Responsible: Soeren Peters
-# OS:          Windows 10
-#################################################################################
-
-SET(BOOST_ROOT  "C:\\Libraries\\boost_1_65_1"  CACHE PATH "BOOST_ROOT")
-SET(BOOST_LIBRARYDIR  "C:\\Libraries\\boost_1_65_1\\lib" CACHE PATH "BOOST_LIBRARYDIR")
-
-SET(VTK_DIR "C:/Libraries/VTK-8.0.1/build")
-
-#################################################################################
-#  METIS
-#################################################################################
-SET(METIS_INCLUDEDIR "C:/Libraries/metis-5.1.0//include")
-SET(METIS_DEBUG_LIBRARY "C:/Libraries/metis-5.1.0/build/libmetis/Debug/metis.lib")
-SET(METIS_RELEASE_LIBRARY "C:/Libraries/metis-5.1.0/build/libmetis/Release/metis.lib")
+#################################################################################
+# VirtualFluids MACHINE FILE
+# Responsible: Soeren Peters
+# OS:          Windows 10
+#################################################################################
+
+SET(BOOST_ROOT  "C:\\Libraries\\boost_1_65_1"  CACHE PATH "BOOST_ROOT")
+SET(BOOST_LIBRARYDIR  "C:\\Libraries\\boost_1_65_1\\lib" CACHE PATH "BOOST_LIBRARYDIR")
+
+SET(VTK_DIR "C:/Libraries/VTK-8.0.1/build")
+
+#################################################################################
+#  METIS
+#################################################################################
+SET(METIS_INCLUDEDIR "C:/Libraries/metis-5.1.0//include")
+SET(METIS_DEBUG_LIBRARY "C:/Libraries/metis-5.1.0/build/libmetis/Debug/metis.lib")
+SET(METIS_RELEASE_LIBRARY "C:/Libraries/metis-5.1.0/build/libmetis/Release/metis.lib")
diff --git a/CMake/compilerflags/clang.cmake b/CMake/compilerflags/Clang.cmake
similarity index 100%
rename from CMake/compilerflags/clang.cmake
rename to CMake/compilerflags/Clang.cmake
-- 
GitLab