function xnew = r_adapt(x,eta_elem)
N = length(x);
w = abs(eta_elem) + 1e-10; %error based monitor function
s = zeros(N,1); 
for i = 2:N
    s(i) = s(i-1) + w(i-1); %cumulative sum  % LP
    % s(i) = s(i-1) + w(i); %cumulative sum  % GH
end
s = s / s(end);   % normalize to [0,1]
s_new = linspace(0,1,N)';
xnew = interp1(s, x, s_new, 'linear');
end
