diff --git a/Source/dump.f90 b/Source/dump.f90 index b864ef80931..71e25a7147c 100644 --- a/Source/dump.f90 +++ b/Source/dump.f90 @@ -2343,6 +2343,10 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE ENDIF ENDIF + ! Render GEOM vents using SURF properties (that is, do not draw GEOM vents in Smokeview) + + IF (VT%GEOM) VT%TYPE_INDICATOR = -2 + ENDDO VENT_LOOP ! Look for interpolated mesh boundaries and ensure that Smokeview leaves these blank (VENT_INDICES=-1). diff --git a/Source/read.f90 b/Source/read.f90 index 254c8b784b3..cb70a70e639 100644 --- a/Source/read.f90 +++ b/Source/read.f90 @@ -11818,7 +11818,7 @@ SUBROUTINE READ_VENT INTEGER :: N,N_TOTAL,NM,NNN,IOR,I1,I2,J1,J2,K1,K2,RGB(3),N_EDDY,II,JJ,KK,OBST_INDEX,N_EXPLICIT,N_IMPLICIT_VENTS,I_MODE,& N_ORIGINAL_VENTS,IC0,IC1,IC REAL(EB) :: SPREAD_RATE,TRANSPARENCY,XYZ(3),TMP_EXTERIOR,DYNAMIC_PRESSURE,XB_USER(6),XB_MESH(6), & - REYNOLDS_STRESS(3,3),L_EDDY,VEL,VEL_RMS,L_EDDY_IJ(3,3),UVW(3),RADIUS + REYNOLDS_STRESS(3,3),L_EDDY,VEL_RMS,L_EDDY_IJ(3,3),UVW(3),RADIUS CHARACTER(LABEL_LENGTH) :: ID,DEVC_ID,CTRL_ID,SURF_ID,PRESSURE_RAMP,TMP_EXTERIOR_RAMP,MULT_ID,OBST_ID CHARACTER(25) :: COLOR TYPE(MULTIPLIER_TYPE), POINTER :: MR @@ -11969,12 +11969,12 @@ SUBROUTINE READ_VENT ! Check that the vent is properly specified - IF (ABS(XB(3)-XB(4))<=SPACING(XB(4)) .AND. TWO_D .AND. N_TOTAL>N_IMPLICIT_VENTS) THEN + IF (ABS(XB(3)-XB(4))<=SPACING(XB(4)) .AND. TWO_D .AND. N_TOTAL>N_IMPLICIT_VENTS) THEN WRITE(MESSAGE,'(3A)') 'ERROR(809): VENT ',TRIM(ID),' cannot be specified on a y boundary in a 2D calc.' CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN ENDIF - IF (ABS(XB(1)-XB(2))>SPACING(XB(2)) .AND. ABS(XB(3)-XB(4))>SPACING(XB(4)).AND.ABS(XB(5)-XB(6))>SPACING(XB(6)) ) THEN + IF (ABS(XB(1)-XB(2))>SPACING(XB(2)).AND.ABS(XB(3)-XB(4))>SPACING(XB(4)).AND.ABS(XB(5)-XB(6))>SPACING(XB(6))) THEN WRITE(MESSAGE,'(3A)') 'ERROR(810): VENT ',TRIM(ID),' must be a plane.' CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN ENDIF @@ -12112,6 +12112,10 @@ SUBROUTINE READ_VENT IF (BLOCKED) REJECT_VENT = .TRUE. ENDIF + ! If the VENT is on a GEOM do not reject (further setup in READ_GEOM) + + IF (GEOM) REJECT_VENT = .FALSE. + ! If the VENT is rejected, cycle IF (REJECT_VENT) THEN @@ -12413,7 +12417,7 @@ SUBROUTINE READ_VENT ENDDO ENDIF - IF (VT%IOR==0) THEN + IF (VT%IOR==0 .AND. .NOT.VT%GEOM) THEN WRITE(MESSAGE,'(3A)') 'ERROR(818): VENT ',TRIM(VT%ID),' requires an orientation index, IOR.' CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN ENDIF @@ -12461,7 +12465,7 @@ SUBROUTINE READ_VENT ! Check UVW - IF (ABS(VT%UVW(ABS(VT%IOR))) < TWO_EPSILON_EB) THEN + IF (ABS(VT%UVW(ABS(VT%IOR))) < TWO_EPSILON_EB .AND. .NOT.VT%GEOM) THEN WRITE(MESSAGE,'(3A)') 'ERROR(821): VENT ',TRIM(VT%ID),' cannot have normal component of UVW equal to 0.' CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN ENDIF @@ -12560,7 +12564,6 @@ SUBROUTINE SET_VENT_DEFAULTS TMP_EXTERIOR_RAMP = 'null' TRANSPARENCY = 1._EB UVW = -1.E12_EB -VEL = -1.E12_EB ! experimental (rjm) VEL_RMS = 0._EB XYZ = -1.E6_EB