From b22a749a56a86bd3e4894bfa7931fdcf43f52398 Mon Sep 17 00:00:00 2001 From: Nicolas Lima Oliveira Date: Thu, 7 Nov 2024 10:00:36 -0300 Subject: [PATCH 01/24] Add walls temperature in score output generator PWPA-2169 --- .../alfacase/_tests/test_output_results.py | 3 ++- .../alfacase/score_output_generator.py | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py index 9b46512..f1eb213 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py +++ b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py @@ -15,8 +15,9 @@ def test_generate_output_file_results( alfasim_results_directory = shared_datadir / "case.data" well_start_position = Scalar(2072, "m") active_annuli = [AnnulusLabel.A, AnnulusLabel.B, AnnulusLabel.C] + walls = list(range(13)) output_generator = ScoreOutputGenerator( - alfasim_results_directory, well_start_position, active_annuli + alfasim_results_directory, well_start_position, active_annuli, walls ) output_generator.element_name = "7-SRR-2-RJS (2022-07-28_15-01-27)" output_filepath = datadir / "output_score.json" diff --git a/src/alfasim_score/converter/alfacase/score_output_generator.py b/src/alfasim_score/converter/alfacase/score_output_generator.py index 394d8c8..483c863 100644 --- a/src/alfasim_score/converter/alfacase/score_output_generator.py +++ b/src/alfasim_score/converter/alfacase/score_output_generator.py @@ -31,10 +31,12 @@ def __init__( results_path: Path, well_start_position: Scalar, active_annuli: List[AnnulusLabel] = [], + walls: List[int] = [], ): self.results_path = results_path self.well_start_position = well_start_position self.active_annuli = active_annuli + self.walls = walls self.element_name = WELLBORE_NAME def _generate_output_results(self) -> Dict[str, Any]: @@ -49,6 +51,9 @@ def _generate_output_results(self) -> Dict[str, Any]: "pressure", "mixture temperature", ] + wall_temperature_profiles = [ + f"wall_{wall_label}_temperature" for wall_label in self.walls + ] results = Results(self.results_path) measured_depths = self.well_start_position.GetValue(LENGTH_UNIT) + np.array( results.get_profile_curve("pressure", self.element_name, -1).domain.GetValues("m") @@ -88,6 +93,22 @@ def _generate_output_results(self) -> Dict[str, Any]: annuli_output[str(annulus_index)]["pressure"] = pressure annulus_index += 1 + # build walls output data + walls_output: Dict[str, Any] = {} + wall_index = 0 + for wall_label in self.walls: + wall_name = f"wall_{wall_label}_temperature" + wall = {} + wall["MD"] = measured_depths.tolist() + wall["temperature"] = ( + results.get_profile_curve(wall_name, self.element_name, -1) + .image.GetValues(TEMPERATURE_UNIT) + .tolist() + ) + walls_output[str(wall_index)] = wall + wall_index += 1 + + # build production tubing output data production_tubing = { "temperature": { @@ -109,6 +130,7 @@ def _generate_output_results(self) -> Dict[str, Any]: "annuli": annuli_output, "MD": measured_depths.tolist(), "production_tubing": production_tubing, + "walls": walls_output, } def generate_output_file(self, output_filepath: Path) -> None: From 880bc3d1c46addd9a6a268523676bb679527e555 Mon Sep 17 00:00:00 2001 From: Nicolas Lima Oliveira Date: Tue, 12 Nov 2024 13:20:58 -0300 Subject: [PATCH 02/24] Add results hdf, invert walls label, and update test files PWPA-2169 --- .../data/case.data/results/results_00000 | Bin 1180880 -> 1708848 bytes .../alfacase/_tests/test_output_results.py | 4 +- .../test_generate_output_file_results.json | 1700 +++++++++++++---- .../alfacase/score_output_generator.py | 6 +- 4 files changed, 1325 insertions(+), 385 deletions(-) diff --git a/src/alfasim_score/converter/alfacase/_tests/data/case.data/results/results_00000 b/src/alfasim_score/converter/alfacase/_tests/data/case.data/results/results_00000 index e74a8412eb9200bc8e2ce5e9f64ddce6a9613e36..2814722df3dd14a5f522dfed090d1faefb0bcc1d 100644 GIT binary patch delta 276247 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

LDk{ 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 J?i(V|Gvv{9sEC5w#Q4u=n9i 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 delta 87076 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 O%76Br($j*ebpH?368uI0 diff --git a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py index f1eb213..739f165 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py +++ b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py @@ -15,9 +15,9 @@ def test_generate_output_file_results( alfasim_results_directory = shared_datadir / "case.data" well_start_position = Scalar(2072, "m") active_annuli = [AnnulusLabel.A, AnnulusLabel.B, AnnulusLabel.C] - walls = list(range(13)) + layers = list(range(6)) output_generator = ScoreOutputGenerator( - alfasim_results_directory, well_start_position, active_annuli, walls + alfasim_results_directory, well_start_position, active_annuli, layers ) output_generator.element_name = "7-SRR-2-RJS (2022-07-28_15-01-27)" output_filepath = datadir / "output_score.json" diff --git a/src/alfasim_score/converter/alfacase/_tests/test_output_results/test_generate_output_file_results.json b/src/alfasim_score/converter/alfacase/_tests/test_output_results/test_generate_output_file_results.json index c4a0e56..ce7d2bd 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_output_results/test_generate_output_file_results.json +++ b/src/alfasim_score/converter/alfacase/_tests/test_output_results/test_generate_output_file_results.json @@ -158,79 +158,79 @@ ], "final": [ 4.0, - 52.65062702931107, - 54.48615360711608, - 55.334132197981944, - 56.01932573589295, - 56.7805873197961, - 57.381708930551326, - 58.064889585715946, - 58.46481975710333, - 58.84299419174397, - 59.22248281789837, - 59.59160009161201, - 59.94887826865738, - 60.29468056094993, - 60.62998175756013, - 61.052194934487716, - 61.579721449310284, - 61.87462469133584, - 62.160119364960394, - 62.43467148864943, - 62.69226321812164, - 63.03653916455875, - 63.23015099315097, - 63.43362957146405, - 63.75286426962572, - 63.91065604932942, - 64.0661547866942, - 64.23477543540434, - 64.46817531584838, - 64.60176903262561, - 64.73360278751932, - 64.86700839763608, - 64.99475354938846, - 65.12452332017705, - 65.2481954909581, - 65.37384313736379, - 65.47734514790989, - 65.72518201011258, - 65.84292325106969, - 65.95528097012448, - 66.06599282523177, - 66.1744110111755, - 66.2848869709336, - 66.38977506988135, - 66.49175302555705, - 66.59469497811199, - 66.77270922340324, - 66.8374221783788, - 66.89945733530624, - 66.96404992005819, - 66.97425476878146, - 67.1440090052862, - 67.14713329164124, - 67.31463532993342, - 67.36794328327642, - 67.42289205674786, - 67.48110263994045, - 67.55494865682442, - 67.60393970738653, - 67.60922829588333, - 67.6509306233026, - 67.69372511929055, - 67.73185236053007, - 67.75279104237495, - 69.25291558750399, - 70.6508374871787, - 71.54026358371522, - 72.92003582314385, - 74.3649741210412, - 75.77280406339344, - 77.17743849273813, - 78.6108492841899, - 80.00203667369317, - 80.86551653407275, + 43.0074790950091, + 45.06995331988969, + 46.040598967900905, + 47.14185885178813, + 48.0426110690849, + 49.072134717905556, + 49.91754629550553, + 50.50316011012774, + 51.08328340952869, + 51.665064614057655, + 52.23859343960646, + 52.80293690114661, + 53.3582130560352, + 53.905206007288825, + 54.73388789980811, + 55.44672675540119, + 55.96673226151461, + 56.486678898678406, + 56.984944657317556, + 57.48369532082427, + 58.90176920217664, + 59.274569291978594, + 59.85387146479553, + 60.19911583020178, + 60.40112945755516, + 60.598251298162666, + 61.08931141890116, + 61.35112433329425, + 61.52550310848892, + 61.6997600881549, + 61.87403891648387, + 62.044832576634235, + 62.21604186973457, + 62.38340286237076, + 62.55113744355356, + 62.75653281979896, + 63.032305177674175, + 63.19340643878775, + 63.349903009435025, + 63.505036159356564, + 63.65969400028837, + 63.8147759801185, + 63.9650964257213, + 64.1144516579381, + 64.26479975768927, + 65.40828421955854, + 65.50038000871916, + 65.59092204735339, + 65.68315353820037, + 65.75868002153288, + 65.9479167848686, + 66.01888392817318, + 66.2062864136127, + 66.2880745732258, + 66.3735967347933, + 66.49059685116259, + 66.77849435604526, + 66.89168760922911, + 67.01411658825793, + 67.1794114921056, + 67.3515820136322, + 67.53045572980488, + 67.76567804450076, + 69.24011830090274, + 70.63212037190169, + 71.50479621725799, + 72.88208494383304, + 74.32483680208657, + 75.73078479061104, + 77.13385249971259, + 78.56620049846913, + 79.95707891627353, + 80.8229823702253, 81.38448532358734 ] }, @@ -313,60 +313,60 @@ -0.0 ], "final": [ - 7708.406553074917, - 7860.727587936746, - 8002.585231809651, - 8073.5125777562625, - 8218.80753232753, - 8289.73053777495, - 8433.289979671521, - 8505.941417644784, - 8573.404401896025, - 8644.327570177125, - 8715.251410387746, - 8786.175664371653, - 8857.100206628282, - 8928.02561870106, - 8998.953977181523, - 9144.263647809421, - 9215.197452244465, - 9286.132859391533, - 9358.801140611506, - 9428.009857558658, - 9500.679022370143, - 9571.613474990523, - 9639.076329602323, - 9786.034738624288, - 9858.618229656735, - 9931.173005003482, - 10000.246833530993, - 10119.485489940642, - 10190.467906769372, - 10261.52772993214, - 10334.352859790983, - 10405.45795975766, - 10478.309375543238, - 10549.438339580092, - 10622.314417265043, - 10693.467653093052, - 10834.06374047651, - 10906.988814957977, - 10978.189664651563, - 11049.40359930697, - 11120.630467128396, - 11193.607404530778, - 11264.85967508613, - 11336.12463261982, - 11409.140821756882, - 11482.170405194285, - 11553.4713650547, - 11624.78655999733, - 11697.85561772535, - 11769.199619209205, - 11911.920846390023, - 11983.30822864118, - 12127.857955595113, - 12199.289212495589, + 6262.896646512984, + 6415.297192503928, + 6557.211693245237, + 6628.163048812234, + 6773.473001245373, + 6844.398185189282, + 6987.92718116429, + 7060.556941349862, + 7127.992820438015, + 7198.87947312992, + 7269.758768596895, + 7340.630356826322, + 7411.493999395101, + 7482.3501747575565, + 7553.200862718333, + 7698.317850717317, + 7769.150435026675, + 7839.975631138989, + 7912.521409480809, + 7981.604744000524, + 8054.132373272578, + 8124.885158654661, + 8192.168474603855, + 8338.70446970056, + 8411.078623371977, + 8483.422489259492, + 8552.294052851172, + 8671.161828436338, + 8741.922595862145, + 8812.759042349027, + 8885.353655008077, + 8956.232194797585, + 9028.849867067145, + 9099.749101654535, + 9172.388159892927, + 9243.308439454217, + 9383.436386703184, + 9456.117802477258, + 9527.07916078966, + 9598.051930918578, + 9669.035949530997, + 9741.762314608932, + 9812.768289483545, + 9883.785225620975, + 9956.545495796006, + 10029.317313265086, + 10100.32772372368, + 10171.351386458087, + 10244.120749564452, + 10315.171201368117, + 10457.300338309942, + 10528.391114409877, + 10672.335147829339, + 10743.46662941632, -0.0, -0.0, -0.0, @@ -549,79 +549,79 @@ ], "final": [ 4.0, - 33.264977908114076, - 35.55679707924776, - 36.65147980620981, - 38.174457986027164, - 39.21636300660418, - 40.67999232154176, - 41.68948986877126, - 42.46313051752139, - 43.247764712774256, - 44.03438429804129, - 44.81488447660496, - 45.588858645298046, - 46.35620146336919, - 47.11749220859792, - 48.35660894000381, - 49.25694081845688, - 50.00482656426891, - 50.7620837473396, - 51.48676456617329, - 52.22956618907307, - 54.739540661664705, - 55.29310640318465, - 56.251566808302414, - 56.622840790894884, - 56.86934131303633, - 57.1083303719937, - 57.9216977804457, - 58.212058588627656, - 58.427533623841384, - 58.64454132302649, - 58.86000476214542, - 59.07418085630809, - 59.28714677356106, - 59.49853684694824, - 59.70868184598726, - 60.01685165827564, - 60.32069008397713, - 60.525486722442565, - 60.726465983760306, - 60.92636657694055, - 61.127626426510005, - 61.32766002939297, - 61.523767054284235, - 61.720870616520415, - 61.918992866044846, - 64.03541971731079, - 64.15510300013841, - 64.274365632171, - 64.3944413471495, - 64.53580183106283, - 64.74463805557957, - 64.88397249032113, - 65.09139628353694, - 65.20189153331603, - 65.31820822272505, - 65.49444366498324, - 64.91801528364749, - 65.21183600234315, - 65.65541258915925, - 66.14597903555244, - 66.6411673139566, - 67.14579204308319, - 67.78491837817774, - 69.21825686358056, - 70.60000460726332, - 71.44138575731614, - 72.81350409203588, - 74.25163472976988, - 75.65358570572903, - 77.05329616051688, - 78.48332125065008, - 79.87350721850419, - 80.7439010968883, + 27.535592693844933, + 29.954925099584557, + 31.120192878419743, + 32.89732590096423, + 34.02054112958342, + 35.74549849432765, + 36.84926421021572, + 37.73454193274142, + 38.64108896686395, + 39.54976057478922, + 40.453665551542485, + 41.35255924021749, + 42.24642842717873, + 43.13571054473584, + 44.58531093644467, + 45.597193344471634, + 46.4834662154974, + 47.384827472207235, + 48.24696686216839, + 49.13822530648008, + 52.52933797393797, + 53.18170314490038, + 54.349223489378915, + 54.730440835298, + 54.99887261755447, + 55.25839199069242, + 55.92535857344535, + 56.230927573245026, + 56.471114766093365, + 56.71394887705878, + 56.95421129838081, + 57.19468068733511, + 57.432867114865246, + 57.671022987696006, + 57.906864399264464, + 58.279931335087895, + 58.59865821938752, + 58.83008719670573, + 59.05827182625319, + 59.28558605009465, + 59.51547104660176, + 59.743045196085745, + 59.967298910538716, + 60.19384009002249, + 60.42137272355512, + 60.579674678503466, + 60.78837490637483, + 60.999923881937264, + 61.208815974171216, + 61.56134516295765, + 61.82861823954477, + 62.182831375105536, + 62.44900087076769, + 62.65444339681562, + 62.863753010341156, + 63.219317185986995, + 62.58335330964485, + 63.12878390647552, + 64.01343196829384, + 64.93951583241403, + 65.85230786255693, + 66.75492424522184, + 67.79794804857403, + 69.19545297806604, + 70.56598377006117, + 71.36871024705056, + 72.73368910372488, + 74.16533935881591, + 75.56168983080534, + 76.95666802533282, + 78.38335686190135, + 79.77256123835082, + 80.64767205696262, 81.38448532358734 ] }, @@ -704,52 +704,52 @@ -0.0 ], "final": [ - 6520.115363781206, - 6673.504747400614, - 6816.322160678546, - 6887.719993084221, - 7033.90957629912, - 7105.258424121483, - 7249.60933937284, - 7322.648208886165, - 7390.456709015459, - 7461.726778293817, - 7532.9811592210035, - 7604.219409952731, - 7675.44117957569, - 7746.646847098898, - 7817.838308736726, - 7963.619235859524, - 8034.768230164906, - 8105.900550660506, - 8178.751043044106, - 8248.115573062512, - 8320.928264345996, - 8391.914944953538, - 8459.413683729139, - 8606.386981627498, - 8678.975924602408, - 8751.532591896332, - 8820.6050390101, - 8939.797559733972, - 9010.750393395185, - 9081.77739067387, - 9154.56545153836, - 9225.63113977044, - 9298.438693928601, - 9369.52156689647, - 9442.346884446028, - 9513.447239474366, - 9653.922665471362, - 9726.783024456425, - 9797.917263137422, - 9869.061083354922, - 9940.214309898598, - 10013.11204593166, - 10084.283460390623, - 10155.463952411152, - 10228.389757115408, - 10301.325096925517, + 5617.489310556395, + 5770.895989576697, + 5913.72046736307, + 5985.119524575953, + 6131.290985801907, + 6202.628206999704, + 6346.934534616617, + 6419.947397192766, + 6487.727639842088, + 6558.963239906711, + 6630.178386551493, + 6701.372575276901, + 6772.545386184104, + 6843.697125298332, + 6914.82962048523, + 7060.47248292713, + 7131.549896028314, + 7202.605149427923, + 7275.3708287076915, + 7344.649263956038, + 7417.365495896051, + 7488.222170352258, + 7555.593563830185, + 7702.272012930376, + 7774.715227780104, + 7847.125458905995, + 7916.057820578899, + 8035.018644733165, + 8105.833163465281, + 8176.720821679642, + 8249.365138917581, + 8320.28960192133, + 8392.951496889173, + 8463.89125770962, + 8536.568959796636, + 8607.524270101134, + 8747.708099591087, + 8820.416843462184, + 8891.402089669042, + 8962.395900373522, + 9033.398090885927, + 9106.140004417788, + 9177.158275334154, + 9248.184564428484, + 9320.95126475476, + 9393.726362103725, -0.0, -0.0, -0.0, @@ -863,26 +863,26 @@ "temperature": { "start": [ 4.0, - 7.969828803887253, - 9.862421605740451, - 11.78578827429044, - 13.709154942840485, - 15.617134678042078, - 17.540501346592066, - 18.786842947812488, - 20.017797615684515, - 21.279526150253332, - 22.541254684822093, - 23.80298321939091, - 25.064711753959728, - 26.326440288528545, - 28.249806957078533, - 30.17317362562858, - 31.434902160197396, - 32.71201762811461, - 33.97374616268337, - 35.23547469725219, - 36.5125901651694, + 8.455731962257744, + 10.579976269845758, + 12.738761135280697, + 14.897546000715693, + 17.03906058722714, + 19.197845452662136, + 20.59673804546395, + 21.978360359342332, + 23.394523231067694, + 24.810686102793, + 26.22684897451836, + 27.643011846243667, + 29.05917471796903, + 31.217959583403967, + 33.376744448838906, + 34.79290732056427, + 36.226340471213064, + 37.642503342938426, + 39.05866621466373, + 40.49209936531253, -273.15, -273.15, -273.15, @@ -940,105 +940,105 @@ ], "final": [ 4.0, - 22.10119818817418, - 24.638680928586155, - 25.869577087732353, - 27.884820534050164, - 29.08382763465795, - 31.05389872666092, - 32.24565696764773, - 33.235594387028414, - 34.2565449042325, - 35.27980422265557, - 36.29963749485739, - 37.31594317830775, - 38.328814110281996, - 39.33855861842062, - 40.97951314146144, - 42.096668909703226, - 43.11391510634206, - 44.151752131967044, - 45.14415485317983, - 46.176224862055506, - 50.43721118237437, - 51.18186960885595, - 52.545156209551294, - 52.93525359044543, - 53.22398900697783, - 53.50250883882086, - 53.10424744463256, - 53.43199983840543, - 53.70956677781419, - 53.991470813586375, - 54.26916929147444, - 54.54935593843243, - 54.82555448332437, - 55.10407345238502, - 55.37857894009238, - 55.85015809430581, - 56.19031421451609, - 56.46166231085715, - 56.73060421442557, - 56.998940396430385, - 57.271628917150224, - 57.540291392117524, - 57.806508248455884, - 58.07689682331579, - 58.34814523982766, - 56.795159923010715, - 57.10129499000948, - 57.41386316090069, - 57.71997440417226, - 58.30375158648667, - 58.63491350763718, - 59.224448554841615, - 59.5548569496022, - 59.86426031059602, - 60.17538333836916, - 60.72736849673015, - 60.781812083404645, - 61.52257533220768, - 62.75026717142396, - 64.01420018155096, - 65.25010245925034, - 66.4590871149818, - 67.8069838097258, - 69.1735571876651, - 70.53285043311388, - 71.2960324330636, - 72.65363070638205, - 74.07858996175366, - 75.46921129719391, - 76.85937935985135, - 78.28270240338759, - 79.67099885790174, - 80.54987195786123, + 19.464205735155474, + 22.05340304143556, + 23.314558841885287, + 25.453744708209797, + 26.68812668270175, + 28.785504310902525, + 30.01878409935796, + 31.061577586228168, + 32.14078201089848, + 33.222336166532784, + 34.30122345977156, + 35.37738895267012, + 36.450962648877976, + 37.52223124661168, + 39.12883573895863, + 40.30220453851513, + 41.39236711945375, + 42.506251867390006, + 43.571093627363894, + 44.68168308358645, + 46.666583070243234, + 47.65271359497973, + 49.526087259091355, + 49.912922022766224, + 50.23829077376979, + 50.55030942940857, + 50.92911777149948, + 51.27476923793688, + 51.585540777710776, + 51.902181291391344, + 52.21300947696898, + 52.52842498000905, + 52.838175957332396, + 53.15239673868405, + 53.46093480320553, + 54.021266370836656, + 54.37816937729076, + 54.684423445642324, + 54.98898735780995, + 55.29310191461684, + 55.60308582184882, + 55.907372585870974, + 56.20993950834645, + 56.518256700934444, + 56.827155800885976, + 55.9382415484414, + 56.266195550234556, + 56.601411593166176, + 56.92931082288544, + 57.565379168369645, + 57.91050687205677, + 58.55330623279974, + 58.897813321872036, + 59.230654691087125, + 59.56469895644943, + 60.16128770746502, + 60.17165975007225, + 60.979030255243856, + 62.32411321179541, + 63.70324801657239, + 65.04896552322799, + 66.3613690205218, + 67.80959143164955, + 69.16461191797828, + 70.51912094043308, + 71.26535825198812, + 72.61973550475034, + 74.04178691625714, + 75.42994397346729, + 76.81806215171537, + 78.23997377744627, + 79.6279362548263, + 80.508016710947, 81.38448532358734 ] }, "pressure": { "start": [ 3407.8503419337335, - 3543.215087838753, - 3669.3090641257413, - 3732.3331717498872, - 3861.3920373937867, - 3924.365444590416, - 4051.7822391011086, - 4116.251980407297, - 4176.101108152553, - 4239.0015267488, - 4301.88405220991, - 4364.748142967057, - 4427.593322652582, - 4490.419754714383, - 4553.214516579858, - 4681.797390534515, - 4744.548709283564, - 4807.280073392045, - 4871.522061959681, - 4932.684428081595, - 4996.881954982977, + 3543.191828618042, + 3669.2538754805787, + 3732.2568287927666, + 3861.261709910285, + 3924.2036615535826, + 4051.5463233862206, + 4115.975190534128, + 4175.783252624477, + 4238.637150427801, + 4301.469816373166, + 4364.280717241521, + 4427.069385043804, + 4489.835991073923, + 4552.565851000566, + 4681.00538560831, + 4743.683539734108, + 4806.338425508652, + 4870.498725240338, + 4931.580119523132, + 4995.689257428405, -0.0, -0.0, -0.0, @@ -1095,27 +1095,27 @@ -0.0 ], "final": [ - 4975.409608094189, - 5110.673749648646, - 5236.64908974887, - 5299.630278218826, - 5428.600002865664, - 5491.5465608559725, - 5618.909753190979, - 5683.354575390994, - 5743.186311841662, - 5806.074488942414, - 5868.950756554364, - 5931.814633763903, - 5994.665706583769, - 6057.504198571584, - 6120.3316856896245, - 6248.996523297375, - 6311.791763572451, - 6374.573384609226, - 6438.872547319835, - 6500.0957018398685, - 6564.363184763248, + 4296.052194278666, + 4431.192745797583, + 4557.049368764471, + 4619.970271081896, + 4748.809835501782, + 4811.6918431175545, + 4938.9177023772445, + 5003.291862263632, + 5063.056673665675, + 5125.87298940628, + 5188.675896063427, + 5251.464900986246, + 5314.2395775001405, + 5377.000134957533, + 5439.748133826868, + 5568.250775181829, + 5630.965451923674, + 5693.664722406865, + 5757.8776238550445, + 5819.016909729165, + 5883.194386821758, -0.0, -0.0, -0.0, @@ -1410,5 +1410,943 @@ 8256.262661491208 ] } + }, + "layers": { + "0": { + "MD": [ + 2072.0, + 2160.0, + 2242.0, + 2283.0, + 2367.0, + 2408.0, + 2491.0, + 2533.0, + 2572.0, + 2613.0, + 2654.0, + 2695.0, + 2736.0, + 2777.0, + 2818.0, + 2902.0, + 2943.0, + 2984.0, + 3026.0, + 3066.0, + 3108.0, + 3149.0, + 3188.0, + 3273.0, + 3315.0, + 3357.0, + 3397.0, + 3466.0, + 3507.0, + 3548.0, + 3590.0, + 3631.0, + 3673.0, + 3714.0, + 3756.0, + 3797.0, + 3878.0, + 3920.0, + 3961.0, + 4002.0, + 4043.0, + 4085.0, + 4126.0, + 4167.0, + 4209.0, + 4251.0, + 4292.0, + 4333.0, + 4375.0, + 4416.0, + 4498.0, + 4539.0, + 4622.0, + 4663.0, + 4705.0, + 4747.0, + 4787.0, + 4819.0, + 4843.0, + 4883.0, + 4924.0, + 4964.0, + 5003.0, + 5046.0, + 5086.0, + 5126.0, + 5148.0, + 5188.0, + 5230.0, + 5271.0, + 5312.0, + 5354.0, + 5395.0, + 5421.0, + 5447.0 + ], + "temperature": [ + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85 + ] + }, + "1": { + "MD": [ + 2072.0, + 2160.0, + 2242.0, + 2283.0, + 2367.0, + 2408.0, + 2491.0, + 2533.0, + 2572.0, + 2613.0, + 2654.0, + 2695.0, + 2736.0, + 2777.0, + 2818.0, + 2902.0, + 2943.0, + 2984.0, + 3026.0, + 3066.0, + 3108.0, + 3149.0, + 3188.0, + 3273.0, + 3315.0, + 3357.0, + 3397.0, + 3466.0, + 3507.0, + 3548.0, + 3590.0, + 3631.0, + 3673.0, + 3714.0, + 3756.0, + 3797.0, + 3878.0, + 3920.0, + 3961.0, + 4002.0, + 4043.0, + 4085.0, + 4126.0, + 4167.0, + 4209.0, + 4251.0, + 4292.0, + 4333.0, + 4375.0, + 4416.0, + 4498.0, + 4539.0, + 4622.0, + 4663.0, + 4705.0, + 4747.0, + 4787.0, + 4819.0, + 4843.0, + 4883.0, + 4924.0, + 4964.0, + 5003.0, + 5046.0, + 5086.0, + 5126.0, + 5148.0, + 5188.0, + 5230.0, + 5271.0, + 5312.0, + 5354.0, + 5395.0, + 5421.0, + 5447.0 + ], + "temperature": [ + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85, + 9725.85 + ] + }, + "2": { + "MD": [ + 2072.0, + 2160.0, + 2242.0, + 2283.0, + 2367.0, + 2408.0, + 2491.0, + 2533.0, + 2572.0, + 2613.0, + 2654.0, + 2695.0, + 2736.0, + 2777.0, + 2818.0, + 2902.0, + 2943.0, + 2984.0, + 3026.0, + 3066.0, + 3108.0, + 3149.0, + 3188.0, + 3273.0, + 3315.0, + 3357.0, + 3397.0, + 3466.0, + 3507.0, + 3548.0, + 3590.0, + 3631.0, + 3673.0, + 3714.0, + 3756.0, + 3797.0, + 3878.0, + 3920.0, + 3961.0, + 4002.0, + 4043.0, + 4085.0, + 4126.0, + 4167.0, + 4209.0, + 4251.0, + 4292.0, + 4333.0, + 4375.0, + 4416.0, + 4498.0, + 4539.0, + 4622.0, + 4663.0, + 4705.0, + 4747.0, + 4787.0, + 4819.0, + 4843.0, + 4883.0, + 4924.0, + 4964.0, + 5003.0, + 5046.0, + 5086.0, + 5126.0, + 5148.0, + 5188.0, + 5230.0, + 5271.0, + 5312.0, + 5354.0, + 5395.0, + 5421.0, + 5447.0 + ], + "temperature": [ + 4.0, + 15.056574880579433, + 17.735386094656235, + 19.050477168180066, + 21.424535214886873, + 22.721912805710645, + 25.058297780314604, + 26.365614728944763, + 27.505664982711664, + 28.692120345368778, + 29.88058085356738, + 31.067441048873775, + 32.25269565035455, + 33.43649093383533, + 34.61905592875547, + 36.72013131539461, + 37.97174013609617, + 39.16409886386327, + 40.38420365442073, + 41.54979717525953, + 42.769214913114865, + 42.67474898034362, + 43.91683681307586, + 46.33099500293315, + 46.71409357125384, + 47.07813713765745, + 47.42551129581017, + 48.59845653797561, + 48.95983096972668, + 49.30469195350054, + 49.65714534524511, + 50.00201896122053, + 50.35387981649774, + 50.698228013187986, + 51.04950595800017, + 51.39326117877391, + 52.04902367394669, + 52.42043209684783, + 52.76305279045516, + 53.104861920553844, + 53.446440366215995, + 53.79560106393001, + 54.137227587764414, + 54.478026474329624, + 54.82635540824674, + 55.17494872898925, + 55.002559969364654, + 55.35380348693104, + 55.7132486469186, + 56.064439610083014, + 56.757404407688455, + 57.11670892904539, + 57.81757431342089, + 58.17651325357008, + 58.534699018569256, + 58.89346451095156, + 59.53898466415842, + 60.12591524949215, + 60.93830120476514, + 62.29227017094479, + 63.680094273967825, + 65.03407209135787, + 66.35420524991622, + 67.80975412020211, + 69.163854475108, + 70.51794819562383, + 71.26271757149749, + 72.6168094743017, + 74.03860529693247, + 75.42654829014612, + 76.81449070050292, + 78.23628443644196, + 79.6242245778052, + 80.50438080350523, + 81.38448532358734 + ] + }, + "3": { + "MD": [ + 2072.0, + 2160.0, + 2242.0, + 2283.0, + 2367.0, + 2408.0, + 2491.0, + 2533.0, + 2572.0, + 2613.0, + 2654.0, + 2695.0, + 2736.0, + 2777.0, + 2818.0, + 2902.0, + 2943.0, + 2984.0, + 3026.0, + 3066.0, + 3108.0, + 3149.0, + 3188.0, + 3273.0, + 3315.0, + 3357.0, + 3397.0, + 3466.0, + 3507.0, + 3548.0, + 3590.0, + 3631.0, + 3673.0, + 3714.0, + 3756.0, + 3797.0, + 3878.0, + 3920.0, + 3961.0, + 4002.0, + 4043.0, + 4085.0, + 4126.0, + 4167.0, + 4209.0, + 4251.0, + 4292.0, + 4333.0, + 4375.0, + 4416.0, + 4498.0, + 4539.0, + 4622.0, + 4663.0, + 4705.0, + 4747.0, + 4787.0, + 4819.0, + 4843.0, + 4883.0, + 4924.0, + 4964.0, + 5003.0, + 5046.0, + 5086.0, + 5126.0, + 5148.0, + 5188.0, + 5230.0, + 5271.0, + 5312.0, + 5354.0, + 5395.0, + 5421.0, + 5447.0 + ], + "temperature": [ + 4.0, + 22.10119818817418, + 24.638680928586155, + 25.869577087732353, + 27.884820534050164, + 29.08382763465795, + 31.05389872666092, + 32.24565696764773, + 33.235594387028414, + 34.2565449042325, + 35.27980422265557, + 36.29963749485739, + 37.31594317830775, + 38.328814110281996, + 39.33855861842062, + 40.97951314146144, + 42.096668909703226, + 43.11391510634206, + 44.151752131967044, + 45.14415485317983, + 46.176224862055506, + 50.43721118237437, + 51.18186960885595, + 52.545156209551294, + 52.93525359044543, + 53.22398900697783, + 53.50250883882086, + 53.10424744463256, + 53.43199983840543, + 53.70956677781419, + 53.991470813586375, + 54.26916929147444, + 54.54935593843243, + 54.82555448332437, + 55.10407345238502, + 55.37857894009238, + 55.85015809430581, + 56.19031421451609, + 56.46166231085715, + 56.73060421442557, + 56.998940396430385, + 57.271628917150224, + 57.540291392117524, + 57.806508248455884, + 58.07689682331579, + 58.34814523982766, + 56.795159923010715, + 57.10129499000948, + 57.41386316090069, + 57.71997440417226, + 58.30375158648667, + 58.63491350763718, + 59.224448554841615, + 59.5548569496022, + 59.86426031059602, + 60.17538333836916, + 60.72736849673015, + 60.781812083404645, + 61.52257533220768, + 62.75026717142396, + 64.01420018155096, + 65.25010245925034, + 66.4590871149818, + 67.8069838097258, + 69.1735571876651, + 70.53285043311388, + 71.2960324330636, + 72.65363070638205, + 74.07858996175366, + 75.46921129719391, + 76.85937935985135, + 78.28270240338759, + 79.67099885790174, + 80.54987195786123, + 81.38448532358734 + ] + }, + "4": { + "MD": [ + 2072.0, + 2160.0, + 2242.0, + 2283.0, + 2367.0, + 2408.0, + 2491.0, + 2533.0, + 2572.0, + 2613.0, + 2654.0, + 2695.0, + 2736.0, + 2777.0, + 2818.0, + 2902.0, + 2943.0, + 2984.0, + 3026.0, + 3066.0, + 3108.0, + 3149.0, + 3188.0, + 3273.0, + 3315.0, + 3357.0, + 3397.0, + 3466.0, + 3507.0, + 3548.0, + 3590.0, + 3631.0, + 3673.0, + 3714.0, + 3756.0, + 3797.0, + 3878.0, + 3920.0, + 3961.0, + 4002.0, + 4043.0, + 4085.0, + 4126.0, + 4167.0, + 4209.0, + 4251.0, + 4292.0, + 4333.0, + 4375.0, + 4416.0, + 4498.0, + 4539.0, + 4622.0, + 4663.0, + 4705.0, + 4747.0, + 4787.0, + 4819.0, + 4843.0, + 4883.0, + 4924.0, + 4964.0, + 5003.0, + 5046.0, + 5086.0, + 5126.0, + 5148.0, + 5188.0, + 5230.0, + 5271.0, + 5312.0, + 5354.0, + 5395.0, + 5421.0, + 5447.0 + ], + "temperature": [ + 4.0, + 33.264977908114076, + 35.55679707924776, + 36.65147980620981, + 38.174457986027164, + 39.21636300660418, + 40.67999232154176, + 41.68948986877126, + 42.46313051752139, + 43.247764712774256, + 44.03438429804129, + 44.81488447660496, + 45.588858645298046, + 46.35620146336919, + 47.11749220859792, + 48.35660894000381, + 49.25694081845688, + 50.00482656426891, + 50.7620837473396, + 51.48676456617329, + 52.22956618907307, + 54.739540661664705, + 55.29310640318465, + 56.251566808302414, + 56.622840790894884, + 56.86934131303633, + 57.1083303719937, + 57.9216977804457, + 58.212058588627656, + 58.427533623841384, + 58.64454132302649, + 58.86000476214542, + 59.07418085630809, + 59.28714677356106, + 59.49853684694824, + 59.70868184598726, + 60.01685165827564, + 60.32069008397713, + 60.525486722442565, + 60.726465983760306, + 60.92636657694055, + 61.127626426510005, + 61.32766002939297, + 61.523767054284235, + 61.720870616520415, + 61.918992866044846, + 64.03541971731079, + 64.15510300013841, + 64.274365632171, + 64.3944413471495, + 64.53580183106283, + 64.74463805557957, + 64.88397249032113, + 65.09139628353694, + 65.20189153331603, + 65.31820822272505, + 65.49444366498324, + 64.91801528364749, + 65.21183600234315, + 65.65541258915925, + 66.14597903555244, + 66.6411673139566, + 67.14579204308319, + 67.78491837817774, + 69.21825686358056, + 70.60000460726332, + 71.44138575731614, + 72.81350409203588, + 74.25163472976988, + 75.65358570572903, + 77.05329616051688, + 78.48332125065008, + 79.87350721850419, + 80.7439010968883, + 81.38448532358734 + ] + }, + "5": { + "MD": [ + 2072.0, + 2160.0, + 2242.0, + 2283.0, + 2367.0, + 2408.0, + 2491.0, + 2533.0, + 2572.0, + 2613.0, + 2654.0, + 2695.0, + 2736.0, + 2777.0, + 2818.0, + 2902.0, + 2943.0, + 2984.0, + 3026.0, + 3066.0, + 3108.0, + 3149.0, + 3188.0, + 3273.0, + 3315.0, + 3357.0, + 3397.0, + 3466.0, + 3507.0, + 3548.0, + 3590.0, + 3631.0, + 3673.0, + 3714.0, + 3756.0, + 3797.0, + 3878.0, + 3920.0, + 3961.0, + 4002.0, + 4043.0, + 4085.0, + 4126.0, + 4167.0, + 4209.0, + 4251.0, + 4292.0, + 4333.0, + 4375.0, + 4416.0, + 4498.0, + 4539.0, + 4622.0, + 4663.0, + 4705.0, + 4747.0, + 4787.0, + 4819.0, + 4843.0, + 4883.0, + 4924.0, + 4964.0, + 5003.0, + 5046.0, + 5086.0, + 5126.0, + 5148.0, + 5188.0, + 5230.0, + 5271.0, + 5312.0, + 5354.0, + 5395.0, + 5421.0, + 5447.0 + ], + "temperature": [ + 4.0, + 52.65062702931107, + 54.48615360711608, + 55.334132197981944, + 56.01932573589295, + 56.7805873197961, + 57.381708930551326, + 58.064889585715946, + 58.46481975710333, + 58.84299419174397, + 59.22248281789837, + 59.59160009161201, + 59.94887826865738, + 60.29468056094993, + 60.62998175756013, + 61.052194934487716, + 61.579721449310284, + 61.87462469133584, + 62.160119364960394, + 62.43467148864943, + 62.69226321812164, + 63.03653916455875, + 63.23015099315097, + 63.43362957146405, + 63.75286426962572, + 63.91065604932942, + 64.0661547866942, + 64.23477543540434, + 64.46817531584838, + 64.60176903262561, + 64.73360278751932, + 64.86700839763608, + 64.99475354938846, + 65.12452332017705, + 65.2481954909581, + 65.37384313736379, + 65.47734514790989, + 65.72518201011258, + 65.84292325106969, + 65.95528097012448, + 66.06599282523177, + 66.1744110111755, + 66.2848869709336, + 66.38977506988135, + 66.49175302555705, + 66.59469497811199, + 66.77270922340324, + 66.8374221783788, + 66.89945733530624, + 66.96404992005819, + 66.97425476878146, + 67.1440090052862, + 67.14713329164124, + 67.31463532993342, + 67.36794328327642, + 67.42289205674786, + 67.48110263994045, + 67.55494865682442, + 67.60393970738653, + 67.60922829588333, + 67.6509306233026, + 67.69372511929055, + 67.73185236053007, + 67.75279104237495, + 69.25291558750399, + 70.6508374871787, + 71.54026358371522, + 72.92003582314385, + 74.3649741210412, + 75.77280406339344, + 77.17743849273813, + 78.6108492841899, + 80.00203667369317, + 80.86551653407275, + 81.38448532358734 + ] + } } -} +} \ No newline at end of file diff --git a/src/alfasim_score/converter/alfacase/score_output_generator.py b/src/alfasim_score/converter/alfacase/score_output_generator.py index 483c863..7a6716a 100644 --- a/src/alfasim_score/converter/alfacase/score_output_generator.py +++ b/src/alfasim_score/converter/alfacase/score_output_generator.py @@ -97,7 +97,9 @@ def _generate_output_results(self) -> Dict[str, Any]: walls_output: Dict[str, Any] = {} wall_index = 0 for wall_label in self.walls: - wall_name = f"wall_{wall_label}_temperature" + # Score wall labels are inverted with respect to PWPA + wall_label_inverted = self.walls[-1-wall_index] + wall_name = f"wall_{wall_label_inverted}_temperature" wall = {} wall["MD"] = measured_depths.tolist() wall["temperature"] = ( @@ -130,7 +132,7 @@ def _generate_output_results(self) -> Dict[str, Any]: "annuli": annuli_output, "MD": measured_depths.tolist(), "production_tubing": production_tubing, - "walls": walls_output, + "layers": walls_output, } def generate_output_file(self, output_filepath: Path) -> None: From b1ec7e79caab211432dc612d9ce252ce825d7595 Mon Sep 17 00:00:00 2001 From: Nicolas Lima Oliveira Date: Tue, 12 Nov 2024 13:23:17 -0300 Subject: [PATCH 03/24] Create output functions for annuli, tubing, and walls PWPA-2169 --- .../alfacase/score_output_generator.py | 74 +++++++++---------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/src/alfasim_score/converter/alfacase/score_output_generator.py b/src/alfasim_score/converter/alfacase/score_output_generator.py index 7a6716a..1895980 100644 --- a/src/alfasim_score/converter/alfacase/score_output_generator.py +++ b/src/alfasim_score/converter/alfacase/score_output_generator.py @@ -41,25 +41,25 @@ def __init__( def _generate_output_results(self) -> Dict[str, Any]: """Create data for the output results.""" + results = Results(self.results_path) + measured_depths = self.well_start_position.GetValue(LENGTH_UNIT) + np.array( + results.get_profile_curve("pressure", self.element_name, -1).domain.GetValues("m") + ) + return { + "annuli": self._generate_annuli_output(results, measured_depths), + "MD": measured_depths.tolist(), + "production_tubing": self._generate_production_tubing_output(results), + "layers": self._generate_walls_output(results, measured_depths), + } + + def _generate_annuli_output(self, results: Results, measured_depths: np.ndarray) -> Dict[str, Any]: + """Create data for the output results of annuli.""" annuli_temperature_profiles = [ f"annulus_{annuli_label.value}_temperature" for annuli_label in self.active_annuli ] annuli_pressure_profiles = [ f"annulus_{annuli_label.value}_pressure" for annuli_label in self.active_annuli ] - tubing_profiles = [ - "pressure", - "mixture temperature", - ] - wall_temperature_profiles = [ - f"wall_{wall_label}_temperature" for wall_label in self.walls - ] - results = Results(self.results_path) - measured_depths = self.well_start_position.GetValue(LENGTH_UNIT) + np.array( - results.get_profile_curve("pressure", self.element_name, -1).domain.GetValues("m") - ) - - # build annuli output data annuli_output: Dict[str, Any] = {} annulus_index = 0 for temperature_profile_name, pressure_profile_name in zip( @@ -92,26 +92,10 @@ def _generate_output_results(self) -> Dict[str, Any]: annuli_output[str(annulus_index)]["temperature"] = temperature annuli_output[str(annulus_index)]["pressure"] = pressure annulus_index += 1 + return annuli_output - # build walls output data - walls_output: Dict[str, Any] = {} - wall_index = 0 - for wall_label in self.walls: - # Score wall labels are inverted with respect to PWPA - wall_label_inverted = self.walls[-1-wall_index] - wall_name = f"wall_{wall_label_inverted}_temperature" - wall = {} - wall["MD"] = measured_depths.tolist() - wall["temperature"] = ( - results.get_profile_curve(wall_name, self.element_name, -1) - .image.GetValues(TEMPERATURE_UNIT) - .tolist() - ) - walls_output[str(wall_index)] = wall - wall_index += 1 - - - # build production tubing output data + def _generate_production_tubing_output(self, results: Results) -> Dict[str, Any]: + """Create data for the output results of production tubing.""" production_tubing = { "temperature": { "final": ( @@ -128,12 +112,26 @@ def _generate_output_results(self) -> Dict[str, Any]: ) }, } - return { - "annuli": annuli_output, - "MD": measured_depths.tolist(), - "production_tubing": production_tubing, - "layers": walls_output, - } + return production_tubing + + def _generate_walls_output(self, results: Results, measured_depths: np.ndarray) -> Dict[str, Any]: + """Create data for the output results of walls.""" + walls_output: Dict[str, Any] = {} + wall_index = 0 + for wall_label in self.walls: + # Score wall labels are inverted with respect to PWPA + wall_label_inverted = self.walls[-1-wall_index] + wall_name = f"wall_{wall_label_inverted}_temperature" + wall = {} + wall["MD"] = measured_depths.tolist() + wall["temperature"] = ( + results.get_profile_curve(wall_name, self.element_name, -1) + .image.GetValues(TEMPERATURE_UNIT) + .tolist() + ) + walls_output[str(wall_index)] = wall + wall_index += 1 + return walls_output def generate_output_file(self, output_filepath: Path) -> None: """Create the output file for SCORE.""" From 801e22c0b3b40358e7313c40efd3af43988e8d6b Mon Sep 17 00:00:00 2001 From: Nicolas Lima Oliveira Date: Tue, 12 Nov 2024 13:25:48 -0300 Subject: [PATCH 04/24] Add comment PWPA-2169 --- .../converter/alfacase/_tests/test_output_results.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py index 739f165..b4514d2 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py +++ b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py @@ -15,6 +15,7 @@ def test_generate_output_file_results( alfasim_results_directory = shared_datadir / "case.data" well_start_position = Scalar(2072, "m") active_annuli = [AnnulusLabel.A, AnnulusLabel.B, AnnulusLabel.C] + #It was defined to use 6 wall layers as output from Alfasim layers = list(range(6)) output_generator = ScoreOutputGenerator( alfasim_results_directory, well_start_position, active_annuli, layers From f8fefe9ccdbc5890e5a3b74f37d12efafa7029be Mon Sep 17 00:00:00 2001 From: Nicolas Lima Oliveira Date: Tue, 12 Nov 2024 13:37:02 -0300 Subject: [PATCH 05/24] Pre-commit install PWPA-2169 --- .../converter/alfacase/_tests/test_output_results.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py index b4514d2..1cd4ed4 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py +++ b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py @@ -15,7 +15,7 @@ def test_generate_output_file_results( alfasim_results_directory = shared_datadir / "case.data" well_start_position = Scalar(2072, "m") active_annuli = [AnnulusLabel.A, AnnulusLabel.B, AnnulusLabel.C] - #It was defined to use 6 wall layers as output from Alfasim + # It was defined to use 6 wall layers as output from ALFAsim layers = list(range(6)) output_generator = ScoreOutputGenerator( alfasim_results_directory, well_start_position, active_annuli, layers From 888a7541888d5e77ec51c0ec7f6a4a1904ec2dac Mon Sep 17 00:00:00 2001 From: Nicolas Lima Oliveira Date: Tue, 12 Nov 2024 15:51:43 -0300 Subject: [PATCH 06/24] Add output profiles to BaseOperationBuilder and test alfacases PWPA-2169 --- .../test_create_alfacase_injection.alfacase | 16 ++++++++++++++++ ..._create_alfacase_gas_lift_production.alfacase | 16 ++++++++++++++++ ...ate_alfacase_natural_flow_production.alfacase | 16 ++++++++++++++++ ...ile_score_input_injection_operation_.alfacase | 16 ++++++++++++++++ ...acase_file_score_input_natural_flow_.alfacase | 16 ++++++++++++++++ ...lfacase_base_operation_configuration.alfacase | 16 ++++++++++++++++ .../converter/alfacase/base_operation.py | 16 ++++++++++++++++ 7 files changed, 112 insertions(+) diff --git a/src/alfasim_score/converter/alfacase/_tests/test_build_injection_alfacase/test_create_alfacase_injection.alfacase b/src/alfasim_score/converter/alfacase/_tests/test_build_injection_alfacase/test_create_alfacase_injection.alfacase index 52a67a1..9c56773 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_build_injection_alfacase/test_create_alfacase_injection.alfacase +++ b/src/alfasim_score/converter/alfacase/_tests/test_build_injection_alfacase/test_create_alfacase_injection.alfacase @@ -444,6 +444,22 @@ outputs: - mixture temperature - pressure - environment temperature + - annulus_a_temperature + - annulus_b_temperature + - annulus_c_temperature + - annulus_d_temperature + - annulus_e_temperature + - annulus_a_pressure + - annulus_b_pressure + - annulus_c_pressure + - annulus_d_pressure + - annulus_e_pressure + - wall_0_temperature + - wall_1_temperature + - wall_2_temperature + - wall_3_temperature + - wall_4_temperature + - wall_5_temperature location: main element_name: WELLBORE profile_frequency: diff --git a/src/alfasim_score/converter/alfacase/_tests/test_build_production_alfacase/test_create_alfacase_gas_lift_production.alfacase b/src/alfasim_score/converter/alfacase/_tests/test_build_production_alfacase/test_create_alfacase_gas_lift_production.alfacase index 23d84df..66cdcde 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_build_production_alfacase/test_create_alfacase_gas_lift_production.alfacase +++ b/src/alfasim_score/converter/alfacase/_tests/test_build_production_alfacase/test_create_alfacase_gas_lift_production.alfacase @@ -455,6 +455,22 @@ outputs: - mixture temperature - pressure - environment temperature + - annulus_a_temperature + - annulus_b_temperature + - annulus_c_temperature + - annulus_d_temperature + - annulus_e_temperature + - annulus_a_pressure + - annulus_b_pressure + - annulus_c_pressure + - annulus_d_pressure + - annulus_e_pressure + - wall_0_temperature + - wall_1_temperature + - wall_2_temperature + - wall_3_temperature + - wall_4_temperature + - wall_5_temperature location: main element_name: WELLBORE profile_frequency: diff --git a/src/alfasim_score/converter/alfacase/_tests/test_build_production_alfacase/test_create_alfacase_natural_flow_production.alfacase b/src/alfasim_score/converter/alfacase/_tests/test_build_production_alfacase/test_create_alfacase_natural_flow_production.alfacase index b99a3c3..0693e48 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_build_production_alfacase/test_create_alfacase_natural_flow_production.alfacase +++ b/src/alfasim_score/converter/alfacase/_tests/test_build_production_alfacase/test_create_alfacase_natural_flow_production.alfacase @@ -455,6 +455,22 @@ outputs: - mixture temperature - pressure - environment temperature + - annulus_a_temperature + - annulus_b_temperature + - annulus_c_temperature + - annulus_d_temperature + - annulus_e_temperature + - annulus_a_pressure + - annulus_b_pressure + - annulus_c_pressure + - annulus_d_pressure + - annulus_e_pressure + - wall_0_temperature + - wall_1_temperature + - wall_2_temperature + - wall_3_temperature + - wall_4_temperature + - wall_5_temperature location: main element_name: WELLBORE profile_frequency: diff --git a/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase/test_create_alfacase_file_score_input_injection_operation_.alfacase b/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase/test_create_alfacase_file_score_input_injection_operation_.alfacase index 52a67a1..9c56773 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase/test_create_alfacase_file_score_input_injection_operation_.alfacase +++ b/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase/test_create_alfacase_file_score_input_injection_operation_.alfacase @@ -444,6 +444,22 @@ outputs: - mixture temperature - pressure - environment temperature + - annulus_a_temperature + - annulus_b_temperature + - annulus_c_temperature + - annulus_d_temperature + - annulus_e_temperature + - annulus_a_pressure + - annulus_b_pressure + - annulus_c_pressure + - annulus_d_pressure + - annulus_e_pressure + - wall_0_temperature + - wall_1_temperature + - wall_2_temperature + - wall_3_temperature + - wall_4_temperature + - wall_5_temperature location: main element_name: WELLBORE profile_frequency: diff --git a/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase/test_create_alfacase_file_score_input_natural_flow_.alfacase b/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase/test_create_alfacase_file_score_input_natural_flow_.alfacase index b99a3c3..0693e48 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase/test_create_alfacase_file_score_input_natural_flow_.alfacase +++ b/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase/test_create_alfacase_file_score_input_natural_flow_.alfacase @@ -455,6 +455,22 @@ outputs: - mixture temperature - pressure - environment temperature + - annulus_a_temperature + - annulus_b_temperature + - annulus_c_temperature + - annulus_d_temperature + - annulus_e_temperature + - annulus_a_pressure + - annulus_b_pressure + - annulus_c_pressure + - annulus_d_pressure + - annulus_e_pressure + - wall_0_temperature + - wall_1_temperature + - wall_2_temperature + - wall_3_temperature + - wall_4_temperature + - wall_5_temperature location: main element_name: WELLBORE profile_frequency: diff --git a/src/alfasim_score/converter/alfacase/_tests/test_convert_base_alfacase/test_create_alfacase_base_operation_configuration.alfacase b/src/alfasim_score/converter/alfacase/_tests/test_convert_base_alfacase/test_create_alfacase_base_operation_configuration.alfacase index 9840cba..6cd8883 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_convert_base_alfacase/test_create_alfacase_base_operation_configuration.alfacase +++ b/src/alfasim_score/converter/alfacase/_tests/test_convert_base_alfacase/test_create_alfacase_base_operation_configuration.alfacase @@ -434,6 +434,22 @@ outputs: - mixture temperature - pressure - environment temperature + - annulus_a_temperature + - annulus_b_temperature + - annulus_c_temperature + - annulus_d_temperature + - annulus_e_temperature + - annulus_a_pressure + - annulus_b_pressure + - annulus_c_pressure + - annulus_d_pressure + - annulus_e_pressure + - wall_0_temperature + - wall_1_temperature + - wall_2_temperature + - wall_3_temperature + - wall_4_temperature + - wall_5_temperature location: main element_name: WELLBORE profile_frequency: diff --git a/src/alfasim_score/converter/alfacase/base_operation.py b/src/alfasim_score/converter/alfacase/base_operation.py index 59da7fe..457f5f2 100644 --- a/src/alfasim_score/converter/alfacase/base_operation.py +++ b/src/alfasim_score/converter/alfacase/base_operation.py @@ -76,6 +76,22 @@ def __init__(self, score_filepath: Path): "mixture temperature", "pressure", "environment temperature", + "annulus_a_temperature", + "annulus_b_temperature", + "annulus_c_temperature", + "annulus_d_temperature", + "annulus_e_temperature", + "annulus_a_pressure", + "annulus_b_pressure", + "annulus_c_pressure", + "annulus_d_pressure", + "annulus_e_pressure", + "wall_0_temperature", + "wall_1_temperature", + "wall_2_temperature", + "wall_3_temperature", + "wall_4_temperature", + "wall_5_temperature", ] def _get_fluid_model_name(self) -> str: From 02c517912ecc1bee2ea2199d2507577f7d8122b9 Mon Sep 17 00:00:00 2001 From: Nicolas Lima Oliveira Date: Wed, 13 Nov 2024 11:53:01 -0300 Subject: [PATCH 07/24] Change m for LENGTH_UNIT and wall loop to reverse iteration PWPA-2169 --- .../alfacase/score_output_generator.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/alfasim_score/converter/alfacase/score_output_generator.py b/src/alfasim_score/converter/alfacase/score_output_generator.py index 1895980..fe3744a 100644 --- a/src/alfasim_score/converter/alfacase/score_output_generator.py +++ b/src/alfasim_score/converter/alfacase/score_output_generator.py @@ -43,7 +43,9 @@ def _generate_output_results(self) -> Dict[str, Any]: """Create data for the output results.""" results = Results(self.results_path) measured_depths = self.well_start_position.GetValue(LENGTH_UNIT) + np.array( - results.get_profile_curve("pressure", self.element_name, -1).domain.GetValues("m") + results.get_profile_curve("pressure", self.element_name, -1).domain.GetValues( + LENGTH_UNIT + ) ) return { "annuli": self._generate_annuli_output(results, measured_depths), @@ -52,7 +54,9 @@ def _generate_output_results(self) -> Dict[str, Any]: "layers": self._generate_walls_output(results, measured_depths), } - def _generate_annuli_output(self, results: Results, measured_depths: np.ndarray) -> Dict[str, Any]: + def _generate_annuli_output( + self, results: Results, measured_depths: np.ndarray + ) -> Dict[str, Any]: """Create data for the output results of annuli.""" annuli_temperature_profiles = [ f"annulus_{annuli_label.value}_temperature" for annuli_label in self.active_annuli @@ -114,14 +118,15 @@ def _generate_production_tubing_output(self, results: Results) -> Dict[str, Any] } return production_tubing - def _generate_walls_output(self, results: Results, measured_depths: np.ndarray) -> Dict[str, Any]: + def _generate_walls_output( + self, results: Results, measured_depths: np.ndarray + ) -> Dict[str, Any]: """Create data for the output results of walls.""" walls_output: Dict[str, Any] = {} wall_index = 0 - for wall_label in self.walls: - # Score wall labels are inverted with respect to PWPA - wall_label_inverted = self.walls[-1-wall_index] - wall_name = f"wall_{wall_label_inverted}_temperature" + # Score wall labels are inverted with respect to PWPA + for wall_label in reversed(self.walls): + wall_name = f"wall_{wall_label}_temperature" wall = {} wall["MD"] = measured_depths.tolist() wall["temperature"] = ( From 6e982efb3343c8c0c44fdbd322c631852e00ff88 Mon Sep 17 00:00:00 2001 From: Nicolas Lima Oliveira Date: Thu, 14 Nov 2024 14:48:55 -0300 Subject: [PATCH 08/24] Ignore walls with negative dummy values from ALFAsim PWPA-2169 --- .../converter/alfacase/score_output_generator.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/alfasim_score/converter/alfacase/score_output_generator.py b/src/alfasim_score/converter/alfacase/score_output_generator.py index fe3744a..84846a9 100644 --- a/src/alfasim_score/converter/alfacase/score_output_generator.py +++ b/src/alfasim_score/converter/alfacase/score_output_generator.py @@ -129,13 +129,14 @@ def _generate_walls_output( wall_name = f"wall_{wall_label}_temperature" wall = {} wall["MD"] = measured_depths.tolist() - wall["temperature"] = ( - results.get_profile_curve(wall_name, self.element_name, -1) - .image.GetValues(TEMPERATURE_UNIT) - .tolist() - ) - walls_output[str(wall_index)] = wall - wall_index += 1 + wall_temperatures = results.get_profile_curve( + wall_name, self.element_name, -1 + ).image.GetValues(TEMPERATURE_UNIT) + # Ignore walls with negative dummy values from ALFAsim + if not np.all(wall_temperatures < 0): + wall["temperature"] = wall_temperatures.tolist() + walls_output[str(wall_index)] = wall + wall_index += 1 return walls_output def generate_output_file(self, output_filepath: Path) -> None: From c90db54e2da4cbaa36e44d7b221b06c4e0fd0e62 Mon Sep 17 00:00:00 2001 From: Leonardo Rosenbach Date: Fri, 29 Nov 2024 10:39:55 -0300 Subject: [PATCH 09/24] Update github actions for deploy PWPA-1903 --- .github/workflows/deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0f700e3..1d6b5ce 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -14,9 +14,9 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: "3.10" - name: Install build @@ -32,6 +32,6 @@ jobs: user: __token__ password: ${{ secrets.pypi_token }} - name: GitHub Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: files: dist/* From 0b634b3233634e4c252ee307a968990c130e4b59 Mon Sep 17 00:00:00 2001 From: Leonardo Rosenbach Date: Fri, 29 Nov 2024 13:34:22 -0300 Subject: [PATCH 10/24] Publish package using trusted publisher management PWPA-1903 --- .github/workflows/deploy.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1d6b5ce..3723aba 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -12,13 +12,16 @@ jobs: if: startsWith(github.event.ref, 'refs/tags') runs-on: ubuntu-latest + permissions: + contents: write + id-token: write steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.12" - name: Install build run: | python -m pip install --upgrade pip @@ -26,11 +29,7 @@ jobs: - name: Build package run: | python -m build - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - user: __token__ - password: ${{ secrets.pypi_token }} + - name: GitHub Release uses: softprops/action-gh-release@v2 with: From b92df3821ade9272fd27a2db75692d5d842bb9b4 Mon Sep 17 00:00:00 2001 From: Leonardo Rosenbach Date: Fri, 29 Nov 2024 14:27:09 -0300 Subject: [PATCH 11/24] Use the last stable python version and add dependabot workflow running weekly PWPA-1903 --- .github/dependabot.yml | 13 +++++++++++++ .github/workflows/deploy.yml | 5 +++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..be006de --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +# Keep GitHub Actions up to date with GitHub's Dependabot... +# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot +# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + groups: + github-actions: + patterns: + - "*" # Group all Actions updates into a single larger pull request + schedule: + interval: weekly diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3723aba..87fa785 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -21,7 +21,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.x" - name: Install build run: | python -m pip install --upgrade pip @@ -29,7 +29,8 @@ jobs: - name: Build package run: | python -m build - + - name: Publish package to PyPI + uses: pypa/gh-action-pypi-publish@v1.12.2 - name: GitHub Release uses: softprops/action-gh-release@v2 with: From 7b15f0744363210d5e917e288bfbcc4ea7e6f743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Tue, 10 Dec 2024 17:04:13 -0300 Subject: [PATCH 12/24] Add docs for how to use; PWPA --- README.rst | 16 ++++++++++++++++ .../converter/alfacase/converter_main.py | 15 +++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/README.rst b/README.rst index eaead1b..b98ed58 100644 --- a/README.rst +++ b/README.rst @@ -34,6 +34,22 @@ Features * Converter from Score input JSON to Alfacase * Parser for the ALFAsim results +How to use it +------------- +1. First step is to convert the SCORE input into the alfacase file, so the user just need to call the functions like example below: + + from alfasim_score.converter.alfacase.converter_main import convert_score_to_alfacase + + # call the converter main function with the input file and output file names + convert_score_to_alfacase("score_input.json", "alfacase_output.alfacase") + +2. Run the ALFAsim with the generated file (and the pvt tables in the same folder) +3. Once the result file of ALFAsim is generated, one can call the converter for the output file. + + from alfasim_score.converter.alfacase.converter_main import convert_score_to_alfacase + + # call the converter main function with the input file and output file names + convert_score_to_alfacase("score_input.json", "alfacase_output.alfacase") Development ----------- diff --git a/src/alfasim_score/converter/alfacase/converter_main.py b/src/alfasim_score/converter/alfacase/converter_main.py index 9774ef7..d753db3 100644 --- a/src/alfasim_score/converter/alfacase/converter_main.py +++ b/src/alfasim_score/converter/alfacase/converter_main.py @@ -1,12 +1,15 @@ from alfasim_sdk import CaseDescription from alfasim_sdk import convert_description_to_alfacase +from barril.units import Scalar from pathlib import Path +from alfasim_score.common import AnnulusLabel from alfasim_score.common import OperationType from alfasim_score.converter.alfacase.base_operation import BaseOperationBuilder from alfasim_score.converter.alfacase.injection_operation import InjectionOperationBuilder from alfasim_score.converter.alfacase.production_operation import ProductionOperationBuilder from alfasim_score.converter.alfacase.score_input_reader import ScoreInputReader +from alfasim_score.converter.alfacase.score_output_generator import ScoreOutputGenerator def convert_score_to_alfacase_description(score_filepath: Path) -> CaseDescription: @@ -26,3 +29,15 @@ def convert_score_to_alfacase(score_filepath: Path, alfacase_filepath: Path) -> alfacase_description = convert_score_to_alfacase_description(score_filepath) alfacase_content = convert_description_to_alfacase(alfacase_description) alfacase_filepath.write_text(data=alfacase_content, encoding="utf-8") + + +def convert_output_file_results( + alfasim_results_filepath: Path, + output_score_filepath: Path, + active_annuli: list[AnnulusLabel], + well_start_position: Scalar, +) -> None: + output_generator = ScoreOutputGenerator( + alfasim_results_filepath, well_start_position, active_annuli + ) + output_generator.generate_output_file(output_score_filepath) From 6180b72ec377ab6d8f34a6052a33f8a37e5eb14f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Wed, 11 Dec 2024 17:24:40 -0300 Subject: [PATCH 13/24] Implement the converter main API class; PWPA-2291 --- src/alfasim_score/conftest.py | 22 +++---- src/alfasim_score/constants.py | 3 + .../alfacase/_tests/test_convert_alfacase.py | 11 ++-- .../alfacase/_tests/test_output_results.py | 22 +++---- .../alfacase/alfasim_score_converter.py | 43 +++++++++++++ .../converter/alfacase/base_operation.py | 4 +- .../converter/alfacase/convert_alfacase.py | 6 +- .../converter/alfacase/convert_plugin_data.py | 6 +- .../converter/alfacase/injection_operation.py | 5 +- .../alfacase/production_operation.py | 5 +- .../alfacase/score_output_generator.py | 61 ++++++++----------- 11 files changed, 112 insertions(+), 76 deletions(-) create mode 100644 src/alfasim_score/converter/alfacase/alfasim_score_converter.py diff --git a/src/alfasim_score/conftest.py b/src/alfasim_score/conftest.py index 7e77f9b..9759fa0 100644 --- a/src/alfasim_score/conftest.py +++ b/src/alfasim_score/conftest.py @@ -5,12 +5,6 @@ from enum import Enum from pathlib import Path -from alfasim_score.common import Annuli -from alfasim_score.common import Annulus -from alfasim_score.common import AnnulusDepthTable -from alfasim_score.common import AnnulusModeType -from alfasim_score.common import FluidModelPvt -from alfasim_score.common import SolidMechanicalProperties from alfasim_score.converter.alfacase.base_operation import BaseOperationBuilder from alfasim_score.converter.alfacase.convert_alfacase import ScoreAlfacaseConverter from alfasim_score.converter.alfacase.injection_operation import InjectionOperationBuilder @@ -33,20 +27,24 @@ def alfacase_gas_lift(score_input_gas_lift: ScoreInputReader) -> ScoreAlfacaseCo @pytest.fixture -def base_operation_gas_lift(shared_datadir: Path) -> BaseOperationBuilder: - return BaseOperationBuilder(shared_datadir / SCORE_GAS_LIFT_EXAMPLE_FILENAME) +def base_operation_gas_lift(score_input_gas_lift: ScoreInputReader) -> BaseOperationBuilder: + return BaseOperationBuilder(score_input_gas_lift) @pytest.fixture -def production_operation_gas_lift(shared_datadir: Path) -> ProductionOperationBuilder: - return ProductionOperationBuilder(shared_datadir / SCORE_GAS_LIFT_EXAMPLE_FILENAME) +def production_operation_gas_lift( + score_input_gas_lift: ScoreInputReader, +) -> ProductionOperationBuilder: + return ProductionOperationBuilder(score_input_gas_lift) @pytest.fixture def production_operation_natural_flow(shared_datadir: Path) -> ProductionOperationBuilder: - return ProductionOperationBuilder(shared_datadir / SCORE_NATURAL_FLOW_EXAMPLE_FILENAME) + score_input_reader = ScoreInputReader(shared_datadir / SCORE_NATURAL_FLOW_EXAMPLE_FILENAME) + return ProductionOperationBuilder(score_input_reader) @pytest.fixture def injection_operation(shared_datadir: Path) -> InjectionOperationBuilder: - return InjectionOperationBuilder(shared_datadir / SCORE_INJECTION_EXAMPLE_FILENAME) + score_input_reader = ScoreInputReader(shared_datadir / SCORE_INJECTION_EXAMPLE_FILENAME) + return InjectionOperationBuilder(score_input_reader) diff --git a/src/alfasim_score/constants.py b/src/alfasim_score/constants.py index bdae730..11d1028 100644 --- a/src/alfasim_score/constants.py +++ b/src/alfasim_score/constants.py @@ -64,3 +64,6 @@ # set default value for annulus for the plugin APB # there is no such option in the SCORE input so use this default value HAS_FLUID_RETURN = True + +# total number of walls in the output +TOTAL_WALLS = 6 diff --git a/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase.py b/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase.py index 5c15884..d8310ad 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase.py +++ b/src/alfasim_score/converter/alfacase/_tests/test_convert_alfacase.py @@ -2,7 +2,7 @@ from pathlib import Path from pytest_regressions.file_regression import FileRegressionFixture -from alfasim_score.converter.alfacase.converter_main import convert_score_to_alfacase +from alfasim_score.converter.alfacase.alfasim_score_converter import AlfasimScoreConverter @pytest.mark.parametrize( @@ -12,8 +12,11 @@ def test_create_alfacase_file( shared_datadir: Path, datadir: Path, file_regression: FileRegressionFixture, score_filename: str ) -> None: score_input = shared_datadir / f"{score_filename}.json" - alfacase_output = datadir / f"{score_filename}.alfacase" - convert_score_to_alfacase(score_input, alfacase_output) + converted_alfacase_filepath = datadir / f"{score_filename}.alfacase" + converter = AlfasimScoreConverter(score_input, Path("score_output/dummy.json")) + converter.generate_alfasim_input_file(converted_alfacase_filepath) file_regression.check( - alfacase_output.read_text(encoding="utf-8"), encoding="utf-8", extension=".alfacase" + converted_alfacase_filepath.read_text(encoding="utf-8"), + encoding="utf-8", + extension=".alfacase", ) diff --git a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py index 1cd4ed4..dcadb33 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py +++ b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py @@ -6,22 +6,22 @@ from pytest_regressions.file_regression import FileRegressionFixture from alfasim_score.common import AnnulusLabel -from alfasim_score.converter.alfacase.score_output_generator import ScoreOutputGenerator +from alfasim_score.converter.alfacase.alfasim_score_converter import AlfasimScoreConverter +from alfasim_score.converter.alfacase.score_output_generator import ScoreOutputBuilder def test_generate_output_file_results( shared_datadir: Path, datadir: Path, file_regression: FileRegressionFixture ) -> None: alfasim_results_directory = shared_datadir / "case.data" - well_start_position = Scalar(2072, "m") - active_annuli = [AnnulusLabel.A, AnnulusLabel.B, AnnulusLabel.C] - # It was defined to use 6 wall layers as output from ALFAsim - layers = list(range(6)) - output_generator = ScoreOutputGenerator( - alfasim_results_directory, well_start_position, active_annuli, layers - ) - output_generator.element_name = "7-SRR-2-RJS (2022-07-28_15-01-27)" + # dummy input file just to have the reader for this test + score_input_filepath = shared_datadir / "score_input_natural_flow.json" output_filepath = datadir / "output_score.json" - output_generator.generate_output_file(datadir / "output_score.json") - output_content = output_filepath.read_text(encoding="utf-8") + converter = AlfasimScoreConverter(score_input_filepath, output_filepath) + # change the element name to match this test result well name + converter.output_builder.element_name = "7-SRR-2-RJS (2022-07-28_15-01-27)" + # TODO: remember to get these annuli inside the output class + converter.output_builder.active_annuli = [AnnulusLabel.A, AnnulusLabel.B, AnnulusLabel.C] + converter.generate_score_output_file(alfasim_results_directory) + output_content = converter.output_builder.score_output_filepath.read_text(encoding="utf-8") file_regression.check(output_content, extension=".json", encoding="utf-8") diff --git a/src/alfasim_score/converter/alfacase/alfasim_score_converter.py b/src/alfasim_score/converter/alfacase/alfasim_score_converter.py new file mode 100644 index 0000000..22d6169 --- /dev/null +++ b/src/alfasim_score/converter/alfacase/alfasim_score_converter.py @@ -0,0 +1,43 @@ +import json +from alfasim_sdk import convert_description_to_alfacase +from pathlib import Path + +from alfasim_score.common import OperationType +from alfasim_score.converter.alfacase.base_operation import BaseOperationBuilder +from alfasim_score.converter.alfacase.injection_operation import InjectionOperationBuilder +from alfasim_score.converter.alfacase.production_operation import ProductionOperationBuilder +from alfasim_score.converter.alfacase.score_input_reader import ScoreInputReader +from alfasim_score.converter.alfacase.score_output_generator import ScoreOutputBuilder + + +class AlfasimScoreConverter: + """ + This class handles the process of convertions between ALFAsim and SCORE file formats: + - it can convert the SCORE input file format into an alfacase to be used by ALFAsim simulator + - it can use a ALFAsim result into a SCORE output file. + """ + + def __init__(self, score_input_filepath: Path, score_output_filepath: Path): + self.score_input = ScoreInputReader(score_input_filepath) + self.alfacase_builder = self._get_score_to_alfacase_builder() + self.output_builder = ScoreOutputBuilder(self.score_input, score_output_filepath) + + def _get_score_to_alfacase_builder(self) -> BaseOperationBuilder: + """Convert SCORE input file to an alfacase description.""" + operation_type = self.score_input.read_operation_type() + if operation_type == OperationType.PRODUCTION: + return ProductionOperationBuilder(self.score_input) + else: + return InjectionOperationBuilder(self.score_input) + + def generate_alfasim_input_file(self, alfacase_filepath: Path) -> None: + """Create the ALFAsim input file (AKA alfacase) from an SCORE input file.""" + alfacase_description = self.alfacase_builder.generate_operation_alfacase_description() + alfacase_content = convert_description_to_alfacase(alfacase_description) + alfacase_filepath.write_text(data=alfacase_content, encoding="utf-8") + + def generate_score_output_file(self, alfasim_results_folder: Path) -> None: + """Create the output file for SCORE based on the results generated by ALFAsim.""" + output = self.output_builder.generate_output_results(alfasim_results_folder) + json_data = json.dumps(output, indent=2) + self.output_builder.score_output_filepath.write_text(json_data, encoding="utf-8") diff --git a/src/alfasim_score/converter/alfacase/base_operation.py b/src/alfasim_score/converter/alfacase/base_operation.py index 457f5f2..a3f9011 100644 --- a/src/alfasim_score/converter/alfacase/base_operation.py +++ b/src/alfasim_score/converter/alfacase/base_operation.py @@ -63,8 +63,8 @@ class BaseOperationBuilder: - def __init__(self, score_filepath: Path): - self.score_input = ScoreInputReader(score_filepath) + def __init__(self, score_input_reader: ScoreInputReader): + self.score_input = score_input_reader self.alfacase_converter = ScoreAlfacaseConverter(self.score_input) self.apb_plugin_converter = ScoreAPBPluginConverter(self.score_input) self.base_alfacase = self.alfacase_converter.build_base_alfacase_description() diff --git a/src/alfasim_score/converter/alfacase/convert_alfacase.py b/src/alfasim_score/converter/alfacase/convert_alfacase.py index 2d0c3c8..137a879 100644 --- a/src/alfasim_score/converter/alfacase/convert_alfacase.py +++ b/src/alfasim_score/converter/alfacase/convert_alfacase.py @@ -54,9 +54,9 @@ def get_section_top_of_filler( class ScoreAlfacaseConverter: - def __init__(self, score_reader: ScoreInputReader): - self.score_input = score_reader - self.general_data = score_reader.read_general_data() + def __init__(self, score_input_reader: ScoreInputReader): + self.score_input = score_input_reader + self.general_data = score_input_reader.read_general_data() self.well_start_position = self.general_data["water_depth"] + self.general_data["air_gap"] def get_position_in_well(self, position: Scalar) -> Scalar: diff --git a/src/alfasim_score/converter/alfacase/convert_plugin_data.py b/src/alfasim_score/converter/alfacase/convert_plugin_data.py index 52551eb..0f41b11 100644 --- a/src/alfasim_score/converter/alfacase/convert_plugin_data.py +++ b/src/alfasim_score/converter/alfacase/convert_plugin_data.py @@ -28,9 +28,9 @@ class ScoreAPBPluginConverter: - def __init__(self, score_reader: ScoreInputReader): - self.score_input = score_reader - self.general_data = score_reader.read_general_data() + def __init__(self, score_input_reader: ScoreInputReader): + self.score_input = score_input_reader + self.general_data = score_input_reader.read_general_data() self.well_start_position = self.general_data["water_depth"] + self.general_data["air_gap"] def get_position_in_well(self, position: Scalar) -> Scalar: diff --git a/src/alfasim_score/converter/alfacase/injection_operation.py b/src/alfasim_score/converter/alfacase/injection_operation.py index 5ff77aa..81f0a6d 100644 --- a/src/alfasim_score/converter/alfacase/injection_operation.py +++ b/src/alfasim_score/converter/alfacase/injection_operation.py @@ -20,13 +20,14 @@ from alfasim_score.constants import WELLBORE_BOTTOM_NODE_NAME from alfasim_score.constants import WELLBORE_TOP_NODE_NAME from alfasim_score.converter.alfacase.base_operation import BaseOperationBuilder +from alfasim_score.converter.alfacase.score_input_reader import ScoreInputReader from alfasim_score.units import FRACTION_UNIT from alfasim_score.units import TEMPERATURE_UNIT class InjectionOperationBuilder(BaseOperationBuilder): - def __init__(self, score_filepath: Path): - super().__init__(score_filepath) + def __init__(self, score_input_reader: ScoreInputReader): + super().__init__(score_input_reader) self.operation_type = OperationType.INJECTION assert ( self.general_data["type"] == self.operation_type diff --git a/src/alfasim_score/converter/alfacase/production_operation.py b/src/alfasim_score/converter/alfacase/production_operation.py index 58fc3a5..2c3f278 100644 --- a/src/alfasim_score/converter/alfacase/production_operation.py +++ b/src/alfasim_score/converter/alfacase/production_operation.py @@ -48,6 +48,7 @@ from alfasim_score.constants import WELLBORE_BOTTOM_NODE_NAME from alfasim_score.constants import WELLBORE_TOP_NODE_NAME from alfasim_score.converter.alfacase.base_operation import BaseOperationBuilder +from alfasim_score.converter.alfacase.score_input_reader import ScoreInputReader from alfasim_score.units import FRACTION_UNIT from alfasim_score.units import LENGTH_UNIT from alfasim_score.units import PRESSURE_UNIT @@ -56,8 +57,8 @@ class ProductionOperationBuilder(BaseOperationBuilder): - def __init__(self, score_filepath: Path): - super().__init__(score_filepath) + def __init__(self, score_input_reader: ScoreInputReader): + super().__init__(score_input_reader) self.operation_type = OperationType.PRODUCTION self.lift_method_data = self.score_input.read_operation_method_data() self.produced_fluid_data = self.score_input.read_operation_fluid_data() diff --git a/src/alfasim_score/converter/alfacase/score_output_generator.py b/src/alfasim_score/converter/alfacase/score_output_generator.py index 84846a9..7d736e5 100644 --- a/src/alfasim_score/converter/alfacase/score_output_generator.py +++ b/src/alfasim_score/converter/alfacase/score_output_generator.py @@ -4,56 +4,31 @@ import json import numpy as np -from alfasim_sdk import CaseDescription -from alfasim_sdk import CaseOutputDescription -from alfasim_sdk import GlobalTrendDescription -from alfasim_sdk import LengthAndElevationDescription -from alfasim_sdk import OutputAttachmentLocation -from alfasim_sdk import PipeDescription -from alfasim_sdk import ProfileDescription -from alfasim_sdk import ProfileOutputDescription -from alfasim_sdk import TrendsOutputDescription -from alfasim_sdk import WellDescription from alfasim_sdk.result_reader import Results from barril.units import Scalar from pathlib import Path from alfasim_score.common import AnnulusLabel +from alfasim_score.constants import TOTAL_WALLS from alfasim_score.constants import WELLBORE_NAME +from alfasim_score.converter.alfacase.score_input_reader import ScoreInputReader from alfasim_score.units import LENGTH_UNIT from alfasim_score.units import PRESSURE_UNIT from alfasim_score.units import TEMPERATURE_UNIT -class ScoreOutputGenerator: +class ScoreOutputBuilder: def __init__( self, - results_path: Path, - well_start_position: Scalar, + score_input_reader: ScoreInputReader, + score_output_filepath: Path, active_annuli: List[AnnulusLabel] = [], - walls: List[int] = [], ): - self.results_path = results_path - self.well_start_position = well_start_position + self.score_input_reader = score_input_reader + self.score_output_filepath = score_output_filepath self.active_annuli = active_annuli - self.walls = walls self.element_name = WELLBORE_NAME - def _generate_output_results(self) -> Dict[str, Any]: - """Create data for the output results.""" - results = Results(self.results_path) - measured_depths = self.well_start_position.GetValue(LENGTH_UNIT) + np.array( - results.get_profile_curve("pressure", self.element_name, -1).domain.GetValues( - LENGTH_UNIT - ) - ) - return { - "annuli": self._generate_annuli_output(results, measured_depths), - "MD": measured_depths.tolist(), - "production_tubing": self._generate_production_tubing_output(results), - "layers": self._generate_walls_output(results, measured_depths), - } - def _generate_annuli_output( self, results: Results, measured_depths: np.ndarray ) -> Dict[str, Any]: @@ -125,7 +100,7 @@ def _generate_walls_output( walls_output: Dict[str, Any] = {} wall_index = 0 # Score wall labels are inverted with respect to PWPA - for wall_label in reversed(self.walls): + for wall_label in range(TOTAL_WALLS - 1, -1, -1): wall_name = f"wall_{wall_label}_temperature" wall = {} wall["MD"] = measured_depths.tolist() @@ -139,7 +114,19 @@ def _generate_walls_output( wall_index += 1 return walls_output - def generate_output_file(self, output_filepath: Path) -> None: - """Create the output file for SCORE.""" - json_data = json.dumps(self._generate_output_results(), indent=2) - output_filepath.write_text(json_data, encoding="utf-8") + def generate_output_results(self, alfasim_results_filepath: Path) -> Dict[str, Any]: + """Create data for the output results.""" + results = Results(alfasim_results_filepath) + general_data = self.score_input_reader.read_general_data() + well_start_position = general_data["water_depth"] + general_data["air_gap"] + measured_depths = well_start_position.GetValue(LENGTH_UNIT) + np.array( + results.get_profile_curve("pressure", self.element_name, -1).domain.GetValues( + LENGTH_UNIT + ) + ) + return { + "annuli": self._generate_annuli_output(results, measured_depths), + "MD": measured_depths.tolist(), + "production_tubing": self._generate_production_tubing_output(results), + "layers": self._generate_walls_output(results, measured_depths), + } From 44794694f74d3a98e3f4a2c5c249f808104bc1d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Wed, 11 Dec 2024 17:34:45 -0300 Subject: [PATCH 14/24] Add a section in README showing how to use; Remove the old main module; PWPA-2291 --- README.rst | 33 ++++++++------ .../alfacase/_tests/test_output_results.py | 5 --- .../converter/alfacase/converter_main.py | 43 ------------------- 3 files changed, 19 insertions(+), 62 deletions(-) delete mode 100644 src/alfasim_score/converter/alfacase/converter_main.py diff --git a/README.rst b/README.rst index b98ed58..c662b84 100644 --- a/README.rst +++ b/README.rst @@ -32,24 +32,29 @@ Features ----------- * Converter from Score input JSON to Alfacase -* Parser for the ALFAsim results +* Parser for the ALFAsim results and generate a JSON compatible with SCORE How to use it ------------- -1. First step is to convert the SCORE input into the alfacase file, so the user just need to call the functions like example below: +1. First the user need to create an instance of the converter:: + from pathlib import Path + from alfasim_score.converter.alfacase.alfasim_score_converter import AlfasimScoreConverter + # path indicating where the SCORE input file is + score_input_filepath = Path("path/to/score_input.json") + # path indicating where the ouput file (converted from ALFAsim results) should be created + score_output_filepath = Path("path/to/score_output_result.json") + # then create a converter instance + converter = AlfasimScoreConverter(score_input_filepath, score_output_filepath) + +2. to convert the SCORE input into the alfacase file, so the user can do:: + alfacase_filepath = Path("path/where/save/converted_score.alfacase") + converter.generate_alfasim_input_file(alfacase_filepath) + +3. Run the ALFAsim with the generated file (and the pvt tables in the same folder) +4. Once the result file of ALFAsim is generated, one can call the converter for the output file:: + alfasim_results_directory = Path("path/to/alfasim_results_folder") + converter.generate_score_output_file(alfasim_results_directory) - from alfasim_score.converter.alfacase.converter_main import convert_score_to_alfacase - - # call the converter main function with the input file and output file names - convert_score_to_alfacase("score_input.json", "alfacase_output.alfacase") - -2. Run the ALFAsim with the generated file (and the pvt tables in the same folder) -3. Once the result file of ALFAsim is generated, one can call the converter for the output file. - - from alfasim_score.converter.alfacase.converter_main import convert_score_to_alfacase - - # call the converter main function with the input file and output file names - convert_score_to_alfacase("score_input.json", "alfacase_output.alfacase") Development ----------- diff --git a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py index dcadb33..693e964 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py +++ b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py @@ -1,13 +1,8 @@ -import json -import pandas as pd -import pytest -from barril.units import Scalar from pathlib import Path from pytest_regressions.file_regression import FileRegressionFixture from alfasim_score.common import AnnulusLabel from alfasim_score.converter.alfacase.alfasim_score_converter import AlfasimScoreConverter -from alfasim_score.converter.alfacase.score_output_generator import ScoreOutputBuilder def test_generate_output_file_results( diff --git a/src/alfasim_score/converter/alfacase/converter_main.py b/src/alfasim_score/converter/alfacase/converter_main.py deleted file mode 100644 index d753db3..0000000 --- a/src/alfasim_score/converter/alfacase/converter_main.py +++ /dev/null @@ -1,43 +0,0 @@ -from alfasim_sdk import CaseDescription -from alfasim_sdk import convert_description_to_alfacase -from barril.units import Scalar -from pathlib import Path - -from alfasim_score.common import AnnulusLabel -from alfasim_score.common import OperationType -from alfasim_score.converter.alfacase.base_operation import BaseOperationBuilder -from alfasim_score.converter.alfacase.injection_operation import InjectionOperationBuilder -from alfasim_score.converter.alfacase.production_operation import ProductionOperationBuilder -from alfasim_score.converter.alfacase.score_input_reader import ScoreInputReader -from alfasim_score.converter.alfacase.score_output_generator import ScoreOutputGenerator - - -def convert_score_to_alfacase_description(score_filepath: Path) -> CaseDescription: - """Convert SCORE input file to an alfacase description.""" - score_input = ScoreInputReader(score_filepath) - operation_type = score_input.read_operation_type() - builder: BaseOperationBuilder - if operation_type == OperationType.PRODUCTION: - builder = ProductionOperationBuilder(score_filepath) - else: # OperationType.INJECTION - builder = InjectionOperationBuilder(score_filepath) - return builder.generate_operation_alfacase_description() - - -def convert_score_to_alfacase(score_filepath: Path, alfacase_filepath: Path) -> None: - """Convert SCORE input file to an alfacase file.""" - alfacase_description = convert_score_to_alfacase_description(score_filepath) - alfacase_content = convert_description_to_alfacase(alfacase_description) - alfacase_filepath.write_text(data=alfacase_content, encoding="utf-8") - - -def convert_output_file_results( - alfasim_results_filepath: Path, - output_score_filepath: Path, - active_annuli: list[AnnulusLabel], - well_start_position: Scalar, -) -> None: - output_generator = ScoreOutputGenerator( - alfasim_results_filepath, well_start_position, active_annuli - ) - output_generator.generate_output_file(output_score_filepath) From 99606db04e06e2c830246ab206ebaf16681626c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Wed, 11 Dec 2024 17:54:09 -0300 Subject: [PATCH 15/24] Add a function to get annuli labels for output; PWPA-2291 --- .../converter/alfacase/convert_plugin_data.py | 6 ------ .../converter/alfacase/score_output_generator.py | 12 ++++++++---- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/alfasim_score/converter/alfacase/convert_plugin_data.py b/src/alfasim_score/converter/alfacase/convert_plugin_data.py index 0f41b11..33616d9 100644 --- a/src/alfasim_score/converter/alfacase/convert_plugin_data.py +++ b/src/alfasim_score/converter/alfacase/convert_plugin_data.py @@ -1,21 +1,15 @@ from typing import Any from typing import Dict from typing import List -from typing import Union import numpy as np from alfasim_sdk import PluginDescription from barril.units import Array from barril.units import Scalar -from dataclasses import asdict -from dataclasses import dataclass -from enum import Enum -from pathlib import Path from alfasim_score.common import Annuli from alfasim_score.common import Annulus from alfasim_score.common import AnnulusDepthTable -from alfasim_score.common import AnnulusModeType from alfasim_score.common import AnnulusTemperatureTable from alfasim_score.common import FluidModelPvt from alfasim_score.common import SolidMechanicalProperties diff --git a/src/alfasim_score/converter/alfacase/score_output_generator.py b/src/alfasim_score/converter/alfacase/score_output_generator.py index 7d736e5..a23f3a2 100644 --- a/src/alfasim_score/converter/alfacase/score_output_generator.py +++ b/src/alfasim_score/converter/alfacase/score_output_generator.py @@ -2,13 +2,12 @@ from typing import Dict from typing import List -import json import numpy as np from alfasim_sdk.result_reader import Results -from barril.units import Scalar from pathlib import Path from alfasim_score.common import AnnulusLabel +from alfasim_score.common import WellItemFunction from alfasim_score.constants import TOTAL_WALLS from alfasim_score.constants import WELLBORE_NAME from alfasim_score.converter.alfacase.score_input_reader import ScoreInputReader @@ -22,13 +21,18 @@ def __init__( self, score_input_reader: ScoreInputReader, score_output_filepath: Path, - active_annuli: List[AnnulusLabel] = [], ): self.score_input_reader = score_input_reader self.score_output_filepath = score_output_filepath - self.active_annuli = active_annuli + self.active_annuli = self._get_annuli() self.element_name = WELLBORE_NAME + def _get_annuli(self) -> list[AnnulusLabel]: + """Get the list of active annuli configured in the input file""" + annuli_data = self.score_input_reader.read_operation_annuli_data() + total_annuli = len(annuli_data) + return list(AnnulusLabel)[:total_annuli] + def _generate_annuli_output( self, results: Results, measured_depths: np.ndarray ) -> Dict[str, Any]: From f3fe1b945137cf5d5e044dfa9a03f0fb3876b62c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Wed, 11 Dec 2024 17:58:15 -0300 Subject: [PATCH 16/24] Remove unused imports; PWPA-2291 --- src/alfasim_score/common.py | 1 - src/alfasim_score/conftest.py | 4 ---- src/alfasim_score/constants.py | 1 - src/alfasim_score/converter/alfacase/base_operation.py | 5 ----- src/alfasim_score/converter/alfacase/injection_operation.py | 2 -- .../converter/alfacase/production_operation.py | 3 --- src/alfasim_score/converter/alfacase/score_input_reader.py | 1 - .../converter/alfacase/score_output_generator.py | 6 ++---- 8 files changed, 2 insertions(+), 21 deletions(-) diff --git a/src/alfasim_score/common.py b/src/alfasim_score/common.py index 27a0b7c..3f3f2b1 100644 --- a/src/alfasim_score/common.py +++ b/src/alfasim_score/common.py @@ -11,7 +11,6 @@ from dataclasses import dataclass from dataclasses import field from enum import Enum -from pathlib import Path from alfasim_score.constants import AIR_DENSITY_STANDARD from alfasim_score.constants import WATER_DENSITY_STANDARD diff --git a/src/alfasim_score/conftest.py b/src/alfasim_score/conftest.py index 9759fa0..ac53db8 100644 --- a/src/alfasim_score/conftest.py +++ b/src/alfasim_score/conftest.py @@ -1,8 +1,4 @@ import pytest -from alfasim_sdk import PluginDescription -from barril.units import Array -from barril.units import Scalar -from enum import Enum from pathlib import Path from alfasim_score.converter.alfacase.base_operation import BaseOperationBuilder diff --git a/src/alfasim_score/constants.py b/src/alfasim_score/constants.py index 11d1028..b517667 100644 --- a/src/alfasim_score/constants.py +++ b/src/alfasim_score/constants.py @@ -9,7 +9,6 @@ from alfasim_score.units import PRESSURE_UNIT from alfasim_score.units import ROUGHNESS_UNIT from alfasim_score.units import STD_VOLUMETRIC_FLOW_RATE_UNIT -from alfasim_score.units import TIME_UNIT WELLBORE_NAME = "WELLBORE" WELLBORE_TOP_NODE_NAME = "WELLBORE_TOP_NODE" diff --git a/src/alfasim_score/converter/alfacase/base_operation.py b/src/alfasim_score/converter/alfacase/base_operation.py index a3f9011..50cf2c9 100644 --- a/src/alfasim_score/converter/alfacase/base_operation.py +++ b/src/alfasim_score/converter/alfacase/base_operation.py @@ -1,6 +1,3 @@ -from typing import Any -from typing import Union - from alfasim_sdk import CaseDescription from alfasim_sdk import CaseOutputDescription from alfasim_sdk import EnergyModel @@ -21,7 +18,6 @@ from alfasim_sdk import NumericalOptionsDescription from alfasim_sdk import OutputAttachmentLocation from alfasim_sdk import PhysicsDescription -from alfasim_sdk import PluginDescription from alfasim_sdk import PressureContainerDescription from alfasim_sdk import PressureNodePropertiesDescription from alfasim_sdk import ProfileOutputDescription @@ -39,7 +35,6 @@ from barril.units import Array from barril.units import Scalar from copy import deepcopy -from dataclasses import asdict from pathlib import Path from alfasim_score.constants import GAS_LIFT_MASS_NODE_NAME diff --git a/src/alfasim_score/converter/alfacase/injection_operation.py b/src/alfasim_score/converter/alfacase/injection_operation.py index 81f0a6d..0bbfd3c 100644 --- a/src/alfasim_score/converter/alfacase/injection_operation.py +++ b/src/alfasim_score/converter/alfacase/injection_operation.py @@ -1,5 +1,4 @@ import attr -import numpy as np from alfasim_sdk import CaseDescription from alfasim_sdk import MassInflowSplitType from alfasim_sdk import MassSourceNodePropertiesDescription @@ -11,7 +10,6 @@ from alfasim_sdk._internal.constants import FLUID_OIL from alfasim_sdk._internal.constants import FLUID_WATER from barril.units import Scalar -from pathlib import Path from alfasim_score.common import FluidType from alfasim_score.common import OperationType diff --git a/src/alfasim_score/converter/alfacase/production_operation.py b/src/alfasim_score/converter/alfacase/production_operation.py index 2c3f278..3567df4 100644 --- a/src/alfasim_score/converter/alfacase/production_operation.py +++ b/src/alfasim_score/converter/alfacase/production_operation.py @@ -7,7 +7,6 @@ from alfasim_sdk import GasLiftValveEquipmentDescription from alfasim_sdk import HydrodynamicModelType from alfasim_sdk import InitialConditionsDescription -from alfasim_sdk import InitialConditionStrategyType from alfasim_sdk import InitialPressuresDescription from alfasim_sdk import InitialTemperaturesDescription from alfasim_sdk import InitialVelocitiesDescription @@ -19,7 +18,6 @@ from alfasim_sdk import PressureContainerDescription from alfasim_sdk import PressureNodePropertiesDescription from alfasim_sdk import PvtModelCorrelationDescription -from alfasim_sdk import PvtModelsDescription from alfasim_sdk import SimulationRegimeType from alfasim_sdk import TableInputType from alfasim_sdk import TemperaturesContainerDescription @@ -31,7 +29,6 @@ from alfasim_sdk._internal.constants import FLUID_WATER from barril.units import Array from barril.units import Scalar -from pathlib import Path from alfasim_score.common import LiftMethod from alfasim_score.common import OperationType diff --git a/src/alfasim_score/converter/alfacase/score_input_reader.py b/src/alfasim_score/converter/alfacase/score_input_reader.py index 2ea19f3..291132d 100644 --- a/src/alfasim_score/converter/alfacase/score_input_reader.py +++ b/src/alfasim_score/converter/alfacase/score_input_reader.py @@ -1,7 +1,6 @@ from typing import Any from typing import Dict from typing import List -from typing import Tuple from typing import Union import csv diff --git a/src/alfasim_score/converter/alfacase/score_output_generator.py b/src/alfasim_score/converter/alfacase/score_output_generator.py index a23f3a2..38de158 100644 --- a/src/alfasim_score/converter/alfacase/score_output_generator.py +++ b/src/alfasim_score/converter/alfacase/score_output_generator.py @@ -1,13 +1,11 @@ from typing import Any from typing import Dict -from typing import List import numpy as np from alfasim_sdk.result_reader import Results from pathlib import Path from alfasim_score.common import AnnulusLabel -from alfasim_score.common import WellItemFunction from alfasim_score.constants import TOTAL_WALLS from alfasim_score.constants import WELLBORE_NAME from alfasim_score.converter.alfacase.score_input_reader import ScoreInputReader @@ -24,10 +22,10 @@ def __init__( ): self.score_input_reader = score_input_reader self.score_output_filepath = score_output_filepath - self.active_annuli = self._get_annuli() + self.active_annuli = self._get_annuli_list() self.element_name = WELLBORE_NAME - def _get_annuli(self) -> list[AnnulusLabel]: + def _get_annuli_list(self) -> list[AnnulusLabel]: """Get the list of active annuli configured in the input file""" annuli_data = self.score_input_reader.read_operation_annuli_data() total_annuli = len(annuli_data) From 52e931d7c8023f76fb4d9b65b2efa071802eb781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Wed, 11 Dec 2024 18:04:35 -0300 Subject: [PATCH 17/24] Fix minor typos in docs; Fix annotation of type in output generator; PWPA-2291 --- README.rst | 5 +++-- .../converter/alfacase/score_output_generator.py | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index c662b84..7b9463c 100644 --- a/README.rst +++ b/README.rst @@ -41,16 +41,17 @@ How to use it from alfasim_score.converter.alfacase.alfasim_score_converter import AlfasimScoreConverter # path indicating where the SCORE input file is score_input_filepath = Path("path/to/score_input.json") - # path indicating where the ouput file (converted from ALFAsim results) should be created + # path indicating where the output file (converted from ALFAsim results) should be created score_output_filepath = Path("path/to/score_output_result.json") # then create a converter instance converter = AlfasimScoreConverter(score_input_filepath, score_output_filepath) -2. to convert the SCORE input into the alfacase file, so the user can do:: +2. to convert the SCORE input into the alfacase file the user can do:: alfacase_filepath = Path("path/where/save/converted_score.alfacase") converter.generate_alfasim_input_file(alfacase_filepath) 3. Run the ALFAsim with the generated file (and the pvt tables in the same folder) + 4. Once the result file of ALFAsim is generated, one can call the converter for the output file:: alfasim_results_directory = Path("path/to/alfasim_results_folder") converter.generate_score_output_file(alfasim_results_directory) diff --git a/src/alfasim_score/converter/alfacase/score_output_generator.py b/src/alfasim_score/converter/alfacase/score_output_generator.py index 38de158..3a484a4 100644 --- a/src/alfasim_score/converter/alfacase/score_output_generator.py +++ b/src/alfasim_score/converter/alfacase/score_output_generator.py @@ -1,5 +1,6 @@ from typing import Any from typing import Dict +from typing import List import numpy as np from alfasim_sdk.result_reader import Results @@ -25,7 +26,7 @@ def __init__( self.active_annuli = self._get_annuli_list() self.element_name = WELLBORE_NAME - def _get_annuli_list(self) -> list[AnnulusLabel]: + def _get_annuli_list(self) -> List[AnnulusLabel]: """Get the list of active annuli configured in the input file""" annuli_data = self.score_input_reader.read_operation_annuli_data() total_annuli = len(annuli_data) From 71c25d5e3905661278e53cffe705bef3c05a8fe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Thu, 12 Dec 2024 09:04:13 -0300 Subject: [PATCH 18/24] Fix the format of README; PWPA-2291 --- README.rst | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 7b9463c..0637ef0 100644 --- a/README.rst +++ b/README.rst @@ -36,7 +36,8 @@ Features How to use it ------------- -1. First the user need to create an instance of the converter:: +#. First the user need to create an instance of the converter:: + from pathlib import Path from alfasim_score.converter.alfacase.alfasim_score_converter import AlfasimScoreConverter # path indicating where the SCORE input file is @@ -46,13 +47,15 @@ How to use it # then create a converter instance converter = AlfasimScoreConverter(score_input_filepath, score_output_filepath) -2. to convert the SCORE input into the alfacase file the user can do:: +#. to convert the SCORE input into the alfacase file the user can do:: + alfacase_filepath = Path("path/where/save/converted_score.alfacase") converter.generate_alfasim_input_file(alfacase_filepath) -3. Run the ALFAsim with the generated file (and the pvt tables in the same folder) +#. Run the ALFAsim with the generated file (and the pvt tables in the same folder) + +#. Once the result file of ALFAsim is generated, one can call the converter for the output file:: -4. Once the result file of ALFAsim is generated, one can call the converter for the output file:: alfasim_results_directory = Path("path/to/alfasim_results_folder") converter.generate_score_output_file(alfasim_results_directory) From af1e07e1237c9b14e3e67ff4ebab2a17e8bbfd3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Thu, 12 Dec 2024 11:03:32 -0300 Subject: [PATCH 19/24] Change name of variables; PWPA-2291 --- .../converter/alfacase/_tests/test_output_results.py | 10 +++++----- .../converter/alfacase/alfasim_score_converter.py | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py index 693e964..f6aaf52 100644 --- a/src/alfasim_score/converter/alfacase/_tests/test_output_results.py +++ b/src/alfasim_score/converter/alfacase/_tests/test_output_results.py @@ -8,15 +8,15 @@ def test_generate_output_file_results( shared_datadir: Path, datadir: Path, file_regression: FileRegressionFixture ) -> None: - alfasim_results_directory = shared_datadir / "case.data" + alfasim_results_path = shared_datadir / "case.data" # dummy input file just to have the reader for this test - score_input_filepath = shared_datadir / "score_input_natural_flow.json" - output_filepath = datadir / "output_score.json" - converter = AlfasimScoreConverter(score_input_filepath, output_filepath) + score_input_file = shared_datadir / "score_input_natural_flow.json" + output_file = datadir / "output_score.json" + converter = AlfasimScoreConverter(score_input_file, output_file) # change the element name to match this test result well name converter.output_builder.element_name = "7-SRR-2-RJS (2022-07-28_15-01-27)" # TODO: remember to get these annuli inside the output class converter.output_builder.active_annuli = [AnnulusLabel.A, AnnulusLabel.B, AnnulusLabel.C] - converter.generate_score_output_file(alfasim_results_directory) + converter.generate_score_output_file(alfasim_results_path) output_content = converter.output_builder.score_output_filepath.read_text(encoding="utf-8") file_regression.check(output_content, extension=".json", encoding="utf-8") diff --git a/src/alfasim_score/converter/alfacase/alfasim_score_converter.py b/src/alfasim_score/converter/alfacase/alfasim_score_converter.py index 22d6169..b6e9703 100644 --- a/src/alfasim_score/converter/alfacase/alfasim_score_converter.py +++ b/src/alfasim_score/converter/alfacase/alfasim_score_converter.py @@ -17,10 +17,10 @@ class AlfasimScoreConverter: - it can use a ALFAsim result into a SCORE output file. """ - def __init__(self, score_input_filepath: Path, score_output_filepath: Path): - self.score_input = ScoreInputReader(score_input_filepath) + def __init__(self, score_input_file: Path, score_output_file: Path): + self.score_input = ScoreInputReader(score_input_file) self.alfacase_builder = self._get_score_to_alfacase_builder() - self.output_builder = ScoreOutputBuilder(self.score_input, score_output_filepath) + self.output_builder = ScoreOutputBuilder(self.score_input, score_output_file) def _get_score_to_alfacase_builder(self) -> BaseOperationBuilder: """Convert SCORE input file to an alfacase description.""" From edfcd347c97cb7a5221b79a98c930ad085b0a3b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Fri, 13 Dec 2024 14:53:35 -0300 Subject: [PATCH 20/24] Minor fix documentation; PWPA-2291 --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 0637ef0..1535ae1 100644 --- a/README.rst +++ b/README.rst @@ -47,7 +47,7 @@ How to use it # then create a converter instance converter = AlfasimScoreConverter(score_input_filepath, score_output_filepath) -#. to convert the SCORE input into the alfacase file the user can do:: +#. To convert the SCORE input to the alfacase file the user can do:: alfacase_filepath = Path("path/where/save/converted_score.alfacase") converter.generate_alfasim_input_file(alfacase_filepath) From 330fff2fddd137b4071b38f26b4738b11891955b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 10:50:56 +0000 Subject: [PATCH 21/24] Bump the github-actions group across 1 directory with 4 updates Bumps the github-actions group with 4 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [actions/setup-python](https://github.com/actions/setup-python), [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) and [codecov/codecov-action](https://github.com/codecov/codecov-action). Updates `actions/checkout` from 1 to 4 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v1...v4) Updates `actions/setup-python` from 4 to 5 - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) Updates `pypa/gh-action-pypi-publish` from 1.12.2 to 1.12.3 - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/v1.12.2...v1.12.3) Updates `codecov/codecov-action` from 4.0.1 to 5.1.1 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.0.1...v5.1.1) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: pypa/gh-action-pypi-publish dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/deploy.yml | 2 +- .github/workflows/sonar.yml | 2 +- .github/workflows/test.yml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 87fa785..492f95a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -30,7 +30,7 @@ jobs: run: | python -m build - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@v1.12.2 + uses: pypa/gh-action-pypi-publish@v1.12.3 - name: GitHub Release uses: softprops/action-gh-release@v2 with: diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index c863c90..8c726a9 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: # Disabling shallow clone is recommended for improving relevancy of reporting fetch-depth: 0 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 98ebeee..564399f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,10 +20,10 @@ jobs: os: [ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} @@ -37,7 +37,7 @@ jobs: tox -e py - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v4.0.1 + uses: codecov/codecov-action@v5.1.1 with: token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: true From 7eb56b77281683c1c66e62b67aabbb68e09438af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ant=C3=A3o?= Date: Mon, 16 Dec 2024 14:54:19 -0300 Subject: [PATCH 22/24] Fix some README mistakes; PWPA-2291 --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 1535ae1..0ce79cb 100644 --- a/README.rst +++ b/README.rst @@ -36,7 +36,7 @@ Features How to use it ------------- -#. First the user need to create an instance of the converter:: +#. First, the user needs to create an instance of the converter:: from pathlib import Path from alfasim_score.converter.alfacase.alfasim_score_converter import AlfasimScoreConverter @@ -47,7 +47,7 @@ How to use it # then create a converter instance converter = AlfasimScoreConverter(score_input_filepath, score_output_filepath) -#. To convert the SCORE input to the alfacase file the user can do:: +#. To convert the SCORE input into an alfacase file, the user can do the following:: alfacase_filepath = Path("path/where/save/converted_score.alfacase") converter.generate_alfasim_input_file(alfacase_filepath) From b651bcbc18e88e9e8998a7e9baa216df7c8a1ada Mon Sep 17 00:00:00 2001 From: Leonardo Rosenbach Date: Tue, 17 Dec 2024 09:36:00 -0300 Subject: [PATCH 23/24] Update README.rst --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 0ce79cb..403243a 100644 --- a/README.rst +++ b/README.rst @@ -116,7 +116,7 @@ Ex.: v1.0.5 1. Create a ``release-VERSION`` branch from ``upstream/master``. 2. Update ``CHANGELOG.rst``. 3. Push a branch with the changes. -4. Once all builds pass, push a ``VERSION`` tag to ``upstream``. +4. Once all builds pass, push a ``VERSION`` tag to ``upstream``. Ex: `git tag v1.0.5; git push origin --tags` 5. Merge the PR. From 27bf1d833b6781510144ad17af98001d3a5cb5f0 Mon Sep 17 00:00:00 2001 From: Leonardo Rosenbach Date: Tue, 17 Dec 2024 09:36:25 -0300 Subject: [PATCH 24/24] Update README.rst --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 403243a..fe3cd14 100644 --- a/README.rst +++ b/README.rst @@ -116,7 +116,7 @@ Ex.: v1.0.5 1. Create a ``release-VERSION`` branch from ``upstream/master``. 2. Update ``CHANGELOG.rst``. 3. Push a branch with the changes. -4. Once all builds pass, push a ``VERSION`` tag to ``upstream``. Ex: `git tag v1.0.5; git push origin --tags` +4. Once all builds pass, push a ``VERSION`` tag to ``upstream``. Ex: ``git tag v1.0.5; git push origin --tags`` 5. Merge the PR.