Challenge

Project 1 - Parsing NASA thermodynamic data

Parsing NASA thermodynamic data

Introduction:

NASA has developed comprehensive thermodynamic databases and associated polynomials for over 1000 species. These polynomials allow for the calculation of important thermodynamic properties such as specific heat capacity, enthalpy, and entropy. By parsing the coefficients and temperature ranges from NASA files, we can accurately evaluate and visualize these properties for selected gas species. This project aims to utilize NASA's thermodynamic data to enhance our understanding of thermodynamic behavior in various scientific and engineering applications.

File Parsing:

File parsing is a method used to extract relevant data from a file or input by splitting it into smaller parts that can be easily stored or manipulated. In this project, we perform file parsing on the NASA thermodynamic data file, which contains information for 53 gas species across 213 lines. By parsing the file, we extract the necessary coefficients and temperature ranges required for calculating thermodynamic properties.

Specific Heat:

Specific heat, also known as specific heat capacity or mass specific heat, is the amount of heat energy required to raise the temperature of a body per unit of mass. It is measured in joules per gram-kelvin (J/g·K) in the SI system. Specific heat determines how a substance absorbs or releases heat when its temperature changes.

Enthalpy:

Enthalpy is a thermodynamic property that measures the total heat content of a system. It represents the sum of the internal energy of the system and the product of its pressure and volume. Enthalpy provides information about the heat absorbed or released during a process at constant pressure.

Entropy:

Entropy is a measure of the amount of energy in a system that is unavailable to do work. It is also associated with the number of possible arrangements of atoms or molecules in a system. Entropy is a measure of the system's disorder or randomness and plays a crucial role in thermodynamics.

Gas Constant:

The gas constant, denoted by R, is a fundamental physical constant in thermodynamics and is expressed in terms of energy per temperature increment per mole. It relates the macroscopic properties of gases, such as pressure, volume, and temperature, to the microscopic behavior of individual gas molecules. The gas constant is equivalent to the Boltzmann constant but expressed in different units.

Molecular Weight:

Molecular weight is a measure of the sum of the atomic weight values of the atoms in a molecule. It is used in chemistry to determine the stoichiometry of chemical reactions and equations. Molecular weight provides valuable information about the composition and properties of substances and is an essential factor in various calculations and analyses.

NASA Thermodynamic File:

The THERMO.dat file contains NASA thermodynamic data for 53 species, including their temperature ranges and 14 coefficients. These coefficients can be used to calculate specific heat (Cp), entropy (S), and enthalpy (H) for the species using the following formulas:

  • Specific Heat (Cp): Cp = R * (a1 + (a2 * T) + (a3 * T.^2) + (a4 * T.^3) + (a5 * T.^4))

  • Entropy (S): S = R * (a1 .* log(T) + (a2 * T) + (a3 * T.^2)/2 + (a4 * T^3)/3 + (a5 * T.^4)/4 + a7)

  • Enthalpy (H): H = R * T * (a1 + (a2 * T)/2 + (a3 * T.^2)/3 + (a4 * T.^3)/4 + (a5 * T.^4)/5 + a6/T)

In these formulas, R represents the Universal Gas Constant, T represents the temperature, and a1 to a7 are the coefficients associated with each species. By substituting the appropriate values into these formulas, you can calculate the specific heat, entropy, and enthalpy in kilojoules per mole (KJ/mol).

To calculate the specific heat, entropy, and enthalpy for a particular species, use the given temperature and the corresponding coefficients (a1 to a7) in the respective formulas.

Coding:

Specific heat code:

%Specific heat
function [Cp] = Specific_heat(a1,a2,a3,a4,a5,a8,a9,a10,a11,a12,T,R,L_mid_tempt)

    % calculating specific heat

    if (T <= L_mid_tempt)
        Cp = R*(a8 + (a9*T) + (a10*(T).^2) + (a11*(T).^3) + (a12*(T).^4));
    else
        Cp = R*(a1 + (a2*T) + (a3*(T).^2) + (a4*(T).^3) + (a5*(T).^4));
    end
end

Explanation:

  1. function [Cp] = Specific_heat(a1, a2, a3, a4, a5, a8, a9, a10, a11, a12, T, R, L_mid_tempt): Defines a function named Specific_heat that takes in several coefficients (a1 to a12), temperature T, gas constant R, and a reference temperature L_mid_tempt. It returns the calculated specific heat Cp.
  2. if (T <= L_mid_tempt): Checks if the temperature T is less than or equal to the reference temperature L_mid_tempt.
  3. Cp = R*(a8 + (a9*T) + (a10*(T).^2) + (a11*(T).^3) + (a12*(T).^4));: If the condition is true, the specific heat is calculated using the coefficients a8 to a12 and the temperature T according to the specified formula.
  4. else: If the condition is false, indicating that the temperature is greater than the reference temperature.
  5. Cp = R*(a1 + (a2*T) + (a3*(T).^2) + (a4*(T).^3) + (a5*(T).^4));: The specific heat is calculated using the coefficients a1 to a5 and the temperature T according to a different formula.
  6. end: Ends the conditional statement.
  7. The calculated specific heat Cp is returned as the output of the function.

Entropy code:

%Entropy
function [S] = Entropy(a1,a2,a3,a4,a5,a7,a8,a9,a10,a11,a12,a14,T,R,L_mid_tempt)

    % calculating entropy

    if (T <= L_mid_tempt)
        S = R.*(a8.*log(T) + (a9*T) + ((a10*(T).^2)/2) + ((a11*(T).^3)/3) + ((a12*(T).^4)/4) + a14);
    else
        S = R.*(a1.*log(T) + (a2*T) + (a3*(T).^2)/2 + (a4*(T).^3)/3 + (a5*(T).^4)/4 + a7);
    end
end

Explanation:

  1. function [S] = Entropy(a1, a2, a3, a4, a5, a7, a8, a9, a10, a11, a12, a14, T, R, L_mid_tempt): Defines a function named Entropy that takes in several coefficients (a1 to a14), temperature T, gas constant R, and a reference temperature L_mid_tempt. It returns the calculated entropy S.
  2. if (T <= L_mid_tempt): Checks if the temperature T is less than or equal to the reference temperature L_mid_tempt.
  3. S = R.*(a8.*log(T) + (a9*T) + ((a10*(T).^2)/2) + ((a11*(T).^3)/3) + ((a12*(T).^4)/4) + a14);: If the condition is true, the entropy is calculated using the coefficients a8 to a12 and a14, along with the temperature T, according to the specified formula.
  4. else: If the condition is false, indicating that the temperature is greater than the reference temperature.
  5. S = R.*(a1.*log(T) + (a2*T) + (a3*(T).^2)/2 + (a4*(T).^3)/3 + (a5*(T).^4)/4 + a7);: The entropy is calculated using the coefficients a1 to a5 and a7, along with the temperature T, according to a different formula.
  6. end: Ends the conditional statement.
  7. The calculated entropy S is returned as the output of the function.

Enthalpy code:

%Enthalpy
function [H] = Enthalpy(a1, a2, a3, a4, a5, a6, a8, a9, a10, a11, a12, a13, T, R, L_mid_tempt)

    % calculating enthalpy

    if (T <= L_mid_tempt)
        H = R*T.*(a8 + ((a9*T)/2) + ((a10*(T).^2)/3) + ((a11*(T).^3)/4) + ((a12*(T).^4)/5) ...
        + ((a13./T)));
    else
        H = R*T.*(a1 + ((a2*T)/2) + ((a3*(T).^2)/3) + ((a4*(T).^3)/4) + ((a5*(T).^4)/5) + ...
        ((a6./T)));
    end

end

Explanation:

  1. function [H] = Enthalpy(a1, a2, a3, a4, a5, a6, a8, a9, a10, a11, a12, a13, T, R, L_mid_tempt): Defines a function named Enthalpy that takes in several coefficients (a1 to a13), temperature T, gas constant R, and a reference temperature L_mid_tempt. It returns the calculated enthalpy H.
  2. if (T <= L_mid_tempt): Checks if the temperature T is less than or equal to the reference temperature L_mid_tempt.
  3. H = R*T.*(a8 + ((a9*T)/2) + ((a10*(T).^2)/3) + ((a11*(T).^3)/4) + ((a12*(T).^4)/5) + ((a13./T)));: If the condition is true, the enthalpy is calculated using the coefficients a8 to a13 and the temperature T according to the specified formula.
  4. else: If the condition is false, indicating that the temperature is greater than the reference temperature.
  5. H = R*T.*(a1 + ((a2*T)/2) + ((a3*(T).^2)/3) + ((a4*(T).^3)/4) + ((a5*(T).^4)/5) + ((a6./T)));: The enthalpy is calculated using the coefficients a1 to a6 and the temperature T according to a different formula.
  6. end: Ends the conditional statement.
  7. The calculated enthalpy H is returned as the output of the function.

Moleculer weight code:

%Moleculer weight
function w = moler_weight(s)
    % Defining Atomic name of the species
    atom_name = ['H', 'C', 'O', 'N', 'Ar'];

    % Defining Atomic masses of main species
    atom_weight = [1.008 12.011 15.999 14.007 39.948];

   w = 0;
  for i = 1:length(s)
    for j = 1:length(atom_name)
        if strcmp(s(i),atom_name(j))
            w = w + atom_weight(j);
            m = j;
         end
     end

   n = str2double(s(i));
    if n > 1
        w = w+(atom_weight(m)*(n-1));
    end
   end
   fprintf('Moleculer weight of %s : %d\n',s,w);
end

Explanation:

  1. function w = moler_weight(s): Defines a function named moler_weight that takes a string argument s and returns the molecular weight w.
  2. atom_name = ['H', 'C', 'O', 'N', 'Ar'];: Defines an array atom_name that contains the atomic symbols for hydrogen, carbon, oxygen, nitrogen, and argon.
  3. atom_weight = [1.008 12.011 15.999 14.007 39.948];: Defines an array atom_weight that contains the atomic masses of hydrogen, carbon, oxygen, nitrogen, and argon.
  4. w = 0;: Initializes the variable w to 0, which will be used to accumulate the molecular weight.
  5. for i = 1:length(s): Starts a loop that iterates over the characters of the input string s.
  6. for j = 1:length(atom_name): Starts a nested loop that iterates over the elements of atom_name.
  7. if strcmp(s(i),atom_name(j)): Checks if the current character in s is equal to the current element in atom_name.
  8. w = w + atom_weight(j);: If the character in s matches an element in atom_name, the corresponding atomic weight is added to the total molecular weight w.
  9. m = j;: Stores the index of the matched atom in the variable m for later use.
  10. n = str2double(s(i));: Converts the current character in s to a numeric value and stores it in n.
  11. if n > 1: Checks if the numeric value n is greater than 1, indicating the presence of multiple atoms of the same type.
  12. w = w + (atom_weight(m) * (n-1));: If there are multiple atoms, the additional contribution to the molecular weight is calculated by multiplying the atomic weight by n-1 and adding it to w.
  13. end: Ends the inner loop.
  14. end: Ends the outer loop.
  15. fprintf('Moleculer weight of %s : %d\n',s,w);: Prints the calculated molecular weight w for the given species s

Main code:

%Parsing NASA Thermodynamic data
clear all
close all
clc


f = fopen('THERMO.dat','r');
header = fgetl(f);
thermo_tempt = fgetl(f);
a = strsplit(thermo_tempt,' ');

G_low_tempt = str2num(a{2});
G_mid_tempt = str2num(a{3});
G_high_tempt = str2num(a{4});

comment_1 = fgetl(f);
comment_2 = fgetl(f);
comment_3 = fgetl(f);

R=8.314; % Gas Constant
sp = cell(1, 53);
W = zeros(1, 53);

for i = 1:53

    fprintf('\n');
    line_1 = fgetl(f);
    l1 = strsplit(line_1,' ');
    species_name = l1{1};
    fprintf('-------------------------------------------\nSpecies: %s \n-------------------------------------------\n',species_name);
    % g = strfind(line_1,'G');
    % g = line_1(g(1)+3:end-5);
    % G = strsplit(g,' ');
    L_low_tempt = str2num(l1{length(l1)-3})
    L_mid_tempt = str2num(l1{length(l1)-1})
    L_high_tempt = str2num(l1{length(l1)-2})
    T = linspace(L_low_tempt,L_high_tempt,500);

    line_2 = fgetl(f);
    cofic = strfind(line_2,'E');
    cofic_1 = line_2(1:cofic(1)+3);
    cofic_2 = line_2(cofic(1)+4:cofic(2)+3);
    cofic_3 = line_2(cofic(2)+4:cofic(3)+3);
    cofic_4 = line_2(cofic(3)+4:cofic(4)+3);
    cofic_5 = line_2(cofic(4)+4:cofic(5)+3);

    line_3 = fgetl(f);
    cofic = strfind(line_3,'E');
    cofic_6 = line_3(1:cofic(1)+3);
    cofic_7 = line_3(cofic(1)+4:cofic(2)+3);
    cofic_8 = line_3(cofic(2)+4:cofic(3)+3);
    cofic_9 = line_3(cofic(3)+4:cofic(4)+3);
    cofic_10 = line_3(cofic(4)+4:cofic(5)+3);

    line_4 = fgetl(f);
    cofic = strfind(line_4,'E');
    cofic_11 = line_4(1:cofic(1)+3);
    cofic_12 = line_4(cofic(1)+4:cofic(2)+3);
    cofic_13 = line_4(cofic(2)+4:cofic(3)+3);
    cofic_14 = line_4(cofic(3)+4:cofic(4)+3);

    % convert coefficients from string to numeric values
        cofic_1 = str2num(cofic_1);
        cofic_2 = str2num(cofic_2);
        cofic_3 = str2num(cofic_3);
        cofic_4 = str2num(cofic_4);
        cofic_5 = str2num(cofic_5);
        cofic_6 = str2num(cofic_6);
        cofic_7 = str2num(cofic_7);
        cofic_8 = str2num(cofic_8);
        cofic_9 = str2num(cofic_9);
        cofic_10 = str2num(cofic_10);
        cofic_11 = str2num(cofic_11);
        cofic_12 = str2num(cofic_12);
        cofic_13 = str2num(cofic_13);
        cofic_14 = str2num(cofic_14);

    % calculate Entropy
    S = Entropy(cofic_1, cofic_2, cofic_3, cofic_4, cofic_5, cofic_7, cofic_8, cofic_9, cofic_10, cofic_11, cofic_12, cofic_14, T, R, L_mid_tempt);

    % calculate specific heat
    Cp = Specific_heat(cofic_1, cofic_2, cofic_3, cofic_4, cofic_5, cofic_8, cofic_9, cofic_10, cofic_11, cofic_12, T, R, L_mid_tempt);

    % calculate Enthalpy
    H = Enthalpy(cofic_1, cofic_2, cofic_3, cofic_4, cofic_5, cofic_6, cofic_8, cofic_9, cofic_10, cofic_11, cofic_12, cofic_13, T, R, L_mid_tempt);

    % Calculate Molecular weight of the Species
    w = moler_weight(species_name);

   %Plotting
     %Directry cration
        mkdir(species_name)
        cd(sprintf(species_name))

   %plot 1 Enthalphy and Temperaure

        figure(1)
        plot(T,H,'linewidth',3,'color','b');
        xlabel('Temperature in [K]');
        ylabel('Enthalphy [KJ/mol]');
        grid on
        title(sprintf('Enthalphy VS Temperature for species %s',species_name));

        saveas (figure(1),'H_vs_T.jpg');

         %plot 2 Entropy and Temperature

        figure(2)
        plot(T,S,'linewidth',3,'color','r');
        xlabel('Temperature in [K]');
        ylabel('Entropy [KJ/mol-k]');
        grid on
        title(sprintf('Entropy VS Temperature for species %s',species_name));

        saveas (figure(2),'S_vs_T.jpg');

         %plot 3 Specific Heat and Temperature

        figure(3)
        plot(T,Cp,'linewidth',3,'color','g');
        xlabel('Temperature in [K]');
        ylabel('Specific Heat [KJ]');
        grid on
        title(sprintf('Specific Heat VS Temperature of species %s',species_name));

        saveas (figure(3),'Cp_vs_T.jpg');

        cd('G:\My Drive\Skill lync\Matlabs\Metlabs for mechanical Engg\Project 1');

end

Explanation:

  1. f = fopen('THERMO.dat','r');: Opens the file 'THERMO.dat' in read mode and assigns the file identifier to variable f.
  2. header = fgetl(f);: Reads the first line of the file and assigns it to the variable header.
  3. thermo_tempt = fgetl(f);: Reads the second line of the file and assigns it to the variable thermo_tempt.
  4. a = strsplit(thermo_tempt,' ');: Splits the string in thermo_tempt into cell array elements using space (' ') as the delimiter and assigns it to the variable a.
  5. G_low_tempt = str2num(a{2});: Converts the second element of a to a number and assigns it to G_low_tempt.
  6. G_mid_tempt = str2num(a{3});: Converts the third element of a to a number and assigns it to G_mid_tempt.
  7. G_high_tempt = str2num(a{4});: Converts the fourth element of a to a number and assigns it to G_high_tempt.
  8. comment_1 = fgetl(f);: Reads the third line of the file and assigns it to comment_1.
  9. comment_2 = fgetl(f);: Reads the fourth line of the file and assigns it to comment_2.
  10. comment_3 = fgetl(f);: Reads the fifth line of the file and assigns it to comment_3.
  11. R=8.314; % Gas Constant: Assigns the value 8.314 to the variable R, which represents the gas constant.
  12. sp = cell(1, 53);: Creates a cell array sp with 53 elements.
  13. W = zeros(1, 53);: Creates a row vector W of size 1x53 filled with zeros.
  14. for i = 1:53: Starts a loop that iterates from 1 to 53.
  15. line_1 = fgetl(f);: Reads the next line of the file and assigns it to line_1.
  16. l1 = strsplit(line_1,' ');: Splits the string in line_1 into cell array elements using space (' ') as the delimiter and assigns it to l1.
  17. species_name = l1{1};: Assigns the first element of l1 to species_name.
  18. L_low_tempt = str2num(l1{length(l1)-3});: Converts the third last element of l1 to a number and assigns it to L_low_tempt.
  19. L_mid_tempt = str2num(l1{length(l1)-1});: Converts the second last element of l1 to a number and assigns it to L_mid_tempt.
  20. L_high_tempt = str2num(l1{length(l1)-2});: Converts the last element of l1 to a number and assigns it to L_high_tempt.
  21. T = linspace(L_low_tempt,L_high_tempt,500);: Creates a row vector T with 500 equally spaced points between L_low_tempt and L_high_tempt.
  22. line_2 = fgetl(f);: Reads the next line of the file and assigns it to line_2.
  23. cofic = strfind(line_2,'E');: Finds the indices of the character 'E' in line_2 and assigns them to cofic.
  24. cofic_1 = line_2(1:cofic(1)+3);: Extracts a substring from line_2 starting from index 1 to the index of the first 'E' plus 3 characters.
  25. cofic_2 = line_2(cofic(1)+4:cofic(2)+3);: Extracts a substring from line_2 starting from the index of the first 'E' plus 4 characters to the index of the second 'E' plus 3 characters.
  26. cofic_3 = line_2(cofic(2)+4:cofic(3)+3);: Extracts a substring from line_2 starting from the index of the second 'E' plus 4 characters to the index of the third 'E' plus 3 characters.
  27. cofic_4 = line_2(cofic(3)+4:cofic(4)+3);: Extracts a substring from line_2 starting from the index of the third 'E' plus 4 characters to the index of the fourth 'E' plus 3 characters.
  28. cofic_5 = line_2(cofic(4)+4:cofic(5)+3);: Extracts a substring from line_2 starting from the index of the fourth 'E' plus 4 characters to the index of the fifth 'E' plus 3 characters.
  29. line_3 = fgetl(f);: Reads the next line of the file and assigns it to line_3.
  30. cofic = strfind(line_3,'E');: Finds the indices of the character 'E' in line_3 and assigns them to cofic.
  31. cofic_6 = line_3(1:cofic(1)+3);: Extracts a substring from line_3 starting from index 1 to the index of the first 'E' plus 3 characters.
  32. cofic_7 = line_3(cofic(1)+4:cofic(2)+3);: Extracts a substring from line_3 starting from the index of the first 'E' plus 4 characters to the index of the second 'E' plus 3 characters.
  33. cofic_8 = line_3(cofic(2)+4:cofic(3)+3);: Extracts a substring from line_3 starting from the index of the second 'E' plus 4 characters to the index of the third 'E' plus 3 characters.
  34. cofic_9 = line_3(cofic(3)+4:cofic(4)+3);: Extracts a substring from line_3 starting from the index of the third 'E' plus 4 characters to the index of the fourth 'E' plus 3 characters.
  35. cofic_10 = line_3(cofic(4)+4:cofic(5)+3);: Extracts a substring from line_3 starting from the index of the fourth 'E' plus 4 characters to the index of the fifth 'E' plus 3 characters.
  36. line_4 = fgetl(f);: Reads the next line of the file and assigns it to line_4.
  37. cofic = strfind(line_4,'E');: Finds the indices of the character 'E' in line_4 and assigns them to cofic.
  38. cofic_11 = line_4(1:cofic(1)+3);: Extracts a substring from line_4 starting from index 1 to the index of the first 'E' plus 3 characters.
  39. cofic_12 = line_4(cofic(1)+4:cofic(2)+3);: Extracts a substring from line_4 starting from the index of the first 'E' plus 4 characters to the index of the second 'E' plus 3 characters.
  40. cofic_13 = line_4(cofic(2)+4:cofic(3)+3);: Extracts a substring from line_4 starting from the index of the second 'E' plus 4 characters to the index of the third 'E' plus 3 characters.
  41. cofic_14 = line_4(cofic(3)+4:cofic(4)+3);: Extracts a substring from line_4 starting from the index of the third 'E' plus 4 characters to the index of the fourth 'E' plus 3 characters.
  42. cofic_1 = str2num(cofic_1);: Converts cofic_1 from a string to a numeric value.
  43. cofic_2 = str2num(cofic_2);: Converts cofic_2 from a string to a numeric value.
  44. cofic_3 = str2num(cofic_3);: Converts cofic_3 from a string to a numeric value.
  45. cofic_4 = str2num(cofic_4);: Converts cofic_4 from a string to a numeric value.
  46. cofic_5 = str2num(cofic_5);: Converts cofic_5 from a string to a numeric value.
  47. cofic_6 = str2num(cofic_6);: Converts cofic_6 from a string to a numeric value.
  48. cofic_7 = str2num(cofic_7);: Converts cofic_7 from a string to a numeric value.
  49. cofic_8 = str2num(cofic_8);: Converts cofic_8 from a string to a numeric value.
  50. cofic_9 = str2num(cofic_9);: Converts cofic_9 from a string to a numeric value.
  51. cofic_10 = str2num(cofic_10);: Converts cofic_10 from a string to a numeric value.
  52. cofic_11 = str2num(cofic_11);: Converts cofic_11 from a string to a numeric value.
  53. cofic_12 = str2num(cofic_12);: Converts cofic_12 from a string to a numeric value.
  54. cofic_13 = str2num(cofic_13);: Converts cofic_13 from a string to a numeric value.
  55. cofic_14 = str2num(cofic_14);: Converts cofic_14 from a string to a numeric value.
  56. S = Entropy(cofic_1, cofic_2, cofic_3, cofic_4, cofic_5, T);: Calls the function Entropy with the arguments cofic_1, cofic_2, cofic_3, cofic_4, cofic_5, and T, and assigns the result to S.
  57. H = Enthalpy(cofic_6, cofic_7, cofic_8, cofic_9, cofic_10, T);: Calls the function Enthalpy with the arguments cofic_6, cofic_7, cofic_8, cofic_9, cofic_10, and T, and assigns the result to H.
  58. Cp = HeatCapacity(cofic_11, cofic_12, cofic_13, cofic_14, T);: Calls the function HeatCapacity with the arguments cofic_11, cofic_12, cofic_13, cofic_14, and T, and assigns the result to Cp.
  59. sp{i} = species_name;: Assigns species_name to the i-th element of the cell array sp.
  60. W(i) = 0;: Assigns 0 to the i-th element of the vector W.
  61. W(i) = W(i) + R*T.*log(P_low./P_mid);: Updates the i-th element of W by adding the product of R, T, and the logarithm of P_low divided by P_mid.
  62. W(i) = W(i) + R*T.*log(P_mid./P_high);: Updates the i-th element of W by adding the product of R, T, and the logarithm of P_mid divided by P_high.
  63. end: Ends the loop.
  64. fclose(f);: Closes the file associated with the file identifier f.

Output:

Plots for o2, N2 and Co2 species

O2

N2

CO2

Errors faced:

Here, I have passed the string values of cofic into the methametical calculations inside the functions.

Rectified the code by coverting all the string values to numbers

Here, I have used the make directry code above the figure3 instade of figure1 which resulted in storing only the Cp_vs_T.jpg in all the species name folders. Code is recified and problem is sloved.

Referances:

https://in.mathworks.com/help/matlab/referencelist.html?type=function&s_tid=CRUX_topnav

https://www.youtube.com/watch?v=iSvvoSKWRhc

https://en.wikipedia.org/wiki/Gas_constant

https://en.wikipedia.org/wiki/Atomic_mass

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.