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
3 changes: 2 additions & 1 deletion Manuals/FDS_User_Guide/FDS_User_Guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6844,7 +6844,7 @@ \subsection{Pressure Gradient Force}
&RAMP ID='dir', T= 600, F=330 /
&RAMP ID='dir', T=1200, F=350 /
\end{lstlisting}
Here, {\ct T} is time in seconds and {\ct F} is the wind direction in degrees. The {\ct INITIAL\_SPEED} sets the horizontal wind components at the start of the simulation. This is provided as a convenience because it may take on the order of hours of simulation time to slowly increase the wind speed via the pressure gradient force alone. The {\ct INITIAL\_SPEED} only sets the initial wind speed, but has no longer term effect. You may vary the {\ct PRESSURE\_GRADIENT\_FORCE} in time using {\ct RAMP\_PGF\_T}.
Here, {\ct T} is time in seconds and {\ct F} is the wind direction in degrees. The {\ct INITIAL\_SPEED} and {\ct INITIAL\_DIRECTION} set the horizontal wind components at the start of the simulation. This is provided as a convenience because it may take on the order of hours of simulation time to slowly increase the wind speed via the pressure gradient force alone. The {\ct INITIAL\_SPEED} {\ct INITIAL\_DIRECTION} only set the initial wind speed and direction, but has no longer term effect. You may vary the {\ct PRESSURE\_GRADIENT\_FORCE} in time using {\ct RAMP\_PGF\_T}.

There are some applications, like tunnels, where the pressure gradient force is a convenient way to introduce an air flow due to some external force. In such cases, it is sometimes more convenient to use the vector {\ct FORCE\_VECTOR(1:3)} along with the corresponding time ramps {\ct RAMP\_FVX\_T}, {\ct RAMP\_FVY\_T}, and {\ct RAMP\_FVZ\_T} to control each individual component. The {\ct PRESSURE\_GRADIENT\_FORCE} is simply the magnitude of the {\ct FORCE\_VECTOR} with the same units.

Expand Down Expand Up @@ -13673,6 +13673,7 @@ \section{\texorpdfstring{{\tt WIND}}{WIND} (Wind and Atmospheric Parameters)}
{\ct FORCE\_VECTOR(3)} & Real & Section~\ref{info:force_vector} & Pa/m & 0. \\ \hline
{\ct GEOSTROPHIC\_WIND(2)} & Real & Section~\ref{info:geostrophic_wind} & m/s & \\ \hline
{\ct GROUND\_LEVEL} & Real & Section~\ref{info:stratification} & m & 0. \\ \hline
{\ct INITIAL\_DIRECTION} & Real & Section~\ref{info:force_vector} & deg & 270. \\ \hline
{\ct INITIAL\_SPEED} & Real & Section~\ref{info:force_vector} & m/s & 0. \\ \hline
{\ct L} & Real & Section~\ref{info:WIND} & m & 0 \\ \hline
{\ct LAPSE\_RATE} & Real & Section~\ref{info:stratification} & $^\circ$C/m & 0 \\ \hline
Expand Down
6 changes: 1 addition & 5 deletions Source/ccib.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2208,11 +2208,7 @@ SUBROUTINE GET_PRES_CFACE_BCS(NM,T,DT)

! Wind inflow boundary conditions

IF (INITIAL_SPEED>0._EB) THEN
H0 = 0._EB
ELSE
H0 = 0.5_EB*(U0**2+V0**2+W0**2)
ENDIF
H0 = 0.5_EB*(U0**2+V0**2+W0**2)
IF (OPEN_WIND_BOUNDARY) &
H0 = 0.5_EB*((U_WIND(K)+VEL_EDDY)**2 + (V_WIND(K)+VEL_EDDY)**2 + (W_WIND(K)+VEL_EDDY)**2)

Expand Down
1 change: 1 addition & 0 deletions Source/cons.f90
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,7 @@ MODULE GLOBAL_CONSTANTS
REAL(EB) :: V0 !< Wind speed in the \f$ y \f$ direction (m/s)
REAL(EB) :: W0 !< Wind speed in the \f$ z \f$ direction (m/s)
REAL(EB) :: INITIAL_SPEED=-1._EB !< Initial wind speed (m/s) which is assumed to die off
REAL(EB) :: INITIAL_DIRECTION=270._EB !< Initial wind direction (deg)
REAL(EB) :: GVEC(3) !< Gravity vector (m/s2)
REAL(EB) :: FVEC(3)=0._EB !< Force vector (N/m3)
REAL(EB) :: OVEC(3)=0._EB !< Coriolis vector (1/s)
Expand Down
30 changes: 17 additions & 13 deletions Source/init.f90
Original file line number Diff line number Diff line change
Expand Up @@ -360,14 +360,23 @@ SUBROUTINE INITIALIZE_MESH_VARIABLES_1(DT,NM)
CALL COMPUTE_WIND_COMPONENTS(T_BEGIN,NM)

DO K=0,M%KBP1
M%RHO(:,:,K) = M%RHO_0(K)
M%RHOS(:,:,K)= M%RHO_0(K)
M%TMP(:,:,K) = M%TMP_0(K)
M%U(:,:,K) = M%U_WIND(K)
M%V(:,:,K) = M%V_WIND(K)
M%W(:,:,K) = M%W_WIND(K)
M%RHO(:,:,K) = M%RHO_0(K)
M%RHOS(:,:,K) = M%RHO_0(K)
M%TMP(:,:,K) = M%TMP_0(K)
ENDDO

IF (INITIAL_SPEED<0._EB) THEN
DO K=0,M%KBP1
M%U(:,:,K) = M%U_WIND(K)
M%V(:,:,K) = M%V_WIND(K)
M%W(:,:,K) = M%W_WIND(K)
ENDDO
ELSE
M%U = -INITIAL_SPEED*SIN(INITIAL_DIRECTION*DEG2RAD)
M%V = -INITIAL_SPEED*COS(INITIAL_DIRECTION*DEG2RAD)
M%W = 0._EB
ENDIF

! Custom velocity RAMPS (for verification)

IF (I_RAMP_UX>0) THEN
Expand Down Expand Up @@ -425,13 +434,8 @@ SUBROUTINE INITIALIZE_MESH_VARIABLES_1(DT,NM)
M%FVY = 0._EB
M%FVZ = 0._EB
M%KRES = 0._EB
IF (INITIAL_SPEED>0._EB) THEN
M%H = 0._EB
M%HS = 0._EB
ELSE
M%H = 0.5_EB*(U0**2+V0**2+W0**2)
M%HS = 0.5_EB*(U0**2+V0**2+W0**2)
ENDIF
M%H = 0.5_EB*(U0**2+V0**2+W0**2)
M%HS = 0.5_EB*(U0**2+V0**2+W0**2)
M%DDDT = 0._EB
M%D = 0._EB
M%DS = 0._EB
Expand Down
6 changes: 1 addition & 5 deletions Source/pres.f90
Original file line number Diff line number Diff line change
Expand Up @@ -170,11 +170,7 @@ SUBROUTINE PRESSURE_SOLVER_COMPUTE_RHS(T,DT,NM)

! Wind inflow boundary conditions

IF (INITIAL_SPEED>0._EB) THEN
H0 = 0._EB
ELSE
H0 = 0.5_EB*(U0**2+V0**2+W0**2)
ENDIF
H0 = 0.5_EB*(U0**2+V0**2+W0**2)

IF (OPEN_WIND_BOUNDARY) THEN
SELECT CASE(IOR)
Expand Down
14 changes: 7 additions & 7 deletions Source/read.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2077,8 +2077,8 @@ SUBROUTINE READ_WIND
TYPE(RESERVED_RAMPS_TYPE), POINTER :: RRP,RRPX
INTEGER, PARAMETER :: N_MO_PTS=51 ! number of Monin-Obukhov ramp points

NAMELIST /WIND/ CORIOLIS_VECTOR,DIRECTION,FORCE_VECTOR,FYI,GEOSTROPHIC_WIND,GROUND_LEVEL,INITIAL_SPEED,L,LAPSE_RATE,LATITUDE,&
PRESSURE_GRADIENT_FORCE,RAMP_DIRECTION_T,RAMP_DIRECTION_Z,&
NAMELIST /WIND/ CORIOLIS_VECTOR,DIRECTION,FORCE_VECTOR,FYI,GEOSTROPHIC_WIND,GROUND_LEVEL,INITIAL_DIRECTION,INITIAL_SPEED,&
L,LAPSE_RATE,LATITUDE,PRESSURE_GRADIENT_FORCE,RAMP_DIRECTION_T,RAMP_DIRECTION_Z,&
RAMP_PGF_T,RAMP_FVX_T,RAMP_FVY_T,RAMP_FVZ_T,RAMP_SPEED_T,RAMP_SPEED_Z,RAMP_TMP0_Z,&
SIGMA_THETA,SPEED,STRATIFICATION,TAU_THETA,THETA_STAR,TMP_REF,U_STAR,U0,&
USE_ATMOSPHERIC_INTERPOLATION,V0,W0,Z_0,Z_REF
Expand Down Expand Up @@ -2142,14 +2142,14 @@ SUBROUTINE READ_WIND
SPEED = (U_STAR/VON_KARMAN_CONSTANT)*(LOG(Z_REF/Z_0)-PSI_M)
ENDIF

IF (SPEED>0._EB .OR. INITIAL_SPEED>0._EB) THEN
IF (SPEED>0._EB) THEN
IF (SPEED>0._EB) OPEN_WIND_BOUNDARY = .TRUE.
IF (RAMP_DIRECTION_T/='null' .OR. RAMP_DIRECTION_Z/='null') THEN
U0 = MAX(SPEED,INITIAL_SPEED)
V0 = MAX(SPEED,INITIAL_SPEED)
U0 = SPEED
V0 = SPEED
ELSE
U0 = -MAX(SPEED,INITIAL_SPEED)*SIN(DIRECTION*DEG2RAD)
V0 = -MAX(SPEED,INITIAL_SPEED)*COS(DIRECTION*DEG2RAD)
U0 = -SPEED*SIN(DIRECTION*DEG2RAD)
V0 = -SPEED*COS(DIRECTION*DEG2RAD)
ENDIF
ENDIF

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
&RADI RADIATION=F /

! See Ask83 Table 4.7
&WIND INITIAL_SPEED=10.0, DIRECTION=206, L=-691., Z_0=0.08, Z_REF=10., GROUND_LEVEL=0 /
&WIND SPEED=10.0, DIRECTION=206, L=-691., Z_0=0.08, Z_REF=10., GROUND_LEVEL=0 /

! External BCs:
&VENT MB='XMIN',SURF_ID='OPEN'/
Expand Down
2 changes: 1 addition & 1 deletion Validation/Loughborough_Jet_Fires/FDS_Input_Files/jet1.fds
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
&VENT MB='XMIN', SURF_ID='OPEN' /
&VENT MB='XMAX', SURF_ID='OPEN' /

&WIND INITIAL_SPEED=6.3, DIRECTION=271., PRESSURE_GRADIENT_FORCE=0.08 /
&WIND INITIAL_SPEED=6.3, INITIAL_DIRECTION=271., DIRECTION=271., PRESSURE_GRADIENT_FORCE=0.08 /

&SURF ID='GROUND', ROUGHNESS=0.5 /

Expand Down
2 changes: 1 addition & 1 deletion Validation/Loughborough_Jet_Fires/FDS_Input_Files/jet2.fds
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
&VENT MB='XMIN', SURF_ID='OPEN' /
&VENT MB='XMAX', SURF_ID='OPEN' /

&WIND INITIAL_SPEED=6.2, DIRECTION=297., PRESSURE_GRADIENT_FORCE=0.08 /
&WIND INITIAL_SPEED=6.2, INITIAL_DIRECTION=297., DIRECTION=297., PRESSURE_GRADIENT_FORCE=0.08 /

&SURF ID='GROUND', ROUGHNESS=0.5 /

Expand Down
2 changes: 1 addition & 1 deletion Validation/Loughborough_Jet_Fires/FDS_Input_Files/jet3.fds
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
&VENT MB='XMIN', SURF_ID='OPEN' /
&VENT MB='XMAX', SURF_ID='OPEN' /

&WIND INITIAL_SPEED=3.6, DIRECTION=267., PRESSURE_GRADIENT_FORCE=0.08 /
&WIND INITIAL_SPEED=3.6, INITIAL_DIRECTION=267., DIRECTION=267., PRESSURE_GRADIENT_FORCE=0.08 /

&SURF ID='GROUND', ROUGHNESS=0.5 /

Expand Down
10 changes: 4 additions & 6 deletions Verification/Atmospheric_Effects/lee_waves.fds
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,8 @@ It is a two-dimensional calculation of wind flow over a mountain range.

&TIME T_END=6000.0 /

&WIND U0=5.0,LAPSE_RATE=0.005 /
&RADI RADIATION=.FALSE./
&SURF ID='WIND',VEL=-5.0,PROFILE='ATMOSPHERIC',PLE=0. /
&SURF ID='SLIP',FREE_SLIP=.TRUE. /
&WIND SPEED=5.0, LAPSE_RATE=0.005 /
&RADI RADIATION=F /

&OBST XB=2000.0,3000.0,-1.0,1.0, 0.0,100.0/
&OBST XB=2100.0,2900.0,-1.0,1.0,100.0,200.0/
Expand All @@ -26,8 +24,8 @@ It is a two-dimensional calculation of wind flow over a mountain range.
&SLCF PBY=0.0, QUANTITY='VELOCITY', VECTOR=.TRUE. /

&VENT MB='XMAX' ,SURF_ID='OPEN' /
&VENT MB='XMIN', SURF_ID='WIND' /
&VENT MB='ZMAX' ,SURF_ID='SLIP' /
&VENT MB='XMIN', SURF_ID='OPEN' /
&VENT MB='ZMAX' ,SURF_ID='OPEN' /

&TAIL /

2 changes: 1 addition & 1 deletion Verification/Complex_Geometry/geom_stretched_grid.fds
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

&GEOM XB=-1200,-800,-1600,-1200,400,800/ GEOM on stretch mesh

&WIND INITIAL_SPEED=10.0, DIRECTION=206 /
&WIND SPEED=10.0, DIRECTION=206 /

! External BCs:
&VENT MB='XMIN',SURF_ID='OPEN'/
Expand Down