Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
5de52ec
FDS Source: WIP refactor of cut-cell grid setup.
Mar 24, 2026
9b0ed00
Merge remote-tracking branch 'firemodels/master' into cc-fv-refactor
Mar 24, 2026
bb46626
Merge remote-tracking branch 'firemodels/master' into cc-fv-refactor
Mar 25, 2026
04c94cf
FDS Source: WIP, move SET_CUTCELLS_3D to COMPLEX_GEOMETRY_GRID.
Mar 25, 2026
9d4d8fd
Merge remote-tracking branch 'firemodels/master' into cc-fv-refactor
Mar 25, 2026
10367ad
FDS Source: Move all grid routines and related data to COMPLEX_GEOMET…
Mar 27, 2026
ec171e3
Merge remote-tracking branch 'firemodels/master' into cc-fv-refactor
Mar 27, 2026
446881f
Merge remote-tracking branch 'firemodels/master' into cc-fv-refactor
Apr 3, 2026
f1abafa
FDS Source : Move some parameters to COMPLEX_GEOMETRY_GRID.
Apr 3, 2026
1232822
FDS Source: declare IPARM in GLOBMAT_SOLVER.
Apr 3, 2026
76c8238
FDS Source : add SET_CVS_3D skeleton.
Apr 3, 2026
7bc7907
Merge remote-tracking branch 'firemodels/master' into cc-fv-refactor
Apr 8, 2026
59d9077
FDS Source: Move CC_GRID_BUILD_RAW_CUTCELLS out of SET_CUTCELLS_3D.
Apr 8, 2026
b546bed
FDS Source: Fix argument type.
Apr 13, 2026
4926476
Merge remote-tracking branch 'firemodels/master' into cc-fv-refactor
Apr 16, 2026
da63a74
FDS Source : Move contained routines out of SET_CUTCELLS_3D, add GCEL…
Apr 16, 2026
2a39026
Merge remote-tracking branch 'firemodels/master' into cc-fv-refactor
Apr 21, 2026
9c674e3
FDS Source : more helper routine promotions in SET_CUTCELLS_3D.
Apr 21, 2026
b5191d5
FDS Source: Define some low level primitives for GET_CELL_LINK_INFO.
Apr 21, 2026
2445498
Merge branch 'master' into cc-fv-refactor-merge-test
Jun 11, 2026
5e37a86
FDS Source: bring master refinement-interface cut-cell blocking into …
Jun 15, 2026
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
20 changes: 19 additions & 1 deletion Source/ccib.f90
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,25 @@
!
MODULE CC_SCALARS

USE COMPLEX_GEOMETRY
USE COMPLEX_GEOMETRY, ONLY: GEOMEPS,LOOSEPS,GEOFCT,NGUARD,CCGUARD,CC_GASPHASE,CC_CUTCFE,CC_SOLID, &
CC_INBOUNDARY,CC_UNDEFINED,CC_VGSC,CC_EGSC,CC_IDCE, &
CC_FGSC,CC_IDCF,CC_IDRC,CC_UNKF,CC_CGSC,CC_IDCC,CC_UNKZ,CC_UNKH,CC_ETYPE_RGGAS, &
CC_ETYPE_CFGAS,CC_FTYPE_RGGAS,CC_FTYPE_CFGAS,CC_FTYPE_CFINB,CC_FTYPE_SVERT,CC_FTYPE_RCGAS, &
CC_FTYPE_CCGAS,CC_ETYPE_SCINB,CC_ETYPE_RCGAS,CC_ETYPE_EP,CC_MATVEC_DEFINED,NM_START, &
CALL_FOR_GLMAT,CALL_FROM_GLMAT_SETUP,N_REQ11,N_REQ12,N_REQ112,N_REQ13,REQ11,REQ112,REQ12,REQ13, &
WRITE_SET_CUTCELLS_TIMINGS,N_SET_CUTCELLS_3D_CALLS,SET_CUTCELLS_TIME_INDEX,GET_CARTCELL_CUTCELLS_TIME_INDEX, &
CC_SET_DATA_TIME_INDEX,INIT_CUTCELL_DATA_TIME_INDEX,CCCOMPUTE_RADIATION_TIME_INDEX, &
CC_DENSITY_TIME_INDEX,CC_VELOCITY_FLUX_TIME_INDEX,CC_COMPUTE_VISCOSITY_TIME_INDEX, &
CC_DIVERGENCE_PART_1_TIME_INDEX,CC_END_STEP_TIME_INDEX,CC_NO_FLUX_TIME_INDEX, &
CC_COMPUTE_VELOCITY_ERROR_TIME_INDEX,MESH_CC_EXCHANGE_TIME_INDEX,T_CC_USED, &
VAL_TESTX_LOW,VAL_TESTX_HIGH,VAL_TESTY_LOW,VAL_TESTY_HIGH,VAL_TESTZ_LOW,VAL_TESTZ_HIGH, &
LU_SETCC,SEARCH_OTHER_MESHES_FACE,POINT_IN_POLYGON
USE COMPLEX_GEOMETRY_GRID, ONLY: DELTA_INT,DELTA_VERT,DIST_THRES,FDS_AREA_GEOM,INDEX_UNDEFINED,INT_N_EXT_PTS, &
INT_P_IND,INT_TMP_IND,INT_VEL_IND,INT_RHO_IND,INT_H_IND,INT_RSUM_IND,INT_MU_IND,INT_MUDNS_IND, &
INT_RHO0_IND,INT_WCEN_IND,INT_VELS_IND,MAX_INTERP_POINTS,NQT2C,N_CUTCELLS_PROC,N_INB_CUTFACES_PROC, &
N_INT_CVARS,N_INT_CCVARS,N_REG_CUTFACES_PROC,N_LINK_ATTMP_F,GLOBAL_DELTA_CELL,GLOBAL_DELTA_EDGE, &
GLOBAL_DELTA_FACE,SET_CUTCELLS_3D,BLOCK_CC_SOLID_EXTWALLCELLS,INIT_CFACE_CELL,GET_REGULAR_CUT_EDGES_BC, &
GET_SOLID_CUTCELL_EDGES_BC
USE PRECISION_PARAMETERS
USE GLOBAL_CONSTANTS
USE MESH_POINTERS
Expand Down
45,576 changes: 22,468 additions & 23,108 deletions Source/geom.f90

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Source/init.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2579,7 +2579,7 @@ END SUBROUTINE INITIALIZE_POISSON_SOLVER

SUBROUTINE INITIALIZE_DEVICES(NM)

USE COMPLEX_GEOMETRY, ONLY : GET_CFACE_INDEX
USE COMPLEX_GEOMETRY_GRID, ONLY : GET_CFACE_INDEX
INTEGER, INTENT(IN) :: NM
INTEGER :: III,N,II,JJ,KK,IW,SURF_INDEX,ICF,N_CELLS_INI
REAL(EB) :: DEPTH,THICKNESS
Expand Down
6 changes: 6 additions & 0 deletions Source/mesh.f90
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,8 @@ MODULE MESH_VARIABLES
TYPE(CC_CUTFACE_TYPE), ALLOCATABLE, DIMENSION(:) :: CUT_FACE
TYPE(CC_CUTCELL_TYPE), ALLOCATABLE, DIMENSION(:) :: CUT_CELL

TYPE(CC_GCELL_TYPE) :: GCELL

INTEGER :: CC_NREGFACE_Z(MAX_DIM)=0, CC_NBBREGFACE_Z(MAX_DIM)=0
TYPE(CC_REGFACEZ_TYPE), ALLOCATABLE, DIMENSION(:) :: CC_REGFACE_IAXIS_Z, CC_REGFACE_JAXIS_Z, CC_REGFACE_KAXIS_Z
INTEGER :: CC_NRCFACE_Z=0, CC_NBBRCFACE_Z=0, CC_NRCFACE_H=0
Expand All @@ -266,6 +268,8 @@ MODULE MESH_VARIABLES
! Arrays for special cut-cells:
INTEGER :: N_SPCELL=0, N_SPCELL_CF=0
INTEGER, ALLOCATABLE, DIMENSION(:,:) :: SPCELL_LIST
INTEGER :: N_SPCELLS_TO_BLOCK=0
INTEGER, ALLOCATABLE, DIMENSION(:) :: SPCELLS_TO_BLOCK

! Linked face velocity arrays:
REAL(EB), ALLOCATABLE, DIMENSION(:) :: EWC_UN_LNK, UN_LNK, UN_ULNK
Expand Down Expand Up @@ -431,6 +435,7 @@ MODULE MESH_POINTERS
TYPE(CC_CUTEDGE_TYPE), POINTER, DIMENSION(:) :: CUT_EDGE
TYPE(CC_CUTFACE_TYPE), POINTER, DIMENSION(:) :: CUT_FACE
TYPE(CC_CUTCELL_TYPE), POINTER, DIMENSION(:) :: CUT_CELL
TYPE(CC_GCELL_TYPE), POINTER :: GCELL
TYPE(CC_REGFACEZ_TYPE), POINTER, DIMENSION(:) :: CC_REGFACE_IAXIS_Z, CC_REGFACE_JAXIS_Z, CC_REGFACE_KAXIS_Z
TYPE(CC_RCFACE_TYPE), POINTER, DIMENSION(:):: RC_FACE
TYPE(CC_EDGE_TYPE), POINTER, DIMENSION(:):: CC_RCEDGE, CC_IBEDGE
Expand Down Expand Up @@ -781,6 +786,7 @@ SUBROUTINE POINT_TO_MESH(NM)
CUT_EDGE=>M%CUT_EDGE
CUT_FACE=>M%CUT_FACE
CUT_CELL=>M%CUT_CELL
GCELL=>M%GCELL
CC_REGFACE_IAXIS_Z=>M%CC_REGFACE_IAXIS_Z
CC_REGFACE_JAXIS_Z=>M%CC_REGFACE_JAXIS_Z
CC_REGFACE_KAXIS_Z=>M%CC_REGFACE_KAXIS_Z
Expand Down
5 changes: 3 additions & 2 deletions Source/part.f90
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ END SUBROUTINE INSERT_VENT_PARTICLES

SUBROUTINE PARTICLE_FACE_INSERT(WALL_INDEX,CFACE_INDEX)

USE COMPLEX_GEOMETRY, ONLY : RANDOM_CFACE_XYZ
USE COMPLEX_GEOMETRY_GRID, ONLY : RANDOM_CFACE_XYZ
USE PHYSICAL_FUNCTIONS, ONLY: GET_PARTICLE_ENTHALPY
USE MEMORY_FUNCTIONS, ONLY: ALLOCATE_STORAGE
INTEGER, INTENT(IN), OPTIONAL :: WALL_INDEX,CFACE_INDEX
Expand Down Expand Up @@ -1824,7 +1824,8 @@ END SUBROUTINE INSERT_ALL_PARTICLES
SUBROUTINE MOVE_PARTICLES(T,DT,NM)

USE TRAN, ONLY: GET_IJK
USE COMPLEX_GEOMETRY, ONLY: CC_CGSC,CC_FGSC,CC_IDCF,CC_GASPHASE,CC_SOLID,CC_CUTCFE,POINT_IN_CFACE
USE COMPLEX_GEOMETRY, ONLY: CC_CGSC,CC_FGSC,CC_IDCF,CC_GASPHASE,CC_SOLID,CC_CUTCFE
USE COMPLEX_GEOMETRY_GRID, ONLY: POINT_IN_CFACE
USE CC_SCALARS, ONLY: CUTFACE_VELOCITIES
USE MATH_FUNCTIONS, ONLY: CROSS_PRODUCT
USE PHYSICAL_FUNCTIONS, ONLY: EMBER_IGNITION_MODEL
Expand Down
12 changes: 7 additions & 5 deletions Source/pres.f90
Original file line number Diff line number Diff line change
Expand Up @@ -3078,7 +3078,7 @@ MODULE GLOBMAT_SOLVER
USE GLOBAL_CONSTANTS
USE MESH_POINTERS
USE COMPLEX_GEOMETRY, ONLY : CALL_FOR_GLMAT, CC_CGSC,CC_FGSC, CC_UNKH, CC_NCVARS, CC_IDCC, &
NM_START,IPARM,NNZ_ROW_H,CALL_FROM_GLMAT_SETUP
NM_START,CALL_FROM_GLMAT_SETUP
USE CC_SCALARS, ONLY : GET_H_CUTFACES, GET_BOUNDFACE_GEOM_INFO_H, ADD_INPLACE_NNZ_H_WHLDOM, &
COPY_CC_MUNKH_TO_UNKH, COPY_CC_UNKH_TO_HS

Expand Down Expand Up @@ -3112,7 +3112,11 @@ MODULE GLOBMAT_SOLVER
! Define CC pointers:
TYPE(CC_CUTCELL_TYPE), POINTER :: CC

! Pardiso or Sparse cluster solver message level:

! Pardiso or Sparse cluster solver IPARM and message level:
#ifdef WITH_MKL
INTEGER, ALLOCATABLE :: IPARM( : )
#endif
INTEGER, SAVE :: MSGLVL = 0 ! 0 no messages, 1 print statistical information

! Factor to drop DY in cylindrical axisymmetric coordinates.
Expand Down Expand Up @@ -3763,9 +3767,7 @@ SUBROUTINE GLMAT_SOLVER_SETUP(STAGE_FLAG)
! fields on each mesh:
CALL GET_BOUNDFACE_GEOM_INFO_H

! 6. Get nonzeros graph of the Poisson matrix, defined as:
! - NNZ_D_MAT_H(1:NUNKH_LOCAL) Number of nonzeros on per matrix row.
! - JD_MAT_H(1:NNZ_ROW_H,1:NUNKH_LOCAL) Column location of nonzeros, global numeration.
! 6. Get nonzeros graph of the Poisson matrix:
CALL GET_MATRIXGRAPH_H_WHLDOM ! Define the Graph of the Matrix for Gasphase cells on whole domain.

! 7. Build discrete Laplace operator matrix:
Expand Down
15 changes: 15 additions & 0 deletions Source/type.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1439,6 +1439,21 @@ MODULE TYPES
END TYPE CC_CUTCELL_TYPE


!> \brief Mesh-owned GCELL storage in SoA form.
!! One GCELL slot IG = one connected gas polyhedron in the active complex-geometry region.

TYPE CC_GCELL_TYPE
INTEGER :: N = 0
INTEGER, ALLOCATABLE, DIMENSION(:) :: CELL_TYPE !< (1:N) CC_GCELL_CUT or CC_GCELL_REG.
INTEGER, ALLOCATABLE, DIMENSION(:,:) :: IJK !< (IAXIS:KAXIS,1:N) host Cartesian cell indices.
INTEGER, ALLOCATABLE, DIMENSION(:) :: ICC !< (1:N) CUT_CELL index (0 if regular cell).
INTEGER, ALLOCATABLE, DIMENSION(:) :: JCC !< (1:N) sub-cell index within CUT_CELL (0 if regular).
INTEGER, ALLOCATABLE, DIMENSION(:) :: STATUS !< (1:N) active / blocked.
REAL(EB), ALLOCATABLE, DIMENSION(:) :: VOLUME !< (1:N) cached volume.
REAL(EB), ALLOCATABLE, DIMENSION(:,:) :: XYZCEN !< (IAXIS:KAXIS,1:N) cached centroid.
END TYPE CC_GCELL_TYPE


!> \brief Regular faces type that contains indexes for construction of H Poisson discretization matrix.

TYPE CC_REGFACE_TYPE
Expand Down
Loading