Skip to content

Commit d7fcdee

Browse files
authored
Merge pull request #15625 from rmcdermo/master
FDS Source: fix VEL_EDDY for wind boundaries
2 parents bb4324b + e798780 commit d7fcdee

File tree

1 file changed

+29
-54
lines changed

1 file changed

+29
-54
lines changed

Source/velo.f90

Lines changed: 29 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1815,7 +1815,7 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
18151815
LOGICAL, INTENT(IN) :: APPLY_TO_ESTIMATED_VARIABLES
18161816
REAL(EB) :: MUA,TSI,WGT,T_NOW,RAMP_T,OMW,MU_WALL,RHO_WALL,SLIP_COEF,VEL_T, &
18171817
UUP(2),UUM(2),DXX(2),MU_DUIDXJ(-2:2),DUIDXJ(-2:2),PROFILE_FACTOR,VEL_GAS,VEL_GHOST, &
1818-
MU_DUIDXJ_USE(2),DUIDXJ_USE(2),VEL_EDDY,U_TAU,Y_PLUS,U_NORM,U_WIND_LOC,V_WIND_LOC,W_WIND_LOC,&
1818+
MU_DUIDXJ_USE(2),DUIDXJ_USE(2),VEL_EDDY,U_TAU,Y_PLUS,U_NORM, &
18191819
DRAG_FACTOR,HT_SCALE_FACTOR,VEG_HT,VEL_MF
18201820
INTEGER :: NOM(2),IIO(2),JJO(2),KKO(2),IE,II,JJ,KK,IEC,IOR,IWM,IWP,ICMM,ICMP,ICPM,ICPP,ICD,ICDO,IVL,I_SGN, &
18211821
VELOCITY_BC_INDEX,IIGM,JJGM,KKGM,IIGP,JJGP,KKGP,SURF_INDEXM,SURF_INDEXP,ITMP,ICD_SGN,ICDO_SGN, &
@@ -2035,68 +2035,41 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
20352035

20362036
VEL_EDDY = 0._EB
20372037
SYNTHETIC_EDDY_IF_1: IF (SYNTHETIC_EDDY_METHOD) THEN
2038-
U_WIND_LOC = 0._EB
2039-
V_WIND_LOC = 0._EB
2040-
W_WIND_LOC = 0._EB
20412038
IS_SELECT_1: SELECT CASE(IS) ! unsigned vent orientation
20422039
CASE(1) ! yz plane
20432040
SELECT CASE(IEC) ! edge orientation
20442041
CASE(2)
2045-
IF (OPEN_WIND_BOUNDARY) THEN
2046-
U_WIND_LOC = 0.5_EB*(U_WIND(KK)+U_WIND(KK+1))
2047-
W_WIND_LOC = 0.5_EB*(W_WIND(KK)+W_WIND(KK+1))
2048-
ENDIF
2049-
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%U_EDDY(JJ,KK)+VT%U_EDDY(JJ,KK+1)) + U_WIND_LOC
2050-
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%W_EDDY(JJ,KK)+VT%W_EDDY(JJ,KK+1)) + W_WIND_LOC
2042+
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%U_EDDY(JJ,KK)+VT%U_EDDY(JJ,KK+1))
2043+
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%W_EDDY(JJ,KK)+VT%W_EDDY(JJ,KK+1))
20512044
CASE(3)
2052-
IF (OPEN_WIND_BOUNDARY) THEN
2053-
V_WIND_LOC = V_WIND(KK)
2054-
U_WIND_LOC = U_WIND(KK)
2055-
ENDIF
2056-
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%V_EDDY(JJ,KK)+VT%V_EDDY(JJ+1,KK)) + V_WIND_LOC
2057-
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%U_EDDY(JJ,KK)+VT%U_EDDY(JJ+1,KK)) + U_WIND_LOC
2045+
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%V_EDDY(JJ,KK)+VT%V_EDDY(JJ+1,KK))
2046+
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%U_EDDY(JJ,KK)+VT%U_EDDY(JJ+1,KK))
20582047
END SELECT
20592048
CASE(2) ! zx plane
20602049
SELECT CASE(IEC)
20612050
CASE(3)
2062-
IF (OPEN_WIND_BOUNDARY) THEN
2063-
V_WIND_LOC = V_WIND(KK)
2064-
U_WIND_LOC = U_WIND(KK)
2065-
ENDIF
2066-
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%V_EDDY(II,KK)+VT%V_EDDY(II+1,KK)) + V_WIND_LOC
2067-
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%U_EDDY(II,KK)+VT%U_EDDY(II+1,KK)) + U_WIND_LOC
2051+
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%V_EDDY(II,KK)+VT%V_EDDY(II+1,KK))
2052+
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%U_EDDY(II,KK)+VT%U_EDDY(II+1,KK))
20682053
CASE(1)
2069-
IF (OPEN_WIND_BOUNDARY) THEN
2070-
W_WIND_LOC = 0.5_EB*(W_WIND(KK)+W_WIND(KK+1))
2071-
V_WIND_LOC = 0.5_EB*(V_WIND(KK)+V_WIND(KK+1))
2072-
ENDIF
2073-
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%W_EDDY(II,KK)+VT%W_EDDY(II,KK+1)) + W_WIND_LOC
2074-
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%V_EDDY(II,KK)+VT%V_EDDY(II,KK+1)) + V_WIND_LOC
2054+
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%W_EDDY(II,KK)+VT%W_EDDY(II,KK+1))
2055+
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%V_EDDY(II,KK)+VT%V_EDDY(II,KK+1))
20752056
END SELECT
20762057
CASE(3) ! xy plane
20772058
SELECT CASE(IEC)
20782059
CASE(1)
2079-
IF (OPEN_WIND_BOUNDARY) THEN
2080-
W_WIND_LOC = W_WIND(KK)
2081-
V_WIND_LOC = V_WIND(KK)
2082-
ENDIF
2083-
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%W_EDDY(II,JJ)+VT%W_EDDY(II,JJ+1)) + W_WIND_LOC
2084-
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%V_EDDY(II,JJ)+VT%V_EDDY(II,JJ+1)) + V_WIND_LOC
2060+
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%W_EDDY(II,JJ)+VT%W_EDDY(II,JJ+1))
2061+
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%V_EDDY(II,JJ)+VT%V_EDDY(II,JJ+1))
20852062
CASE(2)
2086-
IF (OPEN_WIND_BOUNDARY) THEN
2087-
U_WIND_LOC = U_WIND(KK)
2088-
W_WIND_LOC = W_WIND(KK)
2089-
ENDIF
2090-
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%U_EDDY(II,JJ)+VT%U_EDDY(II+1,JJ)) + U_WIND_LOC
2091-
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%W_EDDY(II,JJ)+VT%W_EDDY(II+1,JJ)) + W_WIND_LOC
2063+
IF (ICD==1) VEL_EDDY = 0.5_EB*(VT%U_EDDY(II,JJ)+VT%U_EDDY(II+1,JJ))
2064+
IF (ICD==2) VEL_EDDY = 0.5_EB*(VT%W_EDDY(II,JJ)+VT%W_EDDY(II+1,JJ))
20922065
END SELECT
20932066
END SELECT IS_SELECT_1
20942067
ENDIF SYNTHETIC_EDDY_IF_1
20952068

20962069
! OPEN boundary conditions, both varieties, with and without a wind
20972070

20982071
OPEN_AND_WIND_BC: IF ((IWM==0 .OR. WALL(IWM)%BOUNDARY_TYPE==OPEN_BOUNDARY) .AND. &
2099-
(IWP==0 .OR. WALL(IWP)%BOUNDARY_TYPE==OPEN_BOUNDARY) .AND. .NOT.SYNTHETIC_EDDY_METHOD) THEN
2072+
(IWP==0 .OR. WALL(IWP)%BOUNDARY_TYPE==OPEN_BOUNDARY) ) THEN
21002073

21012074
VENT_INDEX = MAX(WCM%VENT_INDEX,WCP%VENT_INDEX)
21022075
VT => VENTS(VENT_INDEX)
@@ -2154,20 +2127,20 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
21542127

21552128
SELECT CASE(IEC)
21562129
CASE(1)
2157-
IF (JJ==0 .AND. IOR== 2) WW(II,0,KK) = W_WIND(KK)
2158-
IF (JJ==JBAR .AND. IOR==-2) WW(II,JBP1,KK) = W_WIND(KK)
2159-
IF (KK==0 .AND. IOR== 3) VV(II,JJ,0) = V_WIND(KK)
2160-
IF (KK==KBAR .AND. IOR==-3) VV(II,JJ,KBP1) = V_WIND(KK)
2130+
IF (JJ==0 .AND. IOR== 2) WW(II,0,KK) = W_WIND(KK) + VEL_EDDY
2131+
IF (JJ==JBAR .AND. IOR==-2) WW(II,JBP1,KK) = W_WIND(KK) + VEL_EDDY
2132+
IF (KK==0 .AND. IOR== 3) VV(II,JJ,0) = V_WIND(KK) + VEL_EDDY
2133+
IF (KK==KBAR .AND. IOR==-3) VV(II,JJ,KBP1) = V_WIND(KK) + VEL_EDDY
21612134
CASE(2)
2162-
IF (II==0 .AND. IOR== 1) WW(0,JJ,KK) = W_WIND(KK)
2163-
IF (II==IBAR .AND. IOR==-1) WW(IBP1,JJ,KK) = W_WIND(KK)
2164-
IF (KK==0 .AND. IOR== 3) UU(II,JJ,0) = U_WIND(KK)
2165-
IF (KK==KBAR .AND. IOR==-3) UU(II,JJ,KBP1) = U_WIND(KK)
2135+
IF (II==0 .AND. IOR== 1) WW(0,JJ,KK) = W_WIND(KK) + VEL_EDDY
2136+
IF (II==IBAR .AND. IOR==-1) WW(IBP1,JJ,KK) = W_WIND(KK) + VEL_EDDY
2137+
IF (KK==0 .AND. IOR== 3) UU(II,JJ,0) = U_WIND(KK) + VEL_EDDY
2138+
IF (KK==KBAR .AND. IOR==-3) UU(II,JJ,KBP1) = U_WIND(KK) + VEL_EDDY
21662139
CASE(3)
2167-
IF (II==0 .AND. IOR== 1) VV(0,JJ,KK) = V_WIND(KK)
2168-
IF (II==IBAR .AND. IOR==-1) VV(IBP1,JJ,KK) = V_WIND(KK)
2169-
IF (JJ==0 .AND. IOR== 2) UU(II,0,KK) = U_WIND(KK)
2170-
IF (JJ==JBAR .AND. IOR==-2) UU(II,JBP1,KK) = U_WIND(KK)
2140+
IF (II==0 .AND. IOR== 1) VV(0,JJ,KK) = V_WIND(KK) + VEL_EDDY
2141+
IF (II==IBAR .AND. IOR==-1) VV(IBP1,JJ,KK) = V_WIND(KK) + VEL_EDDY
2142+
IF (JJ==0 .AND. IOR== 2) UU(II,0,KK) = U_WIND(KK) + VEL_EDDY
2143+
IF (JJ==JBAR .AND. IOR==-2) UU(II,JBP1,KK) = U_WIND(KK) + VEL_EDDY
21712144
END SELECT
21722145

21732146
ENDIF WIND_NO_WIND_IF
@@ -2293,8 +2266,9 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
22932266
END SELECT
22942267

22952268
ELSE
2269+
22962270
PROFILE_FACTOR = 1._EB
2297-
IF (ABS(SF%VEL) > 0._EB) THEN
2271+
IF (ABS(SF%VEL)>0._EB) THEN
22982272
IF (ABS(SF%T_IGN-T_BEGIN)<=SPACING(SF%T_IGN) .AND. SF%RAMP(TIME_VELO)%INDEX>=1) THEN
22992273
TSI = T
23002274
ELSE
@@ -2318,6 +2292,7 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
23182292
IF (IEC==3 .OR. (IEC==2 .AND. ICD==1)) VEL_T = -SF%VEL_T(1)*VEL_MF
23192293
ENDIF
23202294
ENDIF
2295+
23212296
ENDIF
23222297

23232298
! Choose the appropriate boundary condition to apply

0 commit comments

Comments
 (0)