diff --git a/src/DCPSE/Dcpse.cuh b/src/DCPSE/Dcpse.cuh
index 6e41448d112ddc57d6225157b72500f86b882143..a92a2b4a88ad7ba726490a794522d15fa0b0627f 100644
--- a/src/DCPSE/Dcpse.cuh
+++ b/src/DCPSE/Dcpse.cuh
@@ -4,11 +4,10 @@
 #ifndef OPENFPM_PDATA_DCPSE_CUH
 #define OPENFPM_PDATA_DCPSE_CUH
 
-#if defined(__NVCC__) && defined(HAVE_EIGEN)
+#if defined(__NVCC__)
 
 #include "Vector/vector_dist.hpp"
 #include "MonomialBasis.hpp"
-#include "DMatrix/EMatrix.hpp"
 #include "SupportBuilder.hpp"
 #include "SupportBuilder.cuh"
 #include "Support.hpp"
@@ -103,11 +102,7 @@ public:
             opt(opt)
     {
         particles.ghost_get_subset();
-
-        if (supportSizeFactor < 1) 
-            initializeAdaptive(particles, convergenceOrder, rCut);
-        else 
-            initializeStaticSize(particles, convergenceOrder, rCut, supportSizeFactor);
+        initializeStaticSize(particles, convergenceOrder, rCut, supportSizeFactor);
     }
 
     Dcpse_gpu(vector_type &particles,
@@ -130,11 +125,7 @@ public:
             isSharedSupport(true)
     {
         particles.ghost_get_subset();
-
-        if (supportSizeFactor < 1)
-            initializeAdaptive(particles, convergenceOrder, rCut);
-        else
-            initializeStaticSize(particles, convergenceOrder, rCut, supportSizeFactor);
+        initializeStaticSize(particles, convergenceOrder, rCut, supportSizeFactor);
     }
 
     template<unsigned int prp>
@@ -576,79 +567,6 @@ public:
     }
 
 private:
-
-    template <typename U>
-    void initializeAdaptive(vector_type &particles,
-                            unsigned int convergenceOrder,
-                            U rCut) {
-        // Still need to be tested
-#ifdef SE_CLASS1
-        this->update_ctr=particles.getMapCtr();
-#endif
-
-        if (!isSharedSupport) {
-            subsetKeyPid.resize(particles.size_local_orig());
-            supportRefs.resize(particles.size_local());
-        }
-        localEps.resize(particles.size_local());
-        localEpsInvPow.resize(particles.size_local());
-        kerOffsets.resize(particles.size_local()+1);
-
-        const T condVTOL = 1e2;
-
-        if (!isSharedSupport) {
-            SupportBuilder<vector_type,vector_type>
-                supportBuilder(particles, particles, differentialSignature, rCut, differentialOrder == 0);
-
-            unsigned int requiredSupportSize = monomialBasis.size();
-            // need to resize supportKeys1D to yet unknown supportKeysTotalN
-            // add() takes too long
-            openfpm::vector<openfpm::vector<size_t>> tempSupportKeys(supportRefs.size());
-
-            auto it = particles.getDomainIterator();
-            while (it.isNext()) {
-                auto key_o = particles.getOriginKey(it.get());
-                subsetKeyPid.get(key_o.getKey()) = it.get().getKey();
-
-                Support support = supportBuilder.getSupport(it, requiredSupportSize, opt);
-                supportRefs.get(key_o.getKey()) = key_o.getKey();
-                tempSupportKeys.get(key_o.getKey()) = support.getKeys();
-                kerOffsets.get(key_o.getKey()) = supportKeysTotalN;
-
-                if (maxSupportSize < support.size())
-                    maxSupportSize = support.size();
-                supportKeysTotalN += support.size();
-
-                EMatrix<T, Eigen::Dynamic, Eigen::Dynamic> V(support.size(), monomialBasis.size());
-                // Vandermonde matrix computation
-                Vandermonde<dim, T, EMatrix<T, Eigen::Dynamic, Eigen::Dynamic>>
-                        vandermonde(support, monomialBasis, particles, particles,HOverEpsilon);
-                vandermonde.getMatrix(V);
-
-                T condV = conditionNumber(V, condVTOL);
-                T eps = vandermonde.getEps();
-                if (condV > condVTOL) {
-                    requiredSupportSize *= 2;
-                    std::cout << "INFO: Increasing, requiredSupportSize = " << requiredSupportSize << std::endl; // debug
-                    continue;
-                } else requiredSupportSize = monomialBasis.size();
-
-                ++it;
-            }
-
-            kerOffsets.get(supportRefs.size()) = supportKeysTotalN;
-            supportKeys1D.resize(supportKeysTotalN);
-
-            size_t offset = 0;
-            for (size_t i = 0; i < tempSupportKeys.size(); ++i)
-                for (size_t j = 0; j < tempSupportKeys.get(i).size(); ++j, ++offset)
-                    supportKeys1D.get(offset) = tempSupportKeys.get(i).get(j);
-        }
-
-        kerOffsets.hostToDevice(); supportKeys1D.hostToDevice();
-        assembleLocalMatrices_t(rCut);
-    }
-
     template <typename U>
     void initializeStaticSize(vector_type &particles,
                               unsigned int convergenceOrder,
diff --git a/src/DCPSE/Dcpse.hpp b/src/DCPSE/Dcpse.hpp
index c43987fe849d50254d6f569813b3c8af0f799bd1..7a748ae8a3e2f2292294f686d9df332f22d71c64 100644
--- a/src/DCPSE/Dcpse.hpp
+++ b/src/DCPSE/Dcpse.hpp
@@ -184,14 +184,7 @@ public:
             opt(opt)
     {
         particles.ghost_get_subset();         // This communicates which ghost particles to be excluded from support
-        if (supportSizeFactor < 1) 
-        {
-            initializeAdaptive(particles, particles, convergenceOrder, rCut);
-        } 
-        else 
-        {
-            initializeStaticSize(particles, particles, convergenceOrder, rCut, supportSizeFactor);
-        }
+        initializeStaticSize(particles, particles, convergenceOrder, rCut, supportSizeFactor);
     }
 
     //Surface DCPSE Constructor
@@ -259,11 +252,9 @@ public:
             isSharedLocalSupport(true)
     {
         particles.ghost_get_subset();
-        if (supportSizeFactor < 1)
-            initializeAdaptive(particles, particles, convergenceOrder, rCut);
-        else
-            initializeStaticSize(particles, particles, convergenceOrder, rCut, supportSizeFactor);
+        initializeStaticSize(particles, particles, convergenceOrder, rCut, supportSizeFactor);
     }
+
     Dcpse(vector_type &particlesFrom,vector_type2 &particlesTo,
           Point<dim, unsigned int> differentialSignature,
           unsigned int convergenceOrder,
@@ -277,10 +268,7 @@ public:
              opt(opt)
     {
         particlesFrom.ghost_get_subset();
-        if (supportSizeFactor < 1)
-            initializeAdaptive(particlesFrom,particlesTo,convergenceOrder, rCut);
-        else
-            initializeStaticSize(particlesFrom,particlesTo,convergenceOrder, rCut, supportSizeFactor);
+        initializeStaticSize(particlesFrom,particlesTo,convergenceOrder, rCut, supportSizeFactor);
     }
 
 
@@ -762,95 +750,6 @@ public:
     }
 
 private:
-
-    void initializeAdaptive(vector_type &particlesFrom, 
-                            vector_type2 &particlesTo,
-                            unsigned int convergenceOrder,
-                            T rCut) {
-        SupportBuilder<vector_type,vector_type2>
-                supportBuilder(particlesFrom, particlesTo, differentialSignature, rCut, differentialOrder == 0);
-        unsigned int requiredSupportSize = monomialBasis.size();
-
-        if (!isSharedLocalSupport)
-            localSupports.resize(particlesTo.size_local_orig());
-        localEps.resize(particlesTo.size_local_orig());
-        localEpsInvPow.resize(particlesTo.size_local_orig());
-        kerOffsets.resize(particlesTo.size_local_orig());
-        kerOffsets.fill(-1);
-
-        auto it = particlesTo.getDomainIterator();
-        while (it.isNext()) {
-            const T condVTOL = 1e2;
-            auto key_o = particlesTo.getOriginKey(it.get());
-
-            if (!isSharedLocalSupport)
-                localSupports.get(key_o.getKey()) = supportBuilder.getSupport(it, requiredSupportSize,opt);
-
-            Support& support = localSupports.get(key_o.getKey());
-
-            // Get the points in the support of the DCPSE kernel and store the support for reuse
-            EMatrix<T, Eigen::Dynamic, Eigen::Dynamic> V(support.size(), monomialBasis.size());
-
-            // Vandermonde matrix computation
-            Vandermonde<dim, T, EMatrix<T, Eigen::Dynamic, Eigen::Dynamic>>
-                    vandermonde(support, monomialBasis,particlesFrom, particlesTo,HOverEpsilon);
-            vandermonde.getMatrix(V);
-
-            T eps = vandermonde.getEps();
-
-            if (!isSharedLocalSupport) {
-                T condV = conditionNumber(V, condVTOL);
-
-                if (condV > condVTOL) {
-                    requiredSupportSize *= 2;
-                    std::cout
-                            << "INFO: Increasing, requiredSupportSize = " << requiredSupportSize
-                            << std::endl; // debug
-                    continue;
-                } else
-                    requiredSupportSize = monomialBasis.size();
-            }
-
-            localSupports.get(key_o.getKey()) = support;
-            localEps.get(key_o.getKey()) = eps;
-            localEpsInvPow.get(key_o.getKey()) = 1.0 / openfpm::math::intpowlog(eps,differentialOrder);
-            // Compute the diagonal matrix E
-            DcpseDiagonalScalingMatrix<dim> diagonalScalingMatrix(monomialBasis);
-            EMatrix<T, Eigen::Dynamic, Eigen::Dynamic> E(support.size(), support.size());
-            diagonalScalingMatrix.buildMatrix(E, support, eps, particlesFrom, particlesTo);
-            // Compute intermediate matrix B
-            EMatrix<T, Eigen::Dynamic, Eigen::Dynamic> B = E * V;
-            // Compute matrix A
-            EMatrix<T, Eigen::Dynamic, Eigen::Dynamic> A = B.transpose() * B;
-            // Compute RHS vector b
-            DcpseRhs<dim> rhs(monomialBasis, differentialSignature);
-            EMatrix<T, Eigen::Dynamic, 1> b(monomialBasis.size(), 1);
-            rhs.template getVector<T>(b);
-            // Get the vector where to store the coefficients...
-            EMatrix<T, Eigen::Dynamic, 1> a(monomialBasis.size(), 1);
-            // ...solve the linear system...
-            a = A.colPivHouseholderQr().solve(b);
-            // ...and store the solution for later reuse
-            kerOffsets.get(key_o.getKey()) = calcKernels.size();
-
-            Point<dim, T> xp = particlesTo.getPosOrig(key_o);
-
-            const auto& support_keys = support.getKeys();
-            size_t N = support_keys.size();
-            for (size_t i = 0; i < N; ++i)
-            {
-                const auto& xqK = support_keys.get(i);
-                Point<dim, T> xq = particlesFrom.getPosOrig(xqK);
-                Point<dim, T> normalizedArg = (xp - xq) / eps;
-
-                calcKernels.add(computeKernel(normalizedArg, a));
-            }
-            //
-            ++it;
-        }
-    }
-
-
     void initializeStaticSize(vector_type &particlesFrom,vector_type2 &particlesTo,
                               unsigned int convergenceOrder,
                               T rCut,