|  | @@ -2804,51 +2804,10 @@ template <class Real, Integer ORDER=10> class Stellarator {
 | 
	
		
			
				|  |  |        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
	
		
			
				|  |  |        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      //Real alpha, beta;
 | 
	
		
			
				|  |  | -      //Vector<ElemBasis> sigma;
 | 
	
		
			
				|  |  | -      //compute_invA(sigma, alpha, beta, flux_tor, flux_pol);
 | 
	
		
			
				|  |  | -      //Vector<ElemBasis> B = compute_B(sigma, alpha, beta);
 | 
	
		
			
				|  |  | -      //{ // Write VTU
 | 
	
		
			
				|  |  | -      //  VTUData vtu;
 | 
	
		
			
				|  |  | -      //  vtu.AddElems(S.GetElemList(), sigma, ORDER);
 | 
	
		
			
				|  |  | -      //  vtu.WriteVTK("sigma", comm);
 | 
	
		
			
				|  |  | -      //}
 | 
	
		
			
				|  |  | -      //{ // Write VTU
 | 
	
		
			
				|  |  | -      //  VTUData vtu;
 | 
	
		
			
				|  |  | -      //  vtu.AddElems(S.GetElemList(), B, ORDER);
 | 
	
		
			
				|  |  | -      //  vtu.WriteVTK("B", comm);
 | 
	
		
			
				|  |  | -      //}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |        Real alpha, beta;
 | 
	
		
			
				|  |  |        Vector<ElemBasis> sigma;
 | 
	
		
			
				|  |  |        compute_invA(sigma, alpha, beta, flux_tor, flux_pol);
 | 
	
		
			
				|  |  | -      Vector<ElemBasis> B;
 | 
	
		
			
				|  |  | -      { // Set B
 | 
	
		
			
				|  |  | -        Vector<ElemBasis> normal, area_elem;
 | 
	
		
			
				|  |  | -        compute_norm_area_elem(S, normal, area_elem);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        auto compute_B0 = [&S, &Jp](const Real alpha) {
 | 
	
		
			
				|  |  | -          Vector<ElemBasis> B0;
 | 
	
		
			
				|  |  | -          S.quadrature_BS.Eval(B0, S.GetElemList(), Jp, S.BiotSavart);
 | 
	
		
			
				|  |  | -          return B0*alpha;
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -        auto compute_half_n_plus_dG = [&S, &normal](const Vector<ElemBasis>& sigma) { // B = n sigma/2 + dG[sigma]
 | 
	
		
			
				|  |  | -          const Long Nelem = S.NElem();
 | 
	
		
			
				|  |  | -          const Long Nnodes = ElemBasis::Size();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          Vector<ElemBasis> B;
 | 
	
		
			
				|  |  | -          S.quadrature_FxdU.Eval(B, S.GetElemList(), sigma, S.Laplace_FxdU);
 | 
	
		
			
				|  |  | -          for (Long i = 0; i < Nelem; i++) {
 | 
	
		
			
				|  |  | -            for (Long j = 0; j < Nnodes; j++) {
 | 
	
		
			
				|  |  | -              for (Long k = 0; k < COORD_DIM; k++) {
 | 
	
		
			
				|  |  | -                B[i*COORD_DIM+k][j] -= 0.5*sigma[i][j]*normal[i*COORD_DIM+k][j];
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -          return B;
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -        B = compute_half_n_plus_dG(sigma) + compute_B0(alpha);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +      Vector<ElemBasis> B = compute_B(sigma, alpha, beta);
 | 
	
		
			
				|  |  |        { // Write VTU
 | 
	
		
			
				|  |  |          VTUData vtu;
 | 
	
		
			
				|  |  |          vtu.AddElems(S.GetElemList(), sigma, ORDER);
 |