diff --git a/Manuals/FDS_User_Guide/FDS_User_Guide.tex b/Manuals/FDS_User_Guide/FDS_User_Guide.tex index dbae6a77804..2cf9464fab0 100644 --- a/Manuals/FDS_User_Guide/FDS_User_Guide.tex +++ b/Manuals/FDS_User_Guide/FDS_User_Guide.tex @@ -4191,10 +4191,10 @@ \section{Pressure Boundary Conditions} . \end{lstlisting} The use of a {\em dynamic pressure} boundary affects the FDS algorithm as follows. At \ct{OPEN} boundaries, the hydrodynamic pressure (head) $\cH$ is specified as -\begin{eqnarray} -\cH &=& \mbox{\ct{DYNAMIC_PRESSURE}}/\rho_\infty + {|\mathbf{u}|^2}/2 \quad \mbox{(outgoing)} \nonumber \\ -\cH &=& \mbox{\ct{DYNAMIC_PRESSURE}}/\rho_\infty \quad \mbox{(incoming)} -\end{eqnarray} +\begin{align} +\cH &= \text{\tt{DYNAMIC\_PRESSURE}}/\rho_\infty + {|\mathbf{u}|^2}/2 && \text{(outgoing)} & \nonumber \\ +\cH &= \text{\tt{DYNAMIC\_PRESSURE}}/\rho_\infty && \text{(incoming)} & +\end{align} where $\rho_\infty$ is the ambient density and $\mathbf{u}$ is the most recent value of the velocity on the boundary. The \ct{PRESSURE_RAMP} allows for alteration of the pressure as a function of time. Note that you do not need to ramp the pressure up or down starting at zero, like you do for various other ramps. @@ -7742,11 +7742,11 @@ \section{Level Set Model for Wildland Fire Spread} \end{sidewaystable} \subsection{Custom Wind Speed Function} -The default Rothermel-Albini formulation~\cite{Rothermel:1972,Albini:1976} represents the influence of wind on the head fire spread rate as +The default Rothermel-Albini formulation~\cite{Rothermel:1972,Albini:1976} represents the influence of wind on the head fire spread rate as \be R = R_{\rm 0} \, (1+\phi_{\rm W}) \ee -where the no-wind, no-slope spread rate, $R_{\rm 0}$, is increased by a factor $\phi_W$, which is a function of the wind speed. In the default model the wind speed is taken as the value at mid-flame height, $U_{\rm mf}$. +where the no-wind, no-slope spread rate, $R_{\rm 0}$, is increased by a factor $\phi_W$, which is a function of the wind speed. In the default model the wind speed is taken as the value at mid-flame height, $U_{\rm mf}$. This introduces two complications. The first is determining the functional form of $\phi_W$. The default formulation is an empirical function which depends on fuel bed properties. However, this has not been rigorously validated for all possible fuel configurations - the original fit was determined with just three fuel bed types~\cite{Rothermel:1972}. In addition, the relationship assumes a reference wind which is unaffected by the fire, which can be contradictory to the approach of \ct{LEVEL_SET_MODE=4}. Therefore, it may be preferable to specify a custom function $\phi_W$ to better match observational data for a given fuel type. This can be done by specifying a \ct{RAMP} using \ct{VEG_LSET_WIND_RAMP}: \begin{lstlisting} diff --git a/Source/geom.f90 b/Source/geom.f90 index 0f2fc59fe5a..2c01d6265e1 100644 --- a/Source/geom.f90 +++ b/Source/geom.f90 @@ -4349,6 +4349,8 @@ SUBROUTINE GET_EXT_INB_CUTFACES_TO_CFACE CASE(KAXIS) ADDMAT(KAXIS,LOW_IND) = -(ZF_MAX-ZS_MIN) ! -DZ(VT%K1) ADDMAT(KAXIS,HIGH_IND) = (ZF_MAX-ZS_MIN) ! DZ(VT%K2) + CASE DEFAULT + CYCLE VENT_LOOP END SELECT ! CFACE Loop to modify SURF_INDEX in INTERNAL_CFACE_CELLS: CFACE_LOOP_2 : DO CFACE_INDEX_LOCAL=INTERNAL_CFACE_CELLS_LB+1,INTERNAL_CFACE_CELLS_LB+N_INTERNAL_CFACE_CELLS @@ -4360,6 +4362,7 @@ SUBROUTINE GET_EXT_INB_CUTFACES_TO_CFACE IF (BC%Y > Y(VT%J2)+ADDMAT(JAXIS,HIGH_IND)) CYCLE CFACE_LOOP_2 IF (BC%Z < Z(VT%K1)+ADDMAT(KAXIS,LOW_IND )) CYCLE CFACE_LOOP_2 IF (BC%Z > Z(VT%K2)+ADDMAT(KAXIS,HIGH_IND)) CYCLE CFACE_LOOP_2 + CFA%VENT_INDEX = IVENT CFA%SURF_INDEX = VT%SURF_INDEX ENDDO CFACE_LOOP_2 ENDDO VENT_LOOP diff --git a/Source/read.f90 b/Source/read.f90 index 8634af60f9c..c1058c410b3 100644 --- a/Source/read.f90 +++ b/Source/read.f90 @@ -12228,7 +12228,7 @@ SUBROUTINE READ_VENT ! If the VENT is on a GEOM do not reject (further setup in READ_GEOM) - IF (GEOM) REJECT_VENT = .FALSE. + IF (GEOM .AND. .NOT.(TERRAIN_CASE .AND. ALL(XB(1:6)>-1.01E6_EB))) REJECT_VENT = .FALSE. ! If the VENT is rejected, cycle @@ -12584,6 +12584,12 @@ SUBROUTINE READ_VENT CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN ENDIF + ! Special treatment for coloring GEOM surface with HVAC_BOUNDARY + + IF (VT%GEOM .AND. VT%BOUNDARY_TYPE==HVAC_BOUNDARY) THEN + SURFACE(VT%SURF_INDEX)%RGB = (/0,128,0/) ! green + ENDIF + ENDDO VENT_LOOP_2 ! Compute vent areas and check for passive openings @@ -12680,6 +12686,7 @@ SUBROUTINE SET_VENT_DEFAULTS UVW = -1.E12_EB VEL_RMS = 0._EB XYZ = -1.E6_EB +XB = -1.E6_EB END SUBROUTINE SET_VENT_DEFAULTS diff --git a/Verification/FDS_Cases.sh b/Verification/FDS_Cases.sh index adb9f2a1473..377b0235d86 100755 --- a/Verification/FDS_Cases.sh +++ b/Verification/FDS_Cases.sh @@ -880,6 +880,8 @@ $QFDS -d WUI LS_ellipse_0ms_00deg.fds $QFDS -d WUI LS_ellipse_5ms_00deg.fds $QFDS -d WUI LS_ellipse_0ms_30deg.fds $QFDS -d WUI LS_ellipse_5ms_30deg.fds +$QFDS -d WUI LS_wind_ramp_lin.fds +$QFDS -d WUI LS_wind_ramp_quad.fds $QFDS -d WUI LS4_ember_ignition.fds $QFDS -d WUI LS4_ember_yield.fds $QFDS -d WUI Morvan_TGA.fds