 #include "orthogonal.h"
 #include "dg/ds.h"
 
-//typedef dg::FieldAligned< solovev::ConformalRingGrid3d<dg::DVec> , dg::IDMatrix, dg::DVec> DFA;
-typedef dg::FieldAligned< solovev::OrthogonalRingGrid3d<dg::DVec> , dg::IDMatrix, dg::DVec> DFA;
+//typedef dg::FieldAligned< conformal::RingGrid3d<dg::DVec> , dg::IDMatrix, dg::DVec> DFA;
+typedef dg::FieldAligned< orthogonal::RingGrid3d<dg::DVec> , dg::IDMatrix, dg::DVec> DFA;
 
 int main( )
 {

        //Nzn = unsigned(Nz*pow(2,i));
        //Nxn = (unsigned)ceil(Nx*pow(2,(double)(i*2./n)));
        //Nyn = (unsigned)ceil(Ny*pow(2,(double)(i*2./n)));
        //solovev::ConformalRingGrid3d<dg::DVec> g3d(gp, psi_0, psi_1, n, Nxn, Nyn,Nzn, dg::DIR);
        //solovev::ConformalRingGrid2d<dg::DVec> g2d = g3d.perp_grid();
        solovev::OrthogonalRingGrid3d<dg::DVec> g3d(gp, psi_0, psi_1, n, Nxn, Nyn,Nzn, dg::DIR);
        solovev::OrthogonalRingGrid2d<dg::DVec> g2d = g3d.perp_grid();
        g3d.display();
        //g2d.display();
        std::cout << "NR = " << Nxn << std::endl;

        dg::DMatrix dx = dg::create::dx( g3d);
        dg::DMatrix dy = dg::create::dy( g3d);
        dg::DMatrix dz = dg::create::dz( g3d);
        dg::HVec hbx, hby;
        dg::blas1::transfer( function, hbx);
        dg::blas1::transfer( function, hby);
        dg::geo::pushForwardPerp( bhatR, bhatZ, hbx, hby, g3d);
        const dg::DVec bx(hbx), by(hby);
        dg::blas2::symv( dx, lnB, derivative);
