Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions aps/algorithms/APSModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ def __init__(
prob_settings_tolerance: float = ProbabilityTolerances.MAX_ALLOWED_DEVIATION_BEFORE_ERROR,
transform_type: TransformType = TransformType.EMPIRIC,
fmu_use_residual_fields: bool = False,
fmu_use_ertbox_per_zone: bool = False,
check_with_grid_model: bool = False,
project=None,
save_job_name=True,
Expand Down Expand Up @@ -241,6 +242,7 @@ def __init__(
self.__prob_settings_tolerance = prob_settings_tolerance
self.__transform_type = transform_type
self.__fmu_use_residual_fields = fmu_use_residual_fields
self.__fmu_use_ertbox_per_zone = fmu_use_ertbox_per_zone
self.__fmu_use_non_standard_dir_and_files = fmu_use_non_standard_dir_and_files
self.__fmu_export_ertbox_grid = fmu_export_ertbox_grid
self.__save_job_name = save_job_name
Expand Down Expand Up @@ -1103,6 +1105,10 @@ def getPreviewRegionNumber(self) -> int:
def fmu_use_residual_fields(self) -> bool:
return self.__fmu_use_residual_fields

@property
def fmu_use_ertbox_per_zone(self) -> bool:
return self.__fmu_use_ertbox_per_zone

@property
def fmu_use_non_standard_files(self) -> bool:
return self.__fmu_use_non_standard_dir_and_files
Expand Down Expand Up @@ -1737,6 +1743,23 @@ def read_job_settings(self, root, model_file_name):
f'Job Settings parameter for {kw_ertbox} must be a name of a grid model.'
)

kw_use_ertbox_per_zone = 'UseErtboxPerZone'
use_ertbox_per_zone_settings = getKeyword(
update_grf_settings,
kw_use_ertbox_per_zone,
modelFile=model_file_name,
required=False,
)
if use_ertbox_per_zone_settings is not None:
value = use_ertbox_per_zone_settings.text.strip().upper()
legal_values = ['YES', 'NO']
if value not in legal_values:
raise ValueError(
f'Job settings for keyword {kw_use_ertbox_per_zone} must be one of {legal_values}. '
)
# Default is that self.__fmu_use_ertbox_per_zone = False
self.__fmu_use_ertbox_per_zone = value == 'YES'

kw_export_ertbox = 'ExportErtBoxGrid'
use_export_ertbox_settings = getKeyword(
update_grf_settings,
Expand Down Expand Up @@ -1928,6 +1951,9 @@ def print_job_settings(self):
print(f' FMU settings:\n FMU mode: {self.__fmu_mode}')
if self.__fmu_mode == 'FIELDS':
print(' Update fields in ERT:')
print(
f' Use individual ERTBOX per zone: {self.__fmu_use_ertbox_per_zone}'
)
print(f' ERTBOX: {self.__fmu_ertbox_name}')
print(f' Export ERTBOX grid: {self.__fmu_export_ertbox_grid} ')
print(f' Exchange mode: {self.__fmu_exchange_mode}')
Expand Down Expand Up @@ -1962,6 +1988,15 @@ def job_settings_xml_add_elements(self, root):
fmu_update_grf_element = ET.Element('UpdateGRF')
fmu_settings_element.append(fmu_update_grf_element)

if self.__fmu_use_ertbox_per_zone:
fmu_update_grf_element.append(
create_node('UseErtBoxPerZone', text='YES')
)
else:
fmu_update_grf_element.append(
create_node('UseErtBoxPerZone', text='NO')
)

fmu_update_grf_element.append(
create_node('ErtBoxGrid', text=self.__fmu_ertbox_name)
)
Expand Down
29 changes: 29 additions & 0 deletions aps/algorithms/APSZoneModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ def __init__(
debug_level: Debug = Debug.OFF,
keyResolution: int = 100,
grid_layout: Optional[Union[str, Conform]] = None,
ertbox_layers: Optional[int] = None,
) -> None:
"""
If the object is created by reading the xml tree for model parameters, it is required that
Expand Down Expand Up @@ -161,6 +162,7 @@ def __init__(
self.__keyResolution = keyResolution
self.__debug_level = debug_level
self.grid_layout = grid_layout
self.ertbox_layers = ertbox_layers

if ET_Tree is not None:
self.__interpretXMLTree(
Expand Down Expand Up @@ -222,6 +224,17 @@ def __interpretXMLTree(self, ET_Tree, modelFileName, debug_level=Debug.OFF):
)
self.grid_layout = grid_layout

ertbox_grid_layers = getIntCommand(
zone,
'NLayersInErtbox',
'Zone',
minValue=1,
modelFile=modelFileName,
defaultValue=1,
required=False,
)
self.ertbox_layers = ertbox_grid_layers

if zone_number == self.zone_number and region_number == self.region_number:
useConstProb = getBoolCommand(
zone, 'UseConstProb', 'Zone', model_file_name=modelFileName
Expand Down Expand Up @@ -354,6 +367,16 @@ def grid_layout(self, value: Optional[Conform]):
value = Conform(value)
self._grid_layout = value

@property
def ertbox_layers(self) -> Optional[int]:
return self._ertbox_layers

@ertbox_layers.setter
def ertbox_layers(self, value: Optional[int]):
if value is not None:
value = int(value)
self._ertbox_layers = value

@property
def zone_number(self) -> int:
return self.__zoneNumber
Expand Down Expand Up @@ -1030,6 +1053,12 @@ def XMLAddElement(
elem.text = self.grid_layout.value
zoneElement.append(elem)

# Add number of layers for ERTBOX for this zone
if self.ertbox_layers:
elem = Element('NLayersInErtbox')
elem.text = f' {self._ertbox_layers} '
zoneElement.append(elem)

# Add child command UseConstProb
tag = 'UseConstProb'
elem = Element(tag)
Expand Down
8 changes: 0 additions & 8 deletions bin/generate_workflow_blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -528,10 +528,6 @@ def get_rms_mapping(suffix: str = '') -> Dict[str, Optional[str]]:
('APS_test_preview', 'testPreview.py'),
('APS_update_from_FMU', 'updateAPSModelFromFMU.py'),
('APS_define_depositional_trend', 'defineFaciesProbMapDepTrend.py'),
(
'APS_simulate_gauss_fields_multiprocessing',
'APS_simulate_gauss_multiprocessing.py',
),
('APS_import_simulated_gauss_fields', 'APS_update_gauss_rms.py'),
('APS_simulate_gauss_fields', 'APS_simulate_gauss_singleprocessing.py'),
('APS_export_grid_model_info', 'getGridModelAttributes.py'),
Expand All @@ -554,10 +550,6 @@ def get_rms_mapping(suffix: str = '') -> Dict[str, Optional[str]]:
('Compare_files_updated_with_FMU_parameters', None),
('APS_normalize_prob_cubes', 'APS_normalize_prob_cubes.py'),
('APS_bitmap2rms', 'bitmap2rms.py'),
(
'APS_set_seed_file_for_multiprocessing_workflow',
'APS_set_seed_file_for_multiprocessing_workflow.py',
),
('APS_compare_files', 'compare_files.py'),
('APS_resample_to_ertbox', 'copy_rms_param_to_fmu_grid.py'),
('APS_run_workflow', 'test_jobs_and_workflow.py'),
Expand Down
Loading