diff --git a/dune/microstructure/prestrain_material_geometry.hh b/dune/microstructure/prestrain_material_geometry.hh
index ad03b2ae60670aaca702f35a2c16ec1c9d8af898..2ceacb0e89613a710395c1f3d85031e57f56f682 100644
--- a/dune/microstructure/prestrain_material_geometry.hh
+++ b/dune/microstructure/prestrain_material_geometry.hh
@@ -722,7 +722,11 @@ public:
     using GridView = CellGridType::LeafGridView;
     using Domain = GridView::Codim<0>::Geometry::GlobalCoordinate;
     using MatrixRT = FieldMatrix< double, dimWorld, dimWorld>;
+    using ScalarRT = double;
     using Func2Tensor = std::function< MatrixRT(const Domain&) >;
+    using FuncScalar = std::function< ScalarRT(const Domain&) >;
+    using FuncMatrix = std::function< MatrixRT(const Domain&) >;
+    using FuncVector = std::function< VectorRT(const Domain&) >;
 protected:
 // 	double p1, p2, theta;
 // 	double width; //Cell geometry
@@ -919,6 +923,17 @@ public:
         }
         // TODO ANISOTROPIC PRESSURE
     }
+    
+    
+    
+    FuncScalar getNormPrestrain(const FuncMatrix& B)
+    {
+	    FuncScalar normB = [&](const Domain& z) {
+	      	return norm(B(z)); 
+	    };
+	    return normB;  
+    }
+
 
 };
 
diff --git a/dune/microstructure/vtk_filler.hh b/dune/microstructure/vtk_filler.hh
new file mode 100644
index 0000000000000000000000000000000000000000..0443c078b83ec1cf155b6e6e0063874f29a6be46
--- /dev/null
+++ b/dune/microstructure/vtk_filler.hh
@@ -0,0 +1,826 @@
+#ifndef DUNE_MICROSTRUCTURE_VTK_FILLER_HH
+#define DUNE_MICROSTRUCTURE_VTK_FILLER_HH
+
+#include <dune/functions/functionspacebases/hierarchicvectorwrapper.hh>
+#include <dune/functions/functionspacebases/interpolate.hh>
+//#include <dune/functions/gridfunctions/gridviewfunction.hh> 
+#include <dune/functions/gridfunctions/discreteglobalbasisfunction.hh>
+#include <dune/microstructure/prestrain_material_geometry.hh>
+
+
+	using std::string;
+	using namespace Dune;
+	using namespace Functions;
+    using namespace Functions::BasisFactory;
+
+	//static const int dimworld = 3;
+
+	//using GT = UGGrid<dim>; //typename MicrostructuredRodGrid::GT<dim>;
+	//using GV = typename GT::LeafGridView;
+	/*
+	using MatrixRT = FieldMatrix< double, dimworld, dimworld>;
+	using VectorRT = FieldVector< double, dimworld>;
+	using ScalarRT = double;
+	
+
+	using ScalarCT = std::vector<double>;
+	using VectorCT = BlockVector<FieldVector<double,1> >;
+
+	using HierarchicVectorView = Dune::Functions::HierarchicVectorWrapper< VectorCT, double>;
+*/
+	/*
+	template<class Basis>
+	static auto scalarDiscGlobalBasisFunc( 
+		const Basis& feBasis, 
+		std::function< double(const typename Basis::GridView::template Codim<0>::Geometry::GlobalCoordinate&) >& scalarFunc)
+	{
+		ScalarCT values;
+    	Functions::interpolate(feBasis, values, scalarFunc);
+    	auto discGlobalBasisFunc = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(feBasis, values);
+    	return discGlobalBasisFunc;
+	}
+
+	template<class Basis>
+	static auto vectorDiscGlobalBasisFunc(
+		const Basis& feBasis,  
+		std::function< FieldVector< double, dimworld>(const typename Basis::GridView::template Codim<0>::Geometry::GlobalCoordinate&) >& vectorFunc)
+	{
+		VectorCT values;
+    	Functions::interpolate(feBasis, values, vectorFunc);
+    	auto discGlobalBasisFunc = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+    		(Functions::subspaceBasis(feBasis), HierarchicVectorView(values));
+    	return discGlobalBasisFunc;
+	}
+*/
+
+template <int dim>
+class FTKfillerContainer {
+
+public:
+
+	static const int dimworld = 3;
+
+// 	using GT = UGGrid<dim>; //typename MicrostructuredRodGrid::GT<dim>;
+    using GT =YaspGrid<dim, EquidistantOffsetCoordinates<double, dim> >;
+	using GV = typename GT::LeafGridView;
+	using Domain = typename GV::template Codim<0>::Geometry::GlobalCoordinate;
+	using MatrixRT = FieldMatrix< double, dimworld, dimworld>;
+	using VectorRT = FieldVector< double, dimworld>;
+	using ScalarRT = double;
+	using FuncMatrix = std::function< MatrixRT(const Domain&) >;
+	using FuncVector = std::function< VectorRT(const Domain&) >;
+	using FuncScalar = std::function< ScalarRT(const Domain&) >;
+
+	using ScalarCT = std::vector<double>;
+	using VectorCT = BlockVector<FieldVector<double,1> >;
+	using HierarchicVectorView = Dune::Functions::HierarchicVectorWrapper< VectorCT, double>;
+
+ 
+    void vtkPrestrainNorm(const GV& gridView, const FuncMatrix& B, string filename)          // Updated
+    {
+	    VTKWriter<typename GT::LeafGridView>  vtkWriter(gridView);
+	    Functions::LagrangeBasis<typename GT::LeafGridView, 1> feBasis(gridView);
+	    FuncScalar normB = PrestrainImp().getNormPrestrain(B);
+	   
+// 	    auto discGlobalBasisFunc = scalarDiscGlobalBasisFunc(feBasis, normB);
+        auto discGlobalBasisFunc  = Dune::Functions::makeGridViewFunction(normB, gridView);
+//     auto muLocal = localFunction(muGridF);
+        
+
+	    ScalarCT values;
+    	Functions::interpolate(feBasis, values, normB);
+    	auto normB_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(feBasis, values);
+	    vtkWriter.addVertexData(normB_DGBF, VTK::FieldInfo("normB", VTK::FieldInfo::Type::scalar, 1));
+    	vtkWriter.write(filename);
+    	
+    }
+
+    void vtkPrestrainDirector(const typename GT::LeafGridView& gridView, const FuncVector& b, string filename)
+    {
+    	VTKWriter<typename GT::LeafGridView>  vtkWriter(gridView);
+        
+        using namespace Functions::BasisFactory;
+
+    	auto basis_CE = makeBasis(
+	    gridView,
+	    power<dimworld>(
+      	lagrange<1>(),
+      	flatLexicographic()));//flatInterleaved()
+
+    	VectorCT values;
+    	Functions::interpolate(basis_CE, values, b);
+    	auto b_DGBF = Functions::makeDiscreteGlobalBasisFunction< VectorRT > (basis_CE, values);
+
+      	vtkWriter.addVertexData(b_DGBF, VTK::FieldInfo("prestrain_director", VTK::FieldInfo::Type::vector, dimworld));
+    	vtkWriter.write(filename);
+    }
+
+
+    void vtkMaterialCell(const GV& gridView_CE, 
+    	const FuncScalar& mu_Func, 
+    	std::string filename)
+    {
+
+    	std::cout << "vtkMaterialCell ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_CE);
+
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_CE);
+
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addCellData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkMaterialCell done.\n";
+    }
+
+ 
+ 	  void vtkMaterial3DRod(const GV& gridView_R3D, double eps, 
+    	const FuncVector& domain_Func, const FuncScalar& mu_Func, 
+    	std::string filename)
+    {
+
+    	std::cout << "vtkProblem ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_R3D);
+
+	    // Vector data
+	    const auto basis_R3D = makeBasis(gridView_R3D, power<dimworld>(lagrange<1>(), flatLexicographic())); //flatInterleaved()
+
+	    VectorCT domain_Coeff;
+	    Functions::interpolate(basis_R3D, domain_Coeff, domain_Func);
+	    auto domain_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(domain_Coeff));
+	    vtkWriter.addVertexData(domain_DGBF, VTK::FieldInfo("Domain", VTK::FieldInfo::Type::vector, 3));
+
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_R3D);
+
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addVertexData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkProblem done.\n";
+    }
+
+
+    void vtkProblemCell(const GV& gridView_CE, 
+    	const FuncMatrix& B_Func, const FuncScalar& mu_Func, 
+    	std::string filename)
+    {
+
+    	std::cout << "vtkProblemCell ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_CE);
+
+	    // Vector data
+	    const auto basis_CE = makeBasis(gridView_CE, power<dimworld>(lagrange<1>(), flatLexicographic())); //flatInterleaved()
+
+	    
+    	FuncVector Be1_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[0];
+    	};
+    	VectorCT Be1_Coeff;
+	    Functions::interpolate(basis_CE, Be1_Coeff, Be1_Func);
+	    auto Be1_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be1_Coeff));
+	    vtkWriter.addVertexData(Be1_DGBF, VTK::FieldInfo("B_e1", VTK::FieldInfo::Type::vector, 3));
+
+	    FuncVector Be2_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[1];
+    	};
+    	VectorCT Be2_Coeff;
+	    Functions::interpolate(basis_CE, Be2_Coeff, Be2_Func);
+	    auto Be2_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be2_Coeff));
+	    vtkWriter.addVertexData(Be2_DGBF, VTK::FieldInfo("B_e2", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be3_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[2];
+    	};
+    	VectorCT Be3_Coeff;
+	    Functions::interpolate(basis_CE, Be3_Coeff, Be3_Func);
+	    auto Be3_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be3_Coeff));
+	    vtkWriter.addVertexData(Be3_DGBF, VTK::FieldInfo("B_e3", VTK::FieldInfo::Type::vector, 3));
+	 
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_CE);
+	    FuncScalar normB_Func = PrestrainImp().getNormPrestrain(B_Func); 
+	    ScalarCT prestrain_Coeff;
+    	Functions::interpolate(scalarFeBasis, prestrain_Coeff, normB_Func);
+    	auto normB_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, prestrain_Coeff);
+	    vtkWriter.addVertexData(normB_DGBF, VTK::FieldInfo("normB", VTK::FieldInfo::Type::scalar, 1));
+
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addVertexData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkProblem done.\n";
+    }
+
+    void vtkProblemCellBVec(const GV& gridView_CE, 
+    	const FuncMatrix& B_Func, const FuncVector& B_vec_Func, const FuncScalar& mu_Func, 
+    	std::string filename)
+    {
+
+    	std::cout << "vtkProblemCellBVec ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_CE);
+
+	    // Vector data
+	    const auto basis_CE = makeBasis(gridView_CE, power<dimworld>(lagrange<1>(), flatLexicographic())); //flatInterleaved()
+
+	    
+    	FuncVector Be1_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[0];
+    	};
+    	VectorCT Be1_Coeff;
+	    Functions::interpolate(basis_CE, Be1_Coeff, Be1_Func);
+	    auto Be1_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be1_Coeff));
+	    vtkWriter.addVertexData(Be1_DGBF, VTK::FieldInfo("B_e1", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be2_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[1];
+    	};
+    	VectorCT Be2_Coeff;
+	    Functions::interpolate(basis_CE, Be2_Coeff, Be2_Func);
+	    auto Be2_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be2_Coeff));
+	    vtkWriter.addVertexData(Be2_DGBF, VTK::FieldInfo("B_e2", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be3_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[2];
+    	};
+    	VectorCT Be3_Coeff;
+	    Functions::interpolate(basis_CE, Be3_Coeff, Be3_Func);
+	    auto Be3_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be3_Coeff));
+	    vtkWriter.addVertexData(Be3_DGBF, VTK::FieldInfo("B_e3", VTK::FieldInfo::Type::vector, 3));
+
+
+    	VectorCT B_vec_Coeff;
+		Functions::interpolate(basis_CE, B_vec_Coeff, B_vec_Func);
+		auto B_vec_DGBF = Functions::makeDiscreteGlobalBasisFunction< VectorRT > (basis_CE, B_vec_Coeff);
+  		vtkWriter.addVertexData(B_vec_DGBF, VTK::FieldInfo("B_vec", VTK::FieldInfo::Type::vector, dimworld));
+	    
+	    
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_CE);
+
+	    FuncScalar normB_Func = PrestrainImp().getNormPrestrain(B_Func); 
+	    ScalarCT prestrain_Coeff;
+    	Functions::interpolate(scalarFeBasis, prestrain_Coeff, normB_Func);
+    	auto normB_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, prestrain_Coeff);
+	    vtkWriter.addVertexData(normB_DGBF, VTK::FieldInfo("normB", VTK::FieldInfo::Type::scalar, 1));
+
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addVertexData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkProblem done.\n";
+    }
+
+
+    void vtkProblem3DRod(const GV& gridView_R3D, double eps, 
+    	const FuncVector& domain_Func, const FuncMatrix& B_Func, const FuncScalar& mu_Func, 
+    	std::string filename)
+    {
+
+    	std::cout << "vtkProblem ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_R3D);
+
+	    // Vector data
+	    const auto basis_R3D = makeBasis(gridView_R3D, power<dimworld>(lagrange<1>(), flatLexicographic())); //flatInterleaved()
+
+	    VectorCT domain_Coeff;
+	    Functions::interpolate(basis_R3D, domain_Coeff, domain_Func);
+	    auto domain_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(domain_Coeff));
+	    vtkWriter.addVertexData(domain_DGBF, VTK::FieldInfo("Domain", VTK::FieldInfo::Type::vector, 3));
+
+	   
+    	FuncVector Be1_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[0];
+    	};
+    	VectorCT Be1_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be1_R3D_Coeff, Be1_R3D_Func);
+	    auto Be1_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be1_R3D_Coeff));
+	    vtkWriter.addVertexData(Be1_R3D_DGBF, VTK::FieldInfo("B_e1", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be2_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[1];
+    	};
+    	VectorCT Be2_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be2_R3D_Coeff, Be2_R3D_Func);
+	    auto Be2_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be2_R3D_Coeff));
+	    vtkWriter.addVertexData(Be2_R3D_DGBF, VTK::FieldInfo("B_e2", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be3_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[2];
+    	};
+    	VectorCT Be3_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be3_R3D_Coeff, Be3_R3D_Func);
+	    auto Be3_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be3_R3D_Coeff));
+	    vtkWriter.addVertexData(Be3_R3D_DGBF, VTK::FieldInfo("B_e3", VTK::FieldInfo::Type::vector, 3));
+
+
+	    
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_R3D);
+
+	    FuncScalar normB_Func = PrestrainImp().getNormPrestrain(B_Func); 
+	    FuncScalar normB_R3D_Func = [normB_Func, eps](const auto& x)
+	    {
+	    	auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+	    	return normB_Func(x_Ce);
+	    };
+	    ScalarCT prestrain_Coeff;
+    	Functions::interpolate(scalarFeBasis, prestrain_Coeff, normB_R3D_Func);
+    	auto normB_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, prestrain_Coeff);
+	    vtkWriter.addVertexData(normB_DGBF, VTK::FieldInfo("normB", VTK::FieldInfo::Type::scalar, 1));
+
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addVertexData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkProblem done.\n";
+    }
+
+     void vtkProblem3DRodBVec(const GV& gridView_R3D, double eps, 
+    	const FuncVector& domain_Func, const FuncMatrix& B_Func, const FuncVector& B_vec_Func, const FuncScalar& mu_Func, 
+    	std::string filename)
+    {
+
+    	std::cout << "vtkProblem ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_R3D);
+
+	    // Vector data
+	    const auto basis_R3D = makeBasis(gridView_R3D, power<dimworld>(lagrange<1>(), flatLexicographic())); //flatInterleaved()
+
+	    VectorCT domain_Coeff;
+	    Functions::interpolate(basis_R3D, domain_Coeff, domain_Func);
+	    auto domain_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(domain_Coeff));
+	    vtkWriter.addVertexData(domain_DGBF, VTK::FieldInfo("Domain", VTK::FieldInfo::Type::vector, 3));
+
+	   
+    	FuncVector Be1_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[0];
+    	};
+    	VectorCT Be1_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be1_R3D_Coeff, Be1_R3D_Func);
+	    auto Be1_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be1_R3D_Coeff));
+	    vtkWriter.addVertexData(Be1_R3D_DGBF, VTK::FieldInfo("B_e1", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be2_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[1];
+    	};
+    	VectorCT Be2_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be2_R3D_Coeff, Be2_R3D_Func);
+	    auto Be2_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be2_R3D_Coeff));
+	    vtkWriter.addVertexData(Be2_R3D_DGBF, VTK::FieldInfo("B_e2", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be3_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[2];
+    	};
+    	VectorCT Be3_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be3_R3D_Coeff, Be3_R3D_Func);
+	    auto Be3_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be3_R3D_Coeff));
+	    vtkWriter.addVertexData(Be3_R3D_DGBF, VTK::FieldInfo("B_e3", VTK::FieldInfo::Type::vector, 3));
+
+	    FuncVector B_vec_R3D_Func = [B_vec_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_vec_Func(x_Ce);
+    	};
+	    VectorCT B_vec_Coeff;
+		Functions::interpolate(basis_R3D, B_vec_Coeff, B_vec_R3D_Func);
+		auto B_vec_DGBF = Functions::makeDiscreteGlobalBasisFunction< VectorRT > (basis_R3D, B_vec_Coeff);
+  		vtkWriter.addVertexData(B_vec_DGBF, VTK::FieldInfo("B_vec", VTK::FieldInfo::Type::vector, dimworld));
+
+
+	    
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_R3D);
+
+	    FuncScalar normB_Func = PrestrainImp().getNormPrestrain(B_Func); 
+	    FuncScalar normB_R3D_Func = [normB_Func, eps](const auto& x)
+	    {
+	    	auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+	    	return normB_Func(x_Ce);
+	    };
+	    ScalarCT prestrain_Coeff;
+    	Functions::interpolate(scalarFeBasis, prestrain_Coeff, normB_R3D_Func);
+    	auto normB_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, prestrain_Coeff);
+	    vtkWriter.addVertexData(normB_DGBF, VTK::FieldInfo("normB", VTK::FieldInfo::Type::scalar, 1));
+
+	    FuncScalar mu_R3D_Func = [mu_Func, eps](const auto& x)
+	    {
+	    	auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+	    	return mu_Func(x_Ce);
+	    };
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_R3D_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addVertexData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkProblem done.\n";
+    }
+
+};
+
+/*
+	template<int dim>
+	void vtkProblemCell(const typename UGGrid<dim>::LeafGridView& gridView_CE, 
+    	const std::function< MatrixRT(const typename UGGrid<dim>::LeafGridView::template Codim<0>::Geometry::GlobalCoordinate&)& B_Func, 
+    	const std::function< ScalarRT(const typename UGGrid<dim>::LeafGridView::template Codim<0>::Geometry::GlobalCoordinate&)& mu_Func, 
+    	std::string filename)
+    {
+    	using GT = UGGrid<dim>;
+    	using GV = typename GT::LeafGridView;
+    	using Domain = typename GV::template Codim<0>::Geometry::GlobalCoordinate;
+    	using FuncMatrix = std::function< MatrixRT(const Domain&) >;
+		using FuncVector = std::function< VectorRT(const Domain&) >;
+		using FuncScalar = std::function< ScalarRT(const Domain&) >;
+    	std::cout << "vtkProblemCell ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_CE);
+
+	    // Vector data
+	    const auto basis_CE = makeBasis(gridView_CE, power<dimworld>(lagrange<1>(), flatLexicographic())); //flatInterleaved()
+
+	    
+    	FuncVector Be1_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[0];
+    	};
+    	VectorCT Be1_Coeff;
+	    Functions::interpolate(basis_CE, Be1_Coeff, Be1_Func);
+	    auto Be1_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be1_Coeff));
+	    vtkWriter.addVertexData(Be1_DGBF, VTK::FieldInfo("B_e1", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be2_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[1];
+    	};
+    	VectorCT Be2_Coeff;
+	    Functions::interpolate(basis_CE, Be2_Coeff, Be2_Func);
+	    auto Be2_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be2_Coeff));
+	    vtkWriter.addVertexData(Be2_DGBF, VTK::FieldInfo("B_e2", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be3_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[2];
+    	};
+    	VectorCT Be3_Coeff;
+	    Functions::interpolate(basis_CE, Be3_Coeff, Be3_Func);
+	    auto Be3_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be3_Coeff));
+	    vtkWriter.addVertexData(Be3_DGBF, VTK::FieldInfo("B_e3", VTK::FieldInfo::Type::vector, 3));
+
+	 
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_CE);
+
+	    FuncScalar normB_Func = getNormPrestrain(B_Func); 
+	    ScalarCT prestrain_Coeff;
+    	Functions::interpolate(scalarFeBasis, prestrain_Coeff, normB_Func);
+    	auto normB_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, prestrain_Coeff);
+	    vtkWriter.addVertexData(normB_DGBF, VTK::FieldInfo("normB", VTK::FieldInfo::Type::scalar, 1));
+
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addVertexData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkProblem done.\n";
+    }
+
+    void vtkProblemCellBVec(const GV& gridView_CE, 
+    	const FuncMatrix& B_Func, const FuncVector& B_vec_Func, const FuncScalar& mu_Func, 
+    	std::string filename)
+    {
+
+    	std::cout << "vtkProblemCell ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_CE);
+
+	    // Vector data
+	    const auto basis_CE = makeBasis(gridView_CE, power<dimworld>(lagrange<1>(), flatLexicographic())); //flatInterleaved()
+
+	    
+    	FuncVector Be1_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[0];
+    	};
+    	VectorCT Be1_Coeff;
+	    Functions::interpolate(basis_CE, Be1_Coeff, Be1_Func);
+	    auto Be1_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be1_Coeff));
+	    vtkWriter.addVertexData(Be1_DGBF, VTK::FieldInfo("B_e1", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be2_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[1];
+    	};
+    	VectorCT Be2_Coeff;
+	    Functions::interpolate(basis_CE, Be2_Coeff, Be2_Func);
+	    auto Be2_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be2_Coeff));
+	    vtkWriter.addVertexData(Be2_DGBF, VTK::FieldInfo("B_e2", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be3_Func = [B_Func](const auto& x)
+    	{
+    		return B_Func(x)[2];
+    	};
+    	VectorCT Be3_Coeff;
+	    Functions::interpolate(basis_CE, Be3_Coeff, Be3_Func);
+	    auto Be3_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_CE), HierarchicVectorView(Be3_Coeff));
+	    vtkWriter.addVertexData(Be3_DGBF, VTK::FieldInfo("B_e3", VTK::FieldInfo::Type::vector, 3));
+
+
+    	VectorCT B_vec_Coeff;
+		Functions::interpolate(basis_CE, B_vec_Coeff, B_vec_Func);
+		auto B_vec_DGBF = Functions::makeDiscreteGlobalBasisFunction< VectorRT > (basis_CE, B_vec_Coeff);
+  		vtkWriter.addVertexData(B_vec_DGBF, VTK::FieldInfo("B_vec", VTK::FieldInfo::Type::vector, dimworld));
+	    
+	    
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_CE);
+
+	    FuncScalar normB_Func = getNormPrestrain(B_Func); 
+	    ScalarCT prestrain_Coeff;
+    	Functions::interpolate(scalarFeBasis, prestrain_Coeff, normB_Func);
+    	auto normB_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, prestrain_Coeff);
+	    vtkWriter.addVertexData(normB_DGBF, VTK::FieldInfo("normB", VTK::FieldInfo::Type::scalar, 1));
+
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addVertexData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkProblem done.\n";
+    }
+
+
+    void vtkProblem3DRod(const GV& gridView_R3D, double eps, 
+    	const FuncVector& domain_Func, const FuncMatrix& B_Func, const FuncScalar& mu_Func, 
+    	std::string filename)
+    {
+
+    	std::cout << "vtkProblem ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_R3D);
+
+	    // Vector data
+	    const auto basis_R3D = makeBasis(gridView_R3D, power<dimworld>(lagrange<1>(), flatLexicographic())); //flatInterleaved()
+
+	    VectorCT domain_Coeff;
+	    Functions::interpolate(basis_R3D, domain_Coeff, domain_Func);
+	    auto domain_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(domain_Coeff));
+	    vtkWriter.addVertexData(domain_DGBF, VTK::FieldInfo("Domain", VTK::FieldInfo::Type::vector, 3));
+
+	   
+    	FuncVector Be1_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[0];
+    	};
+    	VectorCT Be1_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be1_R3D_Coeff, Be1_R3D_Func);
+	    auto Be1_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be1_R3D_Coeff));
+	    vtkWriter.addVertexData(Be1_R3D_DGBF, VTK::FieldInfo("B_e1", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be2_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[1];
+    	};
+    	VectorCT Be2_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be2_R3D_Coeff, Be2_R3D_Func);
+	    auto Be2_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be2_R3D_Coeff));
+	    vtkWriter.addVertexData(Be2_R3D_DGBF, VTK::FieldInfo("B_e2", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be3_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[2];
+    	};
+    	VectorCT Be3_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be3_R3D_Coeff, Be3_R3D_Func);
+	    auto Be3_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be3_R3D_Coeff));
+	    vtkWriter.addVertexData(Be3_R3D_DGBF, VTK::FieldInfo("B_e3", VTK::FieldInfo::Type::vector, 3));
+
+
+	    
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_R3D);
+
+	    FuncScalar normB_Func = getNormPrestrain(B_Func); 
+	    FuncScalar normB_R3D_Func = [normB_Func, eps](const auto& x)
+	    {
+	    	auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+	    	return normB_Func(x_Ce);
+	    };
+	    ScalarCT prestrain_Coeff;
+    	Functions::interpolate(scalarFeBasis, prestrain_Coeff, normB_R3D_Func);
+    	auto normB_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, prestrain_Coeff);
+	    vtkWriter.addVertexData(normB_DGBF, VTK::FieldInfo("normB", VTK::FieldInfo::Type::scalar, 1));
+
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addVertexData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkProblem done.\n";
+    }
+
+     void vtkProblem3DRodBVec(const GV& gridView_R3D, double eps, 
+    	const FuncVector& domain_Func, const FuncMatrix& B_Func, const FuncVector& B_vec_Func, const FuncScalar& mu_Func, 
+    	std::string filename)
+    {
+
+    	std::cout << "vtkProblem ...\n";
+
+	    VTKWriter<GV>  vtkWriter(gridView_R3D);
+
+	    // Vector data
+	    const auto basis_R3D = makeBasis(gridView_R3D, power<dimworld>(lagrange<1>(), flatLexicographic())); //flatInterleaved()
+
+	    VectorCT domain_Coeff;
+	    Functions::interpolate(basis_R3D, domain_Coeff, domain_Func);
+	    auto domain_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(domain_Coeff));
+	    vtkWriter.addVertexData(domain_DGBF, VTK::FieldInfo("Domain", VTK::FieldInfo::Type::vector, 3));
+
+	   
+    	FuncVector Be1_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[0];
+    	};
+    	VectorCT Be1_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be1_R3D_Coeff, Be1_R3D_Func);
+	    auto Be1_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be1_R3D_Coeff));
+	    vtkWriter.addVertexData(Be1_R3D_DGBF, VTK::FieldInfo("B_e1", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be2_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[1];
+    	};
+    	VectorCT Be2_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be2_R3D_Coeff, Be2_R3D_Func);
+	    auto Be2_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be2_R3D_Coeff));
+	    vtkWriter.addVertexData(Be2_R3D_DGBF, VTK::FieldInfo("B_e2", VTK::FieldInfo::Type::vector, 3));
+
+
+	    FuncVector Be3_R3D_Func = [B_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_Func(x_Ce)[2];
+    	};
+    	VectorCT Be3_R3D_Coeff;
+	    Functions::interpolate(basis_R3D, Be3_R3D_Coeff, Be3_R3D_Func);
+	    auto Be3_R3D_DGBF = Functions::makeDiscreteGlobalBasisFunction<VectorRT>
+	        (Functions::subspaceBasis(basis_R3D), HierarchicVectorView(Be3_R3D_Coeff));
+	    vtkWriter.addVertexData(Be3_R3D_DGBF, VTK::FieldInfo("B_e3", VTK::FieldInfo::Type::vector, 3));
+
+	    FuncVector B_vec_R3D_Func = [B_vec_Func, eps](const auto& x)
+    	{
+    		auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+    		return B_vec_Func(x_Ce);
+    	};
+	    VectorCT B_vec_Coeff;
+		Functions::interpolate(basis_R3D, B_vec_Coeff, B_vec_R3D_Func);
+		auto B_vec_DGBF = Functions::makeDiscreteGlobalBasisFunction< VectorRT > (basis_R3D, B_vec_Coeff);
+  		vtkWriter.addVertexData(B_vec_DGBF, VTK::FieldInfo("B_vec", VTK::FieldInfo::Type::vector, dimworld));
+
+
+	    
+	    // Scalar data
+	    Functions::LagrangeBasis<GV, 1> scalarFeBasis(gridView_R3D);
+
+	    FuncScalar normB_Func = getNormPrestrain(B_Func); 
+	    FuncScalar normB_R3D_Func = [normB_Func, eps](const auto& x)
+	    {
+	    	auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+	    	return normB_Func(x_Ce);
+	    };
+	    ScalarCT prestrain_Coeff;
+    	Functions::interpolate(scalarFeBasis, prestrain_Coeff, normB_R3D_Func);
+    	auto normB_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, prestrain_Coeff);
+	    vtkWriter.addVertexData(normB_DGBF, VTK::FieldInfo("normB", VTK::FieldInfo::Type::scalar, 1));
+
+	    FuncScalar mu_R3D_Func = [mu_Func, eps](const auto& x)
+	    {
+	    	auto x_Ce = {x[0]/eps - int(x[0]/eps),x[1],x[2]};
+	    	return mu_Func(x_Ce);
+	    };
+	    ScalarCT material_Coeff;
+    	Functions::interpolate(scalarFeBasis, material_Coeff, mu_R3D_Func);
+    	auto material_DGBF = Functions::makeDiscreteGlobalBasisFunction< ScalarRT >
+    		(scalarFeBasis, material_Coeff);
+	    vtkWriter.addVertexData(material_DGBF, VTK::FieldInfo("mu", VTK::FieldInfo::Type::scalar, 1));
+	   
+	    vtkWriter.write(filename);
+
+	    std::cout << "vtkProblem done.\n";
+    }
+*/
+
+#endif
diff --git a/src/dune-microstructure.cc b/src/dune-microstructure.cc
index 8b4e0a04611172da523a76d2532678f994d9862a..80d292950162b649d883a1703caa84938441d6e1 100644
--- a/src/dune-microstructure.cc
+++ b/src/dune-microstructure.cc
@@ -990,7 +990,11 @@ int main(int argc, char *argv[])
     // Print Options 
     bool print_debug = parameterSet.get<bool>("print_debug", false);
     
+    
     bool write_materialFunctions = parameterSet.get<bool>("write_materialFunctions", false);
+    bool write_prestrainFunctions  = parameterSet.get<bool>("write_prestrainFunctions", false);
+    
+    
     bool write_corrector_phi1 = parameterSet.get<bool>("write_corrector_phi1", false);
     bool write_corrector_phi2 = parameterSet.get<bool>("write_corrector_phi2", false);
     bool write_corrector_phi3 = parameterSet.get<bool>("write_corrector_phi3", false);
@@ -1550,7 +1554,7 @@ int main(int argc, char *argv[])
 
   
   
-   if (write_materialFunctions )
+   if (write_materialFunctions)
    {
     
         using VTKGridType = YaspGrid<dim, EquidistantOffsetCoordinates<double, dim> >;
@@ -1595,10 +1599,24 @@ int main(int argc, char *argv[])
         
         MaterialVtkWriter.write("MaterialFunctions-level"+ std::to_string(level) );
         std::cout << "wrote data to file: MaterialFunctions-level" + std::to_string(level) << std::endl;  
-  }
+        
+   }
+  
+   if (write_prestrainFunctions)
+   {
+    using VTKGridType = YaspGrid<dim, EquidistantOffsetCoordinates<double, dim> >;
+    VTKGridType grid_VTK({-1.0/2.0, -1.0/2.0, -1.0/2.0},{1.0/2.0, 1.0/2.0, 1.0/2.0},{80,80,80});
+    using GridViewVTK = VTKGridType::LeafGridView;
+    const GridViewVTK gridView_VTK = grid_VTK.leafGridView();
+   
+    FTKfillerContainer<dim> VTKFiller;
+    VTKFiller.vtkPrestrainNorm(gridView_VTK, B_Term, "PrestrainBNorm");
+    
+    // WORKS Too 
+    VTKFiller.vtkProblemCell(gridView_VTK, B_Term, muLocal,"VTKProblemCell");;
+   }
   
   
-
   levelCounter++; 
   } // Level-Loop End