How do I simulate fires in CFX?  (Read 13103 times)

Offline pitney1

  • Jr. Member
  • **
  • Posts: 62
  • Reputation: +0/-0
  • Searching for solution
    • View Profile
How do I simulate fires in CFX?
« on: February 13, 2012, 09:11:06 PM »
Hi,

I am new to CFX, how do I simulate fire in CFX?

Please help.

Thank you.

Offline william

  • Full Member
  • ***
  • Posts: 147
  • Reputation: +18/-0
  • Know it, share it.
    • View Profile
Re: How do I simulate fires in CFX?
« Reply #1 on: February 13, 2012, 09:12:56 PM »
Fires can be simulated with an inert (non-reacting) fluid in which a heat source is added to a volume or a reacting fluid in which a fuel source is typically added at a surface. See below:


Inert Fire Modelling
--------------------

#
# Fire Source
#

For inert fire simulations a source of heat is added to a source volume. This type of simplification is appropriate if accurate predictions of the shape of the flame and the near field region of the fire are not important.

The FireEfficiency parameter determines how much of the fire power is added as heat. It can be used to account for the combustion efficiency. In well ventilated fires with clean burning fuels this is likely to be quite high (0.9-1.0).

Radiation should always be modelled. Radiative heat fluxes from the fire zone can be significant. The total fire power will be split between the radiative and convective heat fluxes from the fire zone. If radiation is not being modelled then the efficiency needs to be reduced to account for the fact that all the power is dissipated by convective/diffusive heat fluxes only.

It is important to use a sensible size for the fire volume which will produce sensible temperatures. A useful strategy is to use CEL to set up a source region so that the size of the source can be easily changed, which allows for rapid testing of different sizes without having to generate a new mesh each time. This strategy becomes essential for modelling fires (or any source regions) that grow in time and is described in ANSYS solution number 541877. The mesh needs to be sufficiently fine in the fire region to accommodate any likely changes in size. It is then a simple matter to change the fire size and restart the calculation until an acceptable fire temperature is obtained. Once a suitable size has been obtained the mesh can be modified if desired.

The example below is for a fire in which the heat source is added to a cylindrical volume. The minVolume and minRadius parameters are used to constrain the minimum source volume to be similar to the smallest mesh volume.

#
# CCL Example
#
LIBRARY:
CEL:
EXPRESSIONS:
xFire = 5 [m]
yFire = 2.5 [m]
zFire = 0 [m]
FireRadius = max(0.25 [m], minRadius)
FireHeight = FireRadius
FireEfficiency = 0.9
FirePower = 0.5 [MW] * FireEfficiency
rSource = sqrt((x-xFire)^2 + (y-yFire)^2)
hSource = z-zFire
insideSource = step((FireRadius-rSource)/unitL)*step((FireHeight-hSource)/unitL)
SourceVolume = volumeInt(SourceFlag)@Fire Subdomain
heatSource = insideSource*FirePower/max(SourceVolume, minVolume)
minVolume = minVal(Volume of Finite Volumes)@Fire Subdomain
minRadius = (minVolume/pi)^(1/3)
unitL = 1 [m]
END
END
ADDITIONAL VARIABLE: SourceFlag
Option = Definition
Tensor Type = SCALAR
Units = [ ]
Variable Type = Unspecified
END
END

FLOW: Flow Analysis 1
.
DOMAIN: Default Domain
.
FLUID MODELS:
ADDITIONAL VARIABLE: SourceFlag
Additional Variable Value = insideSource
Option = Algebraic Equation
END
END
.
SUBDOMAIN: Subdomain 1
SOURCES:
EQUATION SOURCE: energy
Option = Source
Source = heatSource
END
END
END
.
END
.
END

Cylindrical source volumes tend to produce flame heights that are quite a bit higher than the source height. A conical source region will produce a flame height closer to the height of the source region, eg:

LIBRARY:
CEL:
EXPRESSIONS:
BaseRadius = max(0.25 [m], minRadius)
FireHeight = 2*BaseRadius
FireRadius = BaseRadius*(1-hSource/FireHeight)
END
END
END

#
# Soot modelling
#

Soot is modelled as an additional variable having a specified volumetric source in the fire region. The soot yield is specified as a fraction of the fuel mass source. Values for soot yields for various fuel types are available in the literature and are dependent on how cleanly the fuel burns.

#
# CCL Example
#
LIBRARY:
CEL:
EXPRESSIONS:
sootYield = 0.05
FuelHeat = 15 [MJ kg^-1]
FuelMassSource = FirePower/FuelHeat
massSource = insideSource*FuelMassSource/max(SourceVolume, minVolume)
sootSource = sootYield * massSource
END
END
ADDITIONAL VARIABLE: soot
Option = Definition
Tensor Type = SCALAR
Units = [ ]
Variable Type = Specific
END
END

FLOW: Flow Analysis 1
.
DOMAIN: Default Domain
.
FLUID MODELS:
ADDITIONAL VARIABLE: soot
Kinematic Diffusivity = 1.0E-5 [m^2 s^-1]
Option = Transport Equation
END
END
.
SUBDOMAIN: Subdomain 1
SOURCES:
EQUATION SOURCE: soot
Option = Source
Source = sootSource
END
END
END
.
END
.
END

The radiation field can be coupled to the gas temperatures via the soot mass fraction by setting the fluid absorption coefficient equal to:
GasAbs = 0.01 [m^-1] + max(6*density*soot/(smokeDensity*smokeDiameter), 0.0 [m^-1]).
smokeDensity = 2000 [kg m^-3]
smokeDiameter = 1.0E-6 [m]

The smoke diameter is the effective mean diameter of smoke particles and is essentially a free parameter that determines the degree of coupling between the gas and the radiation field. The formula above is derived from the emission from black, non-interacting spheres at the same temperature as the gas they are immersed in.


#
# Visibility
#

Visibility can be calculated on a local basis using the light-reflecting visibility for an infinite homogenous medium having a given local soot concentration [ref = DiNenno P.J., Handbook of Fire Protection Engineering, NFPA, Quincy, MA, USA, 1990.]

#
# CCL Example
#
LIBRARY:
CEL:
EXPRESSIONS:
c1 = 3.95E-4 [kg m^-2]
visibility = min((c1/max(soot*density, 1e-10[kg m^-3])), 1e3 [m])
END
END
ADDITIONAL VARIABLE: Visibility
Option = Definition
Tensor Type = SCALAR
Units = [m]
Variable Type = Unspecified
END
END

FLOW: Flow Analysis 1
.
DOMAIN: Default Domain
.
FLUID MODELS:
ADDITIONAL VARIABLE: Visibility
Additional Variable Value = visibility
Option = Algebraic Equation
END
END
.
END
.
END

#
# Time stepping
#

Buoyant flows can be difficult for the steady state solver to converge. It is often beneficial to use the transient solver even for a steady state solution. Time steps of around 1s may be possible for an inert fire model. The steady state solver can be run initially with auto time stepping. The time steps reported by the auto time stepping can by used as a guide for setting a transient time step.


#
# Transient fires
#
The power output of a transient fire tends to be described by a quadratic growth phase (P = a t^2) up to some constant maximum power (Pmax) achieved at some time (tg) which is the fire growth time. The size of the quadratic coefficient (a) determines the rate of fire growth.

National Fire Protection Association (NFPA) standardized fire growth curves:
Fire growth rate a (W/s^2)
Slow 2.9
Medium 12
Fast 47.

The fire size for the maximum power can be determined using the procedure above for a steady state fire. The power of a real fire tends to grow proportional to the cross sectional (floor) area of the fire. However, the constant of proportionality is different for differing fuels, and environmental conditions (wind, outdoor/indoor, ventilation, confinement, etc) hence the need to determine a size which gives a sensible temperature as described above. Also, real fires are typically fuelled by evaporation from a surface area, whereas the inert model described here distributes the fire power over a volume. To be consistent with the source modelling, the fire power should be set to be proportional to the source volume:
FireRadius = max((FirePower/MaxPower)^(1/3) * MaxRadius, minRadius)

If the fire power was to be set to be proportional to the area, the power density would be inversely proportional to the radius and grow as the radius shrinks, leading to spurious higher flame temperatures at smaller radii and the danger of extremely high power densities and temperatures at the start of the simulation (the power density would tend to infinity as the radius tends to zero).

The inert fire approximation is not expected to produce accurate solutions for the flame shape or the near field region, so the particular growth law for the radius is not important. What matters is maintaining sensible flame temperatures. If more accuracy than this is required you should use a combustion model.


Combustion Fire Modelling
-------------------------

#
# Fire Source
#

For combusting fire simulations a mass source of fuel is typically added over some area at a boundary such as a floor.

The FireEfficiency parameter determines how much of the fire power is converted in to a fuel source. It can be used to account for the combustion efficiency. In well ventilated fires with clean burning fuels this is likely to be quite high (0.9-1.0).

Radiation should always be modelled. Radiative heat fluxes from the fire zone can be significant. The total fire power will be split between the radiative and convective heat fluxes from the fire zone. If radiation is not being modelled then the efficiency needs to be reduced to account for the fact that all the power is dissipated by convective/diffusive heat fluxes only.

When specifying a power, the fire size needs to be set such that it produces an appropriate fire temperature. A useful strategy is to use CEL to set up a source region so that the size of the source can be easily changed. This strategy becomes essential for modelling fires (or any source regions) that grow in time and is described in ANSYS solution number 541877. The mesh needs to be sufficiently fine in the fire region to accommodate any likely changes in size.

For a combusting calculation the solver reports the enthalpy per mol [J/mol] of reaction at reference conditions. The heat released by a kilogram of fuel can be obtained by dividing the molar enthalpy of the reaction by the molecular weight of the fuel.

The example below is for a fire in which the fuel source is added over a circular area. The minRadius and minArea parameters are used to constrain the minimum source area to be similar to the smallest mesh area.

#
# CCL Example
#
LIBRARY:
CEL:
EXPRESSIONS:
xFire = 5 [m]
yFire = 2.5 [m]
zFire = 0 [m]
FireRadius = max(0.25 [m], minRadius)
FireEfficiency = 0.9
FirePower = 0.5 [MW] * FireEfficiency
rSource = sqrt((x-xFire)^2 + (y-yFire)^2)
insideSource = step((FireRadius-rSource)/unitL)
SourceArea = areaInt(SourceFlag)@Floor
FuelHeat = 8.0235E+05 *1000 [J/kmol] /16.04 [kg/kmol]
FuelMassSource = FirePower/FuelHeat
massSource = insideSource * FuelMassSource/max(SourceArea, minArea)
minRadius = (minVal(Volume of Finite Volumes)@Domain /pi)^(1/3)
minArea = pi*minRadius^2
unitL = 1 [m]
END
END
ADDITIONAL VARIABLE: SourceFlag
Option = Definition
Tensor Type = SCALAR
Units = [ ]
Variable Type = Unspecified
END
END

FLOW: Flow Analysis 1
.
DOMAIN: Default Domain
.
FLUID MODELS:
ADDITIONAL VARIABLE: SourceFlag
Additional Variable Value = insideSource
Option = Algebraic Equation
END
END
.
BOUNDARY: Floor

BOUNDARY SOURCE:
SOURCES:
EQUATION SOURCE: CH4.mf
Flux = massSource
Option = Flux
END
EQUATION SOURCE: soot
Flux = sootSource
Option = Flux
END
END
END
END
.
END
.
END

#
# Soot modelling
#

Soot is modelled as an additional variable having a specified mass source over the fire source area. The soot yield is specified as a fraction of the fuel mass source. Values for soot yields for various fuel types are available in the literature and are dependent on how cleanly the fuel burns.

#
# CCL Example
#
LIBRARY:
CEL:
EXPRESSIONS:
sootYield = 0.05
sootSource = sootYield * massSource
END
END
ADDITIONAL VARIABLE: soot
Option = Definition
Tensor Type = SCALAR
Units = [ ]
Variable Type = Specific
END
END

FLOW: Flow Analysis 1
.
DOMAIN: Default Domain
.
FLUID MODELS:
ADDITIONAL VARIABLE: soot
Kinematic Diffusivity = 1.0E-5 [m^2 s^-1]
Option = Transport Equation
END
END
.
BOUNDARY: Floor

BOUNDARY SOURCE:
SOURCES:
EQUATION SOURCE: CH4.mf
Flux = massSource
Option = Flux
END
EQUATION SOURCE: soot
Flux = sootSource
Option = Flux
END
END
END
END
.
END
.
END

The radiation field can be coupled to the gas temperatures via the soot mass fraction by setting the fluid absorption coefficient equal to:
GasAbs = 0.01 [m^-1] + max(6*density*soot/(smokeDensity*smokeDiameter), 0.0 [m^-1]).
smokeDensity = 2000 [kg m^-3]
smokeDiameter = 1.0E-6 [m]

The smoke diameter is the effective mean diameter of smoke particles and is essentially a free parameter that determines the degree of coupling between the gas and the radiation field. The formula above is derived from the emission from black, non-interacting spheres at the same temperature as the gas they are immersed in.


#
# Visibility
#

Visibility can be calculated on a local basis using the light-reflecting visibility for an infinite homogenous medium having a given local soot concentration [ref = DiNenno P.J., Handbook of Fire Protection Engineering, NFPA, Quincy, MA, USA, 1990.]

#
# CCL Example
#
LIBRARY:
CEL:
EXPRESSIONS:
c1 = 3.95E-4 [kg m^-2]
visibility = min((c1/max(soot*density, 1e-10[kg m^-3])), 1e3 [m])
END
END
ADDITIONAL VARIABLE: Visibility
Option = Definition
Tensor Type = SCALAR
Units = [m]
Variable Type = Unspecified
END
END

FLOW: Flow Analysis 1
.
DOMAIN: Default Domain
.
FLUID MODELS:
ADDITIONAL VARIABLE: Visibility
Additional Variable Value = visibility
Option = Algebraic Equation
END
END
.
END
.
END

#
# Time stepping
#

Buoyant flows can be difficult for the steady state solver to converge. It is often beneficial to use the transient solver even for a steady state solution. Time steps of around 0.3s are typical for a combusting model. The steady state solver can be run initially with auto time stepping. The time steps reported by the auto time stepping can by used as a guide for setting a transient time step.


#
# Transient fires
#
The power output of a transient fire tends to be described by a quadratic growth phase (P = a t^2) up to some constant maximum power (Pmax) achieved at some time (tg) which is the fire growth time. The size of the quadratic coefficient (a) determines the rate of fire growth.

National Fire Protection Association (NFPA) standardized fire growth curves:
Fire growth rate a (W/s^2)
Slow 2.9
Medium 12
Fast 47.

The fire size for the maximum power can be determined using the procedure above for a steady state fire. The fire power tends to grow proportional to the cross sectional (floor) area of the fire. However, the constant of proportionality is different for differing fuels and environmental conditions (wind, outdoor/indoor, ventilation, confinement, etc) hence the need to determine a radius at maximum power (maxRadius) which gives a sensible temperature as described above. The radius at lower powers is then described by
FireRadius = max((FirePower/MaxPower)^(1/2) * MaxRadius, minRadius)


#
# Alternative fire source specifications
#

If both the area and fuel injection/evaporation rate are known, the area can be explicitly meshed and the fuel source explicitly specified.
FuelMassSource = <constant> [kg m^-2]

It is also possible to construct more dynamic boundary conditions. For example, for liquid fuels, the area could be fixed (for example representing a tray of liquid fuel) and the fuel evaporation rate can be computed by evaluating the incident radiative heat flux over the surface of the fuel. The dynamic nature of this type of boundary condition would mean that the solver has to work harder to obtain a solution.

Offline ABS

  • Newbie
  • *
  • Posts: 3
  • Reputation: +0/-0
  • Searching for solution
    • View Profile
Re: How do I simulate fires in CFX?
« Reply #2 on: January 01, 2013, 10:35:45 AM »
Thanks. I found this post very helpful in solving my problem.
I have one question relating to William's post on Combustion Fire Modeling: How do you I simulate burning of plastic material like polyurethane?
Do I use the CCL above and modify it with Polyurethane burning characteristics (namely, FuelHeat and SootYeild)? If so, how much does this affect the rest of the CCL
in relation to CH4.mf ... because in the end I want to be burning Polyurthane and I don't care for CH4 combustion characteristics.


Offline pchand

  • Newbie
  • *
  • Posts: 1
  • Reputation: +0/-0
  • Searching for solution
    • View Profile
Re: How do I simulate fires in CFX?
« Reply #3 on: February 17, 2013, 08:04:22 PM »
This post is very useful. Can you please explain how the same concept of volumetric fire source can be applied in Ansys Fluent to simulate a fire?
Thanks in advance!

Offline cherly77

  • Newbie
  • *
  • Posts: 1
  • Reputation: +0/-0
  • Searching for solution
    • View Profile
    • http://www.sekopeko.com/
Re: How do I simulate fires in CFX?
« Reply #4 on: February 27, 2013, 11:12:25 AM »
Excellent forum, Thnkx for uploading the important material. I found it useful. Best regards !!

Offline ABS

  • Newbie
  • *
  • Posts: 3
  • Reputation: +0/-0
  • Searching for solution
    • View Profile
Re: How do I simulate fires in CFX?
« Reply #5 on: March 02, 2014, 06:52:09 AM »
Hello,
I have used William's CCL as-is for quite some time..and have developed some best practices in the process.
I am trying to gain a deeper understanding of the subject. Therefore, it would be highly appreciated if somebody can share their experience with the following:
1. Modifying this CCL to simulate burning of plastic material (like PU, or poly styrene)
2. Whether it is possible to correlate this CCL's production of volumetric smoke to 1-D steady-state axisymetric equation prescribed in NFPA92B.