diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..c6a8b8ce401e703b3bf04ea1b53031f9c36be533
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,4 @@
+# Enable style checks on source files
+*.h   hooks.style=uncrustify
+*.cpp hooks.style=uncrustify
+*.hpp hooks.style=uncrustify
diff --git a/BaseLib/BuildInfo.h.in b/BaseLib/BuildInfo.h.in
index 0547210518db050b64c57de34387577c74e98663..ec20847a7243916bd0d3408b1a80b003ff4791be 100644
--- a/BaseLib/BuildInfo.h.in
+++ b/BaseLib/BuildInfo.h.in
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/CPUTime.cpp b/BaseLib/CPUTime.cpp
index 1a26d9aaaf93b253d28aa905e65249d8b454bc5a..58fe8d05ea1df86379a5ebb6615bd3b627ce3df3 100644
--- a/BaseLib/CPUTime.cpp
+++ b/BaseLib/CPUTime.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/CPUTime.h b/BaseLib/CPUTime.h
index f9f727c5d32b49f81340d5dc8d3fb70c06228560..38b1b18cb34202d501fef45047f4179d6afa9a12 100644
--- a/BaseLib/CPUTime.h
+++ b/BaseLib/CPUTime.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/CodingTools.h b/BaseLib/CodingTools.h
index 7e22f41757da9412ae5c46756c2817a6fcc81c59..55fafeed430733337eb52521682a32605c6f89fe 100644
--- a/BaseLib/CodingTools.h
+++ b/BaseLib/CodingTools.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/Configure.h.in b/BaseLib/Configure.h.in
index 854b9fc4223e84df8add91ea8738602a9a84a142..55811f03a25f58a9fc8d130205b3a42cf36f6e9c 100644
--- a/BaseLib/Configure.h.in
+++ b/BaseLib/Configure.h.in
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/DateTools.cpp b/BaseLib/DateTools.cpp
index d2850d556848069e842d6081c4b97a19c5119ca6..3a38ca8ef9fd100f4f16ebe4e4cac24f81c2795d 100644
--- a/BaseLib/DateTools.cpp
+++ b/BaseLib/DateTools.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/DateTools.h b/BaseLib/DateTools.h
index 10856c06f0015d8dc223a0d48e19306c0ee057ca..227b4fa2d230a4561cd377291e97e4b0a496461d 100644
--- a/BaseLib/DateTools.h
+++ b/BaseLib/DateTools.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/FileFinder.h b/BaseLib/FileFinder.h
index 30b175abca5726b987b701c37f83a2d0e0da8ecd..b876fe7b9decd7ed8f04994ebc74257c203d1014 100644
--- a/BaseLib/FileFinder.h
+++ b/BaseLib/FileFinder.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/FileTools.cpp b/BaseLib/FileTools.cpp
index 5ed8ee7458928156326618b935811972f39e546a..40fb244da92e2e08cf2833819e257e2c261e3ee9 100644
--- a/BaseLib/FileTools.cpp
+++ b/BaseLib/FileTools.cpp
@@ -5,7 +5,7 @@
  * \brief Filename manipulation routines implementation.
  *
  * \copyright
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/FileTools.h b/BaseLib/FileTools.h
index a1d28bb8406fe86c95c8d741c73be75ceea3d29b..246c0a81c937f6d413db8e3ffc473ee92767831b 100644
--- a/BaseLib/FileTools.h
+++ b/BaseLib/FileTools.h
@@ -5,7 +5,7 @@
  * \brief Filename manipulation routines.
  *
  * \copyright
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/Histogram.h b/BaseLib/Histogram.h
index c824dd76b79a9ac4bae73f291a8fd8747fe843e0..b171955b673fa04de9089533e211dad696b54d17 100644
--- a/BaseLib/Histogram.h
+++ b/BaseLib/Histogram.h
@@ -4,7 +4,7 @@
  * \brief Implementation of Histogram class.
  *
  * \copyright
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/LogogSimpleFormatter.h b/BaseLib/LogogSimpleFormatter.h
index f42964e0d0489c90f823027bd831643537964785..fcae583fe06802c3dce9693291f1adc338e523d2 100644
--- a/BaseLib/LogogSimpleFormatter.h
+++ b/BaseLib/LogogSimpleFormatter.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/MemWatch.cpp b/BaseLib/MemWatch.cpp
index 20a82badef9f9dbcd86f2dbe434bd70ca966b95f..7f4580113b9a97eb6fe5dc996fbe7c19c02c7a38 100644
--- a/BaseLib/MemWatch.cpp
+++ b/BaseLib/MemWatch.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/MemWatch.h b/BaseLib/MemWatch.h
index f3934e90d200708063b39898085c1bf5e2beaafe..854215840102f547d43b8436788a67d8e13647f7 100644
--- a/BaseLib/MemWatch.h
+++ b/BaseLib/MemWatch.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/RunTime.cpp b/BaseLib/RunTime.cpp
index 787b0d9e389fe0518600ee12d2a620ccb00fac22..25f826c9ca3d36cc5c1ef7536144f1c123243201 100644
--- a/BaseLib/RunTime.cpp
+++ b/BaseLib/RunTime.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/RunTime.h b/BaseLib/RunTime.h
index 23a5dc43cbb0db32f74ad6691341a858d0b39775..948ae74081ffff154a817e3bb643b78ac3ce4657 100644
--- a/BaseLib/RunTime.h
+++ b/BaseLib/RunTime.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/StringTools.cpp b/BaseLib/StringTools.cpp
index dda2c607923479a05598be69754a0c2004562c97..65b1b8864c033935a4c3fc3d7ac3a51c4070a762 100644
--- a/BaseLib/StringTools.cpp
+++ b/BaseLib/StringTools.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/StringTools.h b/BaseLib/StringTools.h
index 0032857a4b893051c47155503e92ced15ac6e9f1..a9a001fbea619abb24a6037ede820334e9f95c95 100644
--- a/BaseLib/StringTools.h
+++ b/BaseLib/StringTools.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/SystemTools.h b/BaseLib/SystemTools.h
index 8939814f1fe3aa7f9ac895fdb9e5c4ac87de537e..fe565d77af657832bff91c5a9b48a3ead16cbb72 100644
--- a/BaseLib/SystemTools.h
+++ b/BaseLib/SystemTools.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/TemplateLogogFormatterSuppressedGCC.h b/BaseLib/TemplateLogogFormatterSuppressedGCC.h
new file mode 100644
index 0000000000000000000000000000000000000000..27bed2a4c49ad466d2ca9ff270d0b8a9e4590c5d
--- /dev/null
+++ b/BaseLib/TemplateLogogFormatterSuppressedGCC.h
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ *
+ * \file TemplateLogogFormatterSuppressedGCC.h
+ *
+ * Created on 2012-12-06 by Norihiro Watanabe
+ */
+
+#ifndef TEMPLATELOGOGFORMATTERSUPPRESSEDGCC_H_
+#define TEMPLATELOGOGFORMATTERSUPPRESSEDGCC_H_
+
+// ** INCLUDES **
+#include "logog/include/logog.hpp"
+
+namespace BaseLib {
+
+/**
+ * \brief TemplateLogogFormatterSuppressedGCC strips topics given as a template
+ * parameter from logog::FormatterGCC.
+ * See http://johnwbyrd.github.com/logog/customformatting.html for details.
+ **/
+template <int T_SUPPPRESS_TOPIC_FLAG>
+class TemplateLogogFormatterSuppressedGCC : public logog::FormatterGCC
+{
+
+	virtual TOPIC_FLAGS GetTopicFlags( const logog::Topic &topic )
+	{
+	return ( logog::Formatter::GetTopicFlags( topic ) &
+		~( T_SUPPPRESS_TOPIC_FLAG ));
+	}
+
+};
+
+#endif // TEMPLATELOGOGFORMATTERSUPPRESSEDGCC_H_
+
+} // namespace BaseLib
diff --git a/BaseLib/TimeMeasurementBase.h b/BaseLib/TimeMeasurementBase.h
index e2020f3b5eed9206e0ea45edf1a2e81d33d9f1bc..5fecd6d35d25cc8be0dd3d120cea130358bc85ae 100644
--- a/BaseLib/TimeMeasurementBase.h
+++ b/BaseLib/TimeMeasurementBase.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/printList.h b/BaseLib/printList.h
index 4a2cda3ab1b35b6730a43284d10d1c17c88ee58d..33b70ac9a57c93a5d42ef45f07fb6203eac4daac 100644
--- a/BaseLib/printList.h
+++ b/BaseLib/printList.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/quicksort.h b/BaseLib/quicksort.h
index d0a9a69782b6643e4bce5e7386c55419a5fa4f06..a2271b67e8ab37495af9670bf6968c3f29df7020 100644
--- a/BaseLib/quicksort.h
+++ b/BaseLib/quicksort.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/uniqueInsert.h b/BaseLib/uniqueInsert.h
index 6b28069d3d9854d7beabc8a8b70344a6f07426d7..33ec74ee6f05b0a7b525b8db7eb3746bb9362928 100644
--- a/BaseLib/uniqueInsert.h
+++ b/BaseLib/uniqueInsert.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/BaseLib/wait.h b/BaseLib/wait.h
index bc31d57bac060659258b0100394fce2693202f39..4e946f6a6765488b53eecec10cb78fad3dccaf92 100644
--- a/BaseLib/wait.h
+++ b/BaseLib/wait.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 384eb58798739aa1409a429cf7fd2b6f9c3b4f15..17e2f2c9ee0a4923d2f3bdaa7d1776e3de8d155c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,9 +25,7 @@ INCLUDE(scripts/cmake/FindIncludeHeader.cmake)
 INCLUDE(scripts/cmake/Functions.cmake)
 INCLUDE(scripts/cmake/CMakeSetup.cmake)
 INCLUDE(scripts/cmake/CompilerSetup.cmake)
-IF(NOT OGS_NO_EXTERNAL_LIBS)
-	INCLUDE(scripts/cmake/Find.cmake)
-ENDIF() # NOT OGS_NO_EXTERNAL_LIBS
+INCLUDE(scripts/cmake/Find.cmake)
 INCLUDE(scripts/cmake/SubmoduleSetup.cmake)
 INCLUDE(scripts/cmake/ProjectSetup.cmake)
 INCLUDE(scripts/cmake/DocumentationSetup.cmake)
@@ -55,6 +53,9 @@ OPTION(OGS_BUILD_UTILS "Should the utilities programms be built?" OFF)
 
 OPTION(OGS_NO_EXTERNAL_LIBS "Builds OGS without any external dependencies." OFF)
 
+# Linear solvers
+OPTION(OGS_USE_LIS "Use Lis" OFF)
+
 # Logging
 OPTION(OGS_DISABLE_LOGGING "Disables all logog messages." OFF)
 
@@ -98,6 +99,10 @@ INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/ThirdParty )
 INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/ThirdParty/quickcheck )
 INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR}/ThirdParty/zlib )
 
+IF(OGS_USE_LIS)
+    ADD_DEFINITIONS(-DUSE_LIS)
+ENDIF()
+
 ADD_SUBDIRECTORY( BaseLib )
 # TODO This is a hack but we have to make sure that Boost is built first
 ADD_DEPENDENCIES(BaseLib Boost)
diff --git a/FemLib/DistributionInfo.cpp b/FemLib/DistributionInfo.cpp
index 991eadd35be10dffe86989d5625b53f6c719eed5..ea7c3b9ffeeff0f1b616c00a13698cff95f56549 100644
--- a/FemLib/DistributionInfo.cpp
+++ b/FemLib/DistributionInfo.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FemLib/DistributionInfo.h b/FemLib/DistributionInfo.h
index cae33fd4d7ae4b197e1cdc66eeaf3768dea03f5b..8dffe7e2d93c88337df719b00663a5b0e85ad50a 100644
--- a/FemLib/DistributionInfo.h
+++ b/FemLib/DistributionInfo.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FemLib/FEMCondition.cpp b/FemLib/FEMCondition.cpp
index c9964ddffe2c37ff31b466f4121489b194bed95f..25a4ef6ec173bd4cb770335bc581f391b7187542 100644
--- a/FemLib/FEMCondition.cpp
+++ b/FemLib/FEMCondition.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FemLib/FEMCondition.h b/FemLib/FEMCondition.h
index d0593a1c9678bbd0de330c3ffc8aae2bf151284b..a1cba21171f3db7e428bebe5d00a70aaeba4b470 100644
--- a/FemLib/FEMCondition.h
+++ b/FemLib/FEMCondition.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FemLib/FEMEnums.cpp b/FemLib/FEMEnums.cpp
index 591fc665ba26105ea858a04ad95c25d9ace0776b..719b2fdcd292ff085a1f34cb9f94a314631db31a 100644
--- a/FemLib/FEMEnums.cpp
+++ b/FemLib/FEMEnums.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FemLib/FEMEnums.h b/FemLib/FEMEnums.h
index 5e12def788ecf756a9c83b788eb31c98f08c858d..0f76e1a494de83294d4ea227f84ab0bdd999b579 100644
--- a/FemLib/FEMEnums.h
+++ b/FemLib/FEMEnums.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FemLib/GeoInfo.cpp b/FemLib/GeoInfo.cpp
index 6289c5058d97e237f248aeffd692710eeca0edef..99d7e492e18bfbc14dd9cff0ac5f6f5726262cf1 100644
--- a/FemLib/GeoInfo.cpp
+++ b/FemLib/GeoInfo.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FemLib/GeoInfo.h b/FemLib/GeoInfo.h
index b98489b285426bb58377c594ba87edd34fcc115e..357f5536dac86108be87ceb78a0ff3ea4aa8e64e 100644
--- a/FemLib/GeoInfo.h
+++ b/FemLib/GeoInfo.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FemLib/ProcessInfo.cpp b/FemLib/ProcessInfo.cpp
index 5e86f75b348ada2b2b538cdba1cd457b2f1702b1..8e31444d66fa94994844406d570968853ed14907 100644
--- a/FemLib/ProcessInfo.cpp
+++ b/FemLib/ProcessInfo.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FemLib/ProcessInfo.h b/FemLib/ProcessInfo.h
index 4789c954b0602da73b4a4c395623020f80faada6..1b563e9fe480669bc2dc1ab042da2893217b6c17 100644
--- a/FemLib/ProcessInfo.h
+++ b/FemLib/ProcessInfo.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/ImportFileTypes.h b/FileIO/ImportFileTypes.h
index 82b5ef38d0e4e6638dd0d1bc5774c88897bab02f..1c197182e2b776a08519c401f618454311ae0148 100644
--- a/FileIO/ImportFileTypes.h
+++ b/FileIO/ImportFileTypes.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/Legacy/MeshIO.cpp b/FileIO/Legacy/MeshIO.cpp
index 8ef112db65e65c39796b129dc55d7ba39fab0154..d3450efe5b52584803c6f4e70bae590ef25c0ba3 100644
--- a/FileIO/Legacy/MeshIO.cpp
+++ b/FileIO/Legacy/MeshIO.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/Legacy/MeshIO.h b/FileIO/Legacy/MeshIO.h
index 46d94cc3bf9dd2c4a7394e5fee2fbc56ba697820..d0832935745463b15930605d8b29b513e10a98d4 100644
--- a/FileIO/Legacy/MeshIO.h
+++ b/FileIO/Legacy/MeshIO.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/Writer.cpp b/FileIO/Writer.cpp
index a4a6fad561dc0750c5c7c4347a7100f58d0f199d..1f149969dfd997227858d29d5e54bae51d144352 100644
--- a/FileIO/Writer.cpp
+++ b/FileIO/Writer.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/Writer.h b/FileIO/Writer.h
index e52f938c40e9c3e50e8a45edd2ebd976473b345e..df1622be837d5c0866961aff96b6538e349ac3d0 100644
--- a/FileIO/Writer.h
+++ b/FileIO/Writer.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XMLInterface.cpp b/FileIO/XmlIO/XMLInterface.cpp
index e2d47f5be6cf81cc2c43f97285ca306dbbb18979..ca6faae63aaed4522dadf88a536a418447aa65d3 100644
--- a/FileIO/XmlIO/XMLInterface.cpp
+++ b/FileIO/XmlIO/XMLInterface.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XMLInterface.h b/FileIO/XmlIO/XMLInterface.h
index 52d35334c27846482cf124b8fb4699b9c2c8e4a7..797d0c7ae7d20e374fe26e74c7966b7b6263b592 100644
--- a/FileIO/XmlIO/XMLInterface.h
+++ b/FileIO/XmlIO/XMLInterface.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XmlCndInterface.cpp b/FileIO/XmlIO/XmlCndInterface.cpp
index 19bbefa4b7f942305637192d3d3bfc45591a88e1..a59d8521b38382900c940023bb724b17c0f6e587 100644
--- a/FileIO/XmlIO/XmlCndInterface.cpp
+++ b/FileIO/XmlIO/XmlCndInterface.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XmlCndInterface.h b/FileIO/XmlIO/XmlCndInterface.h
index 117840046acd0b5cb2e69607c1ba0ce9ffc4e16c..f79423dc6589812ea7dbe3f734115e2b75f62fa8 100644
--- a/FileIO/XmlIO/XmlCndInterface.h
+++ b/FileIO/XmlIO/XmlCndInterface.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XmlGmlInterface.cpp b/FileIO/XmlIO/XmlGmlInterface.cpp
index 67c3ebf6c54b98041256acaa3848d685cc66fc23..6bc77563009e6344ee5c2b960db8cbc6b696b1ef 100644
--- a/FileIO/XmlIO/XmlGmlInterface.cpp
+++ b/FileIO/XmlIO/XmlGmlInterface.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XmlGmlInterface.h b/FileIO/XmlIO/XmlGmlInterface.h
index 815635c350c830d285b01e93658c7dae753c6852..a43842e250aaf73a846b1f10ca4c5e365172434a 100644
--- a/FileIO/XmlIO/XmlGmlInterface.h
+++ b/FileIO/XmlIO/XmlGmlInterface.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XmlGspInterface.cpp b/FileIO/XmlIO/XmlGspInterface.cpp
index bbe1339768c514a6cafc3f3a86945aff1b5c4dea..910989744256667f621f18816cf84e377b98f088 100644
--- a/FileIO/XmlIO/XmlGspInterface.cpp
+++ b/FileIO/XmlIO/XmlGspInterface.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XmlGspInterface.h b/FileIO/XmlIO/XmlGspInterface.h
index 00d44df26e23045705295d40c7b792f3f1f7b145..94fa87ad5e29d0123501e99456399eda2bcff550 100644
--- a/FileIO/XmlIO/XmlGspInterface.h
+++ b/FileIO/XmlIO/XmlGspInterface.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XmlLutReader.h b/FileIO/XmlIO/XmlLutReader.h
index 0d05c14de635e4bee8fca3a2dd075af9590ca1e2..83aa87be1440435c2901a9d309ea1f018812b402 100644
--- a/FileIO/XmlIO/XmlLutReader.h
+++ b/FileIO/XmlIO/XmlLutReader.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XmlStnInterface.cpp b/FileIO/XmlIO/XmlStnInterface.cpp
index a4dd078c87f67beaa8d91528de165ebb6aeb474b..ca15616d12b5cd82c491b2e7065fdb7f43cc3070 100644
--- a/FileIO/XmlIO/XmlStnInterface.cpp
+++ b/FileIO/XmlIO/XmlStnInterface.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/XmlIO/XmlStnInterface.h b/FileIO/XmlIO/XmlStnInterface.h
index 334c39f0abae673d9d126c0bed059e60b6f63ed6..0597cc37d3a93b06acd4f118e6e0e084987173d0 100644
--- a/FileIO/XmlIO/XmlStnInterface.h
+++ b/FileIO/XmlIO/XmlStnInterface.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/readMeshFromFile.cpp b/FileIO/readMeshFromFile.cpp
index e257e2d77d6944245f18bcf89d98b8ac042245b2..777862c1ab9bcf93d7c029a41eccee2aec7d68be 100644
--- a/FileIO/readMeshFromFile.cpp
+++ b/FileIO/readMeshFromFile.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/FileIO/readMeshFromFile.h b/FileIO/readMeshFromFile.h
index 0b5e58d5e85efb0892e76b89f5a2037be2024e22..c44c4038daa703e4823f8687b04c64776fa349f1 100644
--- a/FileIO/readMeshFromFile.h
+++ b/FileIO/readMeshFromFile.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/AABB.h b/GeoLib/AABB.h
index 12a04af1fb7e06b03502de940e0b4f803108554b..d4e43f20f0c4c700680d86b4565bb0fa1d383e81 100644
--- a/GeoLib/AABB.h
+++ b/GeoLib/AABB.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/BruteForceClosestPair.cpp b/GeoLib/BruteForceClosestPair.cpp
index 63d5f7a5d8b34e3c910095ee9220a6e22d05e50e..6ca575fc79c293d815889ea5cadc339fbaa4f118 100644
--- a/GeoLib/BruteForceClosestPair.cpp
+++ b/GeoLib/BruteForceClosestPair.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/BruteForceClosestPair.h b/GeoLib/BruteForceClosestPair.h
index 0f4d7f73c4b2d960f632cbde9b1f2d414988d136..b7495682b106622223354a5a1bae08224b6151d8 100644
--- a/GeoLib/BruteForceClosestPair.h
+++ b/GeoLib/BruteForceClosestPair.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/ClosestPair.h b/GeoLib/ClosestPair.h
index 254636edddf382e825d98e8ccb0e7549d9203689..486c122308b741811f5ed9d9ab612cee3ce3ae09 100644
--- a/GeoLib/ClosestPair.h
+++ b/GeoLib/ClosestPair.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Color.cpp b/GeoLib/Color.cpp
index 0564dca9ac134c8002444c9c3f0d70fcf52bdc14..0b3bd8cec8fb21ab6be382cc2eb9b4d17d41d8b0 100644
--- a/GeoLib/Color.cpp
+++ b/GeoLib/Color.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Color.h b/GeoLib/Color.h
index e1c477c9f82f0209a88e63e4a7eb1ab1b6cf193c..dd4d3f2c0593d3e6f10e016a3bb01913a825f600 100644
--- a/GeoLib/Color.h
+++ b/GeoLib/Color.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/GEOObjects.cpp b/GeoLib/GEOObjects.cpp
index b4b32df6ed4d66df679a8a1c8a307faf2c2a6707..6b64e508d372f8dec6a2340bd21eb60f936361f5 100644
--- a/GeoLib/GEOObjects.cpp
+++ b/GeoLib/GEOObjects.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/GEOObjects.h b/GeoLib/GEOObjects.h
index a1478557f96f427d8fea495217f66ea64bfe874c..aeae70e66e50a7d3cac61655cdcca5630d290d2d 100644
--- a/GeoLib/GEOObjects.h
+++ b/GeoLib/GEOObjects.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/GeoObject.h b/GeoLib/GeoObject.h
index 59c45c1fbcf3e126e70ce9efee951fe087d4e668..95506355bbb3ba4eed482b4f03d79d1da5968006 100644
--- a/GeoLib/GeoObject.h
+++ b/GeoLib/GeoObject.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/GeoType.cpp b/GeoLib/GeoType.cpp
index 69c88df327844fae146cd9e96c0184f8944e299a..4cb31431c1a9ee749fc66fb18579af1a7f79c3aa 100644
--- a/GeoLib/GeoType.cpp
+++ b/GeoLib/GeoType.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/GeoType.h b/GeoLib/GeoType.h
index 83e5ab7553cf6049bbd5edaf46c5f94b0af41d83..16227e1ec861c8155ad81fe7e6c18a86ae3db4ef 100644
--- a/GeoLib/GeoType.h
+++ b/GeoLib/GeoType.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Grid.h b/GeoLib/Grid.h
index 21e161b1fe0b131c3ace7a6222d202ba0d6e6fc6..f25d94ebaa89a5d1d24b3e1bfa6548610e2ffd91 100644
--- a/GeoLib/Grid.h
+++ b/GeoLib/Grid.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/OctTree.h b/GeoLib/OctTree.h
index 47c382e4664a5276b7a4b48f9e12e06617c19b2f..04c258111fb04791bfe07e28aeaf689b27542529 100644
--- a/GeoLib/OctTree.h
+++ b/GeoLib/OctTree.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Point.cpp b/GeoLib/Point.cpp
index 92efe2c8c87ff51313e03dc3599c480e6783039f..873c2250d93e77e2be3ece4921d67d89189c9bda 100644
--- a/GeoLib/Point.cpp
+++ b/GeoLib/Point.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Point.h b/GeoLib/Point.h
index cd4c0728344085eff867eedf73fc5f9dc57bcf0a..75ba37b97886d2a3f9eab44d2373662e8393f27a 100644
--- a/GeoLib/Point.h
+++ b/GeoLib/Point.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/PointVec.cpp b/GeoLib/PointVec.cpp
index a9f1e8c03f092d4791adbd07c075b8b491764f0e..6da3a7b1db2d627c2d874b0c0622c5a63ce1f74a 100644
--- a/GeoLib/PointVec.cpp
+++ b/GeoLib/PointVec.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/PointVec.h b/GeoLib/PointVec.h
index 16eb08f6b7bdc1534c679683ae6f0a32a3aa41de..25c76bd4f4bfa7ea3765b4a7f935263db4e9cff9 100644
--- a/GeoLib/PointVec.h
+++ b/GeoLib/PointVec.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/PolylineVec.h b/GeoLib/PolylineVec.h
index 37a84edc30a52d410a34225550579589dbd7bc26..8cefdec96d8fbf7b473e97a96be5bc39f81ebb38 100644
--- a/GeoLib/PolylineVec.h
+++ b/GeoLib/PolylineVec.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/PropertyBounds.h b/GeoLib/PropertyBounds.h
index 1c29fe54568ef824b5caa133ae40ddd3515831bd..6b7efcd95663f2353f2b4334b3ee2fafb704fd36 100644
--- a/GeoLib/PropertyBounds.h
+++ b/GeoLib/PropertyBounds.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Raster.cpp b/GeoLib/Raster.cpp
index f5e57ac741274cdbf5baafd921c6e5340d6adbe3..ee12946616164dac3496f7a85f64fa0c87772918 100644
--- a/GeoLib/Raster.cpp
+++ b/GeoLib/Raster.cpp
@@ -4,7 +4,7 @@
  * @date 2011-09-07
  *
  * @copyright
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Raster.h b/GeoLib/Raster.h
index 39cfc2992fdcb9ee494819ae0d03111da0cd69a2..e2e305fcf04ff56f5e786bce6ef0b86da771aff5 100644
--- a/GeoLib/Raster.h
+++ b/GeoLib/Raster.h
@@ -4,7 +4,7 @@
  * @date 2011-09-07
  *
  * @copyright
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/SensorData.cpp b/GeoLib/SensorData.cpp
index 6e3992c36ca77405dc4a418b21a66109c608b27d..62aad65f0b4bbab836df791db57c3ea53fd49ee3 100644
--- a/GeoLib/SensorData.cpp
+++ b/GeoLib/SensorData.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/SensorData.h b/GeoLib/SensorData.h
index cec97d39a13e273b4ebada4ae24d0df596a5f695..287c2801d3eca2bd179b73e812bf744c81d5d3ba 100644
--- a/GeoLib/SensorData.h
+++ b/GeoLib/SensorData.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Station.cpp b/GeoLib/Station.cpp
index b672ee203b16fae1003e643a894602d7a8508797..6328e530d0eb22eaabfbb42f640a6218383d2278 100644
--- a/GeoLib/Station.cpp
+++ b/GeoLib/Station.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Station.h b/GeoLib/Station.h
index 5e116b158cba38f2f4e27e0f5d93e23883c28107..66b0344c961bcc17ea32aac0234e85c2ec09a341 100644
--- a/GeoLib/Station.h
+++ b/GeoLib/Station.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Surface.cpp b/GeoLib/Surface.cpp
index 1974d1cd519f37cabf7f662cd29cf7cedd798ae7..80a37b5e30f820af5958079300f26c496b53a0db 100644
--- a/GeoLib/Surface.cpp
+++ b/GeoLib/Surface.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Surface.h b/GeoLib/Surface.h
index ac839a08f712179afbdc223bcbdb39579346be79..ff735488b320f2382f0698f6fb26e5757938be1e 100644
--- a/GeoLib/Surface.h
+++ b/GeoLib/Surface.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/SurfaceVec.h b/GeoLib/SurfaceVec.h
index b93634cba8a97869a5ded77f426f785e53fb034e..36b56d919900bc2d37093664175ec114df1a8ba1 100644
--- a/GeoLib/SurfaceVec.h
+++ b/GeoLib/SurfaceVec.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/TemplatePoint.h b/GeoLib/TemplatePoint.h
index b7cf19eae4ad71005f3a9269353e0977e5f58336..b51729814de143c561172c686ea67bff95c3a30f 100644
--- a/GeoLib/TemplatePoint.h
+++ b/GeoLib/TemplatePoint.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/TemplateVec.h b/GeoLib/TemplateVec.h
index e86b190c545fc9d67862358cac1dd5f1f98cf88c..a1a97cedd0ed19d1983fd3fb18325d164ebfb1d0 100644
--- a/GeoLib/TemplateVec.h
+++ b/GeoLib/TemplateVec.h
@@ -1,6 +1,6 @@
 /**
  * @copyright
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Triangle.cpp b/GeoLib/Triangle.cpp
index 7b8d8e68b170032293e720caff59d8eabafc8b44..3ef9144e0961cf9b67a8bc208d0c3cc2a6fac7f9 100644
--- a/GeoLib/Triangle.cpp
+++ b/GeoLib/Triangle.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/GeoLib/Triangle.h b/GeoLib/Triangle.h
index 690d835d9a9453388ef5dbf968c6ad75caa230ce..18ec1a110908d3a607bb9974e0ea960d751dbc81 100644
--- a/GeoLib/Triangle.h
+++ b/GeoLib/Triangle.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/AnalyticalGeometry.cpp b/MathLib/AnalyticalGeometry.cpp
index 8bf66232f5ca56e536dc938ce445f4b1f2f66729..d77a444f0e4cc1c42953ee82b64d6437c51a9777 100644
--- a/MathLib/AnalyticalGeometry.cpp
+++ b/MathLib/AnalyticalGeometry.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/AnalyticalGeometry.h b/MathLib/AnalyticalGeometry.h
index 81bcd50a3094dc82ae9219733f1f901e0cfc2dfc..880063097149e3df39a16749fb4b8634859e2982 100644
--- a/MathLib/AnalyticalGeometry.h
+++ b/MathLib/AnalyticalGeometry.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/CMakeLists.txt b/MathLib/CMakeLists.txt
index f6e6b904d90f458a98bd38fd575b55ff24e3103b..1e42e687a7934791f5246e507954ae6cf83539a2 100644
--- a/MathLib/CMakeLists.txt
+++ b/MathLib/CMakeLists.txt
@@ -20,6 +20,16 @@ SET ( SOURCES ${SOURCES} ${SOURCES_LINALG_SOLVERS})
 GET_SOURCE_FILES(SOURCES_LINALG_PRECOND LinAlg/Preconditioner)
 SET ( SOURCES ${SOURCES} ${SOURCES_LINALG_PRECOND})
 
+GET_SOURCE_FILES(SOURCES_LINALG_LEQS LinAlg/SystemOfLinearEquations)
+IF (NOT OGS_USE_LIS)
+    LIST(REMOVE_ITEM SOURCES_LINALG_LEQS 
+        LinAlg/SystemOfLinearEquations/LisOption.h
+        LinAlg/SystemOfLinearEquations/LisOption.cpp
+        LinAlg/SystemOfLinearEquations/LisLinearSystem.h
+        LinAlg/SystemOfLinearEquations/LisLinearSystem.cpp
+    )
+ENDIF ()
+SET ( SOURCES ${SOURCES} ${SOURCES_LINALG_LEQS})
 
 IF (METIS_FOUND)
 	GET_SOURCE_FILES(SOURCES_LINALG_SPARSE_NESTEDDISSECTION LinAlg/Sparse/NestedDissectionPermutation)
@@ -38,8 +48,17 @@ IF(METIS_FOUND)
 	)
 ENDIF()
 
+IF (LIS_FOUND)
+    INCLUDE_DIRECTORIES(${LIS_INCLUDE_DIR})
+ENDIF()
+
+
 # Create the library
 ADD_LIBRARY( MathLib STATIC ${SOURCES} )
 
 SET_TARGET_PROPERTIES(MathLib PROPERTIES LINKER_LANGUAGE CXX)
 
+IF (LIS_FOUND)
+    TARGET_LINK_LIBRARIES( MathLib ${LIS_LIBRARIES} )
+ENDIF()
+
diff --git a/MathLib/EarClippingTriangulation.cpp b/MathLib/EarClippingTriangulation.cpp
index 05f485f1097db7052407114f33933a8fdff227f8..27759146bc38a3f7a9a61b33fc2c20a9687f2095 100644
--- a/MathLib/EarClippingTriangulation.cpp
+++ b/MathLib/EarClippingTriangulation.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/EarClippingTriangulation.h b/MathLib/EarClippingTriangulation.h
index ac7947154540f20593072d90a7edaea488de2345..92c8f1e5e5ee9fbce0473217c09093a252083805 100644
--- a/MathLib/EarClippingTriangulation.h
+++ b/MathLib/EarClippingTriangulation.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/InterpolationAlgorithms/LinearIntervalInterpolation.h b/MathLib/InterpolationAlgorithms/LinearIntervalInterpolation.h
index 50f37968f496c432dac80620eb66b77cf9fd137e..41b487fb589192b3b825134e92d3bc0afcb372af 100644
--- a/MathLib/InterpolationAlgorithms/LinearIntervalInterpolation.h
+++ b/MathLib/InterpolationAlgorithms/LinearIntervalInterpolation.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.cpp b/MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.cpp
index bc3164a7b443a6b59aec18e43f83ea31eccb3fba..f6ebb05a6e4637e321d060bd70d326ab87c29d4d 100644
--- a/MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.cpp
+++ b/MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h b/MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h
index 352925adc1dd1c4de68db485d0846e55a2dc0857..f5419c1606c83ad8d29c3074ab75945a8f08765a 100644
--- a/MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h
+++ b/MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Dense/Matrix.h b/MathLib/LinAlg/Dense/Matrix.h
index 6987dc668c3a80e576d31f95ec4c3776feb5a75d..b262349f2431a81e227634081826512622a97281 100644
--- a/MathLib/LinAlg/Dense/Matrix.h
+++ b/MathLib/LinAlg/Dense/Matrix.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/MatrixBase.h b/MathLib/LinAlg/MatrixBase.h
index f645c57233444a91fdd5d4a78b437db8c3a303a8..386aaa7ae21278dfae41ff9ca5cf117d5c12e1db 100644
--- a/MathLib/LinAlg/MatrixBase.h
+++ b/MathLib/LinAlg/MatrixBase.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Preconditioner/generateDiagPrecond.cpp b/MathLib/LinAlg/Preconditioner/generateDiagPrecond.cpp
index 5a72112b27e014d2ec2199254b3292c52b646a36..2ed8be21c018ec79ce403340a526405da0db5375 100644
--- a/MathLib/LinAlg/Preconditioner/generateDiagPrecond.cpp
+++ b/MathLib/LinAlg/Preconditioner/generateDiagPrecond.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Preconditioner/generateDiagPrecond.h b/MathLib/LinAlg/Preconditioner/generateDiagPrecond.h
index 6254af4d13599739b52cfaba505c87aa30ec8b3f..90934bcd7c8a9a882cedc5b26309d2a72fe9de92 100644
--- a/MathLib/LinAlg/Preconditioner/generateDiagPrecond.h
+++ b/MathLib/LinAlg/Preconditioner/generateDiagPrecond.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/BiCGStab.cpp b/MathLib/LinAlg/Solvers/BiCGStab.cpp
index 308bc1432b3f492f6658cacf2de5169761b566aa..4d4600c29d09a52a3bcbef34257221117a402f31 100644
--- a/MathLib/LinAlg/Solvers/BiCGStab.cpp
+++ b/MathLib/LinAlg/Solvers/BiCGStab.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/BiCGStab.h b/MathLib/LinAlg/Solvers/BiCGStab.h
index 39ed242134807067304534f000993e5c52ee8b1b..e7dc235188bbeb99ccf77853fbcf043033e84cae 100644
--- a/MathLib/LinAlg/Solvers/BiCGStab.h
+++ b/MathLib/LinAlg/Solvers/BiCGStab.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/CG.cpp b/MathLib/LinAlg/Solvers/CG.cpp
index 7113d5f6d9bf1ed4d6894ab7e57b565b44259dc4..01d8797171cdbf59c1c05caa77ef4948a18fb149 100644
--- a/MathLib/LinAlg/Solvers/CG.cpp
+++ b/MathLib/LinAlg/Solvers/CG.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/CG.h b/MathLib/LinAlg/Solvers/CG.h
index 7903b018ad06afcc02c5be520e3b70d612313d5e..19eff0fb671fc409a35aca3c045d565d67ccfe01 100644
--- a/MathLib/LinAlg/Solvers/CG.h
+++ b/MathLib/LinAlg/Solvers/CG.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/CGParallel.cpp b/MathLib/LinAlg/Solvers/CGParallel.cpp
index 762ca139828a388b7ddd87ad3ab5886e4591430c..91bf49ac319883600100546500f72c0a466f038c 100644
--- a/MathLib/LinAlg/Solvers/CGParallel.cpp
+++ b/MathLib/LinAlg/Solvers/CGParallel.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/DenseDirectLinearSolver.h b/MathLib/LinAlg/Solvers/DenseDirectLinearSolver.h
index 1f32c7d789a2053188073622c6e84b109ff16d31..1c0b91fbfef4bca1dbe245292f6d07e10884a814 100644
--- a/MathLib/LinAlg/Solvers/DenseDirectLinearSolver.h
+++ b/MathLib/LinAlg/Solvers/DenseDirectLinearSolver.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/DirectLinearSolver.h b/MathLib/LinAlg/Solvers/DirectLinearSolver.h
index 39670d1287917bc9aa9a21ce195406373047e069..6bfc614a7d7a79be0a07e962615d7e1fab7353a7 100644
--- a/MathLib/LinAlg/Solvers/DirectLinearSolver.h
+++ b/MathLib/LinAlg/Solvers/DirectLinearSolver.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/GMRes.cpp b/MathLib/LinAlg/Solvers/GMRes.cpp
index 70b5424a7ef9fa1bdfded11872c06b6d4f9c0517..a2c1415f6070be4c950660e749ad6e041563356c 100644
--- a/MathLib/LinAlg/Solvers/GMRes.cpp
+++ b/MathLib/LinAlg/Solvers/GMRes.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/GMRes.h b/MathLib/LinAlg/Solvers/GMRes.h
index 5f29966a7e107743bc63aef9168b6a7e554a1010..cb51ce747953e4f16e965321158c7d97d7b9c927 100644
--- a/MathLib/LinAlg/Solvers/GMRes.h
+++ b/MathLib/LinAlg/Solvers/GMRes.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/GaussAlgorithm.cpp b/MathLib/LinAlg/Solvers/GaussAlgorithm.cpp
index eb3ea309c62437e91130daee8bb9c3d26a30d3eb..ccd77e5303b49f1e2ad30e79c768797f8431d6bb 100644
--- a/MathLib/LinAlg/Solvers/GaussAlgorithm.cpp
+++ b/MathLib/LinAlg/Solvers/GaussAlgorithm.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/GaussAlgorithm.h b/MathLib/LinAlg/Solvers/GaussAlgorithm.h
index b12ab4d305c33f2987221851b402464e290ead39..74787a9669506e409436ac35edf0209933ddaa47 100644
--- a/MathLib/LinAlg/Solvers/GaussAlgorithm.h
+++ b/MathLib/LinAlg/Solvers/GaussAlgorithm.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/IterativeLinearSolver.h b/MathLib/LinAlg/Solvers/IterativeLinearSolver.h
index 6186fcb45c87a279c8612fd37105fd0892b52f50..7ddfcb5d716a653c6d6418e5ec68121d1fb7d3ac 100644
--- a/MathLib/LinAlg/Solvers/IterativeLinearSolver.h
+++ b/MathLib/LinAlg/Solvers/IterativeLinearSolver.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/LinearSolver.h b/MathLib/LinAlg/Solvers/LinearSolver.h
index fce545ebc634aaf099a58eedc38039fa85e653e0..f6a32c805cdbb8514113a3944559219db0faa306 100644
--- a/MathLib/LinAlg/Solvers/LinearSolver.h
+++ b/MathLib/LinAlg/Solvers/LinearSolver.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/TriangularSolve.cpp b/MathLib/LinAlg/Solvers/TriangularSolve.cpp
index 4abdbcd140c07019f8322bde88b8af0d9ede309d..30f681e0f527e0a199fc5d3ae30c2bd1a87080b0 100644
--- a/MathLib/LinAlg/Solvers/TriangularSolve.cpp
+++ b/MathLib/LinAlg/Solvers/TriangularSolve.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/TriangularSolve.h b/MathLib/LinAlg/Solvers/TriangularSolve.h
index 234ced0c65d0592a7568fbf1ea2201a67fb5cc24..5e571910ace5449e8163edf8b938627c4d19a4cb 100644
--- a/MathLib/LinAlg/Solvers/TriangularSolve.h
+++ b/MathLib/LinAlg/Solvers/TriangularSolve.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Solvers/solver.h b/MathLib/LinAlg/Solvers/solver.h
index 26b474a14256fb5e0b30e17ce2c0a8e7cf5f8d4c..c36a8aa3ad54241546b81c0aeb7cd4393961f5bb 100644
--- a/MathLib/LinAlg/Solvers/solver.h
+++ b/MathLib/LinAlg/Solvers/solver.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/CRSMatrix.h b/MathLib/LinAlg/Sparse/CRSMatrix.h
index 872adaea451729e0f1de27c0ee8994db93364d57..31fed919062bace0696516acfd27152c2af74fbb 100644
--- a/MathLib/LinAlg/Sparse/CRSMatrix.h
+++ b/MathLib/LinAlg/Sparse/CRSMatrix.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/CRSMatrixOpenMP.h b/MathLib/LinAlg/Sparse/CRSMatrixOpenMP.h
index cd874ec552e75b82314898b8936e6589aefc6028..ccabe65b34fc2db9b58ad9f4e048e7daddd97c7f 100644
--- a/MathLib/LinAlg/Sparse/CRSMatrixOpenMP.h
+++ b/MathLib/LinAlg/Sparse/CRSMatrixOpenMP.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/CRSMatrixPThreads.h b/MathLib/LinAlg/Sparse/CRSMatrixPThreads.h
index e75b77c1339068176adfb865503b86733cbaf6e6..4efb2b6c9928de3bf613b1fdc211b0141cd61b4c 100644
--- a/MathLib/LinAlg/Sparse/CRSMatrixPThreads.h
+++ b/MathLib/LinAlg/Sparse/CRSMatrixPThreads.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/CRSSymMatrix.h b/MathLib/LinAlg/Sparse/CRSSymMatrix.h
index 5049c781bd12286f36f2631bedc8189bb6c0821a..2577734ee11bc816a216a4f3639325880f0a2be4 100644
--- a/MathLib/LinAlg/Sparse/CRSSymMatrix.h
+++ b/MathLib/LinAlg/Sparse/CRSSymMatrix.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/CRSTranspose.h b/MathLib/LinAlg/Sparse/CRSTranspose.h
index 95d84853ccd1704c7cc2a4a13f751f243afb6efe..a368962e4f87dcc4de991fca28e66a9e4970d1e1 100644
--- a/MathLib/LinAlg/Sparse/CRSTranspose.h
+++ b/MathLib/LinAlg/Sparse/CRSTranspose.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/AdjMat.cpp b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/AdjMat.cpp
index 87ae7e5c3252ab4ba11a7ce2ebdd2662dbd354ea..480908657c51c82b339c53d028bcca28a851301e 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/AdjMat.cpp
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/AdjMat.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/AdjMat.h b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/AdjMat.h
index f80af5f1b205fd371328a53a7345ceebdf24f963..0c4cad4dd2494fd51bf6df8d7041d6ef9d5aa0c3 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/AdjMat.h
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/AdjMat.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReordered.cpp b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReordered.cpp
index ed13a75c044d48290d8a24dda2aa87013bbfeb10..66f44d9dfaefb6a4889f11626a05e307ff026173 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReordered.cpp
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReordered.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReordered.h b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReordered.h
index 34d1c35b41a2070929acffe262f283fb9c86458f..66cedd59ba1f663262e2e295f4d833babc809eb6 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReordered.h
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReordered.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReorderedOpenMP.cpp b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReorderedOpenMP.cpp
index 834c5e4b5032f2eb4c8ad372f1082241a17fe02c..4449c0c7c499bd5f427e5200da5ba84205e1c563 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReorderedOpenMP.cpp
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReorderedOpenMP.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReorderedOpenMP.h b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReorderedOpenMP.h
index 15d857e2d1de564184f53b7a54ebd1c35f470efd..13eaa41c290ac7d50dd09a083c2e448ff2206141 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReorderedOpenMP.h
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/CRSMatrixReorderedOpenMP.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Cluster.cpp b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Cluster.cpp
index e4c1f480f7207a49b521b6cd03fd2d2cab731f9c..2b5c6f939160285f738d7ca63ed6b2ffc39f459b 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Cluster.cpp
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Cluster.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Cluster.h b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Cluster.h
index ded1dfb3b391327e3e9231070b4b1096514a153e..7a7a379e980ef4233035663b08cb400ac43f9040 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Cluster.h
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Cluster.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/ClusterBase.cpp b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/ClusterBase.cpp
index 7ef1eb64cace6db6bafa72c7289d239ebc8e748c..799647747d0b1bda5ccfe4ebaa6dc08dc5cf6445 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/ClusterBase.cpp
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/ClusterBase.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/ClusterBase.h b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/ClusterBase.h
index 31b4e55b9904beb6832e3d15165029ead3532fb9..c67b9a06ff373c3d2a53be13df8da4fc4f254ea5 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/ClusterBase.h
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/ClusterBase.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Separator.cpp b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Separator.cpp
index a6f9ee634dc9cdd1db13de750962f63909ea0176..6b5fc0d730125f5babb962af0e123910e0884daf 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Separator.cpp
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Separator.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Separator.h b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Separator.h
index 9e27fe47e2502a480cb7f30fa4ea87b66784fe91..dbb0c919cbcf23a5f3c68bafda2dfd10067c6038 100644
--- a/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Separator.h
+++ b/MathLib/LinAlg/Sparse/NestedDissectionPermutation/Separator.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/Sparsity.h b/MathLib/LinAlg/Sparse/Sparsity.h
new file mode 100644
index 0000000000000000000000000000000000000000..e7f9a5e5770f2d67fa8ab6e8dfb7b3aa7b8cd495
--- /dev/null
+++ b/MathLib/LinAlg/Sparse/Sparsity.h
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ *
+ * \file Sparsity.h
+ *
+ * Created on 2012-06-25 by Norihiro Watanabe
+ */
+
+#ifndef SPARSITY_H_
+#define SPARSITY_H_
+
+#include <vector>
+#include <set>
+
+namespace MathLib
+{
+
+/**
+ * \brief Row-major sparse pattern
+ */
+typedef std::vector<std::set<std::size_t> > RowMajorSparsity;
+
+} //MathLib
+
+#endif // SPARSITY_H_
diff --git a/MathLib/LinAlg/Sparse/amuxCRS.cpp b/MathLib/LinAlg/Sparse/amuxCRS.cpp
index b57a3cdc8415016321563ff80d8edb21bc6ceb6f..9aff71032fe0f41e4f103e80b9308d15f1e8d8f8 100644
--- a/MathLib/LinAlg/Sparse/amuxCRS.cpp
+++ b/MathLib/LinAlg/Sparse/amuxCRS.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/Sparse/amuxCRS.h b/MathLib/LinAlg/Sparse/amuxCRS.h
index 9f0d75cef4e1cc6aaa20d97610ad6e8b733c6fcf..5b1d8511c7aaa3e8a9fbf117d8c1d327f3d53b44 100644
--- a/MathLib/LinAlg/Sparse/amuxCRS.h
+++ b/MathLib/LinAlg/Sparse/amuxCRS.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/LinAlg/SystemOfLinearEquations/ISystemOfLinearEquations.h b/MathLib/LinAlg/SystemOfLinearEquations/ISystemOfLinearEquations.h
new file mode 100644
index 0000000000000000000000000000000000000000..3ef7cb71f0b33f655c559515478d2064617ad0ae
--- /dev/null
+++ b/MathLib/LinAlg/SystemOfLinearEquations/ISystemOfLinearEquations.h
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ *
+ * \file ISystemOfLinearEquations.h
+ *
+ * Created on 2012-06-25 by Norihiro Watanabe
+ */
+
+#ifndef ISYSTEMOFLINEAREQUATIONS_H_
+#define ISYSTEMOFLINEAREQUATIONS_H_
+
+#include <iostream>
+#include <vector>
+#include <boost/property_tree/ptree.hpp>
+#include "MathLib/LinAlg/Sparse/Sparsity.h"
+
+namespace MathLib
+{
+
+/**
+ * \brief Interface to any system of linear equations Ax=b
+ *
+ * This class defines unified interface to a system of linear equations
+ * including linear solvers.
+ *
+ */
+class ISystemOfLinearEquations
+{
+public:
+    /// Index representing invalid
+    const static std::size_t index_npos = -1;
+
+    ///
+    virtual ~ISystemOfLinearEquations()
+    {
+    }
+
+    /**
+     * set properties
+     *
+     * @param option
+     */
+    virtual void setOption(const boost::property_tree::ptree &option) = 0;
+
+    /**
+     * initialize this system with zero
+     *
+     * This function initialize the system by setting zero to all entries in
+     * a matrix, a RHS vector and solution vector. Dimension of the system is
+     * not changed.
+     */
+    virtual void setZero() = 0;
+
+    /// return dimension of this equation
+    virtual std::size_t getDimension() const = 0;
+
+    /**
+     * set an entry in a matrix
+     *
+     * @param rowId
+     * @param colId
+     * @param v
+     */
+    virtual void setMatEntry(std::size_t rowId, std::size_t colId, double v) = 0;
+
+    /**
+     * add a value into a matrix
+     *
+     * @param rowId
+     * @param colId
+     * @param v
+     */
+    virtual void addMatEntry(std::size_t rowId, std::size_t colId, double v) = 0;
+
+    /**
+     * add a sub-matrix into a matrix at given row and column positions
+     *
+     * @param vec_row_pos
+     *  A vector of global row index. The number of entries of vec_row_pos have
+     *  to be identical to the number of rows of the local matrix.
+     * @param vec_col_pos
+     *  A vector of global column index. The number of vec_col_pos have to be
+     *  identical to the number of columns of the local matrix.
+     * @param sub_matrix    A sub-matrix
+     * @param fac           scaling parameter
+     */
+    template <class T_DENSE_MATRIX>
+    void addSubMat(const std::vector<std::size_t> &vec_row_pos,
+            const std::vector<std::size_t> &vec_col_pos,
+            const T_DENSE_MATRIX &sub_matrix, double fac = 1.0);
+
+    /**
+     * add a sub-matrix into a matrix
+     *
+     * @param vec_row_col_pos
+     *  A vector of global row and column index. The number of entries of
+     *  vec_row_col_pos have to be identical to the number of rows and columns
+     *  of the local matrix.
+     * @param sub_matrix        A sub-matrix
+     * @param fac               scaling parameter
+     */
+    template <class T_DENSE_MATRIX>
+    void addSubMat(const std::vector<std::size_t> &vec_row_col_pos,
+            const T_DENSE_MATRIX &sub_matrix, double fac = 1.0);
+
+    /**
+     * get RHS entry
+     *
+     * @param rowId
+     * @return
+     */
+    virtual double getRHSVec(std::size_t rowId) const = 0;
+
+    /**
+     * set RHS entry
+     *
+     * @param rowId
+     * @param v
+     */
+    virtual void setRHSVec(std::size_t rowId, double v) = 0;
+
+    /**
+     * add RHS entry
+     *
+     * @param rowId
+     * @param v
+     */
+    virtual void addRHSVec(std::size_t rowId, double v) = 0;
+
+    /**
+     * add a sub vector to RHS
+     *
+     * @param vec_row_pos
+     *  A vector of global row index. The number of entries of vec_row_pos
+     *  have to be identical to the number of rows of the sub vector.
+     * @param sub_vector
+     *  Pointer to a sub-vector. Its length must be the same as the length of vec_row_pos.
+     * @param fac
+     *  Scaling parameter. Default value is 1.
+     */
+    inline virtual void addSubRHS(const std::vector<std::size_t> &vec_row_pos,
+            const double* sub_vector, double fac = 1.0);
+
+    /**
+     * add a sub vector to RHS
+     *
+     * @param vec_row_pos
+     *  A vector of global row index. The number of entries of vec_row_pos
+     *  have to be identical to the number of rows of the sub vector.
+     * @param sub_vector    A sub-vector
+     * @param fac           Scaling parameter
+     */
+    template <class T_DENSE_VECTOR>
+    void addSubRHS(const std::vector<std::size_t> &vec_row_pos,
+            const T_DENSE_VECTOR &sub_vector, double fac = 1.0);
+
+    /**
+     * get an entry in a solution vector
+     * @param rowId
+     * @return
+     */
+    virtual double getSolVec(std::size_t rowId) = 0;
+
+    /**
+     * set an entry in a solution vector
+     * @param rowId
+     * @param v
+     */
+    virtual void setSolVec(std::size_t rowId, double v) = 0;
+
+    /**
+     * set prescribed value
+     * @param row_id
+     * @param x
+     */
+    virtual void setKnownSolution(std::size_t row_id, double x) = 0;
+
+    /**
+     * set prescribed value
+     * @param vec_id    A vector of global row index
+     * @param vec_x     A vector of prescribed values
+     */
+    virtual void setKnownSolution(const std::vector<std::size_t> &vec_id,
+            const std::vector<double> &vec_x) = 0;
+
+    /// solve the linear system
+    virtual void solve() = 0;
+
+    /// print out the equation for debugging
+    virtual void printout(std::ostream &os = std::cout) const = 0;
+
+};
+
+}
+
+#include "ISystemOfLinearEquations.tpp"
+
+#endif //ISYSTEMOFLINEAREQUATIONS_H_
diff --git a/MathLib/LinAlg/SystemOfLinearEquations/ISystemOfLinearEquations.tpp b/MathLib/LinAlg/SystemOfLinearEquations/ISystemOfLinearEquations.tpp
new file mode 100644
index 0000000000000000000000000000000000000000..eb6ff44085dd7da855a5e33980969a119026f791
--- /dev/null
+++ b/MathLib/LinAlg/SystemOfLinearEquations/ISystemOfLinearEquations.tpp
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ *
+ * \file ISystemOfLinearEquations.tpp
+ *
+ * Created on 2012-06-25 by Norihiro Watanabe
+ */
+
+#ifndef ISYSTEMOFLINEAREQUATIONS_TPP_
+#define ISYSTEMOFLINEAREQUATIONS_TPP_
+
+namespace MathLib
+{
+
+template <class T_DENSE_MATRIX>
+void ISystemOfLinearEquations::addSubMat(const std::vector<std::size_t> &vec_row_pos, const std::vector<std::size_t> &vec_col_pos, const T_DENSE_MATRIX &sub_matrix, double fkt)
+{
+    const std::size_t n_rows = vec_row_pos.size();
+    const std::size_t n_cols = vec_col_pos.size();
+    for (std::size_t i=0; i<n_rows; i++) {
+        const std::size_t rowId = vec_row_pos[i];
+        if (rowId==index_npos) continue;
+        for (std::size_t j=0; j<n_cols; j++) {
+            const std::size_t colId = vec_col_pos[j];
+            if (colId==index_npos) continue;
+            addMatEntry(rowId, colId, fkt*sub_matrix(i,j));
+        }
+    }
+}
+
+template <class T_DENSE_MATRIX>
+void ISystemOfLinearEquations::addSubMat(const std::vector<std::size_t> &vec_pos, const T_DENSE_MATRIX &sub_matrix, double fkt)
+{
+    addSubMat(vec_pos, vec_pos, sub_matrix, fkt);
+}
+
+inline void ISystemOfLinearEquations::addSubRHS(const std::vector<std::size_t> &vec_row_pos, const double *sub_vector, double fkt)
+{
+    for (std::size_t i=0; i<vec_row_pos.size(); i++) {
+        const std::size_t rowId = vec_row_pos[i];
+        if (rowId==index_npos) continue;
+        addRHSVec(rowId, sub_vector[i]*fkt);
+    }
+}
+
+template <class T_DENSE_VECTOR>
+void ISystemOfLinearEquations::addSubRHS(const std::vector<std::size_t> &vec_row_pos, const T_DENSE_VECTOR &sub_vector, double fkt)
+{
+    for (std::size_t i=0; i<vec_row_pos.size(); i++) {
+        const std::size_t rowId = vec_row_pos[i];
+        if (rowId==index_npos) continue;
+        addRHSVec(rowId, sub_vector(i)*fkt);
+    }
+}
+
+}
+
+#endif //ISYSTEMOFLINEAREQUATIONS_TPP_
+
diff --git a/MathLib/LinAlg/SystemOfLinearEquations/LisLinearSystem.cpp b/MathLib/LinAlg/SystemOfLinearEquations/LisLinearSystem.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..db4155d8e932dd5b3857bfc4514892d022c30126
--- /dev/null
+++ b/MathLib/LinAlg/SystemOfLinearEquations/LisLinearSystem.cpp
@@ -0,0 +1,189 @@
+/**
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ *
+ * \file LisLinearSystem.cpp
+ *
+ * Created on 2012-06-25 by Norihiro Watanabe
+ */
+
+#include "LisLinearSystem.h"
+
+#include <string>
+#include <sstream>
+#ifdef _OPENMP
+#include <omp.h>
+#endif
+#include "logog/include/logog.hpp"
+
+namespace MathLib
+{
+
+bool LisLinearSystem::checkError(int err)
+{
+    bool ok = (err == LIS_SUCCESS);
+    if (!ok) {
+        ERR("***ERROR: Lis error code = %d", err);
+    }
+    return ok;
+}
+
+LisLinearSystem::LisLinearSystem(std::size_t dimension)
+: _dim(dimension), _max_diag_coeff(.0)
+{
+    int ierr = 0;
+    ierr = lis_matrix_create(0, &_AA); checkError(ierr);
+    ierr = lis_matrix_set_size(_AA, 0, dimension); checkError(ierr);
+    ierr = lis_vector_duplicate(_AA, &_bb); checkError(ierr);
+    ierr = lis_vector_duplicate(_AA, &_xx); checkError(ierr);
+}
+
+LisLinearSystem::~LisLinearSystem()
+{
+    int ierr = 0;
+    ierr = lis_matrix_destroy(_AA); checkError(ierr);
+    ierr = lis_vector_destroy(_bb); checkError(ierr);
+    ierr = lis_vector_destroy(_xx); checkError(ierr);
+}
+
+void LisLinearSystem::setOption(const boost::property_tree::ptree &option)
+{
+    using boost::property_tree::ptree;
+
+    boost::optional<ptree> ptSolver = option.get_child("LinearSolver");
+    if (!ptSolver)
+        return;
+
+    boost::optional<std::string> solver_type = ptSolver->get_optional<std::string>("solver_type");
+    if (solver_type) {
+        _option.solver_type = _option.getSolverType(*solver_type);
+    }
+    boost::optional<std::string> precon_type = ptSolver->get_optional<std::string>("precon_type");
+    if (precon_type) {
+        _option.precon_type = _option.getPreconType(*precon_type);
+    }
+    boost::optional<std::string> matrix_type = ptSolver->get_optional<std::string>("matrix_type");
+    if (matrix_type) {
+        _option.matrix_type = _option.getMatrixType(*matrix_type);
+    }
+    boost::optional<double> error_tolerance = ptSolver->get_optional<double>("error_tolerance");
+    if (error_tolerance) {
+        _option.error_tolerance = *error_tolerance;
+    }
+    boost::optional<int> max_iteration_step = ptSolver->get_optional<int>("max_iteration_step");
+    if (max_iteration_step) {
+        _option.max_iterations = *max_iteration_step;
+    }
+}
+
+void LisLinearSystem::setZero()
+{
+    int ierr = 0;
+    // A matrix has to be removed and created every time because Lis doesn't provide a
+    // function to set matrix entries to zero
+    ierr = lis_matrix_destroy(_AA); checkError(ierr);
+    ierr = lis_matrix_create(0, &_AA); checkError(ierr);
+    ierr = lis_matrix_set_size(_AA, 0, getDimension()); checkError(ierr);
+    // set zero RHS, x
+    ierr = lis_vector_set_all(0.0, _bb); checkError(ierr);
+    ierr = lis_vector_set_all(0.0, _xx); checkError(ierr);
+
+    _max_diag_coeff = .0;
+}
+
+void LisLinearSystem::applyKnownSolution()
+{
+    //Use penalty parameter
+    const double penalty_scaling = 1e+10;
+    const double penalty = _max_diag_coeff * penalty_scaling;
+    INFO("-> max. absolute value of diagonal entries = %e", _max_diag_coeff);
+    INFO("-> penalty scaling = %e", penalty_scaling);
+    const std::size_t n_bc = _vec_knownX_id.size();
+    for (std::size_t i_bc=0; i_bc<n_bc; i_bc++) {
+        const std::size_t rowId = _vec_knownX_id[i_bc];
+        const double x = _vec_knownX_x[i_bc];
+        //A(k, k) = penalty
+        setMatEntry(rowId, rowId, penalty);
+        //b(k) = x*penalty
+        setRHSVec(rowId, x*penalty);
+    }
+}
+
+void LisLinearSystem::solve()
+{
+    INFO("------------------------------------------------------------------");
+    INFO("*** LIS solver computation");
+#ifdef _OPENMP
+    INFO("-> max number of threads = %d", omp_get_num_procs());
+    INFO("-> number of threads = %d", omp_get_max_threads());
+#endif
+
+    applyKnownSolution();
+    // assemble a matrix
+    int ierr = 0;
+    ierr = lis_matrix_set_type(_AA, static_cast<int>(_option.matrix_type)); checkError(ierr);
+    ierr = lis_matrix_assemble(_AA); checkError(ierr);
+
+    // configure option
+    std::string solver_options;
+    if (_option.solver_precon_arg.empty()) {
+        std::stringstream ss;
+        ss << "-i " << static_cast<int>(_option.solver_type);
+        ss << " -p " << static_cast<int>(_option.precon_type);
+        if (!_option.extra_arg.empty())
+            ss << " " << _option.extra_arg;
+        solver_options = ss.str();
+    } else {
+        solver_options = _option.solver_precon_arg;
+    }
+    std::string tol_option;
+    {
+        std::stringstream ss;
+        ss << "-tol " << _option.error_tolerance;
+        ss << " -maxiter " << _option.max_iterations;
+        ss << " -initx_zeros 0"; //0: use given x as initial guess, 1: x0=0
+#ifdef _OPENMP
+        const int nthreads = omp_get_max_threads();
+        ss << " -omp_num_threads " << nthreads;
+#endif
+        tol_option = ss.str();
+    }
+
+    // Create solver
+    LIS_SOLVER solver;
+    ierr = lis_solver_create(&solver); checkError(ierr);
+    ierr = lis_solver_set_option(const_cast<char*>(solver_options.c_str()), solver); checkError(ierr);
+    ierr = lis_solver_set_option(const_cast<char*>(tol_option.c_str()), solver); checkError(ierr);
+    ierr = lis_solver_set_option(const_cast<char*>("-print mem"), solver); checkError(ierr);
+
+    // solve
+    INFO("-> solve");
+    ierr = lis_solve(_AA, _bb, _xx, solver); checkError(ierr);
+    checkError(ierr);
+    //lis_output(_AA, _bb, _xx, LIS_FMT_MM, "/home/localadmin/tasks/20120814_ogs6test/matrix1.txt");
+
+    int iter = 0;
+    double resid = 0.0;
+    ierr = lis_solver_get_iters(solver, &iter); checkError(ierr);
+    ierr = lis_solver_get_residualnorm(solver, &resid); checkError(ierr);
+    INFO("\t iteration: %d/%ld\n", iter, _option.max_iterations);
+    INFO("\t residuals: %e\n", resid);
+
+    // Clear solver
+    ierr = lis_solver_destroy(solver); checkError(ierr);
+    INFO("------------------------------------------------------------------");
+}
+
+void LisLinearSystem::printout(std::ostream &os) const
+{
+    os << "#A=" << std::endl;
+    os << "#x=" << std::endl;
+    lis_vector_print(_xx);
+    os << "#b=" << std::endl;
+    lis_vector_print(_bb);
+}
+
+} //MathLib
diff --git a/MathLib/LinAlg/SystemOfLinearEquations/LisLinearSystem.h b/MathLib/LinAlg/SystemOfLinearEquations/LisLinearSystem.h
new file mode 100644
index 0000000000000000000000000000000000000000..d40b5116378eaf3c3202f180faa4d8c79148f263
--- /dev/null
+++ b/MathLib/LinAlg/SystemOfLinearEquations/LisLinearSystem.h
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ *
+ * \file LisLinearSystem.h
+ *
+ * Created on 2012-06-25 by Norihiro Watanabe
+ */
+
+#ifndef LISLINEARSYSTEM_H_
+#define LISLINEARSYSTEM_H_
+
+#include <iostream>
+#include <string>
+#include <vector>
+#include <boost/property_tree/ptree.hpp>
+
+#include "lis.h"
+
+#include "LisOption.h"
+
+namespace MathLib
+{
+
+/**
+ * \brief Linear system using Lis solver (http://www.ssisc.org/lis/)
+ *
+ * This class utilizes Lis solver.
+ */
+class LisLinearSystem
+{
+public:
+    //---------------------------------------------------------------
+    // realization of ISystemOfLinearEquations
+    //---------------------------------------------------------------
+
+    /**
+     * Create a linear system using Lis
+     *
+     * @param length    System dimension
+     */
+    LisLinearSystem(std::size_t length);
+
+    /**
+     *
+     */
+    virtual ~LisLinearSystem();
+
+    /**
+     * configure linear solvers
+     * @param option
+     */
+    virtual void setOption(const boost::property_tree::ptree &option);
+
+    /// return the system dimension
+    virtual std::size_t getDimension() const { return _dim; };
+
+    /// reset this equation
+    virtual void setZero();
+
+    /// set entry in A
+    virtual void setMatEntry(std::size_t rowId, std::size_t colId, double v)
+    {
+        if (rowId==colId)
+            _max_diag_coeff = std::max(_max_diag_coeff, std::abs(v));
+        lis_matrix_set_value(LIS_INS_VALUE, rowId, colId, v, _AA);
+    }
+
+    /// add value into A
+    virtual void addMatEntry(std::size_t rowId, std::size_t colId, double v)
+    {
+        if (rowId==colId)
+            _max_diag_coeff = std::max(_max_diag_coeff, std::abs(v));
+        lis_matrix_set_value(LIS_ADD_VALUE, rowId, colId, v, _AA);
+    }
+
+    /// get RHS entry
+    virtual double getRHSVec(std::size_t rowId) const
+    {
+        double v;
+        lis_vector_get_value(_bb, rowId, &v);
+        return v;
+    }
+
+    /// set RHS entry
+    virtual void setRHSVec(std::size_t rowId, double v)
+    {
+        lis_vector_set_value(LIS_INS_VALUE, rowId, v, _bb);
+    }
+
+    /// add RHS entry
+    virtual void addRHSVec(std::size_t rowId, double v)
+    {
+        lis_vector_set_value(LIS_ADD_VALUE, rowId, v, _bb);
+    }
+
+    /// get an entry in a solution vector
+    virtual double getSolVec(std::size_t rowId)
+    {
+        double v;
+        lis_vector_get_value(_xx, rowId, &v);
+        return v;
+    }
+
+    /// set a solution vector
+    virtual void setSolVec(std::size_t rowId, double v)
+    {
+        lis_vector_set_value(LIS_INS_VALUE, rowId, v, _xx);
+    }
+
+    /// set prescribed value
+    virtual void setKnownSolution(std::size_t rowId, double x)
+    {
+        _vec_knownX_id.push_back(rowId);
+        _vec_knownX_x.push_back(x);
+    }
+
+    /// set prescribed values
+    virtual void setKnownSolution(const std::vector<std::size_t> &vec_id, const std::vector<double> &vec_x)
+    {
+        _vec_knownX_id.insert(_vec_knownX_id.end(), vec_id.begin(), vec_id.end());
+        _vec_knownX_x.insert(_vec_knownX_x.end(), vec_x.begin(), vec_x.end());
+    }
+
+    /// solve this equation
+    virtual void solve();
+
+    /// printout this equation for debugging
+    virtual void printout(std::ostream &os=std::cout) const;
+
+    //---------------------------------------------------------------
+    // specific to this class
+    //---------------------------------------------------------------
+    /**
+     * configure linear solvers
+     * @param option
+     */
+    void setOption(const LisOption &option)
+    {
+        _option = option;
+    }
+
+    /**
+     * get linear solver options
+     * @return
+     */
+    LisOption &getOption()
+    {
+        return _option;
+    }
+
+    /**
+     * get a solution vector
+     * @param x
+     */
+    void getSolVec(double* x)
+    {
+        lis_vector_gather(_xx, x);
+    }
+
+private:
+    bool checkError(int err);
+    void applyKnownSolution();
+
+private:
+    const std::size_t _dim;
+    double _max_diag_coeff;
+    LisOption _option;
+    LIS_MATRIX _AA;
+    LIS_VECTOR _bb;
+    LIS_VECTOR _xx;
+    std::vector<std::size_t> _vec_knownX_id;
+    std::vector<double> _vec_knownX_x;
+};
+
+
+} // MathLib
+
+#endif //LISLINEARSYSTEM_H_
+
diff --git a/MathLib/LinAlg/SystemOfLinearEquations/LisOption.cpp b/MathLib/LinAlg/SystemOfLinearEquations/LisOption.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..40cc2689aca57898b2514dd4b95db74e4fa9a87e
--- /dev/null
+++ b/MathLib/LinAlg/SystemOfLinearEquations/LisOption.cpp
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ *
+ * \file LisOption.cpp
+ *
+ * Created on 2012-12-05 by Norihiro Watanabe
+ */
+
+#include "LisOption.h"
+
+namespace MathLib
+{
+
+LisOption::LisOption()
+{
+    solver_type = SolverType::CG;
+    precon_type = PreconType::NONE;
+    matrix_type = MatrixType::CRS;
+    max_iterations = 500;
+    error_tolerance = 1.e-10;
+}
+
+LisOption::SolverType LisOption::getSolverType(const std::string &solver_name)
+{
+#define RETURN_SOLVER_ENUM_IF_SAME_STRING(str, TypeName) \
+    if (#TypeName==str) return SolverType::TypeName;
+
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, CG);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, BiCG);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, CGS);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, BiCGSTAB);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, BiCGSTABl);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, GPBiCG);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, TFQMR);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, Orthomin);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, GMRES);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, Jacobi);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, GaussSeidel);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, SOR);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, BiCGSafe);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, CR);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, BiCR);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, CRS);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, BiCRSTAB);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, GPBiCR);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, BiCRSafe);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, FGMRESm);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, IDRs);
+    RETURN_SOLVER_ENUM_IF_SAME_STRING(solver_name, MINRES);
+
+    return SolverType::INVALID;
+#undef RETURN_SOLVER_ENUM_IF_SAME_STRING
+}
+
+LisOption::PreconType LisOption::getPreconType(const std::string &precon_name)
+{
+#define RETURN_PRECOM_ENUM_IF_SAME_STRING(str, TypeName) \
+    if (#TypeName==str) return PreconType::TypeName;
+
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, NONE);
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, JACOBI);
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, ILU);
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, SSOR);
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, Hybrid);
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, IplusS);
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, SAINV);
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, SAAMG);
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, CroutILU);
+    RETURN_PRECOM_ENUM_IF_SAME_STRING(precon_name, ILUT);
+
+    return PreconType::NONE;
+#undef RETURN_PRECOM_ENUM_IF_SAME_STRING
+}
+
+LisOption::MatrixType LisOption::getMatrixType(const std::string &matrix_name)
+{
+#define RETURN_MATRIX_ENUM_IF_SAME_STRING(str, TypeName) \
+    if (#TypeName==str) return MatrixType::TypeName;
+
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, CRS);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, CCS);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, MSR);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, DIA);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, ELL);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, JDS);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, BSR);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, BSC);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, VBR);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, COO);
+    RETURN_MATRIX_ENUM_IF_SAME_STRING(matrix_name, DNS);
+
+    return MatrixType::CRS;
+#undef RETURN_MATRIX_ENUM_IF_SAME_STRING
+}
+
+} //MathLib
diff --git a/MathLib/LinAlg/SystemOfLinearEquations/LisOption.h b/MathLib/LinAlg/SystemOfLinearEquations/LisOption.h
new file mode 100644
index 0000000000000000000000000000000000000000..2fb75b311f1110ffb2de63b59fe6e674f672aca1
--- /dev/null
+++ b/MathLib/LinAlg/SystemOfLinearEquations/LisOption.h
@@ -0,0 +1,143 @@
+/**
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ *
+ * \file LisOption.h
+ *
+ * Created on 2012-06-25 by Norihiro Watanabe
+ */
+
+#ifndef LIS_OPTION_H_
+#define LIS_OPTION_H_
+
+#include <string>
+
+namespace MathLib
+{
+
+/**
+ * \brief Option for Lis solver
+ */
+struct LisOption
+{
+    /// Solver type
+    enum class SolverType : int
+    {
+        INVALID = 0,
+        CG = 1,
+        BiCG = 2,
+        CGS = 3,
+        BiCGSTAB = 4,
+        BiCGSTABl = 5,
+        GPBiCG = 6,
+        TFQMR = 7,
+        Orthomin = 8,
+        GMRES = 9,
+        Jacobi = 10,
+        GaussSeidel = 11,
+        SOR = 12,
+        BiCGSafe = 13,
+        CR = 14,
+        BiCR = 15,
+        CRS = 16,
+        BiCRSTAB = 17,
+        GPBiCR = 18,
+        BiCRSafe = 19,
+        FGMRESm = 20,
+        IDRs = 21,
+        MINRES = 22
+    };
+
+    /// Preconditioner type
+    enum class PreconType : int
+    {
+        NONE = 0,
+        JACOBI = 1,
+        ILU = 2,
+        SSOR = 3,
+        Hybrid = 4,
+        IplusS = 5,
+        SAINV = 6,
+        SAAMG = 7,
+        CroutILU = 8,
+        ILUT = 9
+    };
+
+    /// Matrix type
+    enum class MatrixType : int
+    {
+        CRS = 1,
+        CCS = 2,
+        MSR = 3,
+        DIA = 4,
+        ELL = 5,
+        JDS = 6,
+        BSR = 7,
+        BSC = 8,
+        VBR = 9,
+        COO = 10,
+        DNS = 11
+    };
+
+    /// Linear solver type
+    SolverType solver_type;
+    /// Preconditioner type
+    PreconType precon_type;
+    /// Matrix type
+    MatrixType matrix_type;
+    /// Maximum iteration count
+    long max_iterations;
+    /// Error tolerance
+    double error_tolerance;
+    /// Extra option
+    std::string extra_arg;
+    /// Arguments for solver and preconditioner. This variable is always preferred
+    /// to other variables.
+    std::string solver_precon_arg;
+
+    /**
+     * Constructor
+     *
+     * Default options are CG, no preconditioner, iteration count 500 and
+     * tolerance 1e-10. Default matrix storage type is CRS.
+     */
+    LisOption();
+
+    /// Destructor
+    ~LisOption() {};
+
+    /**
+     * return a linear solver type from the solver name
+     *
+     * @param solver_name
+     * @return a linear solver type
+     *      If there is no solver type matched with the given name, INVALID
+     *      is returned.
+     */
+    static SolverType getSolverType(const std::string &solver_name);
+
+    /**
+     * return a preconditioner type from the name
+     *
+     * @param precon_name
+     * @return a preconditioner type
+     *      If there is no preconditioner type matched with the given name, NONE
+     *      is returned.
+     */
+    static PreconType getPreconType(const std::string &precon_name);
+
+    /**
+     * return a matrix type
+     * @param matrix_name
+     * @return
+     *      If there is no matrix type matched with the given name, CRS
+     *      is returned.
+     */
+    static MatrixType getMatrixType(const std::string &matrix_name);
+};
+
+}
+#endif //LIS_OPTION_H_
diff --git a/MathLib/LinAlg/VectorNorms.h b/MathLib/LinAlg/VectorNorms.h
index 271353f7b742bc18eade40f0d161013467882056..a1a732a257f752e0e98da50ee016890f1d8e77a1 100644
--- a/MathLib/LinAlg/VectorNorms.h
+++ b/MathLib/LinAlg/VectorNorms.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/MathTools.cpp b/MathLib/MathTools.cpp
index 528dbdda2d9dc23e49f1975b7e7710642f42aecb..50b6e7a39a34ad293e06f9325e7406fc47dc00f2 100644
--- a/MathLib/MathTools.cpp
+++ b/MathLib/MathTools.cpp
@@ -1,5 +1,5 @@
 	/**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/MathTools.h b/MathLib/MathTools.h
index ecd3dd5b07a5c2e4d4340b57c1884b792e908742..ca9ff780a8efeb2d6ec39592ec6fcd4102d33a3b 100644
--- a/MathLib/MathTools.h
+++ b/MathLib/MathTools.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/Vector3.h b/MathLib/Vector3.h
index 463ba34a5fee5e22c6edab4977869f4fa23bea16..4e2472a70c6375ed826d54c9704ebea995e8f453 100644
--- a/MathLib/Vector3.h
+++ b/MathLib/Vector3.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/sparse.h b/MathLib/sparse.h
index 62f5bbcc11304b038fd870b5ad40590275dd6443..17ec803a41220bb2150f2ba344ffb3d52ae916e8 100644
--- a/MathLib/sparse.h
+++ b/MathLib/sparse.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MathLib/vector_io.h b/MathLib/vector_io.h
index 5312804a21487fd879fe8372b0a051a8736f1e3e..9bb3373cdf8fbffca1495693b8c0c9cc7e66a8ba 100644
--- a/MathLib/vector_io.h
+++ b/MathLib/vector_io.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/ElementStatus.cpp b/MeshLib/ElementStatus.cpp
index b87cf58939f73391a269c87a6a1dcdb24a106c87..3fc7bf71e66b7940143a60603f87fafc861c20db 100644
--- a/MeshLib/ElementStatus.cpp
+++ b/MeshLib/ElementStatus.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/ElementStatus.h b/MeshLib/ElementStatus.h
index ad41759b0fc449b7fed524aad89dac4cc3a6acde..18c96b7126c123a60f259d661bc24a5d4a3a30ed 100644
--- a/MeshLib/ElementStatus.h
+++ b/MeshLib/ElementStatus.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
@@ -16,7 +16,7 @@
 #include "Mesh.h"
 
 namespace MeshLib {
-	
+
 /**
  * An object to store which elements of the mesh are active and which are inactive
  */
@@ -28,7 +28,7 @@ public:
 	ElementStatus(Mesh const*const mesh);
 
 	bool getElementStatus(unsigned i) { return _status[i]; };
-	
+
 	bool isActive(unsigned i) { return _status[i]; };
 
 	void setActive(unsigned i) { _status[i] = true; };
diff --git a/MeshLib/Elements/Cell.cpp b/MeshLib/Elements/Cell.cpp
index 7ed7b117115e01368345c49b489a1816118d54ef..a1012360e862e0e314bdb129eac7ecc19d3ffdeb 100644
--- a/MeshLib/Elements/Cell.cpp
+++ b/MeshLib/Elements/Cell.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/Cell.h b/MeshLib/Elements/Cell.h
index 9f28ea3d7ecfc672884c4f59ab40a5bbdfbbec96..1028229816bbfc6db1e951331d0c591a206d83ec 100644
--- a/MeshLib/Elements/Cell.h
+++ b/MeshLib/Elements/Cell.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/Element.cpp b/MeshLib/Elements/Element.cpp
index 7e24dbdabc3edc9cced003906b80a1bba6f6e203..6a10dc8dd4f3eaf717938d3f078479fb2e71ec6b 100644
--- a/MeshLib/Elements/Element.cpp
+++ b/MeshLib/Elements/Element.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
@@ -10,6 +10,8 @@
  * Created on 2012-05-02 by Karsten Rink
  */
 
+#include "logog/include/logog.hpp"
+
 #include "Element.h"
 #include "Node.h"
 #include "Edge.h"
@@ -74,7 +76,7 @@ const Element* Element::getEdge(unsigned i) const
 		nodes[1] = const_cast<Node*>(getEdgeNode(i,1));
 		return new Edge(nodes);
 	}
-	std::cerr << "Error in MeshLib::Element::getEdge() - Index does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getEdge() - Index does not exist.");
 	return NULL;
 }
 
@@ -95,7 +97,7 @@ const Element* Element::getNeighbor(unsigned i) const
 {
 	if (i < getNNeighbors())
 		return _neighbors[i];
-	std::cerr << "Error in MeshLib::Element::getNeighbor() - Index does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getNeighbor() - Index does not exist.");
 	return NULL;
 }
 
@@ -112,7 +114,7 @@ const Node* Element::getNode(unsigned i) const
 {
 	if (i < getNNodes())
 		return _nodes[i];
-	std::cerr << "Error in MeshLib::Element::getNode() - Index " << i << " in " << MshElemType2String(getGeomType()) <<  " does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getNode() - Index %d in %s", i, MshElemType2String(getGeomType()).c_str());
 	return NULL;
 }
 
@@ -126,7 +128,7 @@ unsigned Element::getNodeIndex(unsigned i) const
 {
 	if (i<getNNodes())
 		return _nodes[i]->getID();
-	std::cerr << "Error in MeshLib::Element::getNodeIndex() - Index does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getNodeIndex() - Index does not exist.");
 	return std::numeric_limits<unsigned>::max();
 }
 
diff --git a/MeshLib/Elements/Element.h b/MeshLib/Elements/Element.h
index 3568745ca91f1d3e71b852dc3d5472faba647abd..1d7249192671a7023d2829ca76ac80454ff6d8b0 100644
--- a/MeshLib/Elements/Element.h
+++ b/MeshLib/Elements/Element.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/Face.cpp b/MeshLib/Elements/Face.cpp
index b0c745b43f639681ba103196701e49fdabeb6e06..5a853a26b9bfe49b5695bf267630adcaaffa2a34 100644
--- a/MeshLib/Elements/Face.cpp
+++ b/MeshLib/Elements/Face.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/Face.h b/MeshLib/Elements/Face.h
index 2746abcf9f8f6f670ba9285c928cfd1ab0b407b5..02d85a06909ae288f0b9fae5077aa02cc5f0aed7 100644
--- a/MeshLib/Elements/Face.h
+++ b/MeshLib/Elements/Face.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/FemElem.cpp b/MeshLib/Elements/FemElem.cpp
index d4695a597f2ffb6085dea46dc87314e19eed2a9d..5fcd121d6aa1dee50ae486ef5133a2fa10513158 100644
--- a/MeshLib/Elements/FemElem.cpp
+++ b/MeshLib/Elements/FemElem.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/FemElem.h b/MeshLib/Elements/FemElem.h
index cfe740709f1868d2f13cef100c8ebdc8e32cc2c4..e870a2d9e27c3f3e9464e4820dd413b2c0132d65 100644
--- a/MeshLib/Elements/FemElem.h
+++ b/MeshLib/Elements/FemElem.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/TemplateEdge.h b/MeshLib/Elements/TemplateEdge.h
index 1d15d036c39b5766a7f5e59668f5580da242f2ba..7a9e4c8133e237d1a0c8ec4ec177a8fd8e71f365 100644
--- a/MeshLib/Elements/TemplateEdge.h
+++ b/MeshLib/Elements/TemplateEdge.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/TemplateHex.h b/MeshLib/Elements/TemplateHex.h
index b5f8d873cb6a96b0b01d74e4086960149385cab5..2d1ac4bf1f0d5ddab1b98774f6d4218a7ae6fb4c 100644
--- a/MeshLib/Elements/TemplateHex.h
+++ b/MeshLib/Elements/TemplateHex.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/TemplateHex.tpp b/MeshLib/Elements/TemplateHex.tpp
index aa2b3d9893337714ce3456e9d5c5833535afca12..618beb367c8b9fb0b69b6658ad9b35b6e20c81a0 100644
--- a/MeshLib/Elements/TemplateHex.tpp
+++ b/MeshLib/Elements/TemplateHex.tpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
@@ -10,6 +10,8 @@
  * Created on 2012-05-02 by Karsten Rink
  */
 
+#include "logog/include/logog.hpp"
+
 #include "Node.h"
 #include "Quad.h"
 #include "Prism.h"
@@ -101,7 +103,7 @@ const Element* TemplateHex<NNODES,CELLHEXTYPE>::getFace(unsigned i) const
 			nodes[j] = _nodes[_face_nodes[i][j]];
 		return new Quad(nodes);
 	}
-	std::cerr << "Error in MeshLib::Element::getFace() - Index does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
 	return NULL;
 }
 
@@ -149,7 +151,7 @@ Element* TemplateHex<NNODES,CELLHEXTYPE>::reviseElement() const
 	}
 
 	if (collapsed_edges.size() == 1) {
-		std::cerr << "[TemplateHex<NNODES,CELLHEXTYPE>::reviseElement()] collapsing of one edge in hexahedron not handled" << std::endl;
+		ERR("[TemplateHex<NNODES,CELLHEXTYPE>::reviseElement()] collapsing of one edge in hexahedron not handled.");
 		return NULL;
 	}
 
diff --git a/MeshLib/Elements/TemplatePrism.h b/MeshLib/Elements/TemplatePrism.h
index 63791e5a54487a69223feeb0bcdfa349957c5fb1..a440707020e119c51d58858928d6453020902bc2 100644
--- a/MeshLib/Elements/TemplatePrism.h
+++ b/MeshLib/Elements/TemplatePrism.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/TemplatePrism.tpp b/MeshLib/Elements/TemplatePrism.tpp
index a9b8885f34d1e4e40cc2265a55568f4897fce8d2..6187f980db634464a627b1bb8773db63606ee49b 100644
--- a/MeshLib/Elements/TemplatePrism.tpp
+++ b/MeshLib/Elements/TemplatePrism.tpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
@@ -10,6 +10,9 @@
  * Created on 2012-05-02 by Karsten Rink
  */
 
+// Thirdparty
+#include "logog/include/logog.hpp"
+
 #include "Node.h"
 #include "Tri.h"
 #include "Pyramid.h"
@@ -100,7 +103,7 @@ const Element* TemplatePrism<NNODES,CELLPRISMTYPE>::getFace(unsigned i) const
 		else
 			return new Quad(nodes);
 	}
-	std::cerr << "Error in MeshLib::Element::getFace() - Index does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
 	return NULL;
 }
 
@@ -109,7 +112,7 @@ unsigned TemplatePrism<NNODES,CELLPRISMTYPE>::getNFaceNodes(unsigned i) const
 {
 	if (i<5)
 		return _n_face_nodes[i];
-	std::cerr << "Error in MeshLib::Element::getNFaceNodes() - Index does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getNFaceNodes() - Index %d does not exist.", i);
 	return 0;
 }
 
diff --git a/MeshLib/Elements/TemplatePyramid.h b/MeshLib/Elements/TemplatePyramid.h
index 5abf8628cacbbd2a6f2355c894e481c78f21591f..ba65709d5adb66b0e4f0607eca2a951dc975e6e6 100644
--- a/MeshLib/Elements/TemplatePyramid.h
+++ b/MeshLib/Elements/TemplatePyramid.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/TemplatePyramid.tpp b/MeshLib/Elements/TemplatePyramid.tpp
index 9b593253e962a9d3a24167bde7166daf849a1b62..bf68c30356fc096c205f08cd782b6c2ced81d493 100644
--- a/MeshLib/Elements/TemplatePyramid.tpp
+++ b/MeshLib/Elements/TemplatePyramid.tpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
@@ -10,6 +10,9 @@
  * Created on 2012-05-02 by Karsten Rink
  */
 
+// Thirdparty
+#include "logog/include/logog.hpp"
+
 #include "Node.h"
 #include "Tri.h"
 #include "Tet.h"
@@ -102,7 +105,7 @@ const Element* TemplatePyramid<NNODES,CELLPYRAMIDTYPE>::getFace(unsigned i) cons
 		else
 			return new Quad(nodes);
 	}
-	std::cerr << "Error in MeshLib::Element::getFace() - Index does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
 	return NULL;
 }
 
@@ -111,7 +114,7 @@ unsigned TemplatePyramid<NNODES,CELLPYRAMIDTYPE>::getNFaceNodes(unsigned i) cons
 {
 	if (i<5)
 		return _n_face_nodes[i];
-	std::cerr << "Error in MeshLib::Element::getNFaceNodes() - Index does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getNFaceNodes() - Index %d does not exist.", i);
 	return 0;
 }
 
diff --git a/MeshLib/Elements/TemplateQuad.h b/MeshLib/Elements/TemplateQuad.h
index 2330b8d7ca9e0296ea8157d55f55c7f8f73b5828..fab6e1eb4065da91056658a0f9cd64946cf82ba3 100644
--- a/MeshLib/Elements/TemplateQuad.h
+++ b/MeshLib/Elements/TemplateQuad.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/TemplateQuad.tpp b/MeshLib/Elements/TemplateQuad.tpp
index 125be6761101b05004e76f4f3819c9ddde3854cc..8cdff7a4fc9e94a74ebeb9a8a812d645e457fe9c 100644
--- a/MeshLib/Elements/TemplateQuad.tpp
+++ b/MeshLib/Elements/TemplateQuad.tpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/TemplateTet.h b/MeshLib/Elements/TemplateTet.h
index a34982a993afee40879a5b5834f4e0205bcfab7c..170e6bfa192749c492a9d4ef3615e4c1d407112a 100644
--- a/MeshLib/Elements/TemplateTet.h
+++ b/MeshLib/Elements/TemplateTet.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Elements/TemplateTet.tpp b/MeshLib/Elements/TemplateTet.tpp
index ba0192fe0dd75773a3d5236a98199bb223f07e61..a10846f4ab5dd2abfda5170da039908e5e3ab233 100644
--- a/MeshLib/Elements/TemplateTet.tpp
+++ b/MeshLib/Elements/TemplateTet.tpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
@@ -10,6 +10,8 @@
  * Created on 2012-05-02 by Karsten Rink
  */
 
+#include "logog/include/logog.hpp"
+
 #include "Node.h"
 #include "Tri.h"
 
@@ -90,7 +92,7 @@ const Element* TemplateTet<NNODES,CELLTETTYPE>::getFace(unsigned i) const
 			nodes[j] = _nodes[_face_nodes[i][j]];
 		return new Tri(nodes);
 	}
-	std::cerr << "Error in MeshLib::Element::getFace() - Index does not exist." << std::endl;
+	ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
 	return NULL;
 }
 
diff --git a/MeshLib/Elements/TemplateTri.h b/MeshLib/Elements/TemplateTri.h
index 0f120554e90611e8a8f35e9290001b33d1f94a02..6e2aea148b35911de1e9269e9c83230dea6509f9 100644
--- a/MeshLib/Elements/TemplateTri.h
+++ b/MeshLib/Elements/TemplateTri.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Mesh.cpp b/MeshLib/Mesh.cpp
index aab394540730f23a5cb7368863708ddb41995283..d4edadb50d70dfbb27c82d1f3e3c79361f6c5817 100644
--- a/MeshLib/Mesh.cpp
+++ b/MeshLib/Mesh.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
@@ -93,7 +93,7 @@ void Mesh::makeNodesUnique()
 	}
 
 	//set correct id for each node
-	
+
 	//if (this->getDimension() > 1)
 	//	this->removeMeshElements(MshElemType::EDGE);
 
@@ -268,7 +268,7 @@ void Mesh::removeUnusedMeshNodes()
 	}
 	if (count)
 	{
-		std::cout << "Removed " << count << " unused mesh nodes." << std::endl;
+		INFO("Removed %d unused mesh nodes.", count );
 		this->resetNodeIDs();
 	}
 }
@@ -276,8 +276,7 @@ void Mesh::removeUnusedMeshNodes()
 void Mesh::removeMeshElements(MshElemType::type t)
 {
 	unsigned count(0);
-	std::vector<MeshLib::Element*>::iterator it = this->_elements.begin();
-	for (it; it != this->_elements.end();)
+	for (std::vector<MeshLib::Element*>::iterator it = this->_elements.begin(); it != this->_elements.end();)
 	{
 		if ((*it)->getCellType() == t)
 		{
@@ -285,10 +284,10 @@ void Mesh::removeMeshElements(MshElemType::type t)
 			it = this->_elements.erase(it);
 			++count;
 		}
-		else 
+		else
 			++it;
 	}
-	std::cout << "Removed " << count << " elements of type " << MshElemType2String(t) << " from mesh." << std::endl;
+	INFO("Removed %d  elements of type %s from mesh.", count, MshElemType2String(t).c_str());
 }
 
 }
diff --git a/MeshLib/Mesh.h b/MeshLib/Mesh.h
index 9464acb68eb6e5d7446f31fb6aeb39030b522103..3a609c68422dfb5998ac93c2b9b88b661beb7a51 100644
--- a/MeshLib/Mesh.h
+++ b/MeshLib/Mesh.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/MeshCoarsener.cpp b/MeshLib/MeshCoarsener.cpp
index 6cb3847cd5b70541a1199fb7c6cabfe407208016..f85bb4bec37591fd5a080c868188180ad1519f30 100644
--- a/MeshLib/MeshCoarsener.cpp
+++ b/MeshLib/MeshCoarsener.cpp
@@ -74,7 +74,7 @@ Mesh* MeshCoarsener::operator()(double min_distance)
 						// two nodes are very close to each other
 						id_map[test_node_id] = node_id_k;
 #ifndef NDEBUG
-						INFO ("distance of nodes with ids %d and %d is %f", node_id_k, test_node_id, sqrt(MathLib::sqrDist(node->getCoords(), test_node->getCoords())));
+						INFO("distance of nodes with ids %d and %d is %f", node_id_k, test_node_id, sqrt(MathLib::sqrDist(node->getCoords(), test_node->getCoords())));
 #endif
 					}
 				}
@@ -131,7 +131,7 @@ Mesh* MeshCoarsener::operator()(double min_distance)
 			const size_t orig_node_id (kth_orig_elem->getNode(i)->getID());
 			std::map<size_t, size_t>::const_iterator it(orig_ids_map.find(orig_node_id));
 			if (it == orig_ids_map.end()) {
-				std::cerr << "[MeshCoarsener::operator()] could not found mesh node id" << std::endl;
+				ERR("[MeshCoarsener::operator()] could not found mesh node id.");
 			} else {
 				mapped_node_ids_of_element.push_back(id_map[it->second]);
 			}
diff --git a/MeshLib/MshEnums.cpp b/MeshLib/MshEnums.cpp
index b46809b5d7347b2765b8e09703371e844b885b40..84d42cfaa86d9e6db81fa8eabd1cbeaba724b8e6 100644
--- a/MeshLib/MshEnums.cpp
+++ b/MeshLib/MshEnums.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/MshEnums.h b/MeshLib/MshEnums.h
index 44ae4e39f926527ac721b228247c8e0f27c2c1c2..f8979276d7c71c49d5533b854d5fdbbf4fc7cf3c 100644
--- a/MeshLib/MshEnums.h
+++ b/MeshLib/MshEnums.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Node.cpp b/MeshLib/Node.cpp
index 629fa7f973e5bce87f227ec3ece490aa9390195b..c794b31fe3287f525a43d98e4d8b75f06cfb6d59 100644
--- a/MeshLib/Node.cpp
+++ b/MeshLib/Node.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/MeshLib/Node.h b/MeshLib/Node.h
index 0acb30279b720100ef4ea0b608f4d36dbc453e7f..f3af0b4f6dca86986390ec54456ebd44946a6df5 100644
--- a/MeshLib/Node.h
+++ b/MeshLib/Node.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/OGS/ProjectData.cpp b/OGS/ProjectData.cpp
index 22ab8ea8b7d985e20a62aaa31661b7038dabbc81..1cbe6b3918f104c4c64568048b4fbb577628b017 100644
--- a/OGS/ProjectData.cpp
+++ b/OGS/ProjectData.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/OGS/ProjectData.h b/OGS/ProjectData.h
index 7792f42b7730405bc53ed6bef56d831307da0269..8480f3fa64a25d93a76cf7b43da21c85c4ae28b3 100644
--- a/OGS/ProjectData.h
+++ b/OGS/ProjectData.h
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/README.md b/README.md
index 3e0ff9e9954418255bb9cded8e884660f0ae2555..aeb8cc77d6f5ff7305d1a2bc3e10f50698421916 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@ attribute the work of the OpenGeoSys Community especially in scientific
 publications. See the [LICENSE.txt][license-source] for the license text.
 
 [ogs]: http://www.opengeosys.com
-[devguide]: http://ufz.github.com/devguide
+[devguide]: http://devguide.opengeosys.org
 [jenkins-ci]: https://svn.ufz.de/hudson/job/OGS-6/
 [docs]: https://svn.ufz.de/hudson/job/OGS-6/job/Docs/lastSuccessfulBuild/artifact/build/docs/index.html
 [license-source]: https://github.com/ufz/ogs/blob/master/LICENSE.txt
diff --git a/Tests/BaseLib/TestFilePathStringManipulation.cpp b/Tests/BaseLib/TestFilePathStringManipulation.cpp
index 91b141576a92e8ec6c6570f5a81fb5c0091ab291..5f2ff2a77d8a89e0635b37ba3ec62fcd0dc265ce 100644
--- a/Tests/BaseLib/TestFilePathStringManipulation.cpp
+++ b/Tests/BaseLib/TestFilePathStringManipulation.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/Tests/BaseLib/TestQuicksort.cpp b/Tests/BaseLib/TestQuicksort.cpp
index a30ca43099a55a94fde2f95d04324c96e64a5139..9daad2fce7df25549bac51b6c3ae45eceab0e379 100644
--- a/Tests/BaseLib/TestQuicksort.cpp
+++ b/Tests/BaseLib/TestQuicksort.cpp
@@ -5,7 +5,7 @@
  * \brief  Testing the specialized version of quicksort.
  *
  * \copyright
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/Tests/BaseLib/TestSwap.cpp b/Tests/BaseLib/TestSwap.cpp
index faf1b6643b5ad1e7899d6826fe861f7fbb2780dc..eb4be465aff53071cb92c5068499289bf91bbd03 100644
--- a/Tests/BaseLib/TestSwap.cpp
+++ b/Tests/BaseLib/TestSwap.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/Tests/BaseLib/TestSystemTools.cpp b/Tests/BaseLib/TestSystemTools.cpp
index b4e7d7ace5f881228df9eec791a324e07fbca1cb..6361ab11122f3e3cadf837444905eccb5b51508c 100644
--- a/Tests/BaseLib/TestSystemTools.cpp
+++ b/Tests/BaseLib/TestSystemTools.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index be2627dea1dfa4bc84baf0cd6f7b19a23cbff050..faee29a1ed283ab9c0b2ba96b1b92e4af193bd76 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -7,13 +7,19 @@ ENDIF()
 APPEND_SOURCE_FILES(TEST_SOURCES)
 APPEND_SOURCE_FILES(TEST_SOURCES BaseLib)
 APPEND_SOURCE_FILES(TEST_SOURCES GeoLib)
+APPEND_SOURCE_FILES(TEST_SOURCES MathLib)
 
 INCLUDE_DIRECTORIES(
 	${CMAKE_SOURCE_DIR}/Tests/gtest
 	${CMAKE_SOURCE_DIR}/BaseLib
 	${CMAKE_SOURCE_DIR}/GeoLib
+	${CMAKE_SOURCE_DIR}/MathLib
 )
 
+IF (LIS_FOUND)
+    INCLUDE_DIRECTORIES(${LIS_INCLUDE_DIR})
+ENDIF()
+
 ADD_EXECUTABLE (testrunner testrunner.cpp ${TEST_SOURCES})
 SET_TARGET_PROPERTIES(testrunner PROPERTIES FOLDER Testing)
 
@@ -21,6 +27,8 @@ TARGET_LINK_LIBRARIES(testrunner
 	GTest
 	BaseLib
 	GeoLib
+	MathLib
+	logog
 	${Boost_LIBRARIES}
 	${CMAKE_THREAD_LIBS_INIT}
 )
diff --git a/Tests/GeoLib/TestPoint.cpp b/Tests/GeoLib/TestPoint.cpp
index ef0c08f3fca15462151f483f716adc7a687fa73a..6917083993508d382884fd46b5fb0a9140f4f8d1 100644
--- a/Tests/GeoLib/TestPoint.cpp
+++ b/Tests/GeoLib/TestPoint.cpp
@@ -4,7 +4,7 @@
  * @date Nov 8, 2012
  *
  * @copyright
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/LICENSE.txt
diff --git a/Tests/MathLib/TestLinearSystem.cpp b/Tests/MathLib/TestLinearSystem.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..dea1c61aa005a29bc10346f5933b80a0ae17ecc0
--- /dev/null
+++ b/Tests/MathLib/TestLinearSystem.cpp
@@ -0,0 +1,127 @@
+/**
+ * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.com)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.com/LICENSE.txt
+ *
+ *
+ * \file TestLinearSystem.cpp
+ *
+ * Created on 2012-08-03 by Norihiro Watanabe
+ */
+
+#include <gtest/gtest.h>
+#include <boost/property_tree/ptree.hpp>
+
+#include "MathLib/LinAlg/Sparse/Sparsity.h"
+#ifdef USE_LIS
+#include "MathLib/LinAlg/SystemOfLinearEquations/LisLinearSystem.h"
+#endif
+
+namespace
+{
+
+inline void ASSERT_DOUBLE_ARRAY_EQ(const double* Expected, const double* Actual, size_t N, double epsilon=1.0e-8) {
+    for (size_t i=0; i<N; i++) \
+        ASSERT_NEAR(Expected[i], Actual[i], epsilon);
+}
+
+struct Example1
+{
+    std::vector<double> mat;
+    std::vector<size_t> list_dirichlet_bc_id;
+    std::vector<double> list_dirichlet_bc_value;
+    static const size_t dim_eqs = 9;
+    std::vector<double> exH;
+    MathLib::RowMajorSparsity sparse;
+
+    Example1()
+    {
+        double d_mat[] = {
+            6.66667e-012, -1.66667e-012, 0, -1.66667e-012, -3.33333e-012, 0, 0, 0, 0, 
+            -1.66667e-012, 1.33333e-011, -1.66667e-012, -3.33333e-012, -3.33333e-012, -3.33333e-012, 0, 0, 0, 
+            0, -1.66667e-012, 6.66667e-012, 0, -3.33333e-012, -1.66667e-012, 0, 0, 0, 
+            -1.66667e-012, -3.33333e-012, 0, 1.33333e-011, -3.33333e-012, 0, -1.66667e-012, -3.33333e-012, 0, 
+            -3.33333e-012, -3.33333e-012, -3.33333e-012, -3.33333e-012, 2.66667e-011, -3.33333e-012, -3.33333e-012, -3.33333e-012, -3.33333e-012, 
+            0, -3.33333e-012, -1.66667e-012, 0, -3.33333e-012, 1.33333e-011, 0, -3.33333e-012, -1.66667e-012, 
+            0, 0, 0, -1.66667e-012, -3.33333e-012, 0, 6.66667e-012, -1.66667e-012, 0, 
+            0, 0, 0, -3.33333e-012, -3.33333e-012, -3.33333e-012, -1.66667e-012, 1.33333e-011, -1.66667e-012, 
+            0, 0, 0, 0, -3.33333e-012, -1.66667e-012, 0, -1.66667e-012, 6.66667e-012
+        };
+        mat.assign(d_mat, d_mat+dim_eqs*dim_eqs);
+        size_t int_dirichlet_bc_id[] = {2,5,8,0,3,6};
+        list_dirichlet_bc_id.assign(int_dirichlet_bc_id, int_dirichlet_bc_id+6);
+        list_dirichlet_bc_value.resize(6);
+        fill(list_dirichlet_bc_value.begin(), list_dirichlet_bc_value.begin()+3, .0);
+        fill(list_dirichlet_bc_value.begin()+3, list_dirichlet_bc_value.end(), 1.0);
+        exH.resize(9);
+        for (size_t i=0; i<9; i++) {
+            if (i%3==0) exH[i] = 1.0;
+            if (i%3==1) exH[i] = 0.5;
+            if (i%3==2) exH[i] = 0.;
+        }
+        sparse.resize(dim_eqs);
+        for (size_t i=0; i<dim_eqs; i++) {
+            for (size_t j=0; j<dim_eqs; j++) {
+                if (mat[i*dim_eqs+j]!=.0)
+                    sparse[i].insert(j);
+            }
+        }
+
+    }
+};
+}
+
+#ifdef USE_LIS
+TEST(Math, LinearSystemLis)
+{
+    // set a problem
+    Example1 ex1;
+
+    // create a linear system
+    MathLib::LisLinearSystem eqs(ex1.dim_eqs);
+
+    // construct
+    for (size_t i=0; i<ex1.dim_eqs; i++) {
+        for (size_t j=0; j<ex1.dim_eqs; j++) {
+            double v = ex1.mat[i*ex1.dim_eqs+j];
+            if (v!=.0)
+                eqs.addMatEntry(i, j, v);
+        }
+    }
+
+    // apply BC
+    eqs.setKnownSolution(ex1.list_dirichlet_bc_id, ex1.list_dirichlet_bc_value);
+
+    // set solver options using Boost property tree
+    boost::property_tree::ptree t_root;
+    boost::property_tree::ptree t_solver;
+    t_solver.put("solver_type", "CG");
+    t_solver.put("precon_type", "NONE");
+    t_solver.put("matrix_type", "CCS");
+    t_solver.put("error_tolerance", 1e-15);
+    t_solver.put("max_iteration_step", 1000);
+    t_root.put_child("LinearSolver", t_solver);
+    eqs.setOption(t_root);
+
+    // check if the option was correctly parsed
+    MathLib::LisOption &lisOption = eqs.getOption();
+    ASSERT_EQ(MathLib::LisOption::SolverType::CG, lisOption.solver_type);
+    ASSERT_EQ(MathLib::LisOption::PreconType::NONE, lisOption.precon_type);
+    ASSERT_EQ(MathLib::LisOption::MatrixType::CCS, lisOption.matrix_type);
+    ASSERT_EQ(1e-15, lisOption.error_tolerance);
+    ASSERT_EQ(1000, lisOption.max_iterations);
+
+    // solve
+    eqs.solve();
+
+//    eqs.printout();
+
+    // check solution
+    std::vector<double> vec_x(eqs.getDimension());
+    eqs.getSolVec(&vec_x[0]);
+    ASSERT_DOUBLE_ARRAY_EQ(&ex1.exH[0], &vec_x[0], ex1.dim_eqs, 1.e-5);
+}
+
+#endif
+
diff --git a/Tests/testrunner.cpp b/Tests/testrunner.cpp
index 3d3cf4f5fb858fff5ce1c51c12e98516eeb6126b..0cd437b1bdb6f06ac1f8395d4afc72062e2d5899 100644
--- a/Tests/testrunner.cpp
+++ b/Tests/testrunner.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
+ * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
  *            Distributed under a Modified BSD License.
  *              See accompanying file LICENSE.txt or
  *              http://www.opengeosys.org/project/license
@@ -12,10 +12,43 @@
 
 // ** INCLUDES **
 #include "gtest/gtest.h"
+#include "logog/include/logog.hpp"
+#ifdef USE_LIS
+#include "lis.h"
+#endif
+#include "BaseLib/TemplateLogogFormatterSuppressedGCC.h"
 
 /// Implementation of the googletest testrunner
 int main(int argc, char* argv[])
 {
-	testing::InitGoogleTest ( &argc, argv );
-	return RUN_ALL_TESTS();
+    int ret = 0;
+    LOGOG_INITIALIZE();
+    {
+        logog::Cout out;
+        BaseLib::TemplateLogogFormatterSuppressedGCC<TOPIC_LEVEL_FLAG | TOPIC_FILE_NAME_FLAG | TOPIC_LINE_NUMBER_FLAG> custom_format;
+        out.SetFormatter(custom_format);
+
+        try {
+            // initialize libraries which will be used while testing
+#ifdef USE_LIS
+            lis_initialize(&argc, &argv);
+#endif
+            // start google test
+            testing::InitGoogleTest ( &argc, argv );
+            ret = RUN_ALL_TESTS();
+        } catch (char* e) {
+            ERR(e);
+        } catch (std::exception& e) {
+            ERR(e.what());
+        } catch (...) {
+            ERR("Unknown exception occurred!");
+        }
+        // finalize libraries
+#ifdef USE_LIS
+        lis_finalize();
+#endif
+    } // make sure no logog objects exist when LOGOG_SHUTDOWN() is called.
+    LOGOG_SHUTDOWN();
+
+    return ret;
 }
diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index 4feea6704f4d5ca2c681a5bf9a4e3b3ca65ec3a5..c23fed3615f1ccd106bdb46eccef63d41532677a 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -42,10 +42,26 @@ IF(WIN32 AND OGS_PACKAGING)
 		MESSAGE(FATAL_ERROR "Dumpbin was not found but is required for packaging!")
 	ENDIF()
 ENDIF()
+
+########################
+### Find other stuff ###
+########################
+
+# Check if on Jenkins
+IF(NOT $ENV{JENKINS_URL} STREQUAL "")
+	SET(JENKINS_URL $ENV{JENKINS_URL})
+	SET(JENKINS_JOB_NAME $ENV{JOB_NAME})
+ENDIF()
+
 ######################
 ### Find libraries ###
 ######################
 
+# Do not search for libs if this option is set
+IF(OGS_NO_EXTERNAL_LIBS)
+	RETURN()
+ENDIF() # OGS_NO_EXTERNAL_LIBS
+
 # Clang does not have OpenMP support atm, see https://github.com/ufz/ogs/issues/8
 IF(NOT COMPILER_IS_CLANG)
 	FIND_PACKAGE(OpenMP)
@@ -138,12 +154,7 @@ IF(Shapelib_FOUND)
 	ADD_DEFINITIONS(-DShapelib_FOUND)
 ENDIF() # Shapelib_FOUND
 
-########################
-### Find other stuff ###
-########################
-
-# Check if on Jenkins
-IF(NOT $ENV{JENKINS_URL} STREQUAL "")
-	SET(JENKINS_URL $ENV{JENKINS_URL})
-	SET(JENKINS_JOB_NAME $ENV{JOB_NAME})
-ENDIF()
\ No newline at end of file
+## lis ##
+IF(OGS_USE_LIS)
+    FIND_PACKAGE( LIS REQUIRED )
+ENDIF()
diff --git a/scripts/cmake/Functions.cmake b/scripts/cmake/Functions.cmake
index a759e11b3f369da64464e7f4d764d50b0b295fd5..8c1c0b833a77284541b6ec7c08767dc4f6d46ce9 100644
--- a/scripts/cmake/Functions.cmake
+++ b/scripts/cmake/Functions.cmake
@@ -15,8 +15,9 @@ MACRO(GET_SOURCE_FILES SOURCE_FILES)
 	ENDIF()
 
 	# Get all files in the directory
-	FILE(GLOB GET_SOURCE_FILES_HEADERS ${DIR}/*.h)
-	FILE(GLOB GET_SOURCE_FILES_SOURCES ${DIR}/*.cpp)
+	FILE(GLOB GET_SOURCE_FILES_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DIR}/*.h)
+	FILE(GLOB GET_SOURCE_FILES_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DIR}/*.tpp)
+	FILE(GLOB GET_SOURCE_FILES_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DIR}/*.cpp)
 
 	SET(${SOURCE_FILES} ${GET_SOURCE_FILES_HEADERS} ${GET_SOURCE_FILES_SOURCES})
 
@@ -54,4 +55,4 @@ MACRO(ADD_GOOGLE_TESTS executable)
 			# message ("Adding test: ${test_name}")
 		ENDFOREACH(hit)
 	ENDFOREACH()
-ENDMACRO()
\ No newline at end of file
+ENDMACRO()
diff --git a/scripts/cmake/cmake/FindLIS.cmake b/scripts/cmake/cmake/FindLIS.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..4deb12a127f3ce1160d59360c321749ce6eb6c75
--- /dev/null
+++ b/scripts/cmake/cmake/FindLIS.cmake
@@ -0,0 +1,34 @@
+# - Try to find LIS
+# Once done, this will define
+#
+#  LIS_FOUND
+#  LIS_INCLUDE_DIRS
+#  LIS_LIBRARIES
+
+set(LIS_ROOT_DIR
+    "${LIS_ROOT_DIR}"
+    CACHE
+    PATH
+    "Directory to search for Lis library")
+	
+find_path( LIS_INCLUDE_DIR
+	NAMES lis.h
+	HINTS
+	${LIS_ROOT_DIR}/include
+    /usr/include/lis
+    $ENV{HOME}/include/
+	)
+
+find_library(LIS_LIBRARY
+    NAMES lis
+    HINTS 
+    ${LIS_ROOT_DIR}/lib
+    /usr/lib
+    $ENV{HOME}/lib/
+    ) 
+
+SET(LIS_LIBRARIES ${LIS_LIBRARY})
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIS DEFAULT_MSG LIS_LIBRARY LIS_INCLUDE_DIR)
+
diff --git a/scripts/cmake/cmake/FindOpenSG.cmake b/scripts/cmake/cmake/FindOpenSG.cmake
index 7ad3d2b6b34cfe2ce1528269d2505f74c5569867..e9a58ad0c935d5773eb939673605d73970fe41e4 100644
--- a/scripts/cmake/cmake/FindOpenSG.cmake
+++ b/scripts/cmake/cmake/FindOpenSG.cmake
@@ -39,6 +39,9 @@ MACRO(USE_OPENSG targetName)
 		)
 		SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4231 /wd4275")
 	ENDIF (MSVC)
+	IF(OpenSG_OSGWINDOWGLUT_LIBRARY)
+		ADD_DEFINITIONS(-DOSG_WITH_GLUT)
+	ENDIF()
 	TARGET_LINK_LIBRARIES( ${targetName} ${OpenSG_LIBRARIES} )
 	INCLUDE_DIRECTORIES( ${OpenSG_INCLUDE_DIRS} )
 ENDMACRO()
@@ -86,28 +89,28 @@ MACRO(__OpenSG_ADJUST_LIB_VARS basename)
 
             SET(OpenSG_${basename}_LIBRARIES optimized ${OpenSG_${basename}_LIBRARY_RELEASE} debug ${OpenSG_${basename}_LIBRARY_DEBUG})
         ENDIF(OpenSG_${basename}_LIBRARY_DEBUG AND OpenSG_${basename}_LIBRARY_RELEASE)
-    
+
         # if only the release version was found, set the debug variable also to the release version
         IF(OpenSG_${basename}_LIBRARY_RELEASE AND NOT OpenSG_${basename}_LIBRARY_DEBUG)
             SET(OpenSG_${basename}_LIBRARY_DEBUG ${OpenSG_${basename}_LIBRARY_RELEASE})
             SET(OpenSG_${basename}_LIBRARY       ${OpenSG_${basename}_LIBRARY_RELEASE})
             SET(OpenSG_${basename}_LIBRARIES     ${OpenSG_${basename}_LIBRARY_RELEASE})
         ENDIF(OpenSG_${basename}_LIBRARY_RELEASE AND NOT OpenSG_${basename}_LIBRARY_DEBUG)
-    
+
         # if only the debug version was found, set the release variable also to the debug version
         IF(OpenSG_${basename}_LIBRARY_DEBUG AND NOT OpenSG_${basename}_LIBRARY_RELEASE)
             SET(OpenSG_${basename}_LIBRARY_RELEASE ${OpenSG_${basename}_LIBRARY_DEBUG})
             SET(OpenSG_${basename}_LIBRARY         ${OpenSG_${basename}_LIBRARY_DEBUG})
             SET(OpenSG_${basename}_LIBRARIES       ${OpenSG_${basename}_LIBRARY_DEBUG})
         ENDIF(OpenSG_${basename}_LIBRARY_DEBUG AND NOT OpenSG_${basename}_LIBRARY_RELEASE)
-        
+
         IF(OpenSG_${basename}_LIBRARY)
             SET(OpenSG_${basename}_LIBRARY ${OpenSG_${basename}_LIBRARY} CACHE FILEPATH "The OpenSG ${basename} library")
             GET_FILENAME_COMPONENT(OpenSG_LIBRARY_DIRS "${OpenSG_${basename}_LIBRARY}" PATH)
             SET(OpenSG_LIBRARY_DIRS ${OpenSG_LIBRARY_DIRS} CACHE FILEPATH "OpenSG library directory")
             SET(OpenSG_${basename}_FOUND ON CACHE INTERNAL "Whether the OpenSG ${basename} library found")
         ENDIF(OpenSG_${basename}_LIBRARY)
-    
+
     ENDIF(OpenSG_INCLUDE_DIR)
 
     # Make variables changeble to the advanced user
@@ -149,8 +152,8 @@ ELSE(__OpenSG_IN_CACHE)
 	    ${OPENSG_ROOT}/lib
 	    ${LIBRARIES_DIR}/opensg/lib
 	    ${CMAKE_SOURCE_DIR}/../opensg/lib )
-	else (VS32)  
-	  if (VS64) 
+	else (VS32)
+	  if (VS64)
 	    # Visual Studio x64
 		SET( __OpenSG_INCLUDE_SEARCH_DIRS
 		$ENV{OPENSG_ROOT}/include
@@ -162,17 +165,17 @@ ELSE(__OpenSG_IN_CACHE)
 		${OPENSG_ROOT}/lib
 	      ${LIBRARIES_DIR}/opensg_x64/lib
 	      ${CMAKE_SOURCE_DIR}/../opensg_x64/lib )
-	  else (VS64)  
+	  else (VS64)
 	    # Linux or Mac
 		SET( __OpenSG_INCLUDE_SEARCH_DIRS
           "/usr/local"
 	      "/usr/local/include" )
 		SET( __OpenSG_LIBRARIES_SEARCH_DIRS
 	      "/usr/local"
-	      "/usr/local/lib" )	  
+	      "/usr/local/lib" )
 	  endif(VS64)
 	endif (VS32)
-	
+
 
     # handle input variable OPENSG_INCLUDE_DIR
     IF(OPENSG_INCLUDE_DIR)
@@ -187,7 +190,7 @@ ELSE(__OpenSG_IN_CACHE)
         SET(__OpenSG_LIBRARIES_SEARCH_DIRS
             ${OPENSG_LIBRARY_DIR} ${__OpenSG_LIBRARIES_SEARCH_DIRS})
     ENDIF(OPENSG_LIBRARY_DIR)
-    
+
     # handle input variable OPENSG_INCLUDE_SEARCH_DIR
     IF(OPENSG_INCLUDE_SEARCH_DIR)
         FILE(TO_CMAKE_PATH ${OPENSG_INCLUDE_SEARCH_DIR} OPENSG_INCLUDE_SEARCH_DIR)
@@ -217,15 +220,15 @@ ELSE(__OpenSG_IN_CACHE)
         SET(OpenSG_${UPPERCOMPONENT}_LIBRARY "OpenSG_${UPPERCOMPONENT}_LIBRARY-NOTFOUND" )
         SET(OpenSG_${UPPERCOMPONENT}_LIBRARY_RELEASE "OpenSG_${UPPERCOMPONENT}_LIBRARY_RELEASE-NOTFOUND" )
         SET(OpenSG_${UPPERCOMPONENT}_LIBRARY_DEBUG "OpenSG_${UPPERCOMPONENT}_LIBRARY_DEBUG-NOTFOUND")
-    
+
 	IF (WIN32)
         FIND_LIBRARY(OpenSG_${UPPERCOMPONENT}_LIBRARY_RELEASE
             NAMES  ${COMPONENT}
             HINTS  ${__OpenSG_LIBRARIES_SEARCH_DIRS}
         )
-	
+
 		#message(STATUS "OpenSG Component: " ${COMPONENT})
-    
+
         FIND_LIBRARY(OpenSG_${UPPERCOMPONENT}_LIBRARY_DEBUG
 	    # 1.8 Added the "D" suffix
             NAMES  ${COMPONENT}D
@@ -239,16 +242,16 @@ ELSE(__OpenSG_IN_CACHE)
             HINTS  ${__OpenSG_LIBRARIES_SEARCH_DIRS}
 	    PATH_SUFFIXES "/opt"
         )
-	
+
 		#message(STATUS "OpenSG Component: " ${COMPONENT})
-    
+
         FIND_LIBRARY(OpenSG_${UPPERCOMPONENT}_LIBRARY_DEBUG
             NAMES  ${COMPONENT}
             HINTS  ${__OpenSG_LIBRARIES_SEARCH_DIRS}
 	    PATH_SUFFIXES "/dbg"
         )
 	ENDIF(WIN32)
-    
+
         __OpenSG_ADJUST_LIB_VARS(${UPPERCOMPONENT})
     ENDFOREACH(COMPONENT)
     # ------------------------------------------------------------------------
@@ -286,7 +289,7 @@ ELSE(__OpenSG_IN_CACHE)
                 SET(OpenSG_ERROR_REASON
                     "${OpenSG_ERROR_REASON}        ${COMPONENT}\n")
             ENDFOREACH(COMPONENT)
-        
+
             LIST(LENGTH OpenSG_FIND_COMPONENTS __OpenSG_NUM_COMPONENTS_WANTED)
             LIST(LENGTH __OpenSG_MISSING_COMPONENTS __OpenSG_NUM_MISSING_COMPONENTS)
             IF(${__OpenSG_NUM_COMPONENTS_WANTED} EQUAL ${__OpenSG_NUM_MISSING_COMPONENTS})
diff --git a/scripts/init.sh b/scripts/init.sh
new file mode 100755
index 0000000000000000000000000000000000000000..08398dbc16b26ec20c6c1fd4b5b26bae05e04cde
--- /dev/null
+++ b/scripts/init.sh
@@ -0,0 +1,45 @@
+# Get script directory
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+DIR=$SCRIPT_DIR/..
+source $SCRIPT_DIR/base/download_file_with_cmake.sh
+
+### Init git hooks ###
+
+# Check for uncrustify
+UNCRUSTIFY_LOCATION=`which uncrustify`
+if [ -z "$UNCRUSTIFY_LOCATION" ]; then
+	if [ "$OSTYPE" == 'msys' ]; then
+		mkdir -vp ~/bin
+		export PATH=$PATH:~/bin
+		download_file http://sourceforge.net/projects/uncrustify/files/uncrustify/uncrustify-0.59/uncrustify-0.59-win32.zip/download ./uncrustify-0.59-win32.zip
+		7za x uncrustify-0.59-win32.zip
+		mv uncrustify-0.59-win32/uncrustify.exe ~/bin
+		rm -r uncrustify-0.59-win32*
+		if [ ! -f ~/bin/uncrustify.exe ]; then
+			echo "Error downloading uncrustify! Git hooks not set."
+		else
+			UNCRUSTIFY_LOCATION=~/bin/uncrustify.exe
+		fi
+	else
+		echo "Please install uncrustify (http://uncrustify.sourceforge.net) to setup git hooks."
+		exit 1
+	fi
+fi
+
+cd $DIR
+# Enable git hooks
+# Does not work on Windows at the moment
+if [ ! "$OSTYPE" == 'msys' ]; then
+	cd .git/hooks
+	git init
+	cd ../..
+	git fetch origin
+	cd .git/hooks
+	git pull .. remotes/origin/hooks
+	cd $DIR
+
+	# Set git configs for running uncrustify
+	git config --add --bool hooks.uncrustify true
+	git config hooks.uncrustify.path $UNCRUSTIFY_LOCATION
+	git config hooks.uncrustify.conf $SCRIPT_DIR/style/uncrustify.cfg
+fi
diff --git a/scripts/style/uncrustify.cfg b/scripts/style/uncrustify.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..394274a2d794d3f9b782ddd5c66e364f29eaee32
--- /dev/null
+++ b/scripts/style/uncrustify.cfg
@@ -0,0 +1,123 @@
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_brace_parent=false
+indent_namespace=false
+indent_extern=false
+indent_class=true
+indent_class_colon=true
+indent_else_if=false
+indent_func_call_param=false
+indent_func_def_param=false
+indent_func_proto_param=false
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_relative_single_line_comments=false
+indent_col1_comment=false
+indent_access_spec_body=false
+indent_paren_nl=false
+indent_comma_paren=false
+indent_bool_paren=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_assign=true
+sp_balance_nested_parens=false
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_left=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=true
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=false
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_multi_line_cond=false
+nl_multi_line_define=false
+nl_before_case=false
+nl_after_case=false
+nl_after_return=false
+nl_after_semicolon=true
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_brace_close=false
+nl_define_macro=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=true
+nl_after_multiline_comment=false
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_sort_import=false
+mod_sort_using=false
+mod_sort_include=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_indent_multi=true
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=true
+cmt_insert_before_preproc=false
+pp_indent_at_level=false
+pp_region_indent_code=false
+pp_if_indent_code=false
+pp_define_at_level=false
+input_tab_size=4
+code_width=100
+nl_max=2
+mod_add_long_ifdef_else_comment=10
+indent_with_tabs=1
+sp_arith=add
+sp_assign=add
+sp_enum_assign=add
+sp_bool=add
+sp_compare=add
+sp_before_ptr_star=remove
+sp_after_ptr_star=add
+nl_end_of_file=add
+nl_struct_brace=add
+nl_if_brace=add
+nl_brace_else=add
+nl_elseif_brace=add
+nl_else_brace=add
+nl_for_brace=add
+nl_while_brace=add
+nl_switch_brace=add
+nl_namespace_brace=add
+nl_class_brace=add
+nl_fdef_brace=add
+mod_full_brace_for=remove
+mod_full_brace_if=remove
+mod_full_brace_while=remove
+mod_paren_on_return=remove
+pp_indent=remove
\ No newline at end of file