 function x = precSSOR1(PRE, rhs) 
%% function rhs = precLDU(PRE, rhs) 
%% ssor or other LDU preconditioning operation
%% PRE = struct for preconditioner
%%-------------------------------------------------
   om = PRE.om;
   d2 = PRE.d2;
   L  = PRE.L;
   U  = PRE.U;
   iter = PRE.iter;
   %%
   x = zeros(length(d2),1);
   for i=1:iter
     x = L \ (d2 .* x - U*x + om*rhs);
     x = U \ (d2 .* x - L*x + om*rhs); 
   end
