Skip to content

Commit 74d44c8

Browse files
committed
FDS Source : WIP, Grid Refinement for Global Pressure Solvers.
1 parent 1c00274 commit 74d44c8

File tree

4 files changed

+637
-281
lines changed

4 files changed

+637
-281
lines changed

Source/ccib.f90

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ MODULE CC_SCALARS
107107
CC_CUTCELL_VELOCITY,CC_CUTFACE_VELOCITY,CC_RESTORE_UVW_UNLINKED,&
108108
CHECK_CFLVN_LINKED_CELLS,ADD_Q_DOT_CUTCELLS,CFACE_THERMAL_GASVARS,&
109109
CFACE_PREDICT_NORMAL_VELOCITY,COMPUTE_LINKED_CUTFACE_BAROCLINIC,&
110-
COPY_CC_UNKH_TO_HS, COPY_CC_HS_TO_UNKH, COPY_UNST_DM_TO_CART, CUTFACE_VELOCITIES, &
110+
COPY_CC_UNKH_TO_HS, COPY_CC_MUNKH_TO_UNKH, COPY_UNST_DM_TO_CART, CUTFACE_VELOCITIES, &
111111
GET_CFACE_OPEN_BC_COEF,GET_FN_DIVERGENCE_CUTCELL,GET_OPENBC_TANGENTIAL_CUTFACE_VEL,&
112112
GET_CUTCELL_DDDT,GET_H_CUTFACES,GET_H_MATRIX_CC,GET_H_GUARD_CUTCELL,GET_CRTCFCC_INT_STENCILS,GET_RCFACES_H, &
113113
GET_CC_MATRIXGRAPH_H,GET_CC_IROW,GET_CC_UNKH,GET_CUTCELL_HP, GET_LINKED_FV, GET_PRES_CFACE_BCS, &
@@ -21702,44 +21702,57 @@ SUBROUTINE NUMBER_UNKH_CUTCELLS(FLAG12,NM,IPZ,NUNKH_LC)
2170221702
RETURN
2170321703
END SUBROUTINE NUMBER_UNKH_CUTCELLS
2170421704

21705-
! ------------------- COPY_CC_HS_TO_UNKH ----------------------------
21705+
! ------------------- COPY_CC_MUNKH_TO_UNKH ----------------------------
2170621706

21707-
SUBROUTINE COPY_CC_HS_TO_UNKH(NM)
21708-
21709-
INTEGER, INTENT(IN) :: NM
21707+
SUBROUTINE COPY_CC_MUNKH_TO_UNKH
2171021708

2171121709
! Local Variables:
21712-
INTEGER :: NOM,ICC,II,JJ,KK,IOR,IW,IIO,JJO,KKO
21710+
INTEGER :: NOM,ICC,IW,IIO,JJO,KKO,II,JJ,KK
2171321711
TYPE (OMESH_TYPE), POINTER :: OM
21714-
21712+
TYPE (BOUNDARY_COORD_TYPE), POINTER :: BC
2171521713
! Loop over external wall cells:
2171621714
EXTERNAL_WALL_LOOP: DO IW=1,N_EXTERNAL_WALL_CELLS
2171721715

2171821716
WC=>WALL(IW)
2171921717
EWC=>EXTERNAL_WALL(IW)
2172021718
IF (WC%BOUNDARY_TYPE/=INTERPOLATED_BOUNDARY) CYCLE EXTERNAL_WALL_LOOP
2172121719

21722-
BC => BOUNDARY_COORD(WC%BC_INDEX)
21723-
II = BC%II
21724-
JJ = BC%JJ
21725-
KK = BC%KK
21726-
IOR = BC%IOR
2172721720
NOM = EWC%NOM
2172821721
OM => OMESH(NOM)
2172921722

2173021723
! This assumes all meshes at the same level of refinement:
2173121724
KKO=EWC%KKO_MIN
2173221725
JJO=EWC%JJO_MIN
2173321726
IIO=EWC%IIO_MIN
21734-
21727+
BC => BOUNDARY_COORD(WC%BC_INDEX)
21728+
II = BC%II; JJ = BC%JJ; KK = BC%KK;
2173521729
ICC=CCVAR(II,JJ,KK,CC_IDCC)
21736-
2173721730
IF (ICC > 0) THEN ! Cut-cells on this guard-cell Cartesian cell.
21738-
MESHES(NM)%CUT_CELL(ICC)%UNKH(1) = INT(OM%HS(IIO,JJO,KKO))
21731+
CUT_CELL(ICC)%UNKH(1) = OM%MUNKH(IIO,JJO,KKO)
2173921732
ELSE
21740-
MESHES(NM)%CCVAR(II,JJ,KK,CC_UNKH) = INT(OM%HS(IIO,JJO,KKO))
21733+
CCVAR(II,JJ,KK,CC_UNKH) = OM%MUNKH(IIO,JJO,KKO)
2174121734
ENDIF
2174221735

21736+
! ! Loop over all cells in mesh NOM that correspond to this boundary face (supports grid refinement):
21737+
! DO KKO = EWC%KKO_MIN, EWC%KKO_MAX
21738+
! DO JJO = EWC%JJO_MIN, EWC%JJO_MAX
21739+
! DO IIO = EWC%IIO_MIN, EWC%IIO_MAX
21740+
21741+
! ! Check if this cell in mesh NOM is a cut-cell:
21742+
! ICC = MESHES(NOM)%CCVAR(IIO,JJO,KKO,CC_IDCC)
21743+
21744+
! IF (ICC > 0) THEN
21745+
! ! Copy to cut-cell storage in mesh NOM:
21746+
! MESHES(NOM)%CUT_CELL(ICC)%UNKH(1) = OM%MUNKH(IIO,JJO,KKO)
21747+
! ELSE
21748+
! ! Copy to regular cell storage in mesh NOM:
21749+
! MESHES(NOM)%CCVAR(IIO,JJO,KKO,CC_UNKH) = OM%MUNKH(IIO,JJO,KKO)
21750+
! ENDIF
21751+
21752+
! ENDDO
21753+
! ENDDO
21754+
! ENDDO
21755+
2174321756
ENDDO EXTERNAL_WALL_LOOP
2174421757

2174521758
! Loop over external wall cells:
@@ -21753,7 +21766,7 @@ SUBROUTINE COPY_CC_HS_TO_UNKH(NM)
2175321766
ENDDO EXTERNAL_WALL_LOOP2
2175421767

2175521768
RETURN
21756-
END SUBROUTINE COPY_CC_HS_TO_UNKH
21769+
END SUBROUTINE COPY_CC_MUNKH_TO_UNKH
2175721770

2175821771
! ------------------- COPY_CC_UNKH_TO_HS ----------------------------
2175921772

Source/main.f90

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1612,15 +1612,19 @@ SUBROUTINE GLOBAL_MATRIX_REASSIGN(FORCE_REASSIGN)
16121612
CALL ULMAT_SOLVER_SETUP(NM)
16131613
ENDDO
16141614
CALL STOP_CHECK(1)
1615-
CASE (UGLMAT_FLAG,GLMAT_FLAG)
1616-
IF(ALLOCATED(ZONE_SOLVE)) CALL FINISH_GLMAT_SOLVER
1617-
CALL GLMAT_SOLVER_SETUP(1)
1618-
CALL STOP_CHECK(1)
1619-
CALL MESH_EXCHANGE(3) ! Exchange guard cell info for CCVAR(I,J,K,CGSC) -> HS.
1620-
CALL GLMAT_SOLVER_SETUP(2)
1621-
CALL MESH_EXCHANGE(3) ! Exchange guard cell info for CCVAR(I,J,K,UNKH) -> HS.
1622-
CALL GLMAT_SOLVER_SETUP(3)
1623-
CALL STOP_CHECK(1)
1615+
CASE (UGLMAT_FLAG,GLMAT_FLAG)
1616+
IF(ALLOCATED(ZONE_SOLVE)) CALL FINISH_GLMAT_SOLVER
1617+
CALL GLMAT_SOLVER_SETUP(-1) ! Initialize EWC_TYPE, copy wall types to HS
1618+
CALL STOP_CHECK(1)
1619+
CALL MESH_EXCHANGE(3) ! Exchange guard cell info for IS_WALLT -> HS
1620+
CALL GLMAT_SOLVER_SETUP(0) ! Process coarse faces, copy updated wall types to HS
1621+
CALL MESH_EXCHANGE(3) ! Re-exchange guard cell info for IS_WALLT -> HS
1622+
CALL GLMAT_SOLVER_SETUP(1)
1623+
CALL MESH_EXCHANGE(3) ! Exchange guard cell info for CCVAR(I,J,K,CGSC) -> HS
1624+
CALL GLMAT_SOLVER_SETUP(2)
1625+
CALL MESH_EXCHANGE(3) ! Exchange guard cell info for CCVAR(I,J,K,UNKH) -> HS
1626+
CALL GLMAT_SOLVER_SETUP(3)
1627+
CALL STOP_CHECK(1)
16241628
END SELECT
16251629
OBST_CREATED_OR_REMOVED = .FALSE.
16261630
ENDIF

0 commit comments

Comments
 (0)