fix parse bug
This commit is contained in:
@@ -352,6 +352,11 @@ gas_prop = mc.gas_prop;
|
||||
c1 = 1;
|
||||
c2 = 8 / 9;
|
||||
gas_prop.Kn_modified_factor = 1 + 8 * c1 * gas_prop.Kn + 16 * c2 * gas_prop.Kn^2;
|
||||
if isfield(gas_prop, 'beta_non_darcy_flow') && ~isfield(gas_prop, 'beta_non_Darcy_flow')
|
||||
gas_prop.beta_non_Darcy_flow = gas_prop.beta_non_darcy_flow;
|
||||
elseif ~isfield(gas_prop, 'beta_non_Darcy_flow')
|
||||
gas_prop.beta_non_Darcy_flow = 0;
|
||||
end
|
||||
|
||||
f.Dwsi = mc.density_w_sc;
|
||||
f.Dgsi = mc.density_g_sc;
|
||||
@@ -371,7 +376,7 @@ f.chemistry_potential = f.chemistry_cof * log(f.x_total);
|
||||
pressure0 = expand_initial_value(initial_config.pressure, total_cells);
|
||||
sw0 = expand_initial_value(initial_config.sw, total_cells);
|
||||
cs0 = expand_initial_value(initial_config.cs, total_cells);
|
||||
cb0 = expand_initial_value(initial_config.cb, total_cells);
|
||||
cb0 = expand_initial_value(sanitize_positive_initial_value(initial_config.cb, 50.0), total_cells);
|
||||
state0 = initialRS(pressure0, sw0, cs0, cb0);
|
||||
end
|
||||
|
||||
@@ -383,6 +388,21 @@ else
|
||||
end
|
||||
end
|
||||
|
||||
function value = sanitize_positive_initial_value(raw_value, fallback)
|
||||
if isempty(raw_value)
|
||||
value = fallback;
|
||||
return;
|
||||
end
|
||||
|
||||
value = raw_value;
|
||||
invalid_mask = ~isfinite(value) | value <= 0;
|
||||
if all(invalid_mask(:))
|
||||
value = fallback;
|
||||
elseif any(invalid_mask(:))
|
||||
value(invalid_mask) = fallback;
|
||||
end
|
||||
end
|
||||
|
||||
function value = default_if_empty(s, field_name, fallback)
|
||||
if isfield(s, field_name) && ~isempty(s.(field_name))
|
||||
value = s.(field_name);
|
||||
|
||||
Reference in New Issue
Block a user