Skip to content

Commit

Permalink
Changed value field from string array to cell array
Browse files Browse the repository at this point in the history
Allows field to store data of different type, class, and/or size
  • Loading branch information
GregVernon committed Sep 7, 2017
1 parent f01aaa7 commit f351778
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 71 deletions.
2 changes: 1 addition & 1 deletion src/processInput.m
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
for p = 1:length(SectionLines)
fvp = string(strsplit(SectionLines{p},"="));
sType(ii).field(p) = strip(fvp(1));
sType(ii).value(p) = strip(fvp(2));
sType(ii).value{p} = strip(fvp(2));
end
end
end
Expand Down
140 changes: 70 additions & 70 deletions src/verifyInput.m
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
end
end

Expand Down Expand Up @@ -69,21 +69,21 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'nx')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'ny')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'xmin')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'xmax')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'ymin')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'ymax')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
end
end

Expand Down Expand Up @@ -113,9 +113,9 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
end
end

Expand Down Expand Up @@ -145,9 +145,9 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
end
end

Expand Down Expand Up @@ -177,19 +177,19 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'relative tolerance')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'solver')
assert(any(strcmpi(pParam.solver.validValues,iParam.Values(ii))))
assert(any(strcmpi(pParam.solver.validValues,iParam.Values{ii})))
elseif strcmpi(iParam.Names(ii),'preconditioner')
assert(any(strcmpi(pParam.precond.validValues,iParam.Values(ii))))
assert(any(strcmpi(pParam.precond.validValues,iParam.Values{ii})))
elseif strcmpi(iParam.Names(ii),'k-space')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'maximum iterations')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
end
end

Expand Down Expand Up @@ -219,15 +219,15 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'step time')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'max time control')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'max time scale factor')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
end
end

Expand Down Expand Up @@ -257,9 +257,9 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
end
end

Expand Down Expand Up @@ -289,15 +289,15 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'function')
assert(any(strcmpi(pParam.precond.validValues,iParam.Values(ii))))
assert(any(strcmpi(pParam.precond.validValues,iParam.Values{ii})))
elseif strcmpi(iParam.Names(ii),'value')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'scale')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
end
end

Expand Down Expand Up @@ -327,15 +327,15 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'function')
assert(any(strcmpi(pParam.precond.validValues,iParam.Values(ii))))
assert(any(strcmpi(pParam.precond.validValues,iParam.Values{ii})))
elseif strcmpi(iParam.Names(ii),'value')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'scale')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
end
end

Expand Down Expand Up @@ -366,29 +366,29 @@

inGraph.Nodes{iRow(idx),'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam{idx}.Names(ii),'title')
assert(isstring(iParam{idx}.Values(ii)))
assert(isstring(iParam{idx}.Values{ii}))
elseif strcmpi(iParam{idx}.Names(ii),'description')
assert(isstring(iParam{idx}.Values(ii)))
assert(isstring(iParam{idx}.Values{ii}))
elseif strcmpi(iParam{idx}.Names(ii),'output filename')
assert(isstring(iParam{idx}.Values(ii)))
assert(isstring(iParam{idx}.Values{ii}))
elseif strcmpi(iParam{idx}.Names(ii),'active step')
assert(isstring(iParam{idx}.Values(ii)))
assert(isstring(iParam{idx}.Values{ii}))
elseif strcmpi(iParam{idx}.Names(ii),'output initial step')
assert(any(strcmpi(["true","false"],iParam{idx}.Values(ii))))
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values(ii) = str2num(char(iParam{idx}.Values(ii)));
assert(any(strcmpi(["true","false"],iParam{idx}.Values{ii})))
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values{ii} = str2num(char(iParam{idx}.Values{ii}));
elseif strcmpi(iParam{idx}.Names(ii),'output final step')
assert(any(strcmpi(["true","false"],iParam{idx}.Values(ii))))
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values(ii) = str2num(char(iParam{idx}.Values(ii)));
assert(any(strcmpi(["true","false"],iParam{idx}.Values{ii})))
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values{ii} = str2num(char(iParam{idx}.Values{ii}));
elseif strcmpi(iParam{idx}.Names(ii),'time increment')
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values(ii) = str2double(iParam{idx}.Values(ii));
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values{ii} = str2double(iParam{idx}.Values{ii});
elseif strcmpi(iParam{idx}.Names(ii),'buffer increments')
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values(ii) = str2double(iParam{idx}.Values(ii));
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values{ii} = str2double(iParam{idx}.Values{ii});
elseif strcmpi(iParam{idx}.Names(ii),'variable')
assert(isstring(iParam{idx}.Values(ii)))
assert(isstring(iParam{idx}.Values{ii}))
elseif strcmpi(iParam{idx}.Names(ii),'iX')
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values(ii) = str2num(char(iParam{idx}.Values(ii)));
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values{ii} = str2num(char(iParam{idx}.Values{ii}));
elseif strcmpi(iParam{idx}.Names(ii),'iY')
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values(ii) = str2num(char(iParam{idx}.Values(ii)));
inGraph.Nodes{iRow(idx),'Parameters'}{1}.Values{ii} = str2num(char(iParam{idx}.Values{ii}));
end
end
end
Expand Down Expand Up @@ -419,21 +419,21 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'log filename')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'time increment')
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2double(iParam.Values(ii));
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2double(iParam.Values{ii});
elseif strcmpi(iParam.Names(ii),'initial step')
assert(any(strcmpi(["true","false"],iParam.Values(ii))))
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2num(char(iParam.Values(ii)));
assert(any(strcmpi(["true","false"],iParam.Values{ii})))
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2num(char(iParam.Values{ii}));
elseif strcmpi(iParam.Names(ii),'final step')
assert(any(strcmpi(["true","false"],iParam.Values(ii))))
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2num(char(iParam.Values(ii)));
assert(any(strcmpi(["true","false"],iParam.Values{ii})))
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2num(char(iParam.Values{ii}));
elseif strcmpi(iParam.Names(ii),'log data')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
end
end

Expand Down Expand Up @@ -463,21 +463,21 @@

inGraph.Nodes{iRow,'Parameters'}{1}.Fields(ii,1) = string(pFieldnames{ipMatch});
if strcmpi(iParam.Names(ii),'title')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'description')
assert(isstring(iParam.Values(ii)))
assert(isstring(iParam.Values{ii}))
elseif strcmpi(iParam.Names(ii),'plotFlow')
assert(any(strcmpi(["true","false"],iParam.Values(ii))))
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2num(char(iParam.Values(ii)));
assert(any(strcmpi(["true","false"],iParam.Values{ii})))
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2num(char(iParam.Values{ii}));
elseif strcmpi(iParam.Names(ii),'plotState')
assert(any(strcmpi(["true","false"],iParam.Values(ii))))
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2num(char(iParam.Values(ii)));
assert(any(strcmpi(["true","false"],iParam.Values{ii})))
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2num(char(iParam.Values{ii}));
elseif strcmpi(iParam.Names(ii),'saveFlow')
assert(any(strcmpi(["true","false"],iParam.Values(ii))))
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2num(char(iParam.Values(ii)));
assert(any(strcmpi(["true","false"],iParam.Values{ii})))
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2num(char(iParam.Values{ii}));
elseif strcmpi(iParam.Names(ii),'saveState')
assert(any(strcmpi(["true","false"],iParam.Values(ii))))
inGraph.Nodes{iRow,'Parameters'}{1}.Values(ii) = str2num(char(iParam.Values(ii)));
assert(any(strcmpi(["true","false"],iParam.Values{ii})))
inGraph.Nodes{iRow,'Parameters'}{1}.Values{ii} = str2num(char(iParam.Values{ii}));

end
end

1 comment on commit f351778

@GregVernon
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit is in reference to issue #2 Implement input-deck / preprocessor

Please sign in to comment.