@@ -2043,13 +2043,22 @@ SUBROUTINE SOLID_HEAT_TRANSFER(NM,T,DT_BC,PARTICLE_INDEX,WALL_INDEX,CFACE_INDEX,
20432043B1% N_SUBSTEPS = 1
20442044ONE_D% DELTA_TMP = 0._EB
20452045
2046+ ! Compute number of cells and density vector
2047+ NWP = SUM (ONE_D% N_LAYER_CELLS(1 :ONE_D% N_LAYERS))
2048+ RHO_S = 0._EB
2049+ DO I = 1 ,NWP
2050+ DO N= 1 ,ONE_D% N_MATL
2051+ RHO_S(I)= RHO_S(I)+ ONE_D% MATL_COMP(N)% RHO(I)
2052+ ENDDO
2053+ ENDDO
2054+
20462055! Compute initial thermal properties for Fo number calculation
20472056! CHECK_FO=F by default
20482057! CHECK_FO=T enforces near explicit time step accuracy (Forward-Euler would require 1/2 DT_FO)
20492058
2059+
20502060CHECK_FO_IF: IF (CHECK_FO) THEN
20512061 ONE_D% K_S = 0._EB
2052- RHO_S = 0._EB
20532062 ONE_D% RHO_C_S = 0._EB
20542063 POINT_LOOP0: DO I= 1 ,NWP
20552064 VOLSUM = 0._EB
@@ -2060,7 +2069,6 @@ SUBROUTINE SOLID_HEAT_TRANSFER(NM,T,DT_BC,PARTICLE_INDEX,WALL_INDEX,CFACE_INDEX,
20602069 VOLSUM = VOLSUM + ONE_D% MATL_COMP(N)% RHO(I)/ RHO_ADJUSTED(LAYER_INDEX(I),N)
20612070 ONE_D% K_S(I) = ONE_D% K_S(I) + ONE_D% MATL_COMP(N)% RHO(I)* ML% K_S(ITMP)/ RHO_ADJUSTED(LAYER_INDEX(I),N)
20622071 ONE_D% RHO_C_S(I) = ONE_D% RHO_C_S(I) + ONE_D% MATL_COMP(N)% RHO(I)* ML% C_S(ITMP)
2063- RHO_S(I) = RHO_S(I) + ONE_D% MATL_COMP(N)% RHO(I)
20642072 ENDDO MATERIAL_LOOP0
20652073 IF (SF% PACKING_RATIO(LAYER_INDEX(I))>0._EB ) ONE_D% K_S(I) = ONE_D% K_S(I)* SF% PACKING_RATIO(LAYER_INDEX(I))
20662074
@@ -2079,12 +2087,11 @@ SUBROUTINE SOLID_HEAT_TRANSFER(NM,T,DT_BC,PARTICLE_INDEX,WALL_INDEX,CFACE_INDEX,
20792087 LAYER_DIVIDE = SF% LAYER_DIVIDE
20802088
20812089 COMPUTE_GRID: IF (ONE_D% PYROLYSIS_MODEL== PYROLYSIS_PREDICTED .OR. SF% HT_DIM> 1 .OR. SF% VARIABLE_THICKNESS) THEN
2082- NWP = SUM (ONE_D% N_LAYER_CELLS(1 :ONE_D% N_LAYERS))
20832090 CALL GET_WALL_NODE_WEIGHTS(NWP,ONE_D% N_LAYERS,ONE_D% N_LAYER_CELLS(1 :ONE_D% N_LAYERS),ONE_D% LAYER_THICKNESS,SF% GEOMETRY, &
20842091 ONE_D% X(0 :NWP),LAYER_DIVIDE,DX_S(1 :NWP),RDX_S(0 :NWP+1 ),RDXN_S(0 :NWP),DX_WGT_S(0 :NWP),DXF,DXB,&
20852092 LAYER_INDEX(0 :NWP+1 ),MF_FRAC(1 :NWP),SF% INNER_RADIUS,ONE_D% LAYER_DIVIDE_DEPTH)
20862093 ELSE COMPUTE_GRID
2087- NWP = SF% N_CELLS_INI
2094+ ! NWP = SF%N_CELLS_INI
20882095 DXF = SF% DXF
20892096 DXB = SF% DXB
20902097 DX_S(1 :NWP) = SF% DX(1 :NWP)
@@ -2413,6 +2420,25 @@ SUBROUTINE SOLID_HEAT_TRANSFER(NM,T,DT_BC,PARTICLE_INDEX,WALL_INDEX,CFACE_INDEX,
24132420
24142421 ENDDO POINT_LOOP2
24152422
2423+ ! Delamination layer fall-off
2424+
2425+ I = 0
2426+ DO NL= 1 ,ONE_D% N_LAYERS
2427+ IF (ONE_D% LAYER_THICKNESS(NL).GT. ONE_D% MIN_LAYER_THICKNESS(NL) .AND. &
2428+ (ONE_D% TMP(I+ ONE_D% N_LAYER_CELLS(NL)) > SF% FALLOFF_TMP(NL)) .OR. &
2429+ ( RHO_S(I+ ONE_D% N_LAYER_CELLS(NL)) < SF% FALLOFF_DENSITY(NL))) THEN
2430+ REGRID_FACTOR(1 :I+ ONE_D% N_LAYER_CELLS(NL))= 0._EB
2431+ ONE_D% RHO_C_S(1 :I+ ONE_D% N_LAYER_CELLS(NL))= 0._EB
2432+ Q_S(1 :I+ ONE_D% N_LAYER_CELLS(NL))= 0._EB
2433+ DO N= 1 ,ONE_D% N_MATL
2434+ ONE_D% MATL_COMP(N)% RHO(1 :I+ ONE_D% N_LAYER_CELLS(NL))= 0._EB
2435+ ENDDO
2436+ ONE_D% TMP(I+1 :I+ ONE_D% N_LAYER_CELLS(NL))= ONE_D% TMP(I+ ONE_D% N_LAYER_CELLS(NL)+ 1 )
2437+ B1% TMP_F = ONE_D% TMP(I+ ONE_D% N_LAYER_CELLS(NL)+ 1 )
2438+ ENDIF
2439+ I = I + ONE_D% N_LAYER_CELLS(NL)
2440+ ENDDO
2441+
24162442 ! Compute new coordinates if the solid changes thickness. Save new coordinates in X_S_NEW.
24172443 ! Remesh layer if any node goes to zero thickness
24182444
@@ -2465,7 +2491,7 @@ SUBROUTINE SOLID_HEAT_TRANSFER(NM,T,DT_BC,PARTICLE_INDEX,WALL_INDEX,CFACE_INDEX,
24652491 ENDIF
24662492 I = I + ONE_D% N_LAYER_CELLS(NL)
24672493 ENDDO
2468-
2494+
24692495 ! If any nodes go to zero, apportion Q_S to surrounding nodes.
24702496
24712497 IF (ANY (CELL_ZERO(1 :ONE_D% N_LAYERS)) .AND. NWP > 1 ) THEN
@@ -2661,7 +2687,6 @@ SUBROUTINE SOLID_HEAT_TRANSFER(NM,T,DT_BC,PARTICLE_INDEX,WALL_INDEX,CFACE_INDEX,
26612687 CALL INTERPOLATE_WALL_ARRAY(N_CELLS,NWP,NWP_NEW,INT_WGT,Q_S(1 :N_CELLS))
26622688 CALL INTERPOLATE_WALL_ARRAY(N_CELLS,NWP,NWP_NEW,INT_WGT,RHO_H_S(1 :N_CELLS))
26632689 CALL INTERPOLATE_WALL_ARRAY(N_CELLS,NWP,NWP_NEW,INT_WGT,TMP_S(1 :N_CELLS))
2664-
26652690 DO I= 1 ,NWP_NEW
26662691 VOL = (THICKNESS+ SF% INNER_RADIUS- X_S_NEW(I-1 ))** I_GRAD- (THICKNESS+ SF% INNER_RADIUS- X_S_NEW(I))** I_GRAD
26672692 TMP_S(I) = TMP_S(I) / VOL
0 commit comments