Skip to content

Commit 89cfa6b

Browse files
authored
Merge pull request #13652 from mcgratta/master
FDS Source: Issue #13648. Simplify particle flux scaling
2 parents 38bd207 + 41c168d commit 89cfa6b

File tree

1 file changed

+11
-23
lines changed

1 file changed

+11
-23
lines changed

Source/wall.f90

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ SUBROUTINE WALL_BC(T,DT,NM)
214214

215215
IF (LPC%SOLID_PARTICLE) THEN
216216
CALL CALCULATE_ZZ_F(T,DT,PARTICLE_INDEX=IP)
217-
IF (CORRECTOR) CALL DEPOSIT_PARTICLE_MASS(NM,LP,LPC,CALL_HT_1D) ! Add the particle off-gas to the gas phase mesh
217+
IF (CORRECTOR) CALL DEPOSIT_PARTICLE_MASS(NM,LP,LPC) ! Add the particle off-gas to the gas phase mesh
218218
ENDIF
219219

220220
ENDDO PARTICLE_LOOP
@@ -1364,16 +1364,14 @@ END SUBROUTINE CALCULATE_ZZ_F
13641364
!> \param NM Mesh number
13651365
!> \param LP Pointer to Lagrangian Particle derived type variable
13661366
!> \param LPC Pointer to Lagrangian Particle Class
1367-
!> \param CALL_HT_1D Logical indicating if the 1-D heat transfer routine was called
13681367
!> \details Deposit the particle off-gas onto the mesh
13691368

1370-
SUBROUTINE DEPOSIT_PARTICLE_MASS(NM,LP,LPC,CALL_HT_1D)
1369+
SUBROUTINE DEPOSIT_PARTICLE_MASS(NM,LP,LPC)
13711370

13721371
USE PHYSICAL_FUNCTIONS, ONLY: SURFACE_DENSITY,GET_SPECIFIC_HEAT,GET_SENSIBLE_ENTHALPY
13731372
USE OUTPUT_DATA, ONLY: M_DOT,Q_DOT
13741373
INTEGER, INTENT(IN) :: NM
1375-
LOGICAL, INTENT(IN) :: CALL_HT_1D
1376-
REAL(EB) :: RADIUS,AREA_SCALING,M_DOT_SINGLE,CP,MW_RATIO,H_G,ZZ_GET(1:N_TRACKED_SPECIES),M_GAS,LENGTH,WIDTH,H_S_B
1374+
REAL(EB) :: RADIUS,M_DOT_SINGLE,CP,MW_RATIO,H_G,ZZ_GET(1:N_TRACKED_SPECIES),M_GAS,LENGTH,WIDTH,H_S_B
13771375
INTEGER :: NS
13781376
TYPE(BOUNDARY_ONE_D_TYPE), POINTER :: ONE_D
13791377
TYPE(LAGRANGIAN_PARTICLE_TYPE), POINTER :: LP
@@ -1396,7 +1394,6 @@ SUBROUTINE DEPOSIT_PARTICLE_MASS(NM,LP,LPC,CALL_HT_1D)
13961394

13971395
IF (ABS(RADIUS)<TWO_EPSILON_EB) RETURN
13981396

1399-
AREA_SCALING = 1._EB
14001397
IF (LPC%DRAG_LAW == SCREEN_DRAG .OR. LPC%DRAG_LAW == POROUS_DRAG) THEN
14011398
LENGTH = LP%LENGTH
14021399
WIDTH = LP%LENGTH
@@ -1409,26 +1406,10 @@ SUBROUTINE DEPOSIT_PARTICLE_MASS(NM,LP,LPC,CALL_HT_1D)
14091406
B1%AREA = 2._EB*LENGTH*WIDTH
14101407
CASE(SURF_CYLINDRICAL,SURF_INNER_CYLINDRICAL)
14111408
B1%AREA = TWOPI*RADIUS*LENGTH
1412-
IF (SF%THERMAL_BC_INDEX == THERMALLY_THICK) AREA_SCALING = (SF%INNER_RADIUS+SF%THICKNESS)/RADIUS
14131409
CASE(SURF_SPHERICAL)
14141410
B1%AREA = 4._EB*PI*RADIUS**2
1415-
IF (SF%THERMAL_BC_INDEX == THERMALLY_THICK) AREA_SCALING = ((SF%INNER_RADIUS+SF%THICKNESS)/RADIUS)**2
14161411
END SELECT
14171412

1418-
! In PYROLYSIS, all the mass fluxes are based on the INITIAL surface area.
1419-
! Here, correct the mass flux using the CURRENT surface area.
1420-
1421-
IF (CALL_HT_1D) THEN
1422-
B1%M_DOT_G_PP_ADJUST(1:N_TRACKED_SPECIES) = B1%M_DOT_G_PP_ADJUST(1:N_TRACKED_SPECIES)*AREA_SCALING
1423-
B1%M_DOT_G_PP_ACTUAL(1:N_TRACKED_SPECIES) = B1%M_DOT_G_PP_ACTUAL(1:N_TRACKED_SPECIES)*AREA_SCALING
1424-
B1%Q_DOT_G_PP = B1%Q_DOT_G_PP *AREA_SCALING
1425-
B1%Q_DOT_O2_PP = B1%Q_DOT_O2_PP *AREA_SCALING
1426-
IF (LP%OD_INDEX>0) THEN
1427-
ONE_D => BOUNDARY_ONE_D(LP%OD_INDEX)
1428-
ONE_D%M_DOT_S_PP(1:ONE_D%N_MATL) = ONE_D%M_DOT_S_PP(1:ONE_D%N_MATL) *AREA_SCALING
1429-
ENDIF
1430-
ENDIF
1431-
14321413
! Add evaporated particle species to gas phase and compute resulting contribution to the divergence
14331414

14341415
M_GAS = B1%RHO_G/LP%RVC
@@ -2927,9 +2908,16 @@ SUBROUTINE PERFORM_PYROLYSIS
29272908
ENDIF
29282909

29292910
! Sum the mass and heat generation within the solid layers (PPP) and transfer result to the surface (PP).
2911+
! GEOM_FACTOR accounts for cylindrical and spherical geometry. If this is not a Lagrangian particle, scale with
2912+
! the original radius (SF%THICKNESS) because the VENT to which the flux is applied does not change in area.
29302913

29312914
IF (ONE_D%N_LAYERS==1 .AND. REMOVE_LAYER) MF_FRAC(I) = 1._EB
2932-
GEOM_FACTOR = MF_FRAC(I)*(R_S(I-1)**I_GRAD-R_S(I)**I_GRAD)/(I_GRAD*(SF%THICKNESS+SF%INNER_RADIUS)**(I_GRAD-1))
2915+
2916+
IF (PRESENT(PARTICLE_INDEX)) THEN
2917+
GEOM_FACTOR = MF_FRAC(I)*(R_S(I-1)**I_GRAD-R_S(I)**I_GRAD)/(I_GRAD*R_S(0)**(I_GRAD-1))
2918+
ELSE
2919+
GEOM_FACTOR = MF_FRAC(I)*(R_S(I-1)**I_GRAD-R_S(I)**I_GRAD)/(I_GRAD*(SF%THICKNESS+SF%INNER_RADIUS)**(I_GRAD-1))
2920+
ENDIF
29332921

29342922
Q_DOT_G_PP = Q_DOT_G_PP + Q_DOT_G_PPP *GEOM_FACTOR
29352923
Q_DOT_O2_PP = Q_DOT_O2_PP + Q_DOT_O2_PPP*GEOM_FACTOR

0 commit comments

Comments
 (0)