-
Notifications
You must be signed in to change notification settings - Fork 631
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HVAC leak error with MATL line order #13516
Comments
I'll take a look. For pressure the value in the hrr file is the background pressure only whereas a PRESSURE device is the total pressure or background plus perturbation. These are not the same output. |
@mcgratta in the first case attached it throws an error in HVAC that the wall vent has a flow rate assigned. This is happening because the SURF_ID assigned to the VENT has HT3D. With no MATL_ID, in read.f90 MATERIAL(1) is assigned as a dummy. When MATERIAL(1) in the input has a reaction this then throws an error in HVAC as the SURF is assigned PYROLYSIS_PREDICTED. HVAC inputs are processed after PROC_SURF which is before we set boundary condition properties for HT3D OBST in init. For HT3D instead of pointing to MATERIAL(1) should we append a dummy material to the material array to point to where that dummy material has no reactions? The next two cases also seem to be HT3D issues. |
I like the dummy material idea. That might solve a number of problems related to HT3D. I'll check it out. |
There is already machinery for reserved materials, so I will just add one more. |
I think I have a fix for the first problem. I'm testing that. The third case is trickier. |
Thank you for looking into and addressing this issue. Could you please briefly explain what is currently happening in FDS when I used to specify If needed, please let me know and I can try to create a simple case to demonstrate this, but I believe you are already tracking the issues. |
I'm making steady progress on this issue. I'll explain it briefly. Before we introduced a 3D solid phase conduction option, the Anyway, long story short, I am steadily introducing logic into the read routine that creates "placeholder" parameters for these 3D solids. You can run your various test cases with the latest test build and see that we're getting close. Your last example involving HVAC is close but not exactly right. I have also had to throw an |
Thank you for the explanation; I feel like I have a better understanding now. That is why I didn't notice any differences with single-cell solid Regarding the second paragraph and the newly introduced |
…AL_RADIATION to ONE_D
I would like to share some recent observations using Although the bugs mentioned above, related to the order of Bug #13597 causes large numerical errors if shrinking occurs, while bug #13361 is mostly fixed but still allows a very small discrepancy in the burning rate, which propagates through the simulation. I assume that this very small discrepancy is randomly amplified by the large unpredictable shrinking errors. As a result, I can see large discrepancies for more complex domains when the order of The only aspect, that remains unclear to me is whether it makes sense to observe burning rate on non-burnable surfaces when a burnable |
I will address the last point. There is a parameter called |
Thank you! I will have a look at |
Any new developments? I have lost track of this issue. |
No developments at Lately, I was trying to address the "artificial char" introduced to prevent decomposing solids from shrinking/swelling (mentioned here). I thought that by giving the char high thermal conductivity and low specific heat capacity, it can become "thermally invisible" and thus not insulate the remaining virgin material. It is not that simple, because char is present also in layers where only part of virgin material is decomposed. Those layers also quickly become very conductive which actually slows down decomposition. I am also on track of some weird behavior when comparing HT1D to HT3D outputs for a mostly 1D heating scenario. As soon as I make sure I reached a dead end, I will create a simple scenario as usual and post it here. By the way, do you have an idea what finally solved the issue #13361? Knowing the cause, I may probably skip some test that I usually do after updating FDS. Thank you very much in advance for your support! |
Issue #13361 was due to initialization of the variable thickness data type. In the past, a |
Finally, I had time to briefly examine the The difference with One potential enhancement that comes to mind is enabling Smokeview to visualize the decisions made by During testing, I encountered some unexpected behaviors, likely related to Smokeview:
I also conducted simulations related to the Issue #13361. For some more complex geometries, the differences still persist depending on the order of |
should be fixed. I had hard wired an 'epsilon' I used for comparing blockage face positions. this was not appropriate for small grids like in your case. the fix was to define this epsilon relative to the grid size. let me know if you still see a problem |
Works! Thanks. @Vojta-Salek could you confirm that it works for you. |
I confirm that the weird patterns are gone. However, I can still see the bottom surface in Glitch_1.fds changing its color around 212 sec if burning rate boundary is loaded, although burning rate should be zero according to colorbar limits. This only happens if I open Smokeview in the middle of still ongoing FDS calculations - which I think is a common practice to display some results in the middle of ongoing simulation. |
click in the colorbar and scroll from the min to the max value. when I ran the simluation I get that the values though close to zero range from 0.0 to a small number around 3x10^-16 . the non-blue colors you are seeing are at the upper range. I could force smokeview to show only the lower range but I think it is useful to know that the the numbers being visualized are not constant |
@gforney Understood. It is a bit confusing that max range gets rounded to 0 only after the simulation is complete, but I think it is completely irrelevant. I was worried something else may be wrong. Thank you for your explanation and support! |
Talking about the previous topic of
|
looks like smokeview is resetting the bounds in the .bf.bnd file to 0.0 . I"ll see what is going on. |
colorbar labels values should now be consistent with data values when values are small. for your Glitch_1 case the 'BURNING RATE' boundary file values are essentially but not quite zero. these values range from 0.0 to 1.7*10^-16 which are now reflected in the colorbar labels. these non-zero values were why you were seeing the bottom patch change color at ~200 s. as before update your smv repo and rebuild smokeview, or |
I'll explain |
FDS User Guide: Issue #13516. Clarify LAYER_DIVIDE
I added more explanation about \subsection{Solid Phase Gas Transport} The solid phase conduction/reaction algorithm does not have an explicit transport mechanism for pyrolyzed gases. Rather, the pyrolyzates are assumed to appear instantaneously at the surface. Which surface is controlled by the \ct{SURF} line parameter \ct{LAYER_DIVIDE}, a real number that specifies the number of layers whose gaseous pyrolyzates are to be applied to the surface with the given \ct{SURF} label. For example, if \ct{LAYER_DIVIDE=1.5}, the gases generated by the first layer and half of the second layer shall be applied at the given surface. This same partitioning holds whether or not the solid is shrinking or swelling. Be careful to ensure that the specified values of \ct{LAYER_DIVIDE} are consistent for the \ct{SURF} lines that control opposing surfaces. If two different \ct{SURF} lines govern the front and back of a solid obstruction, the specified values of \ct{LAYER_DIVIDE} should sum to the total number of layers. Otherwise, the mass of evolved gases may not be correct. If \ct{LAYER_DIVIDE} is not set, it is assumed that for a solid with \ct{BACKING='EXPOSED'}, the gases generated within a depth of half the total thickness are to be applied at the front surface and the other half at the back. If the \ct{BACKING} is not \ct{'EXPOSED'}, all of the gases will be applied at the front surface. Suppose, for example, that the solid is composed of a layer of insulation on top of a layer of plastic on top of a layer of steel. The steel is impermeable. By setting \ct{LAYER_DIVIDE=2.0} to the \ct{SURF} line whose first layer is the insulation directs the vapors generated by the insulation and plastic to be driven out of the exterior surface of the insulation. Similarly, for the \ct{SURF} line that is applied to the steel, specifying \ct{LAYER_DIVIDE=0.0} would indicate that no fuel vapors are to escape the steel surface. Note that in this instance, the sum of the values of \ct{LAYER_DIVIDE} is not equal to the number of layers, but this is not a problem because the layer of steel does not generate any gases. |
@gforney Confirmed. The new Smokeview version provides consistent results for both ongoing and completed simulations. I find it more intuitive now. Thank you! @mcgratta Thank you for your explanation. The description of I believe all my questions and doubts raised during this discussion have been addressed or resolved. The only idea I still have regarding If there's anything else I cab contribute to, please let me know. I’d be happy to test more |
Thanks for all your efforts. It has helped us tremendously. As to Smokeview rendering of solid phase quantities, this has been a problem since the very beginning because the solid phase in FDS has been somewhat decoupled from the gas phase. The noding is different, and the total thickness is not necessarily the same. The 3-D solver adds to the abstraction because the solution of the heat conduction equation has been split into three sets of 1-D solves. It is not possible to create a contour plot of the full 3-D temperature profile within the solid because there are actually 3, one for each direction. I suppose something could be done, but I worry that whatever we do might present a misleading picture. One possible thing that can be done is to animate the 1-D profiles that are generated using the |
1-D profiles sound great—it’s always a bit difficult to plot each one from a separate file. I was, for instance, considering the possibility of loading Another idea could involve displaying arrows that connect the inner parts of a solid to the surface, similar to how I hope I’m not bothering you with these ideas. I’m just brainstorming out loud here, fully aware that the benefits of these ideas might not justify the effort needed to implement them. |
Creating a |
Describe the bug
When using the
&HVAC
feature (TYPE_ID = 'LEAK'
) andHT3D=T
, an error (ERROR(543): Cannot leak and specify flow or pyrolysis at the same time.) occurs, even though the associated VENTs (VENT_ID
andVENT2_ID
) are not at burning surfaces or surfaces with otherwise defined flow. This error only happens if any burningMATL
line is specified before non-burningMATL
lines in the FDS input file. In other words, the order of burningMATL
lines in the code matters, even if these lines are not assigned to any surfaces (and certainly not to any HVAC-related surfaces).To Reproduce
A simple model of a small, heated enclosed space bounded by non-burning obstacles with a burning box (PMMA) inside was created. The
HVAC
leak connects the enclosure with an open space (e.g., to prevent from overpressure and density increase). Three versions of the FDS input file are provided:A) Version with "incorrect"
MATL
line order producing the error message.Leakage_error.txt
B) Version with "correct"
MATL
line order, where the burningMATL
is not listed first by chance, avoiding the error.Leakage_noMATL_ID.txt
C) Version with
MATL_ID
andMATL_MASS_FRACTION
specification added to eachSURF
line from Version A). This eliminates the error message, although, this should not be the correct solution in the long term as noted here.Leakage_MATL_ID.txt
(Un)expected behavior
For Version A: The error occurs as described above.
For Version B: The thickness of the PMMA block is gradually decreasing indicating decomposition, and MMA production is reported in the CHID_hrr file. However, no burning (HRR) or pyrolysis products (MMA) are to be found anywhere in the domain, even with
AUTO_IGNITION_TEMPERATURE = 0
.For Version C): The behavior seems to be as expected. Once pressure difference is eliminated between both pressure zones, MMA fraction inside the compartment get slowly diluted by oxygen from outside, and once AIT temperature is reached inside, the remaining MMA ignites. The only un-physicall behavior observed is the step change in pressure and composition, however, I understand that this is due to rapid "mixed is burned", when AIT is reached.
Desktop:
HT3D
)Additional context
In addition to the main issue, I noticed a few other unexpected behaviors, though I have not investigated them thoroughly. Perhaps a couple of them may be worth to share:
Burning rates loaded from the boundary file show burning at non-burning surfaces. I was not expecting this outside the sealed pressure zone 1. I understand that pyrolysis products can transfer to the opposite side of an adjacent cell, if a particular pyrolyzing surface is covered by other
OBST
. Does this behavior make sense even if theOBST
covering pyrolyzing surface is a non-burnable material?The automatically generated pressure for pressure zone 1 in the CHID_hrr file slightly differs from the pressure measured by a
DEVC
placed within the same zone. Although the difference is negligible, I tend to be cautious about automatic outputs.The text was updated successfully, but these errors were encountered: