Skip to content

Commit a456e51

Browse files
committed
Update rips module and Python examples
1 parent 3ea9dd6 commit a456e51

File tree

3 files changed

+92
-0
lines changed

3 files changed

+92
-0
lines changed

docs/rips/PythonExamples/wells_and_fractures/modeled_well_path.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@
6767
msw_settings.user_defined_reference_md = 0
6868
msw_settings.update()
6969

70+
# Optionally update the Perforation Non-Darcy settings
71+
non_darcy_parameters = perforation_coll.non_darcy_parameters()
72+
non_darcy_parameters.non_darcy_flow_type = "UserDefined"
73+
non_darcy_parameters.user_defined_d_factor = 1.2345
74+
non_darcy_parameters.update()
75+
7076
# export completions
7177
cases = resinsight.project.cases()
7278

docs/rips/generated/generated_classes.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,6 +1043,35 @@ def well_path_geometry(self) -> Optional[WellPathGeometry]:
10431043
return children[0] if len(children) > 0 else None
10441044

10451045

1046+
class NonDarcyPerforationParameters(PdmObjectBase):
1047+
"""
1048+
Attributes:
1049+
gas_viscosity (float): <html>Gas Viscosity (&mu;)</html> [cP]
1050+
grid_permeability_scaling_factor (float): <html>Grid Permeability Scaling Factor (K<sub>r</sub>) [0..1]</html>
1051+
inertial_coefficient (float): <html>Inertial Coefficient (&beta;<sub>0</sub>)</html> [Forch. unit]
1052+
non_darcy_flow_type (str): One of [None, Computed, UserDefined]
1053+
permeability_scaling_factor (float): Permeability Scaling Factor (B)
1054+
porosity_scaling_factor (float): Porosity Scaling Factor (C)
1055+
relative_gas_density (float): <html>Relative Gas Density (&gamma;)</html>
1056+
user_defined_d_factor (float): D Factor
1057+
well_radius (float): <html>Well Radius (r<sub>w</sub>)</html> [m]
1058+
"""
1059+
__custom_init__ = None #: Assign a custom init routine to be run at __init__
1060+
1061+
def __init__(self, pb2_object: Optional[PdmObject_pb2.PdmObject]=None, channel: Optional[grpc.Channel]=None) -> None:
1062+
self.gas_viscosity: float = 2.000000000000000e-02
1063+
self.grid_permeability_scaling_factor: float = 1.000000000000000e+00
1064+
self.inertial_coefficient: float = 8.839000000000000e+02
1065+
self.non_darcy_flow_type: str = "None"
1066+
self.permeability_scaling_factor: float = -1.104500000000000e+00
1067+
self.porosity_scaling_factor: float = 0.000000000000000e+00
1068+
self.relative_gas_density: float = 8.000000000000000e-01
1069+
self.user_defined_d_factor: float = 1.000000000000000e+00
1070+
self.well_radius: float = 1.080000000000000e-01
1071+
PdmObjectBase.__init__(self, pb2_object, channel)
1072+
if NonDarcyPerforationParameters.__custom_init__ is not None:
1073+
NonDarcyPerforationParameters.__custom_init__(self, pb2_object=pb2_object, channel=channel)
1074+
10461075
class NonNetLayers(PdmObjectBase):
10471076
"""
10481077
Attributes:
@@ -1107,6 +1136,16 @@ def __init__(self, pb2_object: Optional[PdmObject_pb2.PdmObject]=None, channel:
11071136
if PerforationCollection.__custom_init__ is not None:
11081137
PerforationCollection.__custom_init__(self, pb2_object=pb2_object, channel=channel)
11091138

1139+
def non_darcy_parameters(self) -> Optional[NonDarcyPerforationParameters]:
1140+
"""Non-Darcy Parameters
1141+
1142+
Returns:
1143+
NonDarcyPerforationParameters
1144+
"""
1145+
children = self.children("NonDarcyParameters", NonDarcyPerforationParameters)
1146+
return children[0] if len(children) > 0 else None
1147+
1148+
11101149
def perforations(self) -> List[Perforation]:
11111150
"""Perforations
11121151
@@ -2752,6 +2791,7 @@ def class_dict() -> Dict[str, Type[PdmObjectBase]]:
27522791
classes['MswSettings'] = MswSettings
27532792
classes['MudWeightWindowParameters'] = MudWeightWindowParameters
27542793
classes['NamedObject'] = NamedObject
2794+
classes['NonDarcyPerforationParameters'] = NonDarcyPerforationParameters
27552795
classes['NonNetLayers'] = NonNetLayers
27562796
classes['OsduWellPath'] = OsduWellPath
27572797
classes['PdmObjectBase'] = PdmObjectBase

docs/rips/tests/test_wells_path_completions.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,3 +190,49 @@ def test_fishbone_interface(rips_instance, initialize_test):
190190
assert fishbones_updated.lateral_tubing_diameter == 0.1
191191
assert fishbones_updated.lateral_tubing_roghness_factor == 0.1
192192
assert fishbones_updated.subs_orientation_mode == "FIXED"
193+
194+
195+
# test perforations and perforations settings
196+
def test_perforation_settings(rips_instance, initialize_test):
197+
well_path_coll = rips_instance.project.descendants(rips.WellPathCollection)[0]
198+
199+
well_path = well_path_coll.add_new_object(rips.ModeledWellPath)
200+
well_path.name = "perforated_well"
201+
well_path.update()
202+
203+
perforation_coll = well_path.completions().perforations()
204+
non_darcy_parameters = perforation_coll.non_darcy_parameters()
205+
non_darcy_parameters.non_darcy_flow_type = "UserDefined"
206+
non_darcy_parameters.user_defined_d_factor = 1.2345
207+
non_darcy_parameters.update()
208+
209+
non_darcy_parameters_updated = perforation_coll.non_darcy_parameters()
210+
assert non_darcy_parameters_updated.non_darcy_flow_type == "UserDefined"
211+
assert non_darcy_parameters_updated.user_defined_d_factor == 1.2345
212+
213+
non_darcy_parameters = perforation_coll.non_darcy_parameters()
214+
non_darcy_parameters.non_darcy_flow_type = "None"
215+
non_darcy_parameters.update()
216+
non_darcy_parameters_updated = perforation_coll.non_darcy_parameters()
217+
assert non_darcy_parameters_updated.non_darcy_flow_type == "None"
218+
219+
non_darcy_parameters = perforation_coll.non_darcy_parameters()
220+
non_darcy_parameters.non_darcy_flow_type = "Computed"
221+
non_darcy_parameters.gas_viscosity = 1.2
222+
non_darcy_parameters.grid_permeability_scaling_factor = 20
223+
non_darcy_parameters.inertial_coefficient = 1.1
224+
non_darcy_parameters.permeability_scaling_factor = 0.14
225+
non_darcy_parameters.porosity_scaling_factor = 0.59
226+
non_darcy_parameters.relative_gas_density = 0.23
227+
non_darcy_parameters.well_radius = 12.12
228+
229+
non_darcy_parameters.update()
230+
non_darcy_parameters_updated = perforation_coll.non_darcy_parameters()
231+
assert non_darcy_parameters_updated.non_darcy_flow_type == "Computed"
232+
assert non_darcy_parameters_updated.gas_viscosity == 1.2
233+
assert non_darcy_parameters_updated.grid_permeability_scaling_factor == 20
234+
assert non_darcy_parameters_updated.inertial_coefficient == 1.1
235+
assert non_darcy_parameters_updated.permeability_scaling_factor == 0.14
236+
assert non_darcy_parameters_updated.porosity_scaling_factor == 0.59
237+
assert non_darcy_parameters_updated.relative_gas_density == 0.23
238+
assert non_darcy_parameters_updated.well_radius == 12.12

0 commit comments

Comments
 (0)