Skip to content
Snippets Groups Projects
Commit e555f2e5 authored by Nicola Vigano's avatar Nicola Vigano
Browse files

Grain-ODF-solvers: fixed preconditioner for ls-l1 solver

parent 1d4d9b62
No related branches found
No related tags found
No related merge requests found
......@@ -20,7 +20,7 @@ classdef GtGrainODFwSolver < handle
shape_functions_type = 'none';
shape_functions = [];
num_iter = 50;
num_iter = 250;
verbose = false;
......@@ -407,7 +407,7 @@ classdef GtGrainODFwSolver < handle
p = gtMathsGetSameSizeZeros(self.S__ws);
q = gtMathsGetSameSizeZeros(self.St_ws);
qo = gtMathsGetSameSizeOnes(self.St_ws);
q1 = gtMathsGetSameSizeOnes(self.St_ws);
x = gtMathsGetSameSizeZeros(self.St_ws);
res_norm_0 = gtMathsNorm_l2(self.sino);
......@@ -424,10 +424,10 @@ classdef GtGrainODFwSolver < handle
p = (p + self.fw(self.fp(xe) - self.sino)) ./ (1 + self.S__ws);
qn = q + xe;
q = lambda .* (qn ./ max(qo, abs(qn)));
q = (qn ./ max(q1, abs(qn)));
xo = x;
x = x - (self.bp(p) + q) .* self.tau_ws;
x = x - (self.bp(p) + lambda .* q) .* self.tau_ws;
x(x < 0) = 0;
xe = x + (x - xo);
......@@ -451,7 +451,7 @@ classdef GtGrainODFwSolver < handle
residuals = zeros(self.num_iter, 1);
p = gtMathsGetSameSizeZeros(self.S__ws);
po = gtMathsGetSameSizeOnes(self.S__ws);
p1 = gtMathsGetSameSizeOnes(self.S__ws);
x = gtMathsGetSameSizeZeros(self.St_ws);
res_norm_0 = gtMathsNorm_l2(rescaled_sino);
......@@ -466,7 +466,7 @@ classdef GtGrainODFwSolver < handle
current_time, current_time/(ii - 1)*self.num_iter - current_time);
pn = p + self.fw(self.fp(xe) - rescaled_sino);
p = pn ./ max(po, abs(pn));
p = pn ./ max(p1, abs(pn));
xo = x;
x = x - self.bw(self.bp(p));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment