Skip to content

Commit 351e0da

Browse files
authored
Merge pull request #14618 from cxp484/FireX
FireX FDS Source: Add Thickened flame model for laminar case
2 parents 4c7d41e + 38fae1e commit 351e0da

File tree

5 files changed

+25
-3
lines changed

5 files changed

+25
-3
lines changed

Source/cons.f90

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -955,4 +955,7 @@ MODULE CHEMCONS
955955
REAL(EB), ALLOCATABLE, DIMENSION(:,:) :: CVODE_SUBSTEP_DATA
956956
INTEGER :: TOTAL_SUBSTEPS_TAKEN
957957

958+
! FOR THICKENED FLAME MODEL
959+
REAL(EB) :: FLAME_THICK_FACTOR=1.0_EB
960+
958961
END MODULE CHEMCONS

Source/divg.f90

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ SUBROUTINE DIVERGENCE_PART_1(T,DT,NM)
3030
USE COMPLEX_GEOMETRY, ONLY : CC_CGSC, CC_UNKZ, CC_SOLID, CC_CUTCFE
3131
USE CC_SCALARS, ONLY : ADD_CUTCELL_PSUM,ADD_LINKEDCELL_PSUM,SET_EXIMDIFFLX_3D,SET_EXIMRHOHSLIM_3D,&
3232
SET_EXIMRHOZZLIM_3D,CC_DIVERGENCE_PART_1,CC_VELOCITY_FLUX,CFACE_PREDICT_NORMAL_VELOCITY
33+
USE CHEMCONS, ONLY : FLAME_THICK_FACTOR
3334

3435
INTEGER, INTENT(IN) :: NM
3536
REAL(EB), INTENT(IN) :: T,DT
@@ -149,6 +150,10 @@ SUBROUTINE DIVERGENCE_PART_1(T,DT,NM)
149150
ENDIF
150151
ENDIF
151152

153+
IF (FLAME_THICK_FACTOR > 1._EB) THEN
154+
RHO_D = RHO_D*FLAME_THICK_FACTOR
155+
ENDIF
156+
152157
! Manufactured solution
153158

154159
IF (PERIODIC_TEST==7) RHO_D = DIFF_MMS

Source/fire.f90

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,8 @@ SUBROUTINE SET_SPECIES_SOURCE_TERM_CELL(DT, I, J, K, ZZ_NEW, ZZ_OLD, REAC_SOURCE
413413

414414
USE PHYSICAL_FUNCTIONS, ONLY: GET_SPECIFIC_GAS_CONSTANT,GET_SPECIFIC_HEAT, &
415415
GET_SENSIBLE_ENTHALPY_Z,IS_REALIZABLE
416+
USE CHEMCONS, ONLY : FLAME_THICK_FACTOR
417+
416418
REAL(EB), INTENT(IN) :: DT
417419
REAL(EB), INTENT(INOUT) :: ZZ_NEW(N_TRACKED_SPECIES), ZZ_OLD(N_TRACKED_SPECIES)
418420
REAL(EB), INTENT(IN) :: REAC_SOURCE_TERM_TMP(N_TRACKED_SPECIES), Q_REAC_TMP(N_REACTIONS)
@@ -436,7 +438,12 @@ SUBROUTINE SET_SPECIES_SOURCE_TERM_CELL(DT, I, J, K, ZZ_NEW, ZZ_OLD, REAC_SOURCE
436438
RETURN
437439
ENDIF
438440
ENDIF
441+
439442
DZZ = ZZ_NEW - ZZ_OLD
443+
IF (FLAME_THICK_FACTOR > 1._EB) THEN
444+
DZZ = DZZ/FLAME_THICK_FACTOR
445+
ENDIF
446+
440447
! Update RSUM and ZZ
441448
DZZ_IF: IF ( ANY(ABS(DZZ) > DZZ_CLIP) ) THEN
442449
IF (ABS(Q(I,J,K)) > TWO_EPSILON_EB) Q_EXISTS = .TRUE.

Source/read.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4604,10 +4604,10 @@ END SUBROUTINE PROC_SPEC_2
46044604
!> \brief Read the COMBustion namelist line
46054605

46064606
SUBROUTINE READ_COMB
4607-
USE CHEMCONS, ONLY: ODE_MIN_ATOL, EQUIV_RATIO_CHECK, MIN_EQUIV_RATIO, MAX_EQUIV_RATIO, DO_CHEM_LOAD_BALANCE
4607+
USE CHEMCONS, ONLY: ODE_MIN_ATOL, EQUIV_RATIO_CHECK, MIN_EQUIV_RATIO, MAX_EQUIV_RATIO, DO_CHEM_LOAD_BALANCE,FLAME_THICK_FACTOR
46084608
REAL(EB) :: ODE_REL_ERROR
46094609
NAMELIST /COMB/ CHECK_REALIZABILITY,COMPUTE_ADIABATIC_FLAME_TEMPERATURE, DO_CHEM_LOAD_BALANCE, EQUIV_RATIO_CHECK, &
4610-
EXTINCTION_MODEL,FINITE_RATE_MIN_TEMP, FIXED_MIX_TIME,FREE_BURN_TEMPERATURE,&
4610+
EXTINCTION_MODEL,FINITE_RATE_MIN_TEMP, FIXED_MIX_TIME,FLAME_THICK_FACTOR,FREE_BURN_TEMPERATURE,&
46114611
INITIAL_UNMIXED_FRACTION, MAX_CHEMISTRY_SUBSTEPS, MAX_EQUIV_RATIO, MIN_EQUIV_RATIO, &
46124612
N_FIXED_CHEMISTRY_SUBSTEPS, ODE_MIN_ATOL,ODE_REL_ERROR,ODE_SOLVER,SUPPRESSION,TAU_CHEM, &
46134613
TAU_FLAME,ZZ_MIN_GLOBAL

Source/wall.f90

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,7 @@ SUBROUTINE SURFACE_HEAT_TRANSFER(NM,T,SF,BC,B1,WALL_INDEX,CFACE_INDEX,PARTICLE_I
435435
USE COMPLEX_GEOMETRY, ONLY : CC_CGSC, CC_SOLID
436436
USE PHYSICAL_FUNCTIONS, ONLY : GET_SPECIFIC_GAS_CONSTANT,GET_VISCOSITY,GET_MOLECULAR_WEIGHT
437437
USE DEVICE_VARIABLES, ONLY : PROPERTY,PROPERTY_TYPE
438+
USE CHEMCONS, ONLY : FLAME_THICK_FACTOR
438439

439440
REAL(EB), INTENT(IN) :: T
440441
INTEGER, INTENT(IN) :: NM
@@ -942,6 +943,9 @@ SUBROUTINE SURFACE_HEAT_TRANSFER(NM,T,SF,BC,B1,WALL_INDEX,CFACE_INDEX,PARTICLE_I
942943
ENDIF
943944
RHO_D = 0.5_EB*( RHO_OTHER*D_Z_OTHER + B1%RHO_G*D_Z_G ) + RHO_D_TURB
944945
END SELECT MODE_SELECT
946+
IF (FLAME_THICK_FACTOR > 1._EB) THEN
947+
RHO_D = RHO_D*FLAME_THICK_FACTOR
948+
ENDIF
945949
SELECT CASE(BC%IOR)
946950
CASE( 1)
947951
ARO = MM%DY(JJO)*MM%DZ(KKO)/(DY(BC%JJ)*DZ(BC%KK))
@@ -1011,6 +1015,7 @@ END SUBROUTINE SURFACE_HEAT_TRANSFER
10111015
!> \details Calculate the diffusion coefficient, rho*D (kg/m/s)
10121016

10131017
SUBROUTINE CALCULATE_RHO_D_F(B1,BC,WALL_INDEX,CFACE_INDEX)
1018+
USE CHEMCONS, ONLY : FLAME_THICK_FACTOR
10141019

10151020
INTEGER, INTENT(IN), OPTIONAL :: WALL_INDEX,CFACE_INDEX
10161021
REAL(EB) :: MU_G
@@ -1044,7 +1049,9 @@ SUBROUTINE CALCULATE_RHO_D_F(B1,BC,WALL_INDEX,CFACE_INDEX)
10441049
B1%RHO_D_F(N) = B1%RHO_F*D_Z(ITMP,N)
10451050
ENDDO
10461051
END SELECT
1047-
1052+
IF (FLAME_THICK_FACTOR > 1._EB) THEN
1053+
B1%RHO_D_F = B1%RHO_D_F*FLAME_THICK_FACTOR
1054+
ENDIF
10481055
END SUBROUTINE CALCULATE_RHO_D_F
10491056

10501057

0 commit comments

Comments
 (0)