mirror of
https://github.com/Cantera/cantera.git
synced 2025-02-25 18:55:29 -06:00
[MATLAB] Added Kinetics Repeability tests
This commit is contained in:
parent
98f87517db
commit
8c0f9bca23
177
test/matlab_experimental/ctTestKineticsRepeatability.m
Normal file
177
test/matlab_experimental/ctTestKineticsRepeatability.m
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
classdef ctTestKineticsRepeatability < matlab.unittest.TestCase
|
||||||
|
|
||||||
|
properties
|
||||||
|
phase
|
||||||
|
X0
|
||||||
|
X1
|
||||||
|
end
|
||||||
|
|
||||||
|
properties (SetAccess = immutable)
|
||||||
|
T0 = 1200;
|
||||||
|
T1 = 1300;
|
||||||
|
rho0 = 2.4;
|
||||||
|
rho1 = 3.1;
|
||||||
|
P0 = 1.4e+05;
|
||||||
|
P1 = 3.7e+06;
|
||||||
|
rtol = 1e-6;
|
||||||
|
atol = 1e-8;
|
||||||
|
end
|
||||||
|
|
||||||
|
methods (TestClassSetup)
|
||||||
|
|
||||||
|
function testSetUp(self)
|
||||||
|
ctTestSetUp
|
||||||
|
copyfile('../data/pdep-test.yaml', ...
|
||||||
|
'./pdep-test.yaml');
|
||||||
|
copyfile('../data/sticking_coeff_check.yaml', ...
|
||||||
|
'./sticking_coeff_check.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
methods (TestClassTeardown)
|
||||||
|
|
||||||
|
function testTearDown(self)
|
||||||
|
delete('./pdep-test.yaml');
|
||||||
|
delete('./sticking_coeff_check.yaml');
|
||||||
|
ctCleanUp
|
||||||
|
ctTestTearDown
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
methods (TestMethodTeardown)
|
||||||
|
|
||||||
|
function deleteSolution(self)
|
||||||
|
clear self.phase;
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
methods
|
||||||
|
|
||||||
|
function setup_phase(self, mech)
|
||||||
|
clear self.phase
|
||||||
|
self.phase = Solution(mech);
|
||||||
|
self.X0 = 1 + sin(1:self.phase.nSpecies);
|
||||||
|
self.X1 = 1 + sin(2:self.phase.nSpecies + 1);
|
||||||
|
end
|
||||||
|
|
||||||
|
function checkRatesX(self, mech)
|
||||||
|
self.setup_phase(mech);
|
||||||
|
|
||||||
|
self.phase.TDX = {self.T0, self.rho0, self.X0};
|
||||||
|
w1 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TDX = {self.T1, self.rho1, self.X1};
|
||||||
|
w2 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TDX = {self.T0, self.rho0, self.X1};
|
||||||
|
w3 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TDX = {self.T0, self.rho0, self.X0};
|
||||||
|
w4 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.verifyEqual(w1, w4, 'RelTol', self.rtol);
|
||||||
|
end
|
||||||
|
|
||||||
|
function checkRatesT1(self, mech)
|
||||||
|
self.setup_phase(mech);
|
||||||
|
|
||||||
|
self.phase.TDX = {self.T0, self.rho0, self.X0};
|
||||||
|
w1 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TDX = {self.T1, self.rho1, self.X1};
|
||||||
|
w2 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TDX = {self.T1, self.rho0, self.X0};
|
||||||
|
w3 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TDX = {self.T0, self.rho0, self.X0};
|
||||||
|
w4 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.verifyEqual(w1, w4, 'RelTol', self.rtol);
|
||||||
|
end
|
||||||
|
|
||||||
|
function checkRatesT2(self, mech)
|
||||||
|
self.setup_phase(mech);
|
||||||
|
|
||||||
|
self.phase.TPX = {self.T0, self.P0, self.X0};
|
||||||
|
w1 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TPX = {self.T1, self.P1, self.X1};
|
||||||
|
w2 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TPX = {self.T1, self.P0, self.X0};
|
||||||
|
w3 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TPX = {self.T0, self.P0, self.X0};
|
||||||
|
w4 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.verifyEqual(w1, w4, 'RelTol', self.rtol);
|
||||||
|
end
|
||||||
|
|
||||||
|
function checkRatesP(self, mech)
|
||||||
|
self.setup_phase(mech);
|
||||||
|
|
||||||
|
self.phase.TPX = {self.T0, self.P0, self.X0};
|
||||||
|
w1 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TPX = {self.T1, self.P1, self.X1};
|
||||||
|
w2 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TPX = {self.T0, self.P1, self.X0};
|
||||||
|
w3 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.phase.TPX = {self.T0, self.P0, self.X0};
|
||||||
|
w4 = self.phase.netProdRates;
|
||||||
|
|
||||||
|
self.verifyEqual(w1, w4, 'RelTol', self.rtol);
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
methods (Test)
|
||||||
|
|
||||||
|
function testGRI30X(self)
|
||||||
|
self.checkRatesX('gri30.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
function testGRI30T(self)
|
||||||
|
self.checkRatesT1('gri30.yaml');
|
||||||
|
self.checkRatesT2('gri30.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
function testGRI30P(self)
|
||||||
|
self.checkRatesP('gri30.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
function testH2O2X(self)
|
||||||
|
self.checkRatesX('h2o2.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
function testH2O2T(self)
|
||||||
|
self.checkRatesT1('h2o2.yaml');
|
||||||
|
self.checkRatesT2('h2o2.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
function testH2O2P(self)
|
||||||
|
self.checkRatesP('h2o2.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
function testPdepX(self)
|
||||||
|
self.checkRatesX('pdep-test.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
function testPdepT(self)
|
||||||
|
self.checkRatesT1('pdep-test.yaml');
|
||||||
|
self.checkRatesT2('pdep-test.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
function testPdepP(self)
|
||||||
|
self.checkRatesP('pdep-test.yaml');
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user