1% -------------------------------------------------------------------------
2% EXAMPLE: SHOCK_POLAR_REFLECTED
3%
4% Compute shock polar plots at T1 = 226.65 K and p1 = 0.0117 bar
5% (altitude 30 km), a set of 39 species considered, an initial
6% shock front Mach numbers = 20, and a deflection angle theta = 35;
7%
8% Air_ions == {'O2','N2','O','O3','N','NO','NO2','NO3','N2O','N2O3',...
9% 'N2O4','N3','eminus','Nminus','Nplus','NOplus','NO2minus',...
10% 'NO3minus','N2plus','N2minus','N2Oplus','Oplus','Ominus',...
11% 'O2plus', 'O2minus,'CO2','CO','COplus','C','Cplus',...
12% 'Cminus','CN','CNplus','CNminus','CNN','NCO','NCN','Ar',...
13% 'Arplus'}
14%
15% See wiki or list_species() for more predefined sets of species
16%
17% @author: Alberto Cuadra Lara
18% PhD Candidate - Group Fluid Mechanics
19% Universidad Carlos III de Madrid
20%
21% Last update Jan 10 2023
22% -------------------------------------------------------------------------
23
24LS = {'eminus', 'Ar', 'Arplus', 'N', ...
25 'Nplus', 'Nminus', 'NO', 'NOplus', 'NO2', ...
26 'NO2minus', 'NO3', 'NO3minus', 'N2', 'N2plus', ...
27 'N2minus', 'N2O', 'N2Oplus', 'N2O3', 'N2O4', ...
28 'N2O5', 'N3', 'O', 'Oplus', 'Ominus', 'O2', 'O2plus', ...
29 'O2minus', 'O3'};
30
31% LS = {'N2', 'O2', 'Ar'};
32
33%% INITIALIZE
34self = App(LS);
35
36self.TN.FLAG_FAST = false;
37self.TN.FLAG_TCHEM_FROZEN = false;
38%% INITIAL CONDITIONS
39self = set_prop(self, 'TR', 226.65, 'pR', 0.0117);
40self.PD.S_Oxidizer = {'N2', 'O2', 'Ar'};
41self.PD.N_Oxidizer = [78, 21, 1] ./ 21;
42sound_velocity = compute_sound(self.PD.TR.value, self.PD.pR.value, self.PD.S_Oxidizer, self.PD.N_Oxidizer, 'self', self);
43%% ADDITIONAL INPUTS (DEPENDS OF THE PROBLEM SELECTED)
44Mach_number = 20;
45self = set_prop(self, 'u1', sound_velocity * Mach_number, 'theta', 35);
46%% SOLVE PROBLEM
47self = solve_problem(self, 'SHOCK_POLAR_R');
48%% DISPLAY RESULTS (PLOTS)
49post_results(self);