@neutrium/pipe
Version:
The pipe module of the Neutrium library
101 lines (100 loc) • 10.5 kB
JavaScript
;
//
// ASME/ANSI B36.10/19 Steel and Stainless Steel Pipe
//
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var Pipe_1 = require("./Pipe");
var quantity_1 = require("@neutrium/quantity");
var ASME_B36_10_Pipe = /** @class */ (function (_super) {
__extends(ASME_B36_10_Pipe, _super);
// @param {string} ns - The nominal size of the pipe (NPS vs DN ?)
// @param {string} schedule - The pipe schdule
function ASME_B36_10_Pipe(size, schedule) {
var _this = this;
var sizeQty = new quantity_1.Quantity(size), units = sizeQty.units() || "m", sizeData = null, od = null, wt = null;
var nomSize, nomSizeIndex = 0;
if (units == "in") {
nomSize = sizeQty.scalar.toNumber();
nomSizeIndex = 1;
}
else {
nomSize = sizeQty.to("mm").scalar.toNumber();
}
// Get the DN size and outer diameter
for (var i = 0, len = ASME_B36_10_Pipe.OD_DATA.length; i < len; i++) {
var element = ASME_B36_10_Pipe.OD_DATA[i];
if (element[nomSizeIndex] == nomSize) {
sizeData = element;
od = new quantity_1.Quantity(element[2], "m").to(units);
break;
}
}
// Check a valid size was provided
if (od === null) {
throw Error("Invalid pipe size provided");
}
// Get the wall thickness
var pipeData = ASME_B36_10_Pipe.WT_DATA["" + sizeData[0]];
if (pipeData.hasOwnProperty(schedule)) {
wt = new quantity_1.Quantity(pipeData[schedule], "m").to(units);
}
else {
throw Error("Invalid combination of pipe size and schedule provided");
}
// od and wt are in metres at this point
_this = _super.call(this, od, wt) || this;
// Set additional Schedule pipe info
_this.schedule = schedule;
_this.dn = sizeData[0];
_this.nps = sizeData[1];
return _this;
}
// Schedule pipe outer diameter [<DN size>, <NPS size>, <OD in m>]
ASME_B36_10_Pipe.OD_DATA = [[6, 1 / 8, 0.0103], [8, 1 / 4, 0.0137], [10, 3 / 8, 0.0171], [15, 1 / 2, 0.0213], [20, 3 / 4, 0.0267], [25, 1, 0.0334], [32, 1.25, 0.0422], [40, 1.5, 0.0483], [50, 2, 0.0603], [65, 2.5, 0.073], [80, 3, 0.0889], [90, 3.5, 0.1016], [100, 4, 0.1143], [115, 4.5, 0.127], [125, 5, 0.1413], [150, 6, 0.1683], [200, 8, 0.2191], [250, 10, 0.2731], [300, 12, 0.3239], [350, 14, 0.3556], [400, 16, 0.4064], [450, 18, 0.4572], [500, 20, 0.508], [550, 22, 0.5588], [600, 24, 0.6096], [650, 26, 0.6604], [700, 28, 0.7112], [750, 30, 0.762], [800, 32, 0.8128], [850, 34, 0.8636], [900, 36, 0.9144], [1050, 42, 1.0668]];
// Schedule pipe wall thickness data (in m) referenced by DN size
ASME_B36_10_Pipe.WT_DATA = {
"6": { "5": 0.000889, "10": 0.001245, "30": 0.001448, "40": 0.001727, "80": 0.002413, "STD": 0.001727, "XS": 0.002413, "10S": 0.001245, "40S": 0.001727, "80S": 0.002413 },
"8": { "5": 0.001245, "10": 0.001651, "30": 0.001854, "40": 0.002235, "80": 0.003023, "STD": 0.002235, "XS": 0.003023, "10S": 0.001651, "40S": 0.002235, "80S": 0.003023 },
"10": { "5": 0.001245, "10": 0.001651, "30": 0.001854, "40": 0.002311, "80": 0.003200, "STD": 0.002311, "XS": 0.003200, "10S": 0.001651, "40S": 0.002311, "80S": 0.003200 },
"15": { "5": 0.001651, "10": 0.002108, "30": 0.002413, "40": 0.002769, "80": 0.003734, "120": 0.004318, "160": 0.004775, "STD": 0.002769, "XS": 0.003734, "XXS": 0.007468, "5S": 0.001651, "10S": 0.002108, "40S": 0.002769, "80S": 0.003734, "160S": 0.004780 },
"20": { "5": 0.001651, "10": 0.0021082, "30": 0.002413, "40": 0.0028702, "80": 0.0039116, "160": 0.0055626, "STD": 0.0028702, "XS": 0.0039116, "XXS": 0.0078232, "5S": 0.001651, "10S": 0.0021082, "40S": 0.0028702, "80S": 0.0039116, "160S": 0.00557 },
"25": { "5": 0.001651, "10": 0.0027686, "30": 0.0028956, "40": 0.0033782, "80": 0.0045466, "160": 0.00635, "STD": 0.0033782, "XS": 0.0045466, "XXS": 0.0090932, "5S": 0.001651, "10S": 0.0027686, "40S": 0.0033782, "80S": 0.0045466, "160S": 0.00635 },
"32": { "5": 0.001651, "10": 0.0027686, "30": 0.0029718, "40": 0.003556, "80": 0.0048514, "160": 0.00635, "STD": 0.003556, "XS": 0.0048514, "XXS": 0.0097028, "5S": 0.001651, "10S": 0.0027686, "40S": 0.003556, "80S": 0.0048514, "160S": 0.00635 },
"40": { "5": 0.001651, "10": 0.0027686, "30": 0.003175, "40": 0.003683, "80": 0.00508, "160": 0.0071374, "STD": 0.003683, "XS": 0.00508, "XXS": 0.01016, "5S": 0.001651, "10S": 0.0027686, "40S": 0.003683, "80S": 0.00508, "160S": 0.00714 },
"50": { "5": 0.001651, "10": 0.0027686, "30": 0.003175, "40": 0.0039116, "80": 0.0055372, "120": 0.00635, "160": 0.0087376, "STD": 0.0039116, "XS": 0.0055372, "XXS": 0.0110744, "5S": 0.001651, "10S": 0.0027686, "40S": 0.0039116, "80S": 0.0055372, "160S": 0.00874 },
"65": { "5": 0.0021082, "10": 0.003048, "30": 0.0047752, "40": 0.0051562, "80": 0.0070104, "120": 0.00762, "160": 0.009525, "STD": 0.0051562, "XS": 0.0070104, "XXS": 0.0140208, "5S": 0.0021082, "10S": 0.003048, "40S": 0.0051562, "80S": 0.0070104, "160S": 0.00953 },
"80": { "5": 0.0021082, "10": 0.003048, "30": 0.0047752, "40": 0.0054864, "80": 0.00762, "120": 0.00889, "160": 0.0111252, "STD": 0.0054864, "XS": 0.00762, "XXS": 0.01524, "5S": 0.0021082, "10S": 0.003048, "40S": 0.0054864, "80S": 0.00762, "160S": 0.01113 },
"90": { "5": 0.0021082, "10": 0.003048, "30": 0.0047752, "40": 0.0057404, "80": 0.0080772, "STD": 0.0057404, "XS": 0.0080772, "XXS": 0.0161544, "5S": 0.0021082, "10S": 0.003048, "40S": 0.0057404, "80S": 0.0080772 },
"100": { "5": 0.0021082, "10": 0.003048, "30": 0.0047752, "40": 0.0060198, "60": 0.0071374, "80": 0.0085598, "120": 0.0110998, "160": 0.0134874, "STD": 0.0060198, "XS": 0.0085598, "XXS": 0.0171196, "5S": 0.0021082, "10S": 0.003048, "40S": 0.0060198, "80S": 0.0085598, "160S": 0.01349 },
"115": { "40": 0.0062738, "80": 0.009017 },
"125": { "5": 0.0027686, "10": 0.0034036, "40": 0.0065532, "80": 0.009525, "120": 0.0127, "160": 0.015875, "STD": 0.0065532, "XS": 0.009525, "XXS": 0.01905, "5S": 0.0027686, "10S": 0.0034036, "40S": 0.0065532, "80S": 0.009525, "160S": 0.01588 },
"150": { "5": 0.0027686, "10": 0.0034036, "40": 0.007112, "80": 0.0109728, "120": 0.0142748, "160": 0.0182626, "STD": 0.007112, "XS": 0.0109728, "XXS": 0.0219456, "5S": 0.0027686, "10S": 0.0034036, "40S": 0.007112, "80S": 0.0109728, "160S": 0.01827 },
"200": { "5": 0.0027686, "10": 0.0037592, "20": 0.00635, "30": 0.00635, "40": 0.0081788, "60": 0.0103124, "80": 0.0127, "100": 0.0150876, "120": 0.0182372, "140": 0.0206248, "160": 0.0230124, "STD": 0.0081788, "XS": 0.0127, "XXS": 0.022225, "5S": 0.0027686, "10S": 0.0037592, "40S": 0.0081788, "80S": 0.0127, "160S": 0.02302 },
"250": { "5": 0.0034036, "10": 0.004191, "20": 0.00635, "30": 0.0077978, "40": 0.009271, "60": 0.0127, "80": 0.0150622, "100": 0.0182626, "120": 0.0214122, "140": 0.0254, "160": 0.028575, "STD": 0.009271, "XS": 0.0127, "XXS": 0.0254, "5S": 0.0034036, "10S": 0.004191, "40S": 0.009271, "80S": 0.0127, "160S": 0.02858 },
"300": { "5": 0.0039624, "10": 0.004572, "20": 0.00635, "30": 0.008382, "40": 0.0103124, "60": 0.0127, "80": 0.0174498, "100": 0.0214376, "120": 0.0254, "140": 0.028575, "160": 0.0333248, "STD": 0.009525, "XS": 0.0127, "XXS": 0.0254, "5S": 0.0039624, "10S": 0.004572, "40S": 0.009525, "80S": 0.0127, "160S": 0.03333 },
"350": { "5": 0.0039624, "10": 0.00635, "20": 0.0079248, "30": 0.009525, "40": 0.0110998, "60": 0.0150622, "80": 0.01905, "100": 0.0238252, "120": 0.0277622, "140": 0.03175, "160": 0.0357124, "STD": 0.009525, "XS": 0.0127, "5S": 0.0039624, "10S": 0.0047752, "40S": 0.009525, "80S": 0.0127 },
"400": { "5": 0.004191, "10": 0.00635, "20": 0.0079248, "30": 0.009525, "40": 0.0127, "60": 0.0166624, "80": 0.0214122, "100": 0.0261874, "120": 0.0309372, "140": 0.0365252, "160": 0.0404622, "STD": 0.009525, "XS": 0.0127, "5S": 0.004191, "10S": 0.0047752, "40S": 0.009525, "80S": 0.0127 },
"450": { "5": 0.004191, "10": 0.00635, "20": 0.0079248, "30": 0.0110998, "40": 0.0142748, "60": 0.01905, "80": 0.0237998, "100": 0.0293624, "120": 0.034925, "140": 0.0396748, "160": 0.0452374, "STD": 0.009525, "XS": 0.0127, "5S": 0.004191, "10S": 0.0047752, "40S": 0.009525, "80S": 0.0127 },
"500": { "5": 0.0047752, "10": 0.00635, "20": 0.009525, "30": 0.0127, "40": 0.0150622, "60": 0.0206248, "80": 0.0261874, "100": 0.0325374, "120": 0.0381, "140": 0.04445, "160": 0.0499872, "STD": 0.009525, "XS": 0.0127, "5S": 0.0047752, "10S": 0.0055372, "40S": 0.009525, "80S": 0.0127 },
"550": { "10": 0.00635, "20": 0.009525, "30": 0.0127, "60": 0.022225, "80": 0.028575, "100": 0.034925, "120": 0.041275, "140": 0.047625, "160": 0.053975, "STD": 0.009525, "XS": 0.0127, "5S": 0.0047752, "10S": 0.0055372 },
"600": { "5": 0.0055372, "10": 0.00635, "20": 0.009525, "30": 0.0142748, "40": 0.0174498, "60": 0.0245872, "80": 0.0309372, "100": 0.0388874, "120": 0.0460248, "140": 0.0523748, "160": 0.0595122, "STD": 0.009525, "XS": 0.0127, "5S": 0.0055372, "10S": 0.00635, "40S": 0.009525, "80S": 0.0127 },
"650": { "10": 0.0079248, "20": 0.0127, "STD": 0.009525, "XS": 0.0127 },
"700": { "10": 0.0079248, "20": 0.0127, "30": 0.015875, "STD": 0.009525, "XS": 0.0127 },
"750": { "10": 0.0079248, "20": 0.0127, "30": 0.015875, "STD": 0.009525, "XS": 0.0127, "40S": 0.009525, "80S": 0.0127 },
"800": { "10": 0.0079248, "20": 0.0127, "30": 0.015875, "40": 0.0174752, "STD": 0.009525, "XS": 0.0127 },
"850": { "10": 0.0087376, "20": 0.0127, "30": 0.015875, "40": 0.0174752, "STD": 0.009525, "XS": 0.0127 },
"900": { "10": 0.0079248, "20": 0.0127, "30": 0.015875, "40": 0.01905, "STD": 0.009525, "XS": 0.0127, "40S": 0.009525, "80S": 0.0127 }
};
return ASME_B36_10_Pipe;
}(Pipe_1.Pipe));
exports.ASME_B36_10_Pipe = ASME_B36_10_Pipe;