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
12 changes: 6 additions & 6 deletions Source/init.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1437,7 +1437,7 @@ SUBROUTINE DEFINE_EDGE(II,JJ,KK,IOR,IEC,NM,OBST_INDEX)
ED%JJO_1 = JJO
MM => MESHES(NOM)
ZK = MIN( REAL(MM%KBAR,EB)+ONE_M_EPS , MM%CELLSK(NINT((M%Z(KK)-MM%ZS)*MM%RDZINT))+1._EB )
KKO = MAX(1,FLOOR(ZK))
KKO = MIN(MM%KBAR,MAX(1,FLOOR(ZK)))
ED%EDGE_INTERPOLATION_FACTOR(1) = ZK-KKO
ED%KKO_1 = KKO
CASE(3)
Expand All @@ -1446,7 +1446,7 @@ SUBROUTINE DEFINE_EDGE(II,JJ,KK,IOR,IEC,NM,OBST_INDEX)
ED%IIO_2 = IIO
MM => MESHES(NOM)
YJ = MIN( REAL(MM%JBAR,EB)+ONE_M_EPS , MM%CELLSJ(NINT((M%Y(JJ)-MM%YS)*MM%RDYINT))+1._EB )
JJO = MAX(1,FLOOR(YJ))
JJO = MIN(MM%JBAR,MAX(1,FLOOR(YJ)))
ED%EDGE_INTERPOLATION_FACTOR(2) = YJ-JJO
ED%JJO_2 = JJO
ED%KKO_2 = KKO
Expand Down Expand Up @@ -1475,15 +1475,15 @@ SUBROUTINE DEFINE_EDGE(II,JJ,KK,IOR,IEC,NM,OBST_INDEX)
ED%JJO_2 = JJO
MM => MESHES(NOM)
ZK = MIN( REAL(MM%KBAR,EB)+ONE_M_EPS , MM%CELLSK(NINT((M%Z(KK)-MM%ZS)*MM%RDZINT))+1._EB )
KKO = MAX(1,FLOOR(ZK))
KKO = MIN(MM%KBAR,MAX(1,FLOOR(ZK)))
ED%EDGE_INTERPOLATION_FACTOR(2) = ZK-KKO
ED%KKO_2 = KKO
CASE( 3)
IF (IOR>0) ED%NOM_1 = -NOM
IF (IOR<0) ED%NOM_1 = NOM
MM => MESHES(NOM)
XI = MIN( REAL(MM%IBAR,EB)+ONE_M_EPS , MM%CELLSI(NINT((M%X(II)-MM%XS)*MM%RDXINT))+1._EB )
IIO = MAX(1,FLOOR(XI))
IIO = MIN(MM%IBAR,MAX(1,FLOOR(XI)))
ED%EDGE_INTERPOLATION_FACTOR(1) = XI-IIO
ED%IIO_1 = IIO
ED%JJO_1 = JJO
Expand Down Expand Up @@ -1512,7 +1512,7 @@ SUBROUTINE DEFINE_EDGE(II,JJ,KK,IOR,IEC,NM,OBST_INDEX)
ED%IIO_1 = IIO
MM => MESHES(NOM)
YJ = MIN( REAL(MM%JBAR,EB)+ONE_M_EPS , MM%CELLSJ(NINT((M%Y(JJ)-MM%YS)*MM%RDYINT))+1._EB )
JJO = MAX(1,FLOOR(YJ))
JJO = MIN(MM%JBAR,MAX(1,FLOOR(YJ)))
ED%EDGE_INTERPOLATION_FACTOR(1) = YJ-JJO
ED%JJO_1 = JJO
ED%KKO_1 = KKO
Expand All @@ -1521,7 +1521,7 @@ SUBROUTINE DEFINE_EDGE(II,JJ,KK,IOR,IEC,NM,OBST_INDEX)
IF (IOR<0) ED%NOM_2 = NOM
MM => MESHES(NOM)
XI = MIN( REAL(MM%IBAR,EB)+ONE_M_EPS , MM%CELLSI(NINT((M%X(II)-MM%XS)*MM%RDXINT))+1._EB )
IIO = MAX(1,FLOOR(XI))
IIO = MIN(MM%IBAR,MAX(1,FLOOR(XI)))
ED%EDGE_INTERPOLATION_FACTOR(2) = XI-IIO
ED%IIO_2 = IIO
ED%JJO_2 = JJO
Expand Down
43 changes: 40 additions & 3 deletions Source/velo.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2431,6 +2431,43 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
ENDIF
END SELECT

! At the exterior edge of Mesh NM, which abuts Mesh NOM, assign the appropriate velocity component to the
! ghost cell. For example, MESHES(NM)%VV(IBP1,JJ,KBP1) is stored in MESHES(NM)%OMESH(NOM)%V(IIO+1,JJO,KKO) if Mesh
! NOM is above Mesh NM (IOR=-3), or it is stored in MESHES(NM)%OMESH(NOM)%V(IIO,JJO,KKO+1) if Mesh NOM is to
! the right of NM (IOR=-1). The value of each is the same and it is transfered to Mesh NM with a one-step time lag.

IF (CORRECTOR) THEN
SELECT CASE(IEC)
CASE(1)
IF (JJ==0 .AND. KK==0 .AND. ABS(IOR)==2) UU(II,JJ ,KK ) = OM%U(IIO(ICD),JJO(ICD) ,KKO(ICD)-1)
IF (JJ==0 .AND. KK==0 .AND. ABS(IOR)==3) UU(II,JJ ,KK ) = OM%U(IIO(ICD),JJO(ICD)-1,KKO(ICD) )
IF (JJ==0 .AND. KK==KBAR .AND. ABS(IOR)==2) UU(II,JJ ,KK+1) = OM%U(IIO(ICD),JJO(ICD) ,KKO(ICD)+1)
IF (JJ==0 .AND. KK==KBAR .AND. ABS(IOR)==3) UU(II,JJ ,KK+1) = OM%U(IIO(ICD),JJO(ICD)-1,KKO(ICD) )
IF (JJ==JBAR .AND. KK==0 .AND. ABS(IOR)==2) UU(II,JJ+1,KK ) = OM%U(IIO(ICD),JJO(ICD) ,KKO(ICD)-1)
IF (JJ==JBAR .AND. KK==0 .AND. ABS(IOR)==3) UU(II,JJ+1,KK ) = OM%U(IIO(ICD),JJO(ICD)+1,KKO(ICD) )
IF (JJ==JBAR .AND. KK==KBAR .AND. ABS(IOR)==2) UU(II,JJ+1,KK+1) = OM%U(IIO(ICD),JJO(ICD) ,KKO(ICD)+1)
IF (JJ==JBAR .AND. KK==KBAR .AND. ABS(IOR)==3) UU(II,JJ+1,KK+1) = OM%U(IIO(ICD),JJO(ICD)+1,KKO(ICD) )
CASE(2)
IF (II==0 .AND. KK==0 .AND. ABS(IOR)==1) VV(II ,JJ,KK ) = OM%V(IIO(ICD) ,JJO(ICD),KKO(ICD)-1)
IF (II==0 .AND. KK==0 .AND. ABS(IOR)==3) VV(II ,JJ,KK ) = OM%V(IIO(ICD)-1,JJO(ICD),KKO(ICD) )
IF (II==0 .AND. KK==KBAR .AND. ABS(IOR)==1) VV(II ,JJ,KK+1) = OM%V(IIO(ICD) ,JJO(ICD),KKO(ICD)+1)
IF (II==0 .AND. KK==KBAR .AND. ABS(IOR)==3) VV(II ,JJ,KK+1) = OM%V(IIO(ICD)-1,JJO(ICD),KKO(ICD) )
IF (II==IBAR .AND. KK==0 .AND. ABS(IOR)==1) VV(II+1,JJ,KK ) = OM%V(IIO(ICD) ,JJO(ICD),KKO(ICD)-1)
IF (II==IBAR .AND. KK==0 .AND. ABS(IOR)==3) VV(II+1,JJ,KK ) = OM%V(IIO(ICD)+1,JJO(ICD),KKO(ICD) )
IF (II==IBAR .AND. KK==KBAR .AND. ABS(IOR)==1) VV(II+1,JJ,KK+1) = OM%V(IIO(ICD) ,JJO(ICD),KKO(ICD)+1)
IF (II==IBAR .AND. KK==KBAR .AND. ABS(IOR)==3) VV(II+1,JJ,KK+1) = OM%V(IIO(ICD)+1,JJO(ICD),KKO(ICD) )
CASE(3)
IF (II==0 .AND. JJ==0 .AND. ABS(IOR)==1) WW(II ,JJ ,KK) = OM%W(IIO(ICD) ,JJO(ICD)-1,KKO(ICD))
IF (II==0 .AND. JJ==0 .AND. ABS(IOR)==2) WW(II ,JJ ,KK) = OM%W(IIO(ICD)-1,JJO(ICD) ,KKO(ICD))
IF (II==0 .AND. JJ==JBAR .AND. ABS(IOR)==1) WW(II ,JJ+1,KK) = OM%W(IIO(ICD) ,JJO(ICD)+1,KKO(ICD))
IF (II==0 .AND. JJ==JBAR .AND. ABS(IOR)==2) WW(II ,JJ+1,KK) = OM%W(IIO(ICD)-1,JJO(ICD) ,KKO(ICD))
IF (II==IBAR .AND. JJ==0 .AND. ABS(IOR)==1) WW(II+1,JJ ,KK) = OM%W(IIO(ICD) ,JJO(ICD)-1,KKO(ICD))
IF (II==IBAR .AND. JJ==0 .AND. ABS(IOR)==2) WW(II+1,JJ ,KK) = OM%W(IIO(ICD)+1,JJO(ICD) ,KKO(ICD))
IF (II==IBAR .AND. JJ==JBAR .AND. ABS(IOR)==1) WW(II+1,JJ+1,KK) = OM%W(IIO(ICD) ,JJO(ICD)+1,KKO(ICD))
IF (II==IBAR .AND. JJ==JBAR .AND. ABS(IOR)==2) WW(II+1,JJ+1,KK) = OM%W(IIO(ICD)+1,JJO(ICD) ,KKO(ICD))
END SELECT
ENDIF

ENDIF INTERPOLATION_IF

! Set ghost cell values at edge of computational domain
Expand All @@ -2441,7 +2478,7 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
IF (JJ==JBAR .AND. IOR==-2) WW(II,JJ+1,KK) = VEL_GHOST
IF (KK==0 .AND. IOR== 3) VV(II,JJ,KK) = VEL_GHOST
IF (KK==KBAR .AND. IOR==-3) VV(II,JJ,KK+1) = VEL_GHOST
IF (CORRECTOR) THEN
IF (CORRECTOR .AND. .NOT.INTERPOLATED_EDGE) THEN
IF (ICD==1) THEN
ED%W_AVG = 0.5_EB*(VEL_GHOST+VEL_GAS)
ELSE ! ICD=2
Expand All @@ -2453,7 +2490,7 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
IF (II==IBAR .AND. IOR==-1) WW(II+1,JJ,KK) = VEL_GHOST
IF (KK==0 .AND. IOR== 3) UU(II,JJ,KK) = VEL_GHOST
IF (KK==KBAR .AND. IOR==-3) UU(II,JJ,KK+1) = VEL_GHOST
IF (CORRECTOR) THEN
IF (CORRECTOR .AND. .NOT.INTERPOLATED_EDGE) THEN
IF (ICD==1) THEN
ED%U_AVG = 0.5_EB*(VEL_GHOST+VEL_GAS)
ELSE ! ICD=2
Expand All @@ -2465,7 +2502,7 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
IF (II==IBAR .AND. IOR==-1) VV(II+1,JJ,KK) = VEL_GHOST
IF (JJ==0 .AND. IOR== 2) UU(II,JJ,KK) = VEL_GHOST
IF (JJ==JBAR .AND. IOR==-2) UU(II,JJ+1,KK) = VEL_GHOST
IF (CORRECTOR) THEN
IF (CORRECTOR .AND. .NOT.INTERPOLATED_EDGE) THEN
IF (ICD==1) THEN
ED%V_AVG = 0.5_EB*(VEL_GHOST+VEL_GAS)
ELSE ! ICD=2
Expand Down
Loading