Imitation of CVRL.BAS computer program presented in ASME B31G-1991 Appendix A for determining allowable length and allowable operating pressure
Arguments
- maop
maximum allowable operating pressure - MAOP, [PSI]. Type:
assert_double
.- d
nominal outside diameter of pipe, [inch]. Type:
assert_double
.- wth
nominal wall thickness of pipe, [inch]. Type:
assert_double
.- smys
specified minimum yield of stress (SMYS) as a characteristics of steel strength, [PSI]. Type:
assert_double
.- def
appropriate (combined) design factor from ASME B31.4, ASME B31.8, or ASME B31.11, []. Type:
assert_double
.- depth
measured maximum depth of the corroded area, [inch]. Type:
assert_double
.- l
measured maximum longitudinal length of the corroded area, [inch]. Type:
assert_double
.
Value
Object of S3-class crvl which is a data.frame with the next numeric columns:
- maop
maximum allowable operating pressure - MAOP, [PSI]. Type:
assert_double
.- d
nominal outside diameter of pipe, [inch]. Type:
assert_double
.- wth
nominal wall thickness of pipe, [inch]. Type:
assert_double
.- smys
specified minimum yield of stress (SMYS) as a characteristics of steel strength, [PSI]. Type:
assert_double
.- def
appropriate (combined) design factor from ASME B31.4, ASME B31.8, or ASME B31.11, []. Type:
assert_double
.- depth
measured maximum depth of the corroded area, [inch]. Type:
assert_double
.- l
measured maximum longitudial length of corroded area, [inch]. Type:
assert_double
.- status
Operational status of pipe: 1 - excellent, 2 - monitoring is recommended, 3 - alert! replace the pipe immediately! Type:
assert_numeric
.- design_pressure
design pressure of pipe, [PSI]. Type:
assert_double
.- safe_pressure
safe maximum pressure for the corroded area, [PSI]. Type:
assert_double
.- pressure_exceeding
whether operator's action is required to reduce MOAP lower than the maximum safe pressure of the corroded area. Type:
assert_logical
.- allowed_corrosion_depth
allowable depth of the corroded area, [inch]. Type:
assert_double
.- A
intermediate factor related to the geometry of the corroded area, []. Type:
assert_double
.- allowed_corrosion_length
allowable length of the corroded area, [inch]. Type:
assert_double
.- AP
another intermediate factor related to the geometry of the corroded area, []. Type:
assert_double
.
Details
Columns maop, d, wth, smys, def, depth, l in the output data.frame come from function's input, other columns are calculated.
For univariate case (when lengths of all input vectors are one) messages that imitate CRVL.BAS console output are printed.
References
ASME B31 G-1991. Manual for determining the remaining strength of corroded pipelines. A supplement to ASME B31G code for pressure piping.
Examples
library(pipenostics)
## Further examples are inspired by those used in Appendix A of
## ASME B31G-1991 to verify correct entry of CRVL.BAS source code
## Example 1
b31crvl(maop = 910, d = 30, wth = .438, smys = 52000, def = .72, depth = .1, l = 7.5)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 1.847
#> Design pressure = 1093 PSI; Safe pressure = 1093 PSI
#> Pipe may be operated safely at MAOP, 910 PSI
#> With corrosion length 7.500 inch, maximum allowed corrosion depth is 0.2490 inch; A = 1.847
#> With corrosion depth 0.100 inch, maximum allowed corrosion length is Inf inch; A = 5.000
#
# -- Calculated data --
# Intermediate factor (A) = 1.847
# Design pressure = 1093 PSI; Safe pressure = 1093 PSI
# Pipe may be operated safely at MAOP, 910 PSI
# With corrosion length 7.500 inch, maximum allowed corrosion depth is 0.2490 inch; A = 1.847
# With corrosion depth 0.100 inch, maximum allowed corrosion length is Inf inch; A = 5.000
## Example 2
b31crvl(maop = 400, d = 20, wth = .25, smys = 35000, def = 0.5, depth = 0.18, l = 10)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 3.993
#> Design pressure = 438 PSI; Safe pressure = 284 PSI
#> Reduce operating pressure so it will not exceed 284 PSI, and so operate legally and safely
#> With corrosion length 10.000 inch, maximum allowed corrosion depth is 0.0790 inch; A = 3.993
#> With corrosion depth 0.180 inch, maximum allowed corrosion length is 2.0180 inch; A = 0.806
#
# -- Calculated data --
# Intermediate factor (A) = 3.993
# Design pressure = 438 PSI; Safe pressure = 284 PSI
# Reduce operating pressure so it will not exceed 284 PSI, and so operate legally and safely
# With corrosion length 10.000 inch, maximum allowed corrosion depth is 0.0790 inch; A = 3.993
# With corrosion depth 0.180 inch, maximum allowed corrosion length is 2.0180 inch; A = 0.806
## Example 3
b31crvl(maop = 910, d = 24, wth = .432, smys = 52000, def = .72, depth = 0.13, l = 30)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 8.320
#> Design pressure = 1348 PSI; Safe pressure = 1037 PSI
#> Pipe may be operated safely at MAOP, 910 PSI
#> With corrosion length 30.000 inch, maximum allowed corrosion depth is 0.1670 inch; A = 8.320
#> With corrosion depth 0.130 inch, maximum allowed corrosion length is Inf inch; A = 5.000
#
# -- Calculated data --
# Intermediate factor (A) = 8.320
# Design pressure = 1348 PSI; Safe pressure = 1037 PSI
# Pipe may be operated safely at MAOP, 910 PSI
# With corrosion length 30.000 inch, maximum allowed corrosion depth is 0.1670 inch; A = 8.320
# With corrosion depth 0.130 inch, maximum allowed corrosion length is Inf inch; A = 5.000
## Example 4
b31crvl(maop = 910, d = 24, wth = .432, smys = 52000, def = .72, depth = .3, l = 30)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 8.320
#> Design pressure = 1348 PSI; Safe pressure = 453 PSI
#> Reduce operating pressure so it will not exceed 453 PSI, and so operate legally and safely
#> With corrosion length 30.000 inch, maximum allowed corrosion depth is 0.1670 inch; A = 8.320
#> With corrosion depth 0.300 inch, maximum allowed corrosion length is 12.8670 inch; A = 3.568
#
# -- Calculated data --
# Intermediate factor (A) = 8.320
# Design pressure = 1348 PSI; Safe pressure = 453 PSI
# Reduce operating pressure so it will not exceed 453 PSI, and so operate legally and safely
# With corrosion length 30.000 inch, maximum allowed corrosion depth is 0.1670 inch; A = 8.320
# With corrosion depth 0.300 inch, maximum allowed corrosion length is 12.8670 inch; A = 3.568
## Example 5
b31crvl(maop = 731, d = 24, wth = .281, smys = 52000, def = 0.72, depth = 0.08, l = 15)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 5.158
#> Design pressure = 877 PSI; Safe pressure = 690 PSI
#> Reduce operating pressure so it will not exceed 690 PSI, and so operate legally and safely
#> With corrosion length 15.000 inch, maximum allowed corrosion depth is 0.0680 inch; A = 5.158
#> With corrosion depth 0.080 inch, maximum allowed corrosion length is 11.6340 inch; A = 4.000
#
# -- Calculated data --
# Intermediate factor (A) = 5.158
# Design pressure = 877 PSI; Safe pressure = 690 PSI
# Reduce operating pressure so it will not exceed 690 PSI, and so operate legally and safely
# With corrosion length 15.000 inch, maximum allowed corrosion depth is 0.0680 inch; A = 5.158
# With corrosion depth 0.080 inch, maximum allowed corrosion length is 11.6340 inch; A = 4.000
## Example 6
b31crvl(maop = 1e3, d = 36, wth = .5, smys = 52000, def = 0.72, depth = 0.41, l = 100)
#> Alert! Corrosion depth exceeds 80 % of pipe wall! Pipe must be replaced!
#> -- Calculated data --
#> Intermediate factor (A) = 21.048
#> Design pressure = 1040 PSI; Safe pressure = 206 PSI
#> Repair or replace pipe because corrosion depth exceeds 80 % of pipe wall!
#> Reduce operating pressure so it will not exceed 206 PSI, and so operate legally and safely
#> With corrosion length 100.000 inch, maximum allowed corrosion depth is 0.0630 inch; A = 21.048
#> With corrosion depth 0.410 inch, maximum allowed corrosion length is 2.5560 inch; A = 0.538
#> But 0.410 inch exceeds allowable corrosion depth!!!
# Alert! Corrosion depth exceeds 80 % of pipe wall! Pipe must be replaced!
# -- Calculated data --
# Intermediate factor (A) = 21.048
# Design pressure = 1040 PSI; Safe pressure = 206 PSI
# Repair or replace pipe because corrosion depth exceeds 80 % of pipe wall!
# Reduce operating pressure so it will not exceed 206 PSI, and so operate legally and safely
# With corrosion length 100.000 inch, maximum allowed corrosion depth is 0.0630 inch; A = 21.048
# With corrosion depth 0.410 inch, maximum allowed corrosion length is 2.5560 inch; A = 0.538
# But 0.410 inch exceeds allowable corrosion depth!!!
## Example 7
b31crvl(maop = 877, d = 12.625, wth = .5, smys = 35000, def = .4, depth = .035, l = 3)
#> Corrosion depth is less than 10 % of pipe wall. No resrictions on operation
#> -- Calculated data --
#> Intermediate factor (A) = 1.066
#> Design pressure = 1109 PSI; Safe pressure = 1109 PSI
#> Pipe may be operated safely at MAOP, 877 PSI
#> With corrosion length 3.000 inch, maximum allowed corrosion depth is 0.4000 inch; A = 1.066
#> With corrosion depth 0.035 inch, maximum allowed corrosion length is Inf inch; A = 5.000
# Corrosion depth is less than 10 % of pipe wall. No resrictions on operation
# -- Calculated data --
# Intermediate factor (A) = 1.066
# Design pressure = 1109 PSI; Safe pressure = 1109 PSI
# Pipe may be operated safely at MAOP, 877 PSI
# With corrosion length 3.000 inch, maximum allowed corrosion depth is 0.4000 inch; A = 1.066
# With corrosion depth 0.035 inch, maximum allowed corrosion length is Inf inch; A = 5.000
## Example 8
b31crvl(maop = 790, d = 24, wth = .5, smys = 42000, def = .5, depth = .125, l = 12)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 3.093
#> Design pressure = 875 PSI; Safe pressure = 845 PSI
#> Pipe may be operated safely at MAOP, 790 PSI
#> With corrosion length 12.000 inch, maximum allowed corrosion depth is 0.1790 inch; A = 3.093
#> With corrosion depth 0.125 inch, maximum allowed corrosion length is 15.5190 inch; A = 4.000
#
# -- Calculated data --
# Intermediate factor (A) = 3.093
# Design pressure = 875 PSI; Safe pressure = 845 PSI
# Pipe may be operated safely at MAOP, 790 PSI
# With corrosion length 12.000 inch, maximum allowed corrosion depth is 0.1790 inch; A = 3.093
# With corrosion depth 0.125 inch, maximum allowed corrosion length is 15.5190 inch; A = 4.000
## TEST #1
b31crvl(maop = 790, d = 24, wth = .5, smys = 42000, def = .5, depth = .179, l = 12)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 3.093
#> Design pressure = 875 PSI; Safe pressure = 791 PSI
#> Pipe may be operated safely at MAOP, 790 PSI
#> With corrosion length 12.000 inch, maximum allowed corrosion depth is 0.1790 inch; A = 3.093
#> With corrosion depth 0.179 inch, maximum allowed corrosion length is 12.1820 inch; A = 3.140
#
#-- Calculated data --
# Intermediate factor (A) = 3.093
# Design pressure = 875 PSI; Safe pressure = 791 PSI
# Pipe may be operated safely at MAOP, 790 PSI
# With corrosion length 12.000 inch, maximum allowed corrosion depth is 0.1790 inch; A = 3.093
# With corrosion depth 0.179 inch, maximum allowed corrosion length is 12.1820 inch; A = 3.140
## TEST #1A
b31crvl(maop = 790, d = 24, wth = .5, smys = 42000, def = .5, depth = .179, l = 12.182)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 3.140
#> Design pressure = 875 PSI; Safe pressure = 790 PSI
#> Pipe may be operated safely at MAOP, 790 PSI
#> With corrosion length 12.182 inch, maximum allowed corrosion depth is 0.1780 inch; A = 3.140
#> With corrosion depth 0.179 inch, maximum allowed corrosion length is 12.1820 inch; A = 3.140
#
# -- Calculated data --
# Intermediate factor (A) = 3.140
# Design pressure = 875 PSI; Safe pressure = 790 PSI
# Pipe may be operated safely at MAOP, 790 PSI
# With corrosion length 12.182 inch, maximum allowed corrosion depth is 0.1780 inch; A = 3.140
# With corrosion depth 0.179 inch, maximum allowed corrosion length is 12.1820 inch; A = 3.140
## TEST #1B
b31crvl(maop = 790, d = 24, wth = .5, smys = 42000, def = .5, depth = .180, l = 12.182)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 3.140
#> Design pressure = 875 PSI; Safe pressure = 789 PSI
#> Reduce operating pressure so it will not exceed 789 PSI, and so operate legally and safely
#> With corrosion length 12.182 inch, maximum allowed corrosion depth is 0.1780 inch; A = 3.140
#> With corrosion depth 0.180 inch, maximum allowed corrosion length is 11.9610 inch; A = 3.083
#
# -- Calculated data --
# Intermediate factor (A) = 3.140
# Design pressure = 875 PSI; Safe pressure = 789 PSI
# Reduce operating pressure so it will not exceed 789 PSI, and so operate legally and safely
# With corrosion length 12.182 inch, maximum allowed corrosion depth is 0.1780 inch; A = 3.140
# With corrosion depth 0.180 inch, maximum allowed corrosion length is 11.9610 inch; A = 3.083
## TEST #2
b31crvl(maop = 790, d = 24, wth = .5, smys = 42000, def = .5, depth = .179, l = 12.297)
#>
#> -- Calculated data --
#> Intermediate factor (A) = 3.170
#> Design pressure = 875 PSI; Safe pressure = 789 PSI
#> Reduce operating pressure so it will not exceed 789 PSI, and so operate legally and safely
#> With corrosion length 12.297 inch, maximum allowed corrosion depth is 0.1780 inch; A = 3.170
#> With corrosion depth 0.179 inch, maximum allowed corrosion length is 12.1820 inch; A = 3.140
#
# -- Calculated data --
# Intermediate factor (A) = 3.170
# Design pressure = 875 PSI; Safe pressure = 789 PSI
# Reduce operating pressure so it will not exceed 789 PSI, and so operate legally and safely
# With corrosion length 12.297 inch, maximum allowed corrosion depth is 0.1780 inch; A = 3.170
# With corrosion depth 0.179 inch, maximum allowed corrosion length is 12.1820 inch; A = 3.140
## All examples at once:
data(b31gdata)
examples <- with(b31gdata, b31crvl(maop, d, wth, smys, def, depth, l))