Exposing getDeltaEnthalpies to Matlab interface.
The general intent here was to enable calculating reaction enthalpies in the Matlab toolbox, as part of the li-ion battery simulations in PR #563. This required several changes: - Create getDeltaEnthalpies.m in Matlab toolbox/@Kinetics, as well as similar methods for Gibbs free energy and entropy of reaction - Add kin_getDelta to kineticsmethods.cpp. - Add getPartialMolarEnthalpies to metalPhase class (it returns all zeros). Note that similar methods are not enabled for the corresponding 'Standard State' methods, for the time being. Mainly because it is difficult for me to envision a significant use case, but also because of some lingering confusion between 'standard' and 'reference' states in Cantera's codebase.
This commit is contained in:
parent
8502d18ff7
commit
2d2004da7e
5 changed files with 50 additions and 0 deletions
|
|
@ -85,6 +85,11 @@ public:
|
|||
c[n] = 1.0;
|
||||
}
|
||||
}
|
||||
virtual void getPartialMolarEnthalpies(doublereal *h) const {
|
||||
for (size_t n = 0; n < nSpecies(); n++) {
|
||||
h[n] = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
virtual Units standardConcentrationUnits() const {
|
||||
return Units(1.0);
|
||||
|
|
|
|||
14
interfaces/matlab/toolbox/@Kinetics/getDeltaEnthalpies.m
Normal file
14
interfaces/matlab/toolbox/@Kinetics/getDeltaEnthalpies.m
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
function dH = getDeltaEnthalpies(a)
|
||||
% GETDELTAENTHALPIES Get the enthalpy of reaction for each reaction.
|
||||
% dH = getDeltaEnthalpies(a)
|
||||
%
|
||||
% :param a:
|
||||
% Instance of class :mat:func:`Kinetics` (or another
|
||||
% object deriving from Kinetics) for which the enthalpies of
|
||||
% reaction are desired.
|
||||
% :return:
|
||||
% Returns a vector of the enthalpy of reaction for each
|
||||
% reaction. Units: J/kmol
|
||||
%
|
||||
|
||||
dH = kinetics_get(a.id, 17, 0);
|
||||
14
interfaces/matlab/toolbox/@Kinetics/getDeltaEntropies.m
Normal file
14
interfaces/matlab/toolbox/@Kinetics/getDeltaEntropies.m
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
function dS = getDeltaEntropies(a)
|
||||
% GETDELTAENTROPIES Get the entropy of reaction for each reaction.
|
||||
% dS = getDeltaEntropies(a)
|
||||
%
|
||||
% :param a:
|
||||
% Instance of class :mat:func:`Kinetics` (or another
|
||||
% object deriving from Kinetics) for which the entropies of
|
||||
% reaction are desired.
|
||||
% :return:
|
||||
% Returns a vector of the entropy of reaction for each
|
||||
% reaction. Units: J/kmol-K
|
||||
%
|
||||
|
||||
dS = kinetics_get(a.id, 17, 2);
|
||||
14
interfaces/matlab/toolbox/@Kinetics/getDeltaGibbs.m
Normal file
14
interfaces/matlab/toolbox/@Kinetics/getDeltaGibbs.m
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
function dG = getDeltaGibbs(a)
|
||||
% GETDELTAGIBBS Get the Gibbs free energy of reaction for each reaction.
|
||||
% dG = getDeltaGibbs(a)
|
||||
%
|
||||
% :param a:
|
||||
% Instance of class :mat:func:`Kinetics` (or another
|
||||
% object deriving from Kinetics) for which the Gibbs free
|
||||
% energies of reaction are desired.
|
||||
% :return:
|
||||
% Returns a vector of the Gibbs free energy of reaction
|
||||
% for each reaction. Units: J/kmol
|
||||
%
|
||||
|
||||
dG = kinetics_get(a.id, 17, 1);
|
||||
|
|
@ -103,6 +103,9 @@ void kineticsmethods(int nlhs, mxArray* plhs[],
|
|||
case 16:
|
||||
ok = kin_getRevRateConstants(kin,1,nr,h);
|
||||
break;
|
||||
case 17:
|
||||
ok = kin_getDelta(kin,getInt(prhs[3]),nr,h);
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue