cantera/interfaces/matlab/toolbox/@Solution/Solution.m
Ray Speth 901ec2f12c [Matlab] Construct objects directly from input file names
Bypass reading and manipulation of XML files within Matlab, so that XML, CTI,
and YAML input files can all be used.
2019-06-25 22:30:59 -04:00

64 lines
2.6 KiB
Matlab

function s = Solution(src, id, trans)
% SOLUTION Solution class constructor.
% s = Solution(src, id, trans)
% Class :mat:func:`Solution` represents solutions of multiple species. A
% solution is defined as a mixture of two or more constituents
% (species) that are completely mixed on molecular length
% scales. The macroscopic intensive thermodynamic state of a
% solution is specified by two thermodynamic properties (for
% example, the temperature and pressure), and the relative amounts
% of each species, which may be given as mole fractions or mass
% fractions. ::
%
% >> s = Solution('input.xml'[, phase_name[, transport_model]])
%
% constructs a Solution object from a specification contained in
% file ``input.xml``. Optionally, the name of the phase to be imported
% can be specified with ``phase_name``. If a
% Transport model is included in ``input.xml``, it will be included
% in the Solution instance with the default transport modeling as set
% in the input file. To specify the transport modeling, set the input
% argument ``trans`` to one of ``'default'``, ``'Mix'``, or ``'Multi'``.
% In this case, the phase name must be specified as well. Alternatively,
% change the ``transport`` node in the CTML file, or ``transport``
% property inthe CTI file before loading the phase. The transport
% modeling cannot be changed once the phase is loaded.
%
% Class :mat:func:`Solution` derives from three more basic classes, and most of
% its methods are inherited from these classes. These are:
%
% * class :mat:func:`ThermoPhase` - composition information and thermodynamic properties
% * class :mat:func:`Kinetics` - homogeneous kinetics
% * class :mat:func:`Transport` - transport properties
%
% See also: :mat:func:`ThermoPhase`, :mat:func:`Kinetics`, :mat:func:`Transport`
%
% :param src:
% Input string of CTI or CTML file name.
% :param id:
% Optional unless ``trans`` is specified. ID of the phase to
% import as specified in the CTML or CTI file.
% :param trans:
% String, transport modeling. Possible values are ``'default'``,
% ``'Mix'``, or ``'Multi'``. If not specified, ``'default'`` is used.
% :return:
% Instance of class :mat:func:`Solution`
%
if nargin == 1
id = '-';
end
t = ThermoPhase(src, id);
k = Kinetics(t, src, id);
s.kin = k;
s.th = t;
if nargin == 3
if strcmp(trans, 'default') || strcmp(trans, 'Mix') || strcmp(trans, 'Multi')
tr = Transport(t, trans, 0);
else
error('Unknown transport modeling specified.')
end
else
tr = Transport(t, 'default', 0);
end
s.tr = tr;
s = class(s, 'Solution', t, k, tr);