Minenergo-325. Massively trace backwards thermal-hydraulic regime for district heating network
Source:R/m325tracebw.R
m325tracebw.Rd
Trace values of thermal-hydraulic regime (temperature, pressure, flow rate, and other) in the bunched pipeline against the flow direction using norms of heat loss values prescribed by Minenergo Order 325.
Algorithm also suits for partially measurable district heating network with massive data lack conditions, when there are no temperature and pressure sensor readings on the majority of terminal nodes.
Usage
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"
)
Arguments
- sender
identifier of the node which heat carrier flows out. Type: any type that can be painlessly coerced to character by
as.character
.- acceptor
identifier of the node which heat carrier flows in. According to topology of test bench considered this identifier should be unique for every row. Type: any type that can be painlessly coerced to character by
as.character
.- temperature
Sensor-measured temperature of heat carrier (water) sensor-measured on the terminal acceptor node, [°C]. Use
NA_float_
s for (terminal) nodes without temperature sensor. Type:assert_double
.- pressure
Sensor-measured absolute pressure of heat carrier (water) inside the pipe (i.e. acceptor's incoming edge), [MPa]. Type:
assert_double
.- flow_rate
Sensor-measured amount of heat carrier (water) on terminal node that is transferred by pipe (i.e. acceptor's incoming edge) during a period, [ton/hour]. Type:
assert_double
. UseNA_float_
s for nodes without flow rate sensor.- d
internal diameter of pipe (i.e.diameter of acceptor's incoming edge), [mm]. Type:
assert_double
.- len
pipe length (i.e. length of acceptor's incoming edge), [m]. Type:
assert_double
.- year
year when the pipe (i.e. acceptor's incoming edge) is put in operation after laying or total overhaul. Type:
assert_integerish
.- insulation
identifier of insulation that covers the exterior of pipe (i.e. acceptor's incoming edge):
0
no insulation
1
foamed polyurethane or analogue
2
polymer concrete
Type:
assert_subset
.- laying
type of pipe laying depicting the position of pipe in space. Only five types of pipe laying are considered:
air
,channel
,room
,tunnel
,underground
.
Type:
assert_subset
.- beta
logical indicator: should they consider additional heat loss of fittings located on this pipe (i.e. acceptor's incoming edge)? Type:
assert_logical
.- exp5k
logical indicator for regime of pipe (i.e. acceptor's incoming edge): if
TRUE
pipe is operated more that5000
hours per year. Type:assert_logical
.- roughness
roughness of internal wall of pipe (i.e. acceptor's incoming edge), [m]. Type:
assert_double
.- inlet
elevation of pipe inlet, [m]. Type:
assert_double
.- outlet
elevation of pipe outlet, [m]. Type:
assert_double
.- method
method of determining Darcy friction factor:
romeo
vatankhan
buzelli
Type:
assert_choice
. For more details seedropp
.- opinion
method for aggregating values of regime parameters on each node for the next tracing step:
mean
values of parameter are averaged before the next tracing step
median
median of parameter values are used for the next tracing step
Type:
assert_choice
.- verbose
logical indicator: should they watch tracing process on console? Type:
assert_flag
.- csv
logical indicator: should they incrementally dump results to csv- file while tracing? Type:
assert_flag
.- file
name of csv-file which they dump results to. Type:
assert_character
of length 1 that can be used safely to create a file and write to it.
Value
data.frame
containing results (detailed log) of tracing in
node
Tracing job. Identifier of the node which regime parameters is calculated for. Values in this vector are identical to those in argument
acceptor
. Type:assert_character
.tracing
Tracing job. Identifiers of nodes from which regime parameters are traced for the given node. Identifier
sensor
is used when values of regime parameters for the node are sensor readings. Type:assert_character
.backward
Tracing job. Identifier of tracing direction. It constantly equals to
TRUE
. Type:assert_logical
.aggregation
Tracing job. Identifier of aggregation method: span, median, mean, or identity. Type:
assert_character
.loss
Traced thermal hydraulic regime. Normative specific heat loss power of adjacent pipe, [kcal/m/h]. Type:
assert_double
.flux
Traced thermal hydraulic regime. Normative heat flux of adjacent pipe, [W/m^2]. Type:
assert_double
.Q
Traced thermal hydraulic regime. Normative heat loss of adjacent pipe per day, [kcal]. Type:
assert_character
.temperature
Traced thermal hydraulic regime. Traced temperature of heat carrier (water) that is associated with the node, [°C]. Type:
assert_double
.pressure
Traced thermal hydraulic regime. Traced pressure of heat carrier (water) that is associated with the node, [MPa]. Type:
assert_double
.flow_rate
Traced thermal hydraulic regime. Traced flow rate of heat carrier (water) that is associated with the node, [ton/hour]. Type:
assert_double
.job
Tracing job. Value of tracing job counter. Type:
assert_count
.
Type: assert_data_frame
.
Details
They consider the topology of district heating network represented by
m325testbench
:
The network may be partially sensor-equipped too:
In latter case no more than two nodes must be equipped with pressure and temperature sensors whereas for other nodes only flow rate sensors must be installed.
Tracing starts from sensor-equipped nodes and goes backwards, i.e against the flow direction.
Though some input arguments are natively vectorized their individual values
all relate to common part of district heating network, i.e. associated with
common object. It is due to isomorphism between vector representation and
directed graph of this network. For more details of isomorphic topology
description see m325testbench
.
Before tracing starts for the next node, previously calculated values of thermal-hydraulic parameters are aggregated by either averaging or by median. The latter seems more robust for avoiding strong influence of possible outliers which may come from actual heating transfer anomalies, erroneous sensor readings or wrong pipeline specifications.
Aggregation for values of flow rate at the node is always sum
.
See also
Other Regime tracing:
m325tracefw()
,
m325traceline()
,
tracebw()
,
tracefw()
,
traceline()
Examples
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