From 898df4cb6c414796e87052aa0d297a124612ab0f Mon Sep 17 00:00:00 2001
From: Soeren Peters <peters@irmb.tu-bs.de>
Date: Wed, 7 Oct 2020 09:27:20 +0200
Subject: [PATCH] Adds missing overrides.

---
 .../Core/Input/ConfigData/ConfigDataImp.cpp   |   4 -
 .../Core/Input/ConfigData/ConfigDataImp.h     | 331 +++++++++---------
 .../Core/Input/ConfigInput/ConfigInput.h      |   6 +-
 .../Core/Logger/implementations/LoggerImp.h   |   2 +-
 src/basics/basics/objects/ObObject.h          |   4 +-
 src/basics/basics/utilities/UbException.h     |   4 +-
 src/basics/basics/utilities/UbTiming.h        |   2 +-
 .../basics/writer/WbWriterVtkXmlBinary.h      |  26 +-
 src/basics/geometry3d/GbCuboid3D.h            |  62 ++--
 src/basics/geometry3d/GbLine3D.h              |  44 +--
 src/basics/geometry3d/GbPoint3D.h             |  42 +--
 src/basics/geometry3d/GbPolygon3D.h           |   2 +-
 src/basics/geometry3d/GbTriangle3D.h          |  44 +--
 .../BoundaryConditions/NoSlipBCAdapter.h      |   8 +-
 .../BoundaryConditions/VelocityBCAdapter.h    |   8 +-
 .../CoProcessors/NUPSCounterCoProcessor.h     |   2 +-
 .../CoProcessors/WriteBlocksCoProcessor.h     |   2 +-
 .../WriteBoundaryConditionsCoProcessor.h      |   2 +-
 .../WriteMacroscopicQuantitiesCoProcessor.h   |   2 +-
 .../Connectors/D3Q27ETFullDirectConnector.h   |   4 +-
 .../Connectors/LocalBlock3DConnector.h        |  28 +-
 .../Data/D3Q27EsoTwist3DSplittedVector.h      |  30 +-
 src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h   |  30 +-
 .../VirtualFluidsCore/Grid/BasicCalculator.h  |   4 +-
 .../Interactors/D3Q27Interactor.h             |  12 +-
 .../LBM/CumulantK17LBMKernel.h                |   6 +-
 .../Parallel/NullCommunicator.h               |  12 +-
 .../Visitors/BoundaryConditionsBlockVisitor.h |   2 +-
 .../Visitors/GenBlocksGridVisitor.h           |   4 +-
 .../Visitors/SetBcBlocksBlockVisitor.h        |   4 +-
 .../Visitors/SetConnectorsBlockVisitor.h      |   2 +-
 .../Visitors/SetKernelBlockVisitor.h          |   2 +-
 .../Visitors/SetSolidBlocksBlockVisitor.h     |   4 +-
 33 files changed, 368 insertions(+), 373 deletions(-)

diff --git a/src/basics/Core/Input/ConfigData/ConfigDataImp.cpp b/src/basics/Core/Input/ConfigData/ConfigDataImp.cpp
index 48836eaa4..35652c2eb 100644
--- a/src/basics/Core/Input/ConfigData/ConfigDataImp.cpp
+++ b/src/basics/Core/Input/ConfigData/ConfigDataImp.cpp
@@ -87,10 +87,6 @@ ConfigDataImp::ConfigDataImp()
 
 }
 
-ConfigDataImp::~ConfigDataImp(void)
-{
-}
-
 real ConfigDataImp::getViscosity()
 {
 	return this->viscosity;
diff --git a/src/basics/Core/Input/ConfigData/ConfigDataImp.h b/src/basics/Core/Input/ConfigData/ConfigDataImp.h
index bcd518056..94d503b78 100644
--- a/src/basics/Core/Input/ConfigData/ConfigDataImp.h
+++ b/src/basics/Core/Input/ConfigData/ConfigDataImp.h
@@ -10,93 +10,92 @@ class  ConfigDataImp : public ConfigData
 {
 public:
     static std::shared_ptr<ConfigDataImp> getNewInstance();
-    virtual ~ConfigDataImp(void);
 
-	real getViscosity();
-	uint getNumberOfDevices();
-	std::vector<uint> getDevices();
-	std::string getOutputPath();
-	std::string getPrefix();
-	std::string getGridPath();
-	bool getPrintOutputFiles();
-	bool getGeometryValues();
-	bool getCalc2ndOrderMoments();
-	bool getCalc3rdOrderMoments();
-	bool getCalcHighOrderMoments();
-	bool getReadGeo();
-	bool getCalcMedian();
-	bool getCalcDragLift();
-	bool getCalcCp();
-	bool getWriteVeloASCIIfiles();
-	bool getCalcPlaneConc();
-	bool getConcFile();
-	bool getStreetVelocityFile();
-	bool getUseMeasurePoints();
-	bool getUseWale();
-	bool getUseInitNeq();
-	bool getSimulatePorousMedia();
-	uint getD3Qxx();
-	uint getTEnd();
-	uint getTOut();
-	uint getTStartOut();
-	uint getTimeCalcMedStart();
-	uint getTimeCalcMedEnd();
-	uint getPressInID();
-	uint getPressOutID();
-	uint getPressInZ();
-	uint getPressOutZ();
-	bool getDiffOn();
-	uint getDiffMod();
-	real getDiffusivity();
-	real getTemperatureInit();
-	real getTemperatureBC();
-	real getVelocity();
-	real getViscosityRatio();
-	real getVelocityRatio();
-	real getDensityRatio();
-	real getPressRatio();
-	real getRealX();
-	real getRealY();
-	real getFactorPressBC();
-	std::string getGeometryFileC();
-	std::string getGeometryFileM();
-	std::string getGeometryFileF();
-	uint getClockCycleForMP();
-	uint getTimestepForMP();
-	real getForcingX();
-	real getForcingY();
-	real getForcingZ();
-    real getQuadricLimiterP();
-    real getQuadricLimiterM();
-    real getQuadricLimiterD();
-	bool getCalcParticles();
-	int getParticleBasicLevel();
-	int getParticleInitLevel();
-	int getNumberOfParticles();
-	real getStartXHotWall();
-	real getEndXHotWall();
-	std::vector<std::string> getPossNeighborFilesX();
-	std::vector<std::string> getPossNeighborFilesY();
-	std::vector<std::string> getPossNeighborFilesZ();
+	real getViscosity() override;
+	uint getNumberOfDevices() override;
+	std::vector<uint> getDevices() override;
+	std::string getOutputPath() override;
+	std::string getPrefix() override;
+	std::string getGridPath() override;
+	bool getPrintOutputFiles() override;
+	bool getGeometryValues() override;
+	bool getCalc2ndOrderMoments() override;
+	bool getCalc3rdOrderMoments() override;
+	bool getCalcHighOrderMoments() override;
+	bool getReadGeo() override;
+	bool getCalcMedian() override;
+	bool getCalcDragLift() override;
+	bool getCalcCp() override;
+	bool getWriteVeloASCIIfiles() override;
+	bool getCalcPlaneConc() override;
+	bool getConcFile() override;
+	bool getStreetVelocityFile() override;
+	bool getUseMeasurePoints() override;
+	bool getUseWale() override;
+	bool getUseInitNeq() override;
+	bool getSimulatePorousMedia() override;
+	uint getD3Qxx() override;
+	uint getTEnd() override;
+	uint getTOut() override;
+	uint getTStartOut() override;
+	uint getTimeCalcMedStart() override;
+	uint getTimeCalcMedEnd() override;
+	uint getPressInID() override;
+	uint getPressOutID() override;
+	uint getPressInZ() override;
+	uint getPressOutZ() override;
+	bool getDiffOn() override;
+	uint getDiffMod() override;
+	real getDiffusivity() override;
+	real getTemperatureInit() override;
+	real getTemperatureBC() override;
+	real getVelocity() override;
+	real getViscosityRatio() override;
+	real getVelocityRatio() override;
+	real getDensityRatio() override;
+	real getPressRatio() override;
+	real getRealX() override;
+	real getRealY() override;
+	real getFactorPressBC() override;
+	std::string getGeometryFileC() override;
+	std::string getGeometryFileM() override;
+	std::string getGeometryFileF() override;
+	uint getClockCycleForMP() override;
+	uint getTimestepForMP() override;
+	real getForcingX() override;
+	real getForcingY() override;
+	real getForcingZ() override;
+    real getQuadricLimiterP() override;
+    real getQuadricLimiterM() override;
+    real getQuadricLimiterD() override;
+	bool getCalcParticles() override;
+	int getParticleBasicLevel() override;
+	int getParticleInitLevel() override;
+	int getNumberOfParticles() override;
+	real getStartXHotWall() override;
+	real getEndXHotWall() override;
+	std::vector<std::string> getPossNeighborFilesX() override;
+	std::vector<std::string> getPossNeighborFilesY() override;
+	std::vector<std::string> getPossNeighborFilesZ() override;
 	//std::vector<std::string> getPossNeighborFilesX();
 	//std::vector<std::string> getPossNeighborFilesY();
 	//std::vector<std::string> getPossNeighborFilesZ();
-	int getTimeDoCheckPoint();
-	int getTimeDoRestart();
-	bool getDoCheckPoint();
-	bool getDoRestart();
-	uint getMaxLevel();
-	std::vector<int> getGridX();
-	std::vector<int> getGridY();
-	std::vector<int> getGridZ();
-	std::vector<int> getDistX();
-	std::vector<int> getDistY();
-	std::vector<int> getDistZ();
-	std::vector<bool> getNeedInterface();
-	std::string getMainKernel();
-	bool getMultiKernelOn();
-	std::vector<int> getMultiKernelLevel();
-	std::vector<std::string> getMultiKernelName();
+	int getTimeDoCheckPoint() override;
+	int getTimeDoRestart() override;
+	bool getDoCheckPoint() override;
+	bool getDoRestart() override;
+	uint getMaxLevel() override;
+	std::vector<int> getGridX() override;
+	std::vector<int> getGridY() override;
+	std::vector<int> getGridZ() override;
+	std::vector<int> getDistX() override;
+	std::vector<int> getDistY() override;
+	std::vector<int> getDistZ() override;
+	std::vector<bool> getNeedInterface() override;
+	std::string getMainKernel() override;
+	bool getMultiKernelOn() override;
+	std::vector<int> getMultiKernelLevel() override;
+	std::vector<std::string> getMultiKernelName() override;
 
 	void setViscosity(real viscosity);
 	void setNumberOfDevices(uint numberOfDevices);
@@ -185,90 +184,90 @@ public:
 	void setMultiKernelLevel(std::vector<int> multiKernelLevel);
 	void setMultiKernelName(std::vector<std::string> multiKernelName);
 
-	bool isViscosityInConfigFile();
-	bool isNumberOfDevicesInConfigFile();
-	bool isDevicesInConfigFile();
-	bool isOutputPathInConfigFile();
-	bool isPrefixInConfigFile();
-	bool isGridPathInConfigFile();
-	bool isPrintOutputFilesInConfigFile();
-	bool isGeometryValuesInConfigFile();
-	bool isCalc2ndOrderMomentsInConfigFile();
-	bool isCalc3rdOrderMomentsInConfigFile();
-	bool isCalcHighOrderMomentsInConfigFile();
-	bool isReadGeoInConfigFile();
-	bool isCalcMedianInConfigFile();
-	bool isCalcDragLiftInConfigFile();
-	bool isCalcCpInConfigFile();
-	bool isWriteVeloASCIIfilesInConfigFile();
-	bool isCalcPlaneConcInConfigFile();
-	bool isConcFileInConfigFile();
-	bool isStreetVelocityFileInConfigFile();
-	bool isUseMeasurePointsInConfigFile();
-	bool isUseWaleInConfigFile();
-	bool isUseInitNeqInConfigFile();
-	bool isSimulatePorousMediaInConfigFile();
-	bool isD3QxxInConfigFile();
-	bool isTEndInConfigFile();
-	bool isTOutInConfigFile();
-	bool isTStartOutInConfigFile();
-	bool isTimeCalcMedStartInConfigFile();
-	bool isTimeCalcMedEndInConfigFile();
-	bool isPressInIDInConfigFile();
-	bool isPressOutIDInConfigFile();
-	bool isPressInZInConfigFile();
-	bool isPressOutZInConfigFile();
-	bool isDiffOnInConfigFile();
-	bool isDiffModInConfigFile();
-	bool isDiffusivityInConfigFile();
-	bool isTemperatureInitInConfigFile();
-	bool isTemperatureBCInConfigFile();
+	bool isViscosityInConfigFile() override;
+	bool isNumberOfDevicesInConfigFile() override;
+	bool isDevicesInConfigFile() override;
+	bool isOutputPathInConfigFile() override;
+	bool isPrefixInConfigFile() override;
+	bool isGridPathInConfigFile() override;
+	bool isPrintOutputFilesInConfigFile() override;
+	bool isGeometryValuesInConfigFile() override;
+	bool isCalc2ndOrderMomentsInConfigFile() override;
+	bool isCalc3rdOrderMomentsInConfigFile() override;
+	bool isCalcHighOrderMomentsInConfigFile() override;
+	bool isReadGeoInConfigFile() override;
+	bool isCalcMedianInConfigFile() override;
+	bool isCalcDragLiftInConfigFile() override;
+	bool isCalcCpInConfigFile() override;
+	bool isWriteVeloASCIIfilesInConfigFile() override;
+	bool isCalcPlaneConcInConfigFile() override;
+	bool isConcFileInConfigFile() override;
+	bool isStreetVelocityFileInConfigFile() override;
+	bool isUseMeasurePointsInConfigFile() override;
+	bool isUseWaleInConfigFile() override;
+	bool isUseInitNeqInConfigFile() override;
+	bool isSimulatePorousMediaInConfigFile() override;
+	bool isD3QxxInConfigFile() override;
+	bool isTEndInConfigFile() override;
+	bool isTOutInConfigFile() override;
+	bool isTStartOutInConfigFile() override;
+	bool isTimeCalcMedStartInConfigFile() override;
+	bool isTimeCalcMedEndInConfigFile() override;
+	bool isPressInIDInConfigFile() override;
+	bool isPressOutIDInConfigFile() override;
+	bool isPressInZInConfigFile() override;
+	bool isPressOutZInConfigFile() override;
+	bool isDiffOnInConfigFile() override;
+	bool isDiffModInConfigFile() override;
+	bool isDiffusivityInConfigFile() override;
+	bool isTemperatureInitInConfigFile() override;
+	bool isTemperatureBCInConfigFile() override;
 	//bool isViscosityInConfigFile();
-	bool isVelocityInConfigFile();
-	bool isViscosityRatioInConfigFile();
-	bool isVelocityRatioInConfigFile();
-	bool isDensityRatioInConfigFile();
-	bool isPressRatioInConfigFile();
-	bool isRealXInConfigFile();
-	bool isRealYInConfigFile();
-	bool isFactorPressBCInConfigFile();
-	bool isGeometryFileCInConfigFile();
-	bool isGeometryFileMInConfigFile();
-	bool isGeometryFileFInConfigFile();
-	bool isClockCycleForMPInConfigFile();
-	bool isTimestepForMPInConfigFile();
-	bool isForcingXInConfigFile();
-	bool isForcingYInConfigFile();
-	bool isForcingZInConfigFile();
-	bool isQuadricLimiterPInConfigFile();
-	bool isQuadricLimiterMInConfigFile();
-	bool isQuadricLimiterDInConfigFile();
-	bool isCalcParticlesInConfigFile();
-	bool isParticleBasicLevelInConfigFile();
-	bool isParticleInitLevelInConfigFile();
-	bool isNumberOfParticlesInConfigFile();
-	bool isNeighborWSBInConfigFile();
-	bool isStartXHotWallInConfigFile();
-	bool isEndXHotWallInConfigFile();
-	bool isPossNeighborFilesXInConfigFile();
-	bool isPossNeighborFilesYInConfigFile();
-	bool isPossNeighborFilesZInConfigFile();
-	bool isTimeDoCheckPointInConfigFile();
-	bool isTimeDoRestartInConfigFile();
-	bool isDoCheckPointInConfigFile();
-	bool isDoRestartInConfigFile();
-	bool isMaxLevelInConfigFile();
-	bool isGridXInConfigFile();
-	bool isGridYInConfigFile();
-	bool isGridZInConfigFile();
-	bool isDistXInConfigFile();
-	bool isDistYInConfigFile();
-	bool isDistZInConfigFile();
-	bool isNeedInterfaceInConfigFile();
-	bool isMainKernelInConfigFile();
-	bool isMultiKernelOnInConfigFile();
-	bool isMultiKernelLevelInConfigFile();
-	bool isMultiKernelNameInConfigFile();
+	bool isVelocityInConfigFile() override;
+	bool isViscosityRatioInConfigFile() override;
+	bool isVelocityRatioInConfigFile() override;
+	bool isDensityRatioInConfigFile() override;
+	bool isPressRatioInConfigFile() override;
+	bool isRealXInConfigFile() override;
+	bool isRealYInConfigFile() override;
+	bool isFactorPressBCInConfigFile() override;
+	bool isGeometryFileCInConfigFile() override;
+	bool isGeometryFileMInConfigFile() override;
+	bool isGeometryFileFInConfigFile() override;
+	bool isClockCycleForMPInConfigFile() override;
+	bool isTimestepForMPInConfigFile() override;
+	bool isForcingXInConfigFile() override;
+	bool isForcingYInConfigFile() override;
+	bool isForcingZInConfigFile() override;
+	bool isQuadricLimiterPInConfigFile() override;
+	bool isQuadricLimiterMInConfigFile() override;
+	bool isQuadricLimiterDInConfigFile() override;
+	bool isCalcParticlesInConfigFile() override;
+	bool isParticleBasicLevelInConfigFile() override;
+	bool isParticleInitLevelInConfigFile() override;
+	bool isNumberOfParticlesInConfigFile() override;
+	bool isNeighborWSBInConfigFile() override;
+	bool isStartXHotWallInConfigFile() override;
+	bool isEndXHotWallInConfigFile() override;
+	bool isPossNeighborFilesXInConfigFile() override;
+	bool isPossNeighborFilesYInConfigFile() override;
+	bool isPossNeighborFilesZInConfigFile() override;
+	bool isTimeDoCheckPointInConfigFile() override;
+	bool isTimeDoRestartInConfigFile() override;
+	bool isDoCheckPointInConfigFile() override;
+	bool isDoRestartInConfigFile() override;
+	bool isMaxLevelInConfigFile() override;
+	bool isGridXInConfigFile() override;
+	bool isGridYInConfigFile() override;
+	bool isGridZInConfigFile() override;
+	bool isDistXInConfigFile() override;
+	bool isDistYInConfigFile() override;
+	bool isDistZInConfigFile() override;
+	bool isNeedInterfaceInConfigFile() override;
+	bool isMainKernelInConfigFile() override;
+	bool isMultiKernelOnInConfigFile() override;
+	bool isMultiKernelLevelInConfigFile() override;
+	bool isMultiKernelNameInConfigFile() override;
 
 
 private:
diff --git a/src/basics/Core/Input/ConfigInput/ConfigInput.h b/src/basics/Core/Input/ConfigInput/ConfigInput.h
index 2ec97c14a..ddfd5fc2f 100644
--- a/src/basics/Core/Input/ConfigInput/ConfigInput.h
+++ b/src/basics/Core/Input/ConfigInput/ConfigInput.h
@@ -16,10 +16,10 @@ namespace input
     {
     public:
         BASICS_EXPORT ConfigInput(std::istream &stream);
-        BASICS_EXPORT virtual ~ConfigInput(void);
+        BASICS_EXPORT ~ConfigInput(void) override;
    
-        BASICS_EXPORT bool hasValue(const std::string &key) const;
-        BASICS_EXPORT std::string getValue(const std::string &key);
+        BASICS_EXPORT bool hasValue(const std::string &key) const override;
+        BASICS_EXPORT std::string getValue(const std::string &key) override;
 
     protected:
         virtual void setTokenValuePair();
diff --git a/src/basics/Core/Logger/implementations/LoggerImp.h b/src/basics/Core/Logger/implementations/LoggerImp.h
index 397c9095f..851f29464 100644
--- a/src/basics/Core/Logger/implementations/LoggerImp.h
+++ b/src/basics/Core/Logger/implementations/LoggerImp.h
@@ -16,7 +16,7 @@ namespace logging
     {
     public:
         LoggerImp(std::ostream* stream);
-        virtual ~LoggerImp();
+        ~LoggerImp() override;
 
         Logger& operator<<(const Level &level) override;
         Logger& operator<<(const std::string &message) override;
diff --git a/src/basics/basics/objects/ObObject.h b/src/basics/basics/objects/ObObject.h
index 0675ae68f..0b543dc18 100644
--- a/src/basics/basics/objects/ObObject.h
+++ b/src/basics/basics/objects/ObObject.h
@@ -43,14 +43,14 @@ public:
     ObObject() = default;
    ObObject(const std::string& name) : name(name) { }
 
-   virtual ~ObObject() = default;
+   ~ObObject() override = default;
 
    virtual ObObject* clone() = 0;
 
    virtual std::string getName()  { return name; }
    void setName(std::string name) { this->name = name; }
 
-   virtual std::string toString() override = 0;
+   std::string toString() override = 0;
 
 
 private:
diff --git a/src/basics/basics/utilities/UbException.h b/src/basics/basics/utilities/UbException.h
index f999f8e13..6c318cecd 100644
--- a/src/basics/basics/utilities/UbException.h
+++ b/src/basics/basics/utilities/UbException.h
@@ -109,11 +109,11 @@ public:
    }
    //////////////////////////////////////////////////////////////////////////
    //destructor
-   virtual ~UbException() throw() { }
+   ~UbException() throw() override { }
    //////////////////////////////////////////////////////////////////////////
    //virtual public methods
    //returns  exception-string
-   virtual const char* what() const throw()
+   const char* what() const throw() override
    {
       exceptionString = this->toString();
       return exceptionString.c_str();  //ansonsten ist das Verhalten anschliessend undefiniert!
diff --git a/src/basics/basics/utilities/UbTiming.h b/src/basics/basics/utilities/UbTiming.h
index 926089266..55ba93cbe 100644
--- a/src/basics/basics/utilities/UbTiming.h
+++ b/src/basics/basics/utilities/UbTiming.h
@@ -389,7 +389,7 @@ public:
   	  this->start();
   }
   /*==========================================================*/
-  ~UbProgressTimer()
+  ~UbProgressTimer() override
   {
   //  A) Throwing an exception from a destructor is a Bad Thing.
   //  B) The progress_timer destructor does output which may throw.
diff --git a/src/basics/basics/writer/WbWriterVtkXmlBinary.h b/src/basics/basics/writer/WbWriterVtkXmlBinary.h
index 6119fd220..a74f78232 100644
--- a/src/basics/basics/writer/WbWriterVtkXmlBinary.h
+++ b/src/basics/basics/writer/WbWriterVtkXmlBinary.h
@@ -58,7 +58,7 @@ private:
 
    static std::string  pvdEndTag;
 public:
-   std::string getFileExtension() { return ".bin.vtu";   }
+   std::string getFileExtension() override { return ".bin.vtu";   }
 
    //write a metafile 
    std::string writeCollection(const std::string& filename, const std::vector<std::string>& filenames, const double& timestep, const bool& sepGroups);
@@ -67,14 +67,14 @@ public:
 
    //////////////////////////////////////////////////////////////////////////
    //nodes
-   std::string writeNodes(const std::string& filename,std::vector< UbTupleFloat3 >& nodes);
-   std::string writeNodesWithNodeData(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector<std::string >& datanames, std::vector<std::vector<double > >& nodedata);
+   std::string writeNodes(const std::string& filename,std::vector< UbTupleFloat3 >& nodes) override;
+   std::string writeNodesWithNodeData(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector<std::string >& datanames, std::vector<std::vector<double > >& nodedata) override;
 
    //////////////////////////////////////////////////////////////////////////
    //lines
    //     0 ---- 1
    //nodenumbering must start with 0!
-   std::string writeLines(const std::string& filename,std::vector<UbTupleFloat3 >& nodes, std::vector<UbTupleInt2 >& lines);
+   std::string writeLines(const std::string& filename,std::vector<UbTupleFloat3 >& nodes, std::vector<UbTupleInt2 >& lines) override;
     //std::string writeLinesWithNodeData(const std::string& filename,std::vector<UbTupleFloat3 >& nodes, std::vector<UbTupleInt2 >& lines, std::vector< std::string >& datanames, std::vector< std::vector< double > >& nodedata);
     // FIXME: hides function in base class
 
@@ -84,8 +84,8 @@ public:
    //                     
    //                  0---1
    //nodenumbering must start with 0!
-   std::string writeTriangles(const std::string& filename,std::vector<UbTupleFloat3 >& nodes, std::vector<UbTupleInt3 >& triangles);
-   std::string writeTrianglesWithNodeData(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt3 >& cells, std::vector<std::string >& datanames, std::vector<std::vector<double > >& nodedata);
+   std::string writeTriangles(const std::string& filename,std::vector<UbTupleFloat3 >& nodes, std::vector<UbTupleInt3 >& triangles) override;
+   std::string writeTrianglesWithNodeData(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt3 >& cells, std::vector<std::string >& datanames, std::vector<std::vector<double > >& nodedata) override;
 
    //////////////////////////////////////////////////////////////////////////
    //2D
@@ -95,12 +95,12 @@ public:
    //                  0---1
    //nodenumbering must start with 0!
 
-   std::string writeQuads(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt4 >& cells);
-   std::string writeQuadsWithNodeData(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt4 >& cells, std::vector< std::string >& datanames, std::vector< std::vector< double > >& nodedata);
-   std::string writeQuadsWithCellData(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt4 >& cells, std::vector< std::string >& datanames, std::vector< std::vector< double > >& celldata);
+   std::string writeQuads(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt4 >& cells) override;
+   std::string writeQuadsWithNodeData(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt4 >& cells, std::vector< std::string >& datanames, std::vector< std::vector< double > >& nodedata) override;
+   std::string writeQuadsWithCellData(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt4 >& cells, std::vector< std::string >& datanames, std::vector< std::vector< double > >& celldata) override;
    std::string writeQuadsWithNodeAndCellData(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt4 >& cells, 
                                              std::vector< std::string >& nodedatanames, std::vector< std::vector< double > >& nodedata, std::vector< std::string >& celldatanames,
-                                             std::vector< std::vector< double > >& celldata                                                                    );
+                                             std::vector< std::vector< double > >& celldata                                                                    ) override;
    
    //////////////////////////////////////////////////////////////////////////
    //octs
@@ -111,9 +111,9 @@ public:
    //   | 3 ---+ 2
    //   |/     |/
    //   0 ---- 1
-   std::string writeOcts(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt8 >& cells);
-   std::string writeOctsWithCellData(const std::string& filename,std::vector<UbTupleFloat3 >& nodes, std::vector<UbTupleInt8 >& cells, std::vector<std::string >& datanames, std::vector<std::vector<double > >& celldata);
-   std::string writeOctsWithNodeData(const std::string& filename,std::vector<UbTupleFloat3 >& nodes, std::vector<UbTupleUInt8 >& cells, std::vector<std::string >& datanames, std::vector<std::vector<double > >& nodedata);
+   std::string writeOcts(const std::string& filename,std::vector< UbTupleFloat3 >& nodes, std::vector< UbTupleInt8 >& cells) override;
+   std::string writeOctsWithCellData(const std::string& filename,std::vector<UbTupleFloat3 >& nodes, std::vector<UbTupleInt8 >& cells, std::vector<std::string >& datanames, std::vector<std::vector<double > >& celldata) override;
+   std::string writeOctsWithNodeData(const std::string& filename,std::vector<UbTupleFloat3 >& nodes, std::vector<UbTupleUInt8 >& cells, std::vector<std::string >& datanames, std::vector<std::vector<double > >& nodedata) override;
    
 private:
 
diff --git a/src/basics/geometry3d/GbCuboid3D.h b/src/basics/geometry3d/GbCuboid3D.h
index 992e423bc..1124077ea 100644
--- a/src/basics/geometry3d/GbCuboid3D.h
+++ b/src/basics/geometry3d/GbCuboid3D.h
@@ -55,10 +55,10 @@ public:
    GbCuboid3D(const double& minX1,const double& minX2, const double& minX3, const double& maxX1,const double& maxX2, const double& maxX3);
    GbCuboid3D(GbPoint3D *p1, GbPoint3D *p2);
    GbCuboid3D(GbCuboid3D *cuboid);
-   ~GbCuboid3D();   
+   ~GbCuboid3D() override;   
 
-   GbCuboid3D* clone()    { return new GbCuboid3D(this); }
-   void finalize();
+   GbCuboid3D* clone() override    { return new GbCuboid3D(this); }
+   void finalize() override;
 
    GbPoint3D* getPoint1() { return this->p1; }
    GbPoint3D* getPoint2() { return this->p2; }
@@ -67,42 +67,42 @@ public:
    void setPoint2(GbPoint3D* point2);
    void setPoints(GbPoint3D* point1, GbPoint3D* point2);
 
-   double getX1Centroid();
-   double getX1Minimum();
-   double getX1Maximum();
-   double getX2Centroid();
-   double getX2Minimum();
-   double getX2Maximum();
-   double getX3Centroid();
-   double getX3Minimum();
-   double getX3Maximum();
-   void setCenterCoordinates(const double& x1, const double& x2, const double& x3);
-
-   void translate(const double& x1, const double& x2, const double& x3);
-   void rotate(const double& rx1, const double& rx2, const double& rx3) {}
-   void scale(const double& sx1, const double& sx2, const double& sx3);
+   double getX1Centroid() override;
+   double getX1Minimum() override;
+   double getX1Maximum() override;
+   double getX2Centroid() override;
+   double getX2Minimum() override;
+   double getX2Maximum() override;
+   double getX3Centroid() override;
+   double getX3Minimum() override;
+   double getX3Maximum() override;
+   void setCenterCoordinates(const double& x1, const double& x2, const double& x3) override;
+
+   void translate(const double& x1, const double& x2, const double& x3) override;
+   void rotate(const double& rx1, const double& rx2, const double& rx3) override {}
+   void scale(const double& sx1, const double& sx2, const double& sx3) override;
 
    double getLengthX1();
    double getLengthX2();
    double getLengthX3();
 
-   bool isPointInGbObject3D(const double& x1p, const double& x2p, const double& x3p, bool& pointIsOnBoundary);
-   bool isPointInGbObject3D(const double& x1p, const double& x2p, const double& x3p); 
-   bool isCellInsideGbObject3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b);
-   bool isCellCuttingGbObject3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b);
-   bool isCellInsideOrCuttingGbObject3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b);
-   double getCellVolumeInsideGbObject3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b);
+   bool isPointInGbObject3D(const double& x1p, const double& x2p, const double& x3p, bool& pointIsOnBoundary) override;
+   bool isPointInGbObject3D(const double& x1p, const double& x2p, const double& x3p) override; 
+   bool isCellInsideGbObject3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b) override;
+   bool isCellCuttingGbObject3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b) override;
+   bool isCellInsideOrCuttingGbObject3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b) override;
+   double getCellVolumeInsideGbObject3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b) override;
 
    GbPoint3D*  calculateInterSectionPoint3D(GbPoint3D& point1, GbPoint3D &point2);
    //GbCuboid3D* createClippedRectangle3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b);
-   GbLine3D*   createClippedLine3D(GbPoint3D& point1, GbPoint3D& point2);
+   GbLine3D*   createClippedLine3D(GbPoint3D& point1, GbPoint3D& point2) override;
 
-   std::vector<GbTriangle3D*> getSurfaceTriangleSet();
-   void addSurfaceTriangleSet(std::vector<UbTupleFloat3>& nodes, std::vector<UbTupleInt3>& triangles);
+   std::vector<GbTriangle3D*> getSurfaceTriangleSet() override;
+   void addSurfaceTriangleSet(std::vector<UbTupleFloat3>& nodes, std::vector<UbTupleInt3>& triangles) override;
 
-   bool hasRaytracing() { return true; }
+   bool hasRaytracing() override { return true; }
    /*|r| must be 1! einheitsvector!!*/
-   double getIntersectionRaytraceFactor(const double& x1, const double& x2, const double& x3, const double& rx1, const double& rx2, const double& rx3);
+   double getIntersectionRaytraceFactor(const double& x1, const double& x2, const double& x3, const double& rx1, const double& rx2, const double& rx3) override;
 
 
    double getDistance(GbPoint3D* p)
@@ -128,11 +128,11 @@ public:
       }
    }
 
-   std::string toString();
+   std::string toString() override;
 
    //virtuelle Methoden von UbObserver
-   void objectChanged(UbObservable* changedObject);
-   void objectWillBeDeleted(UbObservable* objectForDeletion);
+   void objectChanged(UbObservable* changedObject) override;
+   void objectWillBeDeleted(UbObservable* objectForDeletion) override;
 
 
    using GbObject3D::isPointInGbObject3D; //Grund: dadurch muss man hier  isPointInGbObject3D(GbPoint3D*) nicht ausprogrammieren, welche sonst hier "ueberdeckt" waere
diff --git a/src/basics/geometry3d/GbLine3D.h b/src/basics/geometry3d/GbLine3D.h
index 2990282f9..c731c40db 100644
--- a/src/basics/geometry3d/GbLine3D.h
+++ b/src/basics/geometry3d/GbLine3D.h
@@ -60,10 +60,10 @@ public:
    GbLine3D();
 	GbLine3D(GbPoint3D* point1, GbPoint3D* point2);
 	GbLine3D(GbLine3D* line);
-   ~GbLine3D(); 
+   ~GbLine3D() override; 
 
-   GbLine3D* clone() { return new GbLine3D(this); }
-   void finalize();
+   GbLine3D* clone() override { return new GbLine3D(this); }
+   void finalize() override;
 
    void setPoint1(GbPoint3D* point1);
    void setPoint2(GbPoint3D* point2);
@@ -78,20 +78,20 @@ public:
    
    double getLength()     { return(this->length); }
 	
-   double getX1Centroid() { return((this->p1->x1+this->p2->x1)*0.5);}
-   double getX2Centroid() { return((this->p1->x2+this->p2->x2)*0.5); };
-   double getX3Centroid() { return((this->p1->x3+this->p2->x3)*0.5); }
+   double getX1Centroid() override { return((this->p1->x1+this->p2->x1)*0.5);}
+   double getX2Centroid() override { return((this->p1->x2+this->p2->x2)*0.5); };
+   double getX3Centroid() override { return((this->p1->x3+this->p2->x3)*0.5); }
    
-   double getX1Minimum()  { return(this->p1->x1 < this->p2->x1 ? this->p1->x1 : this->p2->x1); }
-   double getX2Minimum()  { return(this->p1->x2 < this->p2->x2 ? this->p1->x2 : this->p2->x2); }
-   double getX3Minimum()  { return(this->p1->x3 < this->p2->x3 ? this->p1->x3 : this->p2->x3); }
+   double getX1Minimum() override  { return(this->p1->x1 < this->p2->x1 ? this->p1->x1 : this->p2->x1); }
+   double getX2Minimum() override  { return(this->p1->x2 < this->p2->x2 ? this->p1->x2 : this->p2->x2); }
+   double getX3Minimum() override  { return(this->p1->x3 < this->p2->x3 ? this->p1->x3 : this->p2->x3); }
    
-   double getX1Maximum()  { return(this->p1->x1 > this->p2->x1 ? this->p1->x1 : this->p2->x1); }
-   double getX2Maximum()  { return(this->p1->x2 > this->p2->x2 ? this->p1->x2 : this->p2->x2); }
-   double getX3Maximum()  { return(this->p1->x3 > this->p2->x3 ? this->p1->x3 : this->p2->x3); }
+   double getX1Maximum() override  { return(this->p1->x1 > this->p2->x1 ? this->p1->x1 : this->p2->x1); }
+   double getX2Maximum() override  { return(this->p1->x2 > this->p2->x2 ? this->p1->x2 : this->p2->x2); }
+   double getX3Maximum() override  { return(this->p1->x3 > this->p2->x3 ? this->p1->x3 : this->p2->x3); }
 	                                               
-   void scale(const double& sx1, const double& sx2, const double& sx3);
-   void translate(const double& tx1, const double& tx2, const double& tx3);
+   void scale(const double& sx1, const double& sx2, const double& sx3) override;
+   void translate(const double& tx1, const double& tx2, const double& tx3) override;
 
    GbPoint3D* calculateIntersectionPoint3D(GbLine3D* line);
    GbLine3D*  createClippedLine3D(GbCuboid3D* cuboid);
@@ -100,27 +100,27 @@ public:
    double     getDistance(const GbPoint3D& point);
    double     getDistance(const double& x1,const double& x2,const double& x3);
 
-   std::vector<GbTriangle3D*> getSurfaceTriangleSet();
-   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3)
+   std::vector<GbTriangle3D*> getSurfaceTriangleSet() override;
+   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3) override
    {
       throw UbException(UB_EXARGS,"not implemented");
    }
-   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3, bool& pointIsOnBoundary)
+   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3, bool& pointIsOnBoundary) override
    {
       throw UbException(UB_EXARGS,"not implemented");
    }
-   bool isCellInsideGbObject3D(const double& x11,const double& x21,const double& x31,const double& x12,const double& x22,const double& x32) { return false; }
+   bool isCellInsideGbObject3D(const double& x11,const double& x21,const double& x31,const double& x12,const double& x22,const double& x32) override { return false; }
 
-   GbLine3D* createClippedLine3D (GbPoint3D& point1, GbPoint3D& point2)
+   GbLine3D* createClippedLine3D (GbPoint3D& point1, GbPoint3D& point2) override
    {
       throw UbException(UB_EXARGS,"not implemented");
    }
 
    //virtuelle Methoden von UbObserver
-   void objectChanged(UbObservable* changedObject);
-   void objectWillBeDeleted(UbObservable* objectForDeletion);
+   void objectChanged(UbObservable* changedObject) override;
+   void objectWillBeDeleted(UbObservable* objectForDeletion) override;
 
-   std::string toString();
+   std::string toString() override;
 
    using GbObject3D::isPointInGbObject3D; //Grund: dadurch muss man hier  isPointInGbObject3D(GbPoint3D*) nicht ausprogrammieren, welche sonst hier "ueberdeckt" waere
 protected:
diff --git a/src/basics/geometry3d/GbPoint3D.h b/src/basics/geometry3d/GbPoint3D.h
index 74b8cafaa..9a8fc2da2 100644
--- a/src/basics/geometry3d/GbPoint3D.h
+++ b/src/basics/geometry3d/GbPoint3D.h
@@ -50,10 +50,10 @@ public:
    GbPoint3D();
    GbPoint3D(const double& x1, const double& x2, const double& x3);
    GbPoint3D(GbPoint3D *point);                
-   ~GbPoint3D() {}
+   ~GbPoint3D() override {}
 
-   GbPoint3D* clone() {return new GbPoint3D(this);}
-   void finalize() {}
+   GbPoint3D* clone() override {return new GbPoint3D(this);}
+   void finalize() override {}
 
    void setCoordinates(const double& x1, const double& x2, const double& x3)
    {
@@ -72,29 +72,29 @@ public:
 
    void transform(const double matrix[4][4]);
  
-   double getX1Centroid()  { return this->x1; }
-   double getX1Minimum()   { return this->x1; }
-   double getX1Maximum()   { return this->x1; }
-   double getX2Centroid()  { return this->x2; }
-   double getX2Minimum()   { return this->x2; }
-   double getX2Maximum()   { return this->x2; }
-   double getX3Centroid()  { return this->x3; }
-   double getX3Minimum()   { return this->x3; }
-   double getX3Maximum()   { return this->x3; }        
+   double getX1Centroid() override  { return this->x1; }
+   double getX1Minimum() override   { return this->x1; }
+   double getX1Maximum() override   { return this->x1; }
+   double getX2Centroid() override  { return this->x2; }
+   double getX2Minimum() override   { return this->x2; }
+   double getX2Maximum() override   { return this->x2; }
+   double getX3Centroid() override  { return this->x3; }
+   double getX3Minimum() override   { return this->x3; }
+   double getX3Maximum() override   { return this->x3; }        
  
-   void translate(const double& x1, const double& x2, const double& x3);
-   void rotate(const double& rx1, const double& rx2, const double& rx3);
-   void scale(const double& sx1, const double& sx2, const double& sx3);
+   void translate(const double& x1, const double& x2, const double& x3) override;
+   void rotate(const double& rx1, const double& rx2, const double& rx3) override;
+   void scale(const double& sx1, const double& sx2, const double& sx3) override;
 
    double getDistance(GbPoint3D *p);
    bool equals(const GbPoint3D* point) const;
-   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3, bool& pointIsOnBoundary);
-   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3);
-   bool isCellInsideGbObject3D(const double& x11,const double& x21,const double& x31,const double& x12,const double& x22,const double& x23) { return false; }
+   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3, bool& pointIsOnBoundary) override;
+   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3) override;
+   bool isCellInsideGbObject3D(const double& x11,const double& x21,const double& x31,const double& x12,const double& x22,const double& x23) override { return false; }
 
-   std::vector<GbTriangle3D*> getSurfaceTriangleSet();
-   GbLine3D* createClippedLine3D(GbPoint3D &point1, GbPoint3D &point2);
-   virtual std::string toString();
+   std::vector<GbTriangle3D*> getSurfaceTriangleSet() override;
+   GbLine3D* createClippedLine3D(GbPoint3D &point1, GbPoint3D &point2) override;
+   std::string toString() override;
 
    using GbObject3D::isPointInGbObject3D; //Grund: dadurch muss man hier  isPointInGbObject3D(GbPoint3D*) nicht ausprogrammieren
                                           //, welche sonst hier "ueberdeckt" waere,da es dieselbe methode mit anderen args gibt!
diff --git a/src/basics/geometry3d/GbPolygon3D.h b/src/basics/geometry3d/GbPolygon3D.h
index 96b96a3ac..6e5024d5d 100644
--- a/src/basics/geometry3d/GbPolygon3D.h
+++ b/src/basics/geometry3d/GbPolygon3D.h
@@ -102,7 +102,7 @@ public:
    */
    GbPolygon3D(GbPolygon3D *polygon);
 
-   ~GbPolygon3D();
+   ~GbPolygon3D() override;
 
    /*======================================================================*/
 
diff --git a/src/basics/geometry3d/GbTriangle3D.h b/src/basics/geometry3d/GbTriangle3D.h
index 7b931c1cc..6237a5522 100644
--- a/src/basics/geometry3d/GbTriangle3D.h
+++ b/src/basics/geometry3d/GbTriangle3D.h
@@ -63,12 +63,12 @@ public:
    GbTriangle3D();
    GbTriangle3D(GbPoint3D* point1, GbPoint3D* point2, GbPoint3D* point3);
    GbTriangle3D(GbTriangle3D* triangle);
-   ~GbTriangle3D();
+   ~GbTriangle3D() override;
    /*======================================================================*/
    /*  Methoden                                                            */
    /*                                                                      */
-   GbTriangle3D* clone();
-   void finalize()
+   GbTriangle3D* clone() override;
+   void finalize() override
    {
       this->deletePoints();
    }
@@ -87,51 +87,51 @@ public:
    GbPoint3D* getPoint(const int& index);
    std::vector<GbPoint3D> getPoints();
    double getArea();
-   double getX1Centroid();
-   double getX1Minimum();
-   double getX1Maximum();           
-   double getX2Centroid();
-   double getX2Minimum();
-   double getX2Maximum();
-   double getX3Centroid();
-   double getX3Minimum();
-   double getX3Maximum();
+   double getX1Centroid() override;
+   double getX1Minimum() override;
+   double getX1Maximum() override;           
+   double getX2Centroid() override;
+   double getX2Minimum() override;
+   double getX2Maximum() override;
+   double getX3Centroid() override;
+   double getX3Minimum() override;
+   double getX3Maximum() override;
 
    void setInconsistent() { this->consistent = false;}
 
    void setPoint(GbPoint3D *point, int index);
 
    //bool equals(GbObject3D *object)
-   std::vector<GbTriangle3D*> getSurfaceTriangleSet();
-   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3)   
+   std::vector<GbTriangle3D*> getSurfaceTriangleSet() override;
+   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3) override   
    {
       //der einfachheit halber ... 
       return false;
       //throw UbException(__FILE__, __LINE__, "GbTriangle3D::isPointInObject3D- not implemented");
    }
-   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3, bool& pointIsOnBoundary)   
+   bool isPointInGbObject3D(const double& x1, const double& x2, const double& x3, bool& pointIsOnBoundary) override   
    {
       //der einfachheit halber ... 
       pointIsOnBoundary = false;
       return false;
       //throw UbException(__FILE__, __LINE__, "GbTriangle3D::isPointInObject3D- not implemented");
    }
-   bool isCellInsideGbObject3D(const double& x11,const double& x21,const double& x31,const double& x12,const double& x22,const double& x23) { return false; }
+   bool isCellInsideGbObject3D(const double& x11,const double& x21,const double& x31,const double& x12,const double& x22,const double& x23) override { return false; }
 
 
    // get distance from a point to the triangle
    //todo CHANGE...
    double getDistanceFromPoint(GbVector3D punct);
 
-   std::string toString();
+   std::string toString() override;
 
    /*======================================================================*/
    /*  Calculation                                                         */
    /*                                                                      */
 //   std::vector<GbPoint3D> calculateIntersectionPoints3D(GbLine3D *line);
-   bool hasRaytracing() { return true; }
+   bool hasRaytracing() override { return true; }
    /*|r| must be 1! einheitsvector!!*/
-   double getIntersectionRaytraceFactor(const double& x1, const double& x2, const double& x3, const double& rx1, const double& rx2, const double& rx3);
+   double getIntersectionRaytraceFactor(const double& x1, const double& x2, const double& x3, const double& rx1, const double& rx2, const double& rx3) override;
 //   bool isPointOnEdge(GbVector3D& q);
    
    GbPoint3D* calculateIntersectionPoints3D(GbLine3D* line);
@@ -142,7 +142,7 @@ public:
 
    bool enclosesPoint2D(double x1, double x2);
    GbPolygon3D* createClippedPolygon3D(GbCuboid3D* cube);   
-   GbLine3D* createClippedLine3D (GbPoint3D& point1, GbPoint3D& point2);
+   GbLine3D* createClippedLine3D (GbPoint3D& point1, GbPoint3D& point2) override;
    //public GbPolygon2D createClippedPolygon2D(GbPoint2D p1, GbPoint2D p2);
    GbPolygon3D* createClippedPolygon3D(const double& p1x1, const double& p1x2, const double& p1x3, const double& p2x1, const double& p2x2, const double& p2x3);
    //bool enclosesRectangle2D(GbRectangle2D *rectangle);
@@ -163,7 +163,7 @@ public:
 
    //virtuelle Methoden von UbObserver
    //!! quick and dirty von sirann !!
-   void objectChanged(UbObservable* changedObject)
+   void objectChanged(UbObservable* changedObject) override
    {
       GbPoint3D* point = dynamic_cast<GbPoint3D*>(changedObject);
       if(!point || (  this->points[0]!=point && this->points[1]!=point && this->points[2]!=point) ) 
@@ -171,7 +171,7 @@ public:
       
       this->consistent = false;
    }
-   void objectWillBeDeleted(UbObservable* objectForDeletion)
+   void objectWillBeDeleted(UbObservable* objectForDeletion) override
    {
       if(this->points[0])
       {
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCAdapter.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCAdapter.h
index 34ea8751f..25405df84 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCAdapter.h
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCAdapter.h
@@ -49,15 +49,15 @@ public:
    {
    }
 
-   void init(const D3Q27Interactor* const& interactor, const double& time=0) {}
-   void update(const D3Q27Interactor* const& interactor, const double& time=0) {}
+   void init(const D3Q27Interactor* const& interactor, const double& time=0) override {}
+   void update(const D3Q27Interactor* const& interactor, const double& time=0) override {}
 
-   void adaptBCForDirection( const D3Q27Interactor& interactor, SPtr<BoundaryConditions> bc, const double& worldX1, const double& worldX2, const double& worldX3, const double& q, const int& fdirection, const double& time=0 )
+   void adaptBCForDirection( const D3Q27Interactor& interactor, SPtr<BoundaryConditions> bc, const double& worldX1, const double& worldX2, const double& worldX3, const double& q, const int& fdirection, const double& time=0 ) override
    {
       bc->setNoSlipBoundaryFlag(D3Q27System::INVDIR[fdirection],secondaryBcOption);
       bc->setQ((float)q,fdirection);
    }
-   void adaptBC( const D3Q27Interactor& interactor, SPtr<BoundaryConditions> bc, const double& worldX1, const double& worldX2, const double& worldX3, const double& time=0 ) 
+   void adaptBC( const D3Q27Interactor& interactor, SPtr<BoundaryConditions> bc, const double& worldX1, const double& worldX2, const double& worldX3, const double& time=0 ) override 
    {
       bc->setBcAlgorithmType(algorithmType);
    }
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAdapter.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAdapter.h
index 723b9de38..4c2b666fc 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAdapter.h
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAdapter.h
@@ -123,11 +123,11 @@ public:
    //------------- implements BCAdapter ----- start
    std::string toString();
    
-   void init(const D3Q27Interactor* const& interactor, const double& time=0);
-   void update(const D3Q27Interactor* const& interactor, const double& time=0);
+   void init(const D3Q27Interactor* const& interactor, const double& time=0) override;
+   void update(const D3Q27Interactor* const& interactor, const double& time=0) override;
 
-   void adaptBCForDirection( const D3Q27Interactor& interactor, SPtr<BoundaryConditions> bc, const double& worldX1, const double& worldX2, const double& worldX3, const double& q, const int& fdirection, const double& time=0 );
-   void adaptBC( const D3Q27Interactor& interactor, SPtr<BoundaryConditions> bc, const double& worldX1, const double& worldX2, const double& worldX3, const double& time=0 );
+   void adaptBCForDirection( const D3Q27Interactor& interactor, SPtr<BoundaryConditions> bc, const double& worldX1, const double& worldX2, const double& worldX3, const double& q, const int& fdirection, const double& time=0 ) override;
+   void adaptBC( const D3Q27Interactor& interactor, SPtr<BoundaryConditions> bc, const double& worldX1, const double& worldX2, const double& worldX3, const double& time=0 ) override;
 
    //------------- implements BCAdapter ----- end
 
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h
index 6d929fc25..f111a4b8c 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.h
@@ -55,7 +55,7 @@ public:
    //! \param numOfThreads is number of threads
    //! \param comm is Communicator object
    NUPSCounterCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, int numOfThreads, SPtr<Communicator> comm);
-   virtual ~NUPSCounterCoProcessor();
+   ~NUPSCounterCoProcessor() override;
 
    void process(double step)override;
 
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h
index 8127c9a46..30beca567 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.h
@@ -57,7 +57,7 @@ public:
    //! \param writer is WbWriter object
    //! \param comm is Communicator object
    WriteBlocksCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string& path, WbWriter* const writer, SPtr<Communicator> comm);
-   virtual ~WriteBlocksCoProcessor();
+   ~WriteBlocksCoProcessor() override;
 
    void process(double step) override;
 
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.h
index 73bd92ffe..6d8d0d9f2 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.h
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.h
@@ -61,7 +61,7 @@ public:
    //! \param writer is WbWriter object
    //! \param comm is Communicator object
    WriteBoundaryConditionsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string& path, WbWriter* const writer, SPtr<Communicator> comm);
-   ~WriteBoundaryConditionsCoProcessor() {}
+   ~WriteBoundaryConditionsCoProcessor() override {}
 
    void process(double step) override;
 
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h
index 0386f9381..cacb97b4c 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h
@@ -66,7 +66,7 @@ public:
    WriteMacroscopicQuantitiesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s,
                                            const std::string& path, WbWriter* const writer, 
                                            SPtr<LBMUnitConverter> conv, SPtr<Communicator> comm);
-   ~WriteMacroscopicQuantitiesCoProcessor(){}
+   ~WriteMacroscopicQuantitiesCoProcessor() override{}
 
    void process(double step) override;
 
diff --git a/src/cpu/VirtualFluidsCore/Connectors/D3Q27ETFullDirectConnector.h b/src/cpu/VirtualFluidsCore/Connectors/D3Q27ETFullDirectConnector.h
index b9f2d1c24..ffce993cc 100644
--- a/src/cpu/VirtualFluidsCore/Connectors/D3Q27ETFullDirectConnector.h
+++ b/src/cpu/VirtualFluidsCore/Connectors/D3Q27ETFullDirectConnector.h
@@ -47,8 +47,8 @@ class D3Q27ETFullDirectConnector : public LocalBlock3DConnector
 {
 public:
    D3Q27ETFullDirectConnector(SPtr<Block3D> from, SPtr<Block3D> to, int sendDir);
-   void init();
-   void sendVectors();
+   void init() override;
+   void sendVectors() override;
 
 protected:
    inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To);
diff --git a/src/cpu/VirtualFluidsCore/Connectors/LocalBlock3DConnector.h b/src/cpu/VirtualFluidsCore/Connectors/LocalBlock3DConnector.h
index 01a0ef5ba..d7aa81e47 100644
--- a/src/cpu/VirtualFluidsCore/Connectors/LocalBlock3DConnector.h
+++ b/src/cpu/VirtualFluidsCore/Connectors/LocalBlock3DConnector.h
@@ -49,22 +49,22 @@ public:
    {
 
    }
-   virtual ~LocalBlock3DConnector() {}
-   void sendTransmitterDataSize() {}
-   void receiveTransmitterDataSize() {}
-   virtual void init() = 0;
-   void prepareForReceive() {}
-   void prepareForSend() {}
-   void fillSendVectors() {}
-   virtual void sendVectors()=0;
-   void receiveVectors() {}
+   ~LocalBlock3DConnector() override {}
+   void sendTransmitterDataSize() override {}
+   void receiveTransmitterDataSize() override {}
+   void init() override = 0;
+   void prepareForReceive() override {}
+   void prepareForSend() override {}
+   void fillSendVectors() override {}
+   void sendVectors() override =0;
+   void receiveVectors() override {}
 
-   void distributeReceiveVectors() {}
+   void distributeReceiveVectors() override {}
 
-   bool isLocalConnector() { return true; }
-   bool isRemoteConnector() { return false; }
-   bool isInterpolationConnectorCF() { return false; }
-   bool isInterpolationConnectorFC() { return false; }
+   bool isLocalConnector() override { return true; }
+   bool isRemoteConnector() override { return false; }
+   bool isInterpolationConnectorCF() override { return false; }
+   bool isInterpolationConnectorFC() override { return false; }
 
 protected:
    WPtr<Block3D> from;
diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h
index ec3dca94e..f92e00fa1 100644
--- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h
+++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h
@@ -51,35 +51,35 @@ public:
    //! \param value initialisation value
    D3Q27EsoTwist3DSplittedVector(size_t nx1, size_t nx2, size_t nx3, LBMReal value);
    //////////////////////////////////////////////////////////////////////////
-   ~D3Q27EsoTwist3DSplittedVector();
+   ~D3Q27EsoTwist3DSplittedVector() override;
    //////////////////////////////////////////////////////////////////////////
-   void swap();
+   void swap() override;
    //////////////////////////////////////////////////////////////////////////
-   virtual void getDistribution( LBMReal* const f, size_t x1, size_t x2, size_t x3);
+   void getDistribution( LBMReal* const f, size_t x1, size_t x2, size_t x3) override;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistribution(const LBMReal* const f, size_t x1, size_t x2, size_t x3);
+   void setDistribution(const LBMReal* const f, size_t x1, size_t x2, size_t x3) override;
    ////////////////////////////////////////////////////////////////////////
-   virtual void getDistributionInv( LBMReal* const f, size_t x1, size_t x2, size_t x3);
+   void getDistributionInv( LBMReal* const f, size_t x1, size_t x2, size_t x3) override;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionInv(const LBMReal* const f, size_t x1, size_t x2, size_t x3);
+   void setDistributionInv(const LBMReal* const f, size_t x1, size_t x2, size_t x3) override;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionForDirection(const LBMReal* const f, size_t x1, size_t x2, size_t x3, unsigned long int direction);
+   void setDistributionForDirection(const LBMReal* const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction);
+   void setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction) override;
    //////////////////////////////////////////////////////////////////////////
-   virtual LBMReal getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction);
+   LBMReal getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) override;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionInvForDirection(const LBMReal* const f, size_t x1, size_t x2, size_t x3, unsigned long int direction);
+   void setDistributionInvForDirection(const LBMReal* const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, unsigned long int direction);
+   void setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override;
    //////////////////////////////////////////////////////////////////////////
-   virtual LBMReal getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction);
+   LBMReal getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) override;
    //////////////////////////////////////////////////////////////////////////
-   size_t getNX1() const;
+   size_t getNX1() const override;
    //////////////////////////////////////////////////////////////////////////
-   size_t getNX2() const;
+   size_t getNX2() const override;
    //////////////////////////////////////////////////////////////////////////
-   size_t getNX3() const;
+   size_t getNX3() const override;
    //////////////////////////////////////////////////////////////////////////
    CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr getLocalDistributions();
    //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h b/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h
index bb0949223..224d9bbfb 100644
--- a/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h
+++ b/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h
@@ -46,37 +46,37 @@ class EsoTwist3D : public DistributionArray3D
 {
 public:
    EsoTwist3D(){};
-   virtual ~EsoTwist3D(){};
+   ~EsoTwist3D() override{};
    //////////////////////////////////////////////////////////////////////////
-   virtual void swap() = 0;
+   void swap() override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual void getDistribution(LBMReal* const f, size_t x1, size_t x2, size_t x3) = 0;
+   void getDistribution(LBMReal* const f, size_t x1, size_t x2, size_t x3) override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistribution(const LBMReal* const f, size_t x1, size_t x2, size_t x3) = 0;
+   void setDistribution(const LBMReal* const f, size_t x1, size_t x2, size_t x3) override = 0;
    ////////////////////////////////////////////////////////////////////////
-   virtual void getDistributionInv( LBMReal* const f, size_t x1, size_t x2, size_t x3) = 0;
+   void getDistributionInv( LBMReal* const f, size_t x1, size_t x2, size_t x3) override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionInv(const LBMReal* const f, size_t x1, size_t x2, size_t x3) = 0;
+   void setDistributionInv(const LBMReal* const f, size_t x1, size_t x2, size_t x3) override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionForDirection(const LBMReal* const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) = 0;
+   void setDistributionForDirection(const LBMReal* const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction) = 0;
+   void setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction) override = 0;
    //////////////////////////////////////////////////////////////////////////
    //virtual void getDistributionInvForDirection(LBMReal* const& f, const size_t& x1, const size_t& x2, const size_t& x3, const unsigned long int& direction) = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual LBMReal getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) = 0;
+   LBMReal getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionInvForDirection(const LBMReal* const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) = 0;
+   void setDistributionInvForDirection(const LBMReal* const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual void setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, unsigned long int direction) = 0;
+   void setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual LBMReal getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) = 0;
+   LBMReal getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual size_t getNX1() const = 0;
+   size_t getNX1() const override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual size_t getNX2() const = 0;
+   size_t getNX2() const override = 0;
    //////////////////////////////////////////////////////////////////////////
-   virtual size_t getNX3() const = 0;
+   size_t getNX3() const override = 0;
    //////////////////////////////////////////////////////////////////////////
   
 };
diff --git a/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.h b/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.h
index 89b491d8c..40f88ae55 100644
--- a/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.h
+++ b/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.h
@@ -45,8 +45,8 @@ class BasicCalculator : public Calculator
 {
 public:
    BasicCalculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps);
-   virtual ~BasicCalculator();
-   virtual void calculate();
+   ~BasicCalculator() override;
+   void calculate() override;
 
 protected:
    void calculateBlocks(int startLevel, int maxInitLevel, int calcStep);
diff --git a/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.h b/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.h
index 6ecb10f02..a3e4468d2 100644
--- a/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.h
+++ b/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.h
@@ -66,7 +66,7 @@ public:
    D3Q27Interactor(SPtr<GbObject3D> geoObject3D, SPtr<Grid3D> grid, SPtr<BCAdapter> bcAdapter,  int type);
    D3Q27Interactor(SPtr<GbObject3D> geoObject3D, SPtr<Grid3D> grid, SPtr<BCAdapter> bcAdapter,  int type, Interactor3D::Accuracy a);
 
-   virtual ~D3Q27Interactor();
+   ~D3Q27Interactor() override;
 
    void setRelevantForForces(const bool& value) {  this->relevantForForces = value; }
    bool isRelevantForForces() { return this->relevantForForces; }
@@ -75,15 +75,15 @@ public:
    void deleteBCAdapter() { bcAdapters.clear(); }
 
  
-   virtual void initInteractor(const double& timeStep=0);
-   void updateInteractor(const double& timestep=0); 
+   void initInteractor(const double& timeStep=0) override;
+   void updateInteractor(const double& timestep=0) override; 
 
    void setReinitWithStoredQs(bool reinitWithStoredQsFlag) { this->reinitWithStoredQsFlag = reinitWithStoredQsFlag; }
    
-   void removeSolidBlocks() { Interactor3D::removeSolidBlocks(); solidNodeIndicesMap.clear(); }
-   void removeBcBlocks() { Interactor3D::removeBcBlocks(); bcNodeIndicesMap.clear(); }
+   void removeSolidBlocks() override { Interactor3D::removeSolidBlocks(); solidNodeIndicesMap.clear(); }
+   void removeBcBlocks() override { Interactor3D::removeBcBlocks(); bcNodeIndicesMap.clear(); }
 
-   bool setDifferencesToGbObject3D(const SPtr<Block3D> block);
+   bool setDifferencesToGbObject3D(const SPtr<Block3D> block) override;
 
    ObObject* clone() { throw UbException(UB_EXARGS,"not implemented");	}
 
diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h
index 033bf6409..33fbb63b5 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h
+++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h
@@ -52,9 +52,9 @@ class CumulantK17LBMKernel : public LBMKernel
 {
 public:
    CumulantK17LBMKernel();
-   virtual ~CumulantK17LBMKernel(void);
-   virtual void calculate(int step) override;
-   virtual SPtr<LBMKernel> clone() override;
+   ~CumulantK17LBMKernel(void) override;
+   void calculate(int step) override;
+   SPtr<LBMKernel> clone() override;
 
 protected:
    inline void forwardInverseChimeraWithK(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K);
diff --git a/src/cpu/VirtualFluidsCore/Parallel/NullCommunicator.h b/src/cpu/VirtualFluidsCore/Parallel/NullCommunicator.h
index c4cc092cc..3fbf26af9 100644
--- a/src/cpu/VirtualFluidsCore/Parallel/NullCommunicator.h
+++ b/src/cpu/VirtualFluidsCore/Parallel/NullCommunicator.h
@@ -46,13 +46,13 @@ private:
    NullCommunicator();
    NullCommunicator( const NullCommunicator& ){}
 public:
-   ~NullCommunicator();
+   ~NullCommunicator() override;
    static SPtr<Communicator> getInstance();
-   int getProcessID();
-   int getNumberOfProcesses();
-   bool isRoot();
-   int getRoot();
-   int getProcessRoot();
+   int getProcessID() override;
+   int getNumberOfProcesses() override;
+   bool isRoot() override;
+   int getRoot() override;
+   int getProcessRoot() override;
 protected:
 private:
 };
diff --git a/src/cpu/VirtualFluidsCore/Visitors/BoundaryConditionsBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/BoundaryConditionsBlockVisitor.h
index 9bd52139b..c7ea28e58 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/BoundaryConditionsBlockVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/BoundaryConditionsBlockVisitor.h
@@ -50,7 +50,7 @@ class BoundaryConditionsBlockVisitor : public Block3DVisitor
 {
 public:
    BoundaryConditionsBlockVisitor();
-   virtual ~BoundaryConditionsBlockVisitor();
+   ~BoundaryConditionsBlockVisitor() override;
    
       void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override;
    void addBC(SPtr<BCAdapter> bc);
diff --git a/src/cpu/VirtualFluidsCore/Visitors/GenBlocksGridVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/GenBlocksGridVisitor.h
index e9f267071..8f78f1986 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/GenBlocksGridVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/GenBlocksGridVisitor.h
@@ -48,9 +48,9 @@ class GenBlocksGridVisitor : public Grid3DVisitor
 {
 public:
    GenBlocksGridVisitor(SPtr<GbObject3D> boundingBox);
-   virtual ~GenBlocksGridVisitor(){}
+   ~GenBlocksGridVisitor() override{}
 
-   void visit(SPtr<Grid3D> grid);
+   void visit(SPtr<Grid3D> grid) override;
 
 private:
    UbTupleInt3 minInd, maxInd;
diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetBcBlocksBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetBcBlocksBlockVisitor.h
index 9836b61fb..0091c9bdb 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/SetBcBlocksBlockVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/SetBcBlocksBlockVisitor.h
@@ -47,9 +47,9 @@ class SetBcBlocksBlockVisitor : public Block3DVisitor
 {
 public:
    SetBcBlocksBlockVisitor(SPtr<Interactor3D> interactor);
-   virtual ~SetBcBlocksBlockVisitor() {}
+   ~SetBcBlocksBlockVisitor() override {}
 
-   virtual void visit(SPtr<Grid3D> grid, SPtr<Block3D> block);
+   void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override;
 
 private:
    SPtr<Interactor3D> interactor;
diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.h
index c281e2ac9..3bb4544a9 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.h
@@ -49,7 +49,7 @@ class SetConnectorsBlockVisitor : public Block3DVisitor
 {
 public:
 	SetConnectorsBlockVisitor(SPtr<Communicator> comm, bool fullConnector, int dirs, LBMReal nu);
-	virtual ~SetConnectorsBlockVisitor();
+	~SetConnectorsBlockVisitor() override;
 	void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override;
 	//////////////////////////////////////////////////////////////////////////
 protected:
diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h
index 8f860f7ce..d323cb5f5 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h
@@ -50,7 +50,7 @@ public:
    enum Action { NewKernel, ChangeKernel, ChangeKernelWithData};
 
    SetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nue, SetKernelBlockVisitor::Action action = SetKernelBlockVisitor::NewKernel);
-   virtual ~SetKernelBlockVisitor() {}
+   ~SetKernelBlockVisitor() override {}
 
    void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override;
 
diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetSolidBlocksBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetSolidBlocksBlockVisitor.h
index 22945638d..3630deee4 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/SetSolidBlocksBlockVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/SetSolidBlocksBlockVisitor.h
@@ -47,9 +47,9 @@ class SetSolidBlocksBlockVisitor : public Block3DVisitor
 {
 public:
    SetSolidBlocksBlockVisitor(SPtr<Interactor3D> interactor);
-   virtual ~SetSolidBlocksBlockVisitor() {}
+   ~SetSolidBlocksBlockVisitor() override {}
 
-   virtual void visit(SPtr<Grid3D> grid, SPtr<Block3D> block);
+   void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override;
 
 private:
    SPtr<Interactor3D> interactor;
-- 
GitLab