Skip to content

Commit c80f876

Browse files
authored
Merge pull request #14613 from mcgratta/master
FDS Source: Update all rad angles if OBST created or removed
2 parents 2bc8919 + 66384f8 commit c80f876

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

Source/cons.f90

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ MODULE GLOBAL_CONSTANTS
177177

178178
LOGICAL :: HVAC_DEBUG=.FALSE. !< Output known hvac values to smokeview
179179
LOGICAL :: RADIATION=.TRUE. !< Perform radiation transport
180+
LOGICAL :: UPDATE_ALL_ANGLES=.FALSE. !< Update all radiation angles the next time the solver is called
180181
LOGICAL :: INCLUDE_PYROLYSIS=.FALSE. !< Solid phase pyrolysis is included in the simulation
181182
LOGICAL :: EXCHANGE_RADIATION=.FALSE. !< Do an MPI radiation exchange at this time step
182183
LOGICAL :: EXCHANGE_OBST_MASS=.FALSE. !< Exchange mass loss information for obstructions bordering interpolated meshes

Source/main.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1573,7 +1573,7 @@ SUBROUTINE CREATE_OR_REMOVE_OBSTRUCTIONS
15731573
DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
15741574
CALL REASSIGN_WALL_CELLS(T,NM)
15751575
ENDDO
1576-
1576+
UPDATE_ALL_ANGLES = .TRUE. ! Update all radiation angles the next time radiation is updated
15771577
ENDIF
15781578

15791579
END SUBROUTINE CREATE_OR_REMOVE_OBSTRUCTIONS

Source/radi.f90

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3525,7 +3525,7 @@ SUBROUTINE RADIATION_FVM
35253525

35263526
! Check if it time to update radiation intensity field
35273527

3528-
IF ( MOD(RAD_CALL_COUNTER,TIME_STEP_INCREMENT)==0 .OR. INITIALIZATION_PHASE .OR. ICYC==1) THEN
3528+
IF ( MOD(RAD_CALL_COUNTER,TIME_STEP_INCREMENT)==0 .OR. INITIALIZATION_PHASE .OR. ICYC==1 .OR. UPDATE_ALL_ANGLES) THEN
35293529
UPDATE_INTENSITY = .TRUE.
35303530
EXCHANGE_RADIATION = .TRUE.
35313531
ELSE
@@ -3558,7 +3558,7 @@ SUBROUTINE RADIATION_FVM
35583558
IF (UPDATE_INTENSITY) THEN
35593559
DO IW=1,N_INTERNAL_WALL_CELLS+N_EXTERNAL_WALL_CELLS
35603560
WC => WALL(IW)
3561-
IF (WC%B1_INDEX==0) CYCLE
3561+
IF (WC%B1_INDEX==0 .OR. WC%BOUNDARY_TYPE==NULL_BOUNDARY) CYCLE
35623562
B1 => BOUNDARY_PROP1(WC%B1_INDEX)
35633563
B1%Q_RAD_IN = 0._EB
35643564
SF => SURFACE(WALL(IW)%SURF_INDEX)
@@ -3949,7 +3949,7 @@ SUBROUTINE RADIATION_FVM
39493949
! If updating intensities first time, sweep ALL angles
39503950

39513951
N_UPDATES = 1
3952-
IF (INITIALIZATION_PHASE .OR. ICYC==1) N_UPDATES = ANGLE_INCREMENT
3952+
IF (INITIALIZATION_PHASE .OR. ICYC==1 .OR. UPDATE_ALL_ANGLES) N_UPDATES = ANGLE_INCREMENT
39533953

39543954
UPDATE_LOOP: DO I_UIID = 1,N_UPDATES
39553955

@@ -4580,6 +4580,10 @@ SUBROUTINE RADIATION_FVM
45804580

45814581
ENDIF
45824582

4583+
! UPDATE_ALL_ANGLES is a one-time only logical. If needed again, it will be reset again.
4584+
4585+
UPDATE_ALL_ANGLES = .FALSE.
4586+
45834587
END SUBROUTINE RADIATION_FVM
45844588

45854589

0 commit comments

Comments
 (0)