diff --git a/docs/index.html b/docs/index.html index a507a42..3fdf0c3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -91,7 +91,7 @@
-

License: GPLv3 R-CMD-check pages-build-deployment pipenostics status badge CodeFactor codecov

+

License: GPLv3 pipenostics status badge R-CMD-check pages-build-deployment CodeFactor codecov

R-package for diagnostics, reliability and predictive maintenance of pipeline systems.


@@ -102,12 +102,12 @@

Intro

Installation

-

For the latest version leverage r-universe:

+

For the stable version install from CRAN:

+install.packages("pipenostics")
+

For the latest version leverage r-universe:

+
 install.packages("pipenostics", repos = "https://omega1x.r-universe.dev")
-
-

⚠ Starting from version 0.1.8 the package is not supported on CRAN due to its resource limitations of checking parallel algorithms

-

Usage examples @@ -116,80 +116,80 @@

Usage examplesCorrosion diagnostics

By using of b31crvl() simply imitate the output of CRVL.BAS which is the honored software for determining the allowable length and maximum allowable working pressure presented in ASME B31G-1991:

-
+
 library(pipenostics)
     
 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

Probability of failure

Let’s consider a pipe in district heating network with

-
+
 diameter           <- 762         # [mm]
 wall_thickness     <-  10         # [mm]
 UTS                <- 434.3697    # [MPa]

which transfers heat-carrier (water) at

-
+
 operating_pressure <-   0.588399  # [MPa]
 temperature        <-  95         # [°C]

During inline inspection four corroded areas (defects) are detected with:

-
+
 depth  <- c(2.45,  7.86,   7.93,   8.15)  # [mm]

whereas the length of all defects is not greater 200 mm:

-
+
 length <- rep(200, 4)  # [mm]
 print(length)
-
[1] 200 200 200 200
+
[1] 200 200 200 200

Corrosion rates in radial and in longitudinal directions are not well-known and may vary in range .01 - .30 mm/year:

-
+
 rar = function(n) stats::runif(n, .01, .30) / 365
 ral = function(n) stats::runif(n, .01, .30) / 365

Then probabilities of failure (POFs) related to each corroded area are near:

-
+
 pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4),
              rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4),
              rar, ral, method = "dnv")
-
pipenostics::mepof: process case [4/4] - 100 % . All done, thanks!                 
-
+
pipenostics::mepof: process case [4/4] - 100 % . All done, thanks!                 
+
 print(pof)
-
[1] 0.000000 0.252935 0.368741 0.771299
+
[1] 0.000000 0.252935 0.368741 0.771299

So, the POF of the pipe is near

-
+
 print(max(pof))
-
[1] 0.771299
+
[1] 0.771299

The value of POF changes in time. So, in a year after inline inspection of the pipe we can get something near

-
+
 pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4),
              rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4),
              rar, ral, method = "dnv", days = 365)
-
pipenostics::mepof: process case [4/4] - 100 % . All done, thanks!             
-
+
pipenostics::mepof: process case [4/4] - 100 % . All done, thanks!             
+
 print(pof)
-
[1] 0.000000 0.526646 0.647422 0.928825
+
[1] 0.000000 0.526646 0.647422 0.928825

For entire pipe we get something near:

-
+
 print(max(pof))
-
[1] 0.928825
+
[1] 0.928825

Two years ago before inline inspection the pipe state was rather good:

-
+
 pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4),
              rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4),
              rar, ral, method = "dnv", days = -2 * 365)
-
pipenostics::mepof: process case [4/4] - 100 % . All done, thanks!
-
+
pipenostics::mepof: process case [4/4] - 100 % . All done, thanks!
+
 print(pof)
-
[1] 0.000000 0.040849 0.072734 0.272358
+
[1] 0.000000 0.040849 0.072734 0.272358

For entire pipe we get something near:

-
+
 print(max(pof))
-
[1] 0.272358
+
[1] 0.272358

Regime tracing @@ -197,27 +197,27 @@

Regime tracingLet’s consider the next 4-segment tracing path:

Suppose we have the next sensor readings for forward tracing:

-
+
 t_fw <- 130         # [°C]
 p_fw <-   0.588399  # [MPa]
 g_fw <- 250         # [ton/hour]

Let’s discharges to network for each pipeline segment are somehow determined as

-
+
 discharges <- seq(0, 30, 10)  # [ton/hour]
 print(discharges)
-
[1]  0 10 20 30
+
[1]  0 10 20 30

Then the calculated regime (red squares) for forward tracing is

-
+
 regime_fw <- m325traceline(t_fw, p_fw, g_fw, discharges, forward = TRUE)
 print(regime_fw)
-
$temperature
-[1] 129.1799 128.4269 127.9628 127.3367
-
-$pressure
-[1] 0.5878607 0.5874226 0.5872143 0.5870330
-
-$flow_rate
-[1] 250 240 220 190
+
$temperature
+[1] 129.1799 128.4269 127.9628 127.3367
+
+$pressure
+[1] 0.5878607 0.5874226 0.5872143 0.5870330
+
+$flow_rate
+[1] 250 240 220 190

ℹ Read article Concepts and useful notes for a deeper dive into the topic.

diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index 0d76e85..18f0ab2 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -3,5 +3,5 @@ pkgdown: 2.0.7 pkgdown_sha: ~ articles: Concepts: Concepts.html -last_built: 2024-04-02T13:26Z +last_built: 2024-04-08T11:44Z diff --git a/docs/reference/m325tracebw.html b/docs/reference/m325tracebw.html index 0757222..dbd0c72 100644 --- a/docs/reference/m325tracebw.html +++ b/docs/reference/m325tracebw.html @@ -352,23 +352,23 @@

Examples## It is possible to run without specification of argument values: m325tracebw() #> -#> 2024-04-02 16:26:19.862129 m325tracebw | start backward tracing; segments 1; -#> 2024-04-02 16:26:19.862129 m325tracebw | start job; job 0; -#> 2024-04-02 16:26:19.862129 m325tracebw | now process; 1 node(s); [7] -#> 2024-04-02 16:26:19.862129 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:19.862129 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:19.862129 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[7]; -#> 2024-04-02 16:26:19.862129 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:19.862129 m325tracebw | OK! Heat flux traced from 1 nodes;[7]; -#> 2024-04-02 16:26:19.862129 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:19.862129 m325tracebw | OK! Heat loss per day traced from 1 nodes;[7]; -#> 2024-04-02 16:26:19.862129 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:19.862129 m325tracebw | OK! Temperature traced from 1 nodes;[7]; -#> 2024-04-02 16:26:19.862129 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:19.862129 m325tracebw | OK! Pressure traced from 1 nodes;[7]; -#> 2024-04-02 16:26:19.862129 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:19.862129 m325tracebw | finish job; job 0; processed node(s) 1 -#> 2024-04-02 16:26:19.862129 m325tracebw | finish backward tracing;; +#> 2024-04-08 14:44:14.559807 m325tracebw | start backward tracing; segments 1; +#> 2024-04-08 14:44:14.559807 m325tracebw | start job; job 0; +#> 2024-04-08 14:44:14.559807 m325tracebw | now process; 1 node(s); [7] +#> 2024-04-08 14:44:14.559807 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:14.559807 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:14.559807 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[7]; +#> 2024-04-08 14:44:14.559807 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:14.559807 m325tracebw | OK! Heat flux traced from 1 nodes;[7]; +#> 2024-04-08 14:44:14.559807 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:14.559807 m325tracebw | OK! Heat loss per day traced from 1 nodes;[7]; +#> 2024-04-08 14:44:14.559807 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:14.559807 m325tracebw | OK! Temperature traced from 1 nodes;[7]; +#> 2024-04-08 14:44:14.559807 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:14.559807 m325tracebw | OK! Pressure traced from 1 nodes;[7]; +#> 2024-04-08 14:44:14.559807 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:14.559807 m325tracebw | finish job; job 0; processed node(s) 1 +#> 2024-04-08 14:44:14.559807 m325tracebw | finish backward tracing;; #> node tracing backward aggregation loss flux Q temperature #> 1 7 sensor TRUE identity 78.4 279.0696 136314.4 70 #> span 7 sensor TRUE span 0.0 0.0000 0.0 0 @@ -387,113 +387,113 @@

Examples## When tracing large network graphs put screen log to file output <- do.call("m325tracebw", c(as.list(DHN), verbose = TRUE)) #> -#> 2024-04-02 16:26:19.911578 m325tracebw | start backward tracing; segments 26; -#> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 0; -#> 2024-04-02 16:26:19.911578 m325tracebw | now process; 13 node(s); [1,10,15,17,19,2,21,24,25,26,3,7,9] -#> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [13/13] are TP-sensor-equipped; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 0; processed node(s) 13 -#> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 1; -#> 2024-04-02 16:26:19.911578 m325tracebw | now process; 5 node(s); [14,22,23,4,5] -#> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 1; processed node(s) 5 -#> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 2; -#> 2024-04-02 16:26:19.911578 m325tracebw | now process; 2 node(s); [20,6] -#> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 2; processed node(s) 2 -#> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 3; -#> 2024-04-02 16:26:19.911578 m325tracebw | now process; 2 node(s); [18,8] -#> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 3; processed node(s) 2 -#> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 4; -#> 2024-04-02 16:26:19.911578 m325tracebw | now process; 2 node(s); [11,16] -#> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 4; processed node(s) 2 -#> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 5; -#> 2024-04-02 16:26:19.911578 m325tracebw | now process; 1 node(s); [13] -#> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[13]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 1 nodes;[13]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 1 nodes;[13]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 1 nodes;[13]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 1 nodes;[13]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 5; processed node(s) 1 -#> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 6; -#> 2024-04-02 16:26:19.911578 m325tracebw | now process; 1 node(s); [12] -#> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[12]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 1 nodes;[12]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 1 nodes;[12]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 1 nodes;[12]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 1 nodes;[12]; -#> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 6; processed node(s) 1 -#> 2024-04-02 16:26:19.911578 m325tracebw | finish backward tracing;; +#> 2024-04-08 14:44:14.611048 m325tracebw | start backward tracing; segments 26; +#> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 0; +#> 2024-04-08 14:44:14.611048 m325tracebw | now process; 13 node(s); [1,10,15,17,19,2,21,24,25,26,3,7,9] +#> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [13/13] are TP-sensor-equipped; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 0; processed node(s) 13 +#> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 1; +#> 2024-04-08 14:44:14.611048 m325tracebw | now process; 5 node(s); [14,22,23,4,5] +#> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 1; processed node(s) 5 +#> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 2; +#> 2024-04-08 14:44:14.611048 m325tracebw | now process; 2 node(s); [20,6] +#> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 2; processed node(s) 2 +#> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 3; +#> 2024-04-08 14:44:14.611048 m325tracebw | now process; 2 node(s); [18,8] +#> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 3; processed node(s) 2 +#> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 4; +#> 2024-04-08 14:44:14.611048 m325tracebw | now process; 2 node(s); [11,16] +#> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 4; processed node(s) 2 +#> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 5; +#> 2024-04-08 14:44:14.611048 m325tracebw | now process; 1 node(s); [13] +#> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[13]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 1 nodes;[13]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 1 nodes;[13]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 1 nodes;[13]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 1 nodes;[13]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 5; processed node(s) 1 +#> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 6; +#> 2024-04-08 14:44:14.611048 m325tracebw | now process; 1 node(s); [12] +#> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[12]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 1 nodes;[12]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 1 nodes;[12]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 1 nodes;[12]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 1 nodes;[12]; +#> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 6; processed node(s) 1 +#> 2024-04-08 14:44:14.611048 m325tracebw | finish backward tracing;; ## Distinct options for opinion aggregation lead to distinct traced ## temperature and pressure: @@ -539,113 +539,113 @@

Examples## Trace thermal-hydraulic regime output <- do.call("m325tracebw", c(as.list(DHN))) #> -#> 2024-04-02 16:26:20.394336 m325tracebw | start backward tracing; segments 26; -#> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 0; -#> 2024-04-02 16:26:20.394336 m325tracebw | now process; 13 node(s); [1,10,15,17,19,2,21,24,25,26,3,7,9] -#> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [9/13] are TP-sensor-equipped; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 0; processed node(s) 13 -#> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 1; -#> 2024-04-02 16:26:20.394336 m325tracebw | now process; 5 node(s); [14,22,23,4,5] -#> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 5 nodes;[4,5,14,22,23]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 1; processed node(s) 5 -#> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 2; -#> 2024-04-02 16:26:20.394336 m325tracebw | now process; 2 node(s); [20,6] -#> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 2 nodes;[6,20]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 2; processed node(s) 2 -#> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 3; -#> 2024-04-02 16:26:20.394336 m325tracebw | now process; 2 node(s); [18,8] -#> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 2 nodes;[8,18]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 3; processed node(s) 2 -#> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 4; -#> 2024-04-02 16:26:20.394336 m325tracebw | now process; 2 node(s); [11,16] -#> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 2 nodes;[11,16]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 4; processed node(s) 2 -#> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 5; -#> 2024-04-02 16:26:20.394336 m325tracebw | now process; 1 node(s); [13] -#> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[13]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 1 nodes;[13]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 1 nodes;[13]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 1 nodes;[13]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 1 nodes;[13]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 5; processed node(s) 1 -#> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 6; -#> 2024-04-02 16:26:20.394336 m325tracebw | now process; 1 node(s); [12] -#> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[12]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 1 nodes;[12]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 1 nodes;[12]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 1 nodes;[12]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 1 nodes;[12]; -#> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 6; processed node(s) 1 -#> 2024-04-02 16:26:20.394336 m325tracebw | finish backward tracing;; +#> 2024-04-08 14:44:15.090308 m325tracebw | start backward tracing; segments 26; +#> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 0; +#> 2024-04-08 14:44:15.090308 m325tracebw | now process; 13 node(s); [1,10,15,17,19,2,21,24,25,26,3,7,9] +#> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [9/13] are TP-sensor-equipped; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 0; processed node(s) 13 +#> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 1; +#> 2024-04-08 14:44:15.090308 m325tracebw | now process; 5 node(s); [14,22,23,4,5] +#> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 5 nodes;[4,5,14,22,23]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 1; processed node(s) 5 +#> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 2; +#> 2024-04-08 14:44:15.090308 m325tracebw | now process; 2 node(s); [20,6] +#> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 2 nodes;[6,20]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 2; processed node(s) 2 +#> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 3; +#> 2024-04-08 14:44:15.090308 m325tracebw | now process; 2 node(s); [18,8] +#> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 2 nodes;[8,18]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 3; processed node(s) 2 +#> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 4; +#> 2024-04-08 14:44:15.090308 m325tracebw | now process; 2 node(s); [11,16] +#> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 2 nodes;[11,16]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 4; processed node(s) 2 +#> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 5; +#> 2024-04-08 14:44:15.090308 m325tracebw | now process; 1 node(s); [13] +#> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[13]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 1 nodes;[13]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 1 nodes;[13]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 1 nodes;[13]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 1 nodes;[13]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 5; processed node(s) 1 +#> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 6; +#> 2024-04-08 14:44:15.090308 m325tracebw | now process; 1 node(s); [12] +#> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[12]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 1 nodes;[12]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 1 nodes;[12]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 1 nodes;[12]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 1 nodes;[12]; +#> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 6; processed node(s) 1 +#> 2024-04-08 14:44:15.090308 m325tracebw | finish backward tracing;; print(output) #> node tracing backward aggregation loss flux Q #> 1 1 sensor TRUE identity 96.23600 230.5891783 92028.56208 diff --git a/docs/reference/mepof.html b/docs/reference/mepof.html index b89ff93..059a08d 100644 --- a/docs/reference/mepof.html +++ b/docs/reference/mepof.html @@ -347,12 +347,12 @@

Examples rar, ral, method = "dnv") #> pipenostics::mepof: process case [1/4] - 25 % processed. pipenostics::mepof: process case [2/4] - 50 % processed. pipenostics::mepof: process case [3/4] - 75 % processed. pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) -#> [1] 0.000000 0.253115 0.368401 0.771517 +#> [1] 0.000000 0.252966 0.367726 0.770969 # 0.000000 0.252510 0.368275 0.771595 # So, the POF of pipe is near print(max(pof)) -#> [1] 0.771517 +#> [1] 0.770969 # 0.771595 # The value of POF changes in time. So, in a year after inline inspection of @@ -362,12 +362,12 @@

Examples rar, ral, method = "dnv", days = 365) #> pipenostics::mepof: process case [1/4] - 25 % processed. pipenostics::mepof: process case [2/4] - 50 % processed. pipenostics::mepof: process case [3/4] - 75 % processed. pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) -#> [1] 0.000000 0.525791 0.648168 0.929161 +#> [1] 0.000000 0.526688 0.646935 0.928882 # 0.000000 0.525539 0.648359 0.929099 # for entire pipe we get something near: print(max(pof)) -#> [1] 0.929161 +#> [1] 0.928882 # 0.929099 # Two years ago before inline inspection the pipe state was rather good: @@ -377,12 +377,12 @@

Examples#> pipenostics::mepof: process case [1/4] - 25 % processed. pipenostics::mepof: process case [2/4] - 50 % processed. pipenostics::mepof: process case [3/4] - 75 % processed. pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) -#> [1] 0.000000 0.041045 0.072768 0.271995 +#> [1] 0.000000 0.040622 0.072779 0.271786 # 0.000000 0.040780 0.072923 0.271751 # for entire pipe we get something near: print(max(pof)) -#> [1] 0.271995 +#> [1] 0.271786 # 0.271751 diff --git a/docs/reference/tracebw.html b/docs/reference/tracebw.html index d6d4433..79f306b 100644 --- a/docs/reference/tracebw.html +++ b/docs/reference/tracebw.html @@ -309,23 +309,23 @@

Examples# It is possible to run without specification of argument values: m325tracebw() #> -#> 2024-04-02 16:26:28.484752 m325tracebw | start backward tracing; segments 1; -#> 2024-04-02 16:26:28.484752 m325tracebw | start job; job 0; -#> 2024-04-02 16:26:28.484752 m325tracebw | now process; 1 node(s); [7] -#> 2024-04-02 16:26:28.484752 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.484752 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:28.484752 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[7]; -#> 2024-04-02 16:26:28.484752 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.484752 m325tracebw | OK! Heat flux traced from 1 nodes;[7]; -#> 2024-04-02 16:26:28.484752 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.484752 m325tracebw | OK! Heat loss per day traced from 1 nodes;[7]; -#> 2024-04-02 16:26:28.484752 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.484752 m325tracebw | OK! Temperature traced from 1 nodes;[7]; -#> 2024-04-02 16:26:28.484752 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.484752 m325tracebw | OK! Pressure traced from 1 nodes;[7]; -#> 2024-04-02 16:26:28.484752 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.484752 m325tracebw | finish job; job 0; processed node(s) 1 -#> 2024-04-02 16:26:28.484752 m325tracebw | finish backward tracing;; +#> 2024-04-08 14:44:23.163179 m325tracebw | start backward tracing; segments 1; +#> 2024-04-08 14:44:23.163179 m325tracebw | start job; job 0; +#> 2024-04-08 14:44:23.163179 m325tracebw | now process; 1 node(s); [7] +#> 2024-04-08 14:44:23.163179 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.163179 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:23.163179 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[7]; +#> 2024-04-08 14:44:23.163179 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.163179 m325tracebw | OK! Heat flux traced from 1 nodes;[7]; +#> 2024-04-08 14:44:23.163179 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.163179 m325tracebw | OK! Heat loss per day traced from 1 nodes;[7]; +#> 2024-04-08 14:44:23.163179 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.163179 m325tracebw | OK! Temperature traced from 1 nodes;[7]; +#> 2024-04-08 14:44:23.163179 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.163179 m325tracebw | OK! Pressure traced from 1 nodes;[7]; +#> 2024-04-08 14:44:23.163179 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.163179 m325tracebw | finish job; job 0; processed node(s) 1 +#> 2024-04-08 14:44:23.163179 m325tracebw | finish backward tracing;; #> node tracing backward aggregation loss flux Q temperature #> 1 7 sensor TRUE identity 78.4 279.0696 136314.4 70 #> span 7 sensor TRUE span 0.0 0.0000 0.0 0 @@ -385,226 +385,226 @@

Examples# * Trace thermal-hydraulic regime for DHN: tracebw_report <- do.call("tracebw", c(as.list(DHN.1), list(loss = actual_loss))) #> -#> 2024-04-02 16:26:28.507768 tracebw | start backward tracing; segments 26; -#> 2024-04-02 16:26:28.507768 tracebw | start job; job 0; -#> 2024-04-02 16:26:28.507768 tracebw | now process; 13 node(s); [N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26] -#> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [13/13] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.507768 tracebw | finish job; job 0; processed node(s) 13 -#> 2024-04-02 16:26:28.507768 tracebw | start job; job 1; -#> 2024-04-02 16:26:28.507768 tracebw | now process; 5 node(s); [N04,N05,N14,N22,N23] -#> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [5/5] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.507768 tracebw | finish job; job 1; processed node(s) 5 -#> 2024-04-02 16:26:28.507768 tracebw | start job; job 2; -#> 2024-04-02 16:26:28.507768 tracebw | now process; 2 node(s); [N06,N20] -#> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.507768 tracebw | finish job; job 2; processed node(s) 2 -#> 2024-04-02 16:26:28.507768 tracebw | start job; job 3; -#> 2024-04-02 16:26:28.507768 tracebw | now process; 2 node(s); [N08,N18] -#> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.507768 tracebw | finish job; job 3; processed node(s) 2 -#> 2024-04-02 16:26:28.507768 tracebw | start job; job 4; -#> 2024-04-02 16:26:28.507768 tracebw | now process; 2 node(s); [N11,N16] -#> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.507768 tracebw | finish job; job 4; processed node(s) 2 -#> 2024-04-02 16:26:28.507768 tracebw | start job; job 5; -#> 2024-04-02 16:26:28.507768 tracebw | now process; 1 node(s); [N13] -#> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.507768 tracebw | finish job; job 5; processed node(s) 1 -#> 2024-04-02 16:26:28.507768 tracebw | start job; job 6; -#> 2024-04-02 16:26:28.507768 tracebw | now process; 1 node(s); [N12] -#> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.507768 tracebw | finish job; job 6; processed node(s) 1 -#> 2024-04-02 16:26:28.507768 tracebw | finish backward tracing;; +#> 2024-04-08 14:44:23.186121 tracebw | start backward tracing; segments 26; +#> 2024-04-08 14:44:23.186121 tracebw | start job; job 0; +#> 2024-04-08 14:44:23.186121 tracebw | now process; 13 node(s); [N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26] +#> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [13/13] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.186121 tracebw | finish job; job 0; processed node(s) 13 +#> 2024-04-08 14:44:23.186121 tracebw | start job; job 1; +#> 2024-04-08 14:44:23.186121 tracebw | now process; 5 node(s); [N04,N05,N14,N22,N23] +#> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [5/5] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.186121 tracebw | finish job; job 1; processed node(s) 5 +#> 2024-04-08 14:44:23.186121 tracebw | start job; job 2; +#> 2024-04-08 14:44:23.186121 tracebw | now process; 2 node(s); [N06,N20] +#> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.186121 tracebw | finish job; job 2; processed node(s) 2 +#> 2024-04-08 14:44:23.186121 tracebw | start job; job 3; +#> 2024-04-08 14:44:23.186121 tracebw | now process; 2 node(s); [N08,N18] +#> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.186121 tracebw | finish job; job 3; processed node(s) 2 +#> 2024-04-08 14:44:23.186121 tracebw | start job; job 4; +#> 2024-04-08 14:44:23.186121 tracebw | now process; 2 node(s); [N11,N16] +#> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.186121 tracebw | finish job; job 4; processed node(s) 2 +#> 2024-04-08 14:44:23.186121 tracebw | start job; job 5; +#> 2024-04-08 14:44:23.186121 tracebw | now process; 1 node(s); [N13] +#> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.186121 tracebw | finish job; job 5; processed node(s) 1 +#> 2024-04-08 14:44:23.186121 tracebw | start job; job 6; +#> 2024-04-08 14:44:23.186121 tracebw | now process; 1 node(s); [N12] +#> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.186121 tracebw | finish job; job 6; processed node(s) 1 +#> 2024-04-08 14:44:23.186121 tracebw | finish backward tracing;; # * If the actual values of specific heat loss power presented above are close # to those in Minenergo-325, then the results of regime tracing match the # normative procedure: m325_report <- do.call("m325tracebw", DHN) #> -#> 2024-04-02 16:26:28.59587 m325tracebw | start backward tracing; segments 26; -#> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 0; -#> 2024-04-02 16:26:28.59587 m325tracebw | now process; 13 node(s); [N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26] -#> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [13/13] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 0; processed node(s) 13 -#> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 1; -#> 2024-04-02 16:26:28.59587 m325tracebw | now process; 5 node(s); [N04,N05,N14,N22,N23] -#> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 5 nodes;[N04,N05,N14,N22,N23]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 1; processed node(s) 5 -#> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 2; -#> 2024-04-02 16:26:28.59587 m325tracebw | now process; 2 node(s); [N06,N20] -#> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 2 nodes;[N06,N20]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 2; processed node(s) 2 -#> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 3; -#> 2024-04-02 16:26:28.59587 m325tracebw | now process; 2 node(s); [N08,N18] -#> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 2 nodes;[N08,N18]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 3; processed node(s) 2 -#> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 4; -#> 2024-04-02 16:26:28.59587 m325tracebw | now process; 2 node(s); [N11,N16] -#> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 2 nodes;[N11,N16]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 4; processed node(s) 2 -#> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 5; -#> 2024-04-02 16:26:28.59587 m325tracebw | now process; 1 node(s); [N13] -#> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 1 nodes;[N13]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 5; processed node(s) 1 -#> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 6; -#> 2024-04-02 16:26:28.59587 m325tracebw | now process; 1 node(s); [N12] -#> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; -#> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 1 nodes;[N12]; -#> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; -#> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 6; processed node(s) 1 -#> 2024-04-02 16:26:28.59587 m325tracebw | finish backward tracing;; +#> 2024-04-08 14:44:23.273599 m325tracebw | start backward tracing; segments 26; +#> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 0; +#> 2024-04-08 14:44:23.273599 m325tracebw | now process; 13 node(s); [N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26] +#> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [13/13] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 0; processed node(s) 13 +#> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 1; +#> 2024-04-08 14:44:23.273599 m325tracebw | now process; 5 node(s); [N04,N05,N14,N22,N23] +#> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 5 nodes;[N04,N05,N14,N22,N23]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 1; processed node(s) 5 +#> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 2; +#> 2024-04-08 14:44:23.273599 m325tracebw | now process; 2 node(s); [N06,N20] +#> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 2 nodes;[N06,N20]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 2; processed node(s) 2 +#> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 3; +#> 2024-04-08 14:44:23.273599 m325tracebw | now process; 2 node(s); [N08,N18] +#> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 2 nodes;[N08,N18]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 3; processed node(s) 2 +#> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 4; +#> 2024-04-08 14:44:23.273599 m325tracebw | now process; 2 node(s); [N11,N16] +#> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 2 nodes;[N11,N16]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 4; processed node(s) 2 +#> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 5; +#> 2024-04-08 14:44:23.273599 m325tracebw | now process; 1 node(s); [N13] +#> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 1 nodes;[N13]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 5; processed node(s) 1 +#> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 6; +#> 2024-04-08 14:44:23.273599 m325tracebw | now process; 1 node(s); [N12] +#> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; +#> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 1 nodes;[N12]; +#> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; +#> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 6; processed node(s) 1 +#> 2024-04-08 14:44:23.273599 m325tracebw | finish backward tracing;; stopifnot( all.equal(tracebw_report$temperature, m325_report$temperature, tolerance = 1e-4), diff --git a/docs/search.json b/docs/search.json index be0cd2f..56463fb 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -[{"path":"/articles/Concepts.html","id":"developer-notes","dir":"Articles","previous_headings":"","what":"Developer notes","title":"Concepts and useful notes","text":"Aiming avoid portability accessibility problems made us search ways restrict source code development functionality external packages. Since functions native argument vectorization usage functions fast data.table framework strongly encouraged processing large data sets. purpose arguments package functions thoroughly checked type consistency physical sense using asserts tests checkmate package. Moreover, package documentation borrow type designations according checkmate notation.","code":""},{"path":[]},{"path":"/articles/Concepts.html","id":"corrosion-diagnostics","dir":"Articles","previous_headings":"Underlying concepts","what":"Corrosion diagnostics","title":"Concepts and useful notes","text":"recognized pipeline companies sections high pressure pipelines particularly installed number years ago, experienced corrosion. corrosion found, pipeline operators deeply concerned need method determining remaining strength corroded areas. corrosion penetrate pipe wall, pressure containing capability remaining pipe metal terms ability continue operate safely maximum allowable operating pressure (MAOP) pipeline system? Thus, one needs pipeline industry procedure help operators, particularly field personnel, make decisions existing pipelines, exposed purpose, whether corroded region may left service whether needs repaired replaced. determinations must based upon sound research extensive testing order provide safe conservative guidelines base field decisions. ASMEB31G-1991 ASME B31G-2012 codes proven sound seen successful use pipeline industry providing users required formalized framework long period time. failure pressure calculators b31gpf() b31gmodpf() widely used assessment POFs. preserve simplicity traditional inline measurements inspections hereinafter consider Analysis Level 1 R-package, since noted ASME B31G-2012 Level 1 evaluation quite suitable use prioritizing corrosion defects identified inline inspection. approaches operating corrosion data presented package aimed failure pressure calculations. Models like dnvpf(), shell92pf(), pcorrcpf() assume different shapes corrosion defects usage conditions cases. , encouraged first find model suitable solving real world problem. sake simplicity transparency next values describing technological conditions, material properties pipe defect parameters used arguments throughout functions concerning corrosion diagnostics: maop - maximum allowable operating pressure - MAOP PSI d - nominal outside diameter pipe, inch, mm wth - nominal wall thickness pipe, inch, mm smys - specified minimum yield stress - SMYS characteristics steel strength, PSI uts - ultimate tensile strength - UTS specified minimum tensile strength (SMTS) another characteristic steel strength, MPa depth - measured maximum depth corroded area, inch, mm l - measured maximum longitudinal length corroded area, inch, mm course development functionality package, revisions supplements existing concept excepted.","code":""},{"path":"/articles/Concepts.html","id":"probability-of-failure","dir":"Articles","previous_headings":"Underlying concepts","what":"Probability of failure","title":"Concepts and useful notes","text":"Consistent estimate failure pipeline systems plays critical role optimizing operation. prevent pipeline failures due growing corrosion defects necessary assess pipeline failure probability (POF) certain period, taking account actual level defectiveness. pipeline failure preceded limit state comes burst pressure, considered random variable, reaches unacceptable level, defect depth, also random variable, exceeds predetermined limit value. now methods existed give absolutely correct POF assessments. Nevertheless stochastic nature corrosion processes clearly suggests exploiting Monte-Carlo simulations (MC). Meanwhile lack comprehensive knowledge stochastic properties characteristics pipe defects aids embracing Principle maximum entropy allows avoid doubtful excessive preferences specifications choosing probability distribution models failure factors inline inspection measurements. Package function mepof() designed calculate probability failure (POF) corroded pipe MC, assigning maximum entropy stochastic nature corroded area length depth, well engineering characteristics pipe thermal-hydraulic regime parameters.","code":""},{"path":"/articles/Concepts.html","id":"heat-loss","dir":"Articles","previous_headings":"Underlying concepts","what":"Heat loss","title":"Concepts and useful notes","text":"Heat loss energy characteristic district heating networks. amount heat energy spent transportation distribution heat energy source consumers. Heat loss depends operating temperature, technical condition, volume configuration district heating network, well climatic factors. Heat loss additive sum heat losses individual pipeline segments. Determination heat loss pipeline segments hereinafter called heat loss localization. assumed actual heat loss (\\(Q_{\\text{AHL}}\\), [kcal]) pipeline segment certain period time (duration) two contributions: normative heat loss (\\(Q_{\\text{NHL}}\\), [kcal])) extra-normative heat loss (\\(Q_{\\text{ExNHL}}\\), [kcal])). can write: \\[ Q_{\\text{AHL}} = Q_{\\text{NHL}} + Q_{\\text{ExNHL}},\\ Q_{\\text{ExNHL}}> 0 \\] Localization \\(Q_{\\text{ExNHL}}\\) important part health maintenance activities district heating network operation. One can determine \\(Q_{\\text{ExNHL}}\\) pipeline segment positive difference \\(Q_{\\text{AHL}}\\) \\(Q_{\\text{NHL}}\\) natural way. purpose Minenergo-325 Minenergo-278 methods postulating \\(Q_{\\text{NHL}}\\) considered. Minenergo-325 lists legally affirmed maximum values specific heat loss power (\\(q_s\\), kcal/m/h) allowed fault-free steel pipes (see m325nhl()), normative heat loss L-meter length pipe duration \\(\\tau\\) \\[Q_{NHL} = L\\int_{\\tau}^{}q_s(\\tau)d\\tau\\] ℹ Specific heat loss power may also referred specific rate heat flow. Specific powers (specific rates heat flow) higher \\(q_s\\) contribute \\(Q_{\\text{ExNHL}}\\). Minenergo-278 gives mathematical models calculation specific heat loss power (\\(q_s\\)) function thermal-hydraulic regime technical condition pipeline segment (see m278hlcha(), m278hlund(), m278hlair()). Specific heat loss power (\\(q_{s}\\), kcal/m/h) cylindrical pipe can naturally expressed via value heat flux (\\(\\phi_q\\), W/m²) output pipe wall unit area: \\[q_s = \\frac{3600}{4186.8} \\cdot \\phi_q \\cdot \\pi d\\] \\(d\\), [m], outside diameter pipe, \\(\\frac{3600}{4186.8}\\pi = 2.701283\\) (kcal/h/W) dimension factor (see loss_flux(), flux_loss()). Heat loss power pipe (\\(q_p\\), kcal/hour) may calculated \\[q_p = q_s L\\] \\(L\\) pipe length.","code":""},{"path":"/articles/Concepts.html","id":"tracing-of-thermal-hydraulic-regime","dir":"Articles","previous_headings":"Underlying concepts","what":"Tracing of thermal-hydraulic regime","title":"Concepts and useful notes","text":"Localization extra-normative heat loss \\(Q_{\\text{ExNHL}}\\) performed know thermal-hydraulic regime district heating network pipeline segment. cases thermal-hydraulic field (values temperature, pressure heat carrier mass flow rate) measured heat-supply origins near consumers, .e. mostly terminal nodes pipeline network. Middle segments network rarely equipped thus sensor-measured. restoring thermal-hydraulic field pipeline segment can trace temperature, pressure heat-carrier flow rate using hydraulic thermal laws engineering characteristics pipe. Since normative values heat flux accessible calculations restored thermal-hydraulic field normative (actual) one. Nevertheless, even tracing small networks may produce local inconsistencies restored normative field facts signal possible extra-normative heat loss -situ. accordance sensor positions forward (see m325tracefw(), m325traceline()) backward (see m325tracebw(), m325traceline(forward = FALSE)) tracing can performed linear bunched pipelines (also massive data lack) basis Minenergo-325 norms.","code":""},{"path":"/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Yuri Possokhov. Author, maintainer.","code":""},{"path":"/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Possokhov Y (2022). pipenostics: R-package diagnostics, reliability predictive maintenance pipeline systems. SGC, Moscow, Russian Federation. https://omega1x.github.io/pipenostics/.","code":"@Manual{, title = {{pipenostics}: {R}-package for diagnostics, reliability and predictive maintenance of pipeline systems}, author = {Yuri Possokhov}, organization = {SGC}, address = {Moscow, Russian Federation}, year = {2022}, url = {https://omega1x.github.io/pipenostics/}, }"},{"path":"/index.html","id":"pipenostics","dir":"","previous_headings":"","what":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"R-package diagnostics, reliability predictive maintenance pipeline systems.","code":""},{"path":"/index.html","id":"intro","dir":"","previous_headings":"","what":"Intro","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"package aggregates extent separate knowledge concerning engineering, reliability, diagnostics predictive maintenance pipeline systems. present time package contains utilities processing corrosion data commonly gathered inline inspection, well empirical models calculations local thermal-hydraulic regimes district heating network.","code":""},{"path":"/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"latest version leverage r-universe: ⚠ Starting version 0.1.8 package supported CRAN due resource limitations checking parallel algorithms","code":"install.packages(\"pipenostics\", repos = \"https://omega1x.r-universe.dev\")"},{"path":[]},{"path":"/index.html","id":"corrosion-diagnostics","dir":"","previous_headings":"Usage examples","what":"Corrosion diagnostics","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"using b31crvl() simply imitate output CRVL.BAS honored software determining allowable length maximum allowable working pressure presented ASME B31G-1991:","code":"library(pipenostics) 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"},{"path":"/index.html","id":"probability-of-failure","dir":"","previous_headings":"Usage examples","what":"Probability of failure","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"Let’s consider pipe district heating network transfers heat-carrier (water) inline inspection four corroded areas (defects) detected : whereas length defects greater 200 mm: Corrosion rates radial longitudinal directions well-known may vary range .01 - .30 mm/year: probabilities failure (POFs) related corroded area near: , POF pipe near value POF changes time. , year inline inspection pipe can get something near entire pipe get something near: Two years ago inline inspection pipe state rather good: entire pipe get something near:","code":"diameter <- 762 # [mm] wall_thickness <- 10 # [mm] UTS <- 434.3697 # [MPa] operating_pressure <- 0.588399 # [MPa] temperature <- 95 # [°C] depth <- c(2.45, 7.86, 7.93, 8.15) # [mm] length <- rep(200, 4) # [mm] print(length) [1] 200 200 200 200 rar = function(n) stats::runif(n, .01, .30) / 365 ral = function(n) stats::runif(n, .01, .30) / 365 pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\") pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) [1] 0.000000 0.252935 0.368741 0.771299 print(max(pof)) [1] 0.771299 pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\", days = 365) pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) [1] 0.000000 0.526646 0.647422 0.928825 print(max(pof)) [1] 0.928825 pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\", days = -2 * 365) pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) [1] 0.000000 0.040849 0.072734 0.272358 print(max(pof)) [1] 0.272358"},{"path":"/index.html","id":"regime-tracing","dir":"","previous_headings":"Usage examples","what":"Regime tracing","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"Let’s consider next 4-segment tracing path: Suppose next sensor readings forward tracing: Let’s discharges network pipeline segment somehow determined calculated regime (red squares) forward tracing ℹ Read article Concepts useful notes deeper dive topic.","code":"t_fw <- 130 # [°C] p_fw <- 0.588399 # [MPa] g_fw <- 250 # [ton/hour] discharges <- seq(0, 30, 10) # [ton/hour] print(discharges) [1] 0 10 20 30 regime_fw <- m325traceline(t_fw, p_fw, g_fw, discharges, forward = TRUE) print(regime_fw) $temperature [1] 129.1799 128.4269 127.9628 127.3367 $pressure [1] 0.5878607 0.5874226 0.5872143 0.5870330 $flow_rate [1] 250 240 220 190"},{"path":"/reference/api5l3t.html","id":null,"dir":"Reference","previous_headings":"","what":"API 5L. Values of SMYS and UTS — api5l3t","title":"API 5L. Values of SMYS and UTS — api5l3t","text":"Data represents specified minimum yield strength (SMYS) ultimate tensile strength (UTS) achieved producing line pipes according API SPECIFICATION 5L.","code":""},{"path":"/reference/api5l3t.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"API 5L. Values of SMYS and UTS — api5l3t","text":"","code":"api5l3t"},{"path":"/reference/api5l3t.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"API 5L. Values of SMYS and UTS — api5l3t","text":"data frame 11 rows 3 variables: grade designation standard grade manufactured pipe. Type: assert_character. smys SMYS - specified minimum yield strength, [psi]. Type: assert_double. uts UTS - ultimate tensile strength, [psi]. Type: assert_double.","code":""},{"path":"/reference/api5l3t.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"API 5L. Values of SMYS and UTS — api5l3t","text":"https://law.resource.org/pub/us/cfr/ibr/002/api.5l.2004.pdf","code":""},{"path":"/reference/b31crvl.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"Imitation CVRL.BAS computer program presented ASME B31G-1991 Appendix determining allowable length allowable operating pressure","code":""},{"path":"/reference/b31crvl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"","code":"b31crvl(maop, d, wth, smys, def = 0.72, depth, l)"},{"path":"/reference/b31crvl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. def appropriate (combined) design factor ASME B31.4, ASME B31.8, ASME B31.11, []. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31crvl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"Object S3-class crvl data.frame next numeric columns: maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. def appropriate (combined) design factor ASME B31.4, ASME B31.8, ASME B31.11, []. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudial length corroded area, [inch]. Type: assert_double. status Operational status pipe: 1 - excellent, 2 - monitoring recommended, 3 - alert! replace pipe immediately! Type: assert_numeric. design_pressure design pressure pipe, [PSI]. Type: assert_double. safe_pressure safe maximum pressure corroded area, [PSI]. Type: assert_double. pressure_exceeding whether operator's action required reduce MOAP lower maximum safe pressure corroded area. Type: assert_logical. allowed_corrosion_depth allowable depth corroded area, [inch]. Type: assert_double. intermediate factor related geometry corroded area, []. Type: assert_double. allowed_corrosion_length allowable length corroded area, [inch]. Type: assert_double. AP another intermediate factor related geometry corroded area, []. Type: assert_double.","code":""},{"path":"/reference/b31crvl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"Columns maop, d, wth, smys, def, depth, l output data.frame come function's input, columns calculated. univariate case (lengths input vectors one) messages imitate CRVL.BAS console output printed.","code":""},{"path":"/reference/b31crvl.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"ASME B31 G-1991. Manual determining remaining strength corroded pipelines. supplement ASME B31G code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31crvl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"","code":"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))"},{"path":"/reference/b31gacd.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"Calculate allowable depth corroded area pipe.","code":""},{"path":"/reference/b31gacd.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"","code":"b31gacd(dep, maop, d, wth, l)"},{"path":"/reference/b31gacd.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"dep design pressure pipe, [PSI]. Type: assert_double. maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gacd.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"allowable depth corroded area pipe, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gacd.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gacd.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"","code":"library(pipenostics) b31gacd(1093, 910, 30, .438, 7.5) #> [1] 0.249 # [1] 0.249 # [inch]"},{"path":"/reference/b31gacl.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Allowable corrosion length in pipe — b31gacl","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"Calculate allowable length corroded area pipe.","code":""},{"path":"/reference/b31gacl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"","code":"b31gacl(dep, maop, d, wth, depth, l)"},{"path":"/reference/b31gacl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"dep design pressure pipe, [PSI]. Type: assert_double. maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gacl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"allowable length corroded area pipe, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gacl.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gacl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"","code":"library(pipenostics) b31gacl(1093, 910, 30, .438, .1, 7.5) #> [1] Inf # [1] Inf # [inch] - corrosion is low, no limit for the corroded area length b31gacl(438, 400, 20, .25, .18, 10) #> [1] 2.018 # [1] 2.018 # [inch] - finite allowed length of the corroded area"},{"path":"/reference/b31gafr.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. A-factor — b31gafr","title":"ASME B31G. A-factor — b31gafr","text":"Calculate intermediate factor related geometry corroded area.","code":""},{"path":"/reference/b31gafr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. A-factor — b31gafr","text":"","code":"b31gafr(d, wth, l)"},{"path":"/reference/b31gafr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. A-factor — b31gafr","text":"d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gafr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. A-factor — b31gafr","text":"Intermediate factor related geometry corroded area, []. Type: assert_double.","code":""},{"path":"/reference/b31gafr.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. A-factor — b31gafr","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gafr.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. A-factor — b31gafr","text":"","code":"library(pipenostics) b31gafr(30, .438, 7.5) #> [1] 1.847 # [1] 1.847 # A-factor is less than 5, so the corrosion is not critical"},{"path":"/reference/b31gdata.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Corrosion state of 12 pipes — b31gdata","title":"ASME B31G. Corrosion state of 12 pipes — b31gdata","text":"Data represents examples used verification computer program CRVL.BAS listed Appendix ASME B31G-1991.","code":""},{"path":"/reference/b31gdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Corrosion state of 12 pipes — b31gdata","text":"","code":"b31gdata"},{"path":"/reference/b31gdata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"ASME B31G. Corrosion state of 12 pipes — b31gdata","text":"data frame 12 rows 15 variables: maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. def appropriate (combined) design factor ASME B31.4, ASME B31.8, ASME B31.11, []. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double. status Operational status pipe: 1 - excellent, 2 - monitoring recommended, 3 - alert! replace pipe immediately! Type: assert_numeric. design_pressure design pressure pipe, [PSI]. Type: assert_double. safe_pressure safe maximum pressure corroded area, [PSI]. Type: assert_double. pressure_exceeding whether operator's action required reduce MOAP lower maximum safe pressure corroded area. . Type: assert_logical. allowed_corrosion_depth allowable depth corroded area, [inch]. Type: assert_double. intermediate factor related geometry corroded area, []. Type: assert_double. allowed_corrosion_length allowable length corroded area, [inch]. Type: assert_double. AP another intermediate factor related geometry corroded area, []. Type: assert_double.","code":""},{"path":"/reference/b31gdata.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"ASME B31G. Corrosion state of 12 pipes — b31gdata","text":"https://law.resource.org/pub/us/cfr/ibr/002/asme.b31g.1991.pdf","code":""},{"path":"/reference/b31gdep.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Design pressure of pipe — b31gdep","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"Calculate design pressure according ASME B31G-1991 conditioned construction characteristic way exceeded.","code":""},{"path":"/reference/b31gdep.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"","code":"b31gdep(d, wth, smys, def)"},{"path":"/reference/b31gdep.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. def appropriate (combined) design factor ASME B31.4, ASME B31.8, ASME B31.11, []. Type: assert_double.","code":""},{"path":"/reference/b31gdep.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"Design pressure pipe, [PSI]. Type: assert_double.","code":""},{"path":"/reference/b31gdep.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gdep.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"","code":"library(pipenostics) b31gdep(30, .438, 52e3, .72) #> [1] 1093.748 # [1] 1093.748 # [PSI]"},{"path":"/reference/b31gmodpf.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"Calculate failure pressure corroded pipe according Modified B31G, Level-1 algorithm listed ASME B31G-2012. next assumption corrosion shape adopted Modified B31G: dcor represents argument depth.","code":""},{"path":"/reference/b31gmodpf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"","code":"b31gmodpf(d, wth, smys, depth, l)"},{"path":"/reference/b31gmodpf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gmodpf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"Estimated failure pressure corroded pipe, [PSI]. Type: assert_double.","code":""},{"path":"/reference/b31gmodpf.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"Since definition flow stress, Sflow, ASME B31G-2012 recommended Level 1 follows: $$Sflow = 1.1SMYS$$ possibilities evaluation incorporated. code avoid possible semantic optimization preserve readability correlation original text description ASME B31G-2012. time source code estimated failure pressure preserves maximum affinity semantic description ASME B31G-2012. Numeric NAs may appear case prescribed conditions use offended.","code":""},{"path":"/reference/b31gmodpf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"ASME B31G-2012. Manual determining remaining strength corroded pipelines: supplement B31 Code pressure piping. S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7","code":""},{"path":[]},{"path":"/reference/b31gmodpf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"","code":"library(pipenostics) ## Example: maximum percentage disparity of original B31G ## algorithm and modified B31G showed on CRVL.BAS data with(b31gdata, { original <- b31gpf(d, wth, smys, depth, l) modified <- b31gmodpf(d, wth, smys, depth, l) round(max(100*abs(1 - original/modified), na.rm = TRUE), 4) }) #> [1] 32.6666 ## Output: #[1] 32.6666 ## Example: plot disparity of original B31G algorithm and ## modified B31G showed on CRVL data with(b31gdata[-(6:7),], { b31g <- b31gpf(depth, wth, smys, depth, l) b31gmod <- b31gmodpf(depth, wth, smys, depth, l) axe_range <- range(c(b31g, b31gmod)) plot(b31g, b31g, type = 'b', pch = 16, xlab = 'Pressure, [PSI]', ylab = 'Pressure, [PSI]', main = 'Failure pressure method comparison', xlim = axe_range, ylim = axe_range) inc <- order(b31g) lines(b31g[inc], b31gmod[inc], type = 'b', col = 'red') legend('topleft', legend = c('B31G Original', 'B31G Modified'), col = c('black', 'red'), lty = 'solid') })"},{"path":"/reference/b31gops.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Operational status of pipe — b31gops","title":"ASME B31G. Operational status of pipe — b31gops","text":"Determine operational status pipe: excellent? technological control required? critical situation?","code":""},{"path":"/reference/b31gops.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Operational status of pipe — b31gops","text":"","code":"b31gops(wth, depth)"},{"path":"/reference/b31gops.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Operational status of pipe — b31gops","text":"wth nominal wall thickness pipe, [inch]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gops.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Operational status of pipe — b31gops","text":"Operational status pipe integer value: 1 - excellent 2 - monitoring recommended 3 - alert! replace pipe immediately! Type: assert_numeric assert_subset.","code":""},{"path":"/reference/b31gops.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Operational status of pipe — b31gops","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gops.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Operational status of pipe — b31gops","text":"","code":"library(pipenostics) b31gops(.438, .1) #> [1] 2 # [1] 2 # typical status for the most of pipes b31gops(.5, .41) #> [1] 3 # [1] 3 # alert! Corrosion depth is too high! Replace the pipe!"},{"path":"/reference/b31gpf.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"Calculate failure pressure corroded pipe according Original B31G, Level-1 algorithm listed ASME B31G-2012. next assumption corrosion shape adopted ASME B31G-2012: () parabolic (b) rectangular idealizations corroded area.","code":""},{"path":"/reference/b31gpf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"","code":"b31gpf(d, wth, smys, depth, l)"},{"path":"/reference/b31gpf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gpf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"Estimated failure pressure corroded pipe, [PSI]. Type: assert_double.","code":""},{"path":"/reference/b31gpf.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"Since definition flow stress, Sflow, ASME B31G-2012 recommended Level 1 follows: $$Sflow = 1.1SMYS$$ possibilities evaluation incorporated. code avoid possible semantic optimization preserve readability correlation original text description ASME B31G-2012. time source code estimated failure pressure preserves maximum affinity semantic description ASME B31G-2012 slightly differs given Timashev et al. latter deviates 0.7 (b31gdata). Numeric NAs may appear case prescribed conditions use offended.","code":""},{"path":"/reference/b31gpf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"ASME B31G-2012. Manual determining remaining strength corroded pipelines: supplement B31 Code pressure piping. S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7","code":""},{"path":[]},{"path":"/reference/b31gpf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"","code":"library(pipenostics) ## Example: maximum percentage disparity of original B31G ## algorithm and modified B31G showed on CRVL.BAS data with(b31gdata, { original <- b31gpf(d, wth, smys, depth, l) modified <- b31gmodpf(d, wth, smys, depth, l) round(max(100*abs(1 - original/modified), na.rm = TRUE), 4) }) #> [1] 32.6666 ## Output: #[1] 32.6666 ## Example: plot disparity of original B31G algorithm and ## modified B31G showed on CRVL data with(b31gdata[-(6:7),], { b31g <- b31gpf(depth, wth, smys, depth, l) b31gmod <- b31gmodpf(depth, wth, smys, depth, l) axe_range <- range(c(b31g, b31gmod)) plot(b31g, b31g, type = 'b', pch = 16, xlab = 'Pressure, [PSI]', ylab = 'Pressure, [PSI]', main = 'Failure pressure method comparison', xlim = axe_range, ylim = axe_range) inc <- order(b31g) lines(b31g[inc], b31gmod[inc], type = 'b', col = 'red') legend('topleft', legend = c('B31G Original', 'B31G Modified'), col = c('black', 'red'), lty = 'solid') })"},{"path":"/reference/b31gsap.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"Calculate safe maximum pressure corroded area pipe.","code":""},{"path":"/reference/b31gsap.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"","code":"b31gsap(dep, d, wth, depth, l)"},{"path":"/reference/b31gsap.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"dep design pressure pipe, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gsap.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"Safe maximum pressure corroded area pipe, [PSI]. Type: assert_double.","code":""},{"path":"/reference/b31gsap.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gsap.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"","code":"library(pipenostics) b31gsap(1093, 30, .438, .1, 7.5) #> [1] 1093 # [1] 1093 # [PSI], safe pressure is equal to design pressure b31gsap(877, 24, .281, .08, 15) #> [1] 690 # [1] 690 # [PSI], safe pressure is lower than design pressure due corrosion"},{"path":"/reference/celsius.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert to Celsius scale — c_k","title":"Convert to Celsius scale — c_k","text":"Convert temperature measured Kelvin- Fahrenheit-scale Celsius (°C).","code":""},{"path":"/reference/celsius.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert to Celsius scale — c_k","text":"","code":"c_k(x) c_f(x)"},{"path":"/reference/celsius.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert to Celsius scale — c_k","text":"x temperature initial scale: c_k(x) - Kelvin-scale, [K] c_f(x) - Fahrenheit-scale, [°F] Type: assert_double.","code":""},{"path":"/reference/celsius.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert to Celsius scale — c_k","text":"temperature Celsius-scale, [°C]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/celsius.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert to Celsius scale — c_k","text":"","code":"library(pipenostics) # Convert from Kelvin to Celsius: c_k(c(0, 373.15)) #> [1] -273.15 100.00 # [1] -273.15 100 # Convert from Fahrenheit to Celsius: c_f(c(-459.67, 212)) #> [1] -273.15 100.00 # [1] -273.15 100"},{"path":"/reference/dnvpf.html","id":null,"dir":"Reference","previous_headings":"","what":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"Calculate failure pressure corroded pipe according Section 8.2 DNV-RP-F101. estimation valid single isolated metal loss defects corrosion/erosion type internal pressure loading considered. next assumption corrosion shape adopted DNV-RP-F101: dcor represents argument depth.","code":""},{"path":"/reference/dnvpf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"","code":"dnvpf(d, wth, uts, depth, l)"},{"path":"/reference/dnvpf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"d nominal outside diameter pipe, [mm]. Type: assert_double. wth nominal wall thickness pipe, [mm]. Type: assert_double. uts ultimate tensile strength (UTS) specified minimum tensile strength (SMTS) characteristic steel strength, [MPa]. Type: assert_double. depth measured maximum depth corroded area, [mm]. Type: assert_double. l measured maximum longitudinal length corroded area, [mm]. Type: assert_double.","code":""},{"path":"/reference/dnvpf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"Estimated failure pressure corroded pipe, [MPa]. Type: assert_double.","code":""},{"path":"/reference/dnvpf.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"contrast ASME B31G-2012 property pipe metal characterized specified minimum tensile strength - SMTS, [\\(N/mm^2\\)], SI default unit system. SMTS given linepipe steel material specifications (e.g. API 5L) material grade. time Timashev et al. used ultimate tensile strength - UTS place SMTS. , case quantities may used interchangeable way. Numeric NAs may appear case prescribed conditions use offended.","code":""},{"path":"/reference/dnvpf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"Recommended practice DNV-RP-F101. Corroded pipelines. DET NORSKE VERITAS, October 2010. ASME B31G-2012. Manual determining remaining strength corroded pipelines: supplement B31 Code pressure piping. S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7.","code":""},{"path":[]},{"path":"/reference/dnvpf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"","code":"library(pipenostics) d <- c(812.8, 219.0) # [mm] wth <- c( 19.1, 14.5) # [mm] uts <- c(530.9, 455.1) # [N/mm^2] l <- c(203.2, 200.0) # [mm] depth <- c( 13.4, 9.0) # [mm] dnvpf(d, wth, uts, depth, l) #> [1] 15.86626 34.01183 # [1] 15.86626 34.01183"},{"path":"/reference/dropg.html","id":null,"dir":"Reference","previous_headings":"","what":"Flow rate drop in pipe — dropg","title":"Flow rate drop in pipe — dropg","text":"Calculate drop recovery flow rate pipe using geometric factors. calculated value may positive negative. positive drop, .e. decrease flow rate outlet pipe consideration. calculated value negative recovery, .e. increase flow rate outlet pipe consideration. cases calculate flow rate outlet pipe consideration simply subtract calculated value sensor-measured flow rate inlet.","code":""},{"path":"/reference/dropg.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Flow rate drop in pipe — dropg","text":"","code":"dropg(adj = 0, d = 700, flow_rate = 250)"},{"path":"/reference/dropg.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Flow rate drop in pipe — dropg","text":"adj diameters adjacent pipes discharges recharges network occur, [mm]. Types: assert_double total diameter adjacent pipes (total diameter case) assert_list assert_double set diameters adjacent pipes (particular diameter case) Positive values diameters adjacent pipes correspond discharging process pipe, whereas negative values diameters mean recharging. See Details Examples explanations. d diameter pipe consideration, [mm]. Type: assert_double. flow_rate sensor-measured amount heat carrier (water) transferred inlet pipe period, [ton/hour]. Type: assert_double.","code":""},{"path":"/reference/dropg.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Flow rate drop in pipe — dropg","text":"flow rate drop recovery outlet pipe, [ton/hour], numeric vector. value positive drop, whereas recovery negative. cases calculate flow rate outlet pipe consideration simply subtract calculated value sensor-measured flow rate inlet. Type: assert_double.","code":""},{"path":"/reference/dropg.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Flow rate drop in pipe — dropg","text":"common sensor-measured flow rate undergoes discharges network recharges . calculation flow rate drop recovery next configuration district heating network segment assumed: Usually, additional sensors measure flow rate flow fork. case may operate geometric factors, .e. assuming flow rate proportional square pipe diameter. simple summation flow rates adjacent pipes produces required flow rate drop recovery located outlet pipe consideration. Since concurrency discharges recharges diameters discharge pipes regarded positive whereas diameters recharge pipes must negative. careful dealing geometric factors large amount recharges network: additional physical constraints thus calculated value recovery may non-sense.","code":""},{"path":[]},{"path":"/reference/dropg.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Flow rate drop in pipe — dropg","text":"","code":"library(pipenostics) # Let consider pipes according to network segment scheme depicted in figure # in [?dropg] help-page. # Typical large diameters of pipes under consideration, [mm]: d <- as.double(unique(subset(pipenostics::m325nhldata, diameter > 700)$diameter)) # Let sensor-measured flow rate in the inlet of pipe # under consideration be proportional to d, [ton/hour]: flow_rate <- .125*d # Let consider total diameter case when total diameters of adjacent pipes are no # more than d, [mm]: adj <- c(450, -400, 950, -255, 1152) # As at may be seen for the second and fourth cases they predominantly have # recharges from network. # Let calculate flow rate on the outlet of the pipe under consideration, # [ton/hour] result <- flow_rate - dropg(adj, d, flow_rate) print(result) #> [1] 75.96439 134.72222 65.70302 180.80580 78.05995 # [1] 75.96439 134.72222 65.70302 180.80580 78.05995 # For more clarity they may perform calculations in `data.table`."},{"path":"/reference/dropp.html","id":null,"dir":"Reference","previous_headings":"","what":"Pressure drop in pipe — dropp","title":"Pressure drop in pipe — dropp","text":"Calculate pressure drop straight cylidrical steel pipe district heating system ( water heat carrier) result pipe orientation space (hydrostatic component), friction water internal wall pipe.","code":""},{"path":"/reference/dropp.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pressure drop in pipe — dropp","text":"","code":"dropp( temperature = 130, pressure = mpa_kgf(6), flow_rate = 1276, d = 1, len = 1, roughness = 0.006, inlet = 0, outlet = 0, method = \"romeo\" )"},{"path":"/reference/dropp.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pressure drop in pipe — dropp","text":"temperature temperature heat carrier (water) inside pipe, [°C]. Type: assert_double. pressure absolute pressure heat carrier (water) measured entrance (inlet) pipe, [MPa]. Type: assert_double. flow_rate amount heat carrier (water) transferred pipe period, [ton/hour]. Type: assert_double. d internal diameter pipe, [m]. Type: assert_double. len pipe length, [m]. Type: assert_double. roughness roughness internal wall pipe, [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. method method determining Darcy friction factor. Type: assert_choice. (see Details)","code":""},{"path":"/reference/dropp.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pressure drop in pipe — dropp","text":"pressure drop outlet pipe, [MPa]. Type: assert_double.","code":""},{"path":"/reference/dropp.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Pressure drop in pipe — dropp","text":"underlying engineering model calculation pressure drop considers two contributions (components): Pressure drop due gravity (hydrostatic component). Pressure drop due friction. model consider size changes pipe presence fittings. first component depends pipe position space next figure illustrates adopted disposition pipe. , expression first component can written : $$g \\rho (outlet - inlet)$$ g - gravity factor, \\(m/s^2\\), \\(\\rho\\) - density water (heat carrier), \\(kg/m^3\\); inlet outlet appropriate pipe elevations (sea adopted level), \\(m\\). second component comes Darcy–Weisbach equation calculated using heating carrier regime parameters (temperature, pressure, flow_rate). Temperature pressure values heat carrier define water properties according IAPWS formulation. Several methods calculating Darcy friction factor possible limited next direct approximations Colebrook equation: romeo Romeo, Royo Monzon, 2002 vatankhan Vatankhan Kouchakzadeh, 2009 buzelli Buzzelli, 2008 According Brkic, 2011 approximations errors methods exceed 0.15 % combinations Reynolds numbers actual values internal wall roughness pipe.","code":""},{"path":"/reference/dropp.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Pressure drop in pipe — dropp","text":"W.Wagner et al. IAPWS Industrial Formulation 1997 Thermodynamic Properties Water Steam, J. Eng. Gas Turbines Power. Jan 2000, 122(1): 150-184 (35 pages) M.L.Huber et al.New International Formulation Viscosity \\(H_2O\\), Journal Physical Chemical Reference Data 38, 101 (2009); D.Brkic. Journal Petroleum Science Engineering, Vol. 77, Issue 1, April 2011, Pages 34-48. Romeo, E., Royo, C., Monzon, ., 2002. Improved explicit equation estimation friction factor rough smooth pipes. Chem. Eng. J. 86 (3), 369–374. Vatankhah, .R., Kouchakzadeh, S., 2009. Discussion: Exact equations pipeflow problems, P.K. Swamee P.N. Rathie. J. Hydraul. Res. IAHR 47 (7), 537–538. Buzzelli, D., 2008. Calculating friction one step. Mach. Des. 80 (12), 54–55.","code":""},{"path":[]},{"path":"/reference/dropp.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Pressure drop in pipe — dropp","text":"","code":"library(pipenostics) # Typical pressure drop for horizontal pipeline segments # in high-way heating network in Novosibirsk dropp(len = c(200, 300)) #> [1] 0.0007000666 0.0010500999 #[1] 0.0007000666 0.0010500999"},{"path":"/reference/dropt.html","id":null,"dir":"Reference","previous_headings":"","what":"Temperature drop in cylindrical steel pipe due heat loss — dropt","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"Calculate temperature drop steel pipe district heating system (water heat carrier) result heat loss pipe wall insulation.","code":""},{"path":"/reference/dropt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"","code":"dropt( temperature = 130, pressure = mpa_kgf(6), flow_rate = 250, loss_power = 7000 )"},{"path":"/reference/dropt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"temperature temperature heat carrier (water) inside pipe measured inlet pipe, [°C]. Type: assert_double. pressure absolute pressure heat carrier (water) inside pipe, [MPa]. Type: assert_double. flow_rate amount heat carrier (water) transferred pipe period, [ton/hour]. Type: assert_double. loss_power power heat loss - heat loss area pipe wall per hour, [kcal/hour]. Type: assert_double.","code":""},{"path":"/reference/dropt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"temperature drop outlet pipe, [°C]. Type: assert_double.","code":""},{"path":"/reference/dropt.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"Specific isobaric heat capacity used calculations calculated according IAPWS R7-97(2012) Region 1 since assumed state water district heating system always region.","code":""},{"path":[]},{"path":"/reference/dropt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"","code":"library(pipenostics) # Calculate normative temperature drop based on Minenergo-325 for pipe segment pipeline <- list( year = 1968, laying = \"channel\", d = 700, # [mm] len = 1000 # [m] ) regime <- list( temperature = c(130, 150), # [°C] pressure = .588399, # [MPa] flow_rate = 250 # [ton/hour] ) pipe_loss_power <- do.call( m325nhl, c(pipeline, temperature = list(regime[[\"temperature\"]]), duration = 1) # [kcal/hour] ) temperature_drop <- dropt( temperature = regime[[\"temperature\"]], # [°C] loss_power = pipe_loss_power # [kcal/hour] ) # [°C] print(temperature_drop) #> [1] 1.366806 1.433840 # [1] 1.366806 1.433840"},{"path":"/reference/fahrenheit.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert to Fahrenheit scale — f_k","title":"Convert to Fahrenheit scale — f_k","text":"Convert temperature measured Kelvin- Celsius-scale Fahrenheit (°F).","code":""},{"path":"/reference/fahrenheit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert to Fahrenheit scale — f_k","text":"","code":"f_k(x) f_c(x)"},{"path":"/reference/fahrenheit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert to Fahrenheit scale — f_k","text":"x temperature initial scale: f_k(x) - Kelvin-scale, [K] f_c(x) - Celsius-scale, [°C] Type: assert_double.","code":""},{"path":"/reference/fahrenheit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert to Fahrenheit scale — f_k","text":"temperature Fahrenheit-scale, [°F]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/fahrenheit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert to Fahrenheit scale — f_k","text":"","code":"library(pipenostics) # Convert from Kelvin to Fahrenheit: f_k(c(0, 373.15)) #> [1] -459.67 212.00 # [1] -459.67 212 # Convert from Celsius to Fahrenheit: f_c(c(-273.15, 100)) #> [1] -459.67 212.00 # [1] -459.67, 212"},{"path":"/reference/flowls.html","id":null,"dir":"Reference","previous_headings":"","what":"List all possible flow paths in district heating network — flowls","title":"List all possible flow paths in district heating network — flowls","text":"Find list possible paths heat carrier flow (water) given topology district heating system.","code":""},{"path":"/reference/flowls.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"List all possible flow paths in district heating network — flowls","text":"","code":"flowls(sender = \"A\", acceptor = \"B\", use_cluster = FALSE)"},{"path":"/reference/flowls.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"List all possible flow paths in district heating network — flowls","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique. Type: type can painlessly coerced character .character. use_cluster utilize functionality parallel processing multi-core CPU. Type: assert_flag.","code":""},{"path":"/reference/flowls.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"List all possible flow paths in district heating network — flowls","text":"named list contains integer vectors elements. name element list name acceptor associated terminal node district heating network. vector list represents ordered sequence indexes acceptor enumerates incoming edges starting node terminal one. length returned list equal number terminal nodes topology considered. Type: assert_list.","code":""},{"path":"/reference/flowls.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"List all possible flow paths in district heating network — flowls","text":"branched topology without cycles considered one incoming edge exists every acceptor node. instance, m325testbench permitted topology. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench.","code":""},{"path":[]},{"path":"/reference/flowls.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"List all possible flow paths in district heating network — flowls","text":"","code":"library(pipenostics) # \\donttest{ # Find path from A to B in trivial line topology: flowls(\"A\", \"B\") #> $B #> [1] 1 #> # $B # [1] 1 # More complex example with two terminal nodes D and E: flowls(c(\"A\", \"B\", \"B\"), c(\"B\", \"D\", \"E\")) #> $D #> [1] 1 2 #> #> $E #> [1] 1 3 #> #$D #[1] 1 2 # #$E #[1] 1 3 # All possible flow paths in test bench illustrated in `?m325testbench`: all_paths <- list( c(12, 13, 11, 8, 4, 1), # hereinafter indexes of acceptor nodes c(12, 13, 11, 8, 4, 2), c(12, 13, 11, 8, 6, 5, 3), c(12, 13, 11, 8, 6, 7), c(12, 13, 11, 8, 6, 9), c(12, 13, 11, 10), c(12, 13, 14, 15), c(12, 13, 16, 17), c(12, 13, 16, 18, 20, 19), c(12, 13, 16, 18, 20, 21), c(12, 13, 16, 18, 22, 24), c(12, 13, 16, 18, 22, 25), c(12, 13, 16, 18, 20, 23, 26) ) # find those paths: path <- with(pipenostics::m325testbench, { flowls(sender, acceptor) }) path[[4]] #> [1] 12 13 11 8 6 7 # [1] 12 13 11 8 6 7 # }"},{"path":"/reference/flux.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert heat flux to specific heat loss power — loss_flux","title":"Convert heat flux to specific heat loss power — loss_flux","text":"Convert heat flux measured cylindrical steel pipe specific heat loss power pipe.","code":""},{"path":"/reference/flux.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert heat flux to specific heat loss power — loss_flux","text":"","code":"loss_flux(x, d, wth = 0) flux_loss(x, d, wth = 0)"},{"path":"/reference/flux.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert heat flux to specific heat loss power — loss_flux","text":"x value heat flux, [W/m^2], loss_flux(x, d, wth) specific heat loss power, [kcal/m/h], flux_loss(x, d, wth)(x) Type: assert_double. d outside (wth = 0) internal (wth > 0) diameter cylindrical pipe, [m]. Type: assert_double. wth wall thickness pipe, [mm], 0 argument d outside diameter pipe. Type: assert_double.","code":""},{"path":"/reference/flux.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert heat flux to specific heat loss power — loss_flux","text":"value specific heat loss power, [kcal/m/h], loss_flux(x, d, wth) heat flux, [W/m^2], flux_loss(x, d, wth)(x) Type: assert_double.","code":""},{"path":[]},{"path":"/reference/flux.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert heat flux to specific heat loss power — loss_flux","text":"","code":"library(pipenostics) # Consider pipes: diameter <- c(998, 1395) # [mm] wall_thikness <- c( 2, 5) # [mm] # Then maximum possible normative neat loss according (Minenergo-325) for # these pipe diameters are loss_max <- c(218, 1040) # [kcal/m/h] # The appropriate flux is flux <- flux_loss(loss_max, diameter * 1e-3, wall_thikness) print(flux) #> [1] 80.70238 275.00155 # [1] 80.70238 275.00155 # [W/m^2] stopifnot( all.equal(loss_flux(flux, diameter * 1e-3, wall_thikness), loss_max, tolerance = 5e-6) )"},{"path":"/reference/fric_buzelli.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"Estimate Darcy friction factor explicitly extremely accurate Buzelli approximation Colebrook equation.","code":""},{"path":"/reference/fric_buzelli.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"","code":"fric_buzelli(reynolds, roughness = 0, strict = FALSE)"},{"path":"/reference/fric_buzelli.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"reynolds Reynolds number, []. Type: assert_double. roughness relative roughness, []. Type: assert_double. strict calculate inside precision region. Type: assert_flag.","code":""},{"path":"/reference/fric_buzelli.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"pipe friction factor, []. Type: assert_double.","code":""},{"path":"/reference/fric_buzelli.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"Buzelli's formula reported extremely accurate region: 3.0e3 <= reynolds <= 3.0e8 0 <= roughness <= 0.05 strict = TRUE mode argument values outside precision region allowed, whereas strict = FALSE either NAs generated case calculation laminar flow performed reynolds < 2100.0.","code":""},{"path":"/reference/fric_buzelli.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"Offor, U. Alabi, S. (2016) Accurate Computationally Efficient Explicit Friction Factor Model. Advances Chemical Engineering Science, 6, pp. 237-245. doi:10.4236/aces.2016.63024 . Buzzelli, D. (2008) Calculating friction one step. Machine Design, 80 (12), pp. 54–55.","code":""},{"path":[]},{"path":"/reference/fric_buzelli.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"","code":"library(pipenostics) fric_buzelli(c(2118517, 2000, 2118517), c(1e-6, 70e-3/1, 7e-3/1)) #> [1] 0.01031468 0.03200000 0.03375076 # [1] 0.01031468 0.03200000 0.03375076 # [] fric_buzelli(c(2118517, 5500, 2118517), c(1e-6, 50e-3/1, 7e-3/1), TRUE) #> [1] 0.01031468 0.07556734 0.03375076 # [1] 0.01031468 0.07556734 0.03375076"},{"path":"/reference/fric_romeo.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate pipe friction factor with Romeo's formula — fric_romeo","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"Estimate Darcy friction factor explicitly extremely accurate Romeo-Royo-Monzón approximation Colebrook equation.","code":""},{"path":"/reference/fric_romeo.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"","code":"fric_romeo(reynolds, roughness = 0, strict = FALSE)"},{"path":"/reference/fric_romeo.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"reynolds Reynolds number, []. Type: assert_double. roughness relative roughness, []. Type: assert_double. strict calculate inside precision region. Type: assert_flag.","code":""},{"path":"/reference/fric_romeo.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"pipe friction factor, []. Type: assert_double.","code":""},{"path":"/reference/fric_romeo.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"Romeo's formula reported extremely accurate region: 3.0e3 <= reynolds <= 1.5e8 0.0 <= roughness <= 0.05 strict = TRUE mode argument values outside precision region allowed, whereas strict = FALSE either NAs generated case calculation laminar flow performed reynolds < 2100.0.","code":""},{"path":"/reference/fric_romeo.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"Offor, U. Alabi, S. (2016) Accurate Computationally Efficient Explicit Friction Factor Model. Advances Chemical Engineering Science, 6, pp. 237-245. doi:10.4236/aces.2016.63024 . Eva Romeo, Carlos Royo, Antonio Monzón, Improved explicit equations estimation friction factor rough smooth pipes, Chemical Engineering Journal, Volume 86, Issue 3, 2002, Pages 369-374, ISSN 1385-8947. doi:10.1016/S1385-8947(01)00254-6 .","code":""},{"path":[]},{"path":"/reference/fric_romeo.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"","code":"library(pipenostics) fric_romeo(c(2118517, 2000, 2118517), c(0, 70e-3/1, 7e-3/1)) #> [1] 0.01028473 0.03200000 0.03373215 # [1] 0.01028473 0.03200000 0.03373215 # [] fric_romeo(c(2118517, 3030, 2118517), c(0, 50e-3/1, 7e-3/1), TRUE) #> [1] 0.01028473 0.07859636 0.03373215 # [1] 0.01028473 0.07859636 0.03373215 # []"},{"path":"/reference/fric_vatankhan.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"Estimate Darcy friction factor explicitly extremely accurate Vatankhah-Kouchakzadeh approximation Colebrook equation.","code":""},{"path":"/reference/fric_vatankhan.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"","code":"fric_vatankhan(reynolds, roughness = 0, strict = FALSE)"},{"path":"/reference/fric_vatankhan.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"reynolds Reynolds number, []. Type: assert_double. roughness relative roughness, []. Type: assert_double. strict calculate inside precision region. Type: assert_flag.","code":""},{"path":"/reference/fric_vatankhan.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"pipe friction factor, []. Type: assert_double.","code":""},{"path":"/reference/fric_vatankhan.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"Vatankhah's formula reported extremely accurate region: 5.0e3 <= reynolds <= 1.0e8 1e-6 <= roughness <= 0.05 strict = TRUE mode argument values outside precision region allowed, whereas strict = FALSE either NAs generated case calculation laminar flow performed reynolds < 2100.0.","code":""},{"path":"/reference/fric_vatankhan.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"Offor, U. Alabi, S. (2016) Accurate Computationally Efficient Explicit Friction Factor Model. Advances Chemical Engineering Science, 6, pp. 237-245. doi:10.4236/aces.2016.63024 . Ali R. Vatankhah, Salah Kouchakzadeh (2009) Exact equations pipe-flow problems. Journal Hydraulic Research, 47:4, pp. 537-538, DOI: doi:10.1080/00221686.2009.9522031","code":""},{"path":[]},{"path":"/reference/fric_vatankhan.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"","code":"library(pipenostics) fric_vatankhan(c(2118517, 2000, 2118517), c(1e-6, 70e-3/1, 7e-3/1)) #> [1] 0.01031665 0.03200000 0.03375210 # [1] 0.01031665 0.03200000 0.03375210 # [] fric_vatankhan(c(2118517, 5500, 2118517), c(1e-6, 50e-3/1, 7e-3/1), TRUE) #> [1] 0.01031665 0.07556163 0.03375210 # [1] 0.01031665 0.07556163 0.03375210"},{"path":"/reference/geodist.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate geographical metrics — geoarea","title":"Calculate geographical metrics — geoarea","text":"Calculate geographical metrics (distance, area) two three geographical locations.","code":""},{"path":"/reference/geodist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate geographical metrics — geoarea","text":"","code":"geoarea(lat1, lon1, lat2, lon2, lat3, lon3, earth = 6371008.7714) geodist(lat1, lon1, lat2, lon2, earth = 6371008.7714)"},{"path":"/reference/geodist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate geographical metrics — geoarea","text":"lat1 latitude first geographical location, [DD]. Type: assert_double. lon1 longitude first geographical location, [DD]. Type: assert_double. lat2 latitude second geographical location, [DD]. Type: assert_double. lon2 longitude second geographical location, [DD]. Type: assert_double. lat3 latitude third geographical location, [DD]. Type: assert_double. lon3 longitude third geographical location, [DD]. Type: assert_double. earth Earth radius, [m]. See Details. Type: assert_numeric.","code":""},{"path":"/reference/geodist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate geographical metrics — geoarea","text":"geodist: distance two geographical locations, [m]. geoarea: area spherical triangle three geographical locations, [km^2]. Type: assert_double.","code":""},{"path":"/reference/geodist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate geographical metrics — geoarea","text":"geodist calculates distance two geographical locations Earth, whereas geoarea calculates area spherical triangle three geographical locations. functions use absolute positions geographical locations described geographical coordinate system decimal degrees units denoted DD. haversine formula applied calculate distance, spherical model Earth considered functions. Since several variants Earth radius can accepted, user welcome provide value. WGS-84 mean radius semi-axes, \\(R_1\\), default value. resulting distance expressed metres (m), whereas area expressed square kilometers(km^2).","code":""},{"path":[]},{"path":"/reference/geodist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate geographical metrics — geoarea","text":"","code":"library(pipenostics) # Consider the longest linear pipeline segment in Krasnoyarsk, [DD]: pipe <- list( lat1 = 55.98320350, lon1 = 92.81257226, lat2 = 55.99302417, lon2 = 92.80691885 ) # and some official Earth radii, [m]: R <- c( nominal_zero_tide_equatorial = 6378100.0000, nominal_zero_tide_polar = 6356800.0000, equatorial_radius = 6378137.0000, semiminor_axis_b = 6356752.3141, polar_radius_of_curvature = 6399593.6259, mean_radius_R1 = 6371008.7714, same_surface_R2 = 6371007.1810, same_volume_R3 = 6371000.7900, WGS84_ellipsoid_axis_a = 6378137.0000, WGS84_ellipsoid_axis_b = 6356752.3142, WGS84_ellipsoid_curvature_c = 6399593.6258, WGS84_ellipsoid_R1 = 6371008.7714, WGS84_ellipsoid_R2 = 6371007.1809, WGS84_ellipsoid_R3 = 6371000.7900, GRS80_axis_a = 6378137.0000, GRS80_axis_b = 6356752.3141, spherical_approx = 6366707.0195, meridional_at_the_equator = 6335439.0000, Chimborazo_maximum = 6384400.0000, Arctic_Ocean_minimum = 6352800.0000, Averaged_center_to_surface = 6371230.0000 ) # Calculate length of the pipeline segment for different radii: len <- with( pipe, vapply( R, geodist, double(1), lat1 = lat1, lon1 = lon1, lat2 = lat2, lon2 = lon2 ) ) print(range(len)) #> [1] 1140.823 1152.376 # [1] 1140.82331483 1152.37564656 # [m] # Consider some remarkable objects on Earth, [DD]: objects <- rbind( Mount_Kailash = c(lat = 31.069831297551982, lon = 81.31215667724196), Easter_Island_Moai = c(lat =-27.166873910247862, lon =-109.37092217323053), Great_Pyramid = c(lat = 29.979229451772856, lon = 31.13418110843685), Antarctic_Pyramid = c(lat = -79.97724194984573, lon = -81.96170583068950), Stonehendge = c(lat = 51.179036665131870, lon =-1.8262150017463086) ) # Consider all combinations of distances between them: path <- t(combn(rownames(objects), 2)) d <- geodist( lat1 = objects[path[, 1], \"lat\"], lon1 = objects[path[, 1], \"lon\"], lat2 = objects[path[, 2], \"lat\"], lon2 = objects[path[, 2], \"lon\"] )*1e-3 cat( paste( sprintf(\"%s <--- %1.4f km ---> %s\", path[, 1], d, path[, 2]), collapse = \"\\n\" ) ) #> Mount_Kailash <--- 18890.9362 km ---> Easter_Island_Moai #> Mount_Kailash <--- 4765.7923 km ---> Great_Pyramid #> Mount_Kailash <--- 14523.7267 km ---> Antarctic_Pyramid #> Mount_Kailash <--- 6917.4240 km ---> Stonehendge #> Easter_Island_Moai <--- 16164.4674 km ---> Great_Pyramid #> Easter_Island_Moai <--- 6010.1422 km ---> Antarctic_Pyramid #> Easter_Island_Moai <--- 13520.3511 km ---> Stonehendge #> Great_Pyramid <--- 13726.9374 km ---> Antarctic_Pyramid #> Great_Pyramid <--- 3595.6153 km ---> Stonehendge #> Antarctic_Pyramid <--- 15396.3978 km ---> Stonehendge # Consider two areas # * Bermuda triangle * Polynesian Triangle lat1 <- c(Miami = 25.789106, Hawaii = 19.820680) lon1 <- c(Miami = -80.226529, Hawaii = -155.467989) lat2 <- c(Bermuda = 32.294887, NewZeland = -43.443219) lon2 <- c(Bermuda = -64.781380, NewZeland = 170.271360) lat3 <- c(SanJuan = 18.466319, EasterIsland = -27.112701) lon3 <- c(SanJuan = -66.105743, EasterIsland = -109.349668) # Area provided by manually operated Google Earth: GETriangleArea <- c( Bermuda = 1147627.48, # [km^2] Polynesian = 28775517.77 # [km^2] ) # Show the discrepancy in calculations, [km^2]: print(geoarea(lat1, lon1, lat2, lon2, lat3, lon3)) #> [1] 1147628 28775529 # Bermuda Polynesian # 0.4673216 11.1030971"},{"path":"/reference/inch_mm.html","id":null,"dir":"Reference","previous_headings":"","what":"Millimeters to inches — inch_mm","title":"Millimeters to inches — inch_mm","text":"Convert length measured millimeters (mm) inches","code":""},{"path":"/reference/inch_mm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Millimeters to inches — inch_mm","text":"","code":"inch_mm(x)"},{"path":"/reference/inch_mm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Millimeters to inches — inch_mm","text":"x length measured millimeters, [mm]. Type: assert_double.","code":""},{"path":"/reference/inch_mm.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Millimeters to inches — inch_mm","text":"length inches, [inch]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/inch_mm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Millimeters to inches — inch_mm","text":"","code":"library(pipenostics) inch_mm(c(25.4, 1)) #> [1] 1.00000000 0.03937008 # [1] 1.00000000 0.03937008 # [inch]"},{"path":"/reference/kelvin.html","id":null,"dir":"Reference","previous_headings":"","what":"Covert to Kelvin scale — k_c","title":"Covert to Kelvin scale — k_c","text":"Convert temperature measured Celsius- Fahrenheit-scale Kelvin (K).","code":""},{"path":"/reference/kelvin.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Covert to Kelvin scale — k_c","text":"","code":"k_c(x) k_f(x)"},{"path":"/reference/kelvin.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Covert to Kelvin scale — k_c","text":"x temperature initial scale: k_c(x) - Celsius-scale, [°C] k_f(x) - Fahrenheit-scale, [°F] Type: assert_double.","code":""},{"path":"/reference/kelvin.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Covert to Kelvin scale — k_c","text":"temperature Kelvin-scale, [K]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/kelvin.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Covert to Kelvin scale — k_c","text":"","code":"library(pipenostics) # Convert from Celsius to Kelvin: k_c(c(-273.15, 100)) #> [1] 0.00 373.15 # [1] 0 373.15 # Convert from Fahrenheit to Kelvin: k_f(c(-459.67, 212)) #> [1] 0.00 373.15 # [1] 0 373.15"},{"path":"/reference/kgf_mpa.html","id":null,"dir":"Reference","previous_headings":"","what":"Megapascals to kilogram-force per square — kgf_mpa","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"Convert pressure (stress) measured megapascals (MPa) kilogram-force per square cm (\\(kgf/cm^2\\)).","code":""},{"path":"/reference/kgf_mpa.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"","code":"kgf_mpa(x)"},{"path":"/reference/kgf_mpa.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"x pressure (stress) measured megapascals, [MPa]. Type: assert_double.","code":""},{"path":"/reference/kgf_mpa.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"pressure (stress) kilogram-force per square cm, [kgf/cm^2]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/kgf_mpa.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"","code":"library(pipenostics) kgf_mpa(c(0.0980665, 1)) #> [1] 1.00000 10.19716 # [1] 1.00000 10.19716"},{"path":"/reference/m278hlair.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"Calculate normative heat loss open-air supplying pipe function construction, operation, technical condition specifications according Appendix 5.1 Minenergo Method 278. type calculations usually made design stage district heating network (water heat carrier) closely related building codes regulations.","code":""},{"path":"/reference/m278hlair.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"","code":"m278hlair( t1 = 110, t2 = 60, t0 = 5, insd1 = 0.1, insd2 = insd1, d1 = 0.25, d2 = d1, lambda1 = 0.09, lambda2 = 0.07, k1 = 1, k2 = k1, lambda0 = 26, len = 1, duration = 1 )"},{"path":"/reference/m278hlair.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"t1 temperature heat carrier (water) inside supplying pipe, [°C]. Type: assert_double. t2 temperature heat carrier (water) inside returning pipe, [°C]. Type: assert_double. t0 temperature environment, [°C]. case open-air pipe ambient temperature. Type: assert_double. insd1 thickness insulator covers supplying pipe, [m]. Type: assert_double. insd2 thickness insulator covers returning pipe, [m]. Type: assert_double. d1 outside diameter supplying pipe, [m]. Type: assert_double. d2 outside diameter returning pipe, [m]. Type: assert_double. lambda1 thermal conductivity insulator covers supplying pipe [W/m/°C]. Type: assert_double. lambda2 thermal conductivity insulator covers returning pipe [W/m/°C]. assert_double. k1 technical condition factor insulator supplying pipe, []. Type: assert_double. k2 technical condition factor insulator returning pipe, []. Type: assert_double. lambda0 thermal conductivity environment, [W/m/°C]. case overhead laying thermal conductivity open air. Type: assert_double. len length supplying pipe, [m]. Type: assert_double. duration duration heat loss, [hour]. Type: assert_double.","code":""},{"path":"/reference/m278hlair.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"Normative heat loss open-air layed supplying cylindrical pipe duration, [kcal]. len pipe 1 m (meter) well duration set 1 h (hour) (default values) return value also specific heat loss power, [kcal/m/h] comparable prescribed Minenergo Order 325. Type: assert_double.","code":""},{"path":"/reference/m278hlair.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"Details using k1 k2 m278hlcha.","code":""},{"path":[]},{"path":"/reference/m278hlair.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"","code":"library(pipenostics) m278hlair() #> [1] 138.7736 # [1] 138.7736"},{"path":"/reference/m278hlcha.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"Calculate normative heat loss supplying pipe mounted underground channel function construction, operation, technical condition specifications according Appendix 5.1 Minenergo Method 278. type calculations usually made design stage district heating network (water heat carrier) closely related building codes regulations.","code":""},{"path":"/reference/m278hlcha.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"","code":"m278hlcha( t1 = 110, t2 = 60, t0 = 5, insd1 = 0.1, insd2 = insd1, d1 = 0.25, d2 = d1, lambda1 = 0.09, lambda2 = 0.07, k1 = 1, k2 = k1, lambda0 = 1.74, z = 2, b = 0.5, h = 0.5, len = 1, duration = 1 )"},{"path":"/reference/m278hlcha.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"t1 temperature heat carrier (water) inside supplying pipe, [°C]. Type: assert_double. t2 temperature heat carrier (water) inside returning pipe, [°C]. Type: assert_double. t0 temperature environment, [°C]. case channel laying temperature subsoil. Type: assert_double. insd1 thickness insulator covers supplying pipe, [m]. Type: assert_double. insd2 thickness insulator covers returning pipe, [m]. Type: assert_double. d1 outside diameter supplying pipe, [m]. Type: assert_double. d2 outside diameter returning pipe, [m]. Type: assert_double. lambda1 thermal conductivity insulator covers supplying pipe [W/m/°C]. Type: assert_double. lambda2 thermal conductivity insulator covers returning pipe [W/m/°C]. Type: assert_double. k1 technical condition factor insulator supplying pipe, []. Type: assert_double. k2 technical condition factor insulator returning pipe, []. Type: assert_double. lambda0 thermal conductivity environment, [W/m/°C]. case channel laying thermal conductivity subsoil. Type: assert_double. z channel laying depth, [m]. Type: assert_double. b channel width, [m]. Type: assert_double. h channel height, [m]. Type: assert_double. len length supplying pipe, [m]. Type: assert_double. duration duration heat loss, [hour]. Type: assert_double.","code":""},{"path":"/reference/m278hlcha.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"Normative heat loss supplying cylindrical pipe mounted channel duration, [kcal]. len pipe 1 m (meter) well duration set 1 h (hour) (default values) return value also specific heat loss power, [kcal/m/h] comparable prescribed Minenergo Order 325. Type: assert_double.","code":""},{"path":"/reference/m278hlcha.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"k1 k2 factor values equal 1 mean best technical condition insulation appropriate pipes, whereas poor technical state factor values tends 5 . Nevertheless, k1 k2 equal 1 calculated specific heat loss power [kcal/m/h] sometimes higher listed Minenergo Order 325. One consider situation choosing method heat loss calculations.","code":""},{"path":[]},{"path":"/reference/m278hlcha.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"","code":"library(pipenostics) m278hlcha() #> [1] 86.92977 # ## Naive way to find out technical state (factors k1 and k2) for pipe ## segments constructed in 1980: optim( par = c(1.5, 1.5), fn = function(x) { # functional to optimize abs( m278hlcha(k1 = x[1], k2 = x[2]) - m325nhl(year = 1980, laying = \"channel\", d = 250, temperature = 110) ) }, method = \"L-BFGS-B\", lower = 1.01, upper = 4.4 )$par #> [1] 4.285442 4.323628 # [1] 4.285442 4.323628"},{"path":"/reference/m278hlund.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"Calculate normative heat loss supplying underground pipe function construction, operation, technical condition specifications according Appendix 5.1 Minenergo Method 278. type calculations usually made design stage district heating network (water heat carrier) closely related building codes regulations.","code":""},{"path":"/reference/m278hlund.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"","code":"m278hlund( t1 = 110, t2 = 60, t0 = 5, insd1 = 0.1, insd2 = insd1, d1 = 0.25, d2 = d1, lambda1 = 0.09, lambda2 = 0.07, k1 = 1, k2 = k1, lambda0 = 1.74, z = 2, s = 0.55, len = 1, duration = 1 )"},{"path":"/reference/m278hlund.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"t1 temperature heat carrier (water) inside supplying pipe, [°C]. Type: assert_double. t2 temperature heat carrier (water) inside returning pipe, [°C]. Type: assert_double. t0 temperature environment, [°C]. underground pipe temperature subsoil. Type: assert_double. insd1 thickness insulator covers supplying pipe, [m]. Type: assert_double. insd2 thickness insulator covers returning pipe, [m]. Type: assert_double. d1 outside diameter supplying pipe, [m]. Type: assert_double. d2 outside diameter returning pipe, [m]. Type: assert_double. lambda1 thermal conductivity insulator covers supplying pipe [W/m/°C]. Type: assert_double. lambda2 thermal conductivity insulator covers returning pipe [W/m/°C]. Type: assert_double. k1 technical condition factor insulator supplying pipe, []. Type: assert_double. k2 technical condition factor insulator returning pipe, []. Type: assert_double. lambda0 thermal conductivity environment, [W/m/°C]. underground pipe thermal conductivity subsoil. Type: assert_double. z underground laying depth supplying pipe, [m]. Type: assert_double. s distance supplying returning pipes, [m]. Type: assert_double. len length supplying pipe, [m]. Type: assert_double. duration duration heat loss, [hour]. Type: assert_double.","code":""},{"path":"/reference/m278hlund.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"Normative heat loss supplying underground cylindrical pipe duration, [kcal]. len pipe 1 m (meter) well duration set 1 h (hour) (default values) return value also specific heat loss power, [kcal/m/h] comparable prescribed Minenergo Order 325. Type: assert_double.","code":""},{"path":"/reference/m278hlund.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"Details using k1 k2 m278hlcha.","code":""},{"path":[]},{"path":"/reference/m278hlund.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"","code":"library(pipenostics) m278hlund() #> [1] 102.6226 # [1] 102.6226"},{"path":"/reference/m278insdata.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"Data represent values terms (intercept factor) calculating thermal conductivity pipe insulation linear function temperature heat carrier (water). values set different insulation materials Appendix 5.3 Minenergo Method 278 norms.","code":""},{"path":"/reference/m278insdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"","code":"m278insdata"},{"path":"/reference/m278insdata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"data frame 39 rows 4 variables: id Number insulation material table 5.1 Appendix 5.3 Minenergo Method 278. Type: assert_integerish. material Designation insulation material less similar table 5.1 Appendix 5.3 Minenergo Method 278. Type: assert_character. lambda Value intercept, [mW/m/°C]. Type: assert_integer. k Value factor. Type: assert_integer.","code":""},{"path":"/reference/m278insdata.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"https://docs.cntd.ru/document/1200035568","code":""},{"path":"/reference/m278insdata.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"Usually data used directly. Instead use function m278inshcm.","code":""},{"path":[]},{"path":"/reference/m278inshcm.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"Get normative values thermal conductivity pipe insulation materials affirmed Minenergo Method 278 function temperature heat carrier (water).","code":""},{"path":"/reference/m278inshcm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"","code":"m278inshcm(temperature = 110, material = \"aerocrete\")"},{"path":"/reference/m278inshcm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"temperature temperature heat carrier (water) inside pipe, [°C]. Type: assert_double. material designation insulation material stated m278insdata, Type: assert_subset.","code":""},{"path":"/reference/m278inshcm.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"Thermal conductivity insulation materials given set temperatures, [W/m/°C], [W/m/K]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/m278inshcm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"","code":"library(pipenostics) # Averaged thermal conductivity of pipe insulation at 110 °C print(m278insdata) #> id material lambda k #> 1 1 asbestic_sovelite 87 120 #> 2 2 asbestic_glassfiber 58 230 #> 3 3 asbestic_cloth 130 260 #> 4 4 asbestic_cord 120 310 #> 5 5 asbestic_cord_common 130 260 #> 6 6 asbestic_cord_lint 93 200 #> 7 7 asbestic_vermiculite_250 81 200 #> 8 8 asbestic_vermiculite_300 87 230 #> 9 9 bituminous_pearlite 120 230 #> 10 10 bituminous_clay 130 230 #> 11 11 bituminous_vermiculite 130 230 #> 12 12 volcanite_300 74 150 #> 13 13 diatomite_500 116 230 #> 14 14 diatomite_600 140 230 #> 15 15 calcic_silicon_200 69 150 #> 16 16 mineral_wool_100 45 200 #> 17 17 mineral_wool_125 49 200 #> 18 18 mineral_wool_075 43 220 #> 19 19 glasfiber_00 40 260 #> 20 20 glasfiber_50 42 280 #> 21 21 aerocrete 110 300 #> 22 22 plastic 43 190 #> 23 23 polymer_concrete 70 0 #> 24 24 polyurethane 50 0 #> 25 25 perlite_cement_300 76 185 #> 26 26 perlite_cement_350 81 185 #> 27 27 mineral_wool_100_block 44 210 #> 28 28 mineral_wool_125_block 47 185 #> 29 29 mineral_wool_250 56 185 #> 30 30 glasfiber_75 44 230 #> 31 31 mineral_wool_150 49 200 #> 32 32 mineral_wool_200 52 185 #> 33 33 sovelite_350 76 185 #> 34 34 sovelite_400 78 185 #> 35 35 mineral_wool 69 190 #> 36 36 porous_plastic 50 0 #> 37 37 mineral_wool_200_cord 56 185 #> 38 38 mineral_wool_250_cord 58 185 #> 39 39 mineral_wool_300_cord 61 185 mean(m278inshcm(110, m278insdata[[\"material\"]])) #> [1] 0.09033974 # [1] 0.09033974 # [\\emph{W/m/°C}]"},{"path":"/reference/m278soildata.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","title":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","text":"Data represent normative values thermal conductivity subsoils can surround pipes according Table 5.3 Appendix 5.3 Minenergo Method 278.","code":""},{"path":"/reference/m278soildata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","text":"","code":"m278soildata"},{"path":"/reference/m278soildata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","text":"data frame 15 rows 3 variables: subsoil Geological name subsoil. Type: assert_character. state degree water penetration subsoil. Type: assert_character. lambda Value thermal conductivity subsoil regarding water penetration, [W/m/°C]. Type: assert_double.","code":""},{"path":"/reference/m278soildata.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","text":"https://docs.cntd.ru/document/1200035568","code":""},{"path":[]},{"path":"/reference/m325beta.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Local heat loss coefficient — m325beta","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"Calculate \\(\\beta\\) - local heat loss coefficient according rule 11.3.3 Minenergo Order 325. Local heat loss coefficient used increase normative heat loss pipe taking account heat loss fittings (shut-valves, compensators supports). coefficient applied mostly factor summation heat losses pipes pipeline leveraging formula 14 Minenergo Order 325.","code":""},{"path":"/reference/m325beta.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"","code":"m325beta(laying = \"channel\", d = 700)"},{"path":"/reference/m325beta.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"laying type pipe laying depicting position pipe space: air, channel, room, tunnel, underground. Type: assert_subset. d internal diameter pipe, [mm]. Type: assert_double.","code":""},{"path":"/reference/m325beta.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"Two possible values \\(\\beta\\): 1.2 1.15 depending pipe laying diameter. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/m325beta.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"","code":"library(pipenostics) norms <- within(m325nhldata, { beta <- m325beta(laying, as.double(diameter)) }) unique(norms$beta) #> [1] 1.15 1.20 # [1] 1.15 1.20"},{"path":"/reference/m325nhl.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Normative heat loss of pipe — m325nhl","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"Calculate normative heat loss pipe legally affirmed Minenergo Order 325.","code":""},{"path":"/reference/m325nhl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"","code":"m325nhl( year = 1986, laying = \"underground\", exp5k = TRUE, insulation = 0, d = 700, temperature = 110, len = 1, duration = 1, beta = FALSE, extra = 2 )"},{"path":"/reference/m325nhl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"year year pipe put operation laying total overhaul. Type: assert_integerish laying type pipe laying depicting position pipe space: air, channel, room, tunnel, underground. Type: assert_subset. exp5k pipe regime flag: pipe operated 5000 hours per year? Type: assert_logical. insulation insulation covers exterior pipe: 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_integer assert_subset. d internal diameter pipe, [mm]. Type: assert_double. temperature temperature heat carrier (water) inside pipe, [°C]. Type: assert_double. len length pipe, [m]. Type: assert_double. duration duration heat loss, [hour]. Type: assert_double. beta consider additional heat loss fittings? Type: assert_logical. extra number points used temperature extrapolation: 2, 3, 4. Type: assert_choice.","code":""},{"path":"/reference/m325nhl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"Normative heat loss cylindrical pipe duration, [kcal]. len pipe 1 m (meter) well duration set 1 h (hour) (default values) return value also specific heat loss power, [kcal/m/h], prescribed Minenergo Order 325. Type: assert_double.","code":""},{"path":"/reference/m325nhl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"Temperature extrapolation pipe diameter interpolation leveraged better accuracy. linear dictated Minenergo Order 325. Nevertheless, one control extrapolation behavior extra argument: use lower values extra soft curvature near extrapolation edges, higher values physically reasoned behavior far regions extrapolation.","code":""},{"path":[]},{"path":"/reference/m325nhl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"","code":"library(pipenostics) ## Consider a 1-meter length pipe with pipe_diameter <- 700.0 # [mm] pipe_dating <- 1980 pipe_laying <- \"underground\" ## Linear extrapolation adopted in Minenergo's Order 325 using last two points: operation_temperature <- seq(0, 270, 10) qs <- m325nhl( year = pipe_dating, laying = pipe_laying, d = pipe_diameter, temperature = operation_temperature ) # [kcal/m/h] plot( operation_temperature, qs, type = \"b\", main = \"Minenergo's Order 325. Normative heat loss of pipe\", sub = sprintf( \"%s pipe of diameter %i [mm] laid in %i\", pipe_laying, pipe_diameter, pipe_dating ), xlab = \"Temperature, [°C]\", ylab = \"Specific heat loss power, [kcal/m/h]\" ) ## Consider heat loss due fittings: operation_temperature <- 65 # [°C] fittings_qs <- m325nhl( year = pipe_dating, laying = pipe_laying, d = pipe_diameter, temperature = operation_temperature, beta = c(FALSE, TRUE) ) # [kcal/m/h] print(fittings_qs); stopifnot(all(round(fittings_qs ,1) == c(272.0, 312.8))) #> [1] 272.0 312.8 # [1] 272.0 312.8 # [kcal/m/h] ## Calculate heat flux: operation_temperature <- c(65, 105) # [°C] qs <- m325nhl( year = pipe_dating, laying = pipe_laying, d = pipe_diameter, temperature = operation_temperature ) # [kcal/m/h] print(qs) #> [1] 272.00 321.75 # [1] 272.00 321.75 # [kcal/m/h] pipe_diameter <- pipe_diameter * 1e-3 # [m] factor <- 2.701283 # [kcal/h/W] flux <- qs/factor/pipe_diameter -> a # heat flux, [W/m^2] print(flux) #> [1] 143.8470 170.1572 # [1] 143.8470 170.1572 # [W/m^2] ## The above line is equivalent to: flux <- flux_loss(qs, pipe_diameter) -> b stopifnot(all.equal(a, b, tolerance = 5e-6))"},{"path":"/reference/m325nhldata.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Normative heat loss data — m325nhldata","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"Data represent values specific heat loss power officially accepted Minenergo Order 325 norms. values maximums legally affirmed contribute normative heat loss \\(Q_NHL\\) district heating systems water heat carrier.","code":""},{"path":"/reference/m325nhldata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"","code":"m325nhldata"},{"path":"/reference/m325nhldata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"data frame 17328 rows 8 variables: source Identifier data source: identifiers suited glob t?p? mean appropriate table ?.? Minenergo Order 325; identifier sgc means values additionally postulated (see Details). Type: assert_character. epoch Year depicting epoch pipe put operation laying total overhaul. Type: assert_integer. laying Type pipe laying depicting position pipe space. five types pipe laying considered: air, channel, room, tunnel, underground. Type: assert_character. exp5k Logical indicator pipe regime: TRUE pipe operated 5000 hours per year. Type: assert_logical. insulation Identifier insulation covers exterior pipe: 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_integerish. diameter Nominal internal diameter pipe, [mm]. Type: assert_double. temperature Operational temperature pipe, [°C]. Type: assert_double. loss Normative value specific heat loss power equal heat flux output 1 meter length steel pipe hour, [kcal/m/hour]. Type: assert_double.","code":""},{"path":"/reference/m325nhldata.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"https://docs.cntd.ru/document/902148459","code":""},{"path":"/reference/m325nhldata.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"Data organized full factorial design, whereas factorial combinations Minenergo Order 325 provide values. cases values postulated practical reasons Siberian cities marked source label sgc. Usually data used directly. Instead use function m325nhl.","code":""},{"path":[]},{"path":"/reference/m325testbench.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Test bench of district heating network — m325testbench","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"Data describes virtual test bench branched district heating network exposing parameters associated Minenergo Order 325. treat data snapshot network state use primarily static thermal-hydraulic computations topology effects.","code":""},{"path":"/reference/m325testbench.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"","code":"m325testbench"},{"path":"/reference/m325testbench.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"data frame 22 rows (number nodes incoming edges) 15 variables: sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Snapshot thermal-hydraulic regime state: temperature heat carrier (water) sensor-measured terminal acceptor node, [°C]. Type: assert_double. NAs introduced nodes without temperature sensor. pressure Snapshot thermal-hydraulic regime state: sensor-measured absolute pressure heat carrier (water) inside pipe (.e. acceptor's incoming edge), [MPa]. Type: assert_double. NAs introduced nodes without pressure sensor. flow_rate Snapshot thermal-hydraulic regime state: sensor-measured amount heat carrier (water) terminal node transferred pipe (.e. acceptor's incoming edge) period, [ton/hour]. Type: assert_double. NAs introduced nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [m]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. year year pipe (.e. acceptor's incoming edge) put operation laying total overhaul. Type: assert_integerish. insulation identifier insulation covers exterior pipe (.e. acceptor's incoming edge): 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_integerish. laying type pipe laying depicting position pipe space. five types pipe laying considered: air, channel, room, tunnel, underground. Type: assert_character. beta logical indicator: consider additional heat loss fittings located pipe (.e. acceptor's incoming edge)? Type: assert_logical. exp5k logical indicator regime pipe (.e. acceptor's incoming edge): TRUE pipe operated 5000 hours per year. Type: assert_logical. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double.","code":""},{"path":"/reference/m325testbench.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"test bench next configuration: may seen figure particularity topology provided directed graph: node single ancestor. Hence one isomorphic representation directed graph data.frame row describes node along incoming edge column contains attribute value node attribute value incoming edge. Since deal incoming edges hence nodes flow acceptors natural enumeration nodes acceptor id. Note leverage igraph functionality plotting zero sender flow.","code":""},{"path":[]},{"path":"/reference/m325testbench.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"","code":"library(pipenostics) # Do not hesitate to use `data.table` and `igraph` for larger chunks of network. # Check for declared topology isomorphism: stopifnot( all(!duplicated(m325testbench$acceptor)) ) # Do all terminal nodes have sensor-measured regime parameters?: terminal_nodes <- subset(m325testbench, !(acceptor %in% sender)) stopifnot( all(!is.na(subset(terminal_nodes, select = c(temperature, pressure, flow_rate)))) )"},{"path":"/reference/m325tracebw.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow rate, ) bunched pipeline flow direction using norms heat loss values prescribed Minenergo Order 325. Algorithm also suits partially measurable district heating network massive data lack conditions, temperature pressure sensor readings majority terminal nodes.","code":""},{"path":"/reference/m325tracebw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"","code":"m325tracebw( sender = 6, acceptor = 7, temperature = 70, pressure = pipenostics::mpa_kgf(6), flow_rate = 20, d = 100, len = 72.446, year = 1986, insulation = 0, laying = \"tunnel\", beta = FALSE, exp5k = TRUE, roughness = 0.001, inlet = 0.5, outlet = 1, method = \"romeo\", opinion = \"median\", verbose = TRUE, csv = FALSE, file = \"m325tracebw.csv\" )"},{"path":"/reference/m325tracebw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Sensor-measured temperature heat carrier (water) sensor-measured terminal acceptor node, [°C]. Use NA_float_s (terminal) nodes without temperature sensor. Type: assert_double. pressure Sensor-measured absolute pressure heat carrier (water) inside pipe (.e. acceptor's incoming edge), [MPa]. Type: assert_double. flow_rate Sensor-measured amount heat carrier (water) terminal node transferred pipe (.e. acceptor's incoming edge) period, [ton/hour]. Type: assert_double. Use NA_float_s nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [mm]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. year year pipe (.e. acceptor's incoming edge) put operation laying total overhaul. Type: assert_integerish. insulation identifier insulation covers exterior pipe (.e. acceptor's incoming edge): 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_subset. laying type pipe laying depicting position pipe space. five types pipe laying considered: air, channel, room, tunnel, underground. Type: assert_subset. beta logical indicator: consider additional heat loss fittings located pipe (.e. acceptor's incoming edge)? Type: assert_logical. exp5k logical indicator regime pipe (.e. acceptor's incoming edge): TRUE pipe operated 5000 hours per year. Type: assert_logical. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. method method determining Darcy friction factor: romeo vatankhan buzelli Type: assert_choice. details see dropp. opinion method aggregating values regime parameters node next tracing step: mean values parameter averaged next tracing step median median parameter values used next tracing step Type: assert_choice. verbose logical indicator: watch tracing process console? Type: assert_flag. csv logical indicator: incrementally dump results csv- file tracing? Type: assert_flag. file name csv-file dump results . Type: assert_character length 1 can used safely create file write .","code":""},{"path":"/reference/m325tracebw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"data.frame containing results (detailed log) tracing narrow format: node Tracing job. Identifier node regime parameters calculated . Values vector identical argument acceptor. Type: assert_character. tracing Tracing job. Identifiers nodes regime parameters traced given node. Identifier sensor used values regime parameters node sensor readings. Type: assert_character. backward Tracing job. Identifier tracing direction. constantly equals TRUE. Type: assert_logical. aggregation Tracing job. Identifier aggregation method: span, median, mean, identity. Type: assert_character. loss Traced thermal hydraulic regime. Normative specific heat loss power adjacent pipe, [kcal/m/h]. Type: assert_double. flux Traced thermal hydraulic regime. Normative heat flux adjacent pipe, [W/m^2]. Type: assert_double. Q Traced thermal hydraulic regime. Normative heat loss adjacent pipe per day, [kcal]. Type: assert_character. temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water) associated node, [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) associated node, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) associated node, [ton/hour]. Type: assert_double. job Tracing job. Value tracing job counter. Type: assert_count. Type: assert_data_frame.","code":""},{"path":"/reference/m325tracebw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"consider topology district heating network represented m325testbench: network may partially sensor-equipped : latter case two nodes must equipped pressure temperature sensors whereas nodes flow rate sensors must installed. Tracing starts sensor-equipped nodes goes backwards, .e flow direction. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench. tracing starts next node, previously calculated values thermal-hydraulic parameters aggregated either averaging median. latter seems robust avoiding strong influence possible outliers may come actual heating transfer anomalies, erroneous sensor readings wrong pipeline specifications. Aggregation values flow rate node always sum.","code":""},{"path":[]},{"path":"/reference/m325tracebw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"","code":"library(pipenostics) ## It is possible to run without specification of argument values: m325tracebw() #> #> 2024-04-02 16:26:19.862129 m325tracebw | start backward tracing; segments 1; #> 2024-04-02 16:26:19.862129 m325tracebw | start job; job 0; #> 2024-04-02 16:26:19.862129 m325tracebw | now process; 1 node(s); [7] #> 2024-04-02 16:26:19.862129 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:19.862129 m325tracebw | tracing loss;; #> 2024-04-02 16:26:19.862129 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[7]; #> 2024-04-02 16:26:19.862129 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:19.862129 m325tracebw | OK! Heat flux traced from 1 nodes;[7]; #> 2024-04-02 16:26:19.862129 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:19.862129 m325tracebw | OK! Heat loss per day traced from 1 nodes;[7]; #> 2024-04-02 16:26:19.862129 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:19.862129 m325tracebw | OK! Temperature traced from 1 nodes;[7]; #> 2024-04-02 16:26:19.862129 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:19.862129 m325tracebw | OK! Pressure traced from 1 nodes;[7]; #> 2024-04-02 16:26:19.862129 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:19.862129 m325tracebw | finish job; job 0; processed node(s) 1 #> 2024-04-02 16:26:19.862129 m325tracebw | finish backward tracing;; #> node tracing backward aggregation loss flux Q temperature #> 1 7 sensor TRUE identity 78.4 279.0696 136314.4 70 #> span 7 sensor TRUE span 0.0 0.0000 0.0 0 #> median 7 sensor TRUE median 78.4 279.0696 136314.4 70 #> mean 7 sensor TRUE mean 78.4 279.0696 136314.4 70 #> pressure flow_rate job #> 1 0.588399 20 0 #> span 0.000000 20 0 #> median 0.588399 20 0 #> mean 0.588399 20 0 ## Consider isomorphic representation of District Heating Network graph: DHN <- pipenostics::m325testbench DHN$d <- 1e3*DHN$d # convert [m] to [mm] ## When tracing large network graphs put screen log to file output <- do.call(\"m325tracebw\", c(as.list(DHN), verbose = TRUE)) #> #> 2024-04-02 16:26:19.911578 m325tracebw | start backward tracing; segments 26; #> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 0; #> 2024-04-02 16:26:19.911578 m325tracebw | now process; 13 node(s); [1,10,15,17,19,2,21,24,25,26,3,7,9] #> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [13/13] are TP-sensor-equipped; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 0; processed node(s) 13 #> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 1; #> 2024-04-02 16:26:19.911578 m325tracebw | now process; 5 node(s); [14,22,23,4,5] #> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 1; processed node(s) 5 #> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 2; #> 2024-04-02 16:26:19.911578 m325tracebw | now process; 2 node(s); [20,6] #> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 2; processed node(s) 2 #> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 3; #> 2024-04-02 16:26:19.911578 m325tracebw | now process; 2 node(s); [18,8] #> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 3; processed node(s) 2 #> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 4; #> 2024-04-02 16:26:19.911578 m325tracebw | now process; 2 node(s); [11,16] #> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 4; processed node(s) 2 #> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 5; #> 2024-04-02 16:26:19.911578 m325tracebw | now process; 1 node(s); [13] #> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[13]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 1 nodes;[13]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 1 nodes;[13]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 1 nodes;[13]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 1 nodes;[13]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 5; processed node(s) 1 #> 2024-04-02 16:26:19.911578 m325tracebw | start job; job 6; #> 2024-04-02 16:26:19.911578 m325tracebw | now process; 1 node(s); [12] #> 2024-04-02 16:26:19.911578 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing loss;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[12]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat flux traced from 1 nodes;[12]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Heat loss per day traced from 1 nodes;[12]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Temperature traced from 1 nodes;[12]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:19.911578 m325tracebw | OK! Pressure traced from 1 nodes;[12]; #> 2024-04-02 16:26:19.911578 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:19.911578 m325tracebw | finish job; job 6; processed node(s) 1 #> 2024-04-02 16:26:19.911578 m325tracebw | finish backward tracing;; ## Distinct options for opinion aggregation lead to distinct traced ## temperature and pressure: ## * When aggregation is by mean: output_mean <- do.call( \"m325tracebw\", c(as.list(DHN), verbose = FALSE, opinion = \"mean\") ) ## * When aggregation is by median: output_median <- do.call( \"m325tracebw\", c(as.list(DHN), verbose = FALSE, opinion = \"median\") ) ## The differences between aggregations should be: aggregation_differences <- c(delta_t = 0.03732, delta_p = 0.00139, delta_g = 0) print(aggregation_differences) #> delta_t delta_p delta_g #> 0.03732 0.00139 0.00000 ## Check: stopifnot( round( subset( output_mean, node == 13 & aggregation == \"median\", c(\"temperature\", \"pressure\", \"flow_rate\") ) - subset( output_median, node == 13 & aggregation == \"median\", c(\"temperature\", \"pressure\", \"flow_rate\") ), 5 # difference between aggregation options ) == aggregation_differences ) ## It is possible to process partially measurable District Heating Network: ## * Simulate lack of temperature and pressure sensors: DHN[c(7, 10, 21, 24), c(\"temperature\", \"pressure\")] <- NA_real_ ## Trace thermal-hydraulic regime output <- do.call(\"m325tracebw\", c(as.list(DHN))) #> #> 2024-04-02 16:26:20.394336 m325tracebw | start backward tracing; segments 26; #> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 0; #> 2024-04-02 16:26:20.394336 m325tracebw | now process; 13 node(s); [1,10,15,17,19,2,21,24,25,26,3,7,9] #> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [9/13] are TP-sensor-equipped; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 0; processed node(s) 13 #> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 1; #> 2024-04-02 16:26:20.394336 m325tracebw | now process; 5 node(s); [14,22,23,4,5] #> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 1; processed node(s) 5 #> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 2; #> 2024-04-02 16:26:20.394336 m325tracebw | now process; 2 node(s); [20,6] #> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 2 nodes;[6,20]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 2; processed node(s) 2 #> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 3; #> 2024-04-02 16:26:20.394336 m325tracebw | now process; 2 node(s); [18,8] #> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 2 nodes;[8,18]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 3; processed node(s) 2 #> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 4; #> 2024-04-02 16:26:20.394336 m325tracebw | now process; 2 node(s); [11,16] #> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 2 nodes;[11,16]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 4; processed node(s) 2 #> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 5; #> 2024-04-02 16:26:20.394336 m325tracebw | now process; 1 node(s); [13] #> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[13]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 1 nodes;[13]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 1 nodes;[13]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 1 nodes;[13]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 1 nodes;[13]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 5; processed node(s) 1 #> 2024-04-02 16:26:20.394336 m325tracebw | start job; job 6; #> 2024-04-02 16:26:20.394336 m325tracebw | now process; 1 node(s); [12] #> 2024-04-02 16:26:20.394336 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing loss;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[12]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat flux traced from 1 nodes;[12]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Heat loss per day traced from 1 nodes;[12]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Temperature traced from 1 nodes;[12]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:20.394336 m325tracebw | OK! Pressure traced from 1 nodes;[12]; #> 2024-04-02 16:26:20.394336 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:20.394336 m325tracebw | finish job; job 6; processed node(s) 1 #> 2024-04-02 16:26:20.394336 m325tracebw | finish backward tracing;; print(output) #> node tracing backward aggregation loss flux Q #> 1 1 sensor TRUE identity 96.23600 230.5891783 92028.56208 #> 2 2 sensor TRUE identity 96.28800 230.7137745 92078.28864 #> 3 3 sensor TRUE identity 70.58400 314.8168839 130903.39238 #> 7 7 sensor TRUE identity NA NA NA #> 9 9 sensor TRUE identity 28.11520 125.3986690 20296.25042 #> 10 10 sensor TRUE identity NA NA NA #> 15 15 sensor TRUE identity 96.60000 231.4613515 184405.53600 #> 17 17 sensor TRUE identity 24.95960 174.3378130 13114.57255 #> 19 19 sensor TRUE identity 28.16580 125.6243538 35131.99098 #> 21 21 sensor TRUE identity NA NA NA #> 24 24 sensor TRUE identity NA NA NA #> 25 25 sensor TRUE identity 96.23600 230.5891783 58792.49712 #> 26 26 sensor TRUE identity 70.54000 314.6206363 130821.79104 #> span.1 1 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.10 10 sensor TRUE span NA NA NA #> span.15 15 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.17 17 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.19 19 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.2 2 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.21 21 sensor TRUE span NA NA NA #> span.24 24 sensor TRUE span NA NA NA #> span.25 25 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.26 26 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.3 3 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.7 7 sensor TRUE span NA NA NA #> span.9 9 sensor TRUE span 0.00000 0.0000000 0.00000 #> median.1 1 sensor TRUE median 96.23600 230.5891783 92028.56208 #> median.10 10 sensor TRUE median NA NA NA #> median.15 15 sensor TRUE median 96.60000 231.4613515 184405.53600 #> median.17 17 sensor TRUE median 24.95960 174.3378130 13114.57255 #> median.19 19 sensor TRUE median 28.16580 125.6243538 35131.99098 #> median.2 2 sensor TRUE median 96.28800 230.7137745 92078.28864 #> median.21 21 sensor TRUE median NA NA NA #> median.24 24 sensor TRUE median NA NA NA #> median.25 25 sensor TRUE median 96.23600 230.5891783 58792.49712 #> median.26 26 sensor TRUE median 70.54000 314.6206363 130821.79104 #> median.3 3 sensor TRUE median 70.58400 314.8168839 130903.39238 #> median.7 7 sensor TRUE median NA NA NA #> median.9 9 sensor TRUE median 28.11520 125.3986690 20296.25042 #> mean.1 1 sensor TRUE mean 96.23600 230.5891783 92028.56208 #> mean.10 10 sensor TRUE mean NA NA NA #> mean.15 15 sensor TRUE mean 96.60000 231.4613515 184405.53600 #> mean.17 17 sensor TRUE mean 24.95960 174.3378130 13114.57255 #> mean.19 19 sensor TRUE mean 28.16580 125.6243538 35131.99098 #> mean.2 2 sensor TRUE mean 96.28800 230.7137745 92078.28864 #> mean.21 21 sensor TRUE mean NA NA NA #> mean.24 24 sensor TRUE mean NA NA NA #> mean.25 25 sensor TRUE mean 96.23600 230.5891783 58792.49712 #> mean.26 26 sensor TRUE mean 70.54000 314.6206363 130821.79104 #> mean.3 3 sensor TRUE mean 70.58400 314.8168839 130903.39238 #> mean.7 7 sensor TRUE mean NA NA NA #> mean.9 9 sensor TRUE mean 28.11520 125.3986690 20296.25042 #> 14 4 1 TRUE identity 96.23600 230.5891783 92028.56208 #> 22 4 2 TRUE identity 96.28800 230.7137745 92078.28864 #> 31 5 3 TRUE identity 70.58400 314.8168839 130903.39238 #> 4 6 7 TRUE identity NA NA NA #> 5 6 9 TRUE identity 28.11520 125.3986690 20296.25042 #> 6 11 10 TRUE identity NA NA NA #> 71 14 15 TRUE identity 96.60000 231.4613515 184405.53600 #> 8 16 17 TRUE identity 24.95960 174.3378130 13114.57255 #> 91 20 19 TRUE identity 28.16580 125.6243538 35131.99098 #> 101 20 21 TRUE identity NA NA NA #> 11 22 24 TRUE identity NA NA NA #> 12 22 25 TRUE identity 96.23600 230.5891783 58792.49712 #> 13 23 26 TRUE identity 70.54000 314.6206363 130821.79104 #> span.14 14 15 TRUE span 0.00000 0.0000000 0.00000 #> span.22 22 24|25 TRUE span 0.00000 0.0000000 0.00000 #> span.23 23 26 TRUE span 0.00000 0.0000000 0.00000 #> span.4 4 1|2 TRUE span 0.05200 0.1245962 49.72656 #> span.5 5 3 TRUE span 0.00000 0.0000000 0.00000 #> median.14 14 15 TRUE median 96.60000 231.4613515 184405.53600 #> median.22 22 24|25 TRUE median 96.23600 230.5891783 58792.49712 #> median.23 23 26 TRUE median 70.54000 314.6206363 130821.79104 #> median.4 4 1|2 TRUE median 96.26200 230.6514764 92053.42536 #> median.5 5 3 TRUE median 70.58400 314.8168839 130903.39238 #> mean.14 14 15 TRUE mean 96.60000 231.4613515 184405.53600 #> mean.22 22 24|25 TRUE mean 96.23600 230.5891783 58792.49712 #> mean.23 23 26 TRUE mean 70.54000 314.6206363 130821.79104 #> mean.4 4 1|2 TRUE mean 96.26200 230.6514764 92053.42536 #> mean.5 5 3 TRUE mean 70.58400 314.8168839 130903.39238 #> 16 8 4 TRUE identity 116.04494 208.5397467 39756.99751 #> 23 6 5 TRUE identity 70.73402 315.4859839 61399.38989 #> 32 13 14 TRUE identity 96.73317 231.7804483 158611.45156 #> 41 18 22 TRUE identity 115.97953 208.4221937 85759.90298 #> 51 20 23 TRUE identity 70.68993 315.2893289 88173.52308 #> span.20 20 19|21|23 TRUE span 42.52413 189.6649751 53041.53210 #> span.6 6 7|9|5 TRUE span 42.61882 190.0873149 41103.13947 #> median.20 20 19|21|23 TRUE median 49.42786 220.4568413 61652.75703 #> median.6 6 7|9|5 TRUE median 49.42461 220.4423265 40847.82015 #> mean.20 20 19|21|23 TRUE mean 49.42786 220.4568413 61652.75703 #> mean.6 6 7|9|5 TRUE mean 49.42461 220.4423265 40847.82015 #> 18 8 6 TRUE identity 96.17197 230.4357489 139602.45716 #> 27 18 20 TRUE identity 96.20009 230.5031329 154140.24832 #> span.18 18 22|20 TRUE span 19.77944 22.0809391 68380.34534 #> span.8 8 4|6 TRUE span 19.87298 21.8960022 99845.45965 #> median.18 18 22|20 TRUE median 106.08981 219.4626633 119950.07565 #> median.8 8 4|6 TRUE median 106.10845 219.4877478 89679.72734 #> mean.18 18 22|20 TRUE mean 106.08981 219.4626633 119950.07565 #> mean.8 8 4|6 TRUE mean 106.10845 219.4877478 89679.72734 #> 110 11 8 TRUE identity 115.99003 208.4410581 83512.81904 #> 28 16 18 TRUE identity 115.99053 208.4419636 85768.03774 #> span.11 11 10|8 TRUE span 0.00000 0.0000000 0.00000 #> span.16 16 17|18 TRUE span 91.03093 34.1041506 72653.46519 #> median.11 11 10|8 TRUE median 115.99003 208.4410581 83512.81904 #> median.16 16 17|18 TRUE median 70.47507 191.3898883 49441.30514 #> mean.11 11 10|8 TRUE mean 115.99003 208.4410581 83512.81904 #> mean.16 16 17|18 TRUE mean 70.47507 191.3898883 49441.30514 #> 111 13 11 TRUE identity 116.01115 208.4790258 83528.03095 #> 29 13 16 TRUE identity 116.70069 209.7181600 84024.49548 #> span 13 14|11|16 TRUE span 19.96751 23.3014225 75083.42061 #> median 13 14|11|16 TRUE median 116.01115 209.7181600 84024.49548 #> mean 13 14|11|16 TRUE mean 109.81501 216.6592114 108721.32600 #> 112 12 13 TRUE identity 153.15787 184.6846436 363101.77810 #> span1 12 13 TRUE span 0.00000 0.0000000 0.00000 #> median1 12 13 TRUE median 153.15787 184.6846436 363101.77810 #> mean1 12 13 TRUE mean 153.15787 184.6846436 363101.77810 #> temperature pressure flow_rate job #> 1 69.30000000 5.883990e-01 30 0 #> 2 69.40000000 5.883990e-01 30 0 #> 3 68.60000000 5.883990e-01 16 0 #> 7 NA NA 20 0 #> 9 69.20000000 5.883990e-01 16 0 #> 10 NA NA 10 0 #> 15 70.00000000 5.883990e-01 30 0 #> 17 71.40000000 5.883990e-01 10 0 #> 19 69.30000000 5.883990e-01 16 0 #> 21 NA NA 20 0 #> 24 NA NA 30 0 #> 25 69.30000000 5.883990e-01 30 0 #> 26 68.50000000 5.883990e-01 16 0 #> span.1 0.00000000 0.000000e+00 30 0 #> span.10 NA NA 10 0 #> span.15 0.00000000 0.000000e+00 30 0 #> span.17 0.00000000 0.000000e+00 10 0 #> span.19 0.00000000 0.000000e+00 16 0 #> span.2 0.00000000 0.000000e+00 30 0 #> span.21 NA NA 20 0 #> span.24 NA NA 30 0 #> span.25 0.00000000 0.000000e+00 30 0 #> span.26 0.00000000 0.000000e+00 16 0 #> span.3 0.00000000 0.000000e+00 16 0 #> span.7 NA NA 20 0 #> span.9 0.00000000 0.000000e+00 16 0 #> median.1 69.30000000 5.883990e-01 30 0 #> median.10 NA NA 10 0 #> median.15 70.00000000 5.883990e-01 30 0 #> median.17 71.40000000 5.883990e-01 10 0 #> median.19 69.30000000 5.883990e-01 16 0 #> median.2 69.40000000 5.883990e-01 30 0 #> median.21 NA NA 20 0 #> median.24 NA NA 30 0 #> median.25 69.30000000 5.883990e-01 30 0 #> median.26 68.50000000 5.883990e-01 16 0 #> median.3 68.60000000 5.883990e-01 16 0 #> median.7 NA NA 20 0 #> median.9 69.20000000 5.883990e-01 16 0 #> mean.1 69.30000000 5.883990e-01 30 0 #> mean.10 NA NA 10 0 #> mean.15 70.00000000 5.883990e-01 30 0 #> mean.17 71.40000000 5.883990e-01 10 0 #> mean.19 69.30000000 5.883990e-01 16 0 #> mean.2 69.40000000 5.883990e-01 30 0 #> mean.21 NA NA 20 0 #> mean.24 NA NA 30 0 #> mean.25 69.30000000 5.883990e-01 30 0 #> mean.26 68.50000000 5.883990e-01 16 0 #> mean.3 68.60000000 5.883990e-01 16 0 #> mean.7 NA NA 20 0 #> mean.9 69.20000000 5.883990e-01 16 0 #> 14 69.42782396 5.895532e-01 30 1 #> 22 69.52789112 5.895532e-01 30 1 #> 31 68.94094679 6.031489e-01 16 1 #> 4 NA NA 20 1 #> 5 69.25285830 5.941420e-01 16 1 #> 6 NA NA 10 1 #> 71 70.25610481 5.907037e-01 30 1 #> 8 71.45462914 6.055378e-01 10 1 #> 91 69.39149422 5.983225e-01 16 1 #> 101 NA NA 20 1 #> 11 NA NA 30 1 #> 12 69.38166041 5.891363e-01 30 1 #> 13 68.84073921 6.031483e-01 16 1 #> span.14 0.00000000 0.000000e+00 30 1 #> span.22 0.00000000 0.000000e+00 60 1 #> span.23 0.00000000 0.000000e+00 16 1 #> span.4 0.10006716 5.248280e-08 60 1 #> span.5 0.00000000 0.000000e+00 16 1 #> median.14 70.25610481 5.907037e-01 30 1 #> median.22 69.38166041 5.891363e-01 60 1 #> median.23 68.84073921 6.031483e-01 16 1 #> median.4 69.47785754 5.895532e-01 60 1 #> median.5 68.94094679 6.031489e-01 16 1 #> mean.14 70.25610481 5.907037e-01 30 1 #> mean.22 69.38166041 5.891363e-01 60 1 #> mean.23 68.84073921 6.031483e-01 16 1 #> mean.4 69.47785754 5.895532e-01 60 1 #> mean.5 68.94094679 6.031489e-01 16 1 #> 16 69.50546725 5.899445e-01 60 2 #> 23 69.10085892 6.119730e-01 16 2 #> 32 70.47637808 5.926835e-01 30 2 #> 41 69.44121822 5.899809e-01 60 2 #> 51 69.07038683 6.178683e-01 16 2 #> span.20 0.32110739 1.954581e-02 52 2 #> span.6 0.15199938 1.783100e-02 52 2 #> median.20 69.23094052 6.080954e-01 52 2 #> median.6 69.17685861 6.030575e-01 52 2 #> mean.20 69.23094052 6.080954e-01 52 2 #> mean.6 69.17685861 6.030575e-01 52 2 #> 18 69.28872816 6.111791e-01 52 3 #> 27 69.35445917 6.138828e-01 52 3 #> span.18 0.08675905 2.390186e-02 112 3 #> span.8 0.21673909 2.123458e-02 112 3 #> median.18 69.39783870 6.019318e-01 112 3 #> median.8 69.39709771 6.005618e-01 112 3 #> mean.18 69.39783870 6.019318e-01 112 3 #> mean.8 69.39709771 6.005618e-01 112 3 #> 110 69.42816779 6.034192e-01 112 4 #> 28 69.42974784 6.048664e-01 112 4 #> span.11 0.00000000 0.000000e+00 122 4 #> span.16 2.02488130 6.714490e-04 122 4 #> median.11 69.42816779 6.034192e-01 122 4 #> median.16 70.44218849 6.052021e-01 122 4 #> mean.11 69.42816779 6.034192e-01 122 4 #> mean.16 70.44218849 6.052021e-01 122 4 #> 111 69.45669626 6.068087e-01 122 5 #> 29 70.47088211 6.085935e-01 122 5 #> span 1.01968183 1.591000e-02 274 5 #> median 70.47088211 6.068087e-01 274 5 #> mean 70.13465215 6.026953e-01 274 5 #> 112 70.52609184 6.142191e-01 274 6 #> span1 0.00000000 0.000000e+00 274 6 #> median1 70.52609184 6.142191e-01 274 6 #> mean1 70.52609184 6.142191e-01 274 6"},{"path":"/reference/m325tracefw.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow rate, ) bunched pipeline along flow direction using norms heat loss values prescribed Minenergo Order 325.","code":""},{"path":"/reference/m325tracefw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"","code":"m325tracefw( sender = c(0, 1), acceptor = c(1, 2), temperature = c(70, NA_real_), pressure = c(pipenostics::mpa_kgf(6), NA_real_), flow_rate = c(20, NA_real_), d = rep_len(100, 2), len = rep_len(72.446, 2), year = rep_len(1986, 2), insulation = rep_len(0, 2), laying = rep_len(\"tunnel\", 2), beta = rep_len(FALSE, 2), exp5k = rep_len(TRUE, 2), roughness = rep_len(0.001, 2), inlet = c(0.5, 1), outlet = c(1, 1), elev_tol = 0.1, method = \"romeo\", verbose = TRUE, csv = FALSE, file = \"m325tracefw.csv\", use_cluster = FALSE )"},{"path":"/reference/m325tracefw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Sensor-measured temperature heat carrier (water) sensor-measured root node, [°C]. Use NA_float_s nodes without temperature sensor. Type: assert_double. pressure Sensor-measured absolute pressure heat carrier (water) inside pipe root node, [MPa]. Use NA_float_s nodes without pressure sensor. Type: assert_double. flow_rate Sensor-measured amount heat carrier (water) root node transferred pipe period, [ton/hour]. Type: assert_double. Use NA_float_s nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [mm]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. year year pipe (.e. acceptor's incoming edge) put operation laying total overhaul. Type: assert_integerish. insulation identifier insulation covers exterior pipe (.e. acceptor's incoming edge): 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_subset. laying type pipe laying depicting position pipe space. five types pipe laying considered: air, channel, room, tunnel, underground. Type: assert_subset. beta logical indicator: consider additional heat loss fittings located pipe (.e. acceptor's incoming edge)? Type: assert_logical. exp5k logical indicator regime pipe (.e. acceptor's incoming edge): TRUE pipe operated 5000 hours per year. Type: assert_logical. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. elev_tol maximum allowed discrepancy adjacent outlet inlet elevations two subsequent pipes traced path, [m]. Type: assert_number. method method determining Darcy friction factor: romeo vatankhan buzelli Type: assert_choice. details see dropp. verbose logical indicator: watch tracing process console? Type: assert_flag. csv logical indicator: incrementally dump results csv- file tracing? Type: assert_flag. file name csv-file dump results . Type: assert_character length 1 can used safely create file write . use_cluster utilize functionality parallel processing multi-core CPU. Type: assert_flag.","code":""},{"path":"/reference/m325tracefw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"data.frame containing results (detailed log) tracing narrow format: node Tracing job. Identifier node regime parameters calculated . Values vector identical argument acceptor. Type: assert_character. tracing Tracing job. Identifiers nodes regime parameters traced given node. Identifier sensor used values regime parameters node sensor readings. Type: assert_character. backward Tracing job. Identifier tracing direction. constantly equals FALSE. Type: assert_logical. aggregation Tracing job. Identifier aggregation method associated traced values. forward tracing option identity. Type: assert_character. temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water) associated node, [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) associated node, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) associated node, [ton/hour]. Type: assert_double. job Tracing job. Value tracing job counter. forward tracing value job counts number traced paths root node. Type: assert_count. Type: assert_data_frame.","code":""},{"path":"/reference/m325tracefw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"calculated (values ) regime may considered representation district heating process conditions hypothetically perfect technical state pipe walls insulation. consider topology district heating network represented m325testbench: Tracing starts sensor-equipped root node goes forward, .e along flow direction. Function m325traceline serves hood tracing identified linear segments root node every terminal node. Hence need root node equipped sensors. Sensors nodes redundant forward tracing, since tracing algorithm means consider tracing. Moreover forward tracing algorithm assume flow heat carrier distributed proportionally cross-sectional area outgoing pipeline. Actually, lot reasons may cause significant deviations assumption. result, sequence paired backward/forward tracing may divergent regime parameters. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench. welcome couple algorithm functionality data.table.","code":""},{"path":[]},{"path":"/reference/m325tracefw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"","code":"library(pipenostics) # Minimum two nodes should be in district heating network graph: m325tracefw(verbose = FALSE) #> node tracing backward aggregation loss flux Q temperature #> 1 1 sensor FALSE identity NA NA NA 70.00000 #> 2 2 1 FALSE identity 78.4 279.0696 136314.4 69.71603 #> pressure flow_rate job #> 1 0.5883990 20 0 #> 2 0.5813153 20 1 # Consider isomorphic representation of District Heating Network graph: DHN <- pipenostics::m325testbench # * avoid using numeric identifiers for nodes: DHN$sender <- sprintf(\"N%02i\", DHN$sender) DHN$acceptor <- sprintf(\"N%02i\", DHN$acceptor) # * alter units: DHN$d <- 1e3 * DHN$d # convert [m] to [mm] # Perform backward tracing to get regime on root node: bw_report <- do.call(\"m325tracebw\", c(as.list(DHN), verbose = FALSE)) # Put the traced values to the root node of test bench: root_node_idx <- 12 root_node <- sprintf(\"N%02i\", root_node_idx) regime_param <- c(\"temperature\", \"pressure\", \"flow_rate\") DHN[root_node_idx, regime_param] <- subset(bw_report, node == root_node & aggregation == \"median\", regime_param) rm(root_node, root_node_idx) # Trace the test bench forward for the first time: fw_report <- do.call(\"m325tracefw\", c(as.list(DHN), verbose = FALSE, elev_tol = .5)) # Let's compare traced regime at terminal nodes back to test bench: report <- subset( rbind(bw_report, fw_report), node %in% subset(DHN, !(acceptor %in% sender))$acceptor & aggregation == \"identity\" ) regime_delta <- colMeans( subset(report, backward, regime_param) - subset(report, !backward, regime_param) ) print(regime_delta) #> temperature pressure flow_rate #> -4.640201e-01 -5.208802e-03 -5.465713e-16 stopifnot(sqrt(regime_delta %*% regime_delta) < 0.5)"},{"path":"/reference/m325traceline.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow_rate, ) along adjacent linear segments pipeline using norms heat loss values prescribed Minenergo Order 325.","code":""},{"path":"/reference/m325traceline.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"","code":"m325traceline( temperature = 130, pressure = mpa_kgf(6), flow_rate = 250, g = 0, d = 700, len = c(600, 530, 300, 350), year = 1986, insulation = 0, laying = \"underground\", beta = FALSE, exp5k = TRUE, roughness = 0.006, inlet = 0, outlet = 0, elev_tol = 0.1, method = \"romeo\", forward = TRUE, absg = TRUE )"},{"path":"/reference/m325traceline.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"temperature Traced thermal hydraulic regime. Sensor-measured temperature heat carrier (water) inside pipe sensor-measured inlet (forward tracing) outlet (backward tracing) path, [°C]. Type: assert_number. pressure Traced thermal hydraulic regime. Sensor-measured absolute pressure heat carrier (water) sensor-measured inlet (forward tracing) outlet (backward tracing) path, [MPa]. Type: assert_number. flow_rate Traced thermal hydraulic regime. Amount heat carrier (water) sensor-measured inlet (forward tracing) outlet (backward tracing) path, [ton/hour]. Type: assert_number. g amount heat carrier discharge network pipe segment tracing path enumerated along direction flow. flag absg TRUE treat argument g absolute value [ton/hour], otherwise percentage flow_rate pipe segment. Type: assert_double. d internal diameters subsequent pipes tracing path enumerated along direction flow, [mm]. Type: assert_double. len length subsequent pipes tracing path enumerated along direction flow, [m]. Type: assert_double. year year pipe put operation laying total overhaul pipe tracing path enumerated along direction flow. Type: assert_integerish. insulation insulation covers exterior pipe: 0 insulation 1 foamed polyurethane analogue 2 polymer concrete pipe tracing path enumerated along direction flow. Type: assert_numeric assert_subset. laying type pipe laying depicting position pipe space: air channel room tunnel underground pipe tracing path enumerated along direction flow. Type: assert_character assert_subset. beta logical indicator: consider additional heat loss fittings? Logical value pipe tracing path enumerated along direction flow. Type: assert_logical. exp5k logical indicator regime pipe: pipe operated 5000 hours per year? Logical value pipe tracing path enumerated along direction flow. Type: assert_logical. roughness roughness internal wall pipe tracing path enumerated along direction flow, [m]. Type: assert_double. inlet elevation pipe inlet pipe tracing path enumerated along direction flow, [m]. Type: assert_double. outlet elevation pipe outlet pipe tracing path enumerated along direction flow, [m]. Type: assert_double. elev_tol maximum allowed discrepancy adjacent outlet inlet elevations two subsequent pipes traced path, [m]. Type: assert_number. method method determining Darcy friction factor romeo vatankhan buzelli Type: assert_choice. details see dropp. forward tracing direction flag: forward direction tracing? FALSE backward tracing performed. Type: assert_flag. absg Whether argument g (amount heat carrier discharge network) absolute value [ton/hour] (TRUE) percentage flow rate pipe segment (FALSE)? Type: assert_flag.","code":""},{"path":"/reference/m325traceline.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"list containing results (detailed log) tracing pipe tracing path enumerated along direction flow: temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water), [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) pipe tracing path enumerated along direction flow, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) pipe tracing path enumerated along direction flow, [ton/hour]. Type: assert_double. loss Traced thermal hydraulic regime. Normative specific heat loss power pipe tracing path enumerated along direction flow, [kcal/m/h]. Type: assert_double. flux Traced thermal hydraulic regime. Normative heat flux pipe tracing path enumerated along direction flow, [W/m^2]. Type: assert_double. Q Traced thermal hydraulic regime. Normative heat loss pipe tracing path enumerated along direction flow per day, [kcal]. Type: assert_double. Type: assert_list.","code":""},{"path":"/reference/m325traceline.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"calculated (values ) regime may considered representation district heating process conditions hypothetically perfect technical state pipe walls insulation. consider simple tracing paths contain rings kind parallelization. time bidirectional (forward backward) tracing possible accordance sensor position. also may consider discharges network inlet pipeline segment approximation actual forks flows. Relevant illustration adopted assumptions 4-segment tracing path depicted next figure. make additional check consistency inlet outlet values subsequent pipe segments. Discrepancy appropriate elevations elev_tol. Since inner diameter pipe used input, thickness pipe wall additionally considered heat flux calculations. Pipe wall thickness derived pipe diameter using GOST 30732 specifications.","code":""},{"path":[]},{"path":"/reference/m325traceline.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"","code":"library(pipenostics) # Consider 4-segment tracing path depicted in ?m325regtrace help page. # First, let sensor readings for forward tracing: t_fw <- 130 # [°C] p_fw <- mpa_kgf(6)*all.equal(.588399, mpa_kgf(6)) # [MPa] g_fw <- 250 # [ton/hour] # Let discharges to network for each pipeline segment are somehow determined as discharges <- seq(0, 30, 10) # [ton/hour] # Then the calculated regime (red squares) for forward tracing is regime_fw <- m325traceline(t_fw, p_fw, g_fw, discharges, forward = TRUE) print(regime_fw) #> $temperature #> [1] 129.1799 128.4269 127.9628 127.3367 #> #> $pressure #> [1] 0.5878607 0.5874226 0.5872143 0.5870330 #> #> $flow_rate #> [1] 250 240 220 190 #> #> $loss #> [1] 348.0000 347.1389 346.3483 345.8610 #> #> $flux #> [1] 181.9600 181.5097 181.0963 180.8415 #> #> $Q #> [1] 5011200 4415607 2493707 2905232 #> # $temperature # [1] 129.1799 128.4269 127.9628 127.3367 # # $pressure # [1] 0.5878607 0.5874226 0.5872143 0.5870330 # # $flow_rate # [1] 250 240 220 190 # # $loss # [1] 348.0000 347.1389 346.3483 345.8610 # # $flux # [1] 181.9600 181.5097 181.0963 180.8415 # # $Q # [1] 5011200 4415607 2493707 2905232 # Next consider values of traced regime as sensor readings for backward tracing: t_bw <- 127.3367 # [°C] p_bw <- .5870330 # [MPa] g_bw <- 190 # [ton/hour] # Then the calculated regime (red squares) for backward tracing is regime_bw <- m325traceline(t_bw, p_bw, g_bw, discharges, forward = FALSE) print(regime_bw) #> $temperature #> [1] 129.9953 129.1769 128.4254 127.9619 #> #> $pressure #> [1] 0.5883998 0.5878611 0.5874228 0.5872144 #> #> $flow_rate #> [1] 250 250 240 220 #> #> $loss #> [1] 347.1358 346.3467 345.8599 345.2035 #> #> $flux #> [1] 181.5081 181.0955 180.8410 180.4978 #> #> $Q #> [1] 4998755 4405529 2490192 2899710 #> # $temperature # [1] 129.9953 129.1769 128.4254 127.9619 # # $pressure # [1] 0.5883998 0.5878611 0.5874228 0.5872144 # # $flow_rate # [1] 250 250 240 220 # # $loss # [1] 347.1358 346.3467 345.8599 345.2035 # # $flux # [1] 181.5081 181.0955 180.8410 180.4978 # # $Q # [1] 4998755 4405529 2490192 2899710 # Let compare sensor readings with backward tracing results: tracing <- with(regime_bw, { lambda <- function(val, constraint) c(val, constraint, constraint - val, abs(constraint - val)*100/constraint) first <- 1 structure( rbind( lambda(temperature[first], t_fw), lambda(pressure[first], p_fw), lambda(flow_rate[first], g_fw) ), dimnames = list( c(\"temperature\", \"pressure\", \"flow_rate\"), c(\"sensor.value\", \"traced.value\", \"abs.discr\", \"rel.discr\") ) ) }) print(tracing) #> sensor.value traced.value abs.discr rel.discr #> temperature 129.9952943 130.000000 4.705723e-03 0.0036197868 #> pressure 0.5883998 0.588399 -8.215938e-07 0.0001396321 #> flow_rate 250.0000000 250.000000 0.000000e+00 0.0000000000 # sensor.value traced.value abs.discr rel.discr # temperature 129.9952943 130.000000 4.705723e-03 0.0036197868 # pressure 0.5883998 0.588399 -8.215938e-07 0.0001396321 # flow_rate 250.0000000 250.000000 0.000000e+00 0.0000000000"},{"path":"/reference/mepof.html","id":null,"dir":"Reference","previous_headings":"","what":"Probability of failure of the corroded pipe within maximum entropy — mepof","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"Calculate probability failure (POF) corroded pipe taking account actual level defectiveness exploiting Monte-Carlo simulation within Principle maximum entropy. Consistent estimate POF pipeline systems plays critical role optimizing operation. prevent pipeline failures due actively growing defects necessary able assess pipeline system failure operation probability certain period, taking account actual level defectiveness. pipeline limit state comes burst pressure, considered random variable, reaches unacceptable level, defect depth, also random variable, exceeds predetermined limit value. method consider two possible failures single pipeline cross section -surface longitudinally oriented defect metal-loss type: rupture decrease value failure pressure operating pressure. leak increase corrosion depth (defect) specified ultimate permissible fraction pipe wall thickness. Since now methods existed give absolutely correct POF assessments suggest simple fiddling random values affecting factors without deeping intrinsic mechanisms corrossion. purpose choose classical Monte-Carlo simulation within Principle maximum entropy. latter allows avoid doubtful excessive preferences detalization choosing probability distribution models failure factors inline inspection measurements.","code":""},{"path":"/reference/mepof.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"","code":"mepof( depth = seq(0, 10, length.out = 100), l = seq(40, 50, length.out = 100), d = rep.int(762, 100), wth = rep.int(10, 100), strength = rep.int(358.5274, 100), pressure = rep.int(0.588, 100), temperature = rep.int(150, 100), rar = function(n) stats::runif(n, 0.01, 0.3)/365, ral = function(n) stats::runif(n, 0.01, 0.3)/365, days = 0, k = 0.8, method = \"b31g\", n = 1e+06 )"},{"path":"/reference/mepof.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"depth maximum depth corroded area measured inline inspection, [mm]. Type: assert_double. l maximum longitudinal length corroded area measured inline inspection, [mm]. Type: assert_double. d nominal outside diameter pipe, [mm]. Type: assert_double. wth nominal wall thickness pipe, [mm]. Type: assert_double. strength one next characteristics steel strength, [MPa]: specified minimum yield stress (SMYS) use b31gpf b31gmodpf. ultimate tensile strength (UTS) specified minimum tensile strength (SMTS) use failure pressure codes (dnvpf, pcorrcpf, shell92pf). Type: assert_double. pressure absolute pressure substance (.e. heat carrier) inside pipe measured near defect position, [MPa]. cases nominal operating pressure. Type: assert_double. temperature temperature substance (.e. heat carrier) inside pipe measured near defect position, [°C]. case district heating network usually calculated value according actual normative thermal-hydraulic regime. Type: assert_double. rar random number generator simulating distribution radial corrosion rate pipe wall, [mm/day]. argument n function number observations generate. Type: assert_function. ral random number generator simulating distribution longitudinal corrosion rate pipe wall, [mm/day]. argument n function number observations generate. Type: assert_function. days number days passed preceded inline inspection, []. Negative values retrospective assumptions whereas positives failure prognosis. Type: assert_int. k alarm threshold leakage failure. usually 0.6, 0.7, 0.8, []. set 1 alarm failure occurs. Type: assert_number. method method calculating failure pressure: b31g - using b31gpf. b31gmod - using b31gmodpf. dnv - using dnvpf. pcorrc - using pcorrcpf. shell92 - using shell92pf. Type: assert_choice. n number observations generate Monte-Carlo simulations, Type: assert_count.","code":""},{"path":"/reference/mepof.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"Probability pipe failure corroded area measured inline inspection. Type: assert_double. NAs returned use another method calculating failure pressure.","code":""},{"path":"/reference/mepof.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"Since influence factors can less assume range limits, uniform distribution gets maximum entropy context (see JCGM 101:2008). parameters corrosion defects measured inline inspection well regime parameters engineering characteristics pipe segment - simulated runif. runif-limits depth corrosion defect associated precision commonly applied measurement instruments. traditionally exploited ultrasonic control limits well-known can reach 10 % pipe wall thickness. Whereas uncertainty defect longitudinal length may enough constrained 5 %. Recommendations choosing stochastic characteristics pipe engineering factors (.e. crossection diameter, wall thickness material strength) taken aggregated review Timashev et al. gently transformed compatibility Principle maximum entropy, .e. runif. Uncertainties regime parameters stohastic models set minimized regarding precision metering devices commonly applied district heating networks. temperature 2 °C. Since rate corrosion processes pipe wall consequence physical chemical processes occurring atomic scale, depends large number environmental factors differently ambiguously. various deterministic stochastic models can potentially involved POF assessment. purpose radial longitudinal corrosion rate can independently formulated random value generation functions. admit change depth length corrosion defects time close linear generated value corrosion rate.","code":""},{"path":"/reference/mepof.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7. BIPM. Guides Metrology (GUM). JCGM 101:2008. Evaluation measurement data – Supplement 1 Guide expression uncertainty measurement – Propagation distributions using Monte Carlo method.","code":""},{"path":"/reference/mepof.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"","code":"library(pipenostics) # \\donttest{ # Let's consider a pipe in district heating network with diameter <- 762 # [mm] wall_thickness <- 10 # [mm] UTS <- 434.3697 # [MPa] # which transfers heat-carrier (water) at operating_pressure <- 0.588399 # [MPa]. temperature <- 95 # [°C] # During inline inspection four corroded areas (defects) are detected with: depth <- c(2.45, 7.86, 7.93, 8.15) # [mm] # whereas the length of all defects is not greater 200 mm: length <- rep(200, 4) # [mm] # Corrosion rates in radial and in longitudinal directions are not well-known and # may vary in range .01 - .30 mm/year: rar = function(n) stats::runif(n, .01, .30) / 365 ral = function(n) stats::runif(n, .01, .30) / 365 # Then POFs related to each corroded area are near: pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\") #> pipenostics::mepof: process case [1/4] - 25 % processed. pipenostics::mepof: process case [2/4] - 50 % processed. pipenostics::mepof: process case [3/4] - 75 % processed. pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) #> [1] 0.000000 0.253115 0.368401 0.771517 # 0.000000 0.252510 0.368275 0.771595 # So, the POF of pipe is near print(max(pof)) #> [1] 0.771517 # 0.771595 # The value of POF changes in time. So, in a year after inline inspection of # the pipe we can get something near pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\", days = 365) #> pipenostics::mepof: process case [1/4] - 25 % processed. pipenostics::mepof: process case [2/4] - 50 % processed. pipenostics::mepof: process case [3/4] - 75 % processed. pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) #> [1] 0.000000 0.525791 0.648168 0.929161 # 0.000000 0.525539 0.648359 0.929099 # for entire pipe we get something near: print(max(pof)) #> [1] 0.929161 # 0.929099 # Two years ago before inline inspection the pipe state was rather good: pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\", days = -2 * 365) #> pipenostics::mepof: process case [1/4] - 25 % processed. pipenostics::mepof: process case [2/4] - 50 % processed. pipenostics::mepof: process case [3/4] - 75 % processed. pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) #> [1] 0.000000 0.041045 0.072768 0.271995 # 0.000000 0.040780 0.072923 0.271751 # for entire pipe we get something near: print(max(pof)) #> [1] 0.271995 # 0.271751 # }"},{"path":"/reference/meteos.html","id":null,"dir":"Reference","previous_headings":"","what":"Get list of weather stations (meteos) — meteos","title":"Get list of weather stations (meteos) — meteos","text":"Get list weather stations located primarily central northern parts Eurasia. weather station, following information provided: integer station ID, geographic coordinates, altitude, mean annual ground temperature averaged depth.","code":""},{"path":"/reference/meteos.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get list of weather stations (meteos) — meteos","text":"","code":"meteos()"},{"path":"/reference/meteos.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get list of weather stations (meteos) — meteos","text":"list weather stations (meteos) next fields: station_id Weather station unique identifier. Type: assert_integer. name Human-readable name weather station. Type: assert_character. lat Geographical position wether station. Latitude, [DD]. Type: assert_double. lon Geographical position wether station. Longitude, [DD]. Type: assert_double. alt Altitude - position weather station sea level, [m]. Type: assert_double. avg Mean annual ground temperature averaged depth, [°C]. Type: assert_double. Type: assert_data_frame.","code":""},{"path":"/reference/meteos.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Get list of weather stations (meteos) — meteos","text":"Climate Change Investigation Laboratory. Description array daily data soil temperature depths 320 centimeters meteorological stations Russian Federation.","code":""},{"path":[]},{"path":"/reference/meteos.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get list of weather stations (meteos) — meteos","text":"","code":"library(pipenostics) head(meteos()) #> station_id name lat lon alt avg #> 22217 22217 Kandalaksha 67.15 32.35 26 4.299446 #> 22408 22408 Kalevala 65.22 31.15 118 4.674742 #> 22471 22471 Mezen 65.87 44.22 14 3.544074 #> 22583 22583 Koinas 64.75 47.65 63 4.817047 #> 22981 22981 Velikiy-Ustyug 60.77 46.30 93 5.975453 #> 23405 23405 Ust-Tsilma 65.43 52.27 78 4.094936"},{"path":"/reference/mgtdh-iface.html","id":null,"dir":"Reference","previous_headings":"","what":"Get ground temperature — mgtdhid","title":"Get ground temperature — mgtdhid","text":"Get undisturbed (median) value ground temperature different depths specified time leveraging Modified Ground Temperature Double Harmonic Model (MGTDH-model).","code":""},{"path":"/reference/mgtdh-iface.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get ground temperature — mgtdhid","text":"","code":"mgtdhid(id, tau = 1440L, depth = 2.4) mgtdhidt(tau, id = 28434L, depth = 2.4) mgtdhgeo(lat, lon, tau = 1440L, depth = 2.4, use_cluster = FALSE) mgtdhgeot(tau, lat = 57, lon = 57, depth = 2.4)"},{"path":"/reference/mgtdh-iface.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get ground temperature — mgtdhid","text":"id weather station unique identifier. identifiers meteos dataset accepted. Type: assert_integer. mgtdhidt acceptable length 1. tau time point necessary obtain value soil temperature; can specified integer, representing number hours passed since beginning year, value POSIXct type. Type: assert_count, assert_posixct. mgtdhid acceptable length 1. depth depth ground temperature calculated, [m]. Type: assert_number. lat latitude geographical location value soil temperature needs determined, [DD]. Type: assert_double. mgtdhgeot acceptable length 1. lon longitude geographical location value soil temperature needs determined, [DD]. Type: assert_double. mgtdhgeot acceptable length 1. use_cluster utilize functionality parallel processing multi-core CPU. Type: assert_flag.","code":""},{"path":"/reference/mgtdh-iface.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get ground temperature — mgtdhid","text":"Undisturbed (median) ground temperature value calculated MGTDH-model, specifically location user-specified meteorological station, specified depth, time, [°C]. Type: assert_double.","code":""},{"path":"/reference/mgtdh-iface.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get ground temperature — mgtdhid","text":"MGTDH-model modified solution thermal conductivity equation soil can expressed formula $$t\\left( \\tau, d \\right) = \\beta e^{r_1} \\cdot A_1 \\cos(2 \\pi \\omega \\tau + r_1 - P_1) + \\beta r_2^{A_2 \\cdot d} \\cos(4 \\pi \\omega \\tau + r_2 - P_2)$$ \\(t\\left( \\tau, d \\right)\\) undisturbed (median) ground temperature [°C] specified depth \\(d\\) [m], time \\(\\tau\\) [hour]. \\(\\tau\\) time point (tau) calculated hours since beginning year, [hour]. \\(d\\) depth (depth) ground temperature calculated, [m]. \\(\\beta = -1\\) shift constant, []. \\(r_1(d) = -1000 d \\sqrt{\\frac{\\pi \\omega}{\\alpha_s D}}\\), \\(r_2(d) = r_1(d) \\sqrt{2}\\) temperature diffusivity factors, []. \\(\\omega = \\frac{1}{8760}\\) rate rotation Earth, expressed accuracy equal inverse hour, [1/hour]. \\(\\alpha_s\\) soil diffusivity, [mm^2/s]. \\(D = 86400\\) constant represents number seconds one day, [s/day]. \\(A_1\\), \\(A_2\\) harmonic temperature amplitudes, [°C]. \\(P_1\\), \\(P_2\\) phase shifts, depending geographical location, []. Soil diffusivity, \\(\\alpha_s\\), harmonic temperature amplitudes, \\(A_1\\), \\(A_2\\), phase shifts \\(P_1\\), \\(P_2\\) geographically dependant parameters values established weather station listed meteos-dataset. convenience using MGTDH-model, several interface functions provided. function generates vector type assert_double output. mgtdhid mgtdhidt functions used obtain ground temperature data specific meteorological stations. functions mgtdhgeo mgtdhgeot provide ground temperatures geographical location, note usage primarily limited Northern Asian part Eurasia, meteorological stations parameters MGTDH-model established . Ground temperature specified location obtained linear interpolation using barycentric coordinates formed system three nearest meteorological stations.","code":""},{"path":"/reference/mgtdh-iface.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Get ground temperature — mgtdhid","text":"Lu Xing & Jeffrey D. Spitler (2017) Prediction undisturbed ground temperature using analytical numerical modeling. Part : Model development experimental validation. Science Technology Built Environment, 23:5, 787-808, doi:10.1080/23744731.2016.1258371 .","code":""},{"path":[]},{"path":"/reference/mgtdh-iface.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get ground temperature — mgtdhid","text":"","code":"# Let consider the next geographical positions: lat <- c(s28434 = 56.65, s28418 = 56.47, s23711 = 62.70, ControlPoint = 57) lon <- c(s28434 = 57.78, s28418 = 53.73, s23711 = 56.20, ControlPoint = 57) # * ground temperatures at first three locations on 02 March 2023 at depth 3 m: mgtdhgeo(head(lat, 3), head(lon, 3), tau = as.POSIXct(\"2023-03-02\"), depth = 3) #> [1] 4.184279 4.767883 2.930190 # * it is the same as obtaining ground temperatures from weather stations: mgtdhid(id = c(28434L, 28418L, 23711L), tau = as.POSIXct(\"2023-03-02\"), depth = 3) #> [1] 4.184279 4.767883 2.930190 # * undisturbed ground temperature plot at Control Point: days <- as.POSIXct(\"2023-01-01\") + 3600*24*(seq.int(1, 365) - 1) plot( days, mgtdhgeot(days, lat[[\"ControlPoint\"]], lon[[\"ControlPoint\"]]), type = \"l\", ylab = \"Temperature, °C\" )"},{"path":"/reference/mm_inch.html","id":null,"dir":"Reference","previous_headings":"","what":"Inches to mm — mm_inch","title":"Inches to mm — mm_inch","text":"Convert length measured inches millimeters (mm)","code":""},{"path":"/reference/mm_inch.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Inches to mm — mm_inch","text":"","code":"mm_inch(x)"},{"path":"/reference/mm_inch.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Inches to mm — mm_inch","text":"x length measured inches, [inch]. Type: assert_double.","code":""},{"path":"/reference/mm_inch.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Inches to mm — mm_inch","text":"length millimeters, [mm]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/mm_inch.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Inches to mm — mm_inch","text":"","code":"library(pipenostics) mm_inch(c(0.03937008, 1)) #> [1] 1.0 25.4 # [1] 1.0 25.4 # [mm]"},{"path":"/reference/mpa_kgf.html","id":null,"dir":"Reference","previous_headings":"","what":"Kilogram-force per square cm to megapascals — mpa_kgf","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"Convert pressure (stress) measured kilogram-force per square cm (\\(kgf/cm^2\\)) megapascals (MPa)","code":""},{"path":"/reference/mpa_kgf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"","code":"mpa_kgf(x)"},{"path":"/reference/mpa_kgf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"x pressure (stress) measured kilogram-force per square cm, [kgf/cm^2]. Type: assert_double.","code":""},{"path":"/reference/mpa_kgf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"pressure (stress) megapascals, [MPa]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/mpa_kgf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"","code":"library(pipenostics) mpa_kgf(c(10.1971619998, 1)) #> [1] 1.0000000 0.0980665 # [1] 1.0000000 0.0980665 # [MPa]"},{"path":"/reference/mpa_psi.html","id":null,"dir":"Reference","previous_headings":"","what":"Pounds per square inch to megapascals — mpa_psi","title":"Pounds per square inch to megapascals — mpa_psi","text":"Convert pressure (stress) measured pounds per square inch (PSI) megapascals (MPa)","code":""},{"path":"/reference/mpa_psi.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pounds per square inch to megapascals — mpa_psi","text":"","code":"mpa_psi(x)"},{"path":"/reference/mpa_psi.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pounds per square inch to megapascals — mpa_psi","text":"x pressure (stress) measured pounds per square inch (PSI). Type: assert_double.","code":""},{"path":"/reference/mpa_psi.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pounds per square inch to megapascals — mpa_psi","text":"pressure (stress) megapascals (MPa). Type: assert_double.","code":""},{"path":[]},{"path":"/reference/mpa_psi.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Pounds per square inch to megapascals — mpa_psi","text":"","code":"library(pipenostics) mpa_psi(c(145.03773800721814, 1)) #> [1] 1.000000000 0.006894757 # [1] 1.000000000 0.006894757 # [MPa]"},{"path":"/reference/pcorrcpf.html","id":null,"dir":"Reference","previous_headings":"","what":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"Calculate failure pressure corroded pipe according PCORRC model. PCORRC methodology developed basis studying mechanism destruction pipes, material improved high fracture toughness, high-precision modeling finite element pipe models performed Battelle Institute. According field test results large number actual pipe segments, destruction mechanism defective pipeline segment depends pipe material fracture toughness. tests also showed pipes made steel improved high fracture toughness fail result plastic fracture. determining Folias factor effect increased stress concentration steel hardening plastic deformation zone start defect failure process taken account. code applied single cross section pipeline containing longitudinally oriented, flat bottom surface defect corrosion/erosion type; pipelines, operate temperatures exceeding temperature pipe material ductile–brittle transition, pipematerial impact energy Charpy 61 [J] .","code":""},{"path":"/reference/pcorrcpf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"","code":"pcorrcpf(d, wth, uts, depth, l)"},{"path":"/reference/pcorrcpf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"d nominal outside diameter pipe, [mm]. Type: assert_double. wth nominal wall thickness pipe, [mm]. Type: assert_double. uts ultimate tensile strength (UTS) specified minimum tensile strength (SMTS) characteristic steel strength, [\\(MPa\\)]. Type: assert_double. depth measured maximum depth corroded area, [mm]. Type: assert_double. l measured maximum longitudinal length corroded area, [mm]. Type: assert_double.","code":""},{"path":"/reference/pcorrcpf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"Estimated failure pressure corroded pipe, [\\(MPa\\)]. Type: assert_double.","code":""},{"path":"/reference/pcorrcpf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7 .C.Reddy, Safety Failure Criteria Fluorocarbon Plastic Pipes Dry Chlorine Transport using Finite Element Analysis Materials today: proceedings, Vol. 4(8), 2017, pp. 7498-7506. DOI 10.1016/j.matpr.2017.07.081","code":""},{"path":[]},{"path":"/reference/pcorrcpf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"","code":"library(pipenostics) d <- c(812.8, 219.0) # [mm] wth <- c( 19.1, 14.5) # [mm] uts <- c(530.9, 455.1) # [N/mm^2] l <- c(203.2, 200.0) # [mm] depth <- c( 13.4, 9.0) # [mm] pcorrcpf(d, wth, uts, depth, l) #> [1] 16.35449 33.01288 # [1] 16.35449 33.01288"},{"path":"/reference/pipenostics-package.html","id":null,"dir":"Reference","previous_headings":"","what":"pipenostics: Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems — pipenostics-package","title":"pipenostics: Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems — pipenostics-package","text":"Functions representing useful empirical data-driven models heat loss, corrosion diagnostics, reliability predictive maintenance pipeline systems. package option technical engineering departments heat generating heat transfer companies use plan use regulatory calculations activities. Methods described Timashev et al. (2016) doi:10.1007/978-3-319-25307-7 , .C.Reddy (2017) doi:10.1016/j.matpr.2017.07.081 , Minenergo (2008) https://docs.cntd.ru/document/902148459, Minenergo (2005) https://docs.cntd.ru/document/1200035568, Xing LU. (2014) doi:10.1080/23744731.2016.1258371 .","code":""},{"path":[]},{"path":"/reference/pipenostics-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"pipenostics: Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems — pipenostics-package","text":"Maintainer: Yuri Possokhov omega1x@gmail.com (ORCID)","code":""},{"path":"/reference/psi_mpa.html","id":null,"dir":"Reference","previous_headings":"","what":"Megapascals to pounds per square inch — psi_mpa","title":"Megapascals to pounds per square inch — psi_mpa","text":"Convert pressure (stress) measured megapascals (MPa) pounds per square inch (PSI)","code":""},{"path":"/reference/psi_mpa.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Megapascals to pounds per square inch — psi_mpa","text":"","code":"psi_mpa(x)"},{"path":"/reference/psi_mpa.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Megapascals to pounds per square inch — psi_mpa","text":"x pressure (stress) measured megapascals. [MPa]. Type: assert_double.","code":""},{"path":"/reference/psi_mpa.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Megapascals to pounds per square inch — psi_mpa","text":"pressure (stress) pounds per square inch, [PSI]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/psi_mpa.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Megapascals to pounds per square inch — psi_mpa","text":"","code":"library(pipenostics) psi_mpa(c(6.89475728e-3, 1)) #> [1] 1.0000 145.0377 # [1] 1.0000 145.0377 # [PSI]"},{"path":"/reference/reynolds.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate Reynolds number — re_u","title":"Estimate Reynolds number — re_u","text":"Estimate Reynolds number fluid flow cylindrical pipe.","code":""},{"path":"/reference/reynolds.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate Reynolds number — re_u","text":"","code":"re_u(d, mu, u, rho) re_v(d, mu, v, rho) re_m(d, mu, m)"},{"path":"/reference/reynolds.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate Reynolds number — re_u","text":"d internal diameter pipe, [m]. Type: assert_double. mu dynamic viscosity fluid pipe, [kg/m/s]. Type: assert_double. u mean velocity fluid pipe, [m/s]. Type: assert_double. rho mass density fluid pipe, [kg/m^3]. Type: assert_double. v volumetric flow rate fluid pipe, [m^3/s]. Type: assert_double. m mass flow rate fluid pipe, [kg/s]. Type: assert_double.","code":""},{"path":"/reference/reynolds.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate Reynolds number — re_u","text":"Reynolds number - dimensionless quantity reveals ratio inertial viscous forces fluid, []. Type: assert_double.","code":""},{"path":"/reference/reynolds.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Estimate Reynolds number — re_u","text":"calculation Reynolds number bounded physically reasonable limits fluid properties found domain specificity package.","code":""},{"path":[]},{"path":"/reference/reynolds.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate Reynolds number — re_u","text":"","code":"library(pipenostics) # Reynolds numbers for typical district heating water flows at temperature # near 25 C in a set of pipes with different sizes: range(re_u(seq(.25, 1, 0.05), .89, 1, 1000)) #> [1] 280.8989 1123.5955 # [1] 280.8989 1123.5955"},{"path":"/reference/shell92pf.html","id":null,"dir":"Reference","previous_headings":"","what":"Shell92. Failure pressure of the corroded pipe — shell92pf","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"Calculate failure pressure corroded pipe according Shell92 code. code applied single cross section pipeline containing longitudinally oriented, flat bottom surface defect corrosion/erosion type; defects depth less 85 % pipe wall thickness. estimation valid single isolated metal loss defects corrosion/erosion type internal pressure loading considered. case dnvpf, defect approximated rectangular form.","code":""},{"path":"/reference/shell92pf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"","code":"shell92pf(d, wth, uts, depth, l)"},{"path":"/reference/shell92pf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"d nominal outside diameter pipe, [mm]. Type: assert_double. wth nominal wall thickness pipe, [mm]. Type: assert_double. uts ultimate tensile strength (UTS) specified minimum tensile strength (SMTS) characteristic steel strength, [MPa]. Type: assert_double. depth measured maximum depth corroded area, [mm]. Type: assert_double. l measured maximum longitudinal length corroded area, [mm]. Type: assert_double.","code":""},{"path":"/reference/shell92pf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"Estimated failure pressure corroded pipe, [MPa]. Type: assert_double.","code":""},{"path":"/reference/shell92pf.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"Numeric NAs may appear case prescribed conditions use offended.","code":""},{"path":"/reference/shell92pf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7","code":""},{"path":[]},{"path":"/reference/shell92pf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"","code":"library(pipenostics) d = c(812.8, 219.0) # [mm] wth = c( 19.1, 14.5) # [mm] uts = c(530.9, 455.1) # [N/mm^2] l = c(203.2, 200.0) # [mm] depth = c( 13.4, 9.0) # [mm] shell92pf(d, wth, uts, depth, l) #> [1] 11.09262 25.27286 # [1] 11.09262 25.27286"},{"path":"/reference/strderate.html","id":null,"dir":"Reference","previous_headings":"","what":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"Temperature highly influence pipe material properties especially strength. Since API SPECIFICATION 5L values SMYS UTS postulated room conditions, case higher temperature magnitudes corrected. purpose DNV-RP-F101 offers linear de-rating SMYS SMYS according figure 2-3.","code":""},{"path":"/reference/strderate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"","code":"strderate(x, temperature = 24.3)"},{"path":"/reference/strderate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"x specified minimum yield stress (SMYS), ultimate tensile strength (UTS), specified minimum tensile strength (SMTS) characteristic steel strength room temperature, [MPa]. Type: assert_double. temperature temperature pipe wall, [°C]. Type: assert_double.","code":""},{"path":"/reference/strderate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"de-rated value x, .e. appropriate pipe material property, [MPa] . Type: assert_double.","code":""},{"path":[]},{"path":"/reference/strderate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"","code":"library(pipenostics) with(api5l3t, { print(strderate(mpa_psi(smys), 53)) print( strderate(mpa_psi(uts),seq(0, 250, length.out = length(smys))) ) }) #> [1] 170.5689 205.0427 239.5165 287.7798 315.3588 356.7274 384.3064 411.8854 #> [9] 446.3592 480.8330 549.7806 #> [1] 310.2641 330.9483 413.6854 398.6854 404.3697 415.0540 439.5278 457.1068 #> [9] 460.8963 485.3701 530.5282 # [1] 170.5689 205.0427 239.5165 287.7798 315.3588 356.7274 384.3064 411.8854 446.3592 480.8330 # [11] 549.7806 # [1] 310.2641 330.9483 413.6854 398.6854 404.3697 415.0540 439.5278 457.1068 460.8963 485.3701 # [11] 530.5282"},{"path":"/reference/tracebw.html","id":null,"dir":"Reference","previous_headings":"","what":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow rate, ) bunched pipeline flow direction using user-provided values specific heat loss power. Algorithm also suits partially measurable district heating network massive data lack conditions, temperature pressure sensor readings majority terminal nodes.","code":""},{"path":"/reference/tracebw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"","code":"tracebw( sender = 6, acceptor = 7, temperature = 70, pressure = pipenostics::mpa_kgf(6), flow_rate = 20, d = 100, len = 72.446, loss = 78.4, roughness = 0.001, inlet = 0.5, outlet = 1, method = \"romeo\", opinion = \"median\", verbose = TRUE, csv = FALSE, file = \"tracebw.csv\" )"},{"path":"/reference/tracebw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Sensor-measured temperature heat carrier (water) sensor-measured terminal acceptor node, [°C]. Use NA_float_s (terminal) nodes without temperature sensor. Type: assert_double. pressure Sensor-measured absolute pressure heat carrier (water) inside pipe (.e. acceptor's incoming edge), [MPa]. Type: assert_double. flow_rate Sensor-measured amount heat carrier (water) terminal node transferred pipe (.e. acceptor's incoming edge) period, [ton/hour]. Type: assert_double. Use NA_float_s nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [mm]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. loss user-provided value specific heat loss power pipe, [kcal/m/h]. Values argument can obtained experimentally, taken regulatory documents. Type: assert_double. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. method method determining Darcy friction factor: romeo vatankhan buzelli Type: assert_choice. details see dropp. opinion method aggregating values regime parameters node next tracing step: mean values parameter averaged next tracing step median median parameter values used next tracing step Type: assert_choice. verbose logical indicator: watch tracing process console? Type: assert_flag. csv logical indicator: incrementally dump results csv- file tracing? Type: assert_flag. file name csv-file dump results . Type: assert_character length 1 can used safely create file write .","code":""},{"path":"/reference/tracebw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"data.frame containing results (detailed log) tracing narrow format: node Tracing job. Identifier node regime parameters calculated . Values vector identical argument acceptor. Type: assert_character. tracing Tracing job. Identifiers nodes regime parameters traced given node. Identifier sensor used values regime parameters node sensor readings. Type: assert_character. backward Tracing job. Identifier tracing direction. constantly equals TRUE. Type: assert_logical. aggregation Tracing job. Identifier aggregation method: span, median, mean, identity. Type: assert_character. loss Traced thermal hydraulic regime. Normative specific heat loss power adjacent pipe, [kcal/m/h]. Type: assert_double. flux Traced thermal hydraulic regime. Normative heat flux adjacent pipe, [W/m^2]. Type: assert_double. Q Traced thermal hydraulic regime. Normative heat loss adjacent pipe per day, [kcal]. Type: assert_character. temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water) associated node, [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) associated node, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) associated node, [ton/hour]. Type: assert_double. job Tracing job. Value tracing job counter. Type: assert_count. Type: assert_data_frame.","code":""},{"path":"/reference/tracebw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"consider topology district heating network represented m325testbench: network may partially sensor-equipped : latter case two nodes must equipped pressure temperature sensors whereas nodes flow rate sensors must installed. Tracing starts sensor-equipped nodes goes backwards, .e flow direction. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench. tracing starts next node, previously calculated values thermal-hydraulic parameters aggregated either averaging median. latter seems robust avoiding strong influence possible outliers may come actual heating transfer anomalies, erroneous sensor readings wrong pipeline specifications. Aggregation values flow rate node always sum.","code":""},{"path":[]},{"path":"/reference/tracebw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"","code":"library(pipenostics) # It is possible to run without specification of argument values: m325tracebw() #> #> 2024-04-02 16:26:28.484752 m325tracebw | start backward tracing; segments 1; #> 2024-04-02 16:26:28.484752 m325tracebw | start job; job 0; #> 2024-04-02 16:26:28.484752 m325tracebw | now process; 1 node(s); [7] #> 2024-04-02 16:26:28.484752 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:28.484752 m325tracebw | tracing loss;; #> 2024-04-02 16:26:28.484752 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[7]; #> 2024-04-02 16:26:28.484752 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.484752 m325tracebw | OK! Heat flux traced from 1 nodes;[7]; #> 2024-04-02 16:26:28.484752 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.484752 m325tracebw | OK! Heat loss per day traced from 1 nodes;[7]; #> 2024-04-02 16:26:28.484752 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:28.484752 m325tracebw | OK! Temperature traced from 1 nodes;[7]; #> 2024-04-02 16:26:28.484752 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:28.484752 m325tracebw | OK! Pressure traced from 1 nodes;[7]; #> 2024-04-02 16:26:28.484752 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.484752 m325tracebw | finish job; job 0; processed node(s) 1 #> 2024-04-02 16:26:28.484752 m325tracebw | finish backward tracing;; #> node tracing backward aggregation loss flux Q temperature #> 1 7 sensor TRUE identity 78.4 279.0696 136314.4 70 #> span 7 sensor TRUE span 0.0 0.0000 0.0 0 #> median 7 sensor TRUE median 78.4 279.0696 136314.4 70 #> mean 7 sensor TRUE mean 78.4 279.0696 136314.4 70 #> pressure flow_rate job #> 1 0.588399 20 0 #> span 0.000000 20 0 #> median 0.588399 20 0 #> mean 0.588399 20 0 # Consider isomorphic representation of District Heating Network graph: DHN <- pipenostics::m325testbench # * Adapt units: DHN$d <- 1e3*DHN$d # convert [m] to [mm] # * Adapt node identifiers for ordering representation simplification: DHN[[\"sender\"]] <- sprintf(\"N%02i\", DHN[[\"sender\"]]) DHN[[\"acceptor\"]] <- sprintf(\"N%02i\", DHN[[\"acceptor\"]]) # * Provided actual values of specific heat loss power (say, field measurements) for each # pipe in DHN, [kcal/m/h]: actual_loss <- c( # acceptor: 96.236, # 1 96.288, # 2 70.584, # 3 116.045, # 4 70.734, # 5 96.211, # 6 78.400, # 7 116.016, # 8 28.115, # 9 24.918, # 10 116.679, # 11 0.000, # 12, may be unmeasured! 153.134, # 13 96.733, # 14 96.600, # 15 116.667, # 16 24.960, # 17 115.923, # 18 28.166, # 19 96.123, # 20 77.824, # 21 115.946, # 22 70.690, # 23 96.184, # 24 96.236, # 25 70.540 # 26 ) # * Remove inappropriate attributes of the graph: DHN.1 <- DHN[, setdiff(colnames(DHN), c(\"year\", \"insulation\", \"laying\", \"beta\", \"exp5k\"))] # * Trace thermal-hydraulic regime for DHN: tracebw_report <- do.call(\"tracebw\", c(as.list(DHN.1), list(loss = actual_loss))) #> #> 2024-04-02 16:26:28.507768 tracebw | start backward tracing; segments 26; #> 2024-04-02 16:26:28.507768 tracebw | start job; job 0; #> 2024-04-02 16:26:28.507768 tracebw | now process; 13 node(s); [N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26] #> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [13/13] are TP-sensor-equipped; #> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.507768 tracebw | finish job; job 0; processed node(s) 13 #> 2024-04-02 16:26:28.507768 tracebw | start job; job 1; #> 2024-04-02 16:26:28.507768 tracebw | now process; 5 node(s); [N04,N05,N14,N22,N23] #> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [5/5] are TP-sensor-equipped; #> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.507768 tracebw | finish job; job 1; processed node(s) 5 #> 2024-04-02 16:26:28.507768 tracebw | start job; job 2; #> 2024-04-02 16:26:28.507768 tracebw | now process; 2 node(s); [N06,N20] #> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.507768 tracebw | finish job; job 2; processed node(s) 2 #> 2024-04-02 16:26:28.507768 tracebw | start job; job 3; #> 2024-04-02 16:26:28.507768 tracebw | now process; 2 node(s); [N08,N18] #> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.507768 tracebw | finish job; job 3; processed node(s) 2 #> 2024-04-02 16:26:28.507768 tracebw | start job; job 4; #> 2024-04-02 16:26:28.507768 tracebw | now process; 2 node(s); [N11,N16] #> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.507768 tracebw | finish job; job 4; processed node(s) 2 #> 2024-04-02 16:26:28.507768 tracebw | start job; job 5; #> 2024-04-02 16:26:28.507768 tracebw | now process; 1 node(s); [N13] #> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.507768 tracebw | finish job; job 5; processed node(s) 1 #> 2024-04-02 16:26:28.507768 tracebw | start job; job 6; #> 2024-04-02 16:26:28.507768 tracebw | now process; 1 node(s); [N12] #> 2024-04-02 16:26:28.507768 tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:28.507768 tracebw | tracing loss;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Specific heat loss power traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat flux traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.507768 tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Heat loss per day traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.507768 tracebw | tracing temperature;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Temperature traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.507768 tracebw | tracing pressure;; #> 2024-04-02 16:26:28.507768 tracebw | OK! Pressure traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.507768 tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.507768 tracebw | finish job; job 6; processed node(s) 1 #> 2024-04-02 16:26:28.507768 tracebw | finish backward tracing;; # * If the actual values of specific heat loss power presented above are close # to those in Minenergo-325, then the results of regime tracing match the # normative procedure: m325_report <- do.call(\"m325tracebw\", DHN) #> #> 2024-04-02 16:26:28.59587 m325tracebw | start backward tracing; segments 26; #> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 0; #> 2024-04-02 16:26:28.59587 m325tracebw | now process; 13 node(s); [N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26] #> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [13/13] are TP-sensor-equipped; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 0; processed node(s) 13 #> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 1; #> 2024-04-02 16:26:28.59587 m325tracebw | now process; 5 node(s); [N04,N05,N14,N22,N23] #> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 1; processed node(s) 5 #> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 2; #> 2024-04-02 16:26:28.59587 m325tracebw | now process; 2 node(s); [N06,N20] #> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 2 nodes;[N06,N20]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 2; processed node(s) 2 #> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 3; #> 2024-04-02 16:26:28.59587 m325tracebw | now process; 2 node(s); [N08,N18] #> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 2 nodes;[N08,N18]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 3; processed node(s) 2 #> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 4; #> 2024-04-02 16:26:28.59587 m325tracebw | now process; 2 node(s); [N11,N16] #> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 2 nodes;[N11,N16]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 4; processed node(s) 2 #> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 5; #> 2024-04-02 16:26:28.59587 m325tracebw | now process; 1 node(s); [N13] #> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 1 nodes;[N13]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 5; processed node(s) 1 #> 2024-04-02 16:26:28.59587 m325tracebw | start job; job 6; #> 2024-04-02 16:26:28.59587 m325tracebw | now process; 1 node(s); [N12] #> 2024-04-02 16:26:28.59587 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing loss;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat flux;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat flux traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing heat loss per day;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Heat loss per day traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing temperature;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Temperature traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing pressure;; #> 2024-04-02 16:26:28.59587 m325tracebw | OK! Pressure traced from 1 nodes;[N12]; #> 2024-04-02 16:26:28.59587 m325tracebw | tracing flow_rate;; #> 2024-04-02 16:26:28.59587 m325tracebw | finish job; job 6; processed node(s) 1 #> 2024-04-02 16:26:28.59587 m325tracebw | finish backward tracing;; stopifnot( all.equal(tracebw_report$temperature, m325_report$temperature, tolerance = 1e-4), all.equal(tracebw_report$pressure , m325_report$pressure , tolerance = 1e-4), all.equal(tracebw_report$flow_rate , m325_report$flow_rate , tolerance = 1e-4) )"},{"path":"/reference/tracefw.html","id":null,"dir":"Reference","previous_headings":"","what":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow rate, ) bunched pipeline along flow direction using user-provided values specific heat loss power.","code":""},{"path":"/reference/tracefw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"","code":"tracefw( sender = c(0, 1), acceptor = c(1, 2), temperature = c(70, NA_real_), pressure = c(pipenostics::mpa_kgf(6), NA_real_), flow_rate = c(20, NA_real_), d = rep_len(100, 2), len = rep_len(72.446, 2), loss = rep_len(78.4, 2), roughness = rep_len(0.001, 2), inlet = c(0.5, 1), outlet = c(1, 1), elev_tol = 0.1, method = \"romeo\", verbose = TRUE, csv = FALSE, file = \"tracefw.csv\", use_cluster = FALSE )"},{"path":"/reference/tracefw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Sensor-measured temperature heat carrier (water) sensor-measured root node, [°C]. Use NA_float_s nodes without temperature sensor. Type: assert_double. pressure Sensor-measured absolute pressure heat carrier (water) inside pipe root node, [MPa]. Use NA_float_s nodes without pressure sensor. Type: assert_double. flow_rate Sensor-measured amount heat carrier (water) root node transferred pipe period, [ton/hour]. Type: assert_double. Use NA_float_s nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [mm]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. loss user-provided value specific heat loss power pipe tracing path, [kcal/m/h]. Values argument can obtained experimentally, taken regulatory documents. Type: assert_double. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. elev_tol maximum allowed discrepancy adjacent outlet inlet elevations two subsequent pipes traced path, [m]. Type: assert_number. method method determining Darcy friction factor: romeo vatankhan buzelli Type: assert_choice. details see dropp. verbose logical indicator: watch tracing process console? Type: assert_flag. csv logical indicator: incrementally dump results csv- file tracing? Type: assert_flag. file name csv-file dump results . Type: assert_character length 1 can used safely create file write . use_cluster utilize functionality parallel processing multi-core CPU. Type: assert_flag.","code":""},{"path":"/reference/tracefw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"data.frame containing results (detailed log) tracing narrow format: node Tracing job. Identifier node regime parameters calculated . Values vector identical argument acceptor. Type: assert_character. tracing Tracing job. Identifiers nodes regime parameters traced given node. Identifier sensor used values regime parameters node sensor readings. Type: assert_character. backward Tracing job. Identifier tracing direction. constantly equals FALSE. Type: assert_logical. aggregation Tracing job. Identifier aggregation method associated traced values. forward tracing option identity. Type: assert_character. temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water) associated node, [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) associated node, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) associated node, [ton/hour]. Type: assert_double. job Tracing job. Value tracing job counter. forward tracing value job counts number traced paths root node. Type: assert_count. Type: assert_data_frame.","code":""},{"path":"/reference/tracefw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"consider topology district heating network represented m325testbench: Tracing starts sensor-equipped root node goes forward, .e along flow direction. Function traceline serves hood tracing identified linear segments root node every terminal node. Hence need root node equipped sensors. Sensors nodes redundant forward tracing, since tracing algorithm means consider tracing. Moreover forward tracing algorithm assume flow heat carrier distributed proportionally cross-sectional area outgoing pipeline. Actually, lot reasons may cause significant deviations assumption. result, sequence paired backward/forward tracing may divergent regime parameters. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench. welcome couple algorithm functionality data.table.","code":""},{"path":[]},{"path":"/reference/tracefw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"","code":"library(pipenostics) # Minimum two nodes should be in district heating network graph: tracefw(verbose = FALSE) #> node tracing backward aggregation loss flux Q temperature #> 1 1 sensor FALSE identity NA NA NA 70.00000 #> 2 2 1 FALSE identity 78.4 279.0696 136314.4 69.71603 #> pressure flow_rate job #> 1 0.5883990 20 0 #> 2 0.5813153 20 1 # Consider isomorphic representation of District Heating Network graph: DHN <- pipenostics::m325testbench # * remove irrelevant parameters from the test bench DHN[c(\"year\", \"insulation\", \"laying\", \"beta\", \"exp5k\")] <- NULL DHN[c(\"temperature\", \"pressure\", \"flow_rate\")] <- NA_real_ # * avoid using numeric identifiers for nodes: DHN$sender <- sprintf(\"N%02i\", DHN$sender) DHN$acceptor <- sprintf(\"N%02i\", DHN$acceptor) # * alter units: DHN$d <- 1e3 * DHN$d # convert [m] to [mm] # * provide current regime parameters for root node root_node <- 12 DHN[root_node, \"temperature\"] <- 70.4942576978 # [°C] DHN[root_node, \"pressure\"] <- 0.6135602014 # [MPa] DHN[root_node, \"flow_rate\"] <- 274.0 # [ton/hour] # * provide actual values of specific heat loss power, [kcal/m/h], for each # segment N01 - N26. Since N12 is a root node, the specific heat loss # power for this acceptor is set to 0 (or may be any other numeric value). actual_loss <- c( 96.8, 96.8, 71.2, 116.7, 71.3, 96.8, 78.5, 116.7, 28.6, 24.5, 116.7, 0.0, 153.2, 96.8, 96.8, 116.7, 24.5, 116.7, 28.6, 96.8, 78.5, 116.7, 71.3, 96.8, 96.8, 71.1 ) # Trace the test bench forward for the first time: fw_report <- do.call( \"tracefw\", c(as.list(DHN), list(loss = actual_loss), verbose = FALSE, elev_tol = .5) )"},{"path":"/reference/traceline.html","id":null,"dir":"Reference","previous_headings":"","what":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow_rate, ) along adjacent linear segments pipeline using user-provided values specific heat loss power.","code":""},{"path":"/reference/traceline.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"","code":"traceline( temperature = 130, pressure = mpa_kgf(6), flow_rate = 250, g = 0, d = 700, len = c(600, 530, 300, 350), loss = c(348, 347.1389, 346.3483, 345.861), roughness = 0.006, inlet = 0, outlet = 0, elev_tol = 0.1, method = \"romeo\", forward = TRUE, absg = TRUE )"},{"path":"/reference/traceline.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"temperature Traced thermal hydraulic regime. Sensor-measured temperature heat carrier (water) inside pipe sensor-measured inlet (forward tracing) outlet (backward tracing) path, [°C]. Type: assert_number. pressure Traced thermal hydraulic regime. Sensor-measured absolute pressure heat carrier (water) sensor-measured inlet (forward tracing) outlet (backward tracing) path, [MPa]. Type: assert_number. flow_rate Traced thermal hydraulic regime. Amount heat carrier (water) sensor-measured inlet (forward tracing) outlet (backward tracing) path, [ton/hour]. Type: assert_number. g amount heat carrier discharge network pipe segment tracing path enumerated along direction flow. flag absg TRUE treat argument g absolute value [ton/hour], otherwise percentage flow_rate pipe segment. Type: assert_double. d internal diameters subsequent pipes tracing path enumerated along direction flow, [mm]. Type: assert_double. len length subsequent pipes tracing path enumerated along direction flow, [m]. Type: assert_double. loss user-provided value specific heat loss power pipe tracing path enumerated along direction flow, [kcal/m/h]. Values argument can obtained experimentally, taken regulatory documents. Type: assert_double. roughness roughness internal wall pipe tracing path enumerated along direction flow, [m]. Type: assert_double. inlet elevation pipe inlet pipe tracing path enumerated along direction flow, [m]. Type: assert_double. outlet elevation pipe outlet pipe tracing path enumerated along direction flow, [m]. Type: assert_double. elev_tol maximum allowed discrepancy adjacent outlet inlet elevations two subsequent pipes traced path, [m]. Type: assert_number. method method determining Darcy friction factor romeo vatankhan buzelli Type: assert_choice. details see dropp. forward tracing direction flag: forward direction tracing? FALSE backward tracing performed. Type: assert_flag. absg Whether argument g (amount heat carrier discharge network) absolute value [ton/hour] (TRUE) percentage flow rate pipe segment (FALSE)? Type: assert_flag.","code":""},{"path":"/reference/traceline.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"list containing results (detailed log) tracing pipe tracing path enumerated along direction flow: temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water), [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) pipe tracing path enumerated along direction flow, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) pipe tracing path enumerated along direction flow, [ton/hour]. Type: assert_double. loss User-provided specific heat loss power pipe tracing path enumerated along direction flow, [kcal/m/h], - copy input. Type: assert_double. flux Heat flux pipe tracing path enumerated along direction flow, [W/m^2]. Type: assert_double. Q Heat loss pipe tracing path enumerated along direction flow per day, [kcal]. Type: assert_double. Type: assert_list.","code":""},{"path":"/reference/traceline.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"consider simple tracing paths contain rings kind parallelization. time bidirectional (forward backward) tracing possible accordance sensor position. also may consider discharges network inlet pipeline segment approximation actual forks flows. Relevant illustration adopted assumptions 4-segment tracing path depicted next figure. make additional check consistency inlet outlet values subsequent pipe segments. Discrepancy appropriate elevations elev_tol. Since inner diameter pipe used input, thickness pipe wall additionally considered heat flux calculations. Pipe wall thickness derived pipe diameter using GOST 30732 specifications.","code":""},{"path":[]},{"path":"/reference/traceline.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"","code":"library(pipenostics) # Consider 4-segment tracing path. # First, let sensor readings for forward tracing: t_fw <- 130 # [°C] p_fw <- mpa_kgf(6)*all.equal(.588399, mpa_kgf(6)) # [MPa] g_fw <- 250 # [ton/hour] # Let discharges to network for each pipeline segment are somehow determined as discharges <- seq(0, 30, 10) # [ton/hour] # Experimentally obtained values of specific heat loss power are actual_loss <- c(348.0000, 347.1389, 346.3483, 345.8610) # Then the calculated regime (red squares) for forward tracing is regime_fw <- traceline(t_fw, p_fw, g_fw, discharges, loss = actual_loss, forward = TRUE) print(regime_fw) #> $temperature #> [1] 129.1799 128.4269 127.9628 127.3367 #> #> $pressure #> [1] 0.5878607 0.5874226 0.5872143 0.5870330 #> #> $flow_rate #> [1] 250 240 220 190 #> #> $loss #> [1] 348.0000 347.1389 346.3483 345.8610 #> #> $flux #> [1] 181.9600 181.5097 181.0963 180.8415 #> #> $Q #> [1] 5011200 4415607 2493708 2905232 #> # $temperature # [1] 129.1799 128.4269 127.9628 127.3367 # # $pressure # [1] 0.5878607 0.5874226 0.5872143 0.5870330 # # $flow_rate # [1] 250 240 220 190 # # $loss # [1] 348.0000 347.1389 346.3483 345.8610 # # $flux # [1] 181.9600 181.5097 181.0963 180.8415 # # $Q # [1] 5011200 4415607 2493707 2905232 # Next consider values of traced regime as sensor readings for backward tracing: t_bw <- 127.3367 # [°C] p_bw <- .5870330 # [MPa] g_bw <- 190 # [ton/hour] # Then the calculated regime (red squares) for backward tracing is regime_bw <- traceline(t_bw, p_bw, g_bw, discharges, loss = actual_loss, forward = FALSE) print(regime_bw) #> $temperature #> [1] 130.0009 129.1805 128.4272 127.9630 #> #> $pressure #> [1] 0.5883998 0.5878611 0.5874228 0.5872144 #> #> $flow_rate #> [1] 250 250 240 220 #> #> $loss #> [1] 348.0000 347.1389 346.3483 345.8610 #> #> $flux #> [1] 181.9600 181.5097 181.0963 180.8415 #> #> $Q #> [1] 5011200 4415607 2493708 2905232 #> # $temperature # [1] 130.000893685 129.180497939 128.427226907 127.963046346 # # $pressure # [1] 0.588399833660 0.587861095778 0.587422779315 0.587214377798 # # $flow_rate # [1] 250 250 240 220 # # $loss # [1] 348.0000 347.1389 346.3483 345.8610 # # $flux # [1] 181.959958158 181.509711836 181.096328092 180.841531863 # # $Q # [1] 5011200.000 4415606.808 2493707.760 2905232.400 # Let compare sensor readings with backward tracing results: tracing <- with(regime_bw, { lambda <- function(val, constraint) c(val, constraint, constraint - val, abs(constraint - val)*100/constraint) first <- 1 structure( rbind( lambda(temperature[first], t_fw), lambda(pressure[first], p_fw), lambda(flow_rate[first], g_fw) ), dimnames = list( c(\"temperature\", \"pressure\", \"flow_rate\"), c(\"sensor.value\", \"traced.value\", \"abs.discr\", \"rel.discr\") ) ) }) print(tracing) #> sensor.value traced.value abs.discr rel.discr #> temperature 130.0008937 130.000000 -8.936853e-04 0.0006874502 #> pressure 0.5883998 0.588399 -8.261601e-07 0.0001404081 #> flow_rate 250.0000000 250.000000 0.000000e+00 0.0000000000 # sensor.value traced.value abs.discr rel.discr # temperature 130.00089368526 130.0000000000 -8.93685255676e-04 0.000687450196674 # pressure 0.58839983366 0.5883990075 -8.26160099998e-07 0.000140408139624 # flow_rate 250.00000000000 250.0000000000 0.00000000000e+00 0.000000000000000"},{"path":"/reference/wth_d.html","id":null,"dir":"Reference","previous_headings":"","what":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"Use GOST 30732 specifications derive value pipe wall thickness diameter known pipe.","code":""},{"path":"/reference/wth_d.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"","code":"wth_d(x)"},{"path":"/reference/wth_d.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"x outside diameter pipe, [mm]. Type: assert_double.","code":""},{"path":"/reference/wth_d.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"Utility used cases actual value pipe wall thickness determined means. many cases internal diameter may used instead outside one without significant loss precision. wall thickness value derived diameters mentioned Minenergo Order 325. Unfortunately, inverse function constructed reliable way due significant ambiguity.","code":""},{"path":"/reference/wth_d.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"GOST 30732. Steel pipes shaped products foamed polyurethane thermal insulation protective sheath. Specifications.","code":""},{"path":[]},{"path":"/reference/wth_d.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"","code":"library(pipenostics) # Guess pipe widths for some frequently met diameters wth_d(as.double(c(57, 76, 89))) #> [1] 3 3 4 # [1] 3 7 11 # [mm]"},{"path":[]},{"path":"/news/index.html","id":"current-version-0-2-0","dir":"Changelog","previous_headings":"","what":"Current version","title":"pipenostics 0.2.0","text":"possible justified, support multi-threaded data processing, based capabilities parallel package, added. functions determining state water steam (IAPWS) excluded package due decision use built-functions iapws-package imported CRAN. set functions mgtdhid(), mgtdhidt(), mgtdhgeo(), mgtdhgeot() introduced interface Modified Ground Temperature Double Harmonic Model. function meteos() introduced get list weather stations functions geodist() geoarea() calculating geographical metrics added. functions traceline(), tracefw(), tracebw() added process district heating networks user-provided heat loss. job log m325tracefw() now contain duplicated traced flow paths. job logs m325tracefw() m325tracebw() now contain loss, flux, Q. function m325tracebw()now can trace partially sensor-equipped district networks. functions m325dropt() m325tracebwm() excluded. functions flux_loss() loss_flux() added convert specific heat loss power, [kcal/m/h] , heat flux, [W/m^2]. heat loss related terminology clarified adjusted: terms specific heat loss power, [kcal/m/h], heat flux, [W/m^2], viewed separately stay closely related. Term consumption replaced flow_rate.","code":""}] +[{"path":"/articles/Concepts.html","id":"developer-notes","dir":"Articles","previous_headings":"","what":"Developer notes","title":"Concepts and useful notes","text":"Aiming avoid portability accessibility problems made us search ways restrict source code development functionality external packages. Since functions native argument vectorization usage functions fast data.table framework strongly encouraged processing large data sets. purpose arguments package functions thoroughly checked type consistency physical sense using asserts tests checkmate package. Moreover, package documentation borrow type designations according checkmate notation.","code":""},{"path":[]},{"path":"/articles/Concepts.html","id":"corrosion-diagnostics","dir":"Articles","previous_headings":"Underlying concepts","what":"Corrosion diagnostics","title":"Concepts and useful notes","text":"recognized pipeline companies sections high pressure pipelines particularly installed number years ago, experienced corrosion. corrosion found, pipeline operators deeply concerned need method determining remaining strength corroded areas. corrosion penetrate pipe wall, pressure containing capability remaining pipe metal terms ability continue operate safely maximum allowable operating pressure (MAOP) pipeline system? Thus, one needs pipeline industry procedure help operators, particularly field personnel, make decisions existing pipelines, exposed purpose, whether corroded region may left service whether needs repaired replaced. determinations must based upon sound research extensive testing order provide safe conservative guidelines base field decisions. ASMEB31G-1991 ASME B31G-2012 codes proven sound seen successful use pipeline industry providing users required formalized framework long period time. failure pressure calculators b31gpf() b31gmodpf() widely used assessment POFs. preserve simplicity traditional inline measurements inspections hereinafter consider Analysis Level 1 R-package, since noted ASME B31G-2012 Level 1 evaluation quite suitable use prioritizing corrosion defects identified inline inspection. approaches operating corrosion data presented package aimed failure pressure calculations. Models like dnvpf(), shell92pf(), pcorrcpf() assume different shapes corrosion defects usage conditions cases. , encouraged first find model suitable solving real world problem. sake simplicity transparency next values describing technological conditions, material properties pipe defect parameters used arguments throughout functions concerning corrosion diagnostics: maop - maximum allowable operating pressure - MAOP PSI d - nominal outside diameter pipe, inch, mm wth - nominal wall thickness pipe, inch, mm smys - specified minimum yield stress - SMYS characteristics steel strength, PSI uts - ultimate tensile strength - UTS specified minimum tensile strength (SMTS) another characteristic steel strength, MPa depth - measured maximum depth corroded area, inch, mm l - measured maximum longitudinal length corroded area, inch, mm course development functionality package, revisions supplements existing concept excepted.","code":""},{"path":"/articles/Concepts.html","id":"probability-of-failure","dir":"Articles","previous_headings":"Underlying concepts","what":"Probability of failure","title":"Concepts and useful notes","text":"Consistent estimate failure pipeline systems plays critical role optimizing operation. prevent pipeline failures due growing corrosion defects necessary assess pipeline failure probability (POF) certain period, taking account actual level defectiveness. pipeline failure preceded limit state comes burst pressure, considered random variable, reaches unacceptable level, defect depth, also random variable, exceeds predetermined limit value. now methods existed give absolutely correct POF assessments. Nevertheless stochastic nature corrosion processes clearly suggests exploiting Monte-Carlo simulations (MC). Meanwhile lack comprehensive knowledge stochastic properties characteristics pipe defects aids embracing Principle maximum entropy allows avoid doubtful excessive preferences specifications choosing probability distribution models failure factors inline inspection measurements. Package function mepof() designed calculate probability failure (POF) corroded pipe MC, assigning maximum entropy stochastic nature corroded area length depth, well engineering characteristics pipe thermal-hydraulic regime parameters.","code":""},{"path":"/articles/Concepts.html","id":"heat-loss","dir":"Articles","previous_headings":"Underlying concepts","what":"Heat loss","title":"Concepts and useful notes","text":"Heat loss energy characteristic district heating networks. amount heat energy spent transportation distribution heat energy source consumers. Heat loss depends operating temperature, technical condition, volume configuration district heating network, well climatic factors. Heat loss additive sum heat losses individual pipeline segments. Determination heat loss pipeline segments hereinafter called heat loss localization. assumed actual heat loss (\\(Q_{\\text{AHL}}\\), [kcal]) pipeline segment certain period time (duration) two contributions: normative heat loss (\\(Q_{\\text{NHL}}\\), [kcal])) extra-normative heat loss (\\(Q_{\\text{ExNHL}}\\), [kcal])). can write: \\[ Q_{\\text{AHL}} = Q_{\\text{NHL}} + Q_{\\text{ExNHL}},\\ Q_{\\text{ExNHL}}> 0 \\] Localization \\(Q_{\\text{ExNHL}}\\) important part health maintenance activities district heating network operation. One can determine \\(Q_{\\text{ExNHL}}\\) pipeline segment positive difference \\(Q_{\\text{AHL}}\\) \\(Q_{\\text{NHL}}\\) natural way. purpose Minenergo-325 Minenergo-278 methods postulating \\(Q_{\\text{NHL}}\\) considered. Minenergo-325 lists legally affirmed maximum values specific heat loss power (\\(q_s\\), kcal/m/h) allowed fault-free steel pipes (see m325nhl()), normative heat loss L-meter length pipe duration \\(\\tau\\) \\[Q_{NHL} = L\\int_{\\tau}^{}q_s(\\tau)d\\tau\\] ℹ Specific heat loss power may also referred specific rate heat flow. Specific powers (specific rates heat flow) higher \\(q_s\\) contribute \\(Q_{\\text{ExNHL}}\\). Minenergo-278 gives mathematical models calculation specific heat loss power (\\(q_s\\)) function thermal-hydraulic regime technical condition pipeline segment (see m278hlcha(), m278hlund(), m278hlair()). Specific heat loss power (\\(q_{s}\\), kcal/m/h) cylindrical pipe can naturally expressed via value heat flux (\\(\\phi_q\\), W/m²) output pipe wall unit area: \\[q_s = \\frac{3600}{4186.8} \\cdot \\phi_q \\cdot \\pi d\\] \\(d\\), [m], outside diameter pipe, \\(\\frac{3600}{4186.8}\\pi = 2.701283\\) (kcal/h/W) dimension factor (see loss_flux(), flux_loss()). Heat loss power pipe (\\(q_p\\), kcal/hour) may calculated \\[q_p = q_s L\\] \\(L\\) pipe length.","code":""},{"path":"/articles/Concepts.html","id":"tracing-of-thermal-hydraulic-regime","dir":"Articles","previous_headings":"Underlying concepts","what":"Tracing of thermal-hydraulic regime","title":"Concepts and useful notes","text":"Localization extra-normative heat loss \\(Q_{\\text{ExNHL}}\\) performed know thermal-hydraulic regime district heating network pipeline segment. cases thermal-hydraulic field (values temperature, pressure heat carrier mass flow rate) measured heat-supply origins near consumers, .e. mostly terminal nodes pipeline network. Middle segments network rarely equipped thus sensor-measured. restoring thermal-hydraulic field pipeline segment can trace temperature, pressure heat-carrier flow rate using hydraulic thermal laws engineering characteristics pipe. Since normative values heat flux accessible calculations restored thermal-hydraulic field normative (actual) one. Nevertheless, even tracing small networks may produce local inconsistencies restored normative field facts signal possible extra-normative heat loss -situ. accordance sensor positions forward (see m325tracefw(), m325traceline()) backward (see m325tracebw(), m325traceline(forward = FALSE)) tracing can performed linear bunched pipelines (also massive data lack) basis Minenergo-325 norms.","code":""},{"path":"/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Yuri Possokhov. Author, maintainer.","code":""},{"path":"/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Possokhov Y (2022). pipenostics: R-package diagnostics, reliability predictive maintenance pipeline systems. SGC, Moscow, Russian Federation. https://omega1x.github.io/pipenostics/.","code":"@Manual{, title = {{pipenostics}: {R}-package for diagnostics, reliability and predictive maintenance of pipeline systems}, author = {Yuri Possokhov}, organization = {SGC}, address = {Moscow, Russian Federation}, year = {2022}, url = {https://omega1x.github.io/pipenostics/}, }"},{"path":"/index.html","id":"pipenostics","dir":"","previous_headings":"","what":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"R-package diagnostics, reliability predictive maintenance pipeline systems.","code":""},{"path":"/index.html","id":"intro","dir":"","previous_headings":"","what":"Intro","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"package aggregates extent separate knowledge concerning engineering, reliability, diagnostics predictive maintenance pipeline systems. present time package contains utilities processing corrosion data commonly gathered inline inspection, well empirical models calculations local thermal-hydraulic regimes district heating network.","code":""},{"path":"/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"stable version install CRAN: latest version leverage r-universe:","code":"install.packages(\"pipenostics\") install.packages(\"pipenostics\", repos = \"https://omega1x.r-universe.dev\")"},{"path":[]},{"path":"/index.html","id":"corrosion-diagnostics","dir":"","previous_headings":"Usage examples","what":"Corrosion diagnostics","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"using b31crvl() simply imitate output CRVL.BAS honored software determining allowable length maximum allowable working pressure presented ASME B31G-1991:","code":"library(pipenostics) 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"},{"path":"/index.html","id":"probability-of-failure","dir":"","previous_headings":"Usage examples","what":"Probability of failure","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"Let’s consider pipe district heating network transfers heat-carrier (water) inline inspection four corroded areas (defects) detected : whereas length defects greater 200 mm: Corrosion rates radial longitudinal directions well-known may vary range .01 - .30 mm/year: probabilities failure (POFs) related corroded area near: , POF pipe near value POF changes time. , year inline inspection pipe can get something near entire pipe get something near: Two years ago inline inspection pipe state rather good: entire pipe get something near:","code":"diameter <- 762 # [mm] wall_thickness <- 10 # [mm] UTS <- 434.3697 # [MPa] operating_pressure <- 0.588399 # [MPa] temperature <- 95 # [°C] depth <- c(2.45, 7.86, 7.93, 8.15) # [mm] length <- rep(200, 4) # [mm] print(length) [1] 200 200 200 200 rar = function(n) stats::runif(n, .01, .30) / 365 ral = function(n) stats::runif(n, .01, .30) / 365 pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\") pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) [1] 0.000000 0.252935 0.368741 0.771299 print(max(pof)) [1] 0.771299 pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\", days = 365) pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) [1] 0.000000 0.526646 0.647422 0.928825 print(max(pof)) [1] 0.928825 pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\", days = -2 * 365) pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) [1] 0.000000 0.040849 0.072734 0.272358 print(max(pof)) [1] 0.272358"},{"path":"/index.html","id":"regime-tracing","dir":"","previous_headings":"Usage examples","what":"Regime tracing","title":"\n Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems","text":"Let’s consider next 4-segment tracing path: Suppose next sensor readings forward tracing: Let’s discharges network pipeline segment somehow determined calculated regime (red squares) forward tracing ℹ Read article Concepts useful notes deeper dive topic.","code":"t_fw <- 130 # [°C] p_fw <- 0.588399 # [MPa] g_fw <- 250 # [ton/hour] discharges <- seq(0, 30, 10) # [ton/hour] print(discharges) [1] 0 10 20 30 regime_fw <- m325traceline(t_fw, p_fw, g_fw, discharges, forward = TRUE) print(regime_fw) $temperature [1] 129.1799 128.4269 127.9628 127.3367 $pressure [1] 0.5878607 0.5874226 0.5872143 0.5870330 $flow_rate [1] 250 240 220 190"},{"path":"/reference/api5l3t.html","id":null,"dir":"Reference","previous_headings":"","what":"API 5L. Values of SMYS and UTS — api5l3t","title":"API 5L. Values of SMYS and UTS — api5l3t","text":"Data represents specified minimum yield strength (SMYS) ultimate tensile strength (UTS) achieved producing line pipes according API SPECIFICATION 5L.","code":""},{"path":"/reference/api5l3t.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"API 5L. Values of SMYS and UTS — api5l3t","text":"","code":"api5l3t"},{"path":"/reference/api5l3t.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"API 5L. Values of SMYS and UTS — api5l3t","text":"data frame 11 rows 3 variables: grade designation standard grade manufactured pipe. Type: assert_character. smys SMYS - specified minimum yield strength, [psi]. Type: assert_double. uts UTS - ultimate tensile strength, [psi]. Type: assert_double.","code":""},{"path":"/reference/api5l3t.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"API 5L. Values of SMYS and UTS — api5l3t","text":"https://law.resource.org/pub/us/cfr/ibr/002/api.5l.2004.pdf","code":""},{"path":"/reference/b31crvl.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"Imitation CVRL.BAS computer program presented ASME B31G-1991 Appendix determining allowable length allowable operating pressure","code":""},{"path":"/reference/b31crvl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"","code":"b31crvl(maop, d, wth, smys, def = 0.72, depth, l)"},{"path":"/reference/b31crvl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. def appropriate (combined) design factor ASME B31.4, ASME B31.8, ASME B31.11, []. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31crvl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"Object S3-class crvl data.frame next numeric columns: maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. def appropriate (combined) design factor ASME B31.4, ASME B31.8, ASME B31.11, []. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudial length corroded area, [inch]. Type: assert_double. status Operational status pipe: 1 - excellent, 2 - monitoring recommended, 3 - alert! replace pipe immediately! Type: assert_numeric. design_pressure design pressure pipe, [PSI]. Type: assert_double. safe_pressure safe maximum pressure corroded area, [PSI]. Type: assert_double. pressure_exceeding whether operator's action required reduce MOAP lower maximum safe pressure corroded area. Type: assert_logical. allowed_corrosion_depth allowable depth corroded area, [inch]. Type: assert_double. intermediate factor related geometry corroded area, []. Type: assert_double. allowed_corrosion_length allowable length corroded area, [inch]. Type: assert_double. AP another intermediate factor related geometry corroded area, []. Type: assert_double.","code":""},{"path":"/reference/b31crvl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"Columns maop, d, wth, smys, def, depth, l output data.frame come function's input, columns calculated. univariate case (lengths input vectors one) messages imitate CRVL.BAS console output printed.","code":""},{"path":"/reference/b31crvl.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"ASME B31 G-1991. Manual determining remaining strength corroded pipelines. supplement ASME B31G code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31crvl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Basic computer program CRVL.BAS — b31crvl","text":"","code":"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))"},{"path":"/reference/b31gacd.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"Calculate allowable depth corroded area pipe.","code":""},{"path":"/reference/b31gacd.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"","code":"b31gacd(dep, maop, d, wth, l)"},{"path":"/reference/b31gacd.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"dep design pressure pipe, [PSI]. Type: assert_double. maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gacd.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"allowable depth corroded area pipe, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gacd.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gacd.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Allowable corrosion depth in pipe — b31gacd","text":"","code":"library(pipenostics) b31gacd(1093, 910, 30, .438, 7.5) #> [1] 0.249 # [1] 0.249 # [inch]"},{"path":"/reference/b31gacl.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Allowable corrosion length in pipe — b31gacl","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"Calculate allowable length corroded area pipe.","code":""},{"path":"/reference/b31gacl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"","code":"b31gacl(dep, maop, d, wth, depth, l)"},{"path":"/reference/b31gacl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"dep design pressure pipe, [PSI]. Type: assert_double. maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gacl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"allowable length corroded area pipe, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gacl.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gacl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Allowable corrosion length in pipe — b31gacl","text":"","code":"library(pipenostics) b31gacl(1093, 910, 30, .438, .1, 7.5) #> [1] Inf # [1] Inf # [inch] - corrosion is low, no limit for the corroded area length b31gacl(438, 400, 20, .25, .18, 10) #> [1] 2.018 # [1] 2.018 # [inch] - finite allowed length of the corroded area"},{"path":"/reference/b31gafr.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. A-factor — b31gafr","title":"ASME B31G. A-factor — b31gafr","text":"Calculate intermediate factor related geometry corroded area.","code":""},{"path":"/reference/b31gafr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. A-factor — b31gafr","text":"","code":"b31gafr(d, wth, l)"},{"path":"/reference/b31gafr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. A-factor — b31gafr","text":"d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gafr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. A-factor — b31gafr","text":"Intermediate factor related geometry corroded area, []. Type: assert_double.","code":""},{"path":"/reference/b31gafr.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. A-factor — b31gafr","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gafr.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. A-factor — b31gafr","text":"","code":"library(pipenostics) b31gafr(30, .438, 7.5) #> [1] 1.847 # [1] 1.847 # A-factor is less than 5, so the corrosion is not critical"},{"path":"/reference/b31gdata.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Corrosion state of 12 pipes — b31gdata","title":"ASME B31G. Corrosion state of 12 pipes — b31gdata","text":"Data represents examples used verification computer program CRVL.BAS listed Appendix ASME B31G-1991.","code":""},{"path":"/reference/b31gdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Corrosion state of 12 pipes — b31gdata","text":"","code":"b31gdata"},{"path":"/reference/b31gdata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"ASME B31G. Corrosion state of 12 pipes — b31gdata","text":"data frame 12 rows 15 variables: maop maximum allowable operating pressure - MAOP, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. def appropriate (combined) design factor ASME B31.4, ASME B31.8, ASME B31.11, []. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double. status Operational status pipe: 1 - excellent, 2 - monitoring recommended, 3 - alert! replace pipe immediately! Type: assert_numeric. design_pressure design pressure pipe, [PSI]. Type: assert_double. safe_pressure safe maximum pressure corroded area, [PSI]. Type: assert_double. pressure_exceeding whether operator's action required reduce MOAP lower maximum safe pressure corroded area. . Type: assert_logical. allowed_corrosion_depth allowable depth corroded area, [inch]. Type: assert_double. intermediate factor related geometry corroded area, []. Type: assert_double. allowed_corrosion_length allowable length corroded area, [inch]. Type: assert_double. AP another intermediate factor related geometry corroded area, []. Type: assert_double.","code":""},{"path":"/reference/b31gdata.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"ASME B31G. Corrosion state of 12 pipes — b31gdata","text":"https://law.resource.org/pub/us/cfr/ibr/002/asme.b31g.1991.pdf","code":""},{"path":"/reference/b31gdep.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Design pressure of pipe — b31gdep","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"Calculate design pressure according ASME B31G-1991 conditioned construction characteristic way exceeded.","code":""},{"path":"/reference/b31gdep.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"","code":"b31gdep(d, wth, smys, def)"},{"path":"/reference/b31gdep.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. def appropriate (combined) design factor ASME B31.4, ASME B31.8, ASME B31.11, []. Type: assert_double.","code":""},{"path":"/reference/b31gdep.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"Design pressure pipe, [PSI]. Type: assert_double.","code":""},{"path":"/reference/b31gdep.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gdep.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Design pressure of pipe — b31gdep","text":"","code":"library(pipenostics) b31gdep(30, .438, 52e3, .72) #> [1] 1093.748 # [1] 1093.748 # [PSI]"},{"path":"/reference/b31gmodpf.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"Calculate failure pressure corroded pipe according Modified B31G, Level-1 algorithm listed ASME B31G-2012. next assumption corrosion shape adopted Modified B31G: dcor represents argument depth.","code":""},{"path":"/reference/b31gmodpf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"","code":"b31gmodpf(d, wth, smys, depth, l)"},{"path":"/reference/b31gmodpf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gmodpf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"Estimated failure pressure corroded pipe, [PSI]. Type: assert_double.","code":""},{"path":"/reference/b31gmodpf.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"Since definition flow stress, Sflow, ASME B31G-2012 recommended Level 1 follows: $$Sflow = 1.1SMYS$$ possibilities evaluation incorporated. code avoid possible semantic optimization preserve readability correlation original text description ASME B31G-2012. time source code estimated failure pressure preserves maximum affinity semantic description ASME B31G-2012. Numeric NAs may appear case prescribed conditions use offended.","code":""},{"path":"/reference/b31gmodpf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"ASME B31G-2012. Manual determining remaining strength corroded pipelines: supplement B31 Code pressure piping. S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7","code":""},{"path":[]},{"path":"/reference/b31gmodpf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Failure pressure of the corroded pipe (modified) — b31gmodpf","text":"","code":"library(pipenostics) ## Example: maximum percentage disparity of original B31G ## algorithm and modified B31G showed on CRVL.BAS data with(b31gdata, { original <- b31gpf(d, wth, smys, depth, l) modified <- b31gmodpf(d, wth, smys, depth, l) round(max(100*abs(1 - original/modified), na.rm = TRUE), 4) }) #> [1] 32.6666 ## Output: #[1] 32.6666 ## Example: plot disparity of original B31G algorithm and ## modified B31G showed on CRVL data with(b31gdata[-(6:7),], { b31g <- b31gpf(depth, wth, smys, depth, l) b31gmod <- b31gmodpf(depth, wth, smys, depth, l) axe_range <- range(c(b31g, b31gmod)) plot(b31g, b31g, type = 'b', pch = 16, xlab = 'Pressure, [PSI]', ylab = 'Pressure, [PSI]', main = 'Failure pressure method comparison', xlim = axe_range, ylim = axe_range) inc <- order(b31g) lines(b31g[inc], b31gmod[inc], type = 'b', col = 'red') legend('topleft', legend = c('B31G Original', 'B31G Modified'), col = c('black', 'red'), lty = 'solid') })"},{"path":"/reference/b31gops.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Operational status of pipe — b31gops","title":"ASME B31G. Operational status of pipe — b31gops","text":"Determine operational status pipe: excellent? technological control required? critical situation?","code":""},{"path":"/reference/b31gops.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Operational status of pipe — b31gops","text":"","code":"b31gops(wth, depth)"},{"path":"/reference/b31gops.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Operational status of pipe — b31gops","text":"wth nominal wall thickness pipe, [inch]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gops.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Operational status of pipe — b31gops","text":"Operational status pipe integer value: 1 - excellent 2 - monitoring recommended 3 - alert! replace pipe immediately! Type: assert_numeric assert_subset.","code":""},{"path":"/reference/b31gops.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Operational status of pipe — b31gops","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gops.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Operational status of pipe — b31gops","text":"","code":"library(pipenostics) b31gops(.438, .1) #> [1] 2 # [1] 2 # typical status for the most of pipes b31gops(.5, .41) #> [1] 3 # [1] 3 # alert! Corrosion depth is too high! Replace the pipe!"},{"path":"/reference/b31gpf.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"Calculate failure pressure corroded pipe according Original B31G, Level-1 algorithm listed ASME B31G-2012. next assumption corrosion shape adopted ASME B31G-2012: () parabolic (b) rectangular idealizations corroded area.","code":""},{"path":"/reference/b31gpf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"","code":"b31gpf(d, wth, smys, depth, l)"},{"path":"/reference/b31gpf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. smys specified minimum yield stress (SMYS) characteristics steel strength, [PSI]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gpf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"Estimated failure pressure corroded pipe, [PSI]. Type: assert_double.","code":""},{"path":"/reference/b31gpf.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"Since definition flow stress, Sflow, ASME B31G-2012 recommended Level 1 follows: $$Sflow = 1.1SMYS$$ possibilities evaluation incorporated. code avoid possible semantic optimization preserve readability correlation original text description ASME B31G-2012. time source code estimated failure pressure preserves maximum affinity semantic description ASME B31G-2012 slightly differs given Timashev et al. latter deviates 0.7 (b31gdata). Numeric NAs may appear case prescribed conditions use offended.","code":""},{"path":"/reference/b31gpf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"ASME B31G-2012. Manual determining remaining strength corroded pipelines: supplement B31 Code pressure piping. S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7","code":""},{"path":[]},{"path":"/reference/b31gpf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Failure pressure of the corroded pipe (original) — b31gpf","text":"","code":"library(pipenostics) ## Example: maximum percentage disparity of original B31G ## algorithm and modified B31G showed on CRVL.BAS data with(b31gdata, { original <- b31gpf(d, wth, smys, depth, l) modified <- b31gmodpf(d, wth, smys, depth, l) round(max(100*abs(1 - original/modified), na.rm = TRUE), 4) }) #> [1] 32.6666 ## Output: #[1] 32.6666 ## Example: plot disparity of original B31G algorithm and ## modified B31G showed on CRVL data with(b31gdata[-(6:7),], { b31g <- b31gpf(depth, wth, smys, depth, l) b31gmod <- b31gmodpf(depth, wth, smys, depth, l) axe_range <- range(c(b31g, b31gmod)) plot(b31g, b31g, type = 'b', pch = 16, xlab = 'Pressure, [PSI]', ylab = 'Pressure, [PSI]', main = 'Failure pressure method comparison', xlim = axe_range, ylim = axe_range) inc <- order(b31g) lines(b31g[inc], b31gmod[inc], type = 'b', col = 'red') legend('topleft', legend = c('B31G Original', 'B31G Modified'), col = c('black', 'red'), lty = 'solid') })"},{"path":"/reference/b31gsap.html","id":null,"dir":"Reference","previous_headings":"","what":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"Calculate safe maximum pressure corroded area pipe.","code":""},{"path":"/reference/b31gsap.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"","code":"b31gsap(dep, d, wth, depth, l)"},{"path":"/reference/b31gsap.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"dep design pressure pipe, [PSI]. Type: assert_double. d nominal outside diameter pipe, [inch]. Type: assert_double. wth nominal wall thickness pipe, [inch]. Type: assert_double. depth measured maximum depth corroded area, [inch]. Type: assert_double. l measured maximum longitudinal length corroded area, [inch]. Type: assert_double.","code":""},{"path":"/reference/b31gsap.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"Safe maximum pressure corroded area pipe, [PSI]. Type: assert_double.","code":""},{"path":"/reference/b31gsap.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"ASME B31G-1991. Manual determining remaining strength corroded pipelines. supplement ASTME B31 code pressure piping.","code":""},{"path":[]},{"path":"/reference/b31gsap.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ASME B31G. Safe maximum pressure for the corroded area of pipe — b31gsap","text":"","code":"library(pipenostics) b31gsap(1093, 30, .438, .1, 7.5) #> [1] 1093 # [1] 1093 # [PSI], safe pressure is equal to design pressure b31gsap(877, 24, .281, .08, 15) #> [1] 690 # [1] 690 # [PSI], safe pressure is lower than design pressure due corrosion"},{"path":"/reference/celsius.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert to Celsius scale — c_k","title":"Convert to Celsius scale — c_k","text":"Convert temperature measured Kelvin- Fahrenheit-scale Celsius (°C).","code":""},{"path":"/reference/celsius.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert to Celsius scale — c_k","text":"","code":"c_k(x) c_f(x)"},{"path":"/reference/celsius.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert to Celsius scale — c_k","text":"x temperature initial scale: c_k(x) - Kelvin-scale, [K] c_f(x) - Fahrenheit-scale, [°F] Type: assert_double.","code":""},{"path":"/reference/celsius.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert to Celsius scale — c_k","text":"temperature Celsius-scale, [°C]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/celsius.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert to Celsius scale — c_k","text":"","code":"library(pipenostics) # Convert from Kelvin to Celsius: c_k(c(0, 373.15)) #> [1] -273.15 100.00 # [1] -273.15 100 # Convert from Fahrenheit to Celsius: c_f(c(-459.67, 212)) #> [1] -273.15 100.00 # [1] -273.15 100"},{"path":"/reference/dnvpf.html","id":null,"dir":"Reference","previous_headings":"","what":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"Calculate failure pressure corroded pipe according Section 8.2 DNV-RP-F101. estimation valid single isolated metal loss defects corrosion/erosion type internal pressure loading considered. next assumption corrosion shape adopted DNV-RP-F101: dcor represents argument depth.","code":""},{"path":"/reference/dnvpf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"","code":"dnvpf(d, wth, uts, depth, l)"},{"path":"/reference/dnvpf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"d nominal outside diameter pipe, [mm]. Type: assert_double. wth nominal wall thickness pipe, [mm]. Type: assert_double. uts ultimate tensile strength (UTS) specified minimum tensile strength (SMTS) characteristic steel strength, [MPa]. Type: assert_double. depth measured maximum depth corroded area, [mm]. Type: assert_double. l measured maximum longitudinal length corroded area, [mm]. Type: assert_double.","code":""},{"path":"/reference/dnvpf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"Estimated failure pressure corroded pipe, [MPa]. Type: assert_double.","code":""},{"path":"/reference/dnvpf.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"contrast ASME B31G-2012 property pipe metal characterized specified minimum tensile strength - SMTS, [\\(N/mm^2\\)], SI default unit system. SMTS given linepipe steel material specifications (e.g. API 5L) material grade. time Timashev et al. used ultimate tensile strength - UTS place SMTS. , case quantities may used interchangeable way. Numeric NAs may appear case prescribed conditions use offended.","code":""},{"path":"/reference/dnvpf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"Recommended practice DNV-RP-F101. Corroded pipelines. DET NORSKE VERITAS, October 2010. ASME B31G-2012. Manual determining remaining strength corroded pipelines: supplement B31 Code pressure piping. S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7.","code":""},{"path":[]},{"path":"/reference/dnvpf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"DNV-RP-F101. Failure pressure of the corroded pipe — dnvpf","text":"","code":"library(pipenostics) d <- c(812.8, 219.0) # [mm] wth <- c( 19.1, 14.5) # [mm] uts <- c(530.9, 455.1) # [N/mm^2] l <- c(203.2, 200.0) # [mm] depth <- c( 13.4, 9.0) # [mm] dnvpf(d, wth, uts, depth, l) #> [1] 15.86626 34.01183 # [1] 15.86626 34.01183"},{"path":"/reference/dropg.html","id":null,"dir":"Reference","previous_headings":"","what":"Flow rate drop in pipe — dropg","title":"Flow rate drop in pipe — dropg","text":"Calculate drop recovery flow rate pipe using geometric factors. calculated value may positive negative. positive drop, .e. decrease flow rate outlet pipe consideration. calculated value negative recovery, .e. increase flow rate outlet pipe consideration. cases calculate flow rate outlet pipe consideration simply subtract calculated value sensor-measured flow rate inlet.","code":""},{"path":"/reference/dropg.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Flow rate drop in pipe — dropg","text":"","code":"dropg(adj = 0, d = 700, flow_rate = 250)"},{"path":"/reference/dropg.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Flow rate drop in pipe — dropg","text":"adj diameters adjacent pipes discharges recharges network occur, [mm]. Types: assert_double total diameter adjacent pipes (total diameter case) assert_list assert_double set diameters adjacent pipes (particular diameter case) Positive values diameters adjacent pipes correspond discharging process pipe, whereas negative values diameters mean recharging. See Details Examples explanations. d diameter pipe consideration, [mm]. Type: assert_double. flow_rate sensor-measured amount heat carrier (water) transferred inlet pipe period, [ton/hour]. Type: assert_double.","code":""},{"path":"/reference/dropg.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Flow rate drop in pipe — dropg","text":"flow rate drop recovery outlet pipe, [ton/hour], numeric vector. value positive drop, whereas recovery negative. cases calculate flow rate outlet pipe consideration simply subtract calculated value sensor-measured flow rate inlet. Type: assert_double.","code":""},{"path":"/reference/dropg.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Flow rate drop in pipe — dropg","text":"common sensor-measured flow rate undergoes discharges network recharges . calculation flow rate drop recovery next configuration district heating network segment assumed: Usually, additional sensors measure flow rate flow fork. case may operate geometric factors, .e. assuming flow rate proportional square pipe diameter. simple summation flow rates adjacent pipes produces required flow rate drop recovery located outlet pipe consideration. Since concurrency discharges recharges diameters discharge pipes regarded positive whereas diameters recharge pipes must negative. careful dealing geometric factors large amount recharges network: additional physical constraints thus calculated value recovery may non-sense.","code":""},{"path":[]},{"path":"/reference/dropg.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Flow rate drop in pipe — dropg","text":"","code":"library(pipenostics) # Let consider pipes according to network segment scheme depicted in figure # in [?dropg] help-page. # Typical large diameters of pipes under consideration, [mm]: d <- as.double(unique(subset(pipenostics::m325nhldata, diameter > 700)$diameter)) # Let sensor-measured flow rate in the inlet of pipe # under consideration be proportional to d, [ton/hour]: flow_rate <- .125*d # Let consider total diameter case when total diameters of adjacent pipes are no # more than d, [mm]: adj <- c(450, -400, 950, -255, 1152) # As at may be seen for the second and fourth cases they predominantly have # recharges from network. # Let calculate flow rate on the outlet of the pipe under consideration, # [ton/hour] result <- flow_rate - dropg(adj, d, flow_rate) print(result) #> [1] 75.96439 134.72222 65.70302 180.80580 78.05995 # [1] 75.96439 134.72222 65.70302 180.80580 78.05995 # For more clarity they may perform calculations in `data.table`."},{"path":"/reference/dropp.html","id":null,"dir":"Reference","previous_headings":"","what":"Pressure drop in pipe — dropp","title":"Pressure drop in pipe — dropp","text":"Calculate pressure drop straight cylidrical steel pipe district heating system ( water heat carrier) result pipe orientation space (hydrostatic component), friction water internal wall pipe.","code":""},{"path":"/reference/dropp.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pressure drop in pipe — dropp","text":"","code":"dropp( temperature = 130, pressure = mpa_kgf(6), flow_rate = 1276, d = 1, len = 1, roughness = 0.006, inlet = 0, outlet = 0, method = \"romeo\" )"},{"path":"/reference/dropp.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pressure drop in pipe — dropp","text":"temperature temperature heat carrier (water) inside pipe, [°C]. Type: assert_double. pressure absolute pressure heat carrier (water) measured entrance (inlet) pipe, [MPa]. Type: assert_double. flow_rate amount heat carrier (water) transferred pipe period, [ton/hour]. Type: assert_double. d internal diameter pipe, [m]. Type: assert_double. len pipe length, [m]. Type: assert_double. roughness roughness internal wall pipe, [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. method method determining Darcy friction factor. Type: assert_choice. (see Details)","code":""},{"path":"/reference/dropp.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pressure drop in pipe — dropp","text":"pressure drop outlet pipe, [MPa]. Type: assert_double.","code":""},{"path":"/reference/dropp.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Pressure drop in pipe — dropp","text":"underlying engineering model calculation pressure drop considers two contributions (components): Pressure drop due gravity (hydrostatic component). Pressure drop due friction. model consider size changes pipe presence fittings. first component depends pipe position space next figure illustrates adopted disposition pipe. , expression first component can written : $$g \\rho (outlet - inlet)$$ g - gravity factor, \\(m/s^2\\), \\(\\rho\\) - density water (heat carrier), \\(kg/m^3\\); inlet outlet appropriate pipe elevations (sea adopted level), \\(m\\). second component comes Darcy–Weisbach equation calculated using heating carrier regime parameters (temperature, pressure, flow_rate). Temperature pressure values heat carrier define water properties according IAPWS formulation. Several methods calculating Darcy friction factor possible limited next direct approximations Colebrook equation: romeo Romeo, Royo Monzon, 2002 vatankhan Vatankhan Kouchakzadeh, 2009 buzelli Buzzelli, 2008 According Brkic, 2011 approximations errors methods exceed 0.15 % combinations Reynolds numbers actual values internal wall roughness pipe.","code":""},{"path":"/reference/dropp.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Pressure drop in pipe — dropp","text":"W.Wagner et al. IAPWS Industrial Formulation 1997 Thermodynamic Properties Water Steam, J. Eng. Gas Turbines Power. Jan 2000, 122(1): 150-184 (35 pages) M.L.Huber et al.New International Formulation Viscosity \\(H_2O\\), Journal Physical Chemical Reference Data 38, 101 (2009); D.Brkic. Journal Petroleum Science Engineering, Vol. 77, Issue 1, April 2011, Pages 34-48. Romeo, E., Royo, C., Monzon, ., 2002. Improved explicit equation estimation friction factor rough smooth pipes. Chem. Eng. J. 86 (3), 369–374. Vatankhah, .R., Kouchakzadeh, S., 2009. Discussion: Exact equations pipeflow problems, P.K. Swamee P.N. Rathie. J. Hydraul. Res. IAHR 47 (7), 537–538. Buzzelli, D., 2008. Calculating friction one step. Mach. Des. 80 (12), 54–55.","code":""},{"path":[]},{"path":"/reference/dropp.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Pressure drop in pipe — dropp","text":"","code":"library(pipenostics) # Typical pressure drop for horizontal pipeline segments # in high-way heating network in Novosibirsk dropp(len = c(200, 300)) #> [1] 0.0007000666 0.0010500999 #[1] 0.0007000666 0.0010500999"},{"path":"/reference/dropt.html","id":null,"dir":"Reference","previous_headings":"","what":"Temperature drop in cylindrical steel pipe due heat loss — dropt","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"Calculate temperature drop steel pipe district heating system (water heat carrier) result heat loss pipe wall insulation.","code":""},{"path":"/reference/dropt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"","code":"dropt( temperature = 130, pressure = mpa_kgf(6), flow_rate = 250, loss_power = 7000 )"},{"path":"/reference/dropt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"temperature temperature heat carrier (water) inside pipe measured inlet pipe, [°C]. Type: assert_double. pressure absolute pressure heat carrier (water) inside pipe, [MPa]. Type: assert_double. flow_rate amount heat carrier (water) transferred pipe period, [ton/hour]. Type: assert_double. loss_power power heat loss - heat loss area pipe wall per hour, [kcal/hour]. Type: assert_double.","code":""},{"path":"/reference/dropt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"temperature drop outlet pipe, [°C]. Type: assert_double.","code":""},{"path":"/reference/dropt.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"Specific isobaric heat capacity used calculations calculated according IAPWS R7-97(2012) Region 1 since assumed state water district heating system always region.","code":""},{"path":[]},{"path":"/reference/dropt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Temperature drop in cylindrical steel pipe due heat loss — dropt","text":"","code":"library(pipenostics) # Calculate normative temperature drop based on Minenergo-325 for pipe segment pipeline <- list( year = 1968, laying = \"channel\", d = 700, # [mm] len = 1000 # [m] ) regime <- list( temperature = c(130, 150), # [°C] pressure = .588399, # [MPa] flow_rate = 250 # [ton/hour] ) pipe_loss_power <- do.call( m325nhl, c(pipeline, temperature = list(regime[[\"temperature\"]]), duration = 1) # [kcal/hour] ) temperature_drop <- dropt( temperature = regime[[\"temperature\"]], # [°C] loss_power = pipe_loss_power # [kcal/hour] ) # [°C] print(temperature_drop) #> [1] 1.366806 1.433840 # [1] 1.366806 1.433840"},{"path":"/reference/fahrenheit.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert to Fahrenheit scale — f_k","title":"Convert to Fahrenheit scale — f_k","text":"Convert temperature measured Kelvin- Celsius-scale Fahrenheit (°F).","code":""},{"path":"/reference/fahrenheit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert to Fahrenheit scale — f_k","text":"","code":"f_k(x) f_c(x)"},{"path":"/reference/fahrenheit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert to Fahrenheit scale — f_k","text":"x temperature initial scale: f_k(x) - Kelvin-scale, [K] f_c(x) - Celsius-scale, [°C] Type: assert_double.","code":""},{"path":"/reference/fahrenheit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert to Fahrenheit scale — f_k","text":"temperature Fahrenheit-scale, [°F]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/fahrenheit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert to Fahrenheit scale — f_k","text":"","code":"library(pipenostics) # Convert from Kelvin to Fahrenheit: f_k(c(0, 373.15)) #> [1] -459.67 212.00 # [1] -459.67 212 # Convert from Celsius to Fahrenheit: f_c(c(-273.15, 100)) #> [1] -459.67 212.00 # [1] -459.67, 212"},{"path":"/reference/flowls.html","id":null,"dir":"Reference","previous_headings":"","what":"List all possible flow paths in district heating network — flowls","title":"List all possible flow paths in district heating network — flowls","text":"Find list possible paths heat carrier flow (water) given topology district heating system.","code":""},{"path":"/reference/flowls.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"List all possible flow paths in district heating network — flowls","text":"","code":"flowls(sender = \"A\", acceptor = \"B\", use_cluster = FALSE)"},{"path":"/reference/flowls.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"List all possible flow paths in district heating network — flowls","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique. Type: type can painlessly coerced character .character. use_cluster utilize functionality parallel processing multi-core CPU. Type: assert_flag.","code":""},{"path":"/reference/flowls.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"List all possible flow paths in district heating network — flowls","text":"named list contains integer vectors elements. name element list name acceptor associated terminal node district heating network. vector list represents ordered sequence indexes acceptor enumerates incoming edges starting node terminal one. length returned list equal number terminal nodes topology considered. Type: assert_list.","code":""},{"path":"/reference/flowls.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"List all possible flow paths in district heating network — flowls","text":"branched topology without cycles considered one incoming edge exists every acceptor node. instance, m325testbench permitted topology. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench.","code":""},{"path":[]},{"path":"/reference/flowls.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"List all possible flow paths in district heating network — flowls","text":"","code":"library(pipenostics) # \\donttest{ # Find path from A to B in trivial line topology: flowls(\"A\", \"B\") #> $B #> [1] 1 #> # $B # [1] 1 # More complex example with two terminal nodes D and E: flowls(c(\"A\", \"B\", \"B\"), c(\"B\", \"D\", \"E\")) #> $D #> [1] 1 2 #> #> $E #> [1] 1 3 #> #$D #[1] 1 2 # #$E #[1] 1 3 # All possible flow paths in test bench illustrated in `?m325testbench`: all_paths <- list( c(12, 13, 11, 8, 4, 1), # hereinafter indexes of acceptor nodes c(12, 13, 11, 8, 4, 2), c(12, 13, 11, 8, 6, 5, 3), c(12, 13, 11, 8, 6, 7), c(12, 13, 11, 8, 6, 9), c(12, 13, 11, 10), c(12, 13, 14, 15), c(12, 13, 16, 17), c(12, 13, 16, 18, 20, 19), c(12, 13, 16, 18, 20, 21), c(12, 13, 16, 18, 22, 24), c(12, 13, 16, 18, 22, 25), c(12, 13, 16, 18, 20, 23, 26) ) # find those paths: path <- with(pipenostics::m325testbench, { flowls(sender, acceptor) }) path[[4]] #> [1] 12 13 11 8 6 7 # [1] 12 13 11 8 6 7 # }"},{"path":"/reference/flux.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert heat flux to specific heat loss power — loss_flux","title":"Convert heat flux to specific heat loss power — loss_flux","text":"Convert heat flux measured cylindrical steel pipe specific heat loss power pipe.","code":""},{"path":"/reference/flux.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert heat flux to specific heat loss power — loss_flux","text":"","code":"loss_flux(x, d, wth = 0) flux_loss(x, d, wth = 0)"},{"path":"/reference/flux.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert heat flux to specific heat loss power — loss_flux","text":"x value heat flux, [W/m^2], loss_flux(x, d, wth) specific heat loss power, [kcal/m/h], flux_loss(x, d, wth)(x) Type: assert_double. d outside (wth = 0) internal (wth > 0) diameter cylindrical pipe, [m]. Type: assert_double. wth wall thickness pipe, [mm], 0 argument d outside diameter pipe. Type: assert_double.","code":""},{"path":"/reference/flux.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert heat flux to specific heat loss power — loss_flux","text":"value specific heat loss power, [kcal/m/h], loss_flux(x, d, wth) heat flux, [W/m^2], flux_loss(x, d, wth)(x) Type: assert_double.","code":""},{"path":[]},{"path":"/reference/flux.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert heat flux to specific heat loss power — loss_flux","text":"","code":"library(pipenostics) # Consider pipes: diameter <- c(998, 1395) # [mm] wall_thikness <- c( 2, 5) # [mm] # Then maximum possible normative neat loss according (Minenergo-325) for # these pipe diameters are loss_max <- c(218, 1040) # [kcal/m/h] # The appropriate flux is flux <- flux_loss(loss_max, diameter * 1e-3, wall_thikness) print(flux) #> [1] 80.70238 275.00155 # [1] 80.70238 275.00155 # [W/m^2] stopifnot( all.equal(loss_flux(flux, diameter * 1e-3, wall_thikness), loss_max, tolerance = 5e-6) )"},{"path":"/reference/fric_buzelli.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"Estimate Darcy friction factor explicitly extremely accurate Buzelli approximation Colebrook equation.","code":""},{"path":"/reference/fric_buzelli.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"","code":"fric_buzelli(reynolds, roughness = 0, strict = FALSE)"},{"path":"/reference/fric_buzelli.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"reynolds Reynolds number, []. Type: assert_double. roughness relative roughness, []. Type: assert_double. strict calculate inside precision region. Type: assert_flag.","code":""},{"path":"/reference/fric_buzelli.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"pipe friction factor, []. Type: assert_double.","code":""},{"path":"/reference/fric_buzelli.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"Buzelli's formula reported extremely accurate region: 3.0e3 <= reynolds <= 3.0e8 0 <= roughness <= 0.05 strict = TRUE mode argument values outside precision region allowed, whereas strict = FALSE either NAs generated case calculation laminar flow performed reynolds < 2100.0.","code":""},{"path":"/reference/fric_buzelli.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"Offor, U. Alabi, S. (2016) Accurate Computationally Efficient Explicit Friction Factor Model. Advances Chemical Engineering Science, 6, pp. 237-245. doi:10.4236/aces.2016.63024 . Buzzelli, D. (2008) Calculating friction one step. Machine Design, 80 (12), pp. 54–55.","code":""},{"path":[]},{"path":"/reference/fric_buzelli.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate pipe friction factor with Buzelli formula — fric_buzelli","text":"","code":"library(pipenostics) fric_buzelli(c(2118517, 2000, 2118517), c(1e-6, 70e-3/1, 7e-3/1)) #> [1] 0.01031468 0.03200000 0.03375076 # [1] 0.01031468 0.03200000 0.03375076 # [] fric_buzelli(c(2118517, 5500, 2118517), c(1e-6, 50e-3/1, 7e-3/1), TRUE) #> [1] 0.01031468 0.07556734 0.03375076 # [1] 0.01031468 0.07556734 0.03375076"},{"path":"/reference/fric_romeo.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate pipe friction factor with Romeo's formula — fric_romeo","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"Estimate Darcy friction factor explicitly extremely accurate Romeo-Royo-Monzón approximation Colebrook equation.","code":""},{"path":"/reference/fric_romeo.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"","code":"fric_romeo(reynolds, roughness = 0, strict = FALSE)"},{"path":"/reference/fric_romeo.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"reynolds Reynolds number, []. Type: assert_double. roughness relative roughness, []. Type: assert_double. strict calculate inside precision region. Type: assert_flag.","code":""},{"path":"/reference/fric_romeo.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"pipe friction factor, []. Type: assert_double.","code":""},{"path":"/reference/fric_romeo.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"Romeo's formula reported extremely accurate region: 3.0e3 <= reynolds <= 1.5e8 0.0 <= roughness <= 0.05 strict = TRUE mode argument values outside precision region allowed, whereas strict = FALSE either NAs generated case calculation laminar flow performed reynolds < 2100.0.","code":""},{"path":"/reference/fric_romeo.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"Offor, U. Alabi, S. (2016) Accurate Computationally Efficient Explicit Friction Factor Model. Advances Chemical Engineering Science, 6, pp. 237-245. doi:10.4236/aces.2016.63024 . Eva Romeo, Carlos Royo, Antonio Monzón, Improved explicit equations estimation friction factor rough smooth pipes, Chemical Engineering Journal, Volume 86, Issue 3, 2002, Pages 369-374, ISSN 1385-8947. doi:10.1016/S1385-8947(01)00254-6 .","code":""},{"path":[]},{"path":"/reference/fric_romeo.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate pipe friction factor with Romeo's formula — fric_romeo","text":"","code":"library(pipenostics) fric_romeo(c(2118517, 2000, 2118517), c(0, 70e-3/1, 7e-3/1)) #> [1] 0.01028473 0.03200000 0.03373215 # [1] 0.01028473 0.03200000 0.03373215 # [] fric_romeo(c(2118517, 3030, 2118517), c(0, 50e-3/1, 7e-3/1), TRUE) #> [1] 0.01028473 0.07859636 0.03373215 # [1] 0.01028473 0.07859636 0.03373215 # []"},{"path":"/reference/fric_vatankhan.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"Estimate Darcy friction factor explicitly extremely accurate Vatankhah-Kouchakzadeh approximation Colebrook equation.","code":""},{"path":"/reference/fric_vatankhan.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"","code":"fric_vatankhan(reynolds, roughness = 0, strict = FALSE)"},{"path":"/reference/fric_vatankhan.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"reynolds Reynolds number, []. Type: assert_double. roughness relative roughness, []. Type: assert_double. strict calculate inside precision region. Type: assert_flag.","code":""},{"path":"/reference/fric_vatankhan.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"pipe friction factor, []. Type: assert_double.","code":""},{"path":"/reference/fric_vatankhan.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"Vatankhah's formula reported extremely accurate region: 5.0e3 <= reynolds <= 1.0e8 1e-6 <= roughness <= 0.05 strict = TRUE mode argument values outside precision region allowed, whereas strict = FALSE either NAs generated case calculation laminar flow performed reynolds < 2100.0.","code":""},{"path":"/reference/fric_vatankhan.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"Offor, U. Alabi, S. (2016) Accurate Computationally Efficient Explicit Friction Factor Model. Advances Chemical Engineering Science, 6, pp. 237-245. doi:10.4236/aces.2016.63024 . Ali R. Vatankhah, Salah Kouchakzadeh (2009) Exact equations pipe-flow problems. Journal Hydraulic Research, 47:4, pp. 537-538, DOI: doi:10.1080/00221686.2009.9522031","code":""},{"path":[]},{"path":"/reference/fric_vatankhan.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate pipe friction factor with Vatankhah formula — fric_vatankhan","text":"","code":"library(pipenostics) fric_vatankhan(c(2118517, 2000, 2118517), c(1e-6, 70e-3/1, 7e-3/1)) #> [1] 0.01031665 0.03200000 0.03375210 # [1] 0.01031665 0.03200000 0.03375210 # [] fric_vatankhan(c(2118517, 5500, 2118517), c(1e-6, 50e-3/1, 7e-3/1), TRUE) #> [1] 0.01031665 0.07556163 0.03375210 # [1] 0.01031665 0.07556163 0.03375210"},{"path":"/reference/geodist.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate geographical metrics — geoarea","title":"Calculate geographical metrics — geoarea","text":"Calculate geographical metrics (distance, area) two three geographical locations.","code":""},{"path":"/reference/geodist.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate geographical metrics — geoarea","text":"","code":"geoarea(lat1, lon1, lat2, lon2, lat3, lon3, earth = 6371008.7714) geodist(lat1, lon1, lat2, lon2, earth = 6371008.7714)"},{"path":"/reference/geodist.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate geographical metrics — geoarea","text":"lat1 latitude first geographical location, [DD]. Type: assert_double. lon1 longitude first geographical location, [DD]. Type: assert_double. lat2 latitude second geographical location, [DD]. Type: assert_double. lon2 longitude second geographical location, [DD]. Type: assert_double. lat3 latitude third geographical location, [DD]. Type: assert_double. lon3 longitude third geographical location, [DD]. Type: assert_double. earth Earth radius, [m]. See Details. Type: assert_numeric.","code":""},{"path":"/reference/geodist.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate geographical metrics — geoarea","text":"geodist: distance two geographical locations, [m]. geoarea: area spherical triangle three geographical locations, [km^2]. Type: assert_double.","code":""},{"path":"/reference/geodist.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate geographical metrics — geoarea","text":"geodist calculates distance two geographical locations Earth, whereas geoarea calculates area spherical triangle three geographical locations. functions use absolute positions geographical locations described geographical coordinate system decimal degrees units denoted DD. haversine formula applied calculate distance, spherical model Earth considered functions. Since several variants Earth radius can accepted, user welcome provide value. WGS-84 mean radius semi-axes, \\(R_1\\), default value. resulting distance expressed metres (m), whereas area expressed square kilometers(km^2).","code":""},{"path":[]},{"path":"/reference/geodist.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate geographical metrics — geoarea","text":"","code":"library(pipenostics) # Consider the longest linear pipeline segment in Krasnoyarsk, [DD]: pipe <- list( lat1 = 55.98320350, lon1 = 92.81257226, lat2 = 55.99302417, lon2 = 92.80691885 ) # and some official Earth radii, [m]: R <- c( nominal_zero_tide_equatorial = 6378100.0000, nominal_zero_tide_polar = 6356800.0000, equatorial_radius = 6378137.0000, semiminor_axis_b = 6356752.3141, polar_radius_of_curvature = 6399593.6259, mean_radius_R1 = 6371008.7714, same_surface_R2 = 6371007.1810, same_volume_R3 = 6371000.7900, WGS84_ellipsoid_axis_a = 6378137.0000, WGS84_ellipsoid_axis_b = 6356752.3142, WGS84_ellipsoid_curvature_c = 6399593.6258, WGS84_ellipsoid_R1 = 6371008.7714, WGS84_ellipsoid_R2 = 6371007.1809, WGS84_ellipsoid_R3 = 6371000.7900, GRS80_axis_a = 6378137.0000, GRS80_axis_b = 6356752.3141, spherical_approx = 6366707.0195, meridional_at_the_equator = 6335439.0000, Chimborazo_maximum = 6384400.0000, Arctic_Ocean_minimum = 6352800.0000, Averaged_center_to_surface = 6371230.0000 ) # Calculate length of the pipeline segment for different radii: len <- with( pipe, vapply( R, geodist, double(1), lat1 = lat1, lon1 = lon1, lat2 = lat2, lon2 = lon2 ) ) print(range(len)) #> [1] 1140.823 1152.376 # [1] 1140.82331483 1152.37564656 # [m] # Consider some remarkable objects on Earth, [DD]: objects <- rbind( Mount_Kailash = c(lat = 31.069831297551982, lon = 81.31215667724196), Easter_Island_Moai = c(lat =-27.166873910247862, lon =-109.37092217323053), Great_Pyramid = c(lat = 29.979229451772856, lon = 31.13418110843685), Antarctic_Pyramid = c(lat = -79.97724194984573, lon = -81.96170583068950), Stonehendge = c(lat = 51.179036665131870, lon =-1.8262150017463086) ) # Consider all combinations of distances between them: path <- t(combn(rownames(objects), 2)) d <- geodist( lat1 = objects[path[, 1], \"lat\"], lon1 = objects[path[, 1], \"lon\"], lat2 = objects[path[, 2], \"lat\"], lon2 = objects[path[, 2], \"lon\"] )*1e-3 cat( paste( sprintf(\"%s <--- %1.4f km ---> %s\", path[, 1], d, path[, 2]), collapse = \"\\n\" ) ) #> Mount_Kailash <--- 18890.9362 km ---> Easter_Island_Moai #> Mount_Kailash <--- 4765.7923 km ---> Great_Pyramid #> Mount_Kailash <--- 14523.7267 km ---> Antarctic_Pyramid #> Mount_Kailash <--- 6917.4240 km ---> Stonehendge #> Easter_Island_Moai <--- 16164.4674 km ---> Great_Pyramid #> Easter_Island_Moai <--- 6010.1422 km ---> Antarctic_Pyramid #> Easter_Island_Moai <--- 13520.3511 km ---> Stonehendge #> Great_Pyramid <--- 13726.9374 km ---> Antarctic_Pyramid #> Great_Pyramid <--- 3595.6153 km ---> Stonehendge #> Antarctic_Pyramid <--- 15396.3978 km ---> Stonehendge # Consider two areas # * Bermuda triangle * Polynesian Triangle lat1 <- c(Miami = 25.789106, Hawaii = 19.820680) lon1 <- c(Miami = -80.226529, Hawaii = -155.467989) lat2 <- c(Bermuda = 32.294887, NewZeland = -43.443219) lon2 <- c(Bermuda = -64.781380, NewZeland = 170.271360) lat3 <- c(SanJuan = 18.466319, EasterIsland = -27.112701) lon3 <- c(SanJuan = -66.105743, EasterIsland = -109.349668) # Area provided by manually operated Google Earth: GETriangleArea <- c( Bermuda = 1147627.48, # [km^2] Polynesian = 28775517.77 # [km^2] ) # Show the discrepancy in calculations, [km^2]: print(geoarea(lat1, lon1, lat2, lon2, lat3, lon3)) #> [1] 1147628 28775529 # Bermuda Polynesian # 0.4673216 11.1030971"},{"path":"/reference/inch_mm.html","id":null,"dir":"Reference","previous_headings":"","what":"Millimeters to inches — inch_mm","title":"Millimeters to inches — inch_mm","text":"Convert length measured millimeters (mm) inches","code":""},{"path":"/reference/inch_mm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Millimeters to inches — inch_mm","text":"","code":"inch_mm(x)"},{"path":"/reference/inch_mm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Millimeters to inches — inch_mm","text":"x length measured millimeters, [mm]. Type: assert_double.","code":""},{"path":"/reference/inch_mm.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Millimeters to inches — inch_mm","text":"length inches, [inch]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/inch_mm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Millimeters to inches — inch_mm","text":"","code":"library(pipenostics) inch_mm(c(25.4, 1)) #> [1] 1.00000000 0.03937008 # [1] 1.00000000 0.03937008 # [inch]"},{"path":"/reference/kelvin.html","id":null,"dir":"Reference","previous_headings":"","what":"Covert to Kelvin scale — k_c","title":"Covert to Kelvin scale — k_c","text":"Convert temperature measured Celsius- Fahrenheit-scale Kelvin (K).","code":""},{"path":"/reference/kelvin.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Covert to Kelvin scale — k_c","text":"","code":"k_c(x) k_f(x)"},{"path":"/reference/kelvin.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Covert to Kelvin scale — k_c","text":"x temperature initial scale: k_c(x) - Celsius-scale, [°C] k_f(x) - Fahrenheit-scale, [°F] Type: assert_double.","code":""},{"path":"/reference/kelvin.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Covert to Kelvin scale — k_c","text":"temperature Kelvin-scale, [K]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/kelvin.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Covert to Kelvin scale — k_c","text":"","code":"library(pipenostics) # Convert from Celsius to Kelvin: k_c(c(-273.15, 100)) #> [1] 0.00 373.15 # [1] 0 373.15 # Convert from Fahrenheit to Kelvin: k_f(c(-459.67, 212)) #> [1] 0.00 373.15 # [1] 0 373.15"},{"path":"/reference/kgf_mpa.html","id":null,"dir":"Reference","previous_headings":"","what":"Megapascals to kilogram-force per square — kgf_mpa","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"Convert pressure (stress) measured megapascals (MPa) kilogram-force per square cm (\\(kgf/cm^2\\)).","code":""},{"path":"/reference/kgf_mpa.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"","code":"kgf_mpa(x)"},{"path":"/reference/kgf_mpa.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"x pressure (stress) measured megapascals, [MPa]. Type: assert_double.","code":""},{"path":"/reference/kgf_mpa.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"pressure (stress) kilogram-force per square cm, [kgf/cm^2]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/kgf_mpa.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Megapascals to kilogram-force per square — kgf_mpa","text":"","code":"library(pipenostics) kgf_mpa(c(0.0980665, 1)) #> [1] 1.00000 10.19716 # [1] 1.00000 10.19716"},{"path":"/reference/m278hlair.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"Calculate normative heat loss open-air supplying pipe function construction, operation, technical condition specifications according Appendix 5.1 Minenergo Method 278. type calculations usually made design stage district heating network (water heat carrier) closely related building codes regulations.","code":""},{"path":"/reference/m278hlair.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"","code":"m278hlair( t1 = 110, t2 = 60, t0 = 5, insd1 = 0.1, insd2 = insd1, d1 = 0.25, d2 = d1, lambda1 = 0.09, lambda2 = 0.07, k1 = 1, k2 = k1, lambda0 = 26, len = 1, duration = 1 )"},{"path":"/reference/m278hlair.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"t1 temperature heat carrier (water) inside supplying pipe, [°C]. Type: assert_double. t2 temperature heat carrier (water) inside returning pipe, [°C]. Type: assert_double. t0 temperature environment, [°C]. case open-air pipe ambient temperature. Type: assert_double. insd1 thickness insulator covers supplying pipe, [m]. Type: assert_double. insd2 thickness insulator covers returning pipe, [m]. Type: assert_double. d1 outside diameter supplying pipe, [m]. Type: assert_double. d2 outside diameter returning pipe, [m]. Type: assert_double. lambda1 thermal conductivity insulator covers supplying pipe [W/m/°C]. Type: assert_double. lambda2 thermal conductivity insulator covers returning pipe [W/m/°C]. assert_double. k1 technical condition factor insulator supplying pipe, []. Type: assert_double. k2 technical condition factor insulator returning pipe, []. Type: assert_double. lambda0 thermal conductivity environment, [W/m/°C]. case overhead laying thermal conductivity open air. Type: assert_double. len length supplying pipe, [m]. Type: assert_double. duration duration heat loss, [hour]. Type: assert_double.","code":""},{"path":"/reference/m278hlair.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"Normative heat loss open-air layed supplying cylindrical pipe duration, [kcal]. len pipe 1 m (meter) well duration set 1 h (hour) (default values) return value also specific heat loss power, [kcal/m/h] comparable prescribed Minenergo Order 325. Type: assert_double.","code":""},{"path":"/reference/m278hlair.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"Details using k1 k2 m278hlcha.","code":""},{"path":[]},{"path":"/reference/m278hlair.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-278. Normative heat loss of open-air pipe — m278hlair","text":"","code":"library(pipenostics) m278hlair() #> [1] 138.7736 # [1] 138.7736"},{"path":"/reference/m278hlcha.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"Calculate normative heat loss supplying pipe mounted underground channel function construction, operation, technical condition specifications according Appendix 5.1 Minenergo Method 278. type calculations usually made design stage district heating network (water heat carrier) closely related building codes regulations.","code":""},{"path":"/reference/m278hlcha.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"","code":"m278hlcha( t1 = 110, t2 = 60, t0 = 5, insd1 = 0.1, insd2 = insd1, d1 = 0.25, d2 = d1, lambda1 = 0.09, lambda2 = 0.07, k1 = 1, k2 = k1, lambda0 = 1.74, z = 2, b = 0.5, h = 0.5, len = 1, duration = 1 )"},{"path":"/reference/m278hlcha.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"t1 temperature heat carrier (water) inside supplying pipe, [°C]. Type: assert_double. t2 temperature heat carrier (water) inside returning pipe, [°C]. Type: assert_double. t0 temperature environment, [°C]. case channel laying temperature subsoil. Type: assert_double. insd1 thickness insulator covers supplying pipe, [m]. Type: assert_double. insd2 thickness insulator covers returning pipe, [m]. Type: assert_double. d1 outside diameter supplying pipe, [m]. Type: assert_double. d2 outside diameter returning pipe, [m]. Type: assert_double. lambda1 thermal conductivity insulator covers supplying pipe [W/m/°C]. Type: assert_double. lambda2 thermal conductivity insulator covers returning pipe [W/m/°C]. Type: assert_double. k1 technical condition factor insulator supplying pipe, []. Type: assert_double. k2 technical condition factor insulator returning pipe, []. Type: assert_double. lambda0 thermal conductivity environment, [W/m/°C]. case channel laying thermal conductivity subsoil. Type: assert_double. z channel laying depth, [m]. Type: assert_double. b channel width, [m]. Type: assert_double. h channel height, [m]. Type: assert_double. len length supplying pipe, [m]. Type: assert_double. duration duration heat loss, [hour]. Type: assert_double.","code":""},{"path":"/reference/m278hlcha.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"Normative heat loss supplying cylindrical pipe mounted channel duration, [kcal]. len pipe 1 m (meter) well duration set 1 h (hour) (default values) return value also specific heat loss power, [kcal/m/h] comparable prescribed Minenergo Order 325. Type: assert_double.","code":""},{"path":"/reference/m278hlcha.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"k1 k2 factor values equal 1 mean best technical condition insulation appropriate pipes, whereas poor technical state factor values tends 5 . Nevertheless, k1 k2 equal 1 calculated specific heat loss power [kcal/m/h] sometimes higher listed Minenergo Order 325. One consider situation choosing method heat loss calculations.","code":""},{"path":[]},{"path":"/reference/m278hlcha.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-278. Normative heat loss of pipe in channel — m278hlcha","text":"","code":"library(pipenostics) m278hlcha() #> [1] 86.92977 # ## Naive way to find out technical state (factors k1 and k2) for pipe ## segments constructed in 1980: optim( par = c(1.5, 1.5), fn = function(x) { # functional to optimize abs( m278hlcha(k1 = x[1], k2 = x[2]) - m325nhl(year = 1980, laying = \"channel\", d = 250, temperature = 110) ) }, method = \"L-BFGS-B\", lower = 1.01, upper = 4.4 )$par #> [1] 4.285442 4.323628 # [1] 4.285442 4.323628"},{"path":"/reference/m278hlund.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"Calculate normative heat loss supplying underground pipe function construction, operation, technical condition specifications according Appendix 5.1 Minenergo Method 278. type calculations usually made design stage district heating network (water heat carrier) closely related building codes regulations.","code":""},{"path":"/reference/m278hlund.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"","code":"m278hlund( t1 = 110, t2 = 60, t0 = 5, insd1 = 0.1, insd2 = insd1, d1 = 0.25, d2 = d1, lambda1 = 0.09, lambda2 = 0.07, k1 = 1, k2 = k1, lambda0 = 1.74, z = 2, s = 0.55, len = 1, duration = 1 )"},{"path":"/reference/m278hlund.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"t1 temperature heat carrier (water) inside supplying pipe, [°C]. Type: assert_double. t2 temperature heat carrier (water) inside returning pipe, [°C]. Type: assert_double. t0 temperature environment, [°C]. underground pipe temperature subsoil. Type: assert_double. insd1 thickness insulator covers supplying pipe, [m]. Type: assert_double. insd2 thickness insulator covers returning pipe, [m]. Type: assert_double. d1 outside diameter supplying pipe, [m]. Type: assert_double. d2 outside diameter returning pipe, [m]. Type: assert_double. lambda1 thermal conductivity insulator covers supplying pipe [W/m/°C]. Type: assert_double. lambda2 thermal conductivity insulator covers returning pipe [W/m/°C]. Type: assert_double. k1 technical condition factor insulator supplying pipe, []. Type: assert_double. k2 technical condition factor insulator returning pipe, []. Type: assert_double. lambda0 thermal conductivity environment, [W/m/°C]. underground pipe thermal conductivity subsoil. Type: assert_double. z underground laying depth supplying pipe, [m]. Type: assert_double. s distance supplying returning pipes, [m]. Type: assert_double. len length supplying pipe, [m]. Type: assert_double. duration duration heat loss, [hour]. Type: assert_double.","code":""},{"path":"/reference/m278hlund.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"Normative heat loss supplying underground cylindrical pipe duration, [kcal]. len pipe 1 m (meter) well duration set 1 h (hour) (default values) return value also specific heat loss power, [kcal/m/h] comparable prescribed Minenergo Order 325. Type: assert_double.","code":""},{"path":"/reference/m278hlund.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"Details using k1 k2 m278hlcha.","code":""},{"path":[]},{"path":"/reference/m278hlund.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-278. Normative heat loss of underground pipe — m278hlund","text":"","code":"library(pipenostics) m278hlund() #> [1] 102.6226 # [1] 102.6226"},{"path":"/reference/m278insdata.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"Data represent values terms (intercept factor) calculating thermal conductivity pipe insulation linear function temperature heat carrier (water). values set different insulation materials Appendix 5.3 Minenergo Method 278 norms.","code":""},{"path":"/reference/m278insdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"","code":"m278insdata"},{"path":"/reference/m278insdata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"data frame 39 rows 4 variables: id Number insulation material table 5.1 Appendix 5.3 Minenergo Method 278. Type: assert_integerish. material Designation insulation material less similar table 5.1 Appendix 5.3 Minenergo Method 278. Type: assert_character. lambda Value intercept, [mW/m/°C]. Type: assert_integer. k Value factor. Type: assert_integer.","code":""},{"path":"/reference/m278insdata.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"https://docs.cntd.ru/document/1200035568","code":""},{"path":"/reference/m278insdata.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-278. Thermal conductivity terms of pipe insulation materials — m278insdata","text":"Usually data used directly. Instead use function m278inshcm.","code":""},{"path":[]},{"path":"/reference/m278inshcm.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"Get normative values thermal conductivity pipe insulation materials affirmed Minenergo Method 278 function temperature heat carrier (water).","code":""},{"path":"/reference/m278inshcm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"","code":"m278inshcm(temperature = 110, material = \"aerocrete\")"},{"path":"/reference/m278inshcm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"temperature temperature heat carrier (water) inside pipe, [°C]. Type: assert_double. material designation insulation material stated m278insdata, Type: assert_subset.","code":""},{"path":"/reference/m278inshcm.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"Thermal conductivity insulation materials given set temperatures, [W/m/°C], [W/m/K]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/m278inshcm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-278. Thermal conductivity of pipe insulation materials — m278inshcm","text":"","code":"library(pipenostics) # Averaged thermal conductivity of pipe insulation at 110 °C print(m278insdata) #> id material lambda k #> 1 1 asbestic_sovelite 87 120 #> 2 2 asbestic_glassfiber 58 230 #> 3 3 asbestic_cloth 130 260 #> 4 4 asbestic_cord 120 310 #> 5 5 asbestic_cord_common 130 260 #> 6 6 asbestic_cord_lint 93 200 #> 7 7 asbestic_vermiculite_250 81 200 #> 8 8 asbestic_vermiculite_300 87 230 #> 9 9 bituminous_pearlite 120 230 #> 10 10 bituminous_clay 130 230 #> 11 11 bituminous_vermiculite 130 230 #> 12 12 volcanite_300 74 150 #> 13 13 diatomite_500 116 230 #> 14 14 diatomite_600 140 230 #> 15 15 calcic_silicon_200 69 150 #> 16 16 mineral_wool_100 45 200 #> 17 17 mineral_wool_125 49 200 #> 18 18 mineral_wool_075 43 220 #> 19 19 glasfiber_00 40 260 #> 20 20 glasfiber_50 42 280 #> 21 21 aerocrete 110 300 #> 22 22 plastic 43 190 #> 23 23 polymer_concrete 70 0 #> 24 24 polyurethane 50 0 #> 25 25 perlite_cement_300 76 185 #> 26 26 perlite_cement_350 81 185 #> 27 27 mineral_wool_100_block 44 210 #> 28 28 mineral_wool_125_block 47 185 #> 29 29 mineral_wool_250 56 185 #> 30 30 glasfiber_75 44 230 #> 31 31 mineral_wool_150 49 200 #> 32 32 mineral_wool_200 52 185 #> 33 33 sovelite_350 76 185 #> 34 34 sovelite_400 78 185 #> 35 35 mineral_wool 69 190 #> 36 36 porous_plastic 50 0 #> 37 37 mineral_wool_200_cord 56 185 #> 38 38 mineral_wool_250_cord 58 185 #> 39 39 mineral_wool_300_cord 61 185 mean(m278inshcm(110, m278insdata[[\"material\"]])) #> [1] 0.09033974 # [1] 0.09033974 # [\\emph{W/m/°C}]"},{"path":"/reference/m278soildata.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","title":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","text":"Data represent normative values thermal conductivity subsoils can surround pipes according Table 5.3 Appendix 5.3 Minenergo Method 278.","code":""},{"path":"/reference/m278soildata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","text":"","code":"m278soildata"},{"path":"/reference/m278soildata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","text":"data frame 15 rows 3 variables: subsoil Geological name subsoil. Type: assert_character. state degree water penetration subsoil. Type: assert_character. lambda Value thermal conductivity subsoil regarding water penetration, [W/m/°C]. Type: assert_double.","code":""},{"path":"/reference/m278soildata.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Minenergo-278. Thermal conductivity of subsoil surrounding pipe — m278soildata","text":"https://docs.cntd.ru/document/1200035568","code":""},{"path":[]},{"path":"/reference/m325beta.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Local heat loss coefficient — m325beta","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"Calculate \\(\\beta\\) - local heat loss coefficient according rule 11.3.3 Minenergo Order 325. Local heat loss coefficient used increase normative heat loss pipe taking account heat loss fittings (shut-valves, compensators supports). coefficient applied mostly factor summation heat losses pipes pipeline leveraging formula 14 Minenergo Order 325.","code":""},{"path":"/reference/m325beta.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"","code":"m325beta(laying = \"channel\", d = 700)"},{"path":"/reference/m325beta.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"laying type pipe laying depicting position pipe space: air, channel, room, tunnel, underground. Type: assert_subset. d internal diameter pipe, [mm]. Type: assert_double.","code":""},{"path":"/reference/m325beta.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"Two possible values \\(\\beta\\): 1.2 1.15 depending pipe laying diameter. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/m325beta.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Local heat loss coefficient — m325beta","text":"","code":"library(pipenostics) norms <- within(m325nhldata, { beta <- m325beta(laying, as.double(diameter)) }) unique(norms$beta) #> [1] 1.15 1.20 # [1] 1.15 1.20"},{"path":"/reference/m325nhl.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Normative heat loss of pipe — m325nhl","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"Calculate normative heat loss pipe legally affirmed Minenergo Order 325.","code":""},{"path":"/reference/m325nhl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"","code":"m325nhl( year = 1986, laying = \"underground\", exp5k = TRUE, insulation = 0, d = 700, temperature = 110, len = 1, duration = 1, beta = FALSE, extra = 2 )"},{"path":"/reference/m325nhl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"year year pipe put operation laying total overhaul. Type: assert_integerish laying type pipe laying depicting position pipe space: air, channel, room, tunnel, underground. Type: assert_subset. exp5k pipe regime flag: pipe operated 5000 hours per year? Type: assert_logical. insulation insulation covers exterior pipe: 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_integer assert_subset. d internal diameter pipe, [mm]. Type: assert_double. temperature temperature heat carrier (water) inside pipe, [°C]. Type: assert_double. len length pipe, [m]. Type: assert_double. duration duration heat loss, [hour]. Type: assert_double. beta consider additional heat loss fittings? Type: assert_logical. extra number points used temperature extrapolation: 2, 3, 4. Type: assert_choice.","code":""},{"path":"/reference/m325nhl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"Normative heat loss cylindrical pipe duration, [kcal]. len pipe 1 m (meter) well duration set 1 h (hour) (default values) return value also specific heat loss power, [kcal/m/h], prescribed Minenergo Order 325. Type: assert_double.","code":""},{"path":"/reference/m325nhl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"Temperature extrapolation pipe diameter interpolation leveraged better accuracy. linear dictated Minenergo Order 325. Nevertheless, one control extrapolation behavior extra argument: use lower values extra soft curvature near extrapolation edges, higher values physically reasoned behavior far regions extrapolation.","code":""},{"path":[]},{"path":"/reference/m325nhl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Normative heat loss of pipe — m325nhl","text":"","code":"library(pipenostics) ## Consider a 1-meter length pipe with pipe_diameter <- 700.0 # [mm] pipe_dating <- 1980 pipe_laying <- \"underground\" ## Linear extrapolation adopted in Minenergo's Order 325 using last two points: operation_temperature <- seq(0, 270, 10) qs <- m325nhl( year = pipe_dating, laying = pipe_laying, d = pipe_diameter, temperature = operation_temperature ) # [kcal/m/h] plot( operation_temperature, qs, type = \"b\", main = \"Minenergo's Order 325. Normative heat loss of pipe\", sub = sprintf( \"%s pipe of diameter %i [mm] laid in %i\", pipe_laying, pipe_diameter, pipe_dating ), xlab = \"Temperature, [°C]\", ylab = \"Specific heat loss power, [kcal/m/h]\" ) ## Consider heat loss due fittings: operation_temperature <- 65 # [°C] fittings_qs <- m325nhl( year = pipe_dating, laying = pipe_laying, d = pipe_diameter, temperature = operation_temperature, beta = c(FALSE, TRUE) ) # [kcal/m/h] print(fittings_qs); stopifnot(all(round(fittings_qs ,1) == c(272.0, 312.8))) #> [1] 272.0 312.8 # [1] 272.0 312.8 # [kcal/m/h] ## Calculate heat flux: operation_temperature <- c(65, 105) # [°C] qs <- m325nhl( year = pipe_dating, laying = pipe_laying, d = pipe_diameter, temperature = operation_temperature ) # [kcal/m/h] print(qs) #> [1] 272.00 321.75 # [1] 272.00 321.75 # [kcal/m/h] pipe_diameter <- pipe_diameter * 1e-3 # [m] factor <- 2.701283 # [kcal/h/W] flux <- qs/factor/pipe_diameter -> a # heat flux, [W/m^2] print(flux) #> [1] 143.8470 170.1572 # [1] 143.8470 170.1572 # [W/m^2] ## The above line is equivalent to: flux <- flux_loss(qs, pipe_diameter) -> b stopifnot(all.equal(a, b, tolerance = 5e-6))"},{"path":"/reference/m325nhldata.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Normative heat loss data — m325nhldata","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"Data represent values specific heat loss power officially accepted Minenergo Order 325 norms. values maximums legally affirmed contribute normative heat loss \\(Q_NHL\\) district heating systems water heat carrier.","code":""},{"path":"/reference/m325nhldata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"","code":"m325nhldata"},{"path":"/reference/m325nhldata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"data frame 17328 rows 8 variables: source Identifier data source: identifiers suited glob t?p? mean appropriate table ?.? Minenergo Order 325; identifier sgc means values additionally postulated (see Details). Type: assert_character. epoch Year depicting epoch pipe put operation laying total overhaul. Type: assert_integer. laying Type pipe laying depicting position pipe space. five types pipe laying considered: air, channel, room, tunnel, underground. Type: assert_character. exp5k Logical indicator pipe regime: TRUE pipe operated 5000 hours per year. Type: assert_logical. insulation Identifier insulation covers exterior pipe: 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_integerish. diameter Nominal internal diameter pipe, [mm]. Type: assert_double. temperature Operational temperature pipe, [°C]. Type: assert_double. loss Normative value specific heat loss power equal heat flux output 1 meter length steel pipe hour, [kcal/m/hour]. Type: assert_double.","code":""},{"path":"/reference/m325nhldata.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"https://docs.cntd.ru/document/902148459","code":""},{"path":"/reference/m325nhldata.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Normative heat loss data — m325nhldata","text":"Data organized full factorial design, whereas factorial combinations Minenergo Order 325 provide values. cases values postulated practical reasons Siberian cities marked source label sgc. Usually data used directly. Instead use function m325nhl.","code":""},{"path":[]},{"path":"/reference/m325testbench.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Test bench of district heating network — m325testbench","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"Data describes virtual test bench branched district heating network exposing parameters associated Minenergo Order 325. treat data snapshot network state use primarily static thermal-hydraulic computations topology effects.","code":""},{"path":"/reference/m325testbench.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"","code":"m325testbench"},{"path":"/reference/m325testbench.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"data frame 22 rows (number nodes incoming edges) 15 variables: sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Snapshot thermal-hydraulic regime state: temperature heat carrier (water) sensor-measured terminal acceptor node, [°C]. Type: assert_double. NAs introduced nodes without temperature sensor. pressure Snapshot thermal-hydraulic regime state: sensor-measured absolute pressure heat carrier (water) inside pipe (.e. acceptor's incoming edge), [MPa]. Type: assert_double. NAs introduced nodes without pressure sensor. flow_rate Snapshot thermal-hydraulic regime state: sensor-measured amount heat carrier (water) terminal node transferred pipe (.e. acceptor's incoming edge) period, [ton/hour]. Type: assert_double. NAs introduced nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [m]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. year year pipe (.e. acceptor's incoming edge) put operation laying total overhaul. Type: assert_integerish. insulation identifier insulation covers exterior pipe (.e. acceptor's incoming edge): 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_integerish. laying type pipe laying depicting position pipe space. five types pipe laying considered: air, channel, room, tunnel, underground. Type: assert_character. beta logical indicator: consider additional heat loss fittings located pipe (.e. acceptor's incoming edge)? Type: assert_logical. exp5k logical indicator regime pipe (.e. acceptor's incoming edge): TRUE pipe operated 5000 hours per year. Type: assert_logical. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double.","code":""},{"path":"/reference/m325testbench.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"test bench next configuration: may seen figure particularity topology provided directed graph: node single ancestor. Hence one isomorphic representation directed graph data.frame row describes node along incoming edge column contains attribute value node attribute value incoming edge. Since deal incoming edges hence nodes flow acceptors natural enumeration nodes acceptor id. Note leverage igraph functionality plotting zero sender flow.","code":""},{"path":[]},{"path":"/reference/m325testbench.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Test bench of district heating network — m325testbench","text":"","code":"library(pipenostics) # Do not hesitate to use `data.table` and `igraph` for larger chunks of network. # Check for declared topology isomorphism: stopifnot( all(!duplicated(m325testbench$acceptor)) ) # Do all terminal nodes have sensor-measured regime parameters?: terminal_nodes <- subset(m325testbench, !(acceptor %in% sender)) stopifnot( all(!is.na(subset(terminal_nodes, select = c(temperature, pressure, flow_rate)))) )"},{"path":"/reference/m325tracebw.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow rate, ) bunched pipeline flow direction using norms heat loss values prescribed Minenergo Order 325. Algorithm also suits partially measurable district heating network massive data lack conditions, temperature pressure sensor readings majority terminal nodes.","code":""},{"path":"/reference/m325tracebw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"","code":"m325tracebw( sender = 6, acceptor = 7, temperature = 70, pressure = pipenostics::mpa_kgf(6), flow_rate = 20, d = 100, len = 72.446, year = 1986, insulation = 0, laying = \"tunnel\", beta = FALSE, exp5k = TRUE, roughness = 0.001, inlet = 0.5, outlet = 1, method = \"romeo\", opinion = \"median\", verbose = TRUE, csv = FALSE, file = \"m325tracebw.csv\" )"},{"path":"/reference/m325tracebw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Sensor-measured temperature heat carrier (water) sensor-measured terminal acceptor node, [°C]. Use NA_float_s (terminal) nodes without temperature sensor. Type: assert_double. pressure Sensor-measured absolute pressure heat carrier (water) inside pipe (.e. acceptor's incoming edge), [MPa]. Type: assert_double. flow_rate Sensor-measured amount heat carrier (water) terminal node transferred pipe (.e. acceptor's incoming edge) period, [ton/hour]. Type: assert_double. Use NA_float_s nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [mm]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. year year pipe (.e. acceptor's incoming edge) put operation laying total overhaul. Type: assert_integerish. insulation identifier insulation covers exterior pipe (.e. acceptor's incoming edge): 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_subset. laying type pipe laying depicting position pipe space. five types pipe laying considered: air, channel, room, tunnel, underground. Type: assert_subset. beta logical indicator: consider additional heat loss fittings located pipe (.e. acceptor's incoming edge)? Type: assert_logical. exp5k logical indicator regime pipe (.e. acceptor's incoming edge): TRUE pipe operated 5000 hours per year. Type: assert_logical. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. method method determining Darcy friction factor: romeo vatankhan buzelli Type: assert_choice. details see dropp. opinion method aggregating values regime parameters node next tracing step: mean values parameter averaged next tracing step median median parameter values used next tracing step Type: assert_choice. verbose logical indicator: watch tracing process console? Type: assert_flag. csv logical indicator: incrementally dump results csv- file tracing? Type: assert_flag. file name csv-file dump results . Type: assert_character length 1 can used safely create file write .","code":""},{"path":"/reference/m325tracebw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"data.frame containing results (detailed log) tracing narrow format: node Tracing job. Identifier node regime parameters calculated . Values vector identical argument acceptor. Type: assert_character. tracing Tracing job. Identifiers nodes regime parameters traced given node. Identifier sensor used values regime parameters node sensor readings. Type: assert_character. backward Tracing job. Identifier tracing direction. constantly equals TRUE. Type: assert_logical. aggregation Tracing job. Identifier aggregation method: span, median, mean, identity. Type: assert_character. loss Traced thermal hydraulic regime. Normative specific heat loss power adjacent pipe, [kcal/m/h]. Type: assert_double. flux Traced thermal hydraulic regime. Normative heat flux adjacent pipe, [W/m^2]. Type: assert_double. Q Traced thermal hydraulic regime. Normative heat loss adjacent pipe per day, [kcal]. Type: assert_character. temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water) associated node, [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) associated node, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) associated node, [ton/hour]. Type: assert_double. job Tracing job. Value tracing job counter. Type: assert_count. Type: assert_data_frame.","code":""},{"path":"/reference/m325tracebw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"consider topology district heating network represented m325testbench: network may partially sensor-equipped : latter case two nodes must equipped pressure temperature sensors whereas nodes flow rate sensors must installed. Tracing starts sensor-equipped nodes goes backwards, .e flow direction. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench. tracing starts next node, previously calculated values thermal-hydraulic parameters aggregated either averaging median. latter seems robust avoiding strong influence possible outliers may come actual heating transfer anomalies, erroneous sensor readings wrong pipeline specifications. Aggregation values flow rate node always sum.","code":""},{"path":[]},{"path":"/reference/m325tracebw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Massively trace backwards thermal-hydraulic regime for\n district heating network — m325tracebw","text":"","code":"library(pipenostics) ## It is possible to run without specification of argument values: m325tracebw() #> #> 2024-04-08 14:44:14.559807 m325tracebw | start backward tracing; segments 1; #> 2024-04-08 14:44:14.559807 m325tracebw | start job; job 0; #> 2024-04-08 14:44:14.559807 m325tracebw | now process; 1 node(s); [7] #> 2024-04-08 14:44:14.559807 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:14.559807 m325tracebw | tracing loss;; #> 2024-04-08 14:44:14.559807 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[7]; #> 2024-04-08 14:44:14.559807 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:14.559807 m325tracebw | OK! Heat flux traced from 1 nodes;[7]; #> 2024-04-08 14:44:14.559807 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:14.559807 m325tracebw | OK! Heat loss per day traced from 1 nodes;[7]; #> 2024-04-08 14:44:14.559807 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:14.559807 m325tracebw | OK! Temperature traced from 1 nodes;[7]; #> 2024-04-08 14:44:14.559807 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:14.559807 m325tracebw | OK! Pressure traced from 1 nodes;[7]; #> 2024-04-08 14:44:14.559807 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:14.559807 m325tracebw | finish job; job 0; processed node(s) 1 #> 2024-04-08 14:44:14.559807 m325tracebw | finish backward tracing;; #> node tracing backward aggregation loss flux Q temperature #> 1 7 sensor TRUE identity 78.4 279.0696 136314.4 70 #> span 7 sensor TRUE span 0.0 0.0000 0.0 0 #> median 7 sensor TRUE median 78.4 279.0696 136314.4 70 #> mean 7 sensor TRUE mean 78.4 279.0696 136314.4 70 #> pressure flow_rate job #> 1 0.588399 20 0 #> span 0.000000 20 0 #> median 0.588399 20 0 #> mean 0.588399 20 0 ## Consider isomorphic representation of District Heating Network graph: DHN <- pipenostics::m325testbench DHN$d <- 1e3*DHN$d # convert [m] to [mm] ## When tracing large network graphs put screen log to file output <- do.call(\"m325tracebw\", c(as.list(DHN), verbose = TRUE)) #> #> 2024-04-08 14:44:14.611048 m325tracebw | start backward tracing; segments 26; #> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 0; #> 2024-04-08 14:44:14.611048 m325tracebw | now process; 13 node(s); [1,10,15,17,19,2,21,24,25,26,3,7,9] #> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [13/13] are TP-sensor-equipped; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 13 nodes;[1,2,3,7,9,10,15,17,19,21,24,25,26]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 0; processed node(s) 13 #> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 1; #> 2024-04-08 14:44:14.611048 m325tracebw | now process; 5 node(s); [14,22,23,4,5] #> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 1; processed node(s) 5 #> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 2; #> 2024-04-08 14:44:14.611048 m325tracebw | now process; 2 node(s); [20,6] #> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 2; processed node(s) 2 #> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 3; #> 2024-04-08 14:44:14.611048 m325tracebw | now process; 2 node(s); [18,8] #> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 3; processed node(s) 2 #> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 4; #> 2024-04-08 14:44:14.611048 m325tracebw | now process; 2 node(s); [11,16] #> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 4; processed node(s) 2 #> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 5; #> 2024-04-08 14:44:14.611048 m325tracebw | now process; 1 node(s); [13] #> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[13]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 1 nodes;[13]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 1 nodes;[13]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 1 nodes;[13]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 1 nodes;[13]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 5; processed node(s) 1 #> 2024-04-08 14:44:14.611048 m325tracebw | start job; job 6; #> 2024-04-08 14:44:14.611048 m325tracebw | now process; 1 node(s); [12] #> 2024-04-08 14:44:14.611048 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing loss;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[12]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat flux traced from 1 nodes;[12]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Heat loss per day traced from 1 nodes;[12]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Temperature traced from 1 nodes;[12]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:14.611048 m325tracebw | OK! Pressure traced from 1 nodes;[12]; #> 2024-04-08 14:44:14.611048 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:14.611048 m325tracebw | finish job; job 6; processed node(s) 1 #> 2024-04-08 14:44:14.611048 m325tracebw | finish backward tracing;; ## Distinct options for opinion aggregation lead to distinct traced ## temperature and pressure: ## * When aggregation is by mean: output_mean <- do.call( \"m325tracebw\", c(as.list(DHN), verbose = FALSE, opinion = \"mean\") ) ## * When aggregation is by median: output_median <- do.call( \"m325tracebw\", c(as.list(DHN), verbose = FALSE, opinion = \"median\") ) ## The differences between aggregations should be: aggregation_differences <- c(delta_t = 0.03732, delta_p = 0.00139, delta_g = 0) print(aggregation_differences) #> delta_t delta_p delta_g #> 0.03732 0.00139 0.00000 ## Check: stopifnot( round( subset( output_mean, node == 13 & aggregation == \"median\", c(\"temperature\", \"pressure\", \"flow_rate\") ) - subset( output_median, node == 13 & aggregation == \"median\", c(\"temperature\", \"pressure\", \"flow_rate\") ), 5 # difference between aggregation options ) == aggregation_differences ) ## It is possible to process partially measurable District Heating Network: ## * Simulate lack of temperature and pressure sensors: DHN[c(7, 10, 21, 24), c(\"temperature\", \"pressure\")] <- NA_real_ ## Trace thermal-hydraulic regime output <- do.call(\"m325tracebw\", c(as.list(DHN))) #> #> 2024-04-08 14:44:15.090308 m325tracebw | start backward tracing; segments 26; #> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 0; #> 2024-04-08 14:44:15.090308 m325tracebw | now process; 13 node(s); [1,10,15,17,19,2,21,24,25,26,3,7,9] #> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [9/13] are TP-sensor-equipped; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 9 nodes;[1,2,3,9,15,17,19,25,26]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 0; processed node(s) 13 #> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 1; #> 2024-04-08 14:44:15.090308 m325tracebw | now process; 5 node(s); [14,22,23,4,5] #> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 5 nodes;[4,5,14,22,23]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 1; processed node(s) 5 #> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 2; #> 2024-04-08 14:44:15.090308 m325tracebw | now process; 2 node(s); [20,6] #> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 2 nodes;[6,20]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 2; processed node(s) 2 #> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 3; #> 2024-04-08 14:44:15.090308 m325tracebw | now process; 2 node(s); [18,8] #> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 2 nodes;[8,18]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 3; processed node(s) 2 #> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 4; #> 2024-04-08 14:44:15.090308 m325tracebw | now process; 2 node(s); [11,16] #> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 2 nodes;[11,16]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 4; processed node(s) 2 #> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 5; #> 2024-04-08 14:44:15.090308 m325tracebw | now process; 1 node(s); [13] #> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[13]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 1 nodes;[13]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 1 nodes;[13]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 1 nodes;[13]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 1 nodes;[13]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 5; processed node(s) 1 #> 2024-04-08 14:44:15.090308 m325tracebw | start job; job 6; #> 2024-04-08 14:44:15.090308 m325tracebw | now process; 1 node(s); [12] #> 2024-04-08 14:44:15.090308 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing loss;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[12]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat flux traced from 1 nodes;[12]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Heat loss per day traced from 1 nodes;[12]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Temperature traced from 1 nodes;[12]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:15.090308 m325tracebw | OK! Pressure traced from 1 nodes;[12]; #> 2024-04-08 14:44:15.090308 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:15.090308 m325tracebw | finish job; job 6; processed node(s) 1 #> 2024-04-08 14:44:15.090308 m325tracebw | finish backward tracing;; print(output) #> node tracing backward aggregation loss flux Q #> 1 1 sensor TRUE identity 96.23600 230.5891783 92028.56208 #> 2 2 sensor TRUE identity 96.28800 230.7137745 92078.28864 #> 3 3 sensor TRUE identity 70.58400 314.8168839 130903.39238 #> 7 7 sensor TRUE identity NA NA NA #> 9 9 sensor TRUE identity 28.11520 125.3986690 20296.25042 #> 10 10 sensor TRUE identity NA NA NA #> 15 15 sensor TRUE identity 96.60000 231.4613515 184405.53600 #> 17 17 sensor TRUE identity 24.95960 174.3378130 13114.57255 #> 19 19 sensor TRUE identity 28.16580 125.6243538 35131.99098 #> 21 21 sensor TRUE identity NA NA NA #> 24 24 sensor TRUE identity NA NA NA #> 25 25 sensor TRUE identity 96.23600 230.5891783 58792.49712 #> 26 26 sensor TRUE identity 70.54000 314.6206363 130821.79104 #> span.1 1 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.10 10 sensor TRUE span NA NA NA #> span.15 15 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.17 17 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.19 19 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.2 2 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.21 21 sensor TRUE span NA NA NA #> span.24 24 sensor TRUE span NA NA NA #> span.25 25 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.26 26 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.3 3 sensor TRUE span 0.00000 0.0000000 0.00000 #> span.7 7 sensor TRUE span NA NA NA #> span.9 9 sensor TRUE span 0.00000 0.0000000 0.00000 #> median.1 1 sensor TRUE median 96.23600 230.5891783 92028.56208 #> median.10 10 sensor TRUE median NA NA NA #> median.15 15 sensor TRUE median 96.60000 231.4613515 184405.53600 #> median.17 17 sensor TRUE median 24.95960 174.3378130 13114.57255 #> median.19 19 sensor TRUE median 28.16580 125.6243538 35131.99098 #> median.2 2 sensor TRUE median 96.28800 230.7137745 92078.28864 #> median.21 21 sensor TRUE median NA NA NA #> median.24 24 sensor TRUE median NA NA NA #> median.25 25 sensor TRUE median 96.23600 230.5891783 58792.49712 #> median.26 26 sensor TRUE median 70.54000 314.6206363 130821.79104 #> median.3 3 sensor TRUE median 70.58400 314.8168839 130903.39238 #> median.7 7 sensor TRUE median NA NA NA #> median.9 9 sensor TRUE median 28.11520 125.3986690 20296.25042 #> mean.1 1 sensor TRUE mean 96.23600 230.5891783 92028.56208 #> mean.10 10 sensor TRUE mean NA NA NA #> mean.15 15 sensor TRUE mean 96.60000 231.4613515 184405.53600 #> mean.17 17 sensor TRUE mean 24.95960 174.3378130 13114.57255 #> mean.19 19 sensor TRUE mean 28.16580 125.6243538 35131.99098 #> mean.2 2 sensor TRUE mean 96.28800 230.7137745 92078.28864 #> mean.21 21 sensor TRUE mean NA NA NA #> mean.24 24 sensor TRUE mean NA NA NA #> mean.25 25 sensor TRUE mean 96.23600 230.5891783 58792.49712 #> mean.26 26 sensor TRUE mean 70.54000 314.6206363 130821.79104 #> mean.3 3 sensor TRUE mean 70.58400 314.8168839 130903.39238 #> mean.7 7 sensor TRUE mean NA NA NA #> mean.9 9 sensor TRUE mean 28.11520 125.3986690 20296.25042 #> 14 4 1 TRUE identity 96.23600 230.5891783 92028.56208 #> 22 4 2 TRUE identity 96.28800 230.7137745 92078.28864 #> 31 5 3 TRUE identity 70.58400 314.8168839 130903.39238 #> 4 6 7 TRUE identity NA NA NA #> 5 6 9 TRUE identity 28.11520 125.3986690 20296.25042 #> 6 11 10 TRUE identity NA NA NA #> 71 14 15 TRUE identity 96.60000 231.4613515 184405.53600 #> 8 16 17 TRUE identity 24.95960 174.3378130 13114.57255 #> 91 20 19 TRUE identity 28.16580 125.6243538 35131.99098 #> 101 20 21 TRUE identity NA NA NA #> 11 22 24 TRUE identity NA NA NA #> 12 22 25 TRUE identity 96.23600 230.5891783 58792.49712 #> 13 23 26 TRUE identity 70.54000 314.6206363 130821.79104 #> span.14 14 15 TRUE span 0.00000 0.0000000 0.00000 #> span.22 22 24|25 TRUE span 0.00000 0.0000000 0.00000 #> span.23 23 26 TRUE span 0.00000 0.0000000 0.00000 #> span.4 4 1|2 TRUE span 0.05200 0.1245962 49.72656 #> span.5 5 3 TRUE span 0.00000 0.0000000 0.00000 #> median.14 14 15 TRUE median 96.60000 231.4613515 184405.53600 #> median.22 22 24|25 TRUE median 96.23600 230.5891783 58792.49712 #> median.23 23 26 TRUE median 70.54000 314.6206363 130821.79104 #> median.4 4 1|2 TRUE median 96.26200 230.6514764 92053.42536 #> median.5 5 3 TRUE median 70.58400 314.8168839 130903.39238 #> mean.14 14 15 TRUE mean 96.60000 231.4613515 184405.53600 #> mean.22 22 24|25 TRUE mean 96.23600 230.5891783 58792.49712 #> mean.23 23 26 TRUE mean 70.54000 314.6206363 130821.79104 #> mean.4 4 1|2 TRUE mean 96.26200 230.6514764 92053.42536 #> mean.5 5 3 TRUE mean 70.58400 314.8168839 130903.39238 #> 16 8 4 TRUE identity 116.04494 208.5397467 39756.99751 #> 23 6 5 TRUE identity 70.73402 315.4859839 61399.38989 #> 32 13 14 TRUE identity 96.73317 231.7804483 158611.45156 #> 41 18 22 TRUE identity 115.97953 208.4221937 85759.90298 #> 51 20 23 TRUE identity 70.68993 315.2893289 88173.52308 #> span.20 20 19|21|23 TRUE span 42.52413 189.6649751 53041.53210 #> span.6 6 7|9|5 TRUE span 42.61882 190.0873149 41103.13947 #> median.20 20 19|21|23 TRUE median 49.42786 220.4568413 61652.75703 #> median.6 6 7|9|5 TRUE median 49.42461 220.4423265 40847.82015 #> mean.20 20 19|21|23 TRUE mean 49.42786 220.4568413 61652.75703 #> mean.6 6 7|9|5 TRUE mean 49.42461 220.4423265 40847.82015 #> 18 8 6 TRUE identity 96.17197 230.4357489 139602.45716 #> 27 18 20 TRUE identity 96.20009 230.5031329 154140.24832 #> span.18 18 22|20 TRUE span 19.77944 22.0809391 68380.34534 #> span.8 8 4|6 TRUE span 19.87298 21.8960022 99845.45965 #> median.18 18 22|20 TRUE median 106.08981 219.4626633 119950.07565 #> median.8 8 4|6 TRUE median 106.10845 219.4877478 89679.72734 #> mean.18 18 22|20 TRUE mean 106.08981 219.4626633 119950.07565 #> mean.8 8 4|6 TRUE mean 106.10845 219.4877478 89679.72734 #> 110 11 8 TRUE identity 115.99003 208.4410581 83512.81904 #> 28 16 18 TRUE identity 115.99053 208.4419636 85768.03774 #> span.11 11 10|8 TRUE span 0.00000 0.0000000 0.00000 #> span.16 16 17|18 TRUE span 91.03093 34.1041506 72653.46519 #> median.11 11 10|8 TRUE median 115.99003 208.4410581 83512.81904 #> median.16 16 17|18 TRUE median 70.47507 191.3898883 49441.30514 #> mean.11 11 10|8 TRUE mean 115.99003 208.4410581 83512.81904 #> mean.16 16 17|18 TRUE mean 70.47507 191.3898883 49441.30514 #> 111 13 11 TRUE identity 116.01115 208.4790258 83528.03095 #> 29 13 16 TRUE identity 116.70069 209.7181600 84024.49548 #> span 13 14|11|16 TRUE span 19.96751 23.3014225 75083.42061 #> median 13 14|11|16 TRUE median 116.01115 209.7181600 84024.49548 #> mean 13 14|11|16 TRUE mean 109.81501 216.6592114 108721.32600 #> 112 12 13 TRUE identity 153.15787 184.6846436 363101.77810 #> span1 12 13 TRUE span 0.00000 0.0000000 0.00000 #> median1 12 13 TRUE median 153.15787 184.6846436 363101.77810 #> mean1 12 13 TRUE mean 153.15787 184.6846436 363101.77810 #> temperature pressure flow_rate job #> 1 69.30000000 5.883990e-01 30 0 #> 2 69.40000000 5.883990e-01 30 0 #> 3 68.60000000 5.883990e-01 16 0 #> 7 NA NA 20 0 #> 9 69.20000000 5.883990e-01 16 0 #> 10 NA NA 10 0 #> 15 70.00000000 5.883990e-01 30 0 #> 17 71.40000000 5.883990e-01 10 0 #> 19 69.30000000 5.883990e-01 16 0 #> 21 NA NA 20 0 #> 24 NA NA 30 0 #> 25 69.30000000 5.883990e-01 30 0 #> 26 68.50000000 5.883990e-01 16 0 #> span.1 0.00000000 0.000000e+00 30 0 #> span.10 NA NA 10 0 #> span.15 0.00000000 0.000000e+00 30 0 #> span.17 0.00000000 0.000000e+00 10 0 #> span.19 0.00000000 0.000000e+00 16 0 #> span.2 0.00000000 0.000000e+00 30 0 #> span.21 NA NA 20 0 #> span.24 NA NA 30 0 #> span.25 0.00000000 0.000000e+00 30 0 #> span.26 0.00000000 0.000000e+00 16 0 #> span.3 0.00000000 0.000000e+00 16 0 #> span.7 NA NA 20 0 #> span.9 0.00000000 0.000000e+00 16 0 #> median.1 69.30000000 5.883990e-01 30 0 #> median.10 NA NA 10 0 #> median.15 70.00000000 5.883990e-01 30 0 #> median.17 71.40000000 5.883990e-01 10 0 #> median.19 69.30000000 5.883990e-01 16 0 #> median.2 69.40000000 5.883990e-01 30 0 #> median.21 NA NA 20 0 #> median.24 NA NA 30 0 #> median.25 69.30000000 5.883990e-01 30 0 #> median.26 68.50000000 5.883990e-01 16 0 #> median.3 68.60000000 5.883990e-01 16 0 #> median.7 NA NA 20 0 #> median.9 69.20000000 5.883990e-01 16 0 #> mean.1 69.30000000 5.883990e-01 30 0 #> mean.10 NA NA 10 0 #> mean.15 70.00000000 5.883990e-01 30 0 #> mean.17 71.40000000 5.883990e-01 10 0 #> mean.19 69.30000000 5.883990e-01 16 0 #> mean.2 69.40000000 5.883990e-01 30 0 #> mean.21 NA NA 20 0 #> mean.24 NA NA 30 0 #> mean.25 69.30000000 5.883990e-01 30 0 #> mean.26 68.50000000 5.883990e-01 16 0 #> mean.3 68.60000000 5.883990e-01 16 0 #> mean.7 NA NA 20 0 #> mean.9 69.20000000 5.883990e-01 16 0 #> 14 69.42782396 5.895532e-01 30 1 #> 22 69.52789112 5.895532e-01 30 1 #> 31 68.94094679 6.031489e-01 16 1 #> 4 NA NA 20 1 #> 5 69.25285830 5.941420e-01 16 1 #> 6 NA NA 10 1 #> 71 70.25610481 5.907037e-01 30 1 #> 8 71.45462914 6.055378e-01 10 1 #> 91 69.39149422 5.983225e-01 16 1 #> 101 NA NA 20 1 #> 11 NA NA 30 1 #> 12 69.38166041 5.891363e-01 30 1 #> 13 68.84073921 6.031483e-01 16 1 #> span.14 0.00000000 0.000000e+00 30 1 #> span.22 0.00000000 0.000000e+00 60 1 #> span.23 0.00000000 0.000000e+00 16 1 #> span.4 0.10006716 5.248280e-08 60 1 #> span.5 0.00000000 0.000000e+00 16 1 #> median.14 70.25610481 5.907037e-01 30 1 #> median.22 69.38166041 5.891363e-01 60 1 #> median.23 68.84073921 6.031483e-01 16 1 #> median.4 69.47785754 5.895532e-01 60 1 #> median.5 68.94094679 6.031489e-01 16 1 #> mean.14 70.25610481 5.907037e-01 30 1 #> mean.22 69.38166041 5.891363e-01 60 1 #> mean.23 68.84073921 6.031483e-01 16 1 #> mean.4 69.47785754 5.895532e-01 60 1 #> mean.5 68.94094679 6.031489e-01 16 1 #> 16 69.50546725 5.899445e-01 60 2 #> 23 69.10085892 6.119730e-01 16 2 #> 32 70.47637808 5.926835e-01 30 2 #> 41 69.44121822 5.899809e-01 60 2 #> 51 69.07038683 6.178683e-01 16 2 #> span.20 0.32110739 1.954581e-02 52 2 #> span.6 0.15199938 1.783100e-02 52 2 #> median.20 69.23094052 6.080954e-01 52 2 #> median.6 69.17685861 6.030575e-01 52 2 #> mean.20 69.23094052 6.080954e-01 52 2 #> mean.6 69.17685861 6.030575e-01 52 2 #> 18 69.28872816 6.111791e-01 52 3 #> 27 69.35445917 6.138828e-01 52 3 #> span.18 0.08675905 2.390186e-02 112 3 #> span.8 0.21673909 2.123458e-02 112 3 #> median.18 69.39783870 6.019318e-01 112 3 #> median.8 69.39709771 6.005618e-01 112 3 #> mean.18 69.39783870 6.019318e-01 112 3 #> mean.8 69.39709771 6.005618e-01 112 3 #> 110 69.42816779 6.034192e-01 112 4 #> 28 69.42974784 6.048664e-01 112 4 #> span.11 0.00000000 0.000000e+00 122 4 #> span.16 2.02488130 6.714490e-04 122 4 #> median.11 69.42816779 6.034192e-01 122 4 #> median.16 70.44218849 6.052021e-01 122 4 #> mean.11 69.42816779 6.034192e-01 122 4 #> mean.16 70.44218849 6.052021e-01 122 4 #> 111 69.45669626 6.068087e-01 122 5 #> 29 70.47088211 6.085935e-01 122 5 #> span 1.01968183 1.591000e-02 274 5 #> median 70.47088211 6.068087e-01 274 5 #> mean 70.13465215 6.026953e-01 274 5 #> 112 70.52609184 6.142191e-01 274 6 #> span1 0.00000000 0.000000e+00 274 6 #> median1 70.52609184 6.142191e-01 274 6 #> mean1 70.52609184 6.142191e-01 274 6"},{"path":"/reference/m325tracefw.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow rate, ) bunched pipeline along flow direction using norms heat loss values prescribed Minenergo Order 325.","code":""},{"path":"/reference/m325tracefw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"","code":"m325tracefw( sender = c(0, 1), acceptor = c(1, 2), temperature = c(70, NA_real_), pressure = c(pipenostics::mpa_kgf(6), NA_real_), flow_rate = c(20, NA_real_), d = rep_len(100, 2), len = rep_len(72.446, 2), year = rep_len(1986, 2), insulation = rep_len(0, 2), laying = rep_len(\"tunnel\", 2), beta = rep_len(FALSE, 2), exp5k = rep_len(TRUE, 2), roughness = rep_len(0.001, 2), inlet = c(0.5, 1), outlet = c(1, 1), elev_tol = 0.1, method = \"romeo\", verbose = TRUE, csv = FALSE, file = \"m325tracefw.csv\", use_cluster = FALSE )"},{"path":"/reference/m325tracefw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Sensor-measured temperature heat carrier (water) sensor-measured root node, [°C]. Use NA_float_s nodes without temperature sensor. Type: assert_double. pressure Sensor-measured absolute pressure heat carrier (water) inside pipe root node, [MPa]. Use NA_float_s nodes without pressure sensor. Type: assert_double. flow_rate Sensor-measured amount heat carrier (water) root node transferred pipe period, [ton/hour]. Type: assert_double. Use NA_float_s nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [mm]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. year year pipe (.e. acceptor's incoming edge) put operation laying total overhaul. Type: assert_integerish. insulation identifier insulation covers exterior pipe (.e. acceptor's incoming edge): 0 insulation 1 foamed polyurethane analogue 2 polymer concrete Type: assert_subset. laying type pipe laying depicting position pipe space. five types pipe laying considered: air, channel, room, tunnel, underground. Type: assert_subset. beta logical indicator: consider additional heat loss fittings located pipe (.e. acceptor's incoming edge)? Type: assert_logical. exp5k logical indicator regime pipe (.e. acceptor's incoming edge): TRUE pipe operated 5000 hours per year. Type: assert_logical. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. elev_tol maximum allowed discrepancy adjacent outlet inlet elevations two subsequent pipes traced path, [m]. Type: assert_number. method method determining Darcy friction factor: romeo vatankhan buzelli Type: assert_choice. details see dropp. verbose logical indicator: watch tracing process console? Type: assert_flag. csv logical indicator: incrementally dump results csv- file tracing? Type: assert_flag. file name csv-file dump results . Type: assert_character length 1 can used safely create file write . use_cluster utilize functionality parallel processing multi-core CPU. Type: assert_flag.","code":""},{"path":"/reference/m325tracefw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"data.frame containing results (detailed log) tracing narrow format: node Tracing job. Identifier node regime parameters calculated . Values vector identical argument acceptor. Type: assert_character. tracing Tracing job. Identifiers nodes regime parameters traced given node. Identifier sensor used values regime parameters node sensor readings. Type: assert_character. backward Tracing job. Identifier tracing direction. constantly equals FALSE. Type: assert_logical. aggregation Tracing job. Identifier aggregation method associated traced values. forward tracing option identity. Type: assert_character. temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water) associated node, [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) associated node, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) associated node, [ton/hour]. Type: assert_double. job Tracing job. Value tracing job counter. forward tracing value job counts number traced paths root node. Type: assert_count. Type: assert_data_frame.","code":""},{"path":"/reference/m325tracefw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"calculated (values ) regime may considered representation district heating process conditions hypothetically perfect technical state pipe walls insulation. consider topology district heating network represented m325testbench: Tracing starts sensor-equipped root node goes forward, .e along flow direction. Function m325traceline serves hood tracing identified linear segments root node every terminal node. Hence need root node equipped sensors. Sensors nodes redundant forward tracing, since tracing algorithm means consider tracing. Moreover forward tracing algorithm assume flow heat carrier distributed proportionally cross-sectional area outgoing pipeline. Actually, lot reasons may cause significant deviations assumption. result, sequence paired backward/forward tracing may divergent regime parameters. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench. welcome couple algorithm functionality data.table.","code":""},{"path":[]},{"path":"/reference/m325tracefw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Massively trace forwards thermal-hydraulic regime for district\n heating network — m325tracefw","text":"","code":"library(pipenostics) # Minimum two nodes should be in district heating network graph: m325tracefw(verbose = FALSE) #> node tracing backward aggregation loss flux Q temperature #> 1 1 sensor FALSE identity NA NA NA 70.00000 #> 2 2 1 FALSE identity 78.4 279.0696 136314.4 69.71603 #> pressure flow_rate job #> 1 0.5883990 20 0 #> 2 0.5813153 20 1 # Consider isomorphic representation of District Heating Network graph: DHN <- pipenostics::m325testbench # * avoid using numeric identifiers for nodes: DHN$sender <- sprintf(\"N%02i\", DHN$sender) DHN$acceptor <- sprintf(\"N%02i\", DHN$acceptor) # * alter units: DHN$d <- 1e3 * DHN$d # convert [m] to [mm] # Perform backward tracing to get regime on root node: bw_report <- do.call(\"m325tracebw\", c(as.list(DHN), verbose = FALSE)) # Put the traced values to the root node of test bench: root_node_idx <- 12 root_node <- sprintf(\"N%02i\", root_node_idx) regime_param <- c(\"temperature\", \"pressure\", \"flow_rate\") DHN[root_node_idx, regime_param] <- subset(bw_report, node == root_node & aggregation == \"median\", regime_param) rm(root_node, root_node_idx) # Trace the test bench forward for the first time: fw_report <- do.call(\"m325tracefw\", c(as.list(DHN), verbose = FALSE, elev_tol = .5)) # Let's compare traced regime at terminal nodes back to test bench: report <- subset( rbind(bw_report, fw_report), node %in% subset(DHN, !(acceptor %in% sender))$acceptor & aggregation == \"identity\" ) regime_delta <- colMeans( subset(report, backward, regime_param) - subset(report, !backward, regime_param) ) print(regime_delta) #> temperature pressure flow_rate #> -4.640201e-01 -5.208802e-03 -5.465713e-16 stopifnot(sqrt(regime_delta %*% regime_delta) < 0.5)"},{"path":"/reference/m325traceline.html","id":null,"dir":"Reference","previous_headings":"","what":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow_rate, ) along adjacent linear segments pipeline using norms heat loss values prescribed Minenergo Order 325.","code":""},{"path":"/reference/m325traceline.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"","code":"m325traceline( temperature = 130, pressure = mpa_kgf(6), flow_rate = 250, g = 0, d = 700, len = c(600, 530, 300, 350), year = 1986, insulation = 0, laying = \"underground\", beta = FALSE, exp5k = TRUE, roughness = 0.006, inlet = 0, outlet = 0, elev_tol = 0.1, method = \"romeo\", forward = TRUE, absg = TRUE )"},{"path":"/reference/m325traceline.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"temperature Traced thermal hydraulic regime. Sensor-measured temperature heat carrier (water) inside pipe sensor-measured inlet (forward tracing) outlet (backward tracing) path, [°C]. Type: assert_number. pressure Traced thermal hydraulic regime. Sensor-measured absolute pressure heat carrier (water) sensor-measured inlet (forward tracing) outlet (backward tracing) path, [MPa]. Type: assert_number. flow_rate Traced thermal hydraulic regime. Amount heat carrier (water) sensor-measured inlet (forward tracing) outlet (backward tracing) path, [ton/hour]. Type: assert_number. g amount heat carrier discharge network pipe segment tracing path enumerated along direction flow. flag absg TRUE treat argument g absolute value [ton/hour], otherwise percentage flow_rate pipe segment. Type: assert_double. d internal diameters subsequent pipes tracing path enumerated along direction flow, [mm]. Type: assert_double. len length subsequent pipes tracing path enumerated along direction flow, [m]. Type: assert_double. year year pipe put operation laying total overhaul pipe tracing path enumerated along direction flow. Type: assert_integerish. insulation insulation covers exterior pipe: 0 insulation 1 foamed polyurethane analogue 2 polymer concrete pipe tracing path enumerated along direction flow. Type: assert_numeric assert_subset. laying type pipe laying depicting position pipe space: air channel room tunnel underground pipe tracing path enumerated along direction flow. Type: assert_character assert_subset. beta logical indicator: consider additional heat loss fittings? Logical value pipe tracing path enumerated along direction flow. Type: assert_logical. exp5k logical indicator regime pipe: pipe operated 5000 hours per year? Logical value pipe tracing path enumerated along direction flow. Type: assert_logical. roughness roughness internal wall pipe tracing path enumerated along direction flow, [m]. Type: assert_double. inlet elevation pipe inlet pipe tracing path enumerated along direction flow, [m]. Type: assert_double. outlet elevation pipe outlet pipe tracing path enumerated along direction flow, [m]. Type: assert_double. elev_tol maximum allowed discrepancy adjacent outlet inlet elevations two subsequent pipes traced path, [m]. Type: assert_number. method method determining Darcy friction factor romeo vatankhan buzelli Type: assert_choice. details see dropp. forward tracing direction flag: forward direction tracing? FALSE backward tracing performed. Type: assert_flag. absg Whether argument g (amount heat carrier discharge network) absolute value [ton/hour] (TRUE) percentage flow rate pipe segment (FALSE)? Type: assert_flag.","code":""},{"path":"/reference/m325traceline.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"list containing results (detailed log) tracing pipe tracing path enumerated along direction flow: temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water), [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) pipe tracing path enumerated along direction flow, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) pipe tracing path enumerated along direction flow, [ton/hour]. Type: assert_double. loss Traced thermal hydraulic regime. Normative specific heat loss power pipe tracing path enumerated along direction flow, [kcal/m/h]. Type: assert_double. flux Traced thermal hydraulic regime. Normative heat flux pipe tracing path enumerated along direction flow, [W/m^2]. Type: assert_double. Q Traced thermal hydraulic regime. Normative heat loss pipe tracing path enumerated along direction flow per day, [kcal]. Type: assert_double. Type: assert_list.","code":""},{"path":"/reference/m325traceline.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"calculated (values ) regime may considered representation district heating process conditions hypothetically perfect technical state pipe walls insulation. consider simple tracing paths contain rings kind parallelization. time bidirectional (forward backward) tracing possible accordance sensor position. also may consider discharges network inlet pipeline segment approximation actual forks flows. Relevant illustration adopted assumptions 4-segment tracing path depicted next figure. make additional check consistency inlet outlet values subsequent pipe segments. Discrepancy appropriate elevations elev_tol. Since inner diameter pipe used input, thickness pipe wall additionally considered heat flux calculations. Pipe wall thickness derived pipe diameter using GOST 30732 specifications.","code":""},{"path":[]},{"path":"/reference/m325traceline.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Minenergo-325. Trace thermal-hydraulic regime for linear segment of district\n heating network — m325traceline","text":"","code":"library(pipenostics) # Consider 4-segment tracing path depicted in ?m325regtrace help page. # First, let sensor readings for forward tracing: t_fw <- 130 # [°C] p_fw <- mpa_kgf(6)*all.equal(.588399, mpa_kgf(6)) # [MPa] g_fw <- 250 # [ton/hour] # Let discharges to network for each pipeline segment are somehow determined as discharges <- seq(0, 30, 10) # [ton/hour] # Then the calculated regime (red squares) for forward tracing is regime_fw <- m325traceline(t_fw, p_fw, g_fw, discharges, forward = TRUE) print(regime_fw) #> $temperature #> [1] 129.1799 128.4269 127.9628 127.3367 #> #> $pressure #> [1] 0.5878607 0.5874226 0.5872143 0.5870330 #> #> $flow_rate #> [1] 250 240 220 190 #> #> $loss #> [1] 348.0000 347.1389 346.3483 345.8610 #> #> $flux #> [1] 181.9600 181.5097 181.0963 180.8415 #> #> $Q #> [1] 5011200 4415607 2493707 2905232 #> # $temperature # [1] 129.1799 128.4269 127.9628 127.3367 # # $pressure # [1] 0.5878607 0.5874226 0.5872143 0.5870330 # # $flow_rate # [1] 250 240 220 190 # # $loss # [1] 348.0000 347.1389 346.3483 345.8610 # # $flux # [1] 181.9600 181.5097 181.0963 180.8415 # # $Q # [1] 5011200 4415607 2493707 2905232 # Next consider values of traced regime as sensor readings for backward tracing: t_bw <- 127.3367 # [°C] p_bw <- .5870330 # [MPa] g_bw <- 190 # [ton/hour] # Then the calculated regime (red squares) for backward tracing is regime_bw <- m325traceline(t_bw, p_bw, g_bw, discharges, forward = FALSE) print(regime_bw) #> $temperature #> [1] 129.9953 129.1769 128.4254 127.9619 #> #> $pressure #> [1] 0.5883998 0.5878611 0.5874228 0.5872144 #> #> $flow_rate #> [1] 250 250 240 220 #> #> $loss #> [1] 347.1358 346.3467 345.8599 345.2035 #> #> $flux #> [1] 181.5081 181.0955 180.8410 180.4978 #> #> $Q #> [1] 4998755 4405529 2490192 2899710 #> # $temperature # [1] 129.9953 129.1769 128.4254 127.9619 # # $pressure # [1] 0.5883998 0.5878611 0.5874228 0.5872144 # # $flow_rate # [1] 250 250 240 220 # # $loss # [1] 347.1358 346.3467 345.8599 345.2035 # # $flux # [1] 181.5081 181.0955 180.8410 180.4978 # # $Q # [1] 4998755 4405529 2490192 2899710 # Let compare sensor readings with backward tracing results: tracing <- with(regime_bw, { lambda <- function(val, constraint) c(val, constraint, constraint - val, abs(constraint - val)*100/constraint) first <- 1 structure( rbind( lambda(temperature[first], t_fw), lambda(pressure[first], p_fw), lambda(flow_rate[first], g_fw) ), dimnames = list( c(\"temperature\", \"pressure\", \"flow_rate\"), c(\"sensor.value\", \"traced.value\", \"abs.discr\", \"rel.discr\") ) ) }) print(tracing) #> sensor.value traced.value abs.discr rel.discr #> temperature 129.9952943 130.000000 4.705723e-03 0.0036197868 #> pressure 0.5883998 0.588399 -8.215938e-07 0.0001396321 #> flow_rate 250.0000000 250.000000 0.000000e+00 0.0000000000 # sensor.value traced.value abs.discr rel.discr # temperature 129.9952943 130.000000 4.705723e-03 0.0036197868 # pressure 0.5883998 0.588399 -8.215938e-07 0.0001396321 # flow_rate 250.0000000 250.000000 0.000000e+00 0.0000000000"},{"path":"/reference/mepof.html","id":null,"dir":"Reference","previous_headings":"","what":"Probability of failure of the corroded pipe within maximum entropy — mepof","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"Calculate probability failure (POF) corroded pipe taking account actual level defectiveness exploiting Monte-Carlo simulation within Principle maximum entropy. Consistent estimate POF pipeline systems plays critical role optimizing operation. prevent pipeline failures due actively growing defects necessary able assess pipeline system failure operation probability certain period, taking account actual level defectiveness. pipeline limit state comes burst pressure, considered random variable, reaches unacceptable level, defect depth, also random variable, exceeds predetermined limit value. method consider two possible failures single pipeline cross section -surface longitudinally oriented defect metal-loss type: rupture decrease value failure pressure operating pressure. leak increase corrosion depth (defect) specified ultimate permissible fraction pipe wall thickness. Since now methods existed give absolutely correct POF assessments suggest simple fiddling random values affecting factors without deeping intrinsic mechanisms corrossion. purpose choose classical Monte-Carlo simulation within Principle maximum entropy. latter allows avoid doubtful excessive preferences detalization choosing probability distribution models failure factors inline inspection measurements.","code":""},{"path":"/reference/mepof.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"","code":"mepof( depth = seq(0, 10, length.out = 100), l = seq(40, 50, length.out = 100), d = rep.int(762, 100), wth = rep.int(10, 100), strength = rep.int(358.5274, 100), pressure = rep.int(0.588, 100), temperature = rep.int(150, 100), rar = function(n) stats::runif(n, 0.01, 0.3)/365, ral = function(n) stats::runif(n, 0.01, 0.3)/365, days = 0, k = 0.8, method = \"b31g\", n = 1e+06 )"},{"path":"/reference/mepof.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"depth maximum depth corroded area measured inline inspection, [mm]. Type: assert_double. l maximum longitudinal length corroded area measured inline inspection, [mm]. Type: assert_double. d nominal outside diameter pipe, [mm]. Type: assert_double. wth nominal wall thickness pipe, [mm]. Type: assert_double. strength one next characteristics steel strength, [MPa]: specified minimum yield stress (SMYS) use b31gpf b31gmodpf. ultimate tensile strength (UTS) specified minimum tensile strength (SMTS) use failure pressure codes (dnvpf, pcorrcpf, shell92pf). Type: assert_double. pressure absolute pressure substance (.e. heat carrier) inside pipe measured near defect position, [MPa]. cases nominal operating pressure. Type: assert_double. temperature temperature substance (.e. heat carrier) inside pipe measured near defect position, [°C]. case district heating network usually calculated value according actual normative thermal-hydraulic regime. Type: assert_double. rar random number generator simulating distribution radial corrosion rate pipe wall, [mm/day]. argument n function number observations generate. Type: assert_function. ral random number generator simulating distribution longitudinal corrosion rate pipe wall, [mm/day]. argument n function number observations generate. Type: assert_function. days number days passed preceded inline inspection, []. Negative values retrospective assumptions whereas positives failure prognosis. Type: assert_int. k alarm threshold leakage failure. usually 0.6, 0.7, 0.8, []. set 1 alarm failure occurs. Type: assert_number. method method calculating failure pressure: b31g - using b31gpf. b31gmod - using b31gmodpf. dnv - using dnvpf. pcorrc - using pcorrcpf. shell92 - using shell92pf. Type: assert_choice. n number observations generate Monte-Carlo simulations, Type: assert_count.","code":""},{"path":"/reference/mepof.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"Probability pipe failure corroded area measured inline inspection. Type: assert_double. NAs returned use another method calculating failure pressure.","code":""},{"path":"/reference/mepof.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"Since influence factors can less assume range limits, uniform distribution gets maximum entropy context (see JCGM 101:2008). parameters corrosion defects measured inline inspection well regime parameters engineering characteristics pipe segment - simulated runif. runif-limits depth corrosion defect associated precision commonly applied measurement instruments. traditionally exploited ultrasonic control limits well-known can reach 10 % pipe wall thickness. Whereas uncertainty defect longitudinal length may enough constrained 5 %. Recommendations choosing stochastic characteristics pipe engineering factors (.e. crossection diameter, wall thickness material strength) taken aggregated review Timashev et al. gently transformed compatibility Principle maximum entropy, .e. runif. Uncertainties regime parameters stohastic models set minimized regarding precision metering devices commonly applied district heating networks. temperature 2 °C. Since rate corrosion processes pipe wall consequence physical chemical processes occurring atomic scale, depends large number environmental factors differently ambiguously. various deterministic stochastic models can potentially involved POF assessment. purpose radial longitudinal corrosion rate can independently formulated random value generation functions. admit change depth length corrosion defects time close linear generated value corrosion rate.","code":""},{"path":"/reference/mepof.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7. BIPM. Guides Metrology (GUM). JCGM 101:2008. Evaluation measurement data – Supplement 1 Guide expression uncertainty measurement – Propagation distributions using Monte Carlo method.","code":""},{"path":"/reference/mepof.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Probability of failure of the corroded pipe within maximum entropy — mepof","text":"","code":"library(pipenostics) # \\donttest{ # Let's consider a pipe in district heating network with diameter <- 762 # [mm] wall_thickness <- 10 # [mm] UTS <- 434.3697 # [MPa] # which transfers heat-carrier (water) at operating_pressure <- 0.588399 # [MPa]. temperature <- 95 # [°C] # During inline inspection four corroded areas (defects) are detected with: depth <- c(2.45, 7.86, 7.93, 8.15) # [mm] # whereas the length of all defects is not greater 200 mm: length <- rep(200, 4) # [mm] # Corrosion rates in radial and in longitudinal directions are not well-known and # may vary in range .01 - .30 mm/year: rar = function(n) stats::runif(n, .01, .30) / 365 ral = function(n) stats::runif(n, .01, .30) / 365 # Then POFs related to each corroded area are near: pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\") #> pipenostics::mepof: process case [1/4] - 25 % processed. pipenostics::mepof: process case [2/4] - 50 % processed. pipenostics::mepof: process case [3/4] - 75 % processed. pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) #> [1] 0.000000 0.252966 0.367726 0.770969 # 0.000000 0.252510 0.368275 0.771595 # So, the POF of pipe is near print(max(pof)) #> [1] 0.770969 # 0.771595 # The value of POF changes in time. So, in a year after inline inspection of # the pipe we can get something near pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\", days = 365) #> pipenostics::mepof: process case [1/4] - 25 % processed. pipenostics::mepof: process case [2/4] - 50 % processed. pipenostics::mepof: process case [3/4] - 75 % processed. pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) #> [1] 0.000000 0.526688 0.646935 0.928882 # 0.000000 0.525539 0.648359 0.929099 # for entire pipe we get something near: print(max(pof)) #> [1] 0.928882 # 0.929099 # Two years ago before inline inspection the pipe state was rather good: pof <- mepof(depth, length, rep(diameter, 4), rep(wall_thickness, 4), rep(UTS, 4), rep(operating_pressure, 4), rep(temperature, 4), rar, ral, method = \"dnv\", days = -2 * 365) #> pipenostics::mepof: process case [1/4] - 25 % processed. pipenostics::mepof: process case [2/4] - 50 % processed. pipenostics::mepof: process case [3/4] - 75 % processed. pipenostics::mepof: process case [4/4] - 100 % . All done, thanks! print(pof) #> [1] 0.000000 0.040622 0.072779 0.271786 # 0.000000 0.040780 0.072923 0.271751 # for entire pipe we get something near: print(max(pof)) #> [1] 0.271786 # 0.271751 # }"},{"path":"/reference/meteos.html","id":null,"dir":"Reference","previous_headings":"","what":"Get list of weather stations (meteos) — meteos","title":"Get list of weather stations (meteos) — meteos","text":"Get list weather stations located primarily central northern parts Eurasia. weather station, following information provided: integer station ID, geographic coordinates, altitude, mean annual ground temperature averaged depth.","code":""},{"path":"/reference/meteos.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get list of weather stations (meteos) — meteos","text":"","code":"meteos()"},{"path":"/reference/meteos.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get list of weather stations (meteos) — meteos","text":"list weather stations (meteos) next fields: station_id Weather station unique identifier. Type: assert_integer. name Human-readable name weather station. Type: assert_character. lat Geographical position wether station. Latitude, [DD]. Type: assert_double. lon Geographical position wether station. Longitude, [DD]. Type: assert_double. alt Altitude - position weather station sea level, [m]. Type: assert_double. avg Mean annual ground temperature averaged depth, [°C]. Type: assert_double. Type: assert_data_frame.","code":""},{"path":"/reference/meteos.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Get list of weather stations (meteos) — meteos","text":"Climate Change Investigation Laboratory. Description array daily data soil temperature depths 320 centimeters meteorological stations Russian Federation.","code":""},{"path":[]},{"path":"/reference/meteos.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get list of weather stations (meteos) — meteos","text":"","code":"library(pipenostics) head(meteos()) #> station_id name lat lon alt avg #> 22217 22217 Kandalaksha 67.15 32.35 26 4.299446 #> 22408 22408 Kalevala 65.22 31.15 118 4.674742 #> 22471 22471 Mezen 65.87 44.22 14 3.544074 #> 22583 22583 Koinas 64.75 47.65 63 4.817047 #> 22981 22981 Velikiy-Ustyug 60.77 46.30 93 5.975453 #> 23405 23405 Ust-Tsilma 65.43 52.27 78 4.094936"},{"path":"/reference/mgtdh-iface.html","id":null,"dir":"Reference","previous_headings":"","what":"Get ground temperature — mgtdhid","title":"Get ground temperature — mgtdhid","text":"Get undisturbed (median) value ground temperature different depths specified time leveraging Modified Ground Temperature Double Harmonic Model (MGTDH-model).","code":""},{"path":"/reference/mgtdh-iface.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get ground temperature — mgtdhid","text":"","code":"mgtdhid(id, tau = 1440L, depth = 2.4) mgtdhidt(tau, id = 28434L, depth = 2.4) mgtdhgeo(lat, lon, tau = 1440L, depth = 2.4, use_cluster = FALSE) mgtdhgeot(tau, lat = 57, lon = 57, depth = 2.4)"},{"path":"/reference/mgtdh-iface.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get ground temperature — mgtdhid","text":"id weather station unique identifier. identifiers meteos dataset accepted. Type: assert_integer. mgtdhidt acceptable length 1. tau time point necessary obtain value soil temperature; can specified integer, representing number hours passed since beginning year, value POSIXct type. Type: assert_count, assert_posixct. mgtdhid acceptable length 1. depth depth ground temperature calculated, [m]. Type: assert_number. lat latitude geographical location value soil temperature needs determined, [DD]. Type: assert_double. mgtdhgeot acceptable length 1. lon longitude geographical location value soil temperature needs determined, [DD]. Type: assert_double. mgtdhgeot acceptable length 1. use_cluster utilize functionality parallel processing multi-core CPU. Type: assert_flag.","code":""},{"path":"/reference/mgtdh-iface.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get ground temperature — mgtdhid","text":"Undisturbed (median) ground temperature value calculated MGTDH-model, specifically location user-specified meteorological station, specified depth, time, [°C]. Type: assert_double.","code":""},{"path":"/reference/mgtdh-iface.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get ground temperature — mgtdhid","text":"MGTDH-model modified solution thermal conductivity equation soil can expressed formula $$t\\left( \\tau, d \\right) = \\beta e^{r_1} \\cdot A_1 \\cos(2 \\pi \\omega \\tau + r_1 - P_1) + \\beta r_2^{A_2 \\cdot d} \\cos(4 \\pi \\omega \\tau + r_2 - P_2)$$ \\(t\\left( \\tau, d \\right)\\) undisturbed (median) ground temperature [°C] specified depth \\(d\\) [m], time \\(\\tau\\) [hour]. \\(\\tau\\) time point (tau) calculated hours since beginning year, [hour]. \\(d\\) depth (depth) ground temperature calculated, [m]. \\(\\beta = -1\\) shift constant, []. \\(r_1(d) = -1000 d \\sqrt{\\frac{\\pi \\omega}{\\alpha_s D}}\\), \\(r_2(d) = r_1(d) \\sqrt{2}\\) temperature diffusivity factors, []. \\(\\omega = \\frac{1}{8760}\\) rate rotation Earth, expressed accuracy equal inverse hour, [1/hour]. \\(\\alpha_s\\) soil diffusivity, [mm^2/s]. \\(D = 86400\\) constant represents number seconds one day, [s/day]. \\(A_1\\), \\(A_2\\) harmonic temperature amplitudes, [°C]. \\(P_1\\), \\(P_2\\) phase shifts, depending geographical location, []. Soil diffusivity, \\(\\alpha_s\\), harmonic temperature amplitudes, \\(A_1\\), \\(A_2\\), phase shifts \\(P_1\\), \\(P_2\\) geographically dependant parameters values established weather station listed meteos-dataset. convenience using MGTDH-model, several interface functions provided. function generates vector type assert_double output. mgtdhid mgtdhidt functions used obtain ground temperature data specific meteorological stations. functions mgtdhgeo mgtdhgeot provide ground temperatures geographical location, note usage primarily limited Northern Asian part Eurasia, meteorological stations parameters MGTDH-model established . Ground temperature specified location obtained linear interpolation using barycentric coordinates formed system three nearest meteorological stations.","code":""},{"path":"/reference/mgtdh-iface.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Get ground temperature — mgtdhid","text":"Lu Xing & Jeffrey D. Spitler (2017) Prediction undisturbed ground temperature using analytical numerical modeling. Part : Model development experimental validation. Science Technology Built Environment, 23:5, 787-808, doi:10.1080/23744731.2016.1258371 .","code":""},{"path":[]},{"path":"/reference/mgtdh-iface.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get ground temperature — mgtdhid","text":"","code":"# Let consider the next geographical positions: lat <- c(s28434 = 56.65, s28418 = 56.47, s23711 = 62.70, ControlPoint = 57) lon <- c(s28434 = 57.78, s28418 = 53.73, s23711 = 56.20, ControlPoint = 57) # * ground temperatures at first three locations on 02 March 2023 at depth 3 m: mgtdhgeo(head(lat, 3), head(lon, 3), tau = as.POSIXct(\"2023-03-02\"), depth = 3) #> [1] 4.184279 4.767883 2.930190 # * it is the same as obtaining ground temperatures from weather stations: mgtdhid(id = c(28434L, 28418L, 23711L), tau = as.POSIXct(\"2023-03-02\"), depth = 3) #> [1] 4.184279 4.767883 2.930190 # * undisturbed ground temperature plot at Control Point: days <- as.POSIXct(\"2023-01-01\") + 3600*24*(seq.int(1, 365) - 1) plot( days, mgtdhgeot(days, lat[[\"ControlPoint\"]], lon[[\"ControlPoint\"]]), type = \"l\", ylab = \"Temperature, °C\" )"},{"path":"/reference/mm_inch.html","id":null,"dir":"Reference","previous_headings":"","what":"Inches to mm — mm_inch","title":"Inches to mm — mm_inch","text":"Convert length measured inches millimeters (mm)","code":""},{"path":"/reference/mm_inch.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Inches to mm — mm_inch","text":"","code":"mm_inch(x)"},{"path":"/reference/mm_inch.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Inches to mm — mm_inch","text":"x length measured inches, [inch]. Type: assert_double.","code":""},{"path":"/reference/mm_inch.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Inches to mm — mm_inch","text":"length millimeters, [mm]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/mm_inch.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Inches to mm — mm_inch","text":"","code":"library(pipenostics) mm_inch(c(0.03937008, 1)) #> [1] 1.0 25.4 # [1] 1.0 25.4 # [mm]"},{"path":"/reference/mpa_kgf.html","id":null,"dir":"Reference","previous_headings":"","what":"Kilogram-force per square cm to megapascals — mpa_kgf","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"Convert pressure (stress) measured kilogram-force per square cm (\\(kgf/cm^2\\)) megapascals (MPa)","code":""},{"path":"/reference/mpa_kgf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"","code":"mpa_kgf(x)"},{"path":"/reference/mpa_kgf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"x pressure (stress) measured kilogram-force per square cm, [kgf/cm^2]. Type: assert_double.","code":""},{"path":"/reference/mpa_kgf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"pressure (stress) megapascals, [MPa]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/mpa_kgf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Kilogram-force per square cm to megapascals — mpa_kgf","text":"","code":"library(pipenostics) mpa_kgf(c(10.1971619998, 1)) #> [1] 1.0000000 0.0980665 # [1] 1.0000000 0.0980665 # [MPa]"},{"path":"/reference/mpa_psi.html","id":null,"dir":"Reference","previous_headings":"","what":"Pounds per square inch to megapascals — mpa_psi","title":"Pounds per square inch to megapascals — mpa_psi","text":"Convert pressure (stress) measured pounds per square inch (PSI) megapascals (MPa)","code":""},{"path":"/reference/mpa_psi.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pounds per square inch to megapascals — mpa_psi","text":"","code":"mpa_psi(x)"},{"path":"/reference/mpa_psi.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pounds per square inch to megapascals — mpa_psi","text":"x pressure (stress) measured pounds per square inch (PSI). Type: assert_double.","code":""},{"path":"/reference/mpa_psi.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pounds per square inch to megapascals — mpa_psi","text":"pressure (stress) megapascals (MPa). Type: assert_double.","code":""},{"path":[]},{"path":"/reference/mpa_psi.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Pounds per square inch to megapascals — mpa_psi","text":"","code":"library(pipenostics) mpa_psi(c(145.03773800721814, 1)) #> [1] 1.000000000 0.006894757 # [1] 1.000000000 0.006894757 # [MPa]"},{"path":"/reference/pcorrcpf.html","id":null,"dir":"Reference","previous_headings":"","what":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"Calculate failure pressure corroded pipe according PCORRC model. PCORRC methodology developed basis studying mechanism destruction pipes, material improved high fracture toughness, high-precision modeling finite element pipe models performed Battelle Institute. According field test results large number actual pipe segments, destruction mechanism defective pipeline segment depends pipe material fracture toughness. tests also showed pipes made steel improved high fracture toughness fail result plastic fracture. determining Folias factor effect increased stress concentration steel hardening plastic deformation zone start defect failure process taken account. code applied single cross section pipeline containing longitudinally oriented, flat bottom surface defect corrosion/erosion type; pipelines, operate temperatures exceeding temperature pipe material ductile–brittle transition, pipematerial impact energy Charpy 61 [J] .","code":""},{"path":"/reference/pcorrcpf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"","code":"pcorrcpf(d, wth, uts, depth, l)"},{"path":"/reference/pcorrcpf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"d nominal outside diameter pipe, [mm]. Type: assert_double. wth nominal wall thickness pipe, [mm]. Type: assert_double. uts ultimate tensile strength (UTS) specified minimum tensile strength (SMTS) characteristic steel strength, [\\(MPa\\)]. Type: assert_double. depth measured maximum depth corroded area, [mm]. Type: assert_double. l measured maximum longitudinal length corroded area, [mm]. Type: assert_double.","code":""},{"path":"/reference/pcorrcpf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"Estimated failure pressure corroded pipe, [\\(MPa\\)]. Type: assert_double.","code":""},{"path":"/reference/pcorrcpf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"S. Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7 .C.Reddy, Safety Failure Criteria Fluorocarbon Plastic Pipes Dry Chlorine Transport using Finite Element Analysis Materials today: proceedings, Vol. 4(8), 2017, pp. 7498-7506. DOI 10.1016/j.matpr.2017.07.081","code":""},{"path":[]},{"path":"/reference/pcorrcpf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"PCORRC. Failure pressure of the corroded pipe — pcorrcpf","text":"","code":"library(pipenostics) d <- c(812.8, 219.0) # [mm] wth <- c( 19.1, 14.5) # [mm] uts <- c(530.9, 455.1) # [N/mm^2] l <- c(203.2, 200.0) # [mm] depth <- c( 13.4, 9.0) # [mm] pcorrcpf(d, wth, uts, depth, l) #> [1] 16.35449 33.01288 # [1] 16.35449 33.01288"},{"path":"/reference/pipenostics-package.html","id":null,"dir":"Reference","previous_headings":"","what":"pipenostics: Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems — pipenostics-package","title":"pipenostics: Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems — pipenostics-package","text":"Functions representing useful empirical data-driven models heat loss, corrosion diagnostics, reliability predictive maintenance pipeline systems. package option technical engineering departments heat generating heat transfer companies use plan use regulatory calculations activities. Methods described Timashev et al. (2016) doi:10.1007/978-3-319-25307-7 , .C.Reddy (2017) doi:10.1016/j.matpr.2017.07.081 , Minenergo (2008) https://docs.cntd.ru/document/902148459, Minenergo (2005) https://docs.cntd.ru/document/1200035568, Xing LU. (2014) doi:10.1080/23744731.2016.1258371 .","code":""},{"path":[]},{"path":"/reference/pipenostics-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"pipenostics: Diagnostics, Reliability and Predictive Maintenance of Pipeline Systems — pipenostics-package","text":"Maintainer: Yuri Possokhov omega1x@gmail.com (ORCID)","code":""},{"path":"/reference/psi_mpa.html","id":null,"dir":"Reference","previous_headings":"","what":"Megapascals to pounds per square inch — psi_mpa","title":"Megapascals to pounds per square inch — psi_mpa","text":"Convert pressure (stress) measured megapascals (MPa) pounds per square inch (PSI)","code":""},{"path":"/reference/psi_mpa.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Megapascals to pounds per square inch — psi_mpa","text":"","code":"psi_mpa(x)"},{"path":"/reference/psi_mpa.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Megapascals to pounds per square inch — psi_mpa","text":"x pressure (stress) measured megapascals. [MPa]. Type: assert_double.","code":""},{"path":"/reference/psi_mpa.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Megapascals to pounds per square inch — psi_mpa","text":"pressure (stress) pounds per square inch, [PSI]. Type: assert_double.","code":""},{"path":[]},{"path":"/reference/psi_mpa.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Megapascals to pounds per square inch — psi_mpa","text":"","code":"library(pipenostics) psi_mpa(c(6.89475728e-3, 1)) #> [1] 1.0000 145.0377 # [1] 1.0000 145.0377 # [PSI]"},{"path":"/reference/reynolds.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate Reynolds number — re_u","title":"Estimate Reynolds number — re_u","text":"Estimate Reynolds number fluid flow cylindrical pipe.","code":""},{"path":"/reference/reynolds.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate Reynolds number — re_u","text":"","code":"re_u(d, mu, u, rho) re_v(d, mu, v, rho) re_m(d, mu, m)"},{"path":"/reference/reynolds.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate Reynolds number — re_u","text":"d internal diameter pipe, [m]. Type: assert_double. mu dynamic viscosity fluid pipe, [kg/m/s]. Type: assert_double. u mean velocity fluid pipe, [m/s]. Type: assert_double. rho mass density fluid pipe, [kg/m^3]. Type: assert_double. v volumetric flow rate fluid pipe, [m^3/s]. Type: assert_double. m mass flow rate fluid pipe, [kg/s]. Type: assert_double.","code":""},{"path":"/reference/reynolds.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate Reynolds number — re_u","text":"Reynolds number - dimensionless quantity reveals ratio inertial viscous forces fluid, []. Type: assert_double.","code":""},{"path":"/reference/reynolds.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Estimate Reynolds number — re_u","text":"calculation Reynolds number bounded physically reasonable limits fluid properties found domain specificity package.","code":""},{"path":[]},{"path":"/reference/reynolds.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate Reynolds number — re_u","text":"","code":"library(pipenostics) # Reynolds numbers for typical district heating water flows at temperature # near 25 C in a set of pipes with different sizes: range(re_u(seq(.25, 1, 0.05), .89, 1, 1000)) #> [1] 280.8989 1123.5955 # [1] 280.8989 1123.5955"},{"path":"/reference/shell92pf.html","id":null,"dir":"Reference","previous_headings":"","what":"Shell92. Failure pressure of the corroded pipe — shell92pf","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"Calculate failure pressure corroded pipe according Shell92 code. code applied single cross section pipeline containing longitudinally oriented, flat bottom surface defect corrosion/erosion type; defects depth less 85 % pipe wall thickness. estimation valid single isolated metal loss defects corrosion/erosion type internal pressure loading considered. case dnvpf, defect approximated rectangular form.","code":""},{"path":"/reference/shell92pf.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"","code":"shell92pf(d, wth, uts, depth, l)"},{"path":"/reference/shell92pf.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"d nominal outside diameter pipe, [mm]. Type: assert_double. wth nominal wall thickness pipe, [mm]. Type: assert_double. uts ultimate tensile strength (UTS) specified minimum tensile strength (SMTS) characteristic steel strength, [MPa]. Type: assert_double. depth measured maximum depth corroded area, [mm]. Type: assert_double. l measured maximum longitudinal length corroded area, [mm]. Type: assert_double.","code":""},{"path":"/reference/shell92pf.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"Estimated failure pressure corroded pipe, [MPa]. Type: assert_double.","code":""},{"path":"/reference/shell92pf.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"Numeric NAs may appear case prescribed conditions use offended.","code":""},{"path":"/reference/shell92pf.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"Timashev . Bushinskaya, Diagnostics Reliability Pipeline Systems, Topics Safety, Risk, Reliability Quality 30, DOI 10.1007/978-3-319-25307-7","code":""},{"path":[]},{"path":"/reference/shell92pf.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Shell92. Failure pressure of the corroded pipe — shell92pf","text":"","code":"library(pipenostics) d = c(812.8, 219.0) # [mm] wth = c( 19.1, 14.5) # [mm] uts = c(530.9, 455.1) # [N/mm^2] l = c(203.2, 200.0) # [mm] depth = c( 13.4, 9.0) # [mm] shell92pf(d, wth, uts, depth, l) #> [1] 11.09262 25.27286 # [1] 11.09262 25.27286"},{"path":"/reference/strderate.html","id":null,"dir":"Reference","previous_headings":"","what":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"Temperature highly influence pipe material properties especially strength. Since API SPECIFICATION 5L values SMYS UTS postulated room conditions, case higher temperature magnitudes corrected. purpose DNV-RP-F101 offers linear de-rating SMYS SMYS according figure 2-3.","code":""},{"path":"/reference/strderate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"","code":"strderate(x, temperature = 24.3)"},{"path":"/reference/strderate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"x specified minimum yield stress (SMYS), ultimate tensile strength (UTS), specified minimum tensile strength (SMTS) characteristic steel strength room temperature, [MPa]. Type: assert_double. temperature temperature pipe wall, [°C]. Type: assert_double.","code":""},{"path":"/reference/strderate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"de-rated value x, .e. appropriate pipe material property, [MPa] . Type: assert_double.","code":""},{"path":[]},{"path":"/reference/strderate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"DNV-RP-F101. De-rate yield stress and tensile strength of pipe due to\n temperature — strderate","text":"","code":"library(pipenostics) with(api5l3t, { print(strderate(mpa_psi(smys), 53)) print( strderate(mpa_psi(uts),seq(0, 250, length.out = length(smys))) ) }) #> [1] 170.5689 205.0427 239.5165 287.7798 315.3588 356.7274 384.3064 411.8854 #> [9] 446.3592 480.8330 549.7806 #> [1] 310.2641 330.9483 413.6854 398.6854 404.3697 415.0540 439.5278 457.1068 #> [9] 460.8963 485.3701 530.5282 # [1] 170.5689 205.0427 239.5165 287.7798 315.3588 356.7274 384.3064 411.8854 446.3592 480.8330 # [11] 549.7806 # [1] 310.2641 330.9483 413.6854 398.6854 404.3697 415.0540 439.5278 457.1068 460.8963 485.3701 # [11] 530.5282"},{"path":"/reference/tracebw.html","id":null,"dir":"Reference","previous_headings":"","what":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow rate, ) bunched pipeline flow direction using user-provided values specific heat loss power. Algorithm also suits partially measurable district heating network massive data lack conditions, temperature pressure sensor readings majority terminal nodes.","code":""},{"path":"/reference/tracebw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"","code":"tracebw( sender = 6, acceptor = 7, temperature = 70, pressure = pipenostics::mpa_kgf(6), flow_rate = 20, d = 100, len = 72.446, loss = 78.4, roughness = 0.001, inlet = 0.5, outlet = 1, method = \"romeo\", opinion = \"median\", verbose = TRUE, csv = FALSE, file = \"tracebw.csv\" )"},{"path":"/reference/tracebw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Sensor-measured temperature heat carrier (water) sensor-measured terminal acceptor node, [°C]. Use NA_float_s (terminal) nodes without temperature sensor. Type: assert_double. pressure Sensor-measured absolute pressure heat carrier (water) inside pipe (.e. acceptor's incoming edge), [MPa]. Type: assert_double. flow_rate Sensor-measured amount heat carrier (water) terminal node transferred pipe (.e. acceptor's incoming edge) period, [ton/hour]. Type: assert_double. Use NA_float_s nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [mm]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. loss user-provided value specific heat loss power pipe, [kcal/m/h]. Values argument can obtained experimentally, taken regulatory documents. Type: assert_double. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. method method determining Darcy friction factor: romeo vatankhan buzelli Type: assert_choice. details see dropp. opinion method aggregating values regime parameters node next tracing step: mean values parameter averaged next tracing step median median parameter values used next tracing step Type: assert_choice. verbose logical indicator: watch tracing process console? Type: assert_flag. csv logical indicator: incrementally dump results csv- file tracing? Type: assert_flag. file name csv-file dump results . Type: assert_character length 1 can used safely create file write .","code":""},{"path":"/reference/tracebw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"data.frame containing results (detailed log) tracing narrow format: node Tracing job. Identifier node regime parameters calculated . Values vector identical argument acceptor. Type: assert_character. tracing Tracing job. Identifiers nodes regime parameters traced given node. Identifier sensor used values regime parameters node sensor readings. Type: assert_character. backward Tracing job. Identifier tracing direction. constantly equals TRUE. Type: assert_logical. aggregation Tracing job. Identifier aggregation method: span, median, mean, identity. Type: assert_character. loss Traced thermal hydraulic regime. Normative specific heat loss power adjacent pipe, [kcal/m/h]. Type: assert_double. flux Traced thermal hydraulic regime. Normative heat flux adjacent pipe, [W/m^2]. Type: assert_double. Q Traced thermal hydraulic regime. Normative heat loss adjacent pipe per day, [kcal]. Type: assert_character. temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water) associated node, [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) associated node, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) associated node, [ton/hour]. Type: assert_double. job Tracing job. Value tracing job counter. Type: assert_count. Type: assert_data_frame.","code":""},{"path":"/reference/tracebw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"consider topology district heating network represented m325testbench: network may partially sensor-equipped : latter case two nodes must equipped pressure temperature sensors whereas nodes flow rate sensors must installed. Tracing starts sensor-equipped nodes goes backwards, .e flow direction. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench. tracing starts next node, previously calculated values thermal-hydraulic parameters aggregated either averaging median. latter seems robust avoiding strong influence possible outliers may come actual heating transfer anomalies, erroneous sensor readings wrong pipeline specifications. Aggregation values flow rate node always sum.","code":""},{"path":[]},{"path":"/reference/tracebw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Massively trace backwards thermal-hydraulic regime for district\n heating network — tracebw","text":"","code":"library(pipenostics) # It is possible to run without specification of argument values: m325tracebw() #> #> 2024-04-08 14:44:23.163179 m325tracebw | start backward tracing; segments 1; #> 2024-04-08 14:44:23.163179 m325tracebw | start job; job 0; #> 2024-04-08 14:44:23.163179 m325tracebw | now process; 1 node(s); [7] #> 2024-04-08 14:44:23.163179 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:23.163179 m325tracebw | tracing loss;; #> 2024-04-08 14:44:23.163179 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[7]; #> 2024-04-08 14:44:23.163179 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.163179 m325tracebw | OK! Heat flux traced from 1 nodes;[7]; #> 2024-04-08 14:44:23.163179 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.163179 m325tracebw | OK! Heat loss per day traced from 1 nodes;[7]; #> 2024-04-08 14:44:23.163179 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:23.163179 m325tracebw | OK! Temperature traced from 1 nodes;[7]; #> 2024-04-08 14:44:23.163179 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:23.163179 m325tracebw | OK! Pressure traced from 1 nodes;[7]; #> 2024-04-08 14:44:23.163179 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.163179 m325tracebw | finish job; job 0; processed node(s) 1 #> 2024-04-08 14:44:23.163179 m325tracebw | finish backward tracing;; #> node tracing backward aggregation loss flux Q temperature #> 1 7 sensor TRUE identity 78.4 279.0696 136314.4 70 #> span 7 sensor TRUE span 0.0 0.0000 0.0 0 #> median 7 sensor TRUE median 78.4 279.0696 136314.4 70 #> mean 7 sensor TRUE mean 78.4 279.0696 136314.4 70 #> pressure flow_rate job #> 1 0.588399 20 0 #> span 0.000000 20 0 #> median 0.588399 20 0 #> mean 0.588399 20 0 # Consider isomorphic representation of District Heating Network graph: DHN <- pipenostics::m325testbench # * Adapt units: DHN$d <- 1e3*DHN$d # convert [m] to [mm] # * Adapt node identifiers for ordering representation simplification: DHN[[\"sender\"]] <- sprintf(\"N%02i\", DHN[[\"sender\"]]) DHN[[\"acceptor\"]] <- sprintf(\"N%02i\", DHN[[\"acceptor\"]]) # * Provided actual values of specific heat loss power (say, field measurements) for each # pipe in DHN, [kcal/m/h]: actual_loss <- c( # acceptor: 96.236, # 1 96.288, # 2 70.584, # 3 116.045, # 4 70.734, # 5 96.211, # 6 78.400, # 7 116.016, # 8 28.115, # 9 24.918, # 10 116.679, # 11 0.000, # 12, may be unmeasured! 153.134, # 13 96.733, # 14 96.600, # 15 116.667, # 16 24.960, # 17 115.923, # 18 28.166, # 19 96.123, # 20 77.824, # 21 115.946, # 22 70.690, # 23 96.184, # 24 96.236, # 25 70.540 # 26 ) # * Remove inappropriate attributes of the graph: DHN.1 <- DHN[, setdiff(colnames(DHN), c(\"year\", \"insulation\", \"laying\", \"beta\", \"exp5k\"))] # * Trace thermal-hydraulic regime for DHN: tracebw_report <- do.call(\"tracebw\", c(as.list(DHN.1), list(loss = actual_loss))) #> #> 2024-04-08 14:44:23.186121 tracebw | start backward tracing; segments 26; #> 2024-04-08 14:44:23.186121 tracebw | start job; job 0; #> 2024-04-08 14:44:23.186121 tracebw | now process; 13 node(s); [N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26] #> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [13/13] are TP-sensor-equipped; #> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.186121 tracebw | finish job; job 0; processed node(s) 13 #> 2024-04-08 14:44:23.186121 tracebw | start job; job 1; #> 2024-04-08 14:44:23.186121 tracebw | now process; 5 node(s); [N04,N05,N14,N22,N23] #> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [5/5] are TP-sensor-equipped; #> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.186121 tracebw | finish job; job 1; processed node(s) 5 #> 2024-04-08 14:44:23.186121 tracebw | start job; job 2; #> 2024-04-08 14:44:23.186121 tracebw | now process; 2 node(s); [N06,N20] #> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.186121 tracebw | finish job; job 2; processed node(s) 2 #> 2024-04-08 14:44:23.186121 tracebw | start job; job 3; #> 2024-04-08 14:44:23.186121 tracebw | now process; 2 node(s); [N08,N18] #> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.186121 tracebw | finish job; job 3; processed node(s) 2 #> 2024-04-08 14:44:23.186121 tracebw | start job; job 4; #> 2024-04-08 14:44:23.186121 tracebw | now process; 2 node(s); [N11,N16] #> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.186121 tracebw | finish job; job 4; processed node(s) 2 #> 2024-04-08 14:44:23.186121 tracebw | start job; job 5; #> 2024-04-08 14:44:23.186121 tracebw | now process; 1 node(s); [N13] #> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.186121 tracebw | finish job; job 5; processed node(s) 1 #> 2024-04-08 14:44:23.186121 tracebw | start job; job 6; #> 2024-04-08 14:44:23.186121 tracebw | now process; 1 node(s); [N12] #> 2024-04-08 14:44:23.186121 tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:23.186121 tracebw | tracing loss;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Specific heat loss power traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat flux traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.186121 tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Heat loss per day traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.186121 tracebw | tracing temperature;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Temperature traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.186121 tracebw | tracing pressure;; #> 2024-04-08 14:44:23.186121 tracebw | OK! Pressure traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.186121 tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.186121 tracebw | finish job; job 6; processed node(s) 1 #> 2024-04-08 14:44:23.186121 tracebw | finish backward tracing;; # * If the actual values of specific heat loss power presented above are close # to those in Minenergo-325, then the results of regime tracing match the # normative procedure: m325_report <- do.call(\"m325tracebw\", DHN) #> #> 2024-04-08 14:44:23.273599 m325tracebw | start backward tracing; segments 26; #> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 0; #> 2024-04-08 14:44:23.273599 m325tracebw | now process; 13 node(s); [N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26] #> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [13/13] are TP-sensor-equipped; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 13 nodes;[N01,N02,N03,N07,N09,N10,N15,N17,N19,N21,N24,N25,N26]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 0; processed node(s) 13 #> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 1; #> 2024-04-08 14:44:23.273599 m325tracebw | now process; 5 node(s); [N04,N05,N14,N22,N23] #> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [5/5] are TP-sensor-equipped; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 5 nodes;[N04,N05,N14,N22,N23]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 1; processed node(s) 5 #> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 2; #> 2024-04-08 14:44:23.273599 m325tracebw | now process; 2 node(s); [N06,N20] #> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 2 nodes;[N06,N20]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 2; processed node(s) 2 #> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 3; #> 2024-04-08 14:44:23.273599 m325tracebw | now process; 2 node(s); [N08,N18] #> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 2 nodes;[N08,N18]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 3; processed node(s) 2 #> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 4; #> 2024-04-08 14:44:23.273599 m325tracebw | now process; 2 node(s); [N11,N16] #> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [2/2] are TP-sensor-equipped; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 2 nodes;[N11,N16]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 4; processed node(s) 2 #> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 5; #> 2024-04-08 14:44:23.273599 m325tracebw | now process; 1 node(s); [N13] #> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 1 nodes;[N13]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 5; processed node(s) 1 #> 2024-04-08 14:44:23.273599 m325tracebw | start job; job 6; #> 2024-04-08 14:44:23.273599 m325tracebw | now process; 1 node(s); [N12] #> 2024-04-08 14:44:23.273599 m325tracebw | seen tracing; [1/1] are TP-sensor-equipped; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing loss;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Specific heat loss power traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat flux;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat flux traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing heat loss per day;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Heat loss per day traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing temperature;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Temperature traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing pressure;; #> 2024-04-08 14:44:23.273599 m325tracebw | OK! Pressure traced from 1 nodes;[N12]; #> 2024-04-08 14:44:23.273599 m325tracebw | tracing flow_rate;; #> 2024-04-08 14:44:23.273599 m325tracebw | finish job; job 6; processed node(s) 1 #> 2024-04-08 14:44:23.273599 m325tracebw | finish backward tracing;; stopifnot( all.equal(tracebw_report$temperature, m325_report$temperature, tolerance = 1e-4), all.equal(tracebw_report$pressure , m325_report$pressure , tolerance = 1e-4), all.equal(tracebw_report$flow_rate , m325_report$flow_rate , tolerance = 1e-4) )"},{"path":"/reference/tracefw.html","id":null,"dir":"Reference","previous_headings":"","what":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow rate, ) bunched pipeline along flow direction using user-provided values specific heat loss power.","code":""},{"path":"/reference/tracefw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"","code":"tracefw( sender = c(0, 1), acceptor = c(1, 2), temperature = c(70, NA_real_), pressure = c(pipenostics::mpa_kgf(6), NA_real_), flow_rate = c(20, NA_real_), d = rep_len(100, 2), len = rep_len(72.446, 2), loss = rep_len(78.4, 2), roughness = rep_len(0.001, 2), inlet = c(0.5, 1), outlet = c(1, 1), elev_tol = 0.1, method = \"romeo\", verbose = TRUE, csv = FALSE, file = \"tracefw.csv\", use_cluster = FALSE )"},{"path":"/reference/tracefw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"sender identifier node heat carrier flows . Type: type can painlessly coerced character .character. acceptor identifier node heat carrier flows . According topology test bench considered identifier unique every row. Type: type can painlessly coerced character .character. temperature Sensor-measured temperature heat carrier (water) sensor-measured root node, [°C]. Use NA_float_s nodes without temperature sensor. Type: assert_double. pressure Sensor-measured absolute pressure heat carrier (water) inside pipe root node, [MPa]. Use NA_float_s nodes without pressure sensor. Type: assert_double. flow_rate Sensor-measured amount heat carrier (water) root node transferred pipe period, [ton/hour]. Type: assert_double. Use NA_float_s nodes without flow rate sensor. d internal diameter pipe (.e.diameter acceptor's incoming edge), [mm]. Type: assert_double. len pipe length (.e. length acceptor's incoming edge), [m]. Type: assert_double. loss user-provided value specific heat loss power pipe tracing path, [kcal/m/h]. Values argument can obtained experimentally, taken regulatory documents. Type: assert_double. roughness roughness internal wall pipe (.e. acceptor's incoming edge), [m]. Type: assert_double. inlet elevation pipe inlet, [m]. Type: assert_double. outlet elevation pipe outlet, [m]. Type: assert_double. elev_tol maximum allowed discrepancy adjacent outlet inlet elevations two subsequent pipes traced path, [m]. Type: assert_number. method method determining Darcy friction factor: romeo vatankhan buzelli Type: assert_choice. details see dropp. verbose logical indicator: watch tracing process console? Type: assert_flag. csv logical indicator: incrementally dump results csv- file tracing? Type: assert_flag. file name csv-file dump results . Type: assert_character length 1 can used safely create file write . use_cluster utilize functionality parallel processing multi-core CPU. Type: assert_flag.","code":""},{"path":"/reference/tracefw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"data.frame containing results (detailed log) tracing narrow format: node Tracing job. Identifier node regime parameters calculated . Values vector identical argument acceptor. Type: assert_character. tracing Tracing job. Identifiers nodes regime parameters traced given node. Identifier sensor used values regime parameters node sensor readings. Type: assert_character. backward Tracing job. Identifier tracing direction. constantly equals FALSE. Type: assert_logical. aggregation Tracing job. Identifier aggregation method associated traced values. forward tracing option identity. Type: assert_character. temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water) associated node, [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) associated node, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) associated node, [ton/hour]. Type: assert_double. job Tracing job. Value tracing job counter. forward tracing value job counts number traced paths root node. Type: assert_count. Type: assert_data_frame.","code":""},{"path":"/reference/tracefw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"consider topology district heating network represented m325testbench: Tracing starts sensor-equipped root node goes forward, .e along flow direction. Function traceline serves hood tracing identified linear segments root node every terminal node. Hence need root node equipped sensors. Sensors nodes redundant forward tracing, since tracing algorithm means consider tracing. Moreover forward tracing algorithm assume flow heat carrier distributed proportionally cross-sectional area outgoing pipeline. Actually, lot reasons may cause significant deviations assumption. result, sequence paired backward/forward tracing may divergent regime parameters. Though input arguments natively vectorized individual values relate common part district heating network, .e. associated common object. due isomorphism vector representation directed graph network. details isomorphic topology description see m325testbench. welcome couple algorithm functionality data.table.","code":""},{"path":[]},{"path":"/reference/tracefw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Massively trace forwards thermal-hydraulic regime for district\n heating network — tracefw","text":"","code":"library(pipenostics) # Minimum two nodes should be in district heating network graph: tracefw(verbose = FALSE) #> node tracing backward aggregation loss flux Q temperature #> 1 1 sensor FALSE identity NA NA NA 70.00000 #> 2 2 1 FALSE identity 78.4 279.0696 136314.4 69.71603 #> pressure flow_rate job #> 1 0.5883990 20 0 #> 2 0.5813153 20 1 # Consider isomorphic representation of District Heating Network graph: DHN <- pipenostics::m325testbench # * remove irrelevant parameters from the test bench DHN[c(\"year\", \"insulation\", \"laying\", \"beta\", \"exp5k\")] <- NULL DHN[c(\"temperature\", \"pressure\", \"flow_rate\")] <- NA_real_ # * avoid using numeric identifiers for nodes: DHN$sender <- sprintf(\"N%02i\", DHN$sender) DHN$acceptor <- sprintf(\"N%02i\", DHN$acceptor) # * alter units: DHN$d <- 1e3 * DHN$d # convert [m] to [mm] # * provide current regime parameters for root node root_node <- 12 DHN[root_node, \"temperature\"] <- 70.4942576978 # [°C] DHN[root_node, \"pressure\"] <- 0.6135602014 # [MPa] DHN[root_node, \"flow_rate\"] <- 274.0 # [ton/hour] # * provide actual values of specific heat loss power, [kcal/m/h], for each # segment N01 - N26. Since N12 is a root node, the specific heat loss # power for this acceptor is set to 0 (or may be any other numeric value). actual_loss <- c( 96.8, 96.8, 71.2, 116.7, 71.3, 96.8, 78.5, 116.7, 28.6, 24.5, 116.7, 0.0, 153.2, 96.8, 96.8, 116.7, 24.5, 116.7, 28.6, 96.8, 78.5, 116.7, 71.3, 96.8, 96.8, 71.1 ) # Trace the test bench forward for the first time: fw_report <- do.call( \"tracefw\", c(as.list(DHN), list(loss = actual_loss), verbose = FALSE, elev_tol = .5) )"},{"path":"/reference/traceline.html","id":null,"dir":"Reference","previous_headings":"","what":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"Trace values thermal-hydraulic regime (temperature, pressure, flow_rate, ) along adjacent linear segments pipeline using user-provided values specific heat loss power.","code":""},{"path":"/reference/traceline.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"","code":"traceline( temperature = 130, pressure = mpa_kgf(6), flow_rate = 250, g = 0, d = 700, len = c(600, 530, 300, 350), loss = c(348, 347.1389, 346.3483, 345.861), roughness = 0.006, inlet = 0, outlet = 0, elev_tol = 0.1, method = \"romeo\", forward = TRUE, absg = TRUE )"},{"path":"/reference/traceline.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"temperature Traced thermal hydraulic regime. Sensor-measured temperature heat carrier (water) inside pipe sensor-measured inlet (forward tracing) outlet (backward tracing) path, [°C]. Type: assert_number. pressure Traced thermal hydraulic regime. Sensor-measured absolute pressure heat carrier (water) sensor-measured inlet (forward tracing) outlet (backward tracing) path, [MPa]. Type: assert_number. flow_rate Traced thermal hydraulic regime. Amount heat carrier (water) sensor-measured inlet (forward tracing) outlet (backward tracing) path, [ton/hour]. Type: assert_number. g amount heat carrier discharge network pipe segment tracing path enumerated along direction flow. flag absg TRUE treat argument g absolute value [ton/hour], otherwise percentage flow_rate pipe segment. Type: assert_double. d internal diameters subsequent pipes tracing path enumerated along direction flow, [mm]. Type: assert_double. len length subsequent pipes tracing path enumerated along direction flow, [m]. Type: assert_double. loss user-provided value specific heat loss power pipe tracing path enumerated along direction flow, [kcal/m/h]. Values argument can obtained experimentally, taken regulatory documents. Type: assert_double. roughness roughness internal wall pipe tracing path enumerated along direction flow, [m]. Type: assert_double. inlet elevation pipe inlet pipe tracing path enumerated along direction flow, [m]. Type: assert_double. outlet elevation pipe outlet pipe tracing path enumerated along direction flow, [m]. Type: assert_double. elev_tol maximum allowed discrepancy adjacent outlet inlet elevations two subsequent pipes traced path, [m]. Type: assert_number. method method determining Darcy friction factor romeo vatankhan buzelli Type: assert_choice. details see dropp. forward tracing direction flag: forward direction tracing? FALSE backward tracing performed. Type: assert_flag. absg Whether argument g (amount heat carrier discharge network) absolute value [ton/hour] (TRUE) percentage flow rate pipe segment (FALSE)? Type: assert_flag.","code":""},{"path":"/reference/traceline.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"list containing results (detailed log) tracing pipe tracing path enumerated along direction flow: temperature Traced thermal hydraulic regime. Traced temperature heat carrier (water), [°C]. Type: assert_double. pressure Traced thermal hydraulic regime. Traced pressure heat carrier (water) pipe tracing path enumerated along direction flow, [MPa]. Type: assert_double. flow_rate Traced thermal hydraulic regime. Traced flow rate heat carrier (water) pipe tracing path enumerated along direction flow, [ton/hour]. Type: assert_double. loss User-provided specific heat loss power pipe tracing path enumerated along direction flow, [kcal/m/h], - copy input. Type: assert_double. flux Heat flux pipe tracing path enumerated along direction flow, [W/m^2]. Type: assert_double. Q Heat loss pipe tracing path enumerated along direction flow per day, [kcal]. Type: assert_double. Type: assert_list.","code":""},{"path":"/reference/traceline.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"consider simple tracing paths contain rings kind parallelization. time bidirectional (forward backward) tracing possible accordance sensor position. also may consider discharges network inlet pipeline segment approximation actual forks flows. Relevant illustration adopted assumptions 4-segment tracing path depicted next figure. make additional check consistency inlet outlet values subsequent pipe segments. Discrepancy appropriate elevations elev_tol. Since inner diameter pipe used input, thickness pipe wall additionally considered heat flux calculations. Pipe wall thickness derived pipe diameter using GOST 30732 specifications.","code":""},{"path":[]},{"path":"/reference/traceline.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Trace thermal-hydraulic regime for linear segment of district\n heating network — traceline","text":"","code":"library(pipenostics) # Consider 4-segment tracing path. # First, let sensor readings for forward tracing: t_fw <- 130 # [°C] p_fw <- mpa_kgf(6)*all.equal(.588399, mpa_kgf(6)) # [MPa] g_fw <- 250 # [ton/hour] # Let discharges to network for each pipeline segment are somehow determined as discharges <- seq(0, 30, 10) # [ton/hour] # Experimentally obtained values of specific heat loss power are actual_loss <- c(348.0000, 347.1389, 346.3483, 345.8610) # Then the calculated regime (red squares) for forward tracing is regime_fw <- traceline(t_fw, p_fw, g_fw, discharges, loss = actual_loss, forward = TRUE) print(regime_fw) #> $temperature #> [1] 129.1799 128.4269 127.9628 127.3367 #> #> $pressure #> [1] 0.5878607 0.5874226 0.5872143 0.5870330 #> #> $flow_rate #> [1] 250 240 220 190 #> #> $loss #> [1] 348.0000 347.1389 346.3483 345.8610 #> #> $flux #> [1] 181.9600 181.5097 181.0963 180.8415 #> #> $Q #> [1] 5011200 4415607 2493708 2905232 #> # $temperature # [1] 129.1799 128.4269 127.9628 127.3367 # # $pressure # [1] 0.5878607 0.5874226 0.5872143 0.5870330 # # $flow_rate # [1] 250 240 220 190 # # $loss # [1] 348.0000 347.1389 346.3483 345.8610 # # $flux # [1] 181.9600 181.5097 181.0963 180.8415 # # $Q # [1] 5011200 4415607 2493707 2905232 # Next consider values of traced regime as sensor readings for backward tracing: t_bw <- 127.3367 # [°C] p_bw <- .5870330 # [MPa] g_bw <- 190 # [ton/hour] # Then the calculated regime (red squares) for backward tracing is regime_bw <- traceline(t_bw, p_bw, g_bw, discharges, loss = actual_loss, forward = FALSE) print(regime_bw) #> $temperature #> [1] 130.0009 129.1805 128.4272 127.9630 #> #> $pressure #> [1] 0.5883998 0.5878611 0.5874228 0.5872144 #> #> $flow_rate #> [1] 250 250 240 220 #> #> $loss #> [1] 348.0000 347.1389 346.3483 345.8610 #> #> $flux #> [1] 181.9600 181.5097 181.0963 180.8415 #> #> $Q #> [1] 5011200 4415607 2493708 2905232 #> # $temperature # [1] 130.000893685 129.180497939 128.427226907 127.963046346 # # $pressure # [1] 0.588399833660 0.587861095778 0.587422779315 0.587214377798 # # $flow_rate # [1] 250 250 240 220 # # $loss # [1] 348.0000 347.1389 346.3483 345.8610 # # $flux # [1] 181.959958158 181.509711836 181.096328092 180.841531863 # # $Q # [1] 5011200.000 4415606.808 2493707.760 2905232.400 # Let compare sensor readings with backward tracing results: tracing <- with(regime_bw, { lambda <- function(val, constraint) c(val, constraint, constraint - val, abs(constraint - val)*100/constraint) first <- 1 structure( rbind( lambda(temperature[first], t_fw), lambda(pressure[first], p_fw), lambda(flow_rate[first], g_fw) ), dimnames = list( c(\"temperature\", \"pressure\", \"flow_rate\"), c(\"sensor.value\", \"traced.value\", \"abs.discr\", \"rel.discr\") ) ) }) print(tracing) #> sensor.value traced.value abs.discr rel.discr #> temperature 130.0008937 130.000000 -8.936853e-04 0.0006874502 #> pressure 0.5883998 0.588399 -8.261601e-07 0.0001404081 #> flow_rate 250.0000000 250.000000 0.000000e+00 0.0000000000 # sensor.value traced.value abs.discr rel.discr # temperature 130.00089368526 130.0000000000 -8.93685255676e-04 0.000687450196674 # pressure 0.58839983366 0.5883990075 -8.26160099998e-07 0.000140408139624 # flow_rate 250.00000000000 250.0000000000 0.00000000000e+00 0.000000000000000"},{"path":"/reference/wth_d.html","id":null,"dir":"Reference","previous_headings":"","what":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"Use GOST 30732 specifications derive value pipe wall thickness diameter known pipe.","code":""},{"path":"/reference/wth_d.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"","code":"wth_d(x)"},{"path":"/reference/wth_d.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"x outside diameter pipe, [mm]. Type: assert_double.","code":""},{"path":"/reference/wth_d.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"Utility used cases actual value pipe wall thickness determined means. many cases internal diameter may used instead outside one without significant loss precision. wall thickness value derived diameters mentioned Minenergo Order 325. Unfortunately, inverse function constructed reliable way due significant ambiguity.","code":""},{"path":"/reference/wth_d.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"GOST 30732. Steel pipes shaped products foamed polyurethane thermal insulation protective sheath. Specifications.","code":""},{"path":[]},{"path":"/reference/wth_d.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Derive the wall thickness depending on the outside diameter of pipe — wth_d","text":"","code":"library(pipenostics) # Guess pipe widths for some frequently met diameters wth_d(as.double(c(57, 76, 89))) #> [1] 3 3 4 # [1] 3 7 11 # [mm]"},{"path":[]},{"path":"/news/index.html","id":"current-version-0-2-0","dir":"Changelog","previous_headings":"","what":"Current version","title":"pipenostics 0.2.0","text":"possible justified, support multi-threaded data processing, based capabilities parallel package, added. functions determining state water steam (IAPWS) excluded package due decision use built-functions iapws-package imported CRAN. set functions mgtdhid(), mgtdhidt(), mgtdhgeo(), mgtdhgeot() introduced interface Modified Ground Temperature Double Harmonic Model. function meteos() introduced get list weather stations functions geodist() geoarea() calculating geographical metrics added. functions traceline(), tracefw(), tracebw() added process district heating networks user-provided heat loss. job log m325tracefw() now contain duplicated traced flow paths. job logs m325tracefw() m325tracebw() now contain loss, flux, Q. function m325tracebw()now can trace partially sensor-equipped district networks. functions m325dropt() m325tracebwm() excluded. functions flux_loss() loss_flux() added convert specific heat loss power, [kcal/m/h] , heat flux, [W/m^2]. heat loss related terminology clarified adjusted: terms specific heat loss power, [kcal/m/h], heat flux, [W/m^2], viewed separately stay closely related. Term consumption replaced flow_rate.","code":""}]