From b2d4b0b7918ba5e4c3701ed1f9305e2b53f39402 Mon Sep 17 00:00:00 2001 From: marcosvanella Date: Wed, 22 Jan 2025 17:41:38 -0500 Subject: [PATCH] FDS Source : drop right face FCELL parameter. --- Source/dump.f90 | 44 +++---- Source/geom.f90 | 325 ++++++++++++++++++++++++------------------------ 2 files changed, 184 insertions(+), 185 deletions(-) diff --git a/Source/dump.f90 b/Source/dump.f90 index 547461a244..08310f9051 100644 --- a/Source/dump.f90 +++ b/Source/dump.f90 @@ -15,7 +15,7 @@ MODULE DUMP USE CONTROL_VARIABLES USE OUTPUT_DATA USE COMPLEX_GEOMETRY, ONLY : WRITE_GEOM,WRITE_GEOM_ALL,CC_FGSC,CC_IDCF,CC_IDCC,CC_UNKZ,CC_UNKF,CC_FTYPE_RCGAS,& - CC_FTYPE_CFGAS,CC_FTYPE_CFINB,CC_SOLID,FCELL,CC_CGSC,CC_CUTCFE,TRIANGULATE,& + CC_FTYPE_CFGAS,CC_FTYPE_CFINB,CC_SOLID,CC_CGSC,CC_CUTCFE,TRIANGULATE,& CC_VGSC,CC_GASPHASE,MAKE_UNIQUE_VERT_ARRAY,AVERAGE_FACE_VALUES USE CC_SCALARS, ONLY : ADD_Q_DOT_CUTCELLS,GET_PRES_CFACE,GET_PRES_CFACE_TEST,GET_UVWGAS_CFACE,GET_MUDNS_CFACE @@ -4978,7 +4978,7 @@ SUBROUTINE GET_GEOMINFO(SLICETYPE,I1,I2,J1,J2,K1,K2,NVERTS,NVERTS_CUTCELLS,NFACE I=II; J=JJ; K=KK; SELECT CASE(X1AXIS) CASE(IAXIS) - I=II-FCELL+ILH + I=II-1+ILH DO KADD=-1,0 DO JADD=-1,0 IVERTCUT = IVERTCUT + 1 @@ -4988,7 +4988,7 @@ SUBROUTINE GET_GEOMINFO(SLICETYPE,I1,I2,J1,J2,K1,K2,NVERTS,NVERTS_CUTCELLS,NFACE ENDDO ENDDO CASE(JAXIS) - J=JJ-FCELL+ILH + J=JJ-1+ILH DO IADD=-1,0 DO KADD=-1,0 IVERTCUT = IVERTCUT + 1 @@ -4998,7 +4998,7 @@ SUBROUTINE GET_GEOMINFO(SLICETYPE,I1,I2,J1,J2,K1,K2,NVERTS,NVERTS_CUTCELLS,NFACE ENDDO ENDDO CASE(KAXIS) - K=KK-FCELL+ILH + K=KK-1+ILH DO JADD=-1,0 DO IADD=-1,0 IVERTCUT = IVERTCUT + 1 @@ -5637,17 +5637,17 @@ SUBROUTINE GET_SOLIDREGFACE_SCALAR_SLICE(X1AXIS,I,J,K,VAL_CF,& SELECT CASE(X1AXIS) CASE(IAXIS) - II_LO=I+FCELL-1; II_HI=I+FCELL - JJ_LO=J; JJ_HI=J - KK_LO=K; KK_HI=K + II_LO=I; II_HI=I+1 + JJ_LO=J; JJ_HI=J + KK_LO=K; KK_HI=K CASE(JAXIS) - II_LO=I; II_HI=I - JJ_LO=J+FCELL-1; JJ_HI=J+FCELL - KK_LO=K; KK_HI=K + II_LO=I; II_HI=I + JJ_LO=J; JJ_HI=J+1 + KK_LO=K; KK_HI=K CASE(KAXIS) - II_LO=I; II_HI=I - JJ_LO=J; JJ_HI=J - KK_LO=K+FCELL-1; KK_HI=K+FCELL + II_LO=I; II_HI=I + JJ_LO=J; JJ_HI=J + KK_LO=K; KK_HI=K+1 END SELECT SOLID_LO = CCVAR(II_LO,JJ_LO,KK_LO,CC_CGSC) @@ -5702,9 +5702,9 @@ SUBROUTINE GET_SOLIDCUTFACE_SCALAR_SLICE(X1AXIS,ICF,VAL_CF, & SELECT CASE(X1AXIS) CASE(IAXIS) - II_LO=IJK(IAXIS)+FCELL-1; II_HI=IJK(IAXIS)+FCELL - JJ_LO=IJK(JAXIS)-1; JJ_HI=IJK(JAXIS)+1 - KK_LO=IJK(KAXIS)-1; KK_HI=IJK(KAXIS)+1 + II_LO=IJK(IAXIS); II_HI=IJK(IAXIS)+1 + JJ_LO=IJK(JAXIS)-1; JJ_HI=IJK(JAXIS)+1 + KK_LO=IJK(KAXIS)-1; KK_HI=IJK(KAXIS)+1 IJK2(IAXIS:KAXIS, 1) = (/ II_LO, JJ_LO, IJK(KAXIS) /) IJK2(IAXIS:KAXIS, 2) = (/ II_LO, JJ_HI, IJK(KAXIS) /) @@ -5724,9 +5724,9 @@ SUBROUTINE GET_SOLIDCUTFACE_SCALAR_SLICE(X1AXIS,ICF,VAL_CF, & IJK2(IAXIS:KAXIS,16) = (/ II_HI, JJ_HI, KK_HI /) CASE(JAXIS) - II_LO=IJK(IAXIS)-1; II_HI=IJK(IAXIS)+1 - JJ_LO=IJK(JAXIS)+FCELL-1; JJ_HI=IJK(JAXIS)+FCELL - KK_LO=IJK(KAXIS)-1; KK_HI=IJK(KAXIS)+1 + II_LO=IJK(IAXIS)-1; II_HI=IJK(IAXIS)+1 + JJ_LO=IJK(JAXIS); JJ_HI=IJK(JAXIS)+1 + KK_LO=IJK(KAXIS)-1; KK_HI=IJK(KAXIS)+1 IJK2(IAXIS:KAXIS, 1) = (/ IJK(IAXIS), JJ_LO, KK_LO /) IJK2(IAXIS:KAXIS, 2) = (/ IJK(IAXIS), JJ_LO, KK_HI /) @@ -5746,9 +5746,9 @@ SUBROUTINE GET_SOLIDCUTFACE_SCALAR_SLICE(X1AXIS,ICF,VAL_CF, & IJK2(IAXIS:KAXIS,16) = (/ II_HI, JJ_HI, KK_HI /) CASE(KAXIS) - II_LO=IJK(IAXIS)-1; II_HI=IJK(IAXIS)+1 - JJ_LO=IJK(JAXIS)-1; JJ_HI=IJK(JAXIS)+1 - KK_LO=IJK(KAXIS)+FCELL-1; KK_HI=IJK(KAXIS)+FCELL + II_LO=IJK(IAXIS)-1; II_HI=IJK(IAXIS)+1 + JJ_LO=IJK(JAXIS)-1; JJ_HI=IJK(JAXIS)+1 + KK_LO=IJK(KAXIS); KK_HI=IJK(KAXIS)+1 IJK2(IAXIS:KAXIS, 1) = (/ II_LO, IJK(JAXIS), KK_LO /) IJK2(IAXIS:KAXIS, 2) = (/ II_HI, IJK(JAXIS), KK_LO /) diff --git a/Source/geom.f90 b/Source/geom.f90 index ea7f68f6bb..7d3a7b29f3 100644 --- a/Source/geom.f90 +++ b/Source/geom.f90 @@ -39,9 +39,8 @@ MODULE COMPLEX_GEOMETRY REAL(EB), PARAMETER :: ADIFF_INFO_FACTOR= 1.E-1_EB REAL(EB), PARAMETER :: SNAP_DIST_FACTOR = 1.E-5_EB -INTEGER, SAVE :: NGUARD = 6 ! Layers of guard-cells. -INTEGER, SAVE :: CCGUARD= 6 - 2 ! Layers of guard cut-cells. -INTEGER, PARAMETER :: FCELL = 1 ! Right face index. +INTEGER, SAVE :: NGUARD = 5 ! Layers of guard-cells. +INTEGER, SAVE :: CCGUARD= 5 - 2 ! Layers of guard cut-cells. ! Media definition parameters: INTEGER, PARAMETER :: CC_INBOUNDCC = -3 @@ -316,7 +315,7 @@ MODULE COMPLEX_GEOMETRY POINT_IN_CFACE,RANDOM_CFACE_XYZ,& READ_GEOM,ROTATION_MATRIX, & WRITE_GEOM,WRITE_GEOM_ALL, & - FCELL,CC_SOLID,CC_VGSC,CC_CGSC,CC_FGSC,CC_IDCF,CC_UNKZ,CC_GASPHASE,CC_CUTCFE,CC_IDRC,& + CC_SOLID,CC_VGSC,CC_CGSC,CC_FGSC,CC_IDCF,CC_UNKZ,CC_GASPHASE,CC_CUTCFE,CC_IDRC,& CC_FTYPE_CFGAS,CC_FTYPE_CFINB,CC_FTYPE_RGGAS, & CC_IDCC,CC_EGSC,CC_IDCE,CC_INBOUNDARY,CC_UNDEFINED, & CC_NCVARS, CC_UNKH, CC_UNKF, FDS_AREA_GEOM, INDEX_UNDEFINED, INIT_CFACE_CELL, INT_N_EXT_PTS, & @@ -2220,24 +2219,24 @@ SUBROUTINE DEFINE_XYZFACE_CELL(ALLOC_FLG) ! X direction bounds: ILO_FACE = 0 ! Low mesh boundary face index. IHI_FACE = M%IBAR ! High mesh boundary face index. - ILO_CELL = ILO_FACE + FCELL ! First internal cell index. See notes. - IHI_CELL = IHI_FACE + FCELL - 1 ! Last internal cell index. + ILO_CELL = ILO_FACE + 1 ! First internal cell index. See notes. + IHI_CELL = IHI_FACE ! Last internal cell index. ISTR = ILO_FACE - NGUARD ! Allocation start x arrays. IEND = IHI_FACE + NGUARD ! Allocation end x arrays. ! Y direction bounds: JLO_FACE = 0 ! Low mesh boundary face index. JHI_FACE = M%JBAR ! High mesh boundary face index. - JLO_CELL = JLO_FACE + FCELL ! First internal cell index. See notes. - JHI_CELL = JHI_FACE + FCELL - 1 ! Last internal cell index. + JLO_CELL = JLO_FACE + 1 ! First internal cell index. See notes. + JHI_CELL = JHI_FACE ! Last internal cell index. JSTR = JLO_FACE - NGUARD ! Allocation start y arrays. JEND = JHI_FACE + NGUARD ! Allocation end y arrays. ! Z direction bounds: KLO_FACE = 0 ! Low mesh boundary face index. KHI_FACE = M%KBAR ! High mesh boundary face index. - KLO_CELL = KLO_FACE + FCELL ! First internal cell index. See notes. - KHI_CELL = KHI_FACE + FCELL - 1 ! Last internal cell index. + KLO_CELL = KLO_FACE + 1 ! First internal cell index. See notes. + KHI_CELL = KHI_FACE ! Last internal cell index. KSTR = KLO_FACE - NGUARD ! Allocation start z arrays. KEND = KHI_FACE + NGUARD ! Allocation end z arrays. @@ -3721,12 +3720,12 @@ SUBROUTINE GET_REGULAR_CUTCELLS_BOX IF(IJK_COUNTED2(I,J,K)) CYCLE; IJK_COUNTED2(I,J,K)=.TRUE. ! Face type of bounding Cartesian faces: - FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-FCELL ,J,K,CC_FGSC,IAXIS) - FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I-FCELL+1,J,K,CC_FGSC,IAXIS) - FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL ,K,CC_FGSC,JAXIS) - FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL+1,K,CC_FGSC,JAXIS) - FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL ,CC_FGSC,KAXIS) - FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL+1,CC_FGSC,KAXIS) + FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-1,J,K,CC_FGSC,IAXIS) + FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I ,J,K,CC_FGSC,IAXIS) + FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-1,K,CC_FGSC,JAXIS) + FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J ,K,CC_FGSC,JAXIS) + FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-1,CC_FGSC,KAXIS) + FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K ,CC_FGSC,KAXIS) IF ( ALL(FSID_XYZ(LOW_IND:HIGH_IND,IAXIS:KAXIS) /= CC_SOLID) ) CYCLE @@ -3918,20 +3917,20 @@ SUBROUTINE GET_REGULAR_CUTCELLS_BOX ! Start with Cartesian Faces: ! Face type of bounding Cartesian faces: - FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-FCELL ,J,K,CC_FGSC,IAXIS) - FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I-FCELL+1,J,K,CC_FGSC,IAXIS) - FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL ,K,CC_FGSC,JAXIS) - FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL+1,K,CC_FGSC,JAXIS) - FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL ,CC_FGSC,KAXIS) - FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL+1,CC_FGSC,KAXIS) + FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-1,J,K,CC_FGSC,IAXIS) + FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I ,J,K,CC_FGSC,IAXIS) + FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-1,K,CC_FGSC,JAXIS) + FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J ,K,CC_FGSC,JAXIS) + FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-1,CC_FGSC,KAXIS) + FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K ,CC_FGSC,KAXIS) ! Cut-face number of bounding Cartesian faces: - IDCF_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-FCELL ,J,K,CC_IDCF,IAXIS) - IDCF_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I-FCELL+1,J,K,CC_IDCF,IAXIS) - IDCF_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL ,K,CC_IDCF,JAXIS) - IDCF_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL+1,K,CC_IDCF,JAXIS) - IDCF_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL ,CC_IDCF,KAXIS) - IDCF_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL+1,CC_IDCF,KAXIS) + IDCF_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-1,J,K,CC_IDCF,IAXIS) + IDCF_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I ,J,K,CC_IDCF,IAXIS) + IDCF_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-1,K,CC_IDCF,JAXIS) + IDCF_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J ,K,CC_IDCF,JAXIS) + IDCF_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-1,CC_IDCF,KAXIS) + IDCF_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K ,CC_IDCF,KAXIS) NFACE_CELL = 0 @@ -13238,13 +13237,13 @@ SUBROUTINE GET_CARTEDGE_CUTEDGES(X1AXIS,X2AXIS,X3AXIS,XIAXIS,XJAXIS,XKAXIS, & ! Set initially edges with MESHES(NM)%VERTVAR vertices == CC_SOLID to CC_SOLID status: DO JJ=X2LO_CELL,X2HI_CELL - ! Vert at index JJ-FCELL: - INDXI(IAXIS:KAXIS) = (/ INDX1(X1AXIS), JJ-FCELL, KK /) ! Local x1,x2,x3 + ! Vert at index JJ-1: + INDXI(IAXIS:KAXIS) = (/ INDX1(X1AXIS), JJ-1, KK /) ! Local x1,x2,x3 INDI=INDXI(XIAXIS) INDJ=INDXI(XJAXIS) INDK=INDXI(XKAXIS) - ! Vert at index JJ-FCELL+1: - INDXI(IAXIS:KAXIS) = (/ INDX1(X1AXIS), JJ-FCELL+1, KK /) ! Local x1,x2,x3 + ! Vert at index JJ: + INDXI(IAXIS:KAXIS) = (/ INDX1(X1AXIS), JJ, KK /) ! Local x1,x2,x3 INDI1=INDXI(XIAXIS) INDJ1=INDXI(XJAXIS) INDK1=INDXI(XKAXIS) @@ -13364,16 +13363,16 @@ SUBROUTINE GET_CARTEDGE_CUTEDGES(X1AXIS,X2AXIS,X3AXIS,XIAXIS,XJAXIS,XKAXIS, & NCROSS = MESHES(NM)%EDGE_CROSS(ICROSS)%NCROSS ! Edge Location in x1,x2,x3 axes: - ! Vert at index JJ-FCELL: - INDXI(IAXIS:KAXIS) = (/ MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X1AXIS), & - MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)-FCELL, & + ! Vert at index JJ-1: + INDXI(IAXIS:KAXIS) = (/ MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X1AXIS), & + MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)-1, & MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X3AXIS) /) ! Local x1,x2,x3 INDI=INDXI(XIAXIS) INDJ=INDXI(XJAXIS) INDK=INDXI(XKAXIS) - ! Vert at index JJ-FCELL+1: - INDXI(IAXIS:KAXIS) = (/ MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X1AXIS), & - MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)-FCELL+1, & + ! Vert at index JJ: + INDXI(IAXIS:KAXIS) = (/ MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X1AXIS), & + MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS), & MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X3AXIS) /) ! Local x1,x2,x3 INDI1=INDXI(XIAXIS) INDJ1=INDXI(XJAXIS) @@ -13411,9 +13410,9 @@ SUBROUTINE GET_CARTEDGE_CUTEDGES(X1AXIS,X2AXIS,X3AXIS,XIAXIS,XJAXIS,XKAXIS, & CYCLE ENDIF - DIF = (ABS(X2FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)-FCELL ) - & - MESHES(NM)%EDGE_CROSS(ICROSS)%SVAR(1)) < GEOMEPS) .AND. & - (ABS(X2FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)-FCELL+1) - & + DIF = (ABS(X2FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)-1 ) - & + MESHES(NM)%EDGE_CROSS(ICROSS)%SVAR(1)) < GEOMEPS) .AND. & + (ABS(X2FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)) - & MESHES(NM)%EDGE_CROSS(ICROSS)%SVAR(2)) < GEOMEPS) VFLUID = (MESHES(NM)%EDGE_CROSS(ICROSS)%ISVAR(1) == CC_GS) .AND. & @@ -13441,9 +13440,9 @@ SUBROUTINE GET_CARTEDGE_CUTEDGES(X1AXIS,X2AXIS,X3AXIS,XIAXIS,XJAXIS,XKAXIS, & MESHES(NM)%CUT_EDGE(NCUTEDGE)%NVERT = NVERT X123VERT(IAXIS:KAXIS,1:NVERT) = 0._EB X123VERT(IAXIS,1:NVERT) = X1FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X1AXIS)) - X123VERT(JAXIS,1) = X2FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)-FCELL) + X123VERT(JAXIS,1) = X2FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)-1) X123VERT(JAXIS,2:NCROSS+1)= MESHES(NM)%EDGE_CROSS(ICROSS)%SVAR(1:NCROSS) - X123VERT(JAXIS,NVERT) = X2FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)-FCELL+1) + X123VERT(JAXIS,NVERT) = X2FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X2AXIS)) X123VERT(KAXIS,1:NVERT) = X3FACE(MESHES(NM)%EDGE_CROSS(ICROSS)%IJK(X3AXIS)) ! Allocate new edge XYZVERT, CEELEM, INDSEG @@ -14073,14 +14072,14 @@ SUBROUTINE GET_CARTFACE_CUTEDGES(X1AXIS,X2AXIS,X3AXIS, & KK2VEC(LOW_IND:HIGH_IND) = 0 IF (ADD2FACES) THEN NPFACE = 2 - KK2VEC(LOW_IND) = KK + FCELL - KK2VEC(HIGH_IND)= KK + FCELL - 1 + KK2VEC(LOW_IND) = KK + 1 + KK2VEC(HIGH_IND)= KK ELSE NPFACE = 1 - if ( SNORI(JAXIS) > 0._EB ) THEN ! add 1 to index kk+FCELL-1 (i.e. lower face index) - KK2VEC(LOW_IND) = KK + FCELL + if ( SNORI(JAXIS) > 0._EB ) THEN ! add 1 to index kk (i.e. lower face index) + KK2VEC(LOW_IND) = KK + 1 ELSE - KK2VEC(LOW_IND)= KK + FCELL - 1 + KK2VEC(LOW_IND)= KK ENDIF ENDIF @@ -14172,7 +14171,7 @@ SUBROUTINE GET_CARTFACE_CUTEDGES(X1AXIS,X2AXIS,X3AXIS, & ELSE DIRAXIS = X2AXIS CONDAX = (XYZV2(DIRAXIS)-XYZV1(DIRAXIS)) > 0 - IF ( KK2 == KK+FCELL-1 ) THEN + IF ( KK2 == KK ) THEN IF (CONDAX) THEN MESHES(NM)%CUT_EDGE(CEI)%CEELEM(NOD1:NOD2,NEDGE+1) = (/ INOD1, INOD2 /) ELSE @@ -14229,14 +14228,14 @@ SUBROUTINE GET_CARTFACE_CUTEDGES(X1AXIS,X2AXIS,X3AXIS, & JJ2VEC(LOW_IND:HIGH_IND) = 0 IF (ADD2FACES) THEN NPFACE = 2 - JJ2VEC(LOW_IND) = JJ + FCELL - JJ2VEC(HIGH_IND) = JJ + FCELL - 1 + JJ2VEC(LOW_IND) = JJ + 1 + JJ2VEC(HIGH_IND) = JJ ELSE NPFACE = 1 - IF ( SNORI(IAXIS) > 0._EB ) THEN ! add 1 to index jj+FCELL-1 (i.e. lower face index) - JJ2VEC(LOW_IND) = JJ + FCELL + IF ( SNORI(IAXIS) > 0._EB ) THEN ! add 1 to index jj (i.e. lower face index) + JJ2VEC(LOW_IND) = JJ + 1 ELSE - JJ2VEC(LOW_IND) = JJ + FCELL - 1 + JJ2VEC(LOW_IND) = JJ ENDIF ENDIF @@ -14329,7 +14328,7 @@ SUBROUTINE GET_CARTFACE_CUTEDGES(X1AXIS,X2AXIS,X3AXIS, & ELSE DIRAXIS = X3AXIS CONDAX = (XYZV2(DIRAXIS)-XYZV1(DIRAXIS)) > 0 - IF ( JJ2 == JJ+FCELL-1 ) THEN + IF ( JJ2 == JJ ) THEN IF (CONDAX) THEN MESHES(NM)%CUT_EDGE(CEI)%CEELEM(NOD1:NOD2,NEDGE+1) = (/ INOD2, INOD1 /) ELSE @@ -15269,23 +15268,23 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ! Drop if face not cut-face: ! Test for FACE Cartesian edges being cut: ! If outface1 is true -> All regular edges for this face: - ! Edge at index KK-FCELL: - INDXI1(IAXIS:KAXIS) = (/ II, JJ, KK-FCELL /) ! Local x1,x2,x3 + ! Edge at index KK-1: + INDXI1(IAXIS:KAXIS) = (/ II, JJ, KK-1 /) ! Local x1,x2,x3 INDI1 = INDXI1(XIAXIS) INDJ1 = INDXI1(XJAXIS) INDK1 = INDXI1(XKAXIS) - ! Edge at index KK-FCELL+1: - INDXI2(IAXIS:KAXIS) = (/ II, JJ, KK-FCELL+1 /) ! Local x1,x2,x3 + ! Edge at index KK: + INDXI2(IAXIS:KAXIS) = (/ II, JJ, KK /) ! Local x1,x2,x3 INDI2 = INDXI2(XIAXIS) INDJ2 = INDXI2(XJAXIS) INDK2 = INDXI2(XKAXIS) - ! Edge at index JJ-FCELL: - INDXI3(IAXIS:KAXIS) = (/ II, JJ-FCELL, KK /) ! Local x1,x2,x3 + ! Edge at index JJ-1: + INDXI3(IAXIS:KAXIS) = (/ II, JJ-1, KK /) ! Local x1,x2,x3 INDI3 = INDXI3(XIAXIS) INDJ3 = INDXI3(XJAXIS) INDK3 = INDXI3(XKAXIS) - ! Edge at index jj-FCELL+1: - INDXI4(IAXIS:KAXIS) = (/ II, JJ-FCELL+1, KK /) ! Local x1,x2,x3 + ! Edge at index jj: + INDXI4(IAXIS:KAXIS) = (/ II, JJ, KK /) ! Local x1,x2,x3 INDI4 = INDXI4(XIAXIS) INDJ4 = INDXI4(XJAXIS) INDK4 = INDXI4(XKAXIS) @@ -15336,7 +15335,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ! x,y,z of node 1: XYZLC(IAXIS:KAXIS) = (/ X1FACE(INDLC(IAXIS)), & X2FACE(INDLC(JAXIS)), & - X3FACE(INDLC(KAXIS)-FCELL+1) /) + X3FACE(INDLC(KAXIS)) /) X1 = XYZLC(XIAXIS) X2 = XYZLC(XJAXIS) X3 = XYZLC(XKAXIS) @@ -15346,7 +15345,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ! x,y,z of node 2: XYZLC(IAXIS:KAXIS) = (/ X1FACE(INDLC(IAXIS)), & X2FACE(INDLC(JAXIS)), & - X3FACE(INDLC(KAXIS)-FCELL) /) + X3FACE(INDLC(KAXIS)-1) /) X1 = XYZLC(XIAXIS) X2 = XYZLC(XJAXIS) X3 = XYZLC(XKAXIS) @@ -15387,7 +15386,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ! x,y,z of node 1: XYZLC(IAXIS:KAXIS) = (/ X1FACE(INDLC(IAXIS)), & X2FACE(INDLC(JAXIS)), & - X3FACE(INDLC(KAXIS)-FCELL) /) + X3FACE(INDLC(KAXIS)-1) /) X1 = XYZLC(XIAXIS) X2 = XYZLC(XJAXIS) X3 = XYZLC(XKAXIS) @@ -15397,7 +15396,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ! x,y,z of node 2: XYZLC(IAXIS:KAXIS) = (/ X1FACE(INDLC(IAXIS)), & X2FACE(INDLC(JAXIS)), & - X3FACE(INDLC(KAXIS)-FCELL+1) /) + X3FACE(INDLC(KAXIS)) /) X1 = XYZLC(XIAXIS) X2 = XYZLC(XJAXIS) X3 = XYZLC(XKAXIS) @@ -15437,7 +15436,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) IF (MESHES(NM)%ECVAR(IEDG,JEDG,KEDG,CC_EGSC,X2AXIS) /= CC_SOLID) THEN ! x,y,z of node 1: XYZLC(IAXIS:KAXIS) = (/ X1FACE(INDLC(IAXIS)), & - X2FACE(INDLC(JAXIS)-FCELL), & + X2FACE(INDLC(JAXIS)-1), & X3FACE(INDLC(KAXIS)) /) X1 = XYZLC(XIAXIS) X2 = XYZLC(XJAXIS) @@ -15447,7 +15446,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ! x,y,z of node 2: XYZLC(IAXIS:KAXIS) = (/ X1FACE(INDLC(IAXIS)), & - X2FACE(INDLC(JAXIS)-FCELL+1), & + X2FACE(INDLC(JAXIS)), & X3FACE(INDLC(KAXIS)) /) X1 = XYZLC(XIAXIS) X2 = XYZLC(XJAXIS) @@ -15488,7 +15487,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) IF (MESHES(NM)%ECVAR(IEDG,JEDG,KEDG,CC_EGSC,X2AXIS) /= CC_SOLID) THEN ! x,y,z of node 1: XYZLC(IAXIS:KAXIS) = (/ X1FACE(INDLC(IAXIS)), & - X2FACE(INDLC(JAXIS)-FCELL+1), & + X2FACE(INDLC(JAXIS)), & X3FACE(INDLC(KAXIS)) /) X1 = XYZLC(XIAXIS) X2 = XYZLC(XJAXIS) @@ -15498,7 +15497,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ! x,y,z of node 2: XYZLC(IAXIS:KAXIS) = (/ X1FACE(INDLC(IAXIS)), & - X2FACE(INDLC(JAXIS)-FCELL), & + X2FACE(INDLC(JAXIS)-1), & X3FACE(INDLC(KAXIS)) /) X1 = XYZLC(XIAXIS) X2 = XYZLC(XJAXIS) @@ -16257,23 +16256,23 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ENDIF ! Now add CC_SOLID Type vertices: - ! Vertex at index JJ-FCELL,KK-FCELL: - INDXI1(IAXIS:KAXIS) = (/ II, JJ-FCELL , KK-FCELL /) ! Local x1,x2,x3 + ! Vertex at index JJ-1,KK-1: + INDXI1(IAXIS:KAXIS) = (/ II, JJ-1, KK-1 /) ! Local x1,x2,x3 INDI1 = INDXI1(XIAXIS) INDJ1 = INDXI1(XJAXIS) INDK1 = INDXI1(XKAXIS) - ! Vertex at index JJ-FCELL+1,KK-FCELL: - INDXI2(IAXIS:KAXIS) = (/ II, JJ-FCELL+1, KK-FCELL /) ! Local x1,x2,x3 + ! Vertex at index JJ,KK-1: + INDXI2(IAXIS:KAXIS) = (/ II, JJ , KK-1 /) ! Local x1,x2,x3 INDI2 = INDXI2(XIAXIS) INDJ2 = INDXI2(XJAXIS) INDK2 = INDXI2(XKAXIS) - ! Vertex at index JJ-FCELL+1,KK-FCELL+1: - INDXI3(IAXIS:KAXIS) = (/ II, JJ-FCELL+1, KK-FCELL+1 /) ! Local x1,x2,x3 + ! Vertex at index JJ,KK: + INDXI3(IAXIS:KAXIS) = (/ II, JJ , KK /) ! Local x1,x2,x3 INDI3 = INDXI3(XIAXIS) INDJ3 = INDXI3(XJAXIS) INDK3 = INDXI3(XKAXIS) - ! Vertex at index JJ-FCELL,KK-FCELL+1: - INDXI4(IAXIS:KAXIS) = (/ II, JJ-FCELL , KK-FCELL+1 /) ! Local x1,x2,x3 + ! Vertex at index JJ-1,KK: + INDXI4(IAXIS:KAXIS) = (/ II, JJ-1, KK /) ! Local x1,x2,x3 INDI4 = INDXI4(XIAXIS) INDJ4 = INDXI4(XJAXIS) INDK4 = INDXI4(XKAXIS) @@ -16310,7 +16309,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ASCDESC=.TRUE. XVERT1(1:NSVERT) = XYZVERT(X2AXIS,1:NSVERT) XVERT2(1:NSVERT) = XYZVERT(X3AXIS,1:NSVERT) - CALL SORT_VERTS(CC_MAXVERTS_FACE,NSVERT,XVERT1,XVERT2,X2FACE(JJ-FCELL+1),ASCDESC,NV,V) + CALL SORT_VERTS(CC_MAXVERTS_FACE,NSVERT,XVERT1,XVERT2,X2FACE(JJ),ASCDESC,NV,V) DO IV=1,NV-1 NSSEG=NSSEG + 1 SEG_FACE((/NOD1,NOD2/),NSSEG) = (/ V(IV), V(IV+1) /) @@ -16321,7 +16320,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ASCDESC=.FALSE. XVERT1(1:NSVERT) = XYZVERT(X3AXIS,1:NSVERT) XVERT2(1:NSVERT) = XYZVERT(X2AXIS,1:NSVERT) - CALL SORT_VERTS(CC_MAXVERTS_FACE,NSVERT,XVERT1,XVERT2,X3FACE(KK-FCELL+1),ASCDESC,NV,V) + CALL SORT_VERTS(CC_MAXVERTS_FACE,NSVERT,XVERT1,XVERT2,X3FACE(KK),ASCDESC,NV,V) DO IV=1,NV-1 NSSEG=NSSEG + 1 SEG_FACE((/NOD1,NOD2/),NSSEG) = (/ V(IV), V(IV+1) /) @@ -16332,7 +16331,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ASCDESC=.FALSE. XVERT1(1:NSVERT) = XYZVERT(X2AXIS,1:NSVERT) XVERT2(1:NSVERT) = XYZVERT(X3AXIS,1:NSVERT) - CALL SORT_VERTS(CC_MAXVERTS_FACE,NSVERT,XVERT1,XVERT2,X2FACE(JJ-FCELL),ASCDESC,NV,V) + CALL SORT_VERTS(CC_MAXVERTS_FACE,NSVERT,XVERT1,XVERT2,X2FACE(JJ-1),ASCDESC,NV,V) DO IV=1,NV-1 NSSEG=NSSEG + 1 SEG_FACE((/NOD1,NOD2/),NSSEG) = (/ V(IV), V(IV+1) /) @@ -16343,7 +16342,7 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ASCDESC=.TRUE. XVERT1(1:NSVERT) = XYZVERT(X3AXIS,1:NSVERT) XVERT2(1:NSVERT) = XYZVERT(X2AXIS,1:NSVERT) - CALL SORT_VERTS(CC_MAXVERTS_FACE,NSVERT,XVERT1,XVERT2,X3FACE(KK-FCELL),ASCDESC,NV,V) + CALL SORT_VERTS(CC_MAXVERTS_FACE,NSVERT,XVERT1,XVERT2,X3FACE(KK-1),ASCDESC,NV,V) DO IV=1,NV-1 NSSEG=NSSEG + 1 SEG_FACE((/NOD1,NOD2/),NSSEG) = (/ V(IV), V(IV+1) /) @@ -16842,23 +16841,23 @@ SUBROUTINE GET_CARTFACE_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) ! Drop if face not cut-face: ! Test for FACE Cartesian edges being cut: ! If outface1 is true -> All regular edges for this face: - ! Edge at index KK-FCELL: - INDXI1(IAXIS:KAXIS) = (/ II, JJ, KK-FCELL /) ! Local x1,x2,x3 + ! Edge at index KK-1: + INDXI1(IAXIS:KAXIS) = (/ II, JJ , KK-1 /) ! Local x1,x2,x3 INDI1 = INDXI1(XIAXIS) INDJ1 = INDXI1(XJAXIS) INDK1 = INDXI1(XKAXIS) - ! Edge at index KK-FCELL+1: - INDXI2(IAXIS:KAXIS) = (/ II, JJ, KK-FCELL+1 /) ! Local x1,x2,x3 + ! Edge at index KK: + INDXI2(IAXIS:KAXIS) = (/ II, JJ , KK /) ! Local x1,x2,x3 INDI2 = INDXI2(XIAXIS) INDJ2 = INDXI2(XJAXIS) INDK2 = INDXI2(XKAXIS) - ! Edge at index JJ-FCELL: - INDXI3(IAXIS:KAXIS) = (/ II, JJ-FCELL, KK /) ! Local x1,x2,x3 + ! Edge at index JJ-1: + INDXI3(IAXIS:KAXIS) = (/ II, JJ-1, KK /) ! Local x1,x2,x3 INDI3 = INDXI3(XIAXIS) INDJ3 = INDXI3(XJAXIS) INDK3 = INDXI3(XKAXIS) - ! Edge at index jj-FCELL+1: - INDXI4(IAXIS:KAXIS) = (/ II, JJ-FCELL+1, KK /) ! Local x1,x2,x3 + ! Edge at index jj: + INDXI4(IAXIS:KAXIS) = (/ II, JJ , KK /) ! Local x1,x2,x3 INDI4 = INDXI4(XIAXIS) INDJ4 = INDXI4(XJAXIS) INDK4 = INDXI4(XKAXIS) @@ -18378,12 +18377,12 @@ SUBROUTINE GET_CARTCELL_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) IF(IJK_COUNTED(I,J,K)) CYCLE ! Face type of bounding Cartesian faces: - FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-FCELL ,J,K,CC_FGSC,IAXIS) - FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I-FCELL+1,J,K,CC_FGSC,IAXIS) - FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL ,K,CC_FGSC,JAXIS) - FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL+1,K,CC_FGSC,JAXIS) - FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL ,CC_FGSC,KAXIS) - FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL+1,CC_FGSC,KAXIS) + FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-1,J,K,CC_FGSC,IAXIS) + FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I ,J,K,CC_FGSC,IAXIS) + FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-1,K,CC_FGSC,JAXIS) + FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J ,K,CC_FGSC,JAXIS) + FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-1,CC_FGSC,KAXIS) + FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K ,CC_FGSC,KAXIS) ! For this cell check if no Cartesian boundary faces are CC_CUTCFE: ! If outcell1 is true -> All regular faces for this face: @@ -18603,10 +18602,10 @@ SUBROUTINE GET_CARTCELL_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) IF (MESHES(NM)%FCVAR(INDIF,INDJF,INDKF,CC_FGSC,X1AXIS) /= CC_GASPHASE ) THEN - FVERT(IAXIS:JAXIS,NOD1) = (/ X2FACE(JJ-FCELL ), X3FACE(KK-FCELL ) /) - FVERT(IAXIS:JAXIS,NOD2) = (/ X2FACE(JJ-FCELL+1), X3FACE(KK-FCELL ) /) - FVERT(IAXIS:JAXIS,NOD3) = (/ X2FACE(JJ-FCELL+1), X3FACE(KK-FCELL+1) /) - FVERT(IAXIS:JAXIS,NOD4) = (/ X2FACE(JJ-FCELL ), X3FACE(KK-FCELL+1) /) + FVERT(IAXIS:JAXIS,NOD1) = (/ X2FACE(JJ-1), X3FACE(KK-1) /) + FVERT(IAXIS:JAXIS,NOD2) = (/ X2FACE(JJ ), X3FACE(KK-1) /) + FVERT(IAXIS:JAXIS,NOD3) = (/ X2FACE(JJ ), X3FACE(KK ) /) + FVERT(IAXIS:JAXIS,NOD4) = (/ X2FACE(JJ-1), X3FACE(KK ) /) ! Get triangle face intersection: CEI = MESHES(NM)%FCVAR(INDIF,INDJF,INDKF,CC_IDCE,X1AXIS) @@ -18772,12 +18771,12 @@ SUBROUTINE GET_CARTCELL_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) IF(IJK_COUNTED(I,J,K)) CYCLE; IJK_COUNTED(I,J,K)=.TRUE. ! Face type of bounding Cartesian faces: - FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-FCELL ,J,K,CC_FGSC,IAXIS) - FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I-FCELL+1,J,K,CC_FGSC,IAXIS) - FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL ,K,CC_FGSC,JAXIS) - FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL+1,K,CC_FGSC,JAXIS) - FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL ,CC_FGSC,KAXIS) - FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL+1,CC_FGSC,KAXIS) + FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-1,J,K,CC_FGSC,IAXIS) + FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I ,J,K,CC_FGSC,IAXIS) + FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-1,K,CC_FGSC,JAXIS) + FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J ,K,CC_FGSC,JAXIS) + FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-1,CC_FGSC,KAXIS) + FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K ,CC_FGSC,KAXIS) ! Start cut-cell INB cut-faces computation: ! Loop local arrays to cell: @@ -18789,12 +18788,12 @@ SUBROUTINE GET_CARTCELL_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) XYZVERT = 0._EB ! CUT_EDGE index of bounding Cartesian faces: - CEIB_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-FCELL ,J,K,CC_IDCE,IAXIS) - CEIB_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I-FCELL+1,J,K,CC_IDCE,IAXIS) - CEIB_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL ,K,CC_IDCE,JAXIS) - CEIB_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL+1,K,CC_IDCE,JAXIS) - CEIB_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL ,CC_IDCE,KAXIS) - CEIB_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL+1,CC_IDCE,KAXIS) + CEIB_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-1,J,K,CC_IDCE,IAXIS) + CEIB_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I ,J,K,CC_IDCE,IAXIS) + CEIB_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-1,K,CC_IDCE,JAXIS) + CEIB_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J ,K,CC_IDCE,JAXIS) + CEIB_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-1,CC_IDCE,KAXIS) + CEIB_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K ,CC_IDCE,KAXIS) ! Cartesian Faces INBOUNDARY segments: DO FAXIS=IAXIS,KAXIS @@ -19154,26 +19153,26 @@ SUBROUTINE GET_CARTCELL_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) XMAX(KAXIS) = MAX(XMAX(KAXIS), XYZVERT(KAXIS,SEG_FACE2(NOD1,ISEG_FACE))) ENDDO ! IAXIS: - IF ( (ABS(NORMTRI(IAXIS)+1._EB) < GEOMEPS) .AND. & - (ABS(XFACE(I-FCELL )-XMIN(IAXIS)) < GEOMEPS) .AND. & - (ABS(XFACE(I-FCELL )-XMAX(IAXIS)) < GEOMEPS)) CYCLE ! Low Face - IF ( (ABS(NORMTRI(IAXIS)-1._EB) < GEOMEPS) .AND. & - (ABS(XFACE(I-FCELL+1)-XMIN(IAXIS)) < GEOMEPS) .AND. & - (ABS(XFACE(I-FCELL+1)-XMAX(IAXIS)) < GEOMEPS)) CYCLE ! High Face + IF ( (ABS(NORMTRI(IAXIS)+1._EB) < GEOMEPS) .AND. & + (ABS(XFACE(I-1)-XMIN(IAXIS)) < GEOMEPS) .AND. & + (ABS(XFACE(I-1)-XMAX(IAXIS)) < GEOMEPS)) CYCLE ! Low Face + IF ( (ABS(NORMTRI(IAXIS)-1._EB) < GEOMEPS) .AND. & + (ABS(XFACE(I )-XMIN(IAXIS)) < GEOMEPS) .AND. & + (ABS(XFACE(I )-XMAX(IAXIS)) < GEOMEPS)) CYCLE ! High Face ! JAXIS: - IF ( (ABS(NORMTRI(JAXIS)+1._EB) < GEOMEPS) .AND. & - (ABS(YFACE(J-FCELL )-XMIN(JAXIS)) < GEOMEPS) .AND. & - (ABS(YFACE(J-FCELL )-XMAX(JAXIS)) < GEOMEPS)) CYCLE ! Low Face - IF ( (ABS(NORMTRI(JAXIS)-1._EB) < GEOMEPS) .AND. & - (ABS(YFACE(J-FCELL+1)-XMIN(JAXIS)) < GEOMEPS) .AND. & - (ABS(YFACE(J-FCELL+1)-XMAX(JAXIS)) < GEOMEPS)) CYCLE ! High Face + IF ( (ABS(NORMTRI(JAXIS)+1._EB) < GEOMEPS) .AND. & + (ABS(YFACE(J-1)-XMIN(JAXIS)) < GEOMEPS) .AND. & + (ABS(YFACE(J-1)-XMAX(JAXIS)) < GEOMEPS)) CYCLE ! Low Face + IF ( (ABS(NORMTRI(JAXIS)-1._EB) < GEOMEPS) .AND. & + (ABS(YFACE(J )-XMIN(JAXIS)) < GEOMEPS) .AND. & + (ABS(YFACE(J )-XMAX(JAXIS)) < GEOMEPS)) CYCLE ! High Face ! KAXIS: - IF ( (ABS(NORMTRI(KAXIS)+1._EB) < GEOMEPS) .AND. & - (ABS(ZFACE(K-FCELL )-XMIN(KAXIS)) < GEOMEPS) .AND. & - (ABS(ZFACE(K-FCELL )-XMAX(KAXIS)) < GEOMEPS)) CYCLE ! Low Face - IF ( (ABS(NORMTRI(KAXIS)-1._EB) < GEOMEPS) .AND. & - (ABS(ZFACE(K-FCELL+1)-XMIN(KAXIS)) < GEOMEPS) .AND. & - (ABS(ZFACE(K-FCELL+1)-XMAX(KAXIS)) < GEOMEPS)) CYCLE ! High Face + IF ( (ABS(NORMTRI(KAXIS)+1._EB) < GEOMEPS) .AND. & + (ABS(ZFACE(K-1)-XMIN(KAXIS)) < GEOMEPS) .AND. & + (ABS(ZFACE(K-1)-XMAX(KAXIS)) < GEOMEPS)) CYCLE ! Low Face + IF ( (ABS(NORMTRI(KAXIS)-1._EB) < GEOMEPS) .AND. & + (ABS(ZFACE(K )-XMIN(KAXIS)) < GEOMEPS) .AND. & + (ABS(ZFACE(K )-XMAX(KAXIS)) < GEOMEPS)) CYCLE ! High Face ! Face Vertices average location: XCEN(IAXIS:KAXIS) = 0._EB @@ -19427,12 +19426,12 @@ SUBROUTINE GET_CARTCELL_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) XYZVERT = 0._EB ! CUT_EDGE index of bounding Cartesian faces: - CEIB_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-FCELL ,J,K,CC_IDCE,IAXIS) - CEIB_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I-FCELL+1,J,K,CC_IDCE,IAXIS) - CEIB_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL ,K,CC_IDCE,JAXIS) - CEIB_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL+1,K,CC_IDCE,JAXIS) - CEIB_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL ,CC_IDCE,KAXIS) - CEIB_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL+1,CC_IDCE,KAXIS) + CEIB_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-1,J,K,CC_IDCE,IAXIS) + CEIB_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I ,J,K,CC_IDCE,IAXIS) + CEIB_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-1,K,CC_IDCE,JAXIS) + CEIB_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J ,K,CC_IDCE,JAXIS) + CEIB_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-1,CC_IDCE,KAXIS) + CEIB_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K ,CC_IDCE,KAXIS) ! Cartesian Faces INBOUNDARY segments: DO FAXIS=IAXIS,KAXIS @@ -19579,20 +19578,20 @@ SUBROUTINE GET_CARTCELL_CUTFACES(NM,ISTR,IEND,JSTR,JEND,KSTR,KEND,BNDINT_FLAG) XYZVERT(IAXIS:KAXIS,CFELEM(1+NOD2,ICF)) + & XYZVERT(IAXIS:KAXIS,CFELEM(1+NOD3,ICF))) ! IAXIS: - IF ( (ABS(NORMTRI(IAXIS)+1._EB) < GEOMEPS) .AND. & - (ABS(XFACE(I-FCELL )-ACEN(IAXIS)) < GEOMEPS) ) CYCLE ! Low Face - IF ( (ABS(NORMTRI(IAXIS)-1._EB) < GEOMEPS) .AND. & - (ABS(XFACE(I-FCELL+1)-ACEN(IAXIS)) < GEOMEPS) ) CYCLE ! High Face + IF ( (ABS(NORMTRI(IAXIS)+1._EB) < GEOMEPS) .AND. & + (ABS(XFACE(I-1)-ACEN(IAXIS)) < GEOMEPS) ) CYCLE ! Low Face + IF ( (ABS(NORMTRI(IAXIS)-1._EB) < GEOMEPS) .AND. & + (ABS(XFACE(I )-ACEN(IAXIS)) < GEOMEPS) ) CYCLE ! High Face ! JAXIS: - IF ( (ABS(NORMTRI(JAXIS)+1._EB) < GEOMEPS) .AND. & - (ABS(YFACE(J-FCELL )-ACEN(JAXIS)) < GEOMEPS) ) CYCLE ! Low Face - IF ( (ABS(NORMTRI(JAXIS)-1._EB) < GEOMEPS) .AND. & - (ABS(YFACE(J-FCELL+1)-ACEN(JAXIS)) < GEOMEPS) ) CYCLE ! High Face + IF ( (ABS(NORMTRI(JAXIS)+1._EB) < GEOMEPS) .AND. & + (ABS(YFACE(J-1)-ACEN(JAXIS)) < GEOMEPS) ) CYCLE ! Low Face + IF ( (ABS(NORMTRI(JAXIS)-1._EB) < GEOMEPS) .AND. & + (ABS(YFACE(J )-ACEN(JAXIS)) < GEOMEPS) ) CYCLE ! High Face ! KAXIS: - IF ( (ABS(NORMTRI(KAXIS)+1._EB) < GEOMEPS) .AND. & - (ABS(ZFACE(K-FCELL )-ACEN(KAXIS)) < GEOMEPS) ) CYCLE ! Low Face - IF ( (ABS(NORMTRI(KAXIS)-1._EB) < GEOMEPS) .AND. & - (ABS(ZFACE(K-FCELL+1)-ACEN(KAXIS)) < GEOMEPS) ) CYCLE ! High Face + IF ( (ABS(NORMTRI(KAXIS)+1._EB) < GEOMEPS) .AND. & + (ABS(ZFACE(K-1)-ACEN(KAXIS)) < GEOMEPS) ) CYCLE ! Low Face + IF ( (ABS(NORMTRI(KAXIS)-1._EB) < GEOMEPS) .AND. & + (ABS(ZFACE(K )-ACEN(KAXIS)) < GEOMEPS) ) CYCLE ! High Face ! Area: AREA = 0.5_EB*NNORM @@ -20317,20 +20316,20 @@ SUBROUTINE GET_CARTCELL_CUTCELLS(NM) ! Start with Cartesian Faces: ! Face type of bounding Cartesian faces: - FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-FCELL ,J,K,CC_FGSC,IAXIS) - FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I-FCELL+1,J,K,CC_FGSC,IAXIS) - FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL ,K,CC_FGSC,JAXIS) - FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL+1,K,CC_FGSC,JAXIS) - FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL ,CC_FGSC,KAXIS) - FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL+1,CC_FGSC,KAXIS) + FSID_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-1,J,K,CC_FGSC,IAXIS) + FSID_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I ,J,K,CC_FGSC,IAXIS) + FSID_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-1,K,CC_FGSC,JAXIS) + FSID_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J ,K,CC_FGSC,JAXIS) + FSID_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-1,CC_FGSC,KAXIS) + FSID_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K ,CC_FGSC,KAXIS) ! Cut-face number of bounding Cartesian faces: - IDCF_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-FCELL ,J,K,CC_IDCF,IAXIS) - IDCF_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I-FCELL+1,J,K,CC_IDCF,IAXIS) - IDCF_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL ,K,CC_IDCF,JAXIS) - IDCF_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J-FCELL+1,K,CC_IDCF,JAXIS) - IDCF_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL ,CC_IDCF,KAXIS) - IDCF_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K-FCELL+1,CC_IDCF,KAXIS) + IDCF_XYZ(LOW_IND ,IAXIS) = MESHES(NM)%FCVAR(I-1,J,K,CC_IDCF,IAXIS) + IDCF_XYZ(HIGH_IND,IAXIS) = MESHES(NM)%FCVAR(I ,J,K,CC_IDCF,IAXIS) + IDCF_XYZ(LOW_IND ,JAXIS) = MESHES(NM)%FCVAR(I,J-1,K,CC_IDCF,JAXIS) + IDCF_XYZ(HIGH_IND,JAXIS) = MESHES(NM)%FCVAR(I,J ,K,CC_IDCF,JAXIS) + IDCF_XYZ(LOW_IND ,KAXIS) = MESHES(NM)%FCVAR(I,J,K-1,CC_IDCF,KAXIS) + IDCF_XYZ(HIGH_IND,KAXIS) = MESHES(NM)%FCVAR(I,J,K ,CC_IDCF,KAXIS) ! Local variables: ! Geometric entities related to the Cartesian cell: @@ -20344,7 +20343,7 @@ SUBROUTINE GET_CARTCELL_CUTCELLS(NM) AREAVARS = 0._EB ! Add Cartesian Regular faces + GASPHASE cut-faces + vertices: - IED = I-FCELL; JED = J-FCELL; KED = K-FCELL + IED = I-1; JED = J-1; KED = K-1 MYAXIS_LOOP : DO MYAXIS=IAXIS,KAXIS SELECT CASE(MYAXIS) CASE(IAXIS) @@ -20762,7 +20761,7 @@ SUBROUTINE GET_CARTCELL_CUTCELLS(NM) NVERT_CELL = 0 CFELEM = 0 ! Define from SOLID FACES CFACES for the cell: - IED = I-FCELL; JED = J-FCELL; KED = K-FCELL + IED = I-1; JED = J-1; KED = K-1 AXIS_LOOP : DO MYAXIS=IAXIS,KAXIS SELECT CASE(MYAXIS) CASE(IAXIS)