case6-7, add case 1 config result data
This commit is contained in:
Binary file not shown.
@@ -680,6 +680,8 @@ classdef EDFMAppController < handle
|
|||||||
obj.App.(propName).Data = {};
|
obj.App.(propName).Data = {};
|
||||||
elseif isnumeric(value)
|
elseif isnumeric(value)
|
||||||
obj.App.(propName).Data = num2cell(value);
|
obj.App.(propName).Data = num2cell(value);
|
||||||
|
elseif iscell(value)
|
||||||
|
obj.App.(propName).Data = obj.prepareCellTableForUI(value);
|
||||||
else
|
else
|
||||||
obj.App.(propName).Data = value;
|
obj.App.(propName).Data = value;
|
||||||
end
|
end
|
||||||
@@ -694,7 +696,7 @@ classdef EDFMAppController < handle
|
|||||||
if isempty(data)
|
if isempty(data)
|
||||||
value = fallback;
|
value = fallback;
|
||||||
else
|
else
|
||||||
value = data;
|
value = obj.parseUITableData(data);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -776,6 +778,88 @@ classdef EDFMAppController < handle
|
|||||||
values{1} = firstValue;
|
values{1} = firstValue;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function tableData = prepareCellTableForUI(obj, rawData)
|
||||||
|
tableData = rawData;
|
||||||
|
for i = 1:size(rawData, 1)
|
||||||
|
for j = 1:size(rawData, 2)
|
||||||
|
tableData{i, j} = obj.serializeTableCell(rawData{i, j});
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function value = parseUITableData(obj, data)
|
||||||
|
if isnumeric(data)
|
||||||
|
value = data;
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
if ~iscell(data)
|
||||||
|
value = data;
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
value = data;
|
||||||
|
for i = 1:size(data, 1)
|
||||||
|
for j = 1:size(data, 2)
|
||||||
|
value{i, j} = obj.parseTableCell(data{i, j});
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function value = serializeTableCell(obj, rawValue)
|
||||||
|
if isnumeric(rawValue) || islogical(rawValue)
|
||||||
|
if isscalar(rawValue)
|
||||||
|
value = rawValue;
|
||||||
|
else
|
||||||
|
value = obj.valueToExpression(rawValue);
|
||||||
|
end
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
if iscell(rawValue)
|
||||||
|
value = obj.valueToExpression(rawValue);
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
if isstring(rawValue) && isscalar(rawValue)
|
||||||
|
value = char(rawValue);
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
value = rawValue;
|
||||||
|
end
|
||||||
|
|
||||||
|
function value = parseTableCell(~, rawValue)
|
||||||
|
if isnumeric(rawValue) || islogical(rawValue)
|
||||||
|
value = rawValue;
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
if isstring(rawValue) && isscalar(rawValue)
|
||||||
|
rawValue = char(rawValue);
|
||||||
|
end
|
||||||
|
if ~ischar(rawValue)
|
||||||
|
value = rawValue;
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
textValue = strtrim(rawValue);
|
||||||
|
if isempty(textValue)
|
||||||
|
value = [];
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
numericValue = str2double(textValue);
|
||||||
|
if ~isnan(numericValue) && isempty(regexp(textValue, '[A-Za-z_''\[\]\{\};,]', 'once'))
|
||||||
|
value = numericValue;
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
if startsWith(textValue, '[') || startsWith(textValue, '{')
|
||||||
|
try
|
||||||
|
value = eval(textValue); %#ok<EVLDIR>
|
||||||
|
return;
|
||||||
|
catch
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
value = rawValue;
|
||||||
|
end
|
||||||
|
|
||||||
function value = convertTableCellToDouble(~, cellValue)
|
function value = convertTableCellToDouble(~, cellValue)
|
||||||
if isnumeric(cellValue) && isscalar(cellValue)
|
if isnumeric(cellValue) && isscalar(cellValue)
|
||||||
value = double(cellValue);
|
value = double(cellValue);
|
||||||
|
|||||||
@@ -27,10 +27,10 @@ config = build_basic_case_template( ...
|
|||||||
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 0.0), ...
|
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 0.0), ...
|
||||||
struct( ...
|
struct( ...
|
||||||
'well1', {{
|
'well1', {{
|
||||||
'w1', 2, [20 10 1;20 10 2], 0.178/2, 0, 1;
|
'w1', 2, [2 2 1;2 2 2], 0.178/2, 0, 1;
|
||||||
'w2', 2, [80 10 1;80 10 2], 0.178/2, 0, 1;
|
'w2', 2, [19 2 1;19 2 2], 0.178/2, 0, 1;
|
||||||
'w3', 1, [20 40 1], 0.178/2, 0, 1;
|
'w3', 1, [2 9 1], 0.178/2, 0, 1;
|
||||||
'w4', 1, [80 40 1], 0.178/2, 0, 1
|
'w4', 1, [19 9 1], 0.178/2, 0, 1
|
||||||
}}, ...
|
}}, ...
|
||||||
'welloc', {{[
|
'welloc', {{[
|
||||||
255,255,5;
|
255,255,5;
|
||||||
|
|||||||
@@ -1,6 +1,24 @@
|
|||||||
function config = load_case_template_case07()
|
function config = load_case_template_case07()
|
||||||
%LOAD_CASE_TEMPLATE_CASE07 Build config for case 7.
|
%LOAD_CASE_TEMPLATE_CASE07 Build config for case 7.
|
||||||
|
|
||||||
|
welloc = {
|
||||||
|
[255,255,5];
|
||||||
|
[355,255,5];
|
||||||
|
[455,255,5];
|
||||||
|
[555,255,5];
|
||||||
|
[655,255,5];
|
||||||
|
[755,255,5]
|
||||||
|
};
|
||||||
|
|
||||||
|
well2 = {
|
||||||
|
'w1_f1', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f2', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f3', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f4', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f5', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f6', 0, [], 0.178/2, 0, 4
|
||||||
|
};
|
||||||
|
|
||||||
config = build_basic_case_template( ...
|
config = build_basic_case_template( ...
|
||||||
'case07', ...
|
'case07', ...
|
||||||
'case07_oil_water_multiple_fracture_regimes', ...
|
'case07_oil_water_multiple_fracture_regimes', ...
|
||||||
@@ -22,15 +40,8 @@ config = build_basic_case_template( ...
|
|||||||
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 0.0), ...
|
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 0.0), ...
|
||||||
struct( ...
|
struct( ...
|
||||||
'well1', {{}}, ...
|
'well1', {{}}, ...
|
||||||
'welloc', {{[255,255,5]}, {[355,255,5]}, {[455,255,5]}, {[555,255,5]}, {[655,255,5]}, {[755,255,5]}}, ...
|
'welloc', {welloc}, ...
|
||||||
'well2', {{
|
'well2', {well2}), ...
|
||||||
'w1_f1', 0, [], 0.178/2, 0, 4;
|
|
||||||
'w1_f2', 0, [], 0.178/2, 0, 4;
|
|
||||||
'w1_f3', 0, [], 0.178/2, 0, 4;
|
|
||||||
'w1_f4', 0, [], 0.178/2, 0, 4;
|
|
||||||
'w1_f5', 0, [], 0.178/2, 0, 4;
|
|
||||||
'w1_f6', 0, [], 0.178/2, 0, 4
|
|
||||||
}}), ...
|
|
||||||
struct( ...
|
struct( ...
|
||||||
'time', [10; 10; 10; 200], ...
|
'time', [10; 10; 10; 200], ...
|
||||||
'dtmax', [0.5; 0.5; 0.5; 1], ...
|
'dtmax', [0.5; 0.5; 0.5; 1], ...
|
||||||
|
|||||||
Reference in New Issue
Block a user