@@ -597,26 +597,11 @@ def read_parameters(self, model: Model) -> None:
597
597
parts = ParameterReadIn .Name .split (' ' )
598
598
position = int (parts [1 ]) - 1
599
599
model .reserv .gradient .value [position ] = ParameterToModify .value
600
- if model .reserv .gradient .value [position ] > 1.0 :
601
- # TODO refactor to avoid heuristic-based unit conversions
602
- model .reserv .gradient .value [position ] = model .reserv .gradient .value [
603
- position ] / 1000.0 # convert C/m
604
- model .reserv .gradient .CurrentUnits = TemperatureGradientUnit .DEGREESCPERM
605
-
606
- if model .reserv .gradient .value [position ] < 1e-6 :
607
- # convert 0 C/m gradients to very small number, avoids divide by zero errors later
608
- model .reserv .gradient .value [position ] = 1e-6
609
600
610
601
elif ParameterToModify .Name .startswith ('Thickness ' ):
611
602
parts = ParameterReadIn .Name .split (' ' )
612
603
position = int (parts [1 ]) - 1
613
604
model .reserv .layerthickness .value [position ] = ParameterToModify .value
614
- if model .reserv .layerthickness .value [position ] < 100.0 :
615
- model .reserv .layerthickness .value [position ] = model .reserv .layerthickness .value [
616
- position ] * 1000.0 # convert m
617
- model .reserv .layerthickness .CurrentUnits = LengthUnit .METERS
618
- # set thickness of bottom segment to large number to override lower, unused segments
619
- model .reserv .layerthickness .value [position + 1 ] = 100_000.0
620
605
621
606
elif ParameterToModify .Name .startswith ("Fracture Separation" ):
622
607
self .fracsepcalc .value = self .fracsep .value
@@ -635,6 +620,31 @@ def read_parameters(self, model: Model) -> None:
635
620
636
621
coerce_int_params_to_enum_values (self .ParameterDict )
637
622
623
+ for position in range (len (model .reserv .gradient .value )):
624
+ if model .reserv .gradient .value [position ] > 1.0 :
625
+ # TODO refactor to avoid heuristic-based unit conversions
626
+ model .reserv .gradient .value [position ] = model .reserv .gradient .value [
627
+ position ] / 1000.0 # convert to C/m
628
+ model .reserv .gradient .CurrentUnits = TemperatureGradientUnit .DEGREESCPERM
629
+
630
+ if model .reserv .gradient .value [position ] < 1e-6 :
631
+ # convert 0 C/m gradients to very small number, avoids divide by zero errors later
632
+ model .reserv .gradient .value [position ] = 1e-6
633
+
634
+ for position in range (len (model .reserv .layerthickness .value )):
635
+ if model .reserv .layerthickness .value [position ] < 100.0 :
636
+ # TODO refactor to avoid heuristic-based unit conversions
637
+ model .reserv .layerthickness .value [position ] = model .reserv .layerthickness .value [
638
+ position ] * 1000.0 # convert to m
639
+ model .reserv .layerthickness .CurrentUnits = LengthUnit .METERS
640
+
641
+ # set thickness of bottom segment to large number to override lower, unused segments
642
+ while len (model .reserv .layerthickness .value ) < model .reserv .numseg .value :
643
+ model .reserv .layerthickness .value .append (100_000.0 )
644
+
645
+ model .reserv .layerthickness .value [model .reserv .numseg .value - 1 ] = 100_000.0
646
+
647
+
638
648
model .logger .info (f'complete { str (__class__ )} : { sys ._getframe ().f_code .co_name } ' )
639
649
640
650
@lru_cache (maxsize = 1024 )
0 commit comments