Combined calllib and error handling into one callct command

This commit is contained in:
ssun30 2022-08-16 13:47:38 -04:00 committed by Ray Speth
parent 61b7602d5c
commit 94f556cb1d
18 changed files with 281 additions and 265 deletions

View File

@ -39,15 +39,15 @@ classdef Domain1D < handle
if nargin == 1
if strcmp(a, 'Inlet1D')
d.domainID = calllib(ct, 'inlet_new');
d.domainID = callct('inlet_new');
elseif strcmp(a, 'Surf1D')
d.domainID = calllib(ct, 'surf_new');
d.domainID = callct('surf_new');
elseif strcmp(a, 'Symm1D')
d.domainID = calllib(ct, 'symm_new');
d.domainID = callct('symm_new');
elseif strcmp(a, 'Outlet1D')
d.domainID = calllib(ct, 'outlet_new');
d.domainID = callct('outlet_new');
elseif strcmp(a, 'OutletRes')
d.domainID = calllib(ct, 'outletres_new');
d.domainID = callct('outletres_new');
else
error('Not enough arguments for that job number');
end
@ -55,15 +55,15 @@ classdef Domain1D < handle
% a stagnation flow
if strcmp(a, 'StagnationFlow')
if isa(b, 'Solution')
d.domainID = calllib(ct, 'stflow_new', ...
d.domainID = callct('stflow_new', ...
b.tpID, b.kinID, b.trID, 1);
else
error('Wrong argument type. Expecting instance of class Solution.');
end
elseif strcmp(a, 'ReactingSurface')
if isa(b, 'Interface')
d.domainID = calllib(ct, 'reactingsurf_new');
calllib(ct, 'reactingsurf_setkineticsmgr', ...
d.domainID = callct('reactingsurf_new');
callct('reactingsurf_setkineticsmgr', ...
d.domainID, b.kinID);
else
error('Wrong argument type. Expecting instance of class Interface.');
@ -78,7 +78,7 @@ classdef Domain1D < handle
flowtype = 1;
else flowtype = 2;
end
d.domainID = calllib(ct, 'stflow_new', ...
d.domainID = callct('stflow_new', ...
b.tpID, b.kinID, b.trID, flowtype);
else
error('Wrong argument type. Expecting instance of class Solution.');
@ -104,7 +104,7 @@ classdef Domain1D < handle
% Instance of class :mat:func:`Domain1D` (or another
% object that derives from Domain1D)
%
calllib(ct, 'domain_del', d.domainID);
callct('domain_del', d.domainID);
end
function d = disableEnergy(d)
@ -117,7 +117,7 @@ classdef Domain1D < handle
%
disp(' ');
disp('Disabling the energy equation...');
calllib(ct, 'stflow_solveEnergyEqn', d.domainID, 0);
callct('stflow_solveEnergyEqn', d.domainID, 0);
end
function d = enableEnergy(d)
@ -130,7 +130,7 @@ classdef Domain1D < handle
%
disp(' ');
disp('Enabling the energy equation...');
calllib(ct, 'stflow_solveEnergyEqn', d.domainID, 1);
callct('stflow_solveEnergyEqn', d.domainID, 1);
end
function d = disableSoret(d)
@ -143,7 +143,7 @@ classdef Domain1D < handle
%
disp(' ');
disp('Disabling the Soret effect...');
calllib(ct, 'stflow_enableSoret', d.domainID, 0);
callct('stflow_enableSoret', d.domainID, 0);
end
function d = enableSoret(d)
@ -156,7 +156,7 @@ classdef Domain1D < handle
%
disp(' ');
disp('Disabling the Soret effect...');
calllib(ct, 'stflow_enableSoret', d.domainID, 1);
callct('stflow_enableSoret', d.domainID, 1);
end
%% Domain Get Methods
@ -173,8 +173,8 @@ classdef Domain1D < handle
% 1x2 Vector of the lower and upper bounds.
%
n = d.componentIndex(component);
lower = calllib(ct, 'domain_lowerBound', d.domainID, n);
upper = calllib(ct, 'domain_upperBound', d.domainID, n);
lower = callct('domain_lowerBound', d.domainID, n);
upper = callct('domain_upperBound', d.domainID, n);
b = [lower, upper];
end
@ -194,7 +194,7 @@ classdef Domain1D < handle
if isa(name, 'double')
n = name;
else
n = calllib(ct, 'domain_componentIndex', ...
n = callct('domain_componentIndex', ...
d.domainID, name);
if n >= 0
n = n+1;
@ -222,11 +222,11 @@ classdef Domain1D < handle
s = cell(m);
for i = 1:n
id = index(i)-1;
buflen = calllib(ct, 'domain_componentName', ...
buflen = callct('domain_componentName', ...
d.domainID, id, 0, 0);
if buflen > 0
aa = char(zeros(1, buflen));
[out_buf, aa] = calllib(ct, 'domain_componentName', ...
[out_buf, aa] = callct('domain_componentName', ...
d.domainID, id, buflen, aa);
s{i} = aa;
end
@ -244,7 +244,7 @@ classdef Domain1D < handle
% This function returns an integer flag denoting the location
% of the domain, beginning with 1 at the left.
%
i = calllib(ct, 'domain_index', d.domainID);
i = callct('domain_index', d.domainID);
if i >= 0
i = i + 1;
end
@ -264,7 +264,7 @@ classdef Domain1D < handle
% This function returns an integer flag denoting the domain
% type.
%
i = calllib(ct, 'domain_type', d.domainID);
i = callct('domain_type', d.domainID);
end
function zz = gridPoints(d, n)
@ -283,13 +283,13 @@ classdef Domain1D < handle
np = d.nPoints;
zz = zeros(1, np);
for i = 1:np
zz(i) = calllib(ct, 'domain_grid', d.domainID, i-1);
zz(i) = callct('domain_grid', d.domainID, i-1);
end
else
m = length(n);
zz = zeros(1, m);
for i = 1:m
zz(i) = calllib(ct, 'domain_grid', d.domainID, n(i)-1);
zz(i) = callct('domain_grid', d.domainID, n(i)-1);
end
end
end
@ -358,7 +358,7 @@ classdef Domain1D < handle
% :return:
% The mass flux in the domain.
%
mdot = calllib(ct, 'bdry_mdot', d.domainID);
mdot = callct('bdry_mdot', d.domainID);
end
function y = massFraction(d, k)
@ -382,7 +382,7 @@ classdef Domain1D < handle
end
if d.isInlet
y = calllib(ct, 'bdry_massFraction', d.domainID, k-1);
y = callct('bdry_massFraction', d.domainID, k-1);
else error('Input domain must be an inlet');
end
end
@ -397,7 +397,7 @@ classdef Domain1D < handle
% :return:
% Number of variables at each grid point
%
n = calllib(ct, 'domain_nComponents', d.domainID);
n = callct('domain_nComponents', d.domainID);
end
function n = nPoints(d)
@ -410,7 +410,7 @@ classdef Domain1D < handle
% :return:
% Integer number of grid points.
%
n = calllib(ct, 'domain_nPoints', d.domainID);
n = callct('domain_nPoints', d.domainID);
end
function tol = tolerances(d, component)
@ -426,8 +426,8 @@ classdef Domain1D < handle
% 1x2 Vector of the relative and absolute error tolerances.
n = d.componentIndex(component);
rerr = calllib(ct, 'domain_rtol', d.domainID, n);
aerr = calllib(ct, 'domain_atol', d.domainID, n);
rerr = callct('domain_rtol', d.domainID, n);
aerr = callct('domain_atol', d.domainID, n);
tol = [rerr, aerr];
end
@ -441,7 +441,7 @@ classdef Domain1D < handle
% :return:
% Temperature. Units: K
%
temperature = calllib(ct, 'bdry_temperature', d.domainID);
temperature = callct('bdry_temperature', d.domainID);
end
function pressure = get.P(d)
@ -472,7 +472,7 @@ classdef Domain1D < handle
if t <= 0
error('The temperature must be positive');
end
calllib(ct, 'bdry_setTemperature', d.domainID, t);
callct('bdry_setTemperature', d.domainID, t);
end
function set.P(d, p)
@ -488,7 +488,7 @@ classdef Domain1D < handle
if p <= 0
error('The pressure must be positive');
end
calllib(ct, 'stflow_setPressure', d.domainID, p);
callct('stflow_setPressure', d.domainID, p);
end
function setBounds(d, component, lower, upper)
@ -507,7 +507,7 @@ classdef Domain1D < handle
%
n = d.componentIndex(component);
calllib(ct, 'domain_setBounds', d.domainID, n-1, lower, upper);
callct('domain_setBounds', d.domainID, n-1, lower, upper);
end
function setCoverageEqs(d, onoff)
@ -540,7 +540,7 @@ classdef Domain1D < handle
elseif isa(onoff, 'numeric')
ion = onoff;
end
calllib(ct, 'reactingsurf_enableCoverageEqs', d.domainID, ion);
callct('reactingsurf_enableCoverageEqs', d.domainID, ion);
end
function setFixedTempProfile(d, profile)
@ -562,11 +562,11 @@ classdef Domain1D < handle
sz = size(profile);
if sz(1) == 2
l = length(profile(1, :));
calllib(ct, 'stflow_setFixedTempProfile', d.domainID, ...
callct('stflow_setFixedTempProfile', d.domainID, ...
l, profile(1, :), l, profile(2, :));
elseif sz(2) == 2
l = length(profile(:, 1));
calllib(ct, 'stflow_setFixedTempProfile', d.domainID, ...
callct('stflow_setFixedTempProfile', d.domainID, ...
l, profile(:, 1), l, profile(:, 2));
else error('Wrong temperature profile array shape.');
end
@ -582,7 +582,7 @@ classdef Domain1D < handle
% :param id:
% String ID to assign
%
calllib(ct, 'domain_setID', d.domainID, id);
callct('domain_setID', d.domainID, id);
end
function setMdot(d, mdot)
@ -595,7 +595,7 @@ classdef Domain1D < handle
% :param mdot:
% Mass flow rate
%
calllib(ct, 'bdry_setMdot', d.domainID, mdot);
callct('bdry_setMdot', d.domainID, mdot);
end
function setMoleFractions(d, x)
@ -609,7 +609,7 @@ classdef Domain1D < handle
% String specifying the species and mole fractions in
% the format ``'SPEC:X,SPEC2:X2'``.
%
calllib(ct, 'bdry_setMoleFractions', d.domainID, x);
callct('bdry_setMoleFractions', d.domainID, x);
end
function setProfileD(d, n, p)
@ -655,19 +655,19 @@ classdef Domain1D < handle
if strcmp(component, 'default')
nc = d.nComponents;
for ii = 1:nc
calllib(ct, 'domain_setSteadyTolerances', ...
callct('domain_setSteadyTolerances', ...
d.domainID, ii, rtol, atol);
end
elseif iscell(component)
nc = length(component);
for ii = 1:nc
n = d.componentIndex(component{ii});
calllib(ct, 'domain_setSteadyTolerances', ...
callct('domain_setSteadyTolerances', ...
d.domainID, n, rtol, atol);
end
else
n = d.componentIndex(component);
calllib(ct, 'domain_setSteadyTolerances', ...
callct('domain_setSteadyTolerances', ...
d.domainID, ii, rtol, atol);
end
end
@ -691,19 +691,19 @@ classdef Domain1D < handle
if strcmp(component, 'default')
nc = d.nComponents;
for ii = 1:nc
calllib(ct, 'domain_setTransientTolerances', ...
callct('domain_setTransientTolerances', ...
d.domainID, ii, rtol, atol);
end
elseif iscell(component)
nc = length(component);
for ii = 1:nc
n = d.componentIndex(component{ii});
calllib(ct, 'domain_setTransientTolerances', ...
callct('domain_setTransientTolerances', ...
d.domainID, n, rtol, atol);
end
else
n = d.componentIndex(component);
calllib(ct, 'domain_setTransientTolerances', ...
callct('domain_setTransientTolerances', ...
d.domainID, ii, rtol, atol);
end
end
@ -717,7 +717,7 @@ classdef Domain1D < handle
% ID of the solution object for which transport properties
% are calculated.
%
calllib(ct, 'stflow_setTransport', d.domainID, itr);
callct('stflow_setTransport', d.domainID, itr);
end
function setupGrid(d, grid)
@ -729,7 +729,7 @@ classdef Domain1D < handle
% Instance of class :mat:func:`Domain1D`
% :param grid:
%
calllib(ct, 'domain_setupGrid', d.domainID, numel(grid), grid);
callct('domain_setupGrid', d.domainID, numel(grid), grid);
end
end

View File

@ -34,7 +34,7 @@ classdef Stack < handle
for n=1:nd
ids(n) = domains(n).domainID;
end
s.stID = calllib(ct, 'sim1D_new', nd, ids);
s.stID = callct('sim1D_new', nd, ids);
else
help(Stack);
error('Wrong number of :parameters.');
@ -54,7 +54,7 @@ classdef Stack < handle
% :param s:
% Instance of class :mat:func:`Stack`
%
calllib(ct, 'sim1D_del', s.stID);
callct('sim1D_del', s.stID);
end
function display(s, fname)
@ -70,7 +70,7 @@ classdef Stack < handle
if nargin == 1
fname = '-';
end
calllib(ct, 'sim1D_showSolution', s.stID, fname);
callct('sim1D_showSolution', s.stID, fname);
end
%% Stack Methods
@ -91,7 +91,7 @@ classdef Stack < handle
if isa(name, 'double')
n = name;
else
n = calllib(ct, 'sim1D_domainIndex', s.stID, name);
n = callct('sim1D_domainIndex', s.stID, name);
if n >= 0
n = n+1;
else
@ -103,7 +103,7 @@ classdef Stack < handle
function getInitialSoln(s)
% Get the initial solution.
calllib(ct, 'sim1D_getInitialSoln', s.stID);
callct('sim1D_getInitialSoln', s.stID);
end
function z = grid(s, name)
@ -173,10 +173,10 @@ classdef Stack < handle
np = d.nPoints;
r = zeros(nc, np);
calllib(ct, 'sim1D_eval', s.stID, rdt, count);
callct('sim1D_eval', s.stID, rdt, count);
for m = 1:nc
for n = 1:np
r(m, n) = calllib(ct, 'sim1D_workValue', ...
r(m, n) = callct('sim1D_workValue', ...
s.stID, idom - 1, m - 1, n - 1);
end
end
@ -198,7 +198,7 @@ classdef Stack < handle
% :param id:
% ID of the element that should be restored
%
calllib(ct, 'sim1D_restore', s.stID, fname, id)
callct('sim1D_restore', s.stID, fname, id)
end
function saveSoln(s, fname, id, desc)
@ -229,7 +229,7 @@ classdef Stack < handle
elseif nargin == 3
desc = '--';
end
calllib(ct, 'sim1D_save', s.stID, fname, id, desc);
callct('sim1D_save', s.stID, fname, id, desc);
end
function setFixedTemperature(s, T)
@ -245,7 +245,7 @@ classdef Stack < handle
if T <= 0
error('temperature must be positive');
end
calllib(ct, 'sim1D_setFixedTemperature', s.stID, T);
callct('sim1D_setFixedTemperature', s.stID, T);
end
function setFlatProfile(s, domain, comp, v)
@ -263,7 +263,7 @@ classdef Stack < handle
% Double value to be set.
%
calllib(ct, 'sim1D_setFlatProfile', s.stID, ...
callct('sim1D_setFlatProfile', s.stID, ...
domain - 1, comp - 1, v);
end
@ -278,7 +278,7 @@ classdef Stack < handle
% Double minimum grid spacing.
%
calllib(ct, 'sim1D_setGridMin', s.stID, domain-1, gridmin);
callct('sim1D_setGridMin', s.stID, domain-1, gridmin);
end
function setMaxJacAge(s, ss_age, ts_age)
@ -299,7 +299,7 @@ classdef Stack < handle
if nargin == 2
ts_age = ss_age;
end
calllib(ct, 'sim1D_setMaxJacAge', s.stID, ss_age, ts_age);
callct('sim1D_setMaxJacAge', s.stID, ss_age, ts_age);
end
function setProfile(s, name, comp, p)
@ -354,12 +354,12 @@ classdef Stack < handle
if sz(1) == np + 1;
for j = 1:np
ic = d.componentIndex(c{j});
calllib(ct, 'sim1D_setProfile', s.stID, ...
callct('sim1D_setProfile', s.stID, ...
n - 1, ic - 1, sz(1), p(1, :), sz(1), p(j+1, :));
end
elseif sz(2) == np + 1;
ic = d.componentIndex(c{j});
calllib(ct, 'sim1D_setProfile', s.stID, ...
callct('sim1D_setProfile', s.stID, ...
n - 1, ic - 1, sz(2), p(:, 1), sz(2), p(:, j+1));
else
error('Wrong profile shape.');
@ -400,7 +400,7 @@ classdef Stack < handle
if nargin < 6
prune = -0.1;
end
calllib(ct, 'sim1D_setRefineCriteria', s.stID, ...
callct('sim1D_setRefineCriteria', s.stID, ...
n - 1, ratio, slope, curve, prune);
end
@ -419,7 +419,7 @@ classdef Stack < handle
% attempted. If this failed, two time steps would be taken.
%
calllib(ct, 'sim1D_TimeStep', s.stID, ...
callct('sim1D_TimeStep', s.stID, ...
stepsize, length(steps), steps);
end
@ -450,7 +450,7 @@ classdef Stack < handle
% Value to be set.
%
calllib(ct, 'sim1D_setValue', s.stID, ...
callct('sim1D_setValue', s.stID, ...
n - 1, comp - 1, localPoints - 1, v);
end
@ -480,7 +480,7 @@ classdef Stack < handle
icomp = d.componentIndex(component);
x = zeros(1, np);
for n = 1:np
x(n) = calllib(ct, 'sim1D_value', s.stID, ...
x(n) = callct('sim1D_value', s.stID, ...
idom - 1, icomp - 1, n - 1);
end
else
@ -488,7 +488,7 @@ classdef Stack < handle
x = zeros(nc, np);
for m = 1:nc
for n = 1:np
x(m, n) = calllib(ct, 'sim1D_value', s.stID, ...
x(m, n) = callct('sim1D_value', s.stID, ...
idom - 1, m - 1, n - 1);
end
end
@ -510,7 +510,7 @@ classdef Stack < handle
% Integer, 1 to allow grid refinement, 0 to disallow.
%
calllib(ct, 'sim1D_solve', s.stID, loglevel, refineGrid);
callct('sim1D_solve', s.stID, loglevel, refineGrid);
end
function writeStats(s)
@ -526,7 +526,7 @@ classdef Stack < handle
% Instance of class :mat:func:`Stack`
%
calllib(ct, 'sim1D_writeStats', s.stID, 1);
callct('sim1D_writeStats', s.stID, 1);
end
end

View File

@ -63,7 +63,7 @@ classdef Interface < handle & ThermoPhase & Kinetics
nsp = s.nSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'surf_getCoverages', surfID, xx);
callct('surf_getCoverages', surfID, xx);
c = pt.Value;
end
@ -90,7 +90,7 @@ classdef Interface < handle & ThermoPhase & Kinetics
nsp = s.nSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'surf_getConcentrations', surfID, xx);
callct('surf_getConcentrations', surfID, xx);
c = pt.Value;
end
@ -125,14 +125,14 @@ classdef Interface < handle & ThermoPhase & Kinetics
sz = length(cov);
if sz == nsp
if ((m == nsp && n == 1) || (m == 1 & n == nsp))
calllib(ct, 'surf_setCoverages', surfID, cov, norm_flag);
callct('surf_setCoverages', surfID, cov, norm_flag);
else error('wrong size for coverage array');
end
else
error('wrong size for coverage array');
end
elseif isa(cov, 'char')
calllib(ct, 'surf_setCoveragesByName', surfID, cov);
callct('surf_setCoveragesByName', surfID, cov);
end
end
@ -146,7 +146,7 @@ classdef Interface < handle & ThermoPhase & Kinetics
% kmol/m for edge phases.
surfID = s.tpID;
calllib(ct, 'surf_setSiteDensity', surfID, d);
callct('surf_setSiteDensity', surfID, d);
end
end

View File

@ -43,7 +43,7 @@ classdef Kinetics < handle
end
end
end
kin.kinID = calllib(ct, 'kin_newFromFile', src, id, ...
kin.kinID = callct('kin_newFromFile', src, id, ...
iph, inb1, inb2, inb3, inb4);
end
@ -52,7 +52,7 @@ classdef Kinetics < handle
function kinClear(kin)
% Delete the kernel object
calllib(ct, 'kin_del', kin.kinID);
callct('kin_del', kin.kinID);
end
%% Get scalar attributes
@ -66,7 +66,7 @@ classdef Kinetics < handle
% :return:
% Multiplier of the rate of progress of reaction irxn.
n = calllib(ct, 'kin_multiplier', kin.kinID, irxn-1);
n = callct('kin_multiplier', kin.kinID, irxn-1);
end
function n = nReactions(kin)
@ -75,7 +75,7 @@ classdef Kinetics < handle
% :return:
% Integer number of reactions
n = calllib(ct, 'kin_nReactions', kin.kinID);
n = callct('kin_nReactions', kin.kinID);
end
function n = nTotalSpecies(kin)
@ -84,7 +84,7 @@ classdef Kinetics < handle
% :return:
% Integer total number of species.
n = calllib(ct, 'kin_nSpecies', kin.kinID);
n = callct('kin_nSpecies', kin.kinID);
end
function n = stoichReactant(kin, species, rxns)
@ -122,7 +122,7 @@ classdef Kinetics < handle
for k = krange
for i = irange
t = calllib(ct, 'kin_reactantStoichCoeff', ...
t = callct('kin_reactantStoichCoeff', ...
kin.kinID, k-1, i-1);
if t ~= 0.0
temp(k, i) = t;
@ -168,7 +168,7 @@ classdef Kinetics < handle
for k = krange
for i = irange
t = calllib(ct, 'kin_productStoichCoeff', ...
t = callct('kin_productStoichCoeff', ...
kin.kinID, k-1, i-1);
if t ~= 0.0
temp(k, i) = t;
@ -219,7 +219,7 @@ classdef Kinetics < handle
nsp = kin.nTotalSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getCreationRates', kin.kinID, nsp, pt);
callct('kin_getCreationRates', kin.kinID, nsp, pt);
cdot = pt.Value;
end
@ -232,7 +232,7 @@ classdef Kinetics < handle
nsp = kin.nTotalSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getDestructionRates', kin.kinID, nsp, pt);
callct('kin_getDestructionRates', kin.kinID, nsp, pt);
ddot = pt.Value;
end
@ -244,7 +244,7 @@ classdef Kinetics < handle
% :return:
% 1 if reaction number i is reversible. 0 if irreversible.
n = calllib(ct, 'kin_isReversible', kin.kinID, i);
n = callct('kin_isReversible', kin.kinID, i);
end
function wdot = netProdRates(kin)
@ -257,7 +257,7 @@ classdef Kinetics < handle
nsp = kin.nTotalSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getNetProductionRates', kin.kinID, nsp, pt);
callct('kin_getNetProductionRates', kin.kinID, nsp, pt);
wdot = pt.Value;
end
@ -271,7 +271,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getFwdRateOfProgress', kin.kinID, nr, pt);
callct('kin_getFwdRateOfProgress', kin.kinID, nr, pt);
q = pt.Value;
end
@ -285,7 +285,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getRevRateOfProgress', kin.kinID, nr, pt);
callct('kin_getRevRateOfProgress', kin.kinID, nr, pt);
q = pt.Value;
end
@ -299,7 +299,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getNetRatesOfProgress', kin.kinID, nr, pt);
callct('kin_getNetRatesOfProgress', kin.kinID, nr, pt);
q = pt.Value;
end
@ -327,11 +327,11 @@ classdef Kinetics < handle
rxn = cell(m, n);
for i = 1:m
for j = 1:n
buflen = calllib(ct, 'kin_getReactionString', kin.kinID, ...
buflen = callct('kin_getReactionString', kin.kinID, ...
irxn - 1, 0, '');
if buflen > 0
aa = char(zeros(1, buflen));
[~, aa] = calllib(ct, 'kin_getReactionString', ...
[~, aa] = callct('kin_getReactionString', ...
kin.kinID, irxn - 1, buflen, aa);
rxn{i, j} = aa;
end
@ -349,7 +349,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getDelta', kin.kinID, 0, nr, pt);
callct('kin_getDelta', kin.kinID, 0, nr, pt);
enthalpy = pt.Value;
end
@ -363,7 +363,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getDelta', kin.kinID, 3, nr, pt);
callct('kin_getDelta', kin.kinID, 3, nr, pt);
enthalpy = pt.Value;
end
@ -377,7 +377,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getDelta', kin.kinID, 2, nr, pt);
callct('kin_getDelta', kin.kinID, 2, nr, pt);
entropy = pt.Value;
end
@ -391,7 +391,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getDelta', kin.kinID, 5, nr, pt);
callct('kin_getDelta', kin.kinID, 5, nr, pt);
entropy = pt.Value;
end
@ -405,7 +405,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getDelta', kin.kinID, 1, nr, pt);
callct('kin_getDelta', kin.kinID, 1, nr, pt);
gibbs = pt.Value;
end
@ -419,7 +419,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getDelta', kin.kinID, 4, nr, pt);
callct('kin_getDelta', kin.kinID, 4, nr, pt);
gibbs = pt.Value;
end
@ -435,7 +435,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getEquilibriumConstants', kin.kinID, nr, pt);
callct('kin_getEquilibriumConstants', kin.kinID, nr, pt);
k = pt.Value;
end
@ -449,7 +449,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getFwdRateConstants', kin.kinID, nr, pt);
callct('kin_getFwdRateConstants', kin.kinID, nr, pt);
k = pt.Value;
end
@ -463,7 +463,7 @@ classdef Kinetics < handle
nr = kin.nReactions;
xx = zeros(1, nr);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getRevRateConstants', kin.kinID, 1, nr, pt);
callct('kin_getRevRateConstants', kin.kinID, 1, nr, pt);
k = pt.Value;
end
@ -476,7 +476,7 @@ classdef Kinetics < handle
nsp = kin.nTotalSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'kin_getSourceTerms', kin.kinID, nsp, pt);
callct('kin_getSourceTerms', kin.kinID, nsp, pt);
massProdRate = pt.Value;
end
@ -505,7 +505,7 @@ classdef Kinetics < handle
for i = 1:nr
for j = 1:n
calllib(ct, 'kin_setMultiplier', kin.kinID, ...
callct('kin_setMultiplier', kin.kinID, ...
irxn(i, j)-1, v);
end
end
@ -517,7 +517,7 @@ classdef Kinetics < handle
% :parameter dt:
% Time interval by which the coverages should be advanced.
calllib(ct, 'kin_advanceCoverages', kin.kinID, dt);
callct('kin_advanceCoverages', kin.kinID, dt);
end
end

View File

@ -81,7 +81,7 @@ classdef ThermoPhase < handle
if nargin == 1
id = '-';
end
tp.tpID = calllib(ct, 'thermo_newFromFile', src, id);
tp.tpID = callct('thermo_newFromFile', src, id);
tp.basis = 'molar';
end
@ -93,10 +93,10 @@ classdef ThermoPhase < handle
if nargin < 2 || ~isnumeric(threshold)
threshold = 1e-14;
end
buflen = 0 - calllib(ct, 'thermo_report', tp.tpID, 0, '', 1);
buflen = 0 - callct('thermo_report', tp.tpID, 0, '', 1);
aa = char([zeros(1, buflen, 'int8')]);
ptr = libpointer('cstring', aa);
[iok, bb] = calllib(ct, 'thermo_report', tp.tpID, buflen, ptr, 1);
[iok, bb] = callct('thermo_report', tp.tpID, buflen, ptr, 1);
disp(bb);
end
@ -108,7 +108,7 @@ classdef ThermoPhase < handle
% Instance of class :mat:func:`ThermoPhase` (or another
% object that derives from ThermoPhase)
%
calllib(ct, 'thermo_del', tp.tpID);
callct('thermo_del', tp.tpID);
end
function tp = set.basis(tp, b)
@ -180,7 +180,7 @@ classdef ThermoPhase < handle
if nargin < 7
loglevel = 0;
end
calllib(ct, 'thermo_equilibrate', tp.tpID, xy, solver, ...
callct('thermo_equilibrate', tp.tpID, xy, solver, ...
rtol, maxsteps, maxiter, loglevel);
end
@ -199,7 +199,7 @@ classdef ThermoPhase < handle
nel = tp.nElements;
aa = zeros(1, nel);
pt = libpointer('doublePtr', aa);
calllib(ct, 'thermo_getAtomicWeights', ...
callct('thermo_getAtomicWeights', ...
tp.tpID, nel, pt);
amu = pt.Value;
end
@ -217,7 +217,7 @@ classdef ThermoPhase < handle
nsp = tp.nSpecies;
yy = zeros(1, nsp);
pt = libpointer('doublePtr', yy);
calllib(ct, 'thermo_getCharges', ...
callct('thermo_getCharges', ...
tp.tpID, nsp, pt);
e = pt.Value;
end
@ -254,7 +254,7 @@ classdef ThermoPhase < handle
k = zeros(m, n);
for i = 1:m
for j = 1:n
k(i, j) = calllib(ct, 'thermo_elementIndex', ...
k(i, j) = callct('thermo_elementIndex', ...
tp.tpID, name{i, j}) + 1;
if k(i, j) > 1e3
warning(['Element ', name{i, j}, ...
@ -264,7 +264,7 @@ classdef ThermoPhase < handle
end
end
elseif ischar(name)
k = calllib(ct, 'thermo_elementIndex', ...
k = callct('thermo_elementIndex', ...
tp.tpID, name) + 1;
if k > 1e3
warning(['Element ', name, ...
@ -337,13 +337,13 @@ classdef ThermoPhase < handle
% :return:
% Scalar double mean molecular weight. Units: kg/kmol
%
mmw = calllib(ct, 'thermo_meanMolecularWeight', tp.tpID);
mmw = callct('thermo_meanMolecularWeight', tp.tpID);
end
function density = molarDensity(tp)
% Get the molar basis density in kmol/m^3.
density = calllib(ct, 'thermo_molarDensity', tp.tpID);
density = callct('thermo_molarDensity', tp.tpID);
end
function mw = MolecularWeights(tp)
@ -359,7 +359,7 @@ classdef ThermoPhase < handle
nsp = tp.nSpecies;
yy = zeros(1, nsp);
pt = libpointer('doublePtr', yy);
calllib(ct, 'thermo_getMolecularWeights', ...
callct('thermo_getMolecularWeights', ...
tp.tpID, nsp, pt);
mw = pt.Value;
end
@ -395,7 +395,7 @@ classdef ThermoPhase < handle
n = -1;
return
end
n = calllib(ct, 'thermo_nAtoms', tp.tpID, k-1, m-1);
n = callct('thermo_nAtoms', tp.tpID, k-1, m-1);
else
error('Two input arguments required.')
end
@ -411,7 +411,7 @@ classdef ThermoPhase < handle
% :return:
% Number of elements in the phase.
%
nel = calllib(ct, 'thermo_nElements', tp.tpID);
nel = callct('thermo_nElements', tp.tpID);
end
function nsp = nSpecies(tp)
@ -424,7 +424,7 @@ classdef ThermoPhase < handle
% :return:
% Number of species in the phase.
%
nsp = calllib(ct, 'thermo_nSpecies', tp.tpID);
nsp = callct('thermo_nSpecies', tp.tpID);
end
function k = speciesIndex(tp, name)
@ -458,7 +458,7 @@ classdef ThermoPhase < handle
k = zeros(m, n);
for i = 1:m
for j = 1:n
k(i, j) = calllib(ct, 'thermo_speciesIndex', ...
k(i, j) = callct('thermo_speciesIndex', ...
tp.tpID, name{i, j}) + 1;
if k(i, j) > 1e6
warning(['Species ', name{i, j}, ...
@ -468,7 +468,7 @@ classdef ThermoPhase < handle
end
end
elseif ischar(name)
k = calllib(ct, 'thermo_speciesIndex', ...
k = callct('thermo_speciesIndex', ...
tp.tpID, name) + 1;
if k > 1e6
warning(['Species ', name, ...
@ -497,11 +497,11 @@ classdef ThermoPhase < handle
for i = 1:m
for j = 1:n
ksp = k(i, j) - 1;
buflen = calllib(ct, 'thermo_getSpeciesName', ...
buflen = callct('thermo_getSpeciesName', ...
tp.tpID, ksp, 0, '');
if buflen > 0
aa = char(zeros(1, buflen));
[~, aa] = calllib(ct, 'thermo_getSpeciesName', ...
[~, aa] = callct('thermo_getSpeciesName', ...
tp.tpID, ksp, buflen, aa);
nm{i, j} = aa;
end
@ -532,7 +532,7 @@ classdef ThermoPhase < handle
% :return:
% Temperature. Units: K
%
temperature = calllib(ct, 'thermo_temperature', tp.tpID);
temperature = callct('thermo_temperature', tp.tpID);
end
function pressure = get.P(tp)
@ -545,7 +545,7 @@ classdef ThermoPhase < handle
% :return:
% Pressure. Units: Pa
%
pressure = calllib(ct, 'thermo_pressure', tp.tpID);
pressure = callct('thermo_pressure', tp.tpID);
end
function density = get.D(tp)
@ -558,7 +558,7 @@ classdef ThermoPhase < handle
% :return:
% Mass density. Units: kg/m**3
%
density = calllib(ct, 'thermo_density', tp.tpID);
density = callct('thermo_density', tp.tpID);
end
function volume = get.V(tp)
@ -588,7 +588,7 @@ classdef ThermoPhase < handle
nsp = tp.nSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'thermo_getMoleFractions', ...
callct('thermo_getMoleFractions', ...
tp.tpID, nsp, pt);
moleFractions = pt.Value;
@ -650,7 +650,7 @@ classdef ThermoPhase < handle
nsp = tp.nSpecies;
yy = zeros(1, nsp);
pt = libpointer('doublePtr', yy);
calllib(ct, 'thermo_getMassFractions', ...
callct('thermo_getMassFractions', ...
tp.tpID, nsp, pt);
massFractions = pt.Value;
@ -721,7 +721,7 @@ classdef ThermoPhase < handle
nsp = tp.nSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'thermo_chemPotentials', ...
callct('thermo_chemPotentials', ...
tp.tpID, nsp, pt);
mu = pt.Value;
end
@ -738,9 +738,9 @@ classdef ThermoPhase < handle
% Units: J/kg-K (mass basis) or J/kmol-K (molar basis).
%
if strcmp(tp.basis, 'molar')
c = calllib(ct, 'thermo_cv_mole', tp.tpID);
c = callct('thermo_cv_mole', tp.tpID);
elseif strcmp(tp.basis, 'mass')
c = calllib(ct, 'thermo_cv_mass', tp.tpID);
c = callct('thermo_cv_mass', tp.tpID);
else error("basis not specified");
end
end
@ -757,9 +757,9 @@ classdef ThermoPhase < handle
% Units: J/kg-K (mass-basis) or J/mol-K (molar-basis).
%
if strcmp(tp.basis, 'molar')
c = calllib(ct, 'thermo_cp_mole', tp.tpID);
c = callct('thermo_cp_mole', tp.tpID);
elseif strcmp(tp.basis, 'mass')
c = calllib(ct, 'thermo_cp_mass', tp.tpID);
c = callct('thermo_cp_mass', tp.tpID);
else error("basis not specified");
end
end
@ -774,7 +774,7 @@ classdef ThermoPhase < handle
% :return:
% Critical density. Units: kg/m**3
%
d = calllib(ct, 'thermo_critDensity', tp.tpID);
d = callct('thermo_critDensity', tp.tpID);
end
function p = critPressure(tp)
@ -787,7 +787,7 @@ classdef ThermoPhase < handle
% :return:
% Critical pressure. Units: Pa
%
p = calllib(ct, 'thermo_critPressure', tp.tpID);
p = callct('thermo_critPressure', tp.tpID);
end
function t = critTemperature(tp)
@ -800,7 +800,7 @@ classdef ThermoPhase < handle
% :return:
% Critical temperature. Units: K
%
t = calllib(ct, 'thermo_critTemperature', tp.tpID);
t = callct('thermo_critTemperature', tp.tpID);
end
function v = electricPotential(tp)
@ -813,7 +813,7 @@ classdef ThermoPhase < handle
% :return:
% The electric potential of the phase. Units: V
%
v = calllib(ct, 'thermo_electricPotential', tp.tpID);
v = callct('thermo_electricPotential', tp.tpID);
end
function e = eosType(tp)
@ -826,11 +826,11 @@ classdef ThermoPhase < handle
% :return:
% An string identifying the equation of state.
%
buflen = calllib(ct, 'thermo_getEosType', tp.tpID, 0, '');
buflen = callct('thermo_getEosType', tp.tpID, 0, '');
if buflen > 0
aa = char([zeros(1, buflen, 'int8')]);
ptr = libpointer('cstring', aa);
[~, bb] = calllib(ct, 'thermo_getEosType', ...
[~, bb] = callct('thermo_getEosType', ...
tp.tpID, buflen, ptr);
e = bb;
clear aa bb ptr;
@ -866,7 +866,7 @@ classdef ThermoPhase < handle
% :return:
% Isothermal Compressibility. Units: 1/Pa
%
b = calllib(ct, 'thermo_isothermalCompressibility', tp.tpID);
b = callct('thermo_isothermalCompressibility', tp.tpID);
end
function t = maxTemp(tp)
@ -885,7 +885,7 @@ classdef ThermoPhase < handle
% :return:
% Vector of maximum temperatures of all species
%
t = calllib(ct, 'thermo_maxTemp', tp.tpID, -1);
t = callct('thermo_maxTemp', tp.tpID, -1);
end
function t = minTemp(tp)
@ -904,7 +904,7 @@ classdef ThermoPhase < handle
% :return:
% Vector of minimum temperatures of all species
%
t = calllib(ct, 'thermo_minTemp', tp.tpID, -1);
t = callct('thermo_minTemp', tp.tpID, -1);
end
function p = refPressure(tp)
@ -918,7 +918,7 @@ classdef ThermoPhase < handle
% Reference pressure in Pa. All standard-state
% thermodynamic properties are for this pressure.
%
p = calllib(ct, 'thermo_refPressure', tp.tpID, -1);
p = callct('thermo_refPressure', tp.tpID, -1);
end
function p = satPressure(tp, t)
@ -933,7 +933,7 @@ classdef ThermoPhase < handle
% :return:
% Saturation pressure for temperature T. Units: Pa
%
p = calllib(ct, 'thermo_satPressure', tp.tpID, t);
p = callct('thermo_satPressure', tp.tpID, t);
end
function t = satTemperature(tp, p)
@ -948,7 +948,7 @@ classdef ThermoPhase < handle
% :return:
% Saturation temperature for pressure p. Units: K
%
t = calllib(ct, 'thermo_satTemperature', tp.tpID, p);
t = callct('thermo_satTemperature', tp.tpID, p);
end
function c = soundspeed(tp)
@ -1006,7 +1006,7 @@ classdef ThermoPhase < handle
% :return:
% Thermal Expansion Coefficient. Units: 1/K
%
a = calllib(ct, 'thermo_thermalExpansionCoeff', tp.tpID);
a = callct('thermo_thermalExpansionCoeff', tp.tpID);
end
function v = vaporFraction(tp)
@ -1019,7 +1019,7 @@ classdef ThermoPhase < handle
% :return:
% Vapor fraction.
%
v = calllib(ct, 'thermo_vaporFraction', tp.tpID);
v = callct('thermo_vaporFraction', tp.tpID);
end
function enthalpy = get.H(tp)
@ -1034,9 +1034,9 @@ classdef ThermoPhase < handle
% Units: J/kmol (molar) J/kg (mass).
if strcmp(tp.basis, 'molar')
enthalpy = calllib(ct, 'thermo_enthalpy_mole', tp.tpID);
enthalpy = callct('thermo_enthalpy_mole', tp.tpID);
elseif strcmp(tp.basis, 'mass')
enthalpy = calllib(ct, 'thermo_enthalpy_mass', tp.tpID);
enthalpy = callct('thermo_enthalpy_mass', tp.tpID);
else error("basis not specified");
end
end
@ -1057,7 +1057,7 @@ classdef ThermoPhase < handle
nsp = tp.nSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'thermo_getEnthalpies_RT', tp.tpID, nsp, pt);
callct('thermo_getEnthalpies_RT', tp.tpID, nsp, pt);
enthalpy = pt.Value;
end
@ -1073,9 +1073,9 @@ classdef ThermoPhase < handle
% Units: J/kmol-K (molar) J/kg-K (mass)
%
if strcmp(tp.basis, 'molar')
entropy = calllib(ct, 'thermo_entropy_mole', tp.tpID);
entropy = callct('thermo_entropy_mole', tp.tpID);
elseif strcmp(tp.basis, 'mass')
entropy = calllib(ct, 'thermo_entropy_mass', tp.tpID);
entropy = callct('thermo_entropy_mass', tp.tpID);
else error("basis not specified");
end
end
@ -1092,9 +1092,9 @@ classdef ThermoPhase < handle
% Units: J/kmol (molar) J/kg (mass).
if strcmp(tp.basis, 'molar')
intEnergy = calllib(ct, 'thermo_intEnergy_mole', tp.tpID);
intEnergy = callct('thermo_intEnergy_mole', tp.tpID);
elseif strcmp(tp.basis, 'mass')
intEnergy = calllib(ct, 'thermo_intEnergy_mass', tp.tpID);
intEnergy = callct('thermo_intEnergy_mass', tp.tpID);
else error("basis not specified");
end
end
@ -1111,9 +1111,9 @@ classdef ThermoPhase < handle
% Units: J/kmol (molar) J/kg (mass).
if strcmp(tp.basis, 'molar')
gibbs = calllib(ct, 'thermo_gibbs_mole', tp.tpID);
gibbs = callct('thermo_gibbs_mole', tp.tpID);
elseif strcmp(tp.basis, 'mass')
gibbs = calllib(ct, 'thermo_gibbs_mass', tp.tpID);
gibbs = callct('thermo_gibbs_mass', tp.tpID);
else error("basis not specified");
end
end
@ -1300,7 +1300,7 @@ classdef ThermoPhase < handle
% :param phi:
% Electric potential. Units: V
%
calllib(ct, 'thermo_setElectricPotential', tp.tpID, phi);
callct('thermo_setElectricPotential', tp.tpID, phi);
end
function tp = setState_Psat(tp, p, q)
@ -1318,7 +1318,7 @@ classdef ThermoPhase < handle
% :param q:
% Vapor fraction
%
calllib(ct, 'thermo_setState_Psat', tp.tpID, p, q);
callct('thermo_setState_Psat', tp.tpID, p, q);
end
function tp = setState_Tsat(tp, t, q)
@ -1336,7 +1336,7 @@ classdef ThermoPhase < handle
% :param q:
% Vapor fraction
%
calllib(ct, 'thermo_setState_Tsat', tp.tpID, t, 1 - q);
callct('thermo_setState_Tsat', tp.tpID, t, 1 - q);
end
function set.T(tp, temperature)
@ -1349,7 +1349,7 @@ classdef ThermoPhase < handle
% :param temperature:
% Temperature. Units: K
%
calllib(ct, 'thermo_setTemperature', tp.tpID, temperature);
callct('thermo_setTemperature', tp.tpID, temperature);
end
function set.P(tp, pressure)
@ -1367,7 +1367,7 @@ classdef ThermoPhase < handle
if pressure <= 0
error('The pressure must be positive');
end
calllib(ct, 'thermo_setPressure', tp.tpID, pressure);
callct('thermo_setPressure', tp.tpID, pressure);
end
function set.D(tp, density)
@ -1383,7 +1383,7 @@ classdef ThermoPhase < handle
if density <= 0
error('The density must be positive');
end
calllib(ct, 'thermo_setDensity', tp.tpID, density);
callct('thermo_setDensity', tp.tpID, density);
end
function set.X(tp, xx)
@ -1413,10 +1413,10 @@ classdef ThermoPhase < handle
norm = 0;
else norm = 1;
end
calllib(ct, 'thermo_setMoleFractions', tp.tpID, ...
callct('thermo_setMoleFractions', tp.tpID, ...
nsp, xx, norm);
elseif isa(xx, 'char')
calllib(ct, 'thermo_setMoleFractionsByName', tp.tpID, xx);
callct('thermo_setMoleFractionsByName', tp.tpID, xx);
end
end
@ -1446,10 +1446,10 @@ classdef ThermoPhase < handle
norm = 0;
else norm = 1;
end
calllib(ct, 'thermo_setMassFractions', tp.tpID, ...
callct('thermo_setMassFractions', tp.tpID, ...
nsp, yy, norm);
elseif isa(yy, 'char')
calllib(ct, 'thermo_setMassFractionsByName', tp.tpID, yy);
callct('thermo_setMassFractionsByName', tp.tpID, yy);
end
end
@ -1464,7 +1464,7 @@ classdef ThermoPhase < handle
if p <= 0
error('The pressure must be positive');
end
calllib(ct, 'thermo_set_RP', tp.tpID, [d, p]);
callct('thermo_set_RP', tp.tpID, [d, p]);
end
function set.DPX(tp, input)
@ -1483,7 +1483,7 @@ classdef ThermoPhase < handle
if p <= 0
error('The pressure must be positive');
end
calllib(ct, 'thermo_set_HP', tp.tpID, [h, p]);
callct('thermo_set_HP', tp.tpID, [h, p]);
end
function set.HPX(tp, input)
@ -1505,7 +1505,7 @@ classdef ThermoPhase < handle
if v <= 0
error('The specific volume must be positive');
end
calllib(ct, 'thermo_set_PV', tp.tpID, [p, v]);
callct('thermo_set_PV', tp.tpID, [p, v]);
end
function set.PVX(tp, input)
@ -1521,7 +1521,7 @@ classdef ThermoPhase < handle
function set.SH(tp, input)
s = input{1};
h = input{2};
calllib(ct, 'thermo_set_SH', tp.tpID, [s, h]);
callct('thermo_set_SH', tp.tpID, [s, h]);
end
function set.SHX(tp, input)
@ -1540,7 +1540,7 @@ classdef ThermoPhase < handle
if p <= 0
error('The pressure must be positive');
end
calllib(ct, 'thermo_set_SP', tp.tpID, [s, p]);
callct('thermo_set_SP', tp.tpID, [s, p]);
end
function set.SPX(tp, input)
@ -1559,7 +1559,7 @@ classdef ThermoPhase < handle
if t <= 0
error('The temperature must be positive');
end
calllib(ct, 'thermo_set_ST', tp.tpID, [s, t]);
callct('thermo_set_ST', tp.tpID, [s, t]);
end
function set.STX(tp, input)
@ -1578,7 +1578,7 @@ classdef ThermoPhase < handle
if v <= 0
error('The specific volume must be positive');
end
calllib(ct, 'thermo_set_SV', tp.tpID, [s, v]);
callct('thermo_set_SV', tp.tpID, [s, v]);
end
function set.SVX(tp, input)
@ -1620,7 +1620,7 @@ classdef ThermoPhase < handle
error('The temperature must be positive');
end
h = input{2};
calllib(ct, 'thermo_set_TH', tp.tpID, [t, h]);
callct('thermo_set_TH', tp.tpID, [t, h]);
end
function set.THX(tp, input)
@ -1665,7 +1665,7 @@ classdef ThermoPhase < handle
if v <= 0
error('The specific volume must be positive');
end
calllib(ct, 'thermo_set_TV', tp.tpID, [t, v]);
callct('thermo_set_TV', tp.tpID, [t, v]);
end
function set.TVX(tp, input)
@ -1684,7 +1684,7 @@ classdef ThermoPhase < handle
if p <= 0
error('The pressure must be positive');
end
calllib(ct, 'thermo_set_UP', tp.tpID, [u, p]);
callct('thermo_set_UP', tp.tpID, [u, p]);
end
function set.UPX(tp, input)
@ -1703,7 +1703,7 @@ classdef ThermoPhase < handle
if v <= 0
error('The specific volume must be positive');
end
calllib(ct, 'thermo_set_UV', tp.tpID, [u, v]);
callct('thermo_set_UV', tp.tpID, [u, v]);
end
function set.UVX(tp, input)
@ -1722,7 +1722,7 @@ classdef ThermoPhase < handle
if v <= 0
error('The specific volume must be positive');
end
calllib(ct, 'thermo_set_VH', tp.tpID, [v, h]);
callct('thermo_set_VH', tp.tpID, [v, h]);
end
function set.VHX(tp, input)

View File

@ -25,10 +25,10 @@ classdef Transport < handle
else
tr.th = tp;
if strcmp(model, 'default')
tr.trID = calllib(ct, 'trans_newDefault', ...
tr.trID = callct('trans_newDefault', ...
tp.tpID, loglevel);
else
tr.trID = calllib(ct, 'trans_new', model, ...
tr.trID = callct('trans_new', model, ...
tp.tpID, loglevel);
end
end
@ -40,7 +40,7 @@ classdef Transport < handle
function trClear(tr)
% Delete the kernel object.
calllib(ct, 'trans_del', tr.trID);
callct('trans_del', tr.trID);
end
%% Transport Methods
@ -51,7 +51,7 @@ classdef Transport < handle
% :return:
% Double dynamic viscosity. Unit: Pa*s.
v = calllib(ct, 'trans_viscosity', tr.trID);
v = callct('trans_viscosity', tr.trID);
if v == -1.0
error(geterr);
elseif v < 0.0
@ -65,7 +65,7 @@ classdef Transport < handle
% :return:
% Double thermal conductivity. Unit: W/m-K.
v = calllib(ct, 'trans_thermalConductivity', tr.trID);
v = callct('trans_thermalConductivity', tr.trID);
if v == -1.0
error(geterr);
elseif v < 0.0
@ -79,7 +79,7 @@ classdef Transport < handle
% :return:
% Double electrical conductivity. Unit: S/m.
v = calllib(ct, 'trans_electricalConductivity', tr.trID);
v = callct('trans_electricalConductivity', tr.trID);
if v == -1.0
error(geterr);
elseif v < 0.0
@ -97,7 +97,7 @@ classdef Transport < handle
nsp = tr.th.nSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'trans_getMixDiffCoeffs', tr.trID, nsp, pt);
callct('trans_getMixDiffCoeffs', tr.trID, nsp, pt);
v = pt.Value;
end
@ -111,7 +111,7 @@ classdef Transport < handle
nsp = tr.th.nSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'trans_getThermalDiffCoeffs', tr.trID, nsp, pt);
callct('trans_getThermalDiffCoeffs', tr.trID, nsp, pt);
v = pt.Value;
end
@ -125,7 +125,7 @@ classdef Transport < handle
nsp = tr.th.nSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'trans_getBinDiffCoeffs', tr.trID, nsp, pt);
callct('trans_getBinDiffCoeffs', tr.trID, nsp, pt);
v = pt.Value;
end
@ -139,7 +139,7 @@ classdef Transport < handle
nsp = tr.th.nSpecies;
xx = zeros(1, nsp);
pt = libpointer('doublePtr', xx);
calllib(ct, 'trans_getMultiDiffCoeffs', tr.trID, nsp, pt);
callct('trans_getMultiDiffCoeffs', tr.trID, nsp, pt);
v = pt.Value;
end
@ -150,7 +150,7 @@ classdef Transport < handle
% :parameter k:
% :parameter p:
calllib(ct, 'trans_setParameters', tr.trID, type, k, p);
callct('trans_setParameters', tr.trID, type, k, p);
end
function setThermalConductivity(tr, lam)

View File

@ -81,12 +81,12 @@ classdef Func < handle
if itype < 20
[m, n] = size(p);
lenp = m * n;
nn = calllib(ct, 'func_new', itype, n, lenp, p);
nn = callct('func_new', itype, n, lenp, p);
elseif itype < 45
m = n;
nn = calllib(ct, 'func_new', itype, n, m, 0);
nn = callct('func_new', itype, n, m, 0);
else
nn = calllib(ct, 'func_new', itype, n, 0, p);
nn = callct('func_new', itype, n, 0, p);
end
end
@ -138,7 +138,7 @@ classdef Func < handle
% :param f:
% Instance of class :mat:func:`Func`
%
calllib(ct, 'func_del', f.id);
callct('func_del', f.id);
end
function display(f)
@ -172,7 +172,7 @@ classdef Func < handle
ind= s.subs{:};
b = zeros(1, length(ind));
for k = 1:length(ind)
b(k) = calllib(ct, 'func_value', a.id, ind(k));
b(k) = callct('func_value', a.id, ind(k));
end
else error('Specify value for x as p(x)');
end

View File

@ -39,7 +39,7 @@ classdef FlowDevice < handle
end
x.type = typ;
x.id = calllib(ct, 'flowdev_new', typ);
x.id = callct('flowdev_new', typ);
x.upstream = -1;
x.downstream = -1;
end
@ -53,7 +53,7 @@ classdef FlowDevice < handle
% :param f:
% Instance of :mat:func:`FlowDevice` to be cleared.
%
calllib(ct, 'flowdev_del', f.id);
callct('flowdev_del', f.id);
end
%% FlowDevice methods
@ -78,7 +78,7 @@ classdef FlowDevice < handle
end
i = upstream.id;
j = downstream.id;
calllib(ct, 'flowdev_install', f.id, i, j);
callct('flowdev_install', f.id, i, j);
else error('install requires 3 arguments');
end
end
@ -92,7 +92,7 @@ classdef FlowDevice < handle
% :return:
% The mass flow rate through the :mat:func:`FlowDevice` at the current time
%
mdot = calllib(ct, 'flowdev_massFlowRate2', f.id);
mdot = callct('flowdev_massFlowRate2', f.id);
end
function setFunction(f, mf)
@ -107,7 +107,7 @@ classdef FlowDevice < handle
% Instance of class :mat:func:`Func`
%
if strcmp(f.type, 'MassFlowController')
k = calllib(ct, 'flowdev_setTimeFunction', f.id, ...
k = callct('flowdev_setTimeFunction', f.id, ...
mf.id);
else
error('Time function can only be set for mass flow controllers.');
@ -126,7 +126,7 @@ classdef FlowDevice < handle
% Mass flow rate
%
if strcmp(f.type, 'MassFlowController')
k = calllib(ct, 'flowdev_setMassFlowCoeff', f.id, mdot);
k = callct('flowdev_setMassFlowCoeff', f.id, mdot);
else
error('Mass flow rate can only be set for mass flow controllers.');
end
@ -143,7 +143,7 @@ classdef FlowDevice < handle
% Instance of class :mat:func:`Func`
%
if strcmp(f.type, 'PressureController')
k = calllib(ct, 'flowdev_setMaster', f.id, d);
k = callct('flowdev_setMaster', f.id, d);
else
error('Master flow device can only be set for pressure controllers.');
end
@ -169,7 +169,7 @@ classdef FlowDevice < handle
if ~strcmp(f.type, 'Valve')
error('Valve coefficient can only be set for valves.');
end
ok = calllib(ct, 'flowdev_setValveCoeff', f.id, k);
ok = callct('flowdev_setValveCoeff', f.id, k);
end
end

View File

@ -52,7 +52,7 @@ classdef Reactor < handle
end
r.type = char(typ);
r.id = calllib(ct, 'reactor_new', typ);
r.id = callct('reactor_new', typ);
% if r.id < 0
% error(geterr);
@ -71,7 +71,7 @@ classdef Reactor < handle
function clear(r)
% Clear the reactor from memory.
calllib(ct, 'reactor_del', r.id);
callct('reactor_del', r.id);
end
function addSensitivityReaction(r, m)
@ -82,7 +82,7 @@ classdef Reactor < handle
% :parameter m:
% Index number of reaction.
calllib(ct, 'reactor_addSensitivityReaction', r.id, m);
callct('reactor_addSensitivityReaction', r.id, m);
end
function insert(r, gas)
@ -116,7 +116,7 @@ classdef Reactor < handle
error('Wrong object type');
end
calllib(ct, 'reactor_setThermoMgr', r.id, t.tpID);
callct('reactor_setThermoMgr', r.id, t.tpID);
end
function setKineticsMgr(r, k)
@ -135,7 +135,7 @@ classdef Reactor < handle
error('Wrong object type');
end
calllib(ct, 'reactor_setKineticsMgr', r.id, k.kinID);
callct('reactor_setKineticsMgr', r.id, k.kinID);
end
%% Reactor get methods
@ -147,7 +147,7 @@ classdef Reactor < handle
% The temperature of the reactor contents at the end of the
% last call to 'advance' or 'step'. Unit: K.
temperature = calllib(ct, 'reactor_temperature', r.id);
temperature = callct('reactor_temperature', r.id);
end
function pressure = get.P(r)
@ -157,7 +157,7 @@ classdef Reactor < handle
% The pressure of the reactor contents at the end of the
% last call to 'advance' or 'step'. Unit: Pa.
pressure = calllib(ct, 'reactor_pressure', r.id);
pressure = callct('reactor_pressure', r.id);
end
function rho = get.D(r)
@ -166,7 +166,7 @@ classdef Reactor < handle
% :return:
% Density of the phase in the input. Unit: kg/m^3.
rho = calllib(ct, 'reactor_density', r.id);
rho = callct('reactor_density', r.id);
end
function mass = get.M(r)
@ -177,7 +177,7 @@ classdef Reactor < handle
% last call to 'advance' or 'step'. The mass is retrieved
% from the solution vector. Unit: kg.
mass = calllib(ct, 'reactor_mass', r.id);
mass = callct('reactor_mass', r.id);
end
function volume = get.V(r)
@ -187,7 +187,7 @@ classdef Reactor < handle
% The volume of the reactor contents at the end of the
% last call to 'advance' or 'step'. Unit: m^3.
volume = calllib(ct, 'reactor_volume', r.id);
volume = callct('reactor_volume', r.id);
end
function enthalpy_mass = get.H(r)
@ -198,7 +198,7 @@ classdef Reactor < handle
% end of the last call to 'advance' or 'step'. The enthalpy
% is retrieved from the solution vector. Unit: J/kg.
enthalpy_mass = calllib(ct, 'reactor_enthalpy_mass', r.id);
enthalpy_mass = callct('reactor_enthalpy_mass', r.id);
end
function intEnergy_mass = get.U(r)
@ -210,7 +210,7 @@ classdef Reactor < handle
% internal energy is retrieved from the solution vector.
% Unit: J/kg.
intEnergy_mass = calllib(ct, 'reactor_intEnergy_mass', r.id);
intEnergy_mass = callct('reactor_intEnergy_mass', r.id);
end
function yi = massFraction(r, species)
@ -224,7 +224,7 @@ classdef Reactor < handle
else k = species - 1;
end
yi = calllib(ct, 'reactor_massFraction', r.id, k);
yi = callct('reactor_massFraction', r.id, k);
end
function massFractions = get.Y(r)
@ -249,7 +249,7 @@ classdef Reactor < handle
% :parameter v0:
% Initial volume in m^3.
calllib(ct, 'reactor_setInitialVolume', r.id, v0);
callct('reactor_setInitialVolume', r.id, v0);
end
function r = set.Mdot(r, MFR)
@ -258,7 +258,7 @@ classdef Reactor < handle
% :parameter MFR:
% Mass flow rate in kg/s.
calllib(ct, 'reactor_setMassFlowRate', r.id, MFR);
callct('reactor_setMassFlowRate', r.id, MFR);
r.Mdot = MFR;
end
@ -286,7 +286,7 @@ classdef Reactor < handle
else error('Input must be "on" or "off"');
end
calllib(ct, 'reactor_setChemistry', r.id, iflag);
callct('reactor_setChemistry', r.id, iflag);
r.ChemistryFlag = flag;
end
@ -314,7 +314,7 @@ classdef Reactor < handle
end
if iflag >= 0
calllib(ct, 'reactor_setEnergy', r.id, iflag);
callct('reactor_setEnergy', r.id, iflag);
else error('Input must be "on" or "off".');
end

View File

@ -33,7 +33,7 @@ classdef ReactorNet < handle
reactors = {reactor};
end
r.id = calllib(ct, 'reactornet_new');
r.id = callct('reactornet_new');
% add reactors
nr = length(reactors);
@ -47,7 +47,7 @@ classdef ReactorNet < handle
function clear(r)
% Clear the ReactorNet object from the memory.
calllib(ct, 'reactornet_del', r.id);
callct('reactornet_del', r.id);
end
function addReactor(net, reactor)
@ -58,7 +58,7 @@ classdef ReactorNet < handle
% :parameter reactor:
% Instance of class 'Solution'.
calllib(ct, 'reactornet_addreactor', net.id, reactor.id);
callct('reactornet_addreactor', net.id, reactor.id);
end
function advance(r, tout)
@ -74,7 +74,7 @@ classdef ReactorNet < handle
% :parameter tout:
% End time of the integration. Unit: s.
calllib(ct, 'reactornet_advance', r.id, tout);
callct('reactornet_advance', r.id, tout);
end
%% ReactorNet set methods
@ -86,7 +86,7 @@ classdef ReactorNet < handle
% Time at which integration should be restarted, using the
% current state as the initial condition. Unit: s.
calllib(ct, 'reactornet_setInitialTime', r.id, t);
callct('reactornet_setInitialTime', r.id, t);
end
function setMaxTimeStep(r, maxstep)
@ -100,7 +100,7 @@ classdef ReactorNet < handle
% leads to numerical problems later. Use thismethod to set an
% upper bound on the timestep.
calllib(ct, 'reactornet_setMaxTimeStep', r.id, maxstep);
callct('reactornet_setMaxTimeStep', r.id, maxstep);
end
function setSensitivityTolerances(r, rerr, aerr)
@ -111,7 +111,7 @@ classdef ReactorNet < handle
% :parameter aerr:
% Scalar absolute error tolerance.
calllib(ct, 'reactornet_setSensitivityTolerances', r.id, rerr, aerr);
callct('reactornet_setSensitivityTolerances', r.id, rerr, aerr);
end
function setTolerances(r, rerr, aerr)
@ -122,7 +122,7 @@ classdef ReactorNet < handle
% :parameter aerr:
% Scalar absolute error tolerance.
calllib(ct, 'reactornet_setTolerances', r.id, rerr, aerr);
callct('reactornet_setTolerances', r.id, rerr, aerr);
end
%% ReactorNet get methods
@ -136,25 +136,25 @@ classdef ReactorNet < handle
% rapidly changing, the time step becomes smaller to resolve
% the solution.
t = calllib(ct, 'reactor_step', r.id);
t = callct('reactor_step', r.id);
end
function t = get.time(r)
% Get the current time in s.
t = calllib(ct, 'reactornet_time', r.id);
t = callct('reactornet_time', r.id);
end
function t = atol(r)
% Get the absolute error tolerance.
t = calllib(ct, 'reactornet_atol', r.id);
t = callct('reactornet_atol', r.id);
end
function t = rtol(r)
% Get the relative error tolerance.
t = calllib(ct, 'reactornet_rtol', r.id);
t = callct('reactornet_rtol', r.id);
end
function s = sensitivity(r, component, p, rxtr)
@ -169,7 +169,7 @@ classdef ReactorNet < handle
% Instance of class 'reactor'.
if isa(component, 'string')
calllib(ct, 'reactornet_sensitivity', r.id, component, ...
callct('reactornet_sensitivity', r.id, component, ...
p, rxtr.id);
end
% Check back on this one to add cases for component type integer.

View File

@ -36,7 +36,7 @@ classdef ReactorSurface < handle
checklib;
s.surfID = calllib(ct, 'reactorsurface_new', 0);
s.surfID = callct('reactorsurface_new', 0);
s.reactor = -1;
% if r.id < 0
% error(geterr);
@ -69,14 +69,14 @@ classdef ReactorSurface < handle
function clear(s)
% Clear the ReactorSurface object from the memory.
calllib(ct, 'reactorsurface_del', s.surfID);
callct('reactorsurface_del', s.surfID);
end
function install(s, r)
% Install a ReactorSurface in a Reactor.
s.reactor = r;
calllib(ct, 'reactorsurface_install', s.surfID, r.id);
callct('reactorsurface_install', s.surfID, r.id);
end
function addSensitivityReaction(s, r)
@ -87,7 +87,7 @@ classdef ReactorSurface < handle
% :parameter m:
% Index number of reaction.
calllib(ct, 'reactorsurface_addSensitivityReaction', s.surfID, r);
callct('reactorsurface_addSensitivityReaction', s.surfID, r);
end
%% ReactorSurface get methods
@ -95,7 +95,7 @@ classdef ReactorSurface < handle
function a = get.area(s)
% Get the areaof the reactor surface in m^2.
a = calllib(ct, 'reactorsurface_area', s.surfID);
a = callct('reactorsurface_area', s.surfID);
end
%% ReactorSurface set methods
@ -103,7 +103,7 @@ classdef ReactorSurface < handle
function set.area(s, a)
% Set the area of a reactor surface
calllib(ct, 'reactorsurface_setArea', s.surfID, a);
callct('reactorsurface_setArea', s.surfID, a);
end
function setKinetics(s, kin)
@ -119,7 +119,7 @@ classdef ReactorSurface < handle
ikin = kin.kinID;
end
calllib(ct, 'reactorsurface_setkinetics', s.surfID, ikin);
callct('reactorsurface_setkinetics', s.surfID, ikin);
end
end
end

View File

@ -74,7 +74,7 @@ classdef Wall < handle
typ = 'Wall';
x.type = char(typ);
x.id = calllib(ct, 'wall_new', x.type);
x.id = callct('wall_new', x.type);
% if x.index < 0
% error(geterr);
% end
@ -138,7 +138,7 @@ classdef Wall < handle
function clear(w)
% Clear the Wall object from the memory.
calllib(ct, 'wall_del', w.id);
callct('wall_del', w.id);
end
function install(w, l, r)
@ -146,13 +146,13 @@ classdef Wall < handle
w.left = l;
w.right = r;
calllib(ct, 'wall_install', w.id, l.id, r.id);
callct('wall_install', w.id, l.id, r.id);
end
function ok = ready(w)
% Check whether a wall is ready.
ok = calllib(ct, 'wall_ready', w.id);
ok = callct('wall_ready', w.id);
end
%% ReactorNet set methods
@ -160,7 +160,7 @@ classdef Wall < handle
function set.area(w, a)
% Set the area of a wall.
calllib(ct, 'wall_setArea', w.id, a);
callct('wall_setArea', w.id, a);
end
function setThermalResistance(w, r)
@ -169,7 +169,7 @@ classdef Wall < handle
% :parameter r:
% Thermal resistance. Unit: K*m^2/W.
calllib(ct, 'wall_setThermalResistance', w.id, r);
callct('wall_setThermalResistance', w.id, r);
end
function setHeatTransferCoeff(w, u)
@ -178,7 +178,7 @@ classdef Wall < handle
% :parameter u:
% Heat transfer coefficient. Unit: W/(m^2-K).
calllib(ct, 'wall_setHeatTransferCoeff', w.id, u);
callct('wall_setHeatTransferCoeff', w.id, u);
end
function setEmissivity(w, epsilon)
@ -187,7 +187,7 @@ classdef Wall < handle
% :param epsilon:
% Nondimensional emissivity.
calllib(ct, 'wall_setEmissivity', w.id, epsilon);
callct('wall_setEmissivity', w.id, epsilon);
end
function setExpansionRateCoeff(w, k)
@ -196,7 +196,7 @@ classdef Wall < handle
% :parameter k:
% Expanstion rate coefficient. Unit: m/(s-Pa).
calllib(ct, 'wall_setExpansionRateCoeff', w.id, k);
callct('wall_setExpansionRateCoeff', w.id, k);
end
function setHeatFlux(w, f)
@ -210,7 +210,7 @@ classdef Wall < handle
% :parameter f:
% Instance of class 'Func'. Unit: W/m^2.
calllib(ct, 'wall_setHeatFlux', w.id, f.id);
callct('wall_setHeatFlux', w.id, f.id);
end
function setVelocity(w, f)
@ -224,7 +224,7 @@ classdef Wall < handle
% :parameter f:
% Instance of class 'Func'. Unit: m/s.
calllib(ct, 'wall_setVelocity', w.id, f.id);
callct('wall_setVelocity', w.id, f.id);
end
%% ReactorNet get methods
@ -232,19 +232,19 @@ classdef Wall < handle
function a = get.area(w)
% Get the area of the wall in m^2.
a = calllib(ct, 'wall_area', w.id);
a = callct('wall_area', w.id);
end
function q = qdot(w, t)
% Get the total heat transfer through a wall at given time.
q = calllib(ct, 'wall_Q', w.id, t);
q = callct('wall_Q', w.id, t);
end
function v = vdot(w, t)
% Get the rate of volumetric change at a given time.
v = calllib(ct, 'wall_vdot', w.id, t);
v = callct('wall_vdot', w.id, t);
end
end

View File

@ -0,0 +1,16 @@
function output = callct(varargin)
% CALLCT
% This is a simplified single output variant
err1 = -1;
err2 = -999.999;
err3 = double(intmax('uint64'));
methodname = varargin{1};
output = calllib(ct, methodname, varargin{2:end});
if output == err2 || output == err3
output = -1;
end
if output == -1
geterr;
end
end

View File

@ -6,8 +6,8 @@ function v = canteraGitCommit()
% A string containing the Git commit hash for the current version of Cantera
%
checklib;
buflen = calllib(ct, 'ct_getGitCommit', 0, '');
buflen = callct('ct_getGitCommit', 0, '');
aa = char(zeros(1, buflen));
[~, aa] = calllib(ct, 'ct_getGitCommit', buflen, aa);
[~, aa] = callct('ct_getGitCommit', buflen, aa);
v = aa;
end

View File

@ -6,8 +6,8 @@ function v = canteraVersion()
% A string containing the Cantera version
%
checklib;
buflen = calllib(ct, 'ct_getCanteraVersion', 0, '');
buflen = callct('ct_getCanteraVersion', 0, '');
aa = char(zeros(1, buflen));
[~, aa] = calllib(ct, 'ct_getCanteraVersion', buflen, aa);
[~, aa] = callct('ct_getCanteraVersion', buflen, aa);
v = aa;
end

View File

@ -2,11 +2,11 @@ function cleanup()
% Delete all stored Cantera objects and reclaim memory.
%
checklib;
calllib(ct, 'ct_clearOneDim');
calllib(ct, 'ct_clearMix');
calllib(ct, 'ct_clearFunc');
calllib(ct, 'ct_clearStorage');
calllib(ct, 'ct_clearReactors');
calllib(ct, 'ct_clearReactionPath');
callct('ct_clearOneDim');
callct('ct_clearMix');
callct('ct_clearFunc');
callct('ct_clearStorage');
callct('ct_clearReactors');
callct('ct_clearReactionPath');
clear all
end

View File

@ -7,8 +7,8 @@ function d = getDataDirectories()
% Cell array with strings representing the data file search directories
%
checklib;
buflen = calllib(ct, 'ct_getDataDirectories', 0, '', ';');
buflen = callct('ct_getDataDirectories', 0, '', ';');
aa = char(zeros(1, buflen));
[~, aa, ~] = calllib(ct, 'ct_getDataDirectories', buflen, aa, ';');
[~, aa, ~] = callct('ct_getDataDirectories', buflen, aa, ';');
d = aa;
end

View File

@ -4,8 +4,8 @@ function e = geterr()
checklib;
try
buflen = calllib(ct, 'ct_getCanteraError', 0, '');
aa = char([zeros(1, buflen, 'int8')]);
ptr = libpointer('cstring', aa);
aa = zeros(1, buflen+1, 'int8');
ptr = libpointer('voidPtr', aa);
[~, bb] = calllib(ct, 'ct_getCanteraError', buflen, ptr);
e = bb;
clear aa bb ptr