From: Rafael V. <va...@im...> - 2011-10-13 08:28:30
|
Hi Alexis, I've tried to do the same modifying the file ex_laplace_iso_ring (see below). The oscillations appear around degree 17, that is much higher than what you usually do in IGA. The first thing I must say is that this shouldn't be considered k-refinement: you have only one element, and the continuity is not playing any role. What you are doing is some kind of spectral method with NURBS. You can try to read some works on spectral methods (I'm not an expert) and check if they need some special technique to obtain the right convergence, maybe a particular quadrature rule. But I'm also thinking that the error may come from the NURBS toolbox. I know that some functions in the toolbox will add rounding errors to the computation of the shape functions, and I guess that these errors become much higher for high degrees. Since I've always worked with degree lower than 8, I never had any problem with this. You can check if the problem is coming from there. Regards, Rafa The problem_data is taken from ex_laplace_iso_ring. The postprocessing part is removed. The method data and the call to the solver are like this method_data.nsub = [1 1]; % In this example, this is only one element! for ii = 2:20 method_data.degree = [ii ii]; method_data.regularity = [ii-1 ii-1]; method_data.nquad = [ii+1 ii+1]; [geometry, msh, space, u] = solve_laplace_2d_iso (problem_data, method_data); [error_h1(ii), error_l2(ii)] = ... sp_h1_error (space, msh, u, problem_data.uex, problem_data.graduex); ndofs(ii) = space.ndof; end loglog(ndofs, error_l2); |