Bypass reading and manipulation of XML files within Matlab, so that XML, CTI, and YAML input files can all be used.
64 lines
2.6 KiB
Matlab
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);
|