All Courses
All Courses
Courses by Software
Courses by Semester
Courses by Domain
Tool-focused Courses
Machine learning
POPULAR COURSES
Success Stories
AIM To write a parsing code which read the thermodynamic data from nasa.dat file and plot specific heat,enthalpy and entropy vs temperature. INTRODUCTION Data parsing refers to taking input from files and using that data to do mathematical operations which helps to intrepet the data for further consideration.…
abhijeet dhillon
updated on 17 Nov 2019
AIM
To write a parsing code which read the thermodynamic data from nasa.dat file and plot
specific heat,enthalpy and entropy vs temperature.
INTRODUCTION
Data parsing refers to taking input from files and using that data to do mathematical operations which helps to intrepet the data for further consideration.
Commands such as fopen and fclose helps to open and close the data file respectively.
To read each line of the file we use fgetl which helps to understand that particular line
Code
clear all
close all
clc
f1=fopen(\'THERMO.dat\',\'r\'); // LINE 5 TO 10
skl=fgetl(f1)
sk2=fgetl(f1)
sk3=fgetl(f1)
sk4=fgetl(f1)
sk5=fgetl(f1)
for i=1:53 // LINE 12 TO 67
line1=fgetl(f1)
line2=fgetl(f1)
line3=fgetl(f1)
line4=fgetl(f1)
A=strsplit(line1,\' \')
species(i)=A(1)
B=strfind(line2,\'E\')
D=line2(1:B(1)+3)
C1=str2num(D)
E=line2(B(1)+4:B(2)+3)
C2=str2num(E)
F=line2(B(2)+4:B(3)+3)
C3=str2num(E)
G=line2(B(3)+4:B(4)+3)
C4=str2num(G)
H=line2(B(4)+4:B(5)+3)
C5=str2num(H)
I=strfind(line3,\'E\')
J=line3(1:I(1)+3)
C6=str2num(J)
K=line3(I(1)+4:I(2)+3)
C7=str2num(K)
L=line3(I(2)+4:I(3)+3)
C8=str2num(L)
M=line3(I(3)+4:I(4)+3)
C9=str2num(M)
N=line3(I(4)+4:I(5)+3)
C10=str2num(N)
O=strfind(line4,\'E\')
P=line3(1:O(1)+3)
C11=str2num(P)
Q=line3(O(1)+4:O(2)+3)
C12=str2num(Q)
R=line3(O(2)+4:O(3)+3)
C13=str2num(R)
T=line3(O(3)+4:O(4)+3)
C14=str2num(T)
molecular_weight=species
temp=linspace(200,3500,50)
R=8.31;
for j=1:50
T1=[1000]
if temp(j)<=T1
cp(j)=R*((C1+(C2.*temp(j))+C3.*(temp(j))^2+(C4.*temp(j)).^3+ C5.*(temp(j)).^4) )
h(j)=R.*temp(j).*(C1 + C2.*temp(j)./2 +C3.*(temp(j)).^2./3 +C4.*(temp(j)).^3./4+C5.*(temp(j)).^4/5+C6.*(temp(j)).^5./6)
s(j)=R.*(C1.*log(temp(j))+C2.*temp(j)+C3.*(temp(j))^2+C4.*(temp(j)).^3+ C5.*(temp(j)).^4+C7)
else
cp(j)=R*(C8+C9*temp(j)+C10*(temp(j))^2+C11*(temp(j))^3+ C12*(temp(j))^4 )
h(j)=R*temp(j)*(C8 + C9*temp(j)/2 +C10*(temp(j))^2/3 +C11*(temp(j))^3/4+C12*(temp(j))^4/5+C13*(temp(j))^5/6)
s(j)=R*(C8*log(temp(j))+C9*temp(j)+C10*(temp(j))^2+C11*(temp(j))^3+ C12*(temp(j))^4+C7)
end
end
end
spec=char(species) // LINE 70 TO 73
fd=sprintf(\'%s\',spec)
cur_dir=pwd
mkdir=(spec)
figure(1) // LINE 85 TO 100
plot(temp,cp)
xlabel(\'temp in K\')
ylabel(\'specific heat in KJ/K\')
title(\'TEMP VS CP\')
figure(2)
plot(temp,h)
xlabel(\'temp in K\')
ylabel(\'enthalpy in KJ/K\')
title(\'enthalpy VS CP\')
figure(3)
plot(temp,s)
xlabel(\'temp in K\')
ylabel(\'entropy in KJ/K\')
title(\'TEMP VS CP\')
saveas(1,\'cp.png\')
saveas(2,\'s.png\')
saveas(3,\'h.png\')
fclose(f1)
EXPLANATION OF THE CODE
1.Line 5 to 10
We have used fgetl to skip the first 5 lines as they are irrevalent to our aim. Skp1 refers to skipping line 1 and so forth till line 5.
2.Line 12 to 67
Since there are 53 species and each species having 4 lines consisting of species name and temprature range on the first line and the following with 14 coeffcients in the order of 5 ,5 and 4.Hence we have defined the first 4 line with line1 to line 4 for each species ,the for loop will run these 53 times hence we have defined it for i=1:53.
Next step is defining the elements in line1 we have used strsplit command which splits all the elements of th lines and we have defined the 1st element of line1 as species which represents the name of the species.
We have used the command such strdind to find the coefficents which are in character format and after that used str2num to convert them into number ,hence we found all 14 coefficents for the 53 species .
we have defined the temp range using temp and linspace which is between 200 3500 having 1000 values.After that we have used the given relation :
Now after getting all the values of the coefficients we give the if condition which states that if the temperature is below 1000 K we will use coefficient C1 TO C7 but if the temperature is above 1000 K we use the coeffiecents C8 to C14.
Here
cp=specific heat
h=enthalpy
s=entropy
These values are calculated and stored.
3.Line 70 to 73
We are basically saving the species folders to directory.
4.Line 85 to 100
We are creating the plots of different characteristics vs temp as follows :
Specific Heat vs temp
Enthalpy vs temp
Entropy vs temp
ERRORS
One major error faced was with for loop for all the species ,this was corrected by improving the thought process and writing a better code from the start
RESULTS
g
FOLDERS
Leave a comment
Thanks for choosing to leave a comment. Please keep in mind that all the comments are moderated as per our comment policy, and your email will not be published for privacy reasons. Please leave a personal & meaningful conversation.
Other comments...
Week 2 Air standard Cycle
Aim : Your code should create a PV diagram Your should output the thermal efficiency of the engine. Solution : The code for the PV diagram is as follows : import math import matplotlib.pyplot as plt #inputs p1=101325 t1=500 gamma=1.4 t3=2300 #Geometric dimensions : bore=0.1 stroke=0.1 con_rod=0.15…
18 Jun 2022 12:07 PM IST
Bird Strike - Project - 2
Aim : The final submission must include the input file, animation, and a report. - Since this is a quite difficult and involved project, students are advised to log their debugging process and include it in the report. The log is a description of the solution process and challenges encountered along the way. …
17 Apr 2022 05:21 AM IST
Week 1 Understanding Different Battery Chemistry
Aim : 1.Prepare a table which includes materials & chemical reactions occurring at the anode and cathode of LCO, LMO, NCA, NMC, LFP and LTO type of lithium ion cells.Give your detailed explanation on it 2.Compare the differences between each type of Li+ion batteries based on their characteristics Solution :…
08 Mar 2022 03:21 PM IST
Week - 10 Hyperelastic Material Models
Aim : Given the material data below, calculate the Mooney Rivlin and Ogden material constants and compare the both using stress-strain data from a Dogbone specimen tensile test with 100 percent strain. The given data is the engineering stress-strain in MPa/(mm/mm). The comparison should be shown from the d3hsp file and…
27 Feb 2022 05:08 AM IST
Related Courses
0 Hours of Content
Skill-Lync offers industry relevant advanced engineering courses for engineering students by partnering with industry experts.
© 2025 Skill-Lync Inc. All Rights Reserved.