# Functions#

A collection of functions necessary to obtain different data in the solver module. Here we can find:

• general functions,

• root finding algorithms,

• thermodynamics properties.

## General functions#

A collection of general functions necessary to obtain different data in the solver module.

Routines
CalculatePhic(Fuel, Ninerts, phi, TP, pP, DB)#

Compute equivalence ratio in which soot appears considering complete combustion

Parameters
• Fuel (`struct`) – Struct mix with all the properties of the Fuel mixture

• Ninerts (`float`) – Number of moles of the inerts species

• phi (`float`) – Equivalence ratio [-]

• TP (`float`) – Temperature [K]

• pP (`float`) – Pressure [bar]

• DB (`struct`) – Database

Returns

phi_c (float) – Equivalence ratio in which soot appears [-]

ComputeProperties(self, SpeciesMatrix, p, T)#

Compute properties from the given SpeciesMatrix at pressure p [bar] and temperature T [K]

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• SpeciesMatrix (`float`) – Matrix with the properties values of the mixture

• p (`float`) – Pressure [bar]

• T (`float`) – Temperature [K]

Returns

mix (struct) – Properties of the mixture

Compute_YFuel(mix, mix_Fuel)#

Compute fuel mass fraction [-]

Parameters
• mix (`struct`) – Properties of the mixture (fuel + oxidizer + inerts)

• mix_Fuel (`struct`) – Properties of the mixture (fuel)

Returns

Yi_Fuel (float) – Mass fractions of the fuel mixture

Compute_density(mix)#

Get density of the set of mixtures

Parameters

mix (`struct`) – Properties of the mixture/s

Returns

rho (float) – Vector with the densities of all the mixtures

Compute_phi_c(Fuel)#

Compute guess of equivalence ratio in which soot appears considering complete combustion

Parameters

Fuel (`struct`) – Struct mix with all the properties of the Fuel mixture

Returns

phi_c (float) – Equivalence ratio in which soot appears [-]

SetSpecies(self, species, moles, T)#

Fill the properties matrix with the data of the mixture

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• species (`cell`) – Species contained in the system

• moles (`float`) – Moles of the species in the mixture [mol]

• T (`float`) – Temperature [K]

Returns

M (float) – properties matrix

Stoich_Matrix(self)#

Initialize the stoichiometric matrix and properties matrix

Parameters

self (`struct`) – Data of the mixture, conditions, and databases

Returns

self (struct) – Data of the mixture, conditions, and databases

cell2vector(value, varargin)#

Convert values of a individual cell into a vector. If the value correspond with a struct it can return as a vector the values of a given fieldname.

Parameters

value (`cell or struct`) – Data of the mixture, conditions, and databases

Optional Args:

field (str): Fieldname of the given value (struct)

Returns

vector (any) – Vector with the values of the individual cell/fieldname (struct)

compute_first_derivative(x, y)#

Compute first central derivate using a non-uniform grid

Parameters
• x (`float`) – Grid values

• y (`float`) – Values for the corresponding grid

Returns

dxdy (float) – Value of the first derivate for the given grid and its corresponding values

compute_temperature_mixture(self, species, moles, temperatures)#

Compute equilibrium temperature [K] of a gaseous mixture compound of n species with species at different temperatures.

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• species (`str`) – Cell array with the species of the mixture

• moles – Moles of the species in the mixture [mol]

• temperatures – Vector or cell array with the temperatures of each species

Returns

T (float) – Temperature of the mixture at equilibrium

find_ind(LS, species)#

Find the index of the species based on the given list (LS)

Parameters
• LS (`cell`) – List of species

• species (`cell`) – Species to find index values

Returns

index (float) – List with the index of the species based on the given list (LS)

get_order(value)#

Get order of magnitude of a number in base 10

Parameters

value (`float`) – number in base 10

Returns

order (float) – order of magnitude of a number in base 10

get_partial_derivative(self, mix)#

Get value of the partial derivative for the set problem type [kJ/K] (HP, EV) or [kJ/K^2] (SP, SV)

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• mix (`struct`) – Properties of the mixture

Returns

value (float) – Value of the partial derivative for the set problem type [kJ/K] (HP, EV) or [kJ/K^2] (SP, SV)

get_transformation(self, field)#

Get the corresponding value of the field in Problem Description (PD)

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• field (`str`) – Fieldname in Problem Description (PD)

Returns

value (float) – Value/s assigned to the field

list_phase_species(self, LS)#

Establish cataloged list of species according to the state of the phase (gaseous or condensed). It also obtains the indices of cryogenic liquid species, i.e., liquified gases.

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• LS (`cell`) – List of species

Returns

self (struct) – Data of the mixture, conditions, and databases

set_prop(self, varargin)#

Assign property values to the respective variables

Parameters

self (`struct`) – Data of the mixture, conditions, and databases

Optional Args:
• field (str): Fieldname in Problem Description (PD)

• value (float): Value/s to assing in the field in Problem Description (PD)

Returns

self (struct) – Data of the mixture, conditions, and databases

set_transformation(self, field, value)#

Set the corresponding value of the field in Problem Description (PD)

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• field (`str`) – Fieldname in Problem Description (PD)

• value (`float`) – Value/s to assign to the field

Returns

self (struct) – Data of the mixture, conditions, and databases

soundspeed_eq(self, mix, phi, P0, T0)#

Compute speed of sound at equilibrium

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• mix (`struct`) – Struct mix with all the properties of the mixture

• phi (`float`) – Equivalence ratio [-]

• P0 (`float`) – Pressure [bar]

• T0 (`float`) – Temperature [K]

Returns

sound (float) – sound speed [m/s]

vector2cell(value)#

Create cell array from vector

Parameters

value (`any`) – Vector with data of any type

Returns

c (cell) – Cell with the values of the vector

## Root finding algorithms#

Roots algorithm used to obtain the temperature at equilibrium for a given thermochemical transformation. The methods implemented are:

• Newton-Raphson method.

• Steffensen-Aitken method.

Routines
print_error_root(it, itMax, T, STOP)#

Print error of the method if the number of iterations is greater than maximum iterations allowed

Parameters
• it (`float`) – Number of iterations executed in the method

• itMax (`float`) – Maximum nNumber of iterations allowed in the method

• T (`float`) – Temperature [K]

• STOP (`float`) – Relative error [-]

newton(self, mix1, pP, field, x0)#

Find the temperature [K] (root) for the set chemical transformation at equilibrium using the Newton-Raphson method

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• mix1 (`struct`) – Properties of the initial mixture

• pP (`float`) – Pressure [bar]

• field (`str`) – Fieldname in Problem Description (PD)

• x0 (`float`) – Guess temperature [K]

Returns

Tuple containing

• x (float): Temperature at equilibrium [K]

• STOP (float): Relative error [-]

get_gpoint(self, mix1, pP, field, x0)#

Get fixed point of a function based on the chemical transformation

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• mix1 (`struct`) – Properties of the initial mixture

• pP (`float`) – Pressure [bar]

• field (`str`) – Fieldname in Problem Description (PD)

• x0 (`float`) – Guess temperature [K]

Returns

Tuple containing

• gpoint (float): Fixed point of the function [kJ] (HP, EV) or [kJ/K] (SP, SV)

• gpoint_relative (float): Fixed relative point of the function [kJ] (HP, EV) or [kJ/K] (SP, SV)

get_point(x_vector, g_vector)#

Get point of the fixed point function

Parameters
• x_vector (`float`) – Guess temperature [K]

• g_vector (`struct`) – Fixed points of the function [kJ] (HP, EV) or [kJ/K] (SP, SV)

Returns

point (float) – Point of the function [K]

get_point_aitken(x0, g_vector)#

Get fixed point of a function based on the chemical transformation using the Aitken acceleration method

Parameters
• x0 (`float`) – Guess temperature [K]

• g_vector (`struct`) – Fixed points of the function [kJ] (HP, EV) or [kJ/K] (SP, SV)

Returns

point (float) – Point of the function [K]

steff(self, mix1, pP, field, x0)#

Find the temperature [K] (root) for the set chemical transformation at equilibrium using the Steffenson-Aitken method

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• mix1 (`struct`) – Properties of the initial mixture

• pP (`float`) – Pressure [bar]

• field (`str`) – Fieldname in Problem Description (PD)

• x0 (`float`) – Guess temperature [K]

Returns

Tuple containing

• x (float): Temperature at equilibrium [K]

• STOP (float): Relative error [-]

steff_guess(self, mix1, pP, field)#

Find a estimate of the temperature for the set chemical equilibrium transformation

Parameters
• self (`struct`) – Data of the mixture, conditions, and databases

• mix1 (`struct`) – Properties of the initial mixture

• pP (`float`) – Pressure [bar]

• field (`str`) – Fieldname in Problem Description (PD)

Returns

x0 (float) – Guess temperature [K]

## Thermodynamic properties#

Functions to obtain thermodynamic properties from a given mixture.

Routines

Get the adiabatic index [-] of the mixture from the ratio of the specific heat capacities

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Adiabatic index of the mixture [-]

Get the adiabatic index [-] of the mixture from definition of sound velocity

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Adiabatic index [-] of the mixture

cp_mass(mix)#

Get the mass-basis specific heat at constant pressure [kJ/kg-K] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mass-basis specific heat at constant pressure [kJ/kg-K] of the mixture

cp_mole(mix)#

Get the mole-basis specific heat at constant pressure [kJ/mol-K] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mole-basis specific heat at constant pressure [kJ/mol-K] of the mixture

cv_mass(mix)#

Get the mass-basis specific heat at constant volume [kJ/kg-K] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mass-basis specific heat at constant volume [kJ/kg-K] of the mixture

cv_mole(mix)#

Get the mole-basis specific heat at constant volume [kJ/mol-K] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mole-basis specific heat at constant volume [kJ/mol-K] of the mixture

density(mix)#

Get the density [kg/m3] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – density [kg/m3] of the mixture

enthalpy_mass(mix)#

Get the mass specific enthalpy [kJ/kg] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mass-basis specific enthalpy [kJ/kg] of the mixture

enthalpy_mole(mix)#

Get the mole specific enthalpy [kJ/mol] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mole-basis specific enthalpy [kJ/mol] of the mixture

entropy_mass(mix)#

Get the mass specific entropy [kJ/kg-K] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mass-basis specific entropy [kJ/kg-K] of the mixture

entropy_mole(mix)#

Get the mole specific entropy [kJ/mol-K] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mole-basis specific entropy [kJ/mol-K] of the mixture

equivalenceRatio(mix)#

Get the equivalence ratio of the initial mixture [-]

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Equivalence ratio of the initial mixture [-]

gibbs_mass(mix)#

Get the mass specific gibbs free energy [kJ/kg] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mass-basis specific gibbs free energy [kJ/kg] of the mixture

gibbs_mole(mix)#

Get the mole specific gibbs free energy [kJ/mol] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mole-basis specific gibbs free energy [kJ/mol] of the mixture

intEnergy_mass(mix)#

Get the mass specific internal energy [kJ/kg] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mass-basis specific internal energy [kJ/kg] of the mixture

intEnergy_mole(mix)#

Get the mole specific internal energy [kJ/mol] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mole-basis specific internal energy [kJ/mol] of the mixture

massFractions(mix)#

Get the mass fractions of all the species in the mixture [-]

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mass fractions of all the species in the mixture [-]

meanMolecularWeight(mix)#

Get the mean molecular weight [g/mol] of the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mean molecular weight [g/mol] of the mixture

moleFractions(mix)#

Get the mole fractions of all the species in the mixture [-]

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Mole fractions of all the species in the mixture [-]

moles(mix)#

Get the moles [mol] of all the species in the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Moles [mol] of all the species in the mixture

pressure(mix)#

Get the pressure [bar] in the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Pressure [bar] in the mixture

soundspeed(mix)#

Get the speed of sound [m/s] in the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Speed of sound [m/s] in the mixture

temperature(mix)#

Get the temperature [K] in the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Temperature [K] in the mixture

velocity_relative(mix)#

Get the velocity of the gases relative to the shock front [m/s] in the mixture

Parameters

mix (`struct`) – Properties of the mixture

Returns

value (float) – Velocity of the gases relative to the shock front [m/s] in the mixture