1% -------------------------------------------------------------------------
2% EXAMPLE: DET_UNDERDRIVEN
3%
4% Compute pre-shock and post-shock state for a planar under-driven detonation
5% considering Chapman-Jouguet (CJ) theory for a stoichiometric CH4-air
6% mixture at standard conditions (T = 300 K, p = 1 atm), and a set of
7% underdrives contained in (1,10) [-].
8%
9% See wiki or setListspecies method from ChemicalSystem class for predefined
10% sets of species
11%
12% @author: Alberto Cuadra Lara
13%
14% Last update October 06 2025
15% -------------------------------------------------------------------------
16
17% Import packages
18import combustiontoolbox.databases.NasaDatabase
19import combustiontoolbox.core.*
20import combustiontoolbox.shockdetonation.*
21
22% Get Nasa database
23DB = NasaDatabase();
24
25% Define chemical system
26system = ChemicalSystem(DB);
27
28% Initialize mixture
29mix = Mixture(system);
30
31% Define chemical state
32set(mix, {'CH4'}, 'fuel', 1);
33set(mix, {'N2', 'O2', 'Ar', 'CO2'}, 'oxidizer', [78.084, 20.9476, 0.9365, 0.0319] / 20.9476);
34
35% Define properties
36mixArray1 = setProperties(mix, 'temperature', 300, 'pressure', 1.01325, 'equivalenceRatio', 1, 'driveFactor', 1:0.1:10);
37
38% Initialize solver
39solver = DetonationSolver('problemType', 'DET_UNDERDRIVEN');
40
41% Solve problem
42[mixArray1, mixArray2] = solver.solveArray(mixArray1);
43
44% Generate report
45report(solver, mixArray1, mixArray2);