Skip to content
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

Temperature Drop When Using HT3D with Complex Pyrolysis and Muliple Meshes #13264

Open
TristanHehnen opened this issue Aug 1, 2024 · 12 comments
Assignees

Comments

@TristanHehnen
Copy link
Contributor

Describe the bug

Hello everybody!

We are looking into using the HT3D feature together with pyrolysis for simulations of flame spread. We could observe that the temperature of the OBSTs drops, in some cases to negative 225°C.

grafik

I'm trying to simplify the case, but there seem a few things involved simultaneously.
I'm using the PMMA and Marinite materials from the parallel panel validation case, and aluminium alloy from the User's Guide, which are the same materials used in the original case shown above.
I've set up a simple cone calorimeter simulation now, using the PMMA with an EXTERNAL_FLUX. There is a sample OBST on top of an OBST with some inert material (either the insulation or the aluminium), and the sides are enclosed with OBST of the same inert material. All OBST are using HT3D and are not touching the domain boundary (see attached input file at the end).

In the single MESH cases we can see a slight temperature drop in the WALL TEMPERATURE BNDF for some of the inert OBST at the bottom of the assembly.

grafik

With two MESH, that are dividing the assembly vertically, the temperature drops to lower values. Also, some weird stuff is happening with the right hand side of the assembly, it seems "flipped" with respect to the temperatures, but the correct SURF are shown (I don't know how to describe this...). But this does not happen always, there are simulations without the "flipped" temperatures. It seems to be the result if I run the two mesh case with fds SimpleConeHT3D.fds instead of explicitly defining two MPI processes, i.e. mpiexec -n 2 fds SimpleConeHT3D.fds. In any case, if I'm running two explicit MPI processes, the temperature drops to notably lower values.

grafik

The PROF show also lower temperatures inside the OBST, except for the fds SimpleConeHT3D.fds case with two meshes (flipped), which is just off. The case where the full OBST is contained within a single mesh (horizontal) behaves basically the same way as the single mesh case. The case with proper mpiexec and vertical mesh division leads to lower temperatures in the PMMA layer but slightly higher temperatures in the aluminium layer (depth of 5mm+)

PROF_Meshes

Further remarks:
We thought at some point that different simulation modes (LES/VLES) might be involved, but that seems not to be the case.
We also thought that the issue was mainly related to materials with high conductivity, but now I think it is more that this shows the issue clearer.

Regards,
Tristan

Desktop (please complete the following information):
FDS: FDS-6.9.1-0-g889da6a-release
Smokeview: SMV-6.9.1-0-gd0b04d0-release
Windows 10 and Linux

Additional context

While looking into all of this, I realised that simulation setups that contain an OBST with the PMMA SURF attached also behave strange. In these cases, the sample sits alone in the domain without a heat source (i.e. removed the EXTERNAL_FLUX line). For a case with a 1D solid (&OBST SURF_IDS='PMMA', 'INERT','INERT' [...] /) the temperature drops significantly. For a single OBST with HT3D and the sample material, the temperature stays at TMPA. For a case where the sample OBST is wrapped on the sides and bottom with others that consist of aluminium, all 3D heat transfer, the temperature drops just a tiny amount.

grafik

Input file
FDS input of the simple cone.

SimpleConeHT3D.fds.txt

@mcgratta mcgratta self-assigned this Aug 1, 2024
@mcgratta
Copy link
Contributor

mcgratta commented Aug 1, 2024

This is difficult to follow. There seem to be many things happening here. I need to focus first on the most important problem. Run the case with the latest version of the source code and indicate the most significant problem. Sometimes when I solve this, all other problems go away too. Tell me how you ran the case, like with one MPI process or two.

@TristanHehnen
Copy link
Contributor Author

Okay, then let's focus in the temperature drop with two meshes and HT3D for all OBST.

I did rerun the case with FDS-6.9.1-605-g7a2df8b-nightly, it consists of:

  • a single obstruction with sample material (PMMA)
  • EXTERNAL_FLUX on the sample
  • multiple obstructions with aluminium alloy wrapping around the sample
  • two meshes, cutting through the assembly vertically, as provided in the original post (change & in respective lines)
  • simulation run with mpiexec -n 2 fds SimpleConeHT3D.fds
  • it can be observed from the BNDF, that the WALL TEMPERATURE drops significantly

grafik

@mcgratta
Copy link
Contributor

mcgratta commented Aug 2, 2024

OK, I am seeing cold temperatures on the bottom edge of the backing material. I'll investigate.

@mcgratta
Copy link
Contributor

mcgratta commented Aug 2, 2024

Try adding MATL_ID to the OBST lines like this

&OBST ID = 'SAMPLE',
      SURF_ID = 'PMMA SAMPLE',
      MATL_ID(1:3) = 'BLACK PMMA','PMMA_INT','PMMA_CHAR'
      MATL_MASS_FRACTION(1:3) = 0.999,0.0005,0.0005
      XB = -0.05,0.05, -0.05,0.05, 0.00,-0.005 /

&OBST ID = 'FRAME A',
      SURF_ID = 'SAMPLE HOLDER',
      MATL_ID   = 'ALUMINUM ALLOY',
      XB = -0.055,-0.050, -0.050,0.050, -0.005,0.000 /

&OBST ID = 'FRAME B',
      MATL_ID   = 'ALUMINUM ALLOY',
      SURF_ID = 'SAMPLE HOLDER',
      XB = 0.050,0.055, -0.050,0.050, -0.005,0.000 /

&OBST ID = 'FRAME C',
      MATL_ID   = 'ALUMINUM ALLOY',
      SURF_ID = 'SAMPLE HOLDER',
      XB = -0.055,0.055, -0.055,-0.050, -0.005,0.000 /

&OBST ID = 'FRAME D',
      MATL_ID   = 'ALUMINUM ALLOY',
      SURF_ID = 'SAMPLE HOLDER',
      XB = -0.055,0.055, 0.050,0.055, -0.005,0.000 /

&OBST ID = 'BACKING',
      MATL_ID   = 'MARINITE',
      SURF_ID = 'SAMPLE HOLDER',
      XB = -0.055,0.055, -0.055,0.055, -0.010,-0.005 /

There is a bug in how FDS reads the MATL_IDs from the SURF lines. Also, there was another bug related to residue, which is why I have had to list the PMMA and its residues on the OBST line.

For reasons I cannot fully explain, these omissions led to the weird behavior with one vs two meshes, and one vs two MPI processes. I have to fix all these things, but for the moment, let me know if the work-around helps.

@TristanHehnen
Copy link
Contributor Author

Okay, we'll try it out.

mcgratta added a commit that referenced this issue Aug 5, 2024
FDS Source: Issue #13264. Specify MATL_ID on OBST for HT3D
mcgratta added a commit to mcgratta/fds that referenced this issue Aug 6, 2024
mcgratta added a commit that referenced this issue Aug 6, 2024
FDS Source: Issue #13264, Discussion #13246. Fixes to HT3D and DEPTH …
@mcgratta
Copy link
Contributor

Are things working now?

@TristanHehnen
Copy link
Contributor Author

I tested it again with FDS-6.9.1-0-g889da6a-release, FDS-6.9.1-605-g7a2df8b-nightly and FDS-6.9.1-695-g38e9b7c-nightly and your suggested work-around. There is still a small temperature drop.

There is also a small mix-up. I wanted to have the sample OBST to be either wrapped in the aluminium or the marinite, but I did not make this very clear.
grafik

In any case, I did now run simulations with either the aluminium or the insulation. All simulations with the aluminium crash very early on and show very low temperatures. The ones with the marinite are finishing, but show slightly reduced temperatures.
HT3D_Bug

I have the impression that the OBST below the sample is somehow involved. Because in the suggested workaround, the side would be covered in the aluminium and the bottom with the marinite. The insulation at the bottom behaves like presented in the Smokeview images, marked with "MAR.", above.

SimpleConeHT3D_Mar.fds.txt
SimpleConeHT3D_Alu.fds.txt

@mcgratta
Copy link
Contributor

Try this work-around. Set CELL_SIZE=0.00025 only for Marinite, and set it on the OBST line as well. Set CELL_SIZE=0.005 for the aluminum on both the SURF and OBST lines.

mcgratta added a commit to mcgratta/fds that referenced this issue Aug 15, 2024
mcgratta added a commit that referenced this issue Aug 15, 2024
FDS User Guide: Issue #13264. Explain CELL_SIZE
@mcgratta
Copy link
Contributor

SimpleConeHT3D.txt

Try this file. Two important things to note

  1. Put CELL_SIZE and MATL_ID on the OBST line instead of the SURF line.
  2. Make the CELL_SIZE the lesser of the gas phase grid size and the square root of the thermal diffusivity (k/rho/c). In your case, the value for MARINITE was OK, but the value for ALUMNINUM ALLOY should be 0.005 m, the size of the gas phase grid cell. I suspect that the problem in your cases is that our 3D heat transfer algorithm is not fully implicit, and the very small cells for the highly conductive aluminum led to numerical problems.

@TristanHehnen
Copy link
Contributor Author

  1. Okay, that seems to behave well.

  2. Using the fluid cell size as anchor appears to be a good starting point. The proposed assessment with $\sqrt{ \frac{k}{\rho \cdot c_p}}$ seems not to work well for me, maybe I'm doing something wrong.
    Using $k$ = 0.12 W/(m K), $\rho$ = 737 kg/m³, $c_p$ = 1200 J/(kg K) for the marinite, I get a solid cell size of 0.00037 m and 0.00949 m for the aluminium with $k$ = 218 W/(m K), $\rho$ = 2690 kg/m³, $c_p$ = 900 J/(kg K). Then the outcome would be to use the fluid cell size for the HT3D for alu - and it behaves well then, i.e. no noticeable temperature drop.
    For the marinite my previously chosen solid cell size of 0.00025 m would be too small. But also the 0.00037 m is too small, the temperatures still drop.
    It is different when I start from the fluid cell size and try successively to cut the solid cell size in half. For the marinite the temperature starts dropping at a quarter of the fluid cell size (0.00125 m), with the aluminium it starts already at half the fluid cell size.

@mcgratta
Copy link
Contributor

I am not sure what you are telling me. If you use 0.005 m for Al and 0.00037 m for marinite, is the solution unphysical? How much does the temperature drop in this case?

@TristanHehnen
Copy link
Contributor Author

For Al and 0.005 m I do not see a temperature drop, but below 0.0025 m the temperature drops.

For marinite and 0.00037 m the temperature drops to about 19°C (WALL TEMPERATURE at the bottom corners of the assembly).
If I increase the solid cell size for marinite, the temperature drop does not appear anymore above 0.0025 m. However, it drops for sizes below 0.00125 m.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants