firemodels / fds

Fire Dynamics Simulator
https://pages.nist.gov/fds-smv/
Other
664 stars 624 forks source link

Mass balance error larger than 2% in an enclosure fire #2641

Closed guoxiangzhao closed 9 years ago

guoxiangzhao commented 9 years ago

This is a case where an enclosure with an opening on the wall, as you can see from the image.

Enclosure size: 0.5m x 0.5m x 0.5m

Use devices "mass flow +" and "mass flow -" cover the entire door opening to measure the mass outflow rate and mass inflow rate through the door. The mass flow rate from the burner are available from the .hrr file. At steady-state conditions, the mass balance applied to the enclosure volume reads this:

Mass outflow =Mass inflow + mass of the fuel

The mass balance error was defined as indicate in image 4, in theory it should be around 0%. 4

However, we found the mass balance error are always larger than 2%, with grid size 1cm and 2 cm.

1 2 3

mcgratta commented 9 years ago

This is probably related to the fact that the pressure solver used in FDS only applies no-flux boundary conditions exactly at external boundaries. At the walls of your fire room, the no-flux boundary is applied via an iterative scheme that is not exact. Try adding this line

$PRES VELOCITY_TOLERANCE=0.001 /

to your input file. This parameter is explained in the User's Guide. Let me know if that tightens things up.

guoxiangzhao commented 9 years ago

Thank you for your reply, but the truth is that I have already run another simulation with the line you suggested, and also added "MAX_PRESSURE_ITERATIONS=100". But it turns out to be the same.I mean still the mass balance error is larger than 2%. Now I am trying to redo the simulation with the line: &PRES VELOCITY_TOLERANCE=0.0001, MAX_PRESSURE_ITERATIONS=1000/

rmcdermo commented 9 years ago

This is probably also be related to the other discussion on FLOW DEVCs. If you want exact advective flows at a surface, you need to use the 'WALL' variant of the flow quantity. See Sec. 16.10.10, roughly page 219, of the user guide. But note that this only gives you advective flows. The total mass flow for burning requires the diffusive component as well. The fuel flow rate is given in the HRR file under MLR_FUEL. So, you will still see a difference in the HRR you compute from a 'MASS FLOW WALL' device (requires IOR) and the HRR in the _hrr.csv file.

On Fri, Aug 21, 2015 at 6:18 AM, Kevin McGrattan notifications@github.com wrote:

This is probably related to the fact that the pressure solver used in FDS only applies no-flux boundary conditions exactly at external boundaries. At the walls of your fire room, the no-flux boundary is applied via an iterative scheme that is not exact. Try adding this line

$PRES VELOCITY_TOLERANCE=0.001 /

to your input file. This parameter is explained in the User's Guide. Let me know if that tightens things up.

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133364469 .

guoxiangzhao commented 9 years ago

Thank you for your reply, but now I am a little bit confused in some way.

1.When I was computing the mass balance error, I used the mass flow rate value for burner from the _hrr.csv file under BURN_RATE. Is this correct or not? Is that the same as you mentioned “The fuel flow rate is given in the HRR file under MLR_FUEL.”?

  1. we do not necessarily concern about the advective or the diffusive component of the flow, we do care about the flow rate through the door and from the burner, is this correct?

Best regards, Guoxiang

rmcdermo commented 9 years ago

In latest code, BURN_RATE is now MLR.

I would think you care about total mass flow. Probably diffisive component is low, but this invludes turbulent diffusion as well, so it is not zero.

On Friday, August 21, 2015, guoxiangzhao notifications@github.com wrote:

Thank you for your reply, but now I am a little bit confused in some way.

1.When I was computing the mass balance error, I used the mass flow rate value from the _hrr.csv file under BURN_RATE. Is this correct or not? Is that the same as you mentioned “The fuel flow rate is given in the HRR file under MLR_FUEL.”?

  1. we do not necessarily concern about the advective or the diffusive component of the flow, we do care about the flow rate through the door and from the burner, is this correct?

Best regards,

Guoxiang

From: Randy McDermott [mailto:notifications@github.com javascript:_e(%7B%7D,'cvml','notifications@github.com');] Sent: Friday, August 21, 2015 14:13 To: firemodels/fds-smv Cc: guoxiangzhao Subject: Re: [fds-smv] Mass balance error larger than 2% in an enclosure fire (#2641)

This is probably also be related to the other discussion on FLOW DEVCs. If you want exact advective flows at a surface, you need to use the 'WALL' variant of the flow quantity. See Sec. 16.10.10, roughly page 219, of the user guide. But note that this only gives you advective flows. The total mass flow for burning requires the diffusive component as well. The fuel flow rate is given in the HRR file under MLR_FUEL. So, you will still see a difference in the HRR you compute from a 'MASS FLOW WALL' device (requires IOR) and the HRR in the _hrr.csv file.

On Fri, Aug 21, 2015 at 6:18 AM, Kevin McGrattan <notifications@github.com javascript:_e(%7B%7D,'cvml','notifications@github.com');> wrote:

This is probably related to the fact that the pressure solver used in FDS only applies no-flux boundary conditions exactly at external boundaries. At the walls of your fire room, the no-flux boundary is applied via an iterative scheme that is not exact. Try adding this line

$PRES VELOCITY_TOLERANCE=0.001 /

to your input file. This parameter is explained in the User's Guide. Let me know if that tightens things up.

— Reply to this email directly or view it on GitHub < https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133364469> .

— Reply to this email directly or view it on GitHub < https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133399853> . < https://github.com/notifications/beacon/ANQZfHykwQV0a_43nSPYNzuiwRnnXtRPks5opw1ngaJpZM4Fvubk.gif>

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133420943 .

Sent from my iPhone

mcgratta commented 9 years ago

The output quantity 'MASS FLOW +' and 'MASS FLOW -' are calculated at follows:

velocity * density * area

The velocity is the component of velocity in the specified direction. In your case, this is the x direction. The u component of velocity is defined directly on the measurement plane. The density is the average of the densities on each side of the measurement plane. The area is the sum of the areas of the cell faces.

This form of the mass flow is approximate because the mass transport equation uses a particular flux limiter to define the mass advection. That is, we do not just take the average of the density on either side of the measurement plane when we compute the mass flux term in the governing equations. The flux limiter involves the density two cells in the upstream direction and one cell in the downstream. It is not just a simple average or interpolation. Thus, we expect that the output 'MASS FLOW' is not going to be exact. The fuel flow rate is not the cause. It is the form of the discretized equations.

guoxiangzhao commented 9 years ago

so we need also calculate the diffusive component , then the mass balance error is expected to be zero, right? then i will try to do that. thanks!

在 2015年8月21日,下午7:02,Randy McDermott notifications@github.com 写道:

In latest code, BURN_RATE is now MLR.

I would think you care about total mass flow. Probably diffisive component is low, but this invludes turbulent diffusion as well, so it is not zero.

On Friday, August 21, 2015, guoxiangzhao notifications@github.com wrote:

Thank you for your reply, but now I am a little bit confused in some way.

1.When I was computing the mass balance error, I used the mass flow rate value from the _hrr.csv file under BURN_RATE. Is this correct or not? Is that the same as you mentioned “The fuel flow rate is given in the HRR file under MLR_FUEL.”?

  1. we do not necessarily concern about the advective or the diffusive component of the flow, we do care about the flow rate through the door and from the burner, is this correct?

Best regards,

Guoxiang

From: Randy McDermott [mailto:notifications@github.com javascript:_e(%7B%7D,'cvml','notifications@github.com');] Sent: Friday, August 21, 2015 14:13 To: firemodels/fds-smv Cc: guoxiangzhao Subject: Re: [fds-smv] Mass balance error larger than 2% in an enclosure fire (#2641)

This is probably also be related to the other discussion on FLOW DEVCs. If you want exact advective flows at a surface, you need to use the 'WALL' variant of the flow quantity. See Sec. 16.10.10, roughly page 219, of the user guide. But note that this only gives you advective flows. The total mass flow for burning requires the diffusive component as well. The fuel flow rate is given in the HRR file under MLR_FUEL. So, you will still see a difference in the HRR you compute from a 'MASS FLOW WALL' device (requires IOR) and the HRR in the _hrr.csv file.

On Fri, Aug 21, 2015 at 6:18 AM, Kevin McGrattan <notifications@github.com javascript:_e(%7B%7D,'cvml','notifications@github.com');> wrote:

This is probably related to the fact that the pressure solver used in FDS only applies no-flux boundary conditions exactly at external boundaries. At the walls of your fire room, the no-flux boundary is applied via an iterative scheme that is not exact. Try adding this line

$PRES VELOCITY_TOLERANCE=0.001 /

to your input file. This parameter is explained in the User's Guide. Let me know if that tightens things up.

— Reply to this email directly or view it on GitHub < https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133364469> .

— Reply to this email directly or view it on GitHub < https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133399853> . < https://github.com/notifications/beacon/ANQZfHykwQV0a_43nSPYNzuiwRnnXtRPks5opw1ngaJpZM4Fvubk.gif>

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133420943 .

Sent from my iPhone — Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133495254.

mcgratta commented 9 years ago

The mass conservation equation does not define the mass flux in the simple way that we use for output. It is a more complicated expression, and we have not had time to implement this more complicated expression in the output routine. I do not think that adding the diffusive term is going to make it exact.

guoxiangzhao commented 9 years ago

Hope the error could be smaller than 1%.

在 2015年8月21日,下午8:51,Kevin McGrattan notifications@github.com 写道:

The mass conservation equation does not define the mass flux in the simple way that we use for output. It is a more complicated expression, and we have not had time to implement this more complicated expression in the output routine. I do not think that adding the diffusive term is going to make it exact.

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133529245.

guoxiangzhao commented 9 years ago

One important question: do you think it is reasonable to use the mass balance error I mentioned as an indicator or criteria to determine the required grid resolution in the simulation?

From: Kevin McGrattan [mailto:notifications@github.com] Sent: Friday, August 21, 2015 20:51 To: firemodels/fds-smv Cc: guoxiangzhao Subject: Re: [fds-smv] Mass balance error larger than 2% in an enclosure fire (#2641)

The mass conservation equation does not define the mass flux in the simple way that we use for output. It is a more complicated expression, and we have not had time to implement this more complicated expression in the output routine. I do not think that adding the diffusive term is going to make it exact.

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133529245 . https://github.com/notifications/beacon/ANQZfJOX9FIDgreBT3zppfUni0_1fthFks5op2qxgaJpZM4Fvubk.gif

mcgratta commented 9 years ago

No, I don't think it's a good idea to use this analysis to determine the grid resolution. The reason is that the relative contribution of difference sources of uncertainty will change from scenario to scenario.

  1. Imperfect normal velocity component at solid surfaces.
  2. Inexact form of the convective mass transport term in the output quantity 'MASS FLOW'.
  3. Neglect of diffusive mass transport terms.

The magnitude of these will change from case to case.

A question about your original error term epsilon -- do you average the term epsilon over time, or do you average the components of the expression over time? In other words, do you time average epsilon, or do you time average the mass flow values?

guoxiangzhao commented 9 years ago

Time average the mass flow values, so you suggest to use the time average epsilon?

在 2015年8月24日,下午7:04,Kevin McGrattan notifications@github.com 写道:

No, I don't think it's a good idea to use this analysis to determine the grid resolution. The reason is that the relative contribution of difference sources of uncertainty will change from scenario to scenario.

Imperfect normal velocity component at solid surfaces. Inexact form of the convective mass transport term in the output quantity 'MASS FLOW'. Neglect of diffusive mass transport terms. The magnitude of these will change from case to case.

A question about your original error term epsilon -- do you average the term epsilon over time, or do you average the components of the expression over time? In other words, do you time average epsilon, or do you time average the mass flow values?

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-134301708.

mcgratta commented 9 years ago

Try it. It may not matter.

Do you still get the 2% when you use a small VELOCITY_TOLERANCE?

Post your input file.

guoxiangzhao commented 9 years ago

OK, I will try it then. I run another simulation which added the velocit_tolerance, but the error still keeps the same.

&HEAD CHID='version1312'/ &TIME T_END=2000.0/ &DUMP RENDER_FILE='version1312.ge1', DT_RESTART=10.0/ &PRES VELOCITY_TOLERANCE=0.001, MAX_PRESSURE_ITERATIONS=100/

&MESH ID='Mesh1-merged', IJK=102,60,54, XB=-0.52,0.5,-0.3,0.3,-0.02,0.52/ &MESH ID='Mesh2-b', IJK=50,60,100, XB=0.0,0.5,-0.3,0.3,0.52,1.52/

&SPEC ID='METHANE'/

&REAC ID='Propane', FUEL='REAC_FUEL', FORMULA='C3H8', CRITICAL_FLAME_TEMPERATURE=1427.0, HRRPUA_SHEET=0.0, SOOT_YIELD=0.01/

&DEVC ID='FLOW out', QUANTITY='MASS FLOW +', XB=0.02,0.02,-0.1,0.1,0.0,0.3/ &DEVC ID='FLOW in', QUANTITY='MASS FLOW -', XB=0.02,0.02,-0.1,0.1,0.0,0.3/ &DEVC ID='HRR 3', QUANTITY='HRR', XB=-0.52,0.02,-0.3,0.3,-0.02,0.52/ &DEVC ID='HRR 5', QUANTITY='HRR', XB=0.02,0.5,-0.3,0.3,-0.02,0.52/ &DEVC ID='HRR 01', QUANTITY='HRR', XB=0.0,0.5,-0.3,0.3,0.52,1.52/

&MATL ID='Fiberboard wall', SPECIFIC_HEAT=2.09, CONDUCTIVITY=0.041, DENSITY=229.0/

&SURF ID='Fiberboard', RGB=146,202,166, MATL_ID(1,1)='Fiberboard wall', MATL_MASS_FRACTION(1,1)=1.0, THICKNESS(1)=0.0125/ &SURF ID='Surface01', COLOR='RED', HRRPUA=4000.0, RAMP_Q='Surface01_RAMP_Q'/ &RAMP ID='Surface01_RAMP_Q', T=0.0, F=0.0/ &RAMP ID='Surface01_RAMP_Q', T=5.0, F=0.1/ &RAMP ID='Surface01_RAMP_Q', T=10.0, F=0.2/ &RAMP ID='Surface01_RAMP_Q', T=15.0, F=0.3/ &RAMP ID='Surface01_RAMP_Q', T=20.0, F=0.4/ &RAMP ID='Surface01_RAMP_Q', T=25.0, F=0.5/ &RAMP ID='Surface01_RAMP_Q', T=30.0, F=0.6/ &RAMP ID='Surface01_RAMP_Q', T=35.0, F=0.7/ &RAMP ID='Surface01_RAMP_Q', T=40.0, F=0.8/ &RAMP ID='Surface01_RAMP_Q', T=45.0, F=0.9/ &RAMP ID='Surface01_RAMP_Q', T=50.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=55.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=60.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=65.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=70.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=75.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=80.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=85.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=90.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=95.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=100.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=150.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=200.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=250.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=300.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=350.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=400.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=450.0, F=1.0/ &RAMP ID='Surface01_RAMP_Q', T=500.0, F=1.0/

&OBST XB=0.0,0.02,-0.28,0.28,0.52,1.52, SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.3,-0.2,-0.1,0.1,0.0,0.02, SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.52,-0.02,-0.28,-0.26,-0.02,0.52, COLOR='INVISIBLE', SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.52,-0.02,0.24,0.28,-0.02,0.52, SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.52,-0.02,-0.26,0.24,-0.02,0.0, SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.52,-0.02,-0.26,0.24,0.5,0.52, SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.02,0.0,-0.26,0.24,-0.02,0.0, SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.02,0.0,-0.26,0.24,0.5,0.52, SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.02,0.02,-0.28,-0.26,-0.02,0.52, SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.02,0.02,0.24,0.28,-0.02,0.52, SURF_ID='Fiberboard'/ Obstruction &OBST XB=0.0,0.02,-0.26,0.24,-0.02,0.52, SURF_ID='Fiberboard'/ Obstruction &OBST XB=-0.52,-0.5,-0.26,0.24,-0.02,0.52, ALLOW_VENT=.FALSE., SURF_ID='Fiberboard'/ Obstruction

&HOLE XB=0.0,0.02,-0.1,0.1,0.0,0.3/ Hole

&VENT SURF_ID='OPEN', XB=0.5,0.5,-0.3,0.3,-0.02,0.52/ Mesh Vent: Mesh1-merged [XMAX] &VENT SURF_ID='OPEN', XB=-0.52,-0.52,-0.3,0.3,-0.02,0.52/ Mesh Vent: Mesh1-merged [XMIN] &VENT SURF_ID='OPEN', XB=-0.52,0.5,0.3,0.3,-0.02,0.52/ Mesh Vent: Mesh1-merged [YMAX] &VENT SURF_ID='OPEN', XB=-0.52,0.5,-0.3,-0.3,-0.02,0.52/ Mesh Vent: Mesh1-merged [YMIN] &VENT SURF_ID='OPEN', XB=-0.52,0.0,-0.3,0.3,0.52,0.52/ Mesh Vent: Mesh1-merged [ZMAX] &VENT SURF_ID='OPEN', XB=-0.52,0.5,-0.3,0.3,-0.02,-0.02/ Mesh Vent: Mesh1-merged [ZMIN] &VENT SURF_ID='OPEN', XB=0.5,0.5,-0.3,0.3,0.52,1.52/ Mesh Vent: Mesh2-b [XMAX] &VENT SURF_ID='OPEN', XB=0.0,0.0,-0.3,0.3,0.52,1.52/ Mesh Vent: Mesh2-b [XMIN] &VENT SURF_ID='OPEN', XB=0.0,0.5,0.3,0.3,0.52,1.52/ Mesh Vent: Mesh2-b [YMAX] &VENT SURF_ID='OPEN', XB=0.0,0.5,-0.3,-0.3,0.52,1.52/ Mesh Vent: Mesh2-b [YMIN] &VENT SURF_ID='OPEN', XB=0.0,0.5,-0.3,0.3,1.52,1.52/ Mesh Vent: Mesh2-b [ZMAX] &VENT SURF_ID='Surface01', XB=-0.3,-0.2,-0.1,0.1,0.02,0.02/ Vent

&BNDF QUANTITY='CONVECTIVE HEAT FLUX'/ &BNDF QUANTITY='GAUGE HEAT FLUX'/ &BNDF QUANTITY='NET HEAT FLUX'/ &BNDF QUANTITY='INCIDENT HEAT FLUX'/ &BNDF QUANTITY='RADIATIVE HEAT FLUX'/

&SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBY=0.0/ &SLCF QUANTITY='HRRPUV', VECTOR=.TRUE., PBY=0.0/ &SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBX=0.025/ &SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBX=0.04/ &SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBX=0.06/ &SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBX=0.08/ &SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBX=0.1/ &SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBY=0.1/ &SLCF QUANTITY='PRESSURE', VECTOR=.TRUE., PBY=0.0/ &SLCF QUANTITY='U-VELOCITY', VECTOR=.TRUE., PBY=0.0/ &SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBY=0.0/ &SLCF QUANTITY='TURBULENCE RESOLUTION', VECTOR=.TRUE., PBY=0.0/

&TAIL /

在 2015年8月24日,下午9:02,Kevin McGrattan notifications@github.com 写道:

Try it. It may not matter.

Do you still get the 2% when you use a small VELOCITY_TOLERANCE?

Post your input file.

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-134340458.

guoxiangzhao commented 9 years ago

I have tried the other way , that is average the errors, but it turns out to be the same level of error again(2.7%)

From: Kevin McGrattan [mailto:notifications@github.com] Sent: Monday, August 24, 2015 21:02 To: firemodels/fds-smv Cc: guoxiangzhao Subject: Re: [fds-smv] Mass balance error larger than 2% in an enclosure fire (#2641)

Try it. It may not matter.

Do you still get the 2% when you use a small VELOCITY_TOLERANCE?

Post your input file.

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-134340458 . https://github.com/notifications/beacon/ANQZfJLRRChkPWILwgSI3FstZRIHM5S6ks5oq2GzgaJpZM4Fvubk.gif

guoxiangzhao commented 9 years ago

Hi Randy, which one should be larger in value as you expect between the HRR compute from a 'MASS FLOW WALL' device and the HRR in the _hrr.csv file. Or in other words, which M_fuel will be larger in value between the “ MLR_FUEL” and the “MASS FLOW WALL”?

From: Randy McDermott [mailto:notifications@github.com] Sent: Friday, August 21, 2015 14:13 To: firemodels/fds-smv Cc: guoxiangzhao Subject: Re: [fds-smv] Mass balance error larger than 2% in an enclosure fire (#2641)

This is probably also be related to the other discussion on FLOW DEVCs. If you want exact advective flows at a surface, you need to use the 'WALL' variant of the flow quantity. See Sec. 16.10.10, roughly page 219, of the user guide. But note that this only gives you advective flows. The total mass flow for burning requires the diffusive component as well. The fuel flow rate is given in the HRR file under MLR_FUEL. So, you will still see a difference in the HRR you compute from a 'MASS FLOW WALL' device (requires IOR) and the HRR in the _hrr.csv file.

On Fri, Aug 21, 2015 at 6:18 AM, Kevin McGrattan notifications@github.com wrote:

This is probably related to the fact that the pressure solver used in FDS only applies no-flux boundary conditions exactly at external boundaries. At the walls of your fire room, the no-flux boundary is applied via an iterative scheme that is not exact. Try adding this line

$PRES VELOCITY_TOLERANCE=0.001 /

to your input file. This parameter is explained in the User's Guide. Let me know if that tightens things up.

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133364469 .

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133399853 . https://github.com/notifications/beacon/ANQZfHykwQV0a_43nSPYNzuiwRnnXtRPks5opw1ngaJpZM4Fvubk.gif

rmcdermo commented 9 years ago

MLR_FUEL should be exactly what you specify. MASS FLOW WALL will depend on the resulting ZZ_F required to get the diffusive flux correct. But, generally, I would expect MLR_FUEL to be the larger value.

On Tue, Aug 25, 2015 at 4:00 AM, guoxiangzhao notifications@github.com wrote:

Hi Randy, which one should be larger in value as you expect between the HRR compute from a 'MASS FLOW WALL' device and the HRR in the _hrr.csv file. Or in other words, which M_fuel will be larger in value between the “ MLR_FUEL” and the “MASS FLOW WALL”?

From: Randy McDermott [mailto:notifications@github.com] Sent: Friday, August 21, 2015 14:13 To: firemodels/fds-smv Cc: guoxiangzhao Subject: Re: [fds-smv] Mass balance error larger than 2% in an enclosure fire (#2641)

This is probably also be related to the other discussion on FLOW DEVCs. If you want exact advective flows at a surface, you need to use the 'WALL' variant of the flow quantity. See Sec. 16.10.10, roughly page 219, of the user guide. But note that this only gives you advective flows. The total mass flow for burning requires the diffusive component as well. The fuel flow rate is given in the HRR file under MLR_FUEL. So, you will still see a difference in the HRR you compute from a 'MASS FLOW WALL' device (requires IOR) and the HRR in the _hrr.csv file.

On Fri, Aug 21, 2015 at 6:18 AM, Kevin McGrattan <notifications@github.com

wrote:

This is probably related to the fact that the pressure solver used in FDS only applies no-flux boundary conditions exactly at external boundaries. At the walls of your fire room, the no-flux boundary is applied via an iterative scheme that is not exact. Try adding this line

$PRES VELOCITY_TOLERANCE=0.001 /

to your input file. This parameter is explained in the User's Guide. Let me know if that tightens things up.

— Reply to this email directly or view it on GitHub < https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133364469> .

— Reply to this email directly or view it on GitHub < https://github.com/firemodels/fds-smv/issues/2641#issuecomment-133399853> . < https://github.com/notifications/beacon/ANQZfHykwQV0a_43nSPYNzuiwRnnXtRPks5opw1ngaJpZM4Fvubk.gif>

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-134515468 .

mcgratta commented 9 years ago

I just ran this case:

... &HEAD CHID='my_version_adi' /

&TIME T_END=600.0/

&MESH IJK=50,25,25, XB=-0.5,0.5,-0.25,0.25,0.0,0.5 / &MESH IJK=25,25,50, XB= 0.0,0.5,-0.25,0.25,0.5,1.5 /

&PRES VELOCITY_TOLERANCE=0.001, MAX_PRESSURE_ITERATIONS=50 /

&REAC FUEL='PROPANE', SOOT_YIELD=0.01/

&DEVC ID='FLOW out', QUANTITY='MASS FLOW +', XB=0.00,0.00,-0.1,0.1,0.0,0.3/ &DEVC ID='FLOW in', QUANTITY='MASS FLOW -', XB=0.00,0.00,-0.1,0.1,0.0,0.3/ &DEVC ID='Total Mass', QUANTITY='DENSITY', XB=-.50,0.00,-0.25,0.25,0.0,0.5, STATISTICS='VOLUME INTEGRAL' /

&SURF ID='Fiberboard', RGB=146,202,166, ADIABATIC=.TRUE., DEFAULT=.TRUE. /

&SURF ID='Surface01', COLOR='RED', HRRPUA=4000.0 /

&OBST XB=0.0,0.02,-0.25,0.25,0.00,1.5 / Wall

&HOLE XB=0.0,0.02,-0.1,0.1,0.0,0.3 / Hole

&VENT SURF_ID='OPEN', XB=0.0,0.5,-0.25,-0.25,0.0,1.5 / &VENT SURF_ID='OPEN', XB=0.0,0.5, 0.25, 0.25,0.0,1.5 / &VENT SURF_ID='OPEN', XB=0.5,0.5,-0.25, 0.25,0.0,1.5 / &VENT SURF_ID='OPEN', XB=0.0,0.5,-0.25, 0.25,0.0,0.0 / &VENT SURF_ID='OPEN', XB=0.0,0.5,-0.25, 0.25,1.5,1.5 /

&OBST XB=-0.3,-0.2,-0.1,0.1,0.00,0.02, SURF_IDS='Surface01','Fiberboard','Fiberboard' /

&SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBY=0.0/

&TAIL / ...

It is a simplified version of your case. I made the walls adiabatic to force things to a steady state quickly. I see that after about 20 s, the 'FLOW out' is equal to the 'FLOW in' + 'MLR_FUEL'.

Could it be that in your case the compartment has not come to a steady state? It can take a long time for the walls to truly come to a steady state temperature.

guoxiangzhao commented 9 years ago

Would you mind to send me your result files(_devc.csv and _hrr.csv) by email? Thanks !

guoxiang.zhao@ugent.be

From: Kevin McGrattan [mailto:notifications@github.com] Sent: Tuesday, August 25, 2015 17:20 To: firemodels/fds-smv Cc: guoxiangzhao Subject: Re: [fds-smv] Mass balance error larger than 2% in an enclosure fire (#2641)

I just ran this case:

... &HEAD CHID='my_version_adi' /

&TIME T_END=600.0/

&MESH IJK=50,25,25, XB=-0.5,0.5,-0.25,0.25,0.0,0.5 / &MESH IJK=25,25,50, XB= 0.0,0.5,-0.25,0.25,0.5,1.5 /

&PRES VELOCITY_TOLERANCE=0.001, MAX_PRESSURE_ITERATIONS=50 /

&REAC FUEL='PROPANE', SOOT_YIELD=0.01/

&DEVC ID='FLOW out', QUANTITY='MASS FLOW +', XB=0.00,0.00,-0.1,0.1,0.0,0.3/ &DEVC ID='FLOW in', QUANTITY='MASS FLOW -', XB=0.00,0.00,-0.1,0.1,0.0,0.3/ &DEVC ID='Total Mass', QUANTITY='DENSITY', XB=-.50,0.00,-0.25,0.25,0.0,0.5, STATISTICS='VOLUME INTEGRAL' /

&SURF ID='Fiberboard', RGB=146,202,166, ADIABATIC=.TRUE., DEFAULT=.TRUE. /

&SURF ID='Surface01', COLOR='RED', HRRPUA=4000.0 /

&OBST XB=0.0,0.02,-0.25,0.25,0.00,1.5 / Wall

&HOLE XB=0.0,0.02,-0.1,0.1,0.0,0.3 / Hole

&VENT SURF_ID='OPEN', XB=0.0,0.5,-0.25,-0.25,0.0,1.5 / &VENT SURF_ID='OPEN', XB=0.0,0.5, 0.25, 0.25,0.0,1.5 / &VENT SURF_ID='OPEN', XB=0.5,0.5,-0.25, 0.25,0.0,1.5 / &VENT SURF_ID='OPEN', XB=0.0,0.5,-0.25, 0.25,0.0,0.0 / &VENT SURF_ID='OPEN', XB=0.0,0.5,-0.25, 0.25,1.5,1.5 /

&OBST XB=-0.3,-0.2,-0.1,0.1,0.00,0.02, SURF_IDS='Surface01','Fiberboard','Fiberboard' /

&SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBY=0.0/

&TAIL / ...

It is a simplified version of your case. I made the walls adiabatic to force things to a steady state quickly. I see that after about 20 s, the 'FLOW out' is equal to the 'FLOW in' + 'MLR_FUEL'.

Could it be that in your case the compartment has not come to a steady state? It can take a long time for the walls to truly come to a steady state temperature.

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-134620781 . https://github.com/notifications/beacon/ANQZfDM11P41lsUbW20QQVoak5Pe8O7hks5orH8JgaJpZM4Fvubk.gif

guoxiangzhao commented 9 years ago

Hi McGrattan, I used your simulation results, and calculated the mass balance error, it turns out to be 1.43%.

The averaged Flow out (from 20s to 90s) is equal to 0.14645, and the averaged Flow in is 0.12697, and the averaged MLR_fuel is 0.001739.

The mass balance error which is defined as=abs(1-(mass in + mass_fuel )/mass_out)*100%= 1.43%.

Yes, this value is below 2%, but still, the 'FLOW out' is not equal to the 'FLOW in' + 'MLR_FUEL'.

From: Kevin McGrattan [mailto:notifications@github.com] Sent: Tuesday, August 25, 2015 17:20 To: firemodels/fds-smv Cc: guoxiangzhao Subject: Re: [fds-smv] Mass balance error larger than 2% in an enclosure fire (#2641)

I just ran this case:

... &HEAD CHID='my_version_adi' /

&TIME T_END=600.0/

&MESH IJK=50,25,25, XB=-0.5,0.5,-0.25,0.25,0.0,0.5 / &MESH IJK=25,25,50, XB= 0.0,0.5,-0.25,0.25,0.5,1.5 /

&PRES VELOCITY_TOLERANCE=0.001, MAX_PRESSURE_ITERATIONS=50 /

&REAC FUEL='PROPANE', SOOT_YIELD=0.01/

&DEVC ID='FLOW out', QUANTITY='MASS FLOW +', XB=0.00,0.00,-0.1,0.1,0.0,0.3/ &DEVC ID='FLOW in', QUANTITY='MASS FLOW -', XB=0.00,0.00,-0.1,0.1,0.0,0.3/ &DEVC ID='Total Mass', QUANTITY='DENSITY', XB=-.50,0.00,-0.25,0.25,0.0,0.5, STATISTICS='VOLUME INTEGRAL' /

&SURF ID='Fiberboard', RGB=146,202,166, ADIABATIC=.TRUE., DEFAULT=.TRUE. /

&SURF ID='Surface01', COLOR='RED', HRRPUA=4000.0 /

&OBST XB=0.0,0.02,-0.25,0.25,0.00,1.5 / Wall

&HOLE XB=0.0,0.02,-0.1,0.1,0.0,0.3 / Hole

&VENT SURF_ID='OPEN', XB=0.0,0.5,-0.25,-0.25,0.0,1.5 / &VENT SURF_ID='OPEN', XB=0.0,0.5, 0.25, 0.25,0.0,1.5 / &VENT SURF_ID='OPEN', XB=0.5,0.5,-0.25, 0.25,0.0,1.5 / &VENT SURF_ID='OPEN', XB=0.0,0.5,-0.25, 0.25,0.0,0.0 / &VENT SURF_ID='OPEN', XB=0.0,0.5,-0.25, 0.25,1.5,1.5 /

&OBST XB=-0.3,-0.2,-0.1,0.1,0.00,0.02, SURF_IDS='Surface01','Fiberboard','Fiberboard' /

&SLCF QUANTITY='TEMPERATURE', VECTOR=.TRUE., PBY=0.0/

&TAIL / ...

It is a simplified version of your case. I made the walls adiabatic to force things to a steady state quickly. I see that after about 20 s, the 'FLOW out' is equal to the 'FLOW in' + 'MLR_FUEL'.

Could it be that in your case the compartment has not come to a steady state? It can take a long time for the walls to truly come to a steady state temperature.

— Reply to this email directly or view it on GitHub https://github.com/firemodels/fds-smv/issues/2641#issuecomment-134620781 . https://github.com/notifications/beacon/ANQZfDM11P41lsUbW20QQVoak5Pe8O7hks5orH8JgaJpZM4Fvubk.gif

mcgratta commented 9 years ago

I tightened the VELOCITY_TOLERANCE even more

&PRES VELOCITY_TOLERANCE=0.0001, MAX_PRESSURE_ITERATIONS=500 /

and that reduces the "error" to 1.17%. However, I would regard this only as an error in the output, because we use a simple discretization of mass flux at the opening of the compartment. In the actual FDS calculation, we use flux limiters to calculate the flux (Section 3.2.1 of the FDS Tech Guide). It would be too costly to recompute the exact flux terms in the output routine. The real proof that things are working properly is that the volume integral of the density demonstrates that the overall mass of gases in the fire compartment are not creeping up or down over the course of the calculation.

guoxiangzhao commented 9 years ago

Thanks for your reply,now I am thinking a further question: how to measure the mass flux of oxygen (or carbon monoxide) through the opening? As is known, the oxygen which flow into the enclosure through the opening were not totally consumed by the combustion occurred inside the enclosure: small part of the oxygen flow out directly through the opening (didn't involve in the combustion at all), some part of the oxygen was consumed in the CO formation process. So I am trying to demonstrate this, another alternative way to do this is to use the SLICE file which showing the concentration of gas species(oxygen, CO), but I am not sure if this is a proper way to achieve that.

mcgratta commented 9 years ago

&SLCF PBX=..., QUANTITY='MASS FLOW', SPEC_ID='OXYGEN', ... /

guoxiangzhao commented 9 years ago

Actually I used "&DEVC ID='O2_flow', XB=0.02,0.02,-0.1,0.1,0.0,0.3, QUANTITY='MASS FLUX X', SPEC_ID='OXYGEN', STATISTICS='AREA INTEGRAL'/ "

I take this results as the net oxygen flow rate through the opening.

Then how can we demonstrate that the oxygen is not all consumed by the combustion inside the enclosure? I calculated the oxygen inflow rate by multiply 0.23 to air inflow rate, then compared these two values, they are not the same. That is the net oxygen flow rate is lower than the oxygen inflow rate, then there should be some oxygen go out without burning. is this correct?

mcgratta commented 9 years ago

Sure. the exiting flow "drags" fresh air with it. Plus, all the air entering the compartment is not used for combustion.

guoxiangzhao commented 9 years ago

But I multiply the net oxygen flow rate(0.0025kg/s) by EPUM (energy released per unit mass of oxygen, 13,100 kj/kg), which is 33.012 kw, I expected it would equal to the HRR inside the enclosure, which is 35.012 kw (using &DEVC ID='HRR inside', QUANTITY='HRR', XB=../), but this is not true, the calculated HRR is lower that the later value.

PS: can we get the oxygen inflow/outflow rate through the opening? (something like "MASS FLUX X +")

mcgratta commented 9 years ago

&SLCF XB=..., QUANTITY='MASS FLOW +', SPEC_ID='OXYGEN', ... /

guoxiangzhao commented 9 years ago

What is your comments on the comparison of these two value of the HRR?

drjfloyd commented 9 years ago

EPUMO2 = 13100 kJ/kg is only a rule of thumb. The actual value will differ slightly. You need to calculate the actual value using the heat of combustion reported in the .out file.

As has been noted multiple times in this thread, the MASS FLOW device is not exact as it does not use the full flux limiter calculation done in the mass transport routines. It should be close, but it will not be exact.

The instantaneous net flow of oxygen into the compartment is not going to be identical to the instantaneous heat release rate as there is a mixing time. On average they should be nearly the same.

guoxiangzhao commented 9 years ago

yes, you are correct! Again, do you also think the answer is yes for the question below?

"Actually I used "&DEVC ID='O2_flow', XB=0.02,0.02,-0.1,0.1,0.0,0.3, QUANTITY='MASS FLUX X', SPEC_ID='OXYGEN', STATISTICS='AREA INTEGRAL'/ " I take this results as the net oxygen flow rate through the opening. I calculated the oxygen inflow rate by multiply 0.23 to air inflow rate, then compared these two values, they are not the same. That is the net oxygen flow rate is lower than the oxygen inflow rate, then there should be some oxygen go out without burning. is this correct?"

mcgratta commented 9 years ago

Yes -- the outflow would not have an oxygen concentration of zero.