Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Source/cons.f90
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ MODULE GLOBAL_CONSTANTS
LOGICAL :: SPEC_RESTART=.FALSE. !< Initialize tracked species field with values from a file
LOGICAL :: PARTICLE_CFL=.FALSE. !< Include particle velocity as a constraint on time step
LOGICAL :: RTE_SOURCE_CORRECTION=.TRUE. !< Apply a correction to the radiation source term to achieve desired rad fraction
LOGICAL :: OBST_CREATED_OR_REMOVED=.FALSE. !< An obstruction has just been created or removed and wall cells must be reassigned
LOGICAL :: OBST_CREATED_OR_REMOVED=.TRUE. !< An obstruction has just been created or removed and wall cells must be reassigned
LOGICAL :: CHECK_REALIZABILITY=.FALSE.
LOGICAL :: MIN_DEVICES_EXIST=.FALSE.
LOGICAL :: MAX_DEVICES_EXIST=.FALSE.
Expand Down Expand Up @@ -536,7 +536,7 @@ MODULE GLOBAL_CONSTANTS

! Miscellaneous integer constants

INTEGER :: ICYC,ICYC_RESTART=0,NFRAMES,PERIODIC_TEST=0,SIM_MODE=3,TURB_MODEL=0,FISHPAK_BC(3)=-1,&
INTEGER :: ICYC,NFRAMES,PERIODIC_TEST=0,SIM_MODE=3,TURB_MODEL=0,FISHPAK_BC(3)=-1,&
STOP_AT_ITER=0,WALL_INCREMENT=2,WALL_COUNTER=0,&
CLIP_DT_RESTRICTIONS_MAX=5,BNDF_TIME_INTEGRALS=0

Expand Down
2 changes: 1 addition & 1 deletion Source/divg.f90
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ SUBROUTINE DIVERGENCE_PART_1(T,DT,NM)

! Determine if pressure ZONEs have merged

IF (N_ZONE>0) CALL MERGE_PRESSURE_ZONES
IF (N_ZONE>0 .AND. OBST_CREATED_OR_REMOVED) CALL MERGE_PRESSURE_ZONES

! Compute normal component of velocity at boundaries, U_NORMAL_S in the PREDICTOR step, U_NORMAL in the CORRECTOR.

Expand Down
67 changes: 27 additions & 40 deletions Source/main.f90
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,6 @@ PROGRAM FDS
! Potentially read data from a previous calculation

IF (RESTART) THEN
ICYC_RESTART=1
DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
CALL READ_RESTART(T,DT,NM)
ENDDO
Expand Down Expand Up @@ -437,14 +436,6 @@ PROGRAM FDS

ENDIF

! Compute divergence just in case the flow field is not initialized to ambient

CALL INITIALIZE_DIVERGENCE_INTEGRALS

DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
CALL DIVERGENCE_PART_1(T_BEGIN,DT,NM)
ENDDO

! Initialize particle distributions

CALL GENERATE_PARTICLE_DISTRIBUTIONS
Expand Down Expand Up @@ -511,10 +502,6 @@ PROGRAM FDS
IF (MY_RANK==0 .AND. VERBOSE) CALL VERBOSE_PRINTOUT('Completed DUMP_MESH_OUTPUTS')
ENDIF

! If there are zones and HVAC pass PSUM

IF (HVAC_SOLVE .AND. N_ZONE>0 .AND. .NOT.SOLID_PHASE_ONLY) CALL EXCHANGE_DIVERGENCE_INFO

! Make an initial dump of global output quantities

IF (.NOT.RESTART) THEN
Expand All @@ -527,6 +514,18 @@ PROGRAM FDS

IF (.NOT.RESTART) CALL CREATE_OR_REMOVE_OBSTRUCTIONS

! Compute divergence just in case the flow field is not initialized to ambient

CALL INITIALIZE_DIVERGENCE_INTEGRALS

DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
CALL DIVERGENCE_PART_1(T_BEGIN,DT,NM)
ENDDO

IF (HVAC_SOLVE .AND. N_ZONE>0 .AND. .NOT.SOLID_PHASE_ONLY) CALL EXCHANGE_DIVERGENCE_INFO

CALL GLOBAL_MATRIX_REASSIGN

! Write out character strings to .smv file

CALL WRITE_STRINGS
Expand Down Expand Up @@ -685,10 +684,6 @@ PROGRAM FDS

IF (N_ZONE>0 .AND. .NOT.SOLID_PHASE_ONLY) CALL EXCHANGE_DIVERGENCE_INFO

! Update global pressure matrices after zone connections

IF ((ICYC==1 .OR. ICYC_RESTART==1) .AND. FIRST_PASS) CALL GLOBAL_MATRIX_REASSIGN

! Finish the divergence calculation

FINISH_DIVERGENCE_LOOP: DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
Expand Down Expand Up @@ -1620,7 +1615,7 @@ END SUBROUTINE CREATE_OR_REMOVE_OBSTRUCTIONS

SUBROUTINE GLOBAL_MATRIX_REASSIGN

IF (OBST_CREATED_OR_REMOVED .OR. ICYC_RESTART==1) THEN
IF (OBST_CREATED_OR_REMOVED .OR. ICYC==1) THEN
SELECT CASE (PRES_FLAG)
CASE (ULMAT_FLAG)
DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
Expand All @@ -1638,7 +1633,6 @@ SUBROUTINE GLOBAL_MATRIX_REASSIGN
CALL STOP_CHECK(1)
END SELECT
OBST_CREATED_OR_REMOVED = .FALSE.
ICYC_RESTART=0
ENDIF

END SUBROUTINE GLOBAL_MATRIX_REASSIGN
Expand Down Expand Up @@ -1808,10 +1802,18 @@ END SUBROUTINE END_FDS

SUBROUTINE INITIALIZE_DIVERGENCE_INTEGRALS

INTEGER :: IPZ

USUM = 0._EB
PSUM = 0._EB
DSUM = 0._EB
CONNECTED_ZONES = .FALSE.

IF (OBST_CREATED_OR_REMOVED) THEN
CONNECTED_ZONES = .FALSE.
DO IPZ=0,N_ZONE
CONNECTED_ZONES(IPZ,IPZ) = .TRUE.
ENDDO
ENDIF

END SUBROUTINE INITIALIZE_DIVERGENCE_INTEGRALS

Expand All @@ -1821,13 +1823,12 @@ END SUBROUTINE INITIALIZE_DIVERGENCE_INTEGRALS

SUBROUTINE EXCHANGE_DIVERGENCE_INFO

INTEGER :: IPZ,IOPZ,IOPZ2
INTEGER :: IPZ
REAL(EB) :: TNOW
LOGICAL :: NEW_CONNECTION

TNOW = CURRENT_TIME()

! Sum up the divergence integrals over the MPI processes
! Sum up the divergence integrals and zone connection matrix over the MPI processes

IF (N_MPI_PROCESSES>1) THEN
CALL MPI_ALLREDUCE(MPI_IN_PLACE,DSUM,N_ZONE,MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,IERR)
Expand All @@ -1838,25 +1839,11 @@ SUBROUTINE EXCHANGE_DIVERGENCE_INFO

! Connect zones to others which are not directly connected

NEW_CONNECTION = .TRUE.
DO WHILE (NEW_CONNECTION)
NEW_CONNECTION = .FALSE.
IF (OBST_CREATED_OR_REMOVED) THEN
DO IPZ=1,N_ZONE
DO IOPZ=1,N_ZONE
IF (IOPZ==IPZ) CYCLE
IF (CONNECTED_ZONES(IPZ,IOPZ)) THEN
DO IOPZ2=0,N_ZONE
IF (IOPZ==IOPZ2) CYCLE
IF (CONNECTED_ZONES(IOPZ,IOPZ2)) THEN
IF (.NOT.CONNECTED_ZONES(IPZ,IOPZ2)) NEW_CONNECTION = .TRUE.
CONNECTED_ZONES(IPZ,IOPZ2) = .TRUE.
CONNECTED_ZONES(IOPZ2,IPZ) = .TRUE.
ENDIF
ENDDO
ENDIF
ENDDO
CONNECTED_ZONES = MATMUL(CONNECTED_ZONES,CONNECTED_ZONES)
ENDDO
ENDDO
ENDIF

T_USED(11)=T_USED(11) + CURRENT_TIME() - TNOW
END SUBROUTINE EXCHANGE_DIVERGENCE_INFO
Expand Down