     std::vector<double> multi_ev(stages);
     for(unsigned u=0; u<stages; u++)
     {
-        multi_pol[u].construct( multigrid.grid(u), dg::normed, dg::centered, 10*jfactor);
+        multi_pol[u].construct( multigrid.grid(u), dg::not_normed, dg::centered, 10*jfactor);
         multi_eve[u].construct( multi_chi[u]);
         multi_pol[u].set_chi( multi_chi[u]);
         counter = multi_eve[u]( multi_pol[u], multi_x[u], multi_b[u],
             multi_ev[u], eps_ev);
-        multi_pol[u].construct( multigrid.grid(u), dg::not_normed, dg::centered, 10*jfactor);
-        multi_pol[u].set_chi( multi_chi[u]);
+        w2d = dg::create::weights( multigrid.grid(u));
+        multi_ev[u]/=hxhy;
         std::cout << "Eigenvalue estimate eve: "<<multi_ev[u]<<"\n";
+        hxhy*=4;
     }
     //////////////////////////////setup and write netcdf//////////////////
     err = nc_create( "multigrid.nc", NC_NETCDF4|NC_CLOBBER, &ncid);

double sol(double x, double y)  { return sin( x)*sin(y);}
double der(double x, double y)  { return cos( x)*sin(y);}


int main()
{

        std::cout << " At iteration "<<i<<"\n";
        std::cout << " Error of Multigrid iterations "<<err<<"\n";
    }
    t.toc();
    std::cout << "Took "<<t.diff()<<"s\n";
    x = dg::evaluate( initial, grid);
    t.tic();
    multigrid.direct_solve(multi_pol, x, b, eps);
    t.toc();
    const double norm = dg::blas2::dot( w2d, solution);
    dg::DVec error( solution);
    dg::blas1::axpby( 1.,x,-1., solution, error);
    double err = dg::blas2::dot( w2d, error);
    err = sqrt( err/norm);
    std::cout << " Error of nested iterations "<<err<<"\n";
    std::cout << "Took "<<t.diff()<<"s\n";

    int varID;
    err = nc_def_var( ncid, "x_ana", NC_DOUBLE, 2, &dim3d[1], &varID);
