diff --git a/cpu.cmake b/cpu.cmake
index d829a720cfe384898a9122a85a5dc159166c825b..d7cfe39b98f0f4374fe6de4de184002259af22bc 100644
--- a/cpu.cmake
+++ b/cpu.cmake
@@ -1,4 +1,5 @@
 
+
 add_subdirectory(${VF_THIRD_DIR}/MuParser)
 
 add_subdirectory(src/cpu/VirtualFluidsCore)
diff --git a/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp b/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp
index 1053a7f5fcb2feb6280ebdbe563bd1a9c7196424..4bdf8669b1ed481e64d1059d1479f05cae7e164d 100644
--- a/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp
+++ b/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp
@@ -13,14 +13,10 @@ BASICS_EXPORT std::shared_ptr<ConfigFileReader> ConfigFileReader::getNewInstance
 }
 
 ConfigFileReader::ConfigFileReader()
-{
-
-}
+= default;
 
 BASICS_EXPORT ConfigFileReader::~ConfigFileReader()
-{
-
-}
+= default;
 
 BASICS_EXPORT std::shared_ptr<ConfigData> ConfigFileReader::readConfigFile(const std::string &filePath) const
 {
diff --git a/src/basics/Core/Input/ConfigInput/ConfigInput.cpp b/src/basics/Core/Input/ConfigInput/ConfigInput.cpp
index ce8ea0401d1baf6a44fa174022576eaa7df59149..58f681b27a2317a2e8314e291725ac71710872b0 100644
--- a/src/basics/Core/Input/ConfigInput/ConfigInput.cpp
+++ b/src/basics/Core/Input/ConfigInput/ConfigInput.cpp
@@ -37,9 +37,7 @@ namespace input
     }
 
     ConfigInput::~ConfigInput()
-    {
-
-    }
+    = default;
 
     bool ConfigInput::hasValue(const std::string &key) const
     {
diff --git a/src/basics/Core/Logger/Logger.cpp b/src/basics/Core/Logger/Logger.cpp
index 95c577bfd1f3d1a42fdeaa9650e4bbe51f8cf098..f7a9b2a1ec2ceb788840d918bbe08fff1e757795 100644
--- a/src/basics/Core/Logger/Logger.cpp
+++ b/src/basics/Core/Logger/Logger.cpp
@@ -23,9 +23,7 @@ namespace logging {
     }
 
     logging::Logger::~Logger()
-    {
-
-    }
+    = default;
 
     void Logger::addStreamToList(std::ostream* stream)
     {
diff --git a/src/basics/Core/Logger/implementations/LoggerImp.cpp b/src/basics/Core/Logger/implementations/LoggerImp.cpp
index b06523afbcee1fc26b8008a7b08ebdf82d68b579..48ad23a3082539706fa70b5d4ae895b35b0a7782 100644
--- a/src/basics/Core/Logger/implementations/LoggerImp.cpp
+++ b/src/basics/Core/Logger/implementations/LoggerImp.cpp
@@ -17,9 +17,7 @@ logging::LoggerImp::LoggerImp(std::ostream* stream) : logging::Logger(stream)
 }
 
 logging::LoggerImp::~LoggerImp()
-{
-
-}
+= default;
 
 logging::Logger& logging::LoggerImp::operator<<(const Level &level)
 {
diff --git a/src/basics/Core/StringUtilities/StringUtil.h b/src/basics/Core/StringUtilities/StringUtil.h
index e860418cb826b800701c1ede60a378fa07f8cf92..63ee9e965737e6fdfdb91d17bd6b158c76634453 100644
--- a/src/basics/Core/StringUtilities/StringUtil.h
+++ b/src/basics/Core/StringUtilities/StringUtil.h
@@ -37,9 +37,9 @@ public:
     static BASICS_EXPORT bool endsWith(const std::string &input, const std::string &end);
 
 private:
-    StringUtil() {};
-    StringUtil(const StringUtil&) {};
-    virtual ~StringUtil() {};
+    StringUtil() = default;;
+    StringUtil(const StringUtil&) = default;;
+    virtual ~StringUtil() = default;;
 
     static bool toBool(bool &t, const std::string &input, std::ios_base &(*f)(std::ios_base&));
 };
diff --git a/src/basics/basics/container/CbVector.h b/src/basics/basics/container/CbVector.h
index cf4b9296b7d7fe6ac726a3f3bbcf6cc7eb850832..e6b07f8f5754b236bd0d5af4ba01e22237b38d3c 100644
--- a/src/basics/basics/container/CbVector.h
+++ b/src/basics/basics/container/CbVector.h
@@ -222,8 +222,8 @@ public:
    using size_type = typename CbVector<value_type>::size_type;
 
 public:
-   CbVectorAllocator() {}
-   virtual ~CbVectorAllocator() {}
+   CbVectorAllocator() = default;
+   virtual ~CbVectorAllocator() = default;
 
    virtual bool alloc(CbVector< value_type >& vec, const size_type& dataSize, const value_type& value=value_type()) = 0;
    virtual bool resize(CbVector< value_type >& vec, const size_type& dataSize, const value_type& value=value_type()) = 0;
diff --git a/src/basics/basics/utilities/UbException.h b/src/basics/basics/utilities/UbException.h
index 3ac9951120ad776faaec1b7d48d60d5389f3cf3d..35c40eed71b47c0280c577da9cd368a235941fc1 100644
--- a/src/basics/basics/utilities/UbException.h
+++ b/src/basics/basics/utilities/UbException.h
@@ -109,7 +109,7 @@ public:
    }
    //////////////////////////////////////////////////////////////////////////
    //destructor
-   ~UbException() throw() override { }
+   ~UbException() throw() override = default;
    //////////////////////////////////////////////////////////////////////////
    //virtual public methods
    //returns  exception-string
diff --git a/src/basics/basics/utilities/UbInfinity.h b/src/basics/basics/utilities/UbInfinity.h
index 229a14b23c79fc3bc95650bb272209f3b7392d23..460c439ecd3141ab8bc1973934007acf58a42b50 100644
--- a/src/basics/basics/utilities/UbInfinity.h
+++ b/src/basics/basics/utilities/UbInfinity.h
@@ -69,7 +69,7 @@ class UbNegInfinity
       return UbLimits<T>::ninf() == rhs;
    }
  protected:
-    inline UbNegInfinity() {}
+    inline UbNegInfinity() = default;
 
  private:
    UbNegInfinity( const UbNegInfinity& ninf );             //copy constructor (private & undefined)
diff --git a/src/basics/basics/utilities/UbLogger.h b/src/basics/basics/utilities/UbLogger.h
index 40ea42a48d0ebce8cc69a47e9763f8f808824fa3..2d315fb81a95abe65e4751acaa2182b275eeaa69 100644
--- a/src/basics/basics/utilities/UbLogger.h
+++ b/src/basics/basics/utilities/UbLogger.h
@@ -138,8 +138,7 @@ private:
 //////////////////////////////////////////////////////////////////////////
 template <typename OutputPolicy>
 UbLogger<OutputPolicy>::UbLogger()
-{
-}
+= default;
 /*==========================================================*/
 template <typename OutputPolicy>
 std::ostringstream& UbLogger<OutputPolicy>::get(const LogLevel& level) 
diff --git a/src/basics/basics/utilities/UbObservable.h b/src/basics/basics/utilities/UbObservable.h
index 56967b904836debbec0f8e5fc785de030824749d..27fc51dca1e7125950aa495f99d858b2d3bf1b5d 100644
--- a/src/basics/basics/utilities/UbObservable.h
+++ b/src/basics/basics/utilities/UbObservable.h
@@ -77,8 +77,7 @@ protected:
      Usually this constructor is used in extended classes.
    */
    UbObservable()
-   {
-   }
+   = default;
    
    UbObservable(const UbObservable& src)
    {
diff --git a/src/basics/basics/utilities/UbObserver.h b/src/basics/basics/utilities/UbObserver.h
index 0f2db5270aec44ba41a72f9ac8e6022308a12ecd..dab5d28c0cc83a4a73fdba8d9be7f979f9d96c2b 100644
--- a/src/basics/basics/utilities/UbObserver.h
+++ b/src/basics/basics/utilities/UbObserver.h
@@ -50,11 +50,11 @@ class UbObserver
 {
 protected:
 
-   UbObserver(){}
+   UbObserver()= default;
 
 public:
 
-   virtual ~UbObserver(){}
+   virtual ~UbObserver()= default;
 
    /*======================================================================*/
    /*  Methods                                                           */
diff --git a/src/basics/basics/utilities/UbScheduler.h b/src/basics/basics/utilities/UbScheduler.h
index cc4f6a50f728a1ab89a2d502dd113f8865410b85..ae199b9d83301b5faee95ab4db6e3a027818abfa 100644
--- a/src/basics/basics/utilities/UbScheduler.h
+++ b/src/basics/basics/utilities/UbScheduler.h
@@ -100,7 +100,7 @@ public:
       this->addSchedule(schedule);
    }
    /*==========================================================*/
-   virtual ~UbScheduler() {}
+   virtual ~UbScheduler() = default;
    /*==========================================================*/
    inline void addSchedule(const UbSchedule& schedule)
    {
diff --git a/src/basics/basics/utilities/UbTiming.h b/src/basics/basics/utilities/UbTiming.h
index 55ba93cbe4e08ded27ffa4f19fe6923beebd4bc1..71e95ce6aa5ff9a7d59b69092c2e251dcd930f19 100644
--- a/src/basics/basics/utilities/UbTiming.h
+++ b/src/basics/basics/utilities/UbTiming.h
@@ -64,7 +64,7 @@ public:
       this->name        = name;
    }
    /*==========================================================*/
-   virtual ~UbTiming() {}  
+   virtual ~UbTiming() = default;  
    /*==========================================================*/
    virtual void initTiming()
    {
@@ -236,7 +236,7 @@ public:
 
    }
    /*==========================================================*/
-   virtual ~UbTimer() {}  
+   virtual ~UbTimer() = default;  
    /*==========================================================*/
    double              getLapTime() const               { return this->lapTime;  }
    std::vector<double> getLapTimes() const              { return this->lapTimes; }
diff --git a/src/basics/basics/utilities/UbTuple.h b/src/basics/basics/utilities/UbTuple.h
index a75581adea4974ed16b51eebcc96dbf9b2bb49ea..f081f2e9e0a054e320a2dfb1fd6e6e49d0489216 100644
--- a/src/basics/basics/utilities/UbTuple.h
+++ b/src/basics/basics/utilities/UbTuple.h
@@ -467,7 +467,7 @@ public:
    using BaseT = UbDuo<P1, typename UbTuple<P2, P3, P4, P5, P6, P7, P8, UbNullT>::BaseT>;
 
    // constructor:
-   UbTuple() {}
+   UbTuple() = default;
    UbTuple( typename UbTypeOp<P1>::RefConstT a1,
             typename UbTypeOp<P2>::RefConstT a2,
             typename UbTypeOp<P3>::RefConstT a3 = UbNullT(),
@@ -497,7 +497,7 @@ public:
    using BaseT = UbDuo<P1, P2>;
    
    // constructor:
-   UbTuple() {}
+   UbTuple() = default;
    UbTuple( typename UbTypeOp<P1>::RefConstT a1,
             typename UbTypeOp<P2>::RefConstT a2,
             typename UbTypeOp<UbNullT>::RefConstT = UbNullT(),
@@ -528,7 +528,7 @@ public:
    using BaseT = UbDuo<P1, void>;
 
    // constructor:
-   UbTuple() {}
+   UbTuple() = default;
    UbTuple( typename UbTypeOp<P1>::RefConstT a1,
             typename UbTypeOp<UbNullT>::RefConstT = UbNullT(),
             typename UbTypeOp<UbNullT>::RefConstT = UbNullT(),
diff --git a/src/basics/basics/writer/WbWriter.h b/src/basics/basics/writer/WbWriter.h
index 510c160a9d0bde85fddd0ff1137a81a05130d0a7..2775452dd07b4b2f3a8e224216df1e37d8543b94 100644
--- a/src/basics/basics/writer/WbWriter.h
+++ b/src/basics/basics/writer/WbWriter.h
@@ -50,9 +50,7 @@ class WbWriter
 public:
    //////////////////////////////////////////////////////////////////////////
    virtual ~WbWriter() 
-   {
-
-   }
+   = default;
 
    //////////////////////////////////////////////////////////////////////////
    //rein virtuelle Methoden
diff --git a/src/basics/geometry3d/GbPoint3D.h b/src/basics/geometry3d/GbPoint3D.h
index 9a8fc2da2f25c4e83a87606cf9dfb962bc7d3d20..be1a58625632e97cd744f85df80b14791dc4fd39 100644
--- a/src/basics/geometry3d/GbPoint3D.h
+++ b/src/basics/geometry3d/GbPoint3D.h
@@ -50,7 +50,7 @@ public:
    GbPoint3D();
    GbPoint3D(const double& x1, const double& x2, const double& x3);
    GbPoint3D(GbPoint3D *point);                
-   ~GbPoint3D() override {}
+   ~GbPoint3D() override = default;
 
    GbPoint3D* clone() override {return new GbPoint3D(this);}
    void finalize() override {}
diff --git a/src/basics/geometry3d/GbSystem3D.h b/src/basics/geometry3d/GbSystem3D.h
index bfe97c3d0b536c0c650934f8d532d57c5a3dad63..cb1c3905f956fe86d9098605783437baaaae3ba5 100644
--- a/src/basics/geometry3d/GbSystem3D.h
+++ b/src/basics/geometry3d/GbSystem3D.h
@@ -112,7 +112,7 @@ namespace GbSystem3D
    public:
       PointSet3(int n);
       PointSet3(const std::vector<GbPoint3D>& points);
-      ~PointSet3(){}
+      ~PointSet3()= default;
       void   add(const GbPoint3D& point);
       void   addUnequal(const GbPoint3D& point);
       void   add(const std::vector<GbPoint3D>& p);
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAdapter.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAdapter.h
index a34f899ae53df3fe4f48cd9b252a9c63bc4ff9a7..a58eab73751641759c903db56536befe463f8a00 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAdapter.h
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAdapter.h
@@ -58,7 +58,7 @@ public:
        , algorithmType(-1)
    {
    }
-   virtual ~BCAdapter() {}
+   virtual ~BCAdapter() = default;
 
    //methods
    bool isTimeDependent() { return((this->type & TIMEDEPENDENT) ==  TIMEDEPENDENT); }
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCArray3D.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCArray3D.cpp
index 76094ba5bbc4c1abc1c6d602eedd5acaf55ae88c..c0d93da3a909965e901dd0e3efe5827c682fb067 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCArray3D.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCArray3D.cpp
@@ -40,7 +40,7 @@ const int BCArray3D::INTERFACEFC = -4;
 const int BCArray3D::UNDEFINED = -5;
 
 //////////////////////////////////////////////////////////////////////////
-BCArray3D::BCArray3D() {}
+BCArray3D::BCArray3D() = default;
 //////////////////////////////////////////////////////////////////////////
 BCArray3D::BCArray3D(std::size_t nx1, std::size_t nx2, std::size_t nx3)
 {
@@ -52,7 +52,7 @@ BCArray3D::BCArray3D(std::size_t nx1, std::size_t nx2, std::size_t nx3, int val)
    bcindexmatrix.resize(nx1, nx2, nx3, val);
 }
 //////////////////////////////////////////////////////////////////////////
-BCArray3D::~BCArray3D() {}
+BCArray3D::~BCArray3D() = default;
 //////////////////////////////////////////////////////////////////////////
 void BCArray3D::resize(std::size_t nx1, std::size_t nx2, std::size_t nx3)
 {
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCProcessor.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCProcessor.cpp
index 9f4d9eab15320e28edbbf6dad2a47dcbfa2af118..305d0b73dab91f6b7891e42345f8bdf96117f9db 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCProcessor.cpp
@@ -39,9 +39,7 @@
 #include "BCAlgorithm.h"
 
 BCProcessor::BCProcessor()
-{
-   
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 BCProcessor::BCProcessor(SPtr<ILBMKernel> kernel)
 {
@@ -50,9 +48,7 @@ BCProcessor::BCProcessor(SPtr<ILBMKernel> kernel)
 }
 //////////////////////////////////////////////////////////////////////////
 BCProcessor::~BCProcessor()
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 SPtr<BCProcessor> BCProcessor::clone(SPtr<ILBMKernel> kernel)
 {
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h
index 64cf4067af6294df7d325ba6a22bdb270ca03880..981624ce7b610e6b6288d12d87b52b3efa65525e 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BoundaryConditions.h
@@ -73,7 +73,7 @@ public:
       for(int fdir=D3Q27System::FSTARTDIR; fdir<=D3Q27System::FENDDIR; fdir++) 
          q[fdir] = -999.; 
    }
-   virtual ~BoundaryConditions() {}
+   virtual ~BoundaryConditions() = default;
 
    virtual bool isEmpty() { return (noslipBoundaryFlags&slipBoundaryFlags&velocityBoundaryFlags&densityBoundaryFlags)==0;}
    virtual bool hasBoundaryCondition()
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.cpp
index cd74e23229799f23688a820efbe3c06a5ce3a272..081aac9825a92956c2c13298ea6efab2ff810ead 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/CoProcessor.cpp
@@ -37,8 +37,7 @@
 #include "UbScheduler.h"
 
 CoProcessor::CoProcessor()
-{
-}
+= default;
 
 CoProcessor::CoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s): grid(grid), scheduler(s)
 {
@@ -46,7 +45,5 @@ CoProcessor::CoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s): grid(grid), sc
 }
 
 CoProcessor::~CoProcessor()
-{
-
-}
+= default;
 
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp
index e881706cacc53a98076131da2022fc417d9bf1e7..43652ec721991f00b5b5f6a47122ec807bb4e60c 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/NUPSCounterCoProcessor.cpp
@@ -66,8 +66,7 @@ NUPSCounterCoProcessor::NUPSCounterCoProcessor(SPtr<Grid3D> grid, SPtr<UbSchedul
 }
 //////////////////////////////////////////////////////////////////////////
 NUPSCounterCoProcessor::~NUPSCounterCoProcessor() 
-{
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void NUPSCounterCoProcessor::process(double step)
 {
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp
index f2843380f8bd0ccb386f9c5cdf745fdd8ab219dc..5c6870b18a57bbd6b7172ca565d0790652affb3a 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBlocksCoProcessor.cpp
@@ -52,8 +52,7 @@ WriteBlocksCoProcessor::WriteBlocksCoProcessor(SPtr<Grid3D> grid, SPtr<UbSchedul
 }
 //////////////////////////////////////////////////////////////////////////
 WriteBlocksCoProcessor::~WriteBlocksCoProcessor() 
-{
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void WriteBlocksCoProcessor::process(double step)
 {
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.cpp
index 5f2c8f08954585d4f990d6175d37884db854e3ba..0f19edb4b415f8a2c51c5880d39fdc1ff5a2cc72 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.cpp
@@ -50,9 +50,7 @@
 using namespace std;
 
 WriteBoundaryConditionsCoProcessor::WriteBoundaryConditionsCoProcessor()
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 WriteBoundaryConditionsCoProcessor::WriteBoundaryConditionsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s,
    const std::string& path, WbWriter* const writer, SPtr<Communicator> comm)
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/WriteBoundaryConditionsCoProcessor.h
index 6d8d0d9f213efac852fc181d7cd28111278bf954..b89db187db42d4d13a0f3f9b986451e3665e499b 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() override {}
+   ~WriteBoundaryConditionsCoProcessor() override = default;
 
    void process(double step) override;
 
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp
index 5a5edcd0c551c77f43666ad74781645e66561db8..31bb9ec70aecc2780c443876fa8ddda2e6a8a431 100644
--- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp
+++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp
@@ -47,9 +47,7 @@
 #include "BCArray3D.h"
 
 WriteMacroscopicQuantitiesCoProcessor::WriteMacroscopicQuantitiesCoProcessor()
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 WriteMacroscopicQuantitiesCoProcessor::WriteMacroscopicQuantitiesCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s,
                                                                                  const std::string& path, WbWriter* const writer, 
diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h
index 9ce47ba6373b27f80111faf7f8ddcd2ecb150fd8..816999a71d92219f11d59fd2d9450e46531d427e 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() override{}
+   ~WriteMacroscopicQuantitiesCoProcessor() override= default;
 
    void process(double step) override;
 
diff --git a/src/cpu/VirtualFluidsCore/Connectors/Block3DConnector.h b/src/cpu/VirtualFluidsCore/Connectors/Block3DConnector.h
index 0ac8932fea59966b3814bae96c82e32fbfdb73b1..bffa38f7ddd5f57fd545aa351bcc63d5b272f985 100644
--- a/src/cpu/VirtualFluidsCore/Connectors/Block3DConnector.h
+++ b/src/cpu/VirtualFluidsCore/Connectors/Block3DConnector.h
@@ -48,7 +48,7 @@ class Block3DConnector
 public:
    Block3DConnector() : sendDir(-1) {}
    Block3DConnector(const int& sendDir) : sendDir(sendDir) {}
-   virtual ~Block3DConnector() {}
+   virtual ~Block3DConnector() = default;
    //!Iniitializes connector
    virtual void init()=0;
    //!Synchronizes the send-buffer length
diff --git a/src/cpu/VirtualFluidsCore/Connectors/LocalBlock3DConnector.h b/src/cpu/VirtualFluidsCore/Connectors/LocalBlock3DConnector.h
index d7aa81e47445525e9d8911ddb92847cdbb6ceb90..5db3fca28e5bdc013ff46251b4ca5ac228edb716 100644
--- a/src/cpu/VirtualFluidsCore/Connectors/LocalBlock3DConnector.h
+++ b/src/cpu/VirtualFluidsCore/Connectors/LocalBlock3DConnector.h
@@ -49,7 +49,7 @@ public:
    {
 
    }
-   ~LocalBlock3DConnector() override {}
+   ~LocalBlock3DConnector() override = default;
    void sendTransmitterDataSize() override {}
    void receiveTransmitterDataSize() override {}
    void init() override = 0;
diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp
index 85af639e93a6e272ff42af97dee438dbad264f47..bfc92b6ac97cd2d0860f6fd2eabb05dfaafd4b02 100644
--- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp
+++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp
@@ -35,8 +35,7 @@
 #include "EsoTwistD3Q27System.h"
 
 D3Q27EsoTwist3DSplittedVector::D3Q27EsoTwist3DSplittedVector()
-{
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 D3Q27EsoTwist3DSplittedVector::D3Q27EsoTwist3DSplittedVector( size_t nx1, size_t nx2, size_t nx3, LBMReal value )
 {
@@ -51,9 +50,7 @@ D3Q27EsoTwist3DSplittedVector::D3Q27EsoTwist3DSplittedVector( size_t nx1, size_t
 }
 //////////////////////////////////////////////////////////////////////////
 D3Q27EsoTwist3DSplittedVector::~D3Q27EsoTwist3DSplittedVector()
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void D3Q27EsoTwist3DSplittedVector::swap()
 {
diff --git a/src/cpu/VirtualFluidsCore/Data/DistributionArray3D.h b/src/cpu/VirtualFluidsCore/Data/DistributionArray3D.h
index 02c76fff021ae9bff8f0c48a89e3a8cd3730676c..8fcc8f97b899125100ee30f9b003eddca97cb351 100644
--- a/src/cpu/VirtualFluidsCore/Data/DistributionArray3D.h
+++ b/src/cpu/VirtualFluidsCore/Data/DistributionArray3D.h
@@ -40,8 +40,8 @@
 class DistributionArray3D
 {
 public:
-   DistributionArray3D() {};
-   virtual ~DistributionArray3D(){};
+   DistributionArray3D() = default;;
+   virtual ~DistributionArray3D()= default;;
    //! get number of nodes for x1 direction
    virtual size_t getNX1() const = 0;
    //! get number of nodes for x2 direction
diff --git a/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h b/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h
index 224d9bbfb9b768c607a7b1fc64c409b2bdbe58ae..39637f12d8d959645bd8fcc86efb7c6cb6538ce6 100644
--- a/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h
+++ b/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h
@@ -45,8 +45,8 @@
 class EsoTwist3D : public DistributionArray3D
 {
 public:
-   EsoTwist3D(){};
-   ~EsoTwist3D() override{};
+   EsoTwist3D()= default;;
+   ~EsoTwist3D() override= default;;
    //////////////////////////////////////////////////////////////////////////
    void swap() override = 0;
    //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.cpp b/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.cpp
index 0af807fcf1df659f9e956956f22a46bbd88e09d5..d4266e8d95b6e0e792e26dfa2ab95d9cca9e684e 100644
--- a/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.cpp
+++ b/src/cpu/VirtualFluidsCore/Grid/BasicCalculator.cpp
@@ -55,9 +55,7 @@ BasicCalculator::BasicCalculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additional
 }
 //////////////////////////////////////////////////////////////////////////
 BasicCalculator::~BasicCalculator()
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void BasicCalculator::calculate()
 {
diff --git a/src/cpu/VirtualFluidsCore/Grid/Block3D.cpp b/src/cpu/VirtualFluidsCore/Grid/Block3D.cpp
index 9ea9a84104919810b8c9719721f1df4f28f02cc9..8c44f2e600ff5683a94aec246b4ebc0dbbcdade2 100644
--- a/src/cpu/VirtualFluidsCore/Grid/Block3D.cpp
+++ b/src/cpu/VirtualFluidsCore/Grid/Block3D.cpp
@@ -69,8 +69,7 @@ Block3D::Block3D(int x1, int x2, int x3, int level)
 }
 //////////////////////////////////////////////////////////////////////////
 Block3D::~Block3D()
-{
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 bool Block3D::operator==(const Block3D& src) const
 {
diff --git a/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp b/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp
index 45de9261c5d882a9f96a006974f53e9084ea02a4..c6d1f78e4499ab58d105487359fa3faaab3c1a40 100644
--- a/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp
+++ b/src/cpu/VirtualFluidsCore/Grid/Calculator.cpp
@@ -76,9 +76,7 @@ Calculator::Calculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayer
 }
 //////////////////////////////////////////////////////////////////////////
 Calculator::~Calculator()
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void Calculator::addCoProcessor(SPtr<CoProcessor> coProcessor)
 {
diff --git a/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp b/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp
index 7e5b482297cbdff20fea571339e9f91682eef7f6..4ae4124e5a2aa1e5b301d6b450caea46c5f40217 100644
--- a/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp
+++ b/src/cpu/VirtualFluidsCore/Interactors/D3Q27Interactor.cpp
@@ -84,9 +84,7 @@ D3Q27Interactor::D3Q27Interactor(SPtr<GbObject3D> geoObject3D, SPtr<Grid3D> grid
 }
 //////////////////////////////////////////////////////////////////////////
 D3Q27Interactor::~D3Q27Interactor()
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void D3Q27Interactor::initRayVectors()
 {
diff --git a/src/cpu/VirtualFluidsCore/Interactors/Interactor3D.cpp b/src/cpu/VirtualFluidsCore/Interactors/Interactor3D.cpp
index c05fc12ef3af5e50ee562423efd1ee703bf57740..31fe0f86846dfbe9e83fe5719b136ac182a8b540 100644
--- a/src/cpu/VirtualFluidsCore/Interactors/Interactor3D.cpp
+++ b/src/cpu/VirtualFluidsCore/Interactors/Interactor3D.cpp
@@ -86,8 +86,7 @@ Interactor3D::Interactor3D(SPtr<GbObject3D> geoObject3D, SPtr<Grid3D> grid, int
 }
 //////////////////////////////////////////////////////////////////////////
 Interactor3D::~Interactor3D()
-{
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 bool Interactor3D::arePointsInsideGeoObject(double minX1, double minX2, double minX3, double maxX1, double maxX2, double maxX3, double delta)
 {
diff --git a/src/cpu/VirtualFluidsCore/Interactors/InteractorsHelper.cpp b/src/cpu/VirtualFluidsCore/Interactors/InteractorsHelper.cpp
index 0411b4f19792559f5d8bcbc768e5a392005632e8..d645fa1bf13f6aaa688be00609b6b4ebc1fa5e10 100644
--- a/src/cpu/VirtualFluidsCore/Interactors/InteractorsHelper.cpp
+++ b/src/cpu/VirtualFluidsCore/Interactors/InteractorsHelper.cpp
@@ -47,9 +47,7 @@ InteractorsHelper::InteractorsHelper(SPtr<Grid3D> grid) :grid(grid)
 }
 //////////////////////////////////////////////////////////////////////////
 InteractorsHelper::~InteractorsHelper()
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void InteractorsHelper::addInteractor( SPtr<Interactor3D> interactor )
 {
diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp
index 072d8cd90fa892bf72bebb13aa4fd28c5a4aa53c..f510d9f586c69ef58850ca8e9abd118911148671 100644
--- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp
+++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp
@@ -51,9 +51,7 @@ CumulantK17LBMKernel::CumulantK17LBMKernel()
 }
 //////////////////////////////////////////////////////////////////////////
 CumulantK17LBMKernel::~CumulantK17LBMKernel(void)
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void CumulantK17LBMKernel::initDataSet()
 {
diff --git a/src/cpu/VirtualFluidsCore/LBM/LBMUnitConverter.h b/src/cpu/VirtualFluidsCore/LBM/LBMUnitConverter.h
index ae17171f44c1d0b7d505051fc24d224c00597d60..58f5aedba8bea1bdc43bff4f358446d3f43cdeb6 100644
--- a/src/cpu/VirtualFluidsCore/LBM/LBMUnitConverter.h
+++ b/src/cpu/VirtualFluidsCore/LBM/LBMUnitConverter.h
@@ -97,7 +97,7 @@ public:
 
    }
 
-   virtual ~LBMUnitConverter() {}
+   virtual ~LBMUnitConverter() = default;
 
    double  getRefRhoLb()             { return refRhoLb; }
 
diff --git a/src/cpu/VirtualFluidsCore/Parallel/Communicator.h b/src/cpu/VirtualFluidsCore/Parallel/Communicator.h
index e14dec62b7c4f504fd961fe4f90add9688d552d2..d6488a7a856d46d3d2604b6db285c7cc9d47a16c 100644
--- a/src/cpu/VirtualFluidsCore/Parallel/Communicator.h
+++ b/src/cpu/VirtualFluidsCore/Parallel/Communicator.h
@@ -43,7 +43,7 @@
 class Communicator
 {
 public:
-   virtual ~Communicator(){}
+   virtual ~Communicator()= default;
    static SPtr<Communicator> getInstance();
    virtual int getProcessID() = 0;
    virtual int getNumberOfProcesses() = 0;
@@ -51,8 +51,8 @@ public:
    virtual int getRoot() = 0;
    virtual int getProcessRoot() = 0;
 protected:
-   Communicator(){}
-   Communicator( const Communicator& ){}
+   Communicator()= default;
+   Communicator( const Communicator& )= default;
    static SPtr<Communicator> instance;
 };
 
diff --git a/src/cpu/VirtualFluidsCore/Parallel/NullCommunicator.cpp b/src/cpu/VirtualFluidsCore/Parallel/NullCommunicator.cpp
index fcc20a4cd057b6790f580683f1561fc5b04f306c..c28a802c9f4cae1ba937dd3b33a3affdd2142344 100644
--- a/src/cpu/VirtualFluidsCore/Parallel/NullCommunicator.cpp
+++ b/src/cpu/VirtualFluidsCore/Parallel/NullCommunicator.cpp
@@ -34,12 +34,10 @@
 #include "NullCommunicator.h"
 
 NullCommunicator::NullCommunicator()
-{
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 NullCommunicator::~NullCommunicator()
-{
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 SPtr<Communicator> NullCommunicator::getInstance()
 {
diff --git a/src/cpu/VirtualFluidsCore/Visitors/Block3DVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/Block3DVisitor.h
index f333f521c82a3398976d3b5e32b50a230e514728..e1e50969cf819d59f4a199738d5673b1a74b3d9c 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/Block3DVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/Block3DVisitor.h
@@ -52,8 +52,7 @@ public:
    }
 
 	virtual ~Block3DVisitor()
-   {
-   }
+   = default;
 	
    virtual void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) = 0;
    
diff --git a/src/cpu/VirtualFluidsCore/Visitors/BoundaryConditionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/BoundaryConditionsBlockVisitor.cpp
index e75d09c2cb755204829bc277aba202a8f8f86079..7f1e57b2469e8aa2d051043740064f0e8c7d4bd8 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/BoundaryConditionsBlockVisitor.cpp
+++ b/src/cpu/VirtualFluidsCore/Visitors/BoundaryConditionsBlockVisitor.cpp
@@ -49,9 +49,7 @@ Block3DVisitor(0, Grid3DSystem::MAXLEVEL)
 }
 //////////////////////////////////////////////////////////////////////////
 BoundaryConditionsBlockVisitor::~BoundaryConditionsBlockVisitor()
-{
-
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void BoundaryConditionsBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block)
 {
diff --git a/src/cpu/VirtualFluidsCore/Visitors/GenBlocksGridVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/GenBlocksGridVisitor.h
index 8f78f19865f6e2cbb426b07a10973cfa411273cc..65db6fa109087b7121358f0c3227846dbb246326 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/GenBlocksGridVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/GenBlocksGridVisitor.h
@@ -48,7 +48,7 @@ class GenBlocksGridVisitor : public Grid3DVisitor
 {
 public:
    GenBlocksGridVisitor(SPtr<GbObject3D> boundingBox);
-   ~GenBlocksGridVisitor() override{}
+   ~GenBlocksGridVisitor() override= default;
 
    void visit(SPtr<Grid3D> grid) override;
 
diff --git a/src/cpu/VirtualFluidsCore/Visitors/Grid3DVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/Grid3DVisitor.h
index 2d836daf77d2f180788d0090243b28f86f85f8cc..5484ac44202930eaeacde3e64ac20c2d6bccaabd 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/Grid3DVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/Grid3DVisitor.h
@@ -43,8 +43,8 @@ class Grid3D;
 class Grid3DVisitor
 {
 public:
-   Grid3DVisitor() {}
-   virtual ~Grid3DVisitor() {}
+   Grid3DVisitor() = default;
+   virtual ~Grid3DVisitor() = default;
 
    virtual void visit(SPtr<Grid3D> grid) = 0;
 };
diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetBcBlocksBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetBcBlocksBlockVisitor.h
index 0091c9bdb14fe971b9f7464d33461d7e4fe9a7ef..5db362a3b9f41ec59606374a7761da934b8f8f10 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/SetBcBlocksBlockVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/SetBcBlocksBlockVisitor.h
@@ -47,7 +47,7 @@ class SetBcBlocksBlockVisitor : public Block3DVisitor
 {
 public:
    SetBcBlocksBlockVisitor(SPtr<Interactor3D> interactor);
-   ~SetBcBlocksBlockVisitor() override {}
+   ~SetBcBlocksBlockVisitor() override = default;
 
    void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override;
 
diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.cpp
index 414579d1c258e9cdfba881f3c9a47fe17e157003..85171b549200d498db534d67d368118c48352a47 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.cpp
+++ b/src/cpu/VirtualFluidsCore/Visitors/SetConnectorsBlockVisitor.cpp
@@ -42,8 +42,7 @@ SetConnectorsBlockVisitor::SetConnectorsBlockVisitor(SPtr<Communicator> comm, bo
 }
 //////////////////////////////////////////////////////////////////////////
 SetConnectorsBlockVisitor::~SetConnectorsBlockVisitor(void)
-{
-}
+= default;
 //////////////////////////////////////////////////////////////////////////
 void SetConnectorsBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block)
 {
diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h
index d323cb5f54908feae2f2b1fa0d44b4ed2c7a64f6..af0b0b96bdcc08bb3433ef1f646f8746fd25a99b 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);
-   ~SetKernelBlockVisitor() override {}
+   ~SetKernelBlockVisitor() override = default;
 
    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 3630deee4832871cfc560e1c67f3fc5438c7914b..fe5456be9d021b5676aca18e97eb47af92188929 100644
--- a/src/cpu/VirtualFluidsCore/Visitors/SetSolidBlocksBlockVisitor.h
+++ b/src/cpu/VirtualFluidsCore/Visitors/SetSolidBlocksBlockVisitor.h
@@ -47,7 +47,7 @@ class SetSolidBlocksBlockVisitor : public Block3DVisitor
 {
 public:
    SetSolidBlocksBlockVisitor(SPtr<Interactor3D> interactor);
-   ~SetSolidBlocksBlockVisitor() override {}
+   ~SetSolidBlocksBlockVisitor() override = default;
 
    void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override;