diff --git a/dune/tectonic/spatial-solving/tnnmg/linearization.hh b/dune/tectonic/spatial-solving/tnnmg/linearization.hh index 3d986305343c6763445db02e0f66b0231156b412..f266bf326fd7c108e3b66c40cba08e34bb8482c5 100644 --- a/dune/tectonic/spatial-solving/tnnmg/linearization.hh +++ b/dune/tectonic/spatial-solving/tnnmg/linearization.hh @@ -52,7 +52,7 @@ class Linearization { } } - //std::cout << "regularityTruncation: " << count << std::endl; + std::cout << "regularityTruncation: " << count << std::endl; } template<class NV, class NBV, class T> @@ -121,6 +121,7 @@ class Linearization { BitVector obstacleTruncationFlags = ignore_; BitVector regularityTruncationFlags = ignore_; + //regularityTruncationFlags.unsetAll(); //std::cout << "ignore truncation: " << truncationFlags_.count(); determineTruncation(x, f_.lowerObstacle(), f_.upperObstacle(), obstacleTruncationFlags, obstacleTruncationTolerance_); // obstacle truncation @@ -177,11 +178,13 @@ class Linearization { // nonlinearity part phi.addHessian(x, hessian_); + //truncateMatrix(hessian_, regularityTruncationFlags, regularityTruncationFlags); //std::cout << x[0] << " " << hessian_[0][0] << std::endl; B -= hessian_; + //truncateMatrix(B, regularityTruncationFlags, regularityTruncationFlags); //print(B, "phi hessian: "); // compute gradient @@ -198,6 +201,14 @@ class Linearization { phi.addGradient(x, negativeGradient_); C -= negativeGradient_; + //truncateVector(C, truncationFlags_); + + /*for (size_t i=0; i<C.size(); i++) { + std::cout << "dof " << i << std::endl; + std::cout << "truncation: " << regularityTruncationFlags[i] << std::endl; + std::cout << "C[i]: " << C[i] << std::endl; + }*/ + //print(truncationFlags_, "truncationFlags_: "); //print(C, "phi gradient: "); // -grad is needed for Newton step