UNPKG

ccs-sim

Version:
68 lines (67 loc) 1.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const analogue_1 = __importDefault(require("./analogue")); const reservoir_1 = require("./reservoir"); const perforationFunctions = { [reservoir_1.RealReservoir.Hamilton]: { split: 4, intercept: -1.6137583306682473, powers: [ [1, 0], [0, 1], [2, 0], [1, 1], [0, 2], ], coefficients: [ -5.31124455e-2, 1.00818995, 1.48023509e-4, 4.18609179e-4, 3.00308213e-6, ], }, [reservoir_1.RealReservoir.HamiltonNorth]: { split: 2, intercept: -1.9597510728900147, powers: [ [1, 0], [0, 1], [2, 0], [1, 1], [0, 2], ], coefficients: [ -1.4969207e-1, 1.06629533, -2.80472165e-5, 1.40749378e-3, -5.39246727e-4, ], }, [reservoir_1.RealReservoir.Lennox]: { split: 2, intercept: -0.5620851518695815, powers: [ [1, 0], [0, 1], [2, 0], [1, 1], [0, 2], ], coefficients: [ -6.23044797e-3, 1.00131251, -2.09522684e-5, 7.52686842e-5, 1.19926497e-5, ], }, }; class Perforation extends analogue_1.default { constructor(name, physical, realReservoir) { super(name, physical, 'Well', perforationFunctions[realReservoir]); } get x() { if (!this.fluid) { throw new Error(`${this.type} has no fluid`); } return this.fluid.flowrate.kgps / this.modelFunction.split; } setDestination(dest) { this.destination = dest; dest.source = this; } } exports.default = Perforation;