git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@1559 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -1,92 +1,92 @@
|
||||
function [varargout] = readlog(varargin)
|
||||
% Read LAMMPS log files
|
||||
% input is log file name with path
|
||||
% output is a structure --> out
|
||||
% out.Chead --> has heading of columns in each run
|
||||
% out.data --> has the data during each run in the form of string
|
||||
% Type str2num(out.data{i}) to get the numeric array
|
||||
%
|
||||
% Example
|
||||
% logdata = readlog('log.LAMMPS');
|
||||
%
|
||||
% Author : sarunkarthi@gmail.com
|
||||
% http://web.ics.purdue.edu/~asubrama/pages/Research_Main.htm
|
||||
% Arun K. Subramaniyan
|
||||
% School of Aeronautics and Astronautics
|
||||
% Purdue University, West Lafayette, IN - 47907, USA.
|
||||
|
||||
logfile = varargin{1};
|
||||
try
|
||||
fid = fopen(logfile,'r');
|
||||
catch
|
||||
error('Log file not found!');
|
||||
end
|
||||
|
||||
loop = 1;
|
||||
while feof(fid) == 0
|
||||
%----------- To get first line of thermo output --------
|
||||
while feof(fid) == 0
|
||||
a = fgetl(fid);
|
||||
if length(a) > 4 && strcmp(a(1:4),'Step')
|
||||
findstep = 1;
|
||||
break;
|
||||
end
|
||||
end
|
||||
%-------------------------------------------------------
|
||||
|
||||
%---------Seperate column headings----------------------
|
||||
j=1;
|
||||
k=1;
|
||||
Ch='';
|
||||
i=1;
|
||||
while i < length(a) && findstep == 1
|
||||
for i = k : 1 : length(a)
|
||||
if strcmp(a(i),' ')
|
||||
Chead{loop,j} = Ch;
|
||||
clear Ch;
|
||||
Ch = '';
|
||||
k=i+1;
|
||||
j=j+1;
|
||||
break;
|
||||
else
|
||||
Ch = [Ch a(i)];
|
||||
end
|
||||
end
|
||||
end
|
||||
if findstep == 1
|
||||
Chead{loop,j} = Ch; % to get the last column heading
|
||||
end
|
||||
%-------------------------------------------------------
|
||||
|
||||
%----------------------Get Data-------------------------
|
||||
id = 1; %row id...
|
||||
while feof(fid) == 0
|
||||
a = fgetl(fid);
|
||||
if strcmp(a(1:4),'Loop')
|
||||
loop = loop + 1;
|
||||
break;
|
||||
else
|
||||
logdata(id,:) = str2num(a);
|
||||
id = id+1;
|
||||
end
|
||||
end
|
||||
%--------------------------------------------------------
|
||||
if feof(fid) == 0
|
||||
b = num2str(logdata);
|
||||
data{loop-1} = b;
|
||||
clear b;
|
||||
clear logdata;
|
||||
findstep = 0;
|
||||
end
|
||||
end
|
||||
fclose(fid);
|
||||
|
||||
%--------OUTPUT-------------------------------------------
|
||||
out.Chead = Chead;
|
||||
out.data = data;
|
||||
|
||||
varargout{1} = out;
|
||||
|
||||
|
||||
|
||||
function [varargout] = readlog(varargin)
|
||||
% Read LAMMPS log files
|
||||
% input is log file name with path
|
||||
% output is a structure --> out
|
||||
% out.Chead --> has heading of columns in each run
|
||||
% out.data --> has the data during each run in the form of string
|
||||
% Type str2num(out.data{i}) to get the numeric array
|
||||
%
|
||||
% Example
|
||||
% logdata = readlog('log.LAMMPS');
|
||||
%
|
||||
% Author : sarunkarthi@gmail.com
|
||||
% http://web.ics.purdue.edu/~asubrama/pages/Research_Main.htm
|
||||
% Arun K. Subramaniyan
|
||||
% School of Aeronautics and Astronautics
|
||||
% Purdue University, West Lafayette, IN - 47907, USA.
|
||||
|
||||
logfile = varargin{1};
|
||||
try
|
||||
fid = fopen(logfile,'r');
|
||||
catch
|
||||
error('Log file not found!');
|
||||
end
|
||||
|
||||
loop = 1;
|
||||
while feof(fid) == 0
|
||||
%----------- To get first line of thermo output --------
|
||||
while feof(fid) == 0
|
||||
a = fgetl(fid);
|
||||
if length(a) > 4 && strcmp(a(1:4),'Step')
|
||||
findstep = 1;
|
||||
break;
|
||||
end
|
||||
end
|
||||
%-------------------------------------------------------
|
||||
|
||||
%---------Seperate column headings----------------------
|
||||
j=1;
|
||||
k=1;
|
||||
Ch='';
|
||||
i=1;
|
||||
while i < length(a) && findstep == 1
|
||||
for i = k : 1 : length(a)
|
||||
if strcmp(a(i),' ')
|
||||
Chead{loop,j} = Ch;
|
||||
clear Ch;
|
||||
Ch = '';
|
||||
k=i+1;
|
||||
j=j+1;
|
||||
break;
|
||||
else
|
||||
Ch = [Ch a(i)];
|
||||
end
|
||||
end
|
||||
end
|
||||
if findstep == 1
|
||||
Chead{loop,j} = Ch; % to get the last column heading
|
||||
end
|
||||
%-------------------------------------------------------
|
||||
|
||||
%----------------------Get Data-------------------------
|
||||
id = 1; %row id...
|
||||
while feof(fid) == 0
|
||||
a = fgetl(fid);
|
||||
if strcmp(a(1:4),'Loop')
|
||||
loop = loop + 1;
|
||||
break;
|
||||
else
|
||||
logdata(id,:) = str2num(a);
|
||||
id = id+1;
|
||||
end
|
||||
end
|
||||
%--------------------------------------------------------
|
||||
if feof(fid) == 0
|
||||
b = num2str(logdata);
|
||||
data{loop-1} = b;
|
||||
clear b;
|
||||
clear logdata;
|
||||
findstep = 0;
|
||||
end
|
||||
end
|
||||
fclose(fid);
|
||||
|
||||
%--------OUTPUT-------------------------------------------
|
||||
out.Chead = Chead;
|
||||
out.data = data;
|
||||
|
||||
varargout{1} = out;
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user