cantera/interfaces/matlab/toolbox/1D/@Stack/solution.m

34 lines
1 KiB
Matlab

function x = solution(s, domain, component)
% SOLUTION Get a solution component in one domain.
% x = solution(s, domain, component)
% :param s:
% Instance of class :mat:func:`Stack`
% :param domain:
% String, name of the domain from which the solution is desired
% :param component:
% String, component for which the solution is desired. If omitted,
% solutions for all of the components will be returned in an
% :mat:func:`nPoints` x :mat:func:`nComponents` array.
% :return:
% Either an :mat:func:`nPoints` x 1 vector, or
% :mat:func:`nPoints` x :mat:func:`nComponents` array.
%
idom = domainIndex(s, domain);
d = s.domains(idom);
np = nPoints(d);
if nargin == 3
icomp = componentIndex(d, component);
x = zeros(1, np);
for n = 1:np
x(n) = stack_methods(s.stack_id, 30, idom, icomp, n);
end
else
nc = nComponents(d);
x = zeros(nc, np);
for m = 1:nc
for n = 1:np
x(m,n) = stack_methods(s.stack_id, 30, idom, m, n);
end
end
end