Jump to content

Caculating the changed heat transfer mechanism and smoldering time.


Recommended Posts

  • Background

As we all know, Klei made a change to the Ice Flingomatic and smoldering mechanism after the update Waterlogged. It is said that the burning device is more difficult to burn. However, a friend of mine told me that in the update August 20, 2021, the Ice Flingomatic have been changed again, which made the time of being smoldering unstable.

        This paper will focus on the heat transfer process from Ice Flingomatic extinguishes the fire to re-smolder, code unpacking and model establishment.

  • Basic knowledge

         First, we need to know some basic knowledge about the spread of heat. Each combustible has a component calledpropagator, which specifies the change of heat of the combustible from being extinguished to re-smolder,Here are some brief introductions

Spoiler

heat: in the propagatorcomponent, a parameter heat is first specified for combustibles. For single combustibles, this parameter is updated every 0.5 seconds, and the heat of combustibles without heat source nearby will be constant equal to 0.

flashpoint: a parameter flashpoint is specified, which is the minimum heat for combustibles getting into smoldering state. When the heat of the combustible rises to the flashpoint, the combustible will immediately smolder, meanwhile pause the heat transfer process, and only perform the basic change of heat (close to 0).

Different combustibles have different flashpoint, which are divided into three grades: large, medium and small. It is usually described as one of the three types ,but the flashpoint of each individual combustible will be a random value. The value range of flashpoint of large combustible is 45-55, that of medium is 15-25, and that of small is 5-10.

heat_this_update: specifies a parameter heat_this_update.this parameter is the heat change value each update. It is related to the flashpoint of the object and the distance between combustible and heat source. At the same time, all combustibles have a world basic heat change (hereinafter referred to as H). When the heat of this combustibles is not 0, the heat will tend to close to 0. When the heat is negative, the heat increases by 0.25 every 0.5s, and when the heat is positive, the heat decreases by 0.25 every 0.5s.

current_heat: a parameter current heat is specified, which refers to the heat of combustibles at the current time.

propagaterange: Specifies the parameter propagaterange, which is an important parameter in the temperature rise process. This value is also divided into three grades: large, medium and small, but it is a fixed value. The values of small, medium and large are 5, 7 and 8 respectively.

       percent_heat: Specifies the parameterpercent_heat, this parameter is used to calculate the heat_this_update of combustibles under different states, which is a function of season and distance.

        The above parameters of the 【propagator】component can be directly queried in the file standardcomponents. Lua】.

        

In addition, in order to facilitate calculation and understanding, the author has added some quantities to represent some meaningful values:

extinguish_heat: this value refers to the instantaneous heat of combustibles when the snowball / water ball of Ice Flingomatic / hydrant hits the combustibles. This value is a fixed value in the previous version. It is - 1 * flashpoint before the "waterlogged" version and - 3 * flashpoint after the "waterlogged" update. Now it is a fluctuation value ranges - 4 * Flashpoint, 0.

update time (DT): this time refers to the interval between two updates of the heat of combustibles. Its value is 0.5s. The change of the world basic heat is calculated in the first 0.1s, and the influence of the heat source on combustibles is calculated in the last 0.4s (the value may fluctuate between 0.35-0.4, which I think depends on the computer).

single cycle time (T): This is the total time from the combustible being extinguished to the combustible re-smolder. This is a single cycle process.

geometric points: in the official code, almost all points are wall grids. However, because the wall grid is too large, the model is very sensitive to distance. Therefore, the geometric points specified in geometry mod (MOD No.: 351325790) are introduced in calculation. Each geometric point equals to 0.5 wall grids.

After understanding the above parameters, we have a clearer understanding of the heat transfer process mentioned in the first part: when the Ice Flingomatic / hydrant releases a snowball / water ball, it will directly change the heat of the extinguished combustibles into the extinguished heat, and at the same time, the nearby heat source will start to increase its heat. The current heat of combustibles is updated every DT, and the heat of a single rise is added to the current heat after calculation. When the current heat of combustible reaches its flashpoint, it will immediately start the smoldering process and pause the rise of heat, but the world basic heat change will not disappear, its heat is still approaching 0. Generally, at this time, the Ice Flingomatic will find that it has begun to smolder and launch a snowball to it for the second cycle.

 

 

  • Changes and code implementation

 

        The third part is the code comparison of the changed content to explain how it completes the change. If you are impatient or can’t understand the content of the third part, you can go directly to the fourth part.      

       The author have backed up the DST files on August 15, 2021 and August 20, 2021, and compared them to observe the code changes and how they affect the actual performance ingame. The version dated August 15, 2021 is called the previous version, and the version dated August 20, 2021 is called the current version. The changes mainly focus on two directions: change the 【extinguish heat】 from fixed value to fluctuating value; Change 【heat_this_update】 from fixed value to fluctuating value.

      【change of extinguish heat】

Spoiler

      the author observed that when the Ice Flingomatic hits the combustible, its extinguish heat is changed. It is a fixed value before August 20, 2021, and a fluctuating value after updating on August 20, 2021. The code is shown in the figure.

1974412051_.thumb.png.9c4c149fd444197bb9386e6f5e8f99fd.png

      According to the codes of the two versions, they can be expressed in formulas. From the formula, it can be seen that the extinguish heat of the previous version is a fixed - 3 *flashpoint, while in the current version, this value is specified as a fluctuation value, and its value range【- 4 * Flashpoint, 0】:

1205432806_.thumb.png.f768a77702ec0688a45b49b034cb2e83.png

      change of heat_this_update

Spoiler

      the function of heat_this_update is AddHeat (amount). In the previous version, its value is a fixed value, which is determined by the key parameter max_heat_this_update valued 0.25 * flashpoint.

455009869_heatthistime.png.428bff0a4c026600c8464f75ed7b97bb.png

      In the current version, this value is specified as a fluctuation value. The key parameter max_heat_this_time has been changed its formulas by inserting a third power exponent of a random number into the denominator.

641162454_heatthistime.thumb.png.b53dd4d963706ff9021651c235e57683.png

      The previous and current formulas are:

860279485_.thumb.png.0ae5d2fd62375b227a2946258a370e25.png

 

  • Summary of changes and comparison of theoretical models

      The whole process from extinguishing smoldering to re-smolder is simplified into a tracking model, so the starting point of the model is extinguish heat, the unit time is update time, the speed is heat_this_update, the end point is flashpoint, and the current heat is the distance that has been traveled. The most used combustibles are small smoldering items. Therefore, small propagator components are selected as the input value of the model. The simplified model is shown in the following figure:

Spoiler

650035121_1.thumb.png.c685098b8e53f74c35c2a43cc900a243.png

        In the previous version, extinguish heat is a fixed value, which is - 3 * flashpoint.heat_this_update is calculated as a function of distance and flashpoint. When the distance between combustible and heat source small enough, its value is 0.25 * flashpoint. Because there is a change in the world basic heat, the heat of combustibles will change 0.25 towards 0 per update time. Therefore, when the heat is positive, the current heat of combustibles can rise only when the value of heat_this_update is greater than 0.25. The following is the heat_this_update diagram and single cycle time T change diagram of each point in the previous version.

Spoiler

1060593225_.thumb.png.a5e0e846f82dfb9395e3e570846503a6.png

      The abscissa in this figure is the coordinate difference between combustible and heat source, and the unit is geometric point. The ordinate in the figure (a) represents the value of heat_this_time. The ordinate of the figure(b) represents the single cycle time T, which represents the single cycle time of combustibles at the point DX away from the heat source.

      It can be seen from (a) of this figure that in the previous version, the values of heat_this_update are almost the same within 5 geometric points away from the heat source, and the fluctuation is caused by the change of flashpoint of combustibles. However, it can be seen from (b) that this fluctuation value has almost no effect on single cycle time T. The single cycle time of all combustibles is 7.5S or 8s within 5 geometric points, which depends on the flashpoint of the combustibles. The single cycle time starts to soar and changes widely outside the five geometric points.  At the seventh geometric point, T can change from 7.5S to 15s. However, the single cycle time suddenly becomes 0 outside the 10 geometric points, which means that the combustibles outside the 10 geometric points will never be affected by the heat source to smolder.

          In the current version, 【extinguished heat】 and 【heat_this_update】 have been changed into random value with fluctuating changes mentioned in the above section.        

The changed data was inputted into the model for calculation. Since the flashpoint is a random number evenly distributed in 5, 10, in order to explore the single cycle time of current version, make the flashpoint change monotonically from 5 to 10, simulate 1000 times at each corresponding flashpoint to calculate the single cycle time, result shown in the figure below:

Spoiler

978575564_.thumb.png.e2e9bd49ab0f050041a792e6c817308d.png

The nine subgraphs in the figure respectively represent the distance between combustible and heat source, of which unit is geometric point. The abscissa is the flashpoint and the ordinate is the single cycle time. It can be seen from this figure that the change of flashpoint will not affect the single cycle time by more than 10% within 6 geometric points. Therefore, the setting of flashpoint = 7.5 is adopted in the subsequent simulation, and 7.5 is the median value of the change of the whole flashpoint.

      Since extinguish heat is different on each extinguishing action, 1000 simulations are conducted on the single cycle time to observe the impact of the fluctuation of the two parameters changed in the current version on the single cycle time, as shown in the figure:

Spoiler

782699722_.thumb.png.180bb82c7df8365abdb6aa55ab8bae2f.png

As can be seen from the second subgraph in the figure above, since the parameters become fluctuating random values, the fluctuation range of single cycle time becomes much larger. But the good news is that it can be seen from the first subgraph that 50% of the single cycle time falls in a relatively concentrated interval 9, 12.5, rather than the previous uniform distribution. This is because the independent variable is determined by the nature of the 3rd power function between 0,1: it will cause the output value to enter a highly centralized state, and two 3rd power functions are used in the whole process, which leads to the single cycle time entering a centralized interval 9,12.5. After 1000 simulations, 50% of the sample data enter this interval.

          Comparing the single cycle time of the previous and current versions:

Spoiler

1472659480_.thumb.png.d07f9c5bdde1d914b232e43f52192f73.png

          It can be found that the change trend of them is the same. When the distance between combustible and heat source is within 6 geometric points, their statistical values of single cycle time are almost the same, and increases rapidly outside this region. When the distance between the combustible and the heat source reaches 10 geometric points, the heat of the combustible rises too slowly to reach the flashpoint, and the combustible at this point will never smolder.

 

       Generating a board and a star using console command which are 5 geometric points apart to figure out the difference between calculation results and ingame behavior. The ingame single cycle time is counted to compare with the calculation value. This is the final result:

Spoiler

908661506_.png.2fa614b2439158db785acbbb599d5282.png

The red dot in the figure is the previous version (August 15, 2021), and the single cycle time is fixed at 7.5S. The ingame data is on the left and the calculated data is on the right. Generally speaking, the maximum value is different. The debugged maximum value is about 16s; my calculation result is 14.5s. Statistical values of my calculated results and the test results differ about 1s.

 

 

  • Conclusion:

          The overall conclusion is that for the combustibles 【within 6 geometric points from the heat source】, the time from the Ice Flingomatic extinguish the combustibles to re-smolder is a fixed 7.5S or 8s in the previous version.(Before 2021.8.19)

          In the current version, this time is a fluctuate value. The probability of 50% will fall into the interval of 【9, 12.5】.The theoretical calculation interval is 【3.5, 14】. As for the ingame behavior there is no doubt about the minimum value 3.5s, and the maximum value may be about 16S.(After 2021.8.19)

Link to comment
Share on other sites

8 hours ago, HowlVoid said:

I don't know what any of this means.

my english poor so i wandering what u mean of [this] here.

if u are talking about the meaning of changing the mechanism, i just think they want you to set fire manual instead of letting the fire spread itself like previous version. The spread ways previous version carryed on lack of interaction a lot. I think the staffs of klei didnt meant to kill the fire farm but require u to do each link yourself manually.

if u are talking about the meaning of me writting this paper, i would say that It is an interesting thing for me. If I have the ability to do it and can benefit others, why not?

472136172_QQ20210510143255.jpg.7af6c31a7da645a6c73dc73e6fabc4b5.jpg

9 hours ago, HowlVoid said:

Do you have an unga bunga version?

im not a english native speaker, so i dont really know the meaning of [ unga bunga version] , do u mean some topics that are R-18?:spidercowers:

201691705_QQ20210723205200.jpg.ff450df1938d368cbb420cf146458dc6.jpg

 

Link to comment
Share on other sites

30 minutes ago, dish-order man said:

my english poor so i wandering what u mean of [this] here.

if u are talking about the meaning of changing the mechanism, i just think they want you to set fire manual instead of letting the fire spread itself like previous version. The spread ways previous version carryed on lack of interaction a lot. I think the staffs of klei didnt meant to kill the fire farm but require u to do each link yourself manually.

if u are talking about the meaning of me writting this paper, i would say that It is an interesting thing for me. If I have the ability to do it and can benefit others, why not?

472136172_QQ20210510143255.jpg.7af6c31a7da645a6c73dc73e6fabc4b5.jpg

im not a english native speaker, so i dont really know the meaning of [ unga bunga version] , do u mean some topics that are R-18?:spidercowers:

201691705_QQ20210723205200.jpg.ff450df1938d368cbb420cf146458dc6.jpg

 

Just meant if you could simply your post, which you did. Thanks you.

Essentially fire spreads slower due to a wider fluctuation of variables, correct?

Link to comment
Share on other sites

15 minutes ago, HowlVoid said:

Just meant if you could simply your post, which you did. Thanks you.

Essentially fire spreads slower due to a wider fluctuation of variables, correct?

yeah you are correct. i can describe this in one simple sentence

But as i know, there are some players like fire farm very much. They may need accurate data at specific points to determine the placement order or quantity of combustibles. 

i have read your words in another post, i dont like fire farm neither. I think these data should be meaningful to some other players. its the reason why this post be so long.

Link to comment
Share on other sites

There really needs to be a more concise form like Q & A:

Q: is systematic oven still feasible?

A: it is feasible, but either the reliability decreases or the structure becomes more complex (3 burnning points)

Q: what is the core that changes combustion?

A: the temperature of the target hit by the snowball becomes 3 times lower than before and changes randomly.

Q: what data is particularly worth mentioning?

A: the target hit by the snowball reaches the flash point in 3.5 seconds at the fastest and 14 seconds at the slowest.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...