Skip to content

Commit

Permalink
Merge pull request #3 from ESSS/fb-PWPA-1933-convert-score-casings
Browse files Browse the repository at this point in the history
Convert score casings from SCORE to alfacase
  • Loading branch information
gabrielantao authored Jun 21, 2024
2 parents 376ef27 + 6f47fd4 commit d98211c
Show file tree
Hide file tree
Showing 13 changed files with 885 additions and 135 deletions.
28 changes: 28 additions & 0 deletions src/alfasim_score/common.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from typing import Any
from typing import Dict

from barril.units import Array
from barril.units import Scalar
from enum import Enum


def prepare_for_regression(values: Dict[str, Any]) -> Dict[str, Any]:
""" "Prepare Scalar and Array to the be used in regression test"""
regression_values = {}
for key, value in values.items():
if isinstance(value, Scalar):
regression_values[key] = {
"value": value.value,
"unit": value.unit,
}
elif isinstance(value, Array):
regression_values[key] = {
"values": value.values,
"unit": value.unit,
}
elif isinstance(value, Enum):
regression_values[key] = value.value
else:
regression_values[key] = value

return regression_values
11 changes: 11 additions & 0 deletions src/alfasim_score/constants.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
from barril.units import Scalar

from alfasim_score.units import ROUGHNESS_UNIT

WELLBORE_TOP_NODE = "WELBORE_TOP_NODE"
WELLBORE_BOTTOM_NODE = "WELBORE_BOTTOM_NODE"
ANNULUS_TOP_NODE_NAME = "WELLBORE_ANNULUS_TOP_NODE"

CEMENT_NAME = "cement"

ROCK_DEFAULT_ROUGHNESS = Scalar(0.1, ROUGHNESS_UNIT)
CASING_DEFAULT_ROUGHNESS = Scalar(0.05, ROUGHNESS_UNIT)
TUBING_DEFAULT_ROUGHNESS = Scalar(0.05, ROUGHNESS_UNIT)

# This default fluid name for packer and fluid above filler
FLUID_DEFAULT_NAME = "fluid_default"
42 changes: 42 additions & 0 deletions src/alfasim_score/converter/alfacase/_tests/test_convert_casing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import attr
from pytest_regressions.data_regression import DataRegressionFixture

from alfasim_score.common import prepare_for_regression
from alfasim_score.converter.alfacase.convert_alfacase import ScoreAlfacaseConverter
from alfasim_score.converter.alfacase.score_input_reader import ScoreInputReader


def test_convert_casing_list(
data_regression: DataRegressionFixture,
score_input_example: ScoreInputReader,
) -> None:
builder = ScoreAlfacaseConverter(score_input_example)
casings = builder._convert_casing_list()
data_regression.check([prepare_for_regression(attr.asdict(casing)) for casing in casings])


def test_convert_tubing_list(
data_regression: DataRegressionFixture,
score_input_example: ScoreInputReader,
) -> None:
builder = ScoreAlfacaseConverter(score_input_example)
tubings = builder._convert_tubing_list()
data_regression.check([prepare_for_regression(attr.asdict(tubing)) for tubing in tubings])


def test_convert_packer_list(
data_regression: DataRegressionFixture,
score_input_example: ScoreInputReader,
) -> None:
builder = ScoreAlfacaseConverter(score_input_example)
packers = builder._convert_packer_list()
data_regression.check([prepare_for_regression(attr.asdict(packer)) for packer in packers])


def test_convert_open_hole_list(
data_regression: DataRegressionFixture,
score_input_example: ScoreInputReader,
) -> None:
builder = ScoreAlfacaseConverter(score_input_example)
open_holes = builder._convert_open_hole_list()
data_regression.check([prepare_for_regression(attr.asdict(hole)) for hole in open_holes])
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
- filler_material: cement
hanger_depth:
unit: m
value: 2072.0
hole_diameter:
unit: in
value: 42.0
inner_diameter:
unit: in
value: 33.0
inner_roughness:
unit: mm
value: 0.05
material: B
material_above_filler: fluid_default
name: CONDUCTOR_DRILLING_1
outer_diameter:
unit: in
value: 36.0
settings_depth:
unit: m
value: 2168.0
top_of_filler:
unit: m
value: 2072.0
- filler_material: cement
hanger_depth:
unit: m
value: 2072.0
hole_diameter:
unit: in
value: 20.0
inner_diameter:
unit: in
value: 16.25
inner_roughness:
unit: mm
value: 0.05
material: X-80
material_above_filler: fluid_default
name: SURFACE_CASING_1
outer_diameter:
unit: in
value: 18.0
settings_depth:
unit: m
value: 3490.0
top_of_filler:
unit: m
value: 2072.0
- filler_material: cement
hanger_depth:
unit: m
value: 2072.0
hole_diameter:
unit: in
value: 14.75
inner_diameter:
unit: in
value: 10.711
inner_roughness:
unit: mm
value: 0.05
material: N-80
material_above_filler: fluid_default
name: PRODUCTION_CASING_1
outer_diameter:
unit: in
value: 11.875
settings_depth:
unit: m
value: 3072.0
top_of_filler:
unit: m
value: 4905.0
- filler_material: cement
hanger_depth:
unit: m
value: 3072.0
hole_diameter:
unit: in
value: 14.75
inner_diameter:
unit: in
value: 9.156
inner_roughness:
unit: mm
value: 0.05
material: C-110 HC
material_above_filler: fluid_default
name: PRODUCTION_CASING_2
outer_diameter:
unit: in
value: 10.75
settings_depth:
unit: m
value: 5441.0
top_of_filler:
unit: m
value: 4905.0
- filler_material: cement
hanger_depth:
unit: m
value: 5441.0
hole_diameter:
unit: in
value: 14.75
inner_diameter:
unit: in
value: 8.684000000000001
inner_roughness:
unit: mm
value: 0.05
material: SDSS/125KSI
material_above_filler: fluid_default
name: PRODUCTION_CASING_3
outer_diameter:
unit: in
value: 10.75
settings_depth:
unit: m
value: 5607.0
top_of_filler:
unit: m
value: 4905.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
- diameter:
unit: in
value: 9.5
inner_roughness:
unit: mm
value: 0.1
length:
unit: m
value: 371.0
name: OPEN_HOLE_1
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- material_above: fluid_default
name: 'Packer (Hidráulico) #1'
position:
unit: m
value: 5565.18
Loading

0 comments on commit d98211c

Please sign in to comment.