before functional changes by codex
This commit is contained in:
85
test/integration/otr-kla.integration.test.js
Normal file
85
test/integration/otr-kla.integration.test.js
Normal file
@@ -0,0 +1,85 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
|
||||
const { Reactor_CSTR, Reactor_PFR } = require('../../src/specificClass');
|
||||
const { makeReactorConfig } = require('../helpers/factories');
|
||||
|
||||
const NUM_SPECIES = 13;
|
||||
|
||||
test('CSTR uses external OTR when kla is NaN', () => {
|
||||
const reactor = new Reactor_CSTR(
|
||||
makeReactorConfig({ reactor_type: 'CSTR', kla: NaN, n_inlets: 1 }),
|
||||
);
|
||||
|
||||
reactor.asm = {
|
||||
compute_dC: () => Array(NUM_SPECIES).fill(0),
|
||||
};
|
||||
reactor.Fs[0] = 0;
|
||||
reactor.OTR = 4;
|
||||
reactor.state = Array(NUM_SPECIES).fill(0);
|
||||
|
||||
reactor.tick(1);
|
||||
|
||||
assert.equal(reactor.state[0], 4);
|
||||
});
|
||||
|
||||
test('CSTR uses kla-based oxygen transfer when kla is finite', () => {
|
||||
const reactor = new Reactor_CSTR(
|
||||
makeReactorConfig({ reactor_type: 'CSTR', kla: 2, n_inlets: 1 }),
|
||||
);
|
||||
|
||||
reactor.asm = {
|
||||
compute_dC: () => Array(NUM_SPECIES).fill(0),
|
||||
};
|
||||
reactor.Fs[0] = 0;
|
||||
reactor.OTR = 1;
|
||||
reactor.state = Array(NUM_SPECIES).fill(0);
|
||||
|
||||
const expected = reactor._calcOTR(0, reactor.temperature);
|
||||
reactor.tick(1);
|
||||
|
||||
assert.ok(Math.abs(reactor.state[0] - expected) < 1e-9);
|
||||
});
|
||||
|
||||
test('PFR uses external OTR branch when kla is NaN', () => {
|
||||
const reactor = new Reactor_PFR(
|
||||
makeReactorConfig({ reactor_type: 'PFR', kla: NaN, n_inlets: 1, length: 8, resolution_L: 6, volume: 40 }),
|
||||
);
|
||||
|
||||
reactor.asm = {
|
||||
compute_dC: () => Array(NUM_SPECIES).fill(0),
|
||||
};
|
||||
reactor.Fs[0] = 0;
|
||||
reactor.D = 0;
|
||||
reactor.OTR = 3;
|
||||
reactor.state = Array.from({ length: reactor.n_x }, () => Array(NUM_SPECIES).fill(0));
|
||||
|
||||
reactor.tick(1);
|
||||
|
||||
assert.equal(reactor.state[1][0], 4.5);
|
||||
assert.equal(reactor.state[2][0], 4.5);
|
||||
assert.equal(reactor.state[3][0], 4.5);
|
||||
assert.equal(reactor.state[4][0], 4.5);
|
||||
});
|
||||
|
||||
test('PFR uses kla-based transfer branch when kla is finite', () => {
|
||||
const reactor = new Reactor_PFR(
|
||||
makeReactorConfig({ reactor_type: 'PFR', kla: 1, n_inlets: 1, length: 8, resolution_L: 6, volume: 40 }),
|
||||
);
|
||||
|
||||
reactor.asm = {
|
||||
compute_dC: () => Array(NUM_SPECIES).fill(0),
|
||||
};
|
||||
reactor.Fs[0] = 0;
|
||||
reactor.D = 0;
|
||||
reactor.OTR = 0;
|
||||
reactor.state = Array.from({ length: reactor.n_x }, () => Array(NUM_SPECIES).fill(0));
|
||||
|
||||
const expected = reactor._calcOTR(0, reactor.temperature) * (reactor.n_x / (reactor.n_x - 2));
|
||||
reactor.tick(1);
|
||||
|
||||
assert.ok(Math.abs(reactor.state[1][0] - expected) < 1e-9);
|
||||
assert.ok(Math.abs(reactor.state[2][0] - expected) < 1e-9);
|
||||
assert.ok(Math.abs(reactor.state[3][0] - expected) < 1e-9);
|
||||
assert.ok(Math.abs(reactor.state[4][0] - expected) < 1e-9);
|
||||
});
|
||||
Reference in New Issue
Block a user