diff --git a/Source/wall.f90 b/Source/wall.f90 index 2638b0c2c14..0c10fa1ed16 100644 --- a/Source/wall.f90 +++ b/Source/wall.f90 @@ -214,7 +214,7 @@ SUBROUTINE WALL_BC(T,DT,NM) IF (LPC%SOLID_PARTICLE) THEN CALL CALCULATE_ZZ_F(T,DT,PARTICLE_INDEX=IP) - IF (CORRECTOR) CALL DEPOSIT_PARTICLE_MASS(NM,LP,LPC,CALL_HT_1D) ! Add the particle off-gas to the gas phase mesh + IF (CORRECTOR) CALL DEPOSIT_PARTICLE_MASS(NM,LP,LPC) ! Add the particle off-gas to the gas phase mesh ENDIF ENDDO PARTICLE_LOOP @@ -1364,16 +1364,14 @@ END SUBROUTINE CALCULATE_ZZ_F !> \param NM Mesh number !> \param LP Pointer to Lagrangian Particle derived type variable !> \param LPC Pointer to Lagrangian Particle Class -!> \param CALL_HT_1D Logical indicating if the 1-D heat transfer routine was called !> \details Deposit the particle off-gas onto the mesh -SUBROUTINE DEPOSIT_PARTICLE_MASS(NM,LP,LPC,CALL_HT_1D) +SUBROUTINE DEPOSIT_PARTICLE_MASS(NM,LP,LPC) USE PHYSICAL_FUNCTIONS, ONLY: SURFACE_DENSITY,GET_SPECIFIC_HEAT,GET_SENSIBLE_ENTHALPY USE OUTPUT_DATA, ONLY: M_DOT,Q_DOT INTEGER, INTENT(IN) :: NM -LOGICAL, INTENT(IN) :: CALL_HT_1D -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 +REAL(EB) :: RADIUS,M_DOT_SINGLE,CP,MW_RATIO,H_G,ZZ_GET(1:N_TRACKED_SPECIES),M_GAS,LENGTH,WIDTH,H_S_B INTEGER :: NS TYPE(BOUNDARY_ONE_D_TYPE), POINTER :: ONE_D TYPE(LAGRANGIAN_PARTICLE_TYPE), POINTER :: LP @@ -1396,7 +1394,6 @@ SUBROUTINE DEPOSIT_PARTICLE_MASS(NM,LP,LPC,CALL_HT_1D) IF (ABS(RADIUS)0) THEN - ONE_D => BOUNDARY_ONE_D(LP%OD_INDEX) - ONE_D%M_DOT_S_PP(1:ONE_D%N_MATL) = ONE_D%M_DOT_S_PP(1:ONE_D%N_MATL) *AREA_SCALING - ENDIF -ENDIF - ! Add evaporated particle species to gas phase and compute resulting contribution to the divergence M_GAS = B1%RHO_G/LP%RVC @@ -2927,9 +2908,16 @@ SUBROUTINE PERFORM_PYROLYSIS ENDIF ! Sum the mass and heat generation within the solid layers (PPP) and transfer result to the surface (PP). + ! GEOM_FACTOR accounts for cylindrical and spherical geometry. If this is not a Lagrangian particle, scale with + ! the original radius (SF%THICKNESS) because the VENT to which the flux is applied does not change in area. IF (ONE_D%N_LAYERS==1 .AND. REMOVE_LAYER) MF_FRAC(I) = 1._EB - 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)) + + IF (PRESENT(PARTICLE_INDEX)) THEN + GEOM_FACTOR = MF_FRAC(I)*(R_S(I-1)**I_GRAD-R_S(I)**I_GRAD)/(I_GRAD*R_S(0)**(I_GRAD-1)) + ELSE + 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)) + ENDIF Q_DOT_G_PP = Q_DOT_G_PP + Q_DOT_G_PPP *GEOM_FACTOR Q_DOT_O2_PP = Q_DOT_O2_PP + Q_DOT_O2_PPP*GEOM_FACTOR