Calculate normative values of heat flux that is legally affirmed by Minenergo Order 325 to be emitted by steel pipe of district heating system with water as a heat carrier.

```
m325nhl(
year = 1986,
laying = "underground",
exp5k = TRUE,
insulation = 0,
d = 700,
temperature = 110,
len = 1,
duration = 1,
beta = FALSE,
extra = 2
)
```

- year
year when the pipe is put in operation after laying or total overhaul. Type:

`assert_integerish`

- laying
type of pipe laying depicting the position of pipe in space:

`air`

,`channel`

,`room`

,`tunnel`

,`underground`

.

Type:

`assert_subset`

.- exp5k
pipe regime flag: is pipe operated more that 5000 hours per year? Type:

`assert_logical`

.- insulation
insulation that covers the exterior of pipe:

`0`

no insulation

`1`

foamed polyurethane or analogue

`2`

polymer concrete

Type:

`assert_integer`

and`assert_subset`

.- d
internal diameter of pipe, [

*mm*]. Type:`assert_double`

.- temperature
temperature of heat carrier (water) inside the pipe, [

*°C*]. Type:`assert_double`

.- len
length of pipe, [

*m*]. Type:`assert_double`

.- duration
duration of heat flux emittance, [

*hour*]. Type:`assert_double`

.- beta
should they consider additional heat losses of fittings? Type:

`assert_logical`

.- extra
number of points used for temperature extrapolation:

`2`

,`3`

, or`4`

. Type:`assert_choice`

.

Heat flux emitted by pipe during `duration`

, [*kcal*].
If `len`

of pipe is 1 *m* and `duration`

of heat flux
emittance is set to 1 *hour* then the return value is in the same
units as value of heat flux, [*kcal/m/h*], accepted by

Minenergo Order 325.
Type: `assert_double`

.

Temperature extrapolation and pipe diameter interpolation are leveraged
for better accuracy. Both are linear as it dictated by
Minenergo Order 325.
Nevertheless, one could control the extrapolation behavior by `extra`

argument: use lower values of `extra`

for soft curvature near extrapolation
edges, and higher values for more physically reasoned behavior in far regions
of extrapolation.

Other Minenergo:
`m278hlair()`

,
`m278hlcha()`

,
`m278hlund()`

,
`m278insdata`

,
`m278inshcm()`

,
`m278soildata`

,
`m325beta()`

,
`m325dropt()`

,
`m325nhldata`

,
`m325testbench`

```
with(m325nhldata, {
## Linear extrapolation adopted in Minenergo's Order 325 using last two points:
temperature <- seq(0, 270, 10) # [°C]
flux <- m325nhl(1980, "underground", TRUE, 0, 73, temperature) # [kcal/m/h]
plot(temperature, flux, type = "b")
## Consider heat losses of fittings:
stopifnot(
## when beta becomes 1.15
all(
round(
m325nhl(1980, "underground", d = 73, temperature = 65,
beta = c(FALSE, TRUE)),
3
) == c(65.500, 75.325)
),
## when beta becomes 1.2
all(
round(
m325nhl(2000, "channel", d = 73, temperature = 65,
beta = c(FALSE, TRUE)),
3
) == c(17.533, 21.040)
)
)
})
```