         gp(gp),
         w3d_( dg::create::w3d(g)), v3d_(dg::create::v3d(g)),
         temp( g.size()),
-        pupil_( dg::evaluate( solovev::Pupil( gp), g))
+//         pupil_( dg::evaluate( solovev::Pupil( gp), g))
+        pupil_( dg::evaluate( solovev::TanhDampingProf(gp ), g))
     {
         LaplacianM_perp = dg::create::laplacianM_perp( g, dg::normed, dg::symmetric);
-        //LaplacianM_para = dg::create::laplacianM_parallel( g, dg::PER);
+//         LaplacianM_para = dg::create::laplacianM_parallel( g, dg::PER);
     }
     void operator()( const std::vector<container>& x, std::vector<container>& y)
     {

// 
//     dg::blas1::axpby( -p.c/p.mu[0]/p.eps_hat, omega, 1., yp[2]);
//     dg::blas1::axpby( -p.c/p.mu[1]/p.eps_hat, chi, 1., yp[3]);
    //add parallel diffusion
    for( unsigned i=0; i<4; i++)
    {
        dz(dzy[i], omega);
        dg::blas1::axpby( p.nu_parallel, omega, 1., yp[i]);
    }
    //add particle source
    for( unsigned i=0; i<2; i++)
    {
        dg::blas1::pointwiseDivide( source, expy[i], omega);
        dg::blas1::axpby( 1., omega, 1, yp[i]  );
    }
    //cut boundary terms 
    for( unsigned i=0; i<2; i++)
    {
        //dg::blas1::pointwiseDivide( damping, expy[i], omega); 
        //dg::blas1::axpby( -1., omega, 1., yp[i]);
        //dg::blas1::pointwiseDot( damping, y[i], omega); 
        //dg::blas1::axpby( -1., omega, 1., yp[i]);
    }
    for( unsigned i=0; i<4; i++)
    {
        dg::blas1::pointwiseDot( damping, yp[i], yp[i]); 
        dg::blas1::pointwiseDot( iris, yp[i], yp[i]);
    }
}

template< class container>
void Feltor< container>::curve( const container& src, container& target)
{
    dg::blas2::gemv( arakawa.dx(), src, target);
    dg::blas2::gemv( arakawa.dy(), src, omega);
    dg::blas1::pointwiseDot( curvR, target, target);
    dg::blas1::pointwiseDot( curvZ, omega, omega);
    dg::blas1::axpby( 1., omega, 1., target );
}

template< class container>


};

template< class container>
Feltor< container>::Feltor( const dg::Grid3d<value_type>& g, Parameters p, solovev::GeomParameters gp): 
    chi( g.size(), 0.), omega(chi),
