1 function reaction = reaction(model, X, Y, U)
2 %
function reaction = reaction(model, X, Y, U)
4 %
function computing the reaction term of a advection-diffusion-reaction
5 % problem, e.g. in
case of a given geometry_transformation.
8 if isequal(model.geometry_transformation,
'spline')
9 p_mu = spline_select(model);
10 [ breaks, coeffs, pieces, order ] = unmkpp(p_mu);
11 p_mu_d = mkpp(breaks, coeffs(:,1:order-1) .* repmat((order-1:-1:1),pieces,1));
12 [ breaks, coeffs, pieces, order ] = unmkpp(p_mu_d);
14 p_mu_dd = mkpp(breaks, zeros(size(coeffs)));
16 p_mu_dd = mkpp(breaks, coeffs(:,1:order-1) .* repmat((order-1:-1:1),pieces,1));
19 div = 1 + ppval(p_mu, X);
20 rec = 2 .* (ppval(p_mu_d,X) ./ div).^2 - ppval(p_mu_dd, X) ./ div;
22 reaction = model.k .* rec .* U;
25 if isequal(model.name_flux, 'transport')
26 reaction = model.transport_source .* U;