Skip to content

Commit 8f03dbf

Browse files
committed
FDS Source: add HYPRE_PARCSRMATRIXPRINT to HYPRE interface
1 parent ef8f45e commit 8f03dbf

File tree

5 files changed

+19
-4
lines changed

5 files changed

+19
-4
lines changed

Source/cons.f90

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ MODULE GLOBAL_CONSTANTS
194194
LOGICAL :: ACCUMULATE_WATER=.FALSE. !< Indicates that integrated liquid outputs are specified
195195
LOGICAL :: WRITE_XYZ=.FALSE. !< Indicates that a Plot3D geometry file is specified by user
196196
LOGICAL :: CHECK_POISSON=.FALSE. !< Check the accuracy of the Poisson solver
197+
LOGICAL :: WRITE_PARCSRPCG_MATRIX=.FALSE. !< If true, write out matrix for UGLMAT HYPRE solver
197198
LOGICAL :: TWO_D=.FALSE. !< Perform a 2-D simulation
198199
LOGICAL :: SETUP_ONLY=.FALSE. !< Indicates that the calculation should be stopped before time-stepping
199200
LOGICAL :: CHECK_MESH_ALIGNMENT=.FALSE. !< Indicates that the user wants to check the mesh alignment and then stop
@@ -561,7 +562,7 @@ MODULE GLOBAL_CONSTANTS
561562
! Logical units and output file names
562563

563564
INTEGER :: LU_ERR=ERROR_UNIT,LU_END=2,LU_GIT=3,LU_SMV=4,LU_INPUT=5,LU_OUTPUT=6,LU_STOP=7,LU_CPU=8,&
564-
LU_CATF=9,LU_RDIR=10,LU_GDIR=11,LU_SETCC=12,LU_BINGEOM=13
565+
LU_CATF=9,LU_RDIR=10,LU_GDIR=11,LU_SETCC=12,LU_BINGEOM=13,LU_PARCSRPCG_MATRIX=14
565566
INTEGER :: LU_MASS,LU_HRR,LU_STEPS,LU_NOTREADY,LU_VELOCITY_ERROR,LU_CFL,LU_LINE=-1,LU_CUTCELL, &
566567
LU_CVODE_SUBSTEPS
567568
INTEGER :: LU_HISTOGRAM,LU_HVAC

Source/geom.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22175,7 +22175,7 @@ SUBROUTINE READ_GEOM
2217522175

2217622176
CHARACTER(LABEL_LENGTH) :: ID,MATL_ID,TEXTURE_MAPPING, &
2217722177
DEVC_ID,CTRL_ID,SURF_IDS(3),SURF_ID6(6),MOVE_ID
22178-
CHARACTER(MESSAGE_LENGTH) :: BUFFER,FN_BINGEOM,BINARY_FILE
22178+
CHARACTER(FN_LENGTH) :: BUFFER,FN_BINGEOM,BINARY_FILE
2217922179
CHARACTER(LABEL_LENGTH), ALLOCATABLE, DIMENSION(:) :: SURF_ID
2218022180
REAL(EB), ALLOCATABLE, DIMENSION(:) :: ZVALS,TFACES
2218122181
REAL(EB), ALLOCATABLE, TARGET, DIMENSION(:) :: VERTS,VERTS_AUX

Source/imkl.f90

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,13 @@ SUBROUTINE HYPRE_PARCSRPCGGETFINALRELATIVE(SOLVER, FINAL_RES_NORM, IERR)
463463
INTEGER, INTENT(OUT) :: IERR
464464
END SUBROUTINE HYPRE_PARCSRPCGGETFINALRELATIVE
465465

466+
SUBROUTINE HYPRE_PARCSRMATRIXPRINT(PARCSR_A, FILE_NAME, FILE_NAME_SIZE, IERR)
467+
INTEGER(KIND=8), INTENT(IN) :: PARCSR_A
468+
CHARACTER(*), INTENT(IN) :: FILE_NAME
469+
INTEGER, INTENT(IN) :: FILE_NAME_SIZE
470+
INTEGER, INTENT(OUT) :: IERR
471+
END SUBROUTINE HYPRE_PARCSRMATRIXPRINT
472+
466473
END INTERFACE
467474

468475
! HYPRE info for ZONE_MESH defined in HYPRE_ZM, ZONE_MESH_TYPE, type.f90.
@@ -530,7 +537,8 @@ END SUBROUTINE HYPRE_PARCSRPCGGETFINALRELATIVE
530537
HYPRE_PARCSRPCGSETUP, & ! subroutine in HYPRE library
531538
HYPRE_PARCSRPCGSOLVE, & ! subroutine in HYPRE library
532539
HYPRE_PARCSRPCGGETNUMITERATIONS, & ! subroutine in HYPRE library
533-
HYPRE_PARCSRPCGGETFINALRELATIVE ! subroutine in HYPRE library
540+
HYPRE_PARCSRPCGGETFINALRELATIVE, & ! subroutine in HYPRE library
541+
HYPRE_PARCSRMATRIXPRINT ! subroutine in HYPRE library
534542

535543
END MODULE HYPRE_INTERFACE
536544
#endif /* WITH_HYPRE */

Source/pres.f90

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3933,6 +3933,7 @@ SUBROUTINE GET_H_MATRIX_LUDCMP
39333933
#ifdef WITH_HYPRE
39343934
INTEGER :: ONEV(1), END_ROW
39353935
REAL(EB) :: ZEROV(1)
3936+
CHARACTER(FN_LENGTH) :: FN_PARCSRPCG_MATRIX
39363937
#endif
39373938
!.. All other variables
39383939
INTEGER :: INNZ, IROW, JCOL, IERR
@@ -4188,6 +4189,10 @@ SUBROUTINE GET_H_MATRIX_LUDCMP
41884189
CALL HYPRE_BOOMERAMGSETMAXITER(ZSL%HYPRE_ZSL%PRECOND, HYPRE_PRECOND_MAXITER, HYPRE_IERR)
41894190
CALL HYPRE_PARCSRPCGSETPRECOND(ZSL%HYPRE_ZSL%SOLVER, HYPRE_PRECOND_ID, ZSL%HYPRE_ZSL%PRECOND, HYPRE_IERR)
41904191
! Solver setup
4192+
IF(WRITE_PARCSRPCG_MATRIX) THEN
4193+
WRITE(FN_PARCSRPCG_MATRIX,'(A,A,A)') './',TRIM(CHID),'_hypre_matrix.txt'
4194+
CALL HYPRE_PARCSRMATRIXPRINT(ZSL%HYPRE_ZSL%PARCSR_A_H, TRIM(FN_PARCSRPCG_MATRIX), LEN(TRIM(FN_PARCSRPCG_MATRIX)), HYPRE_IERR)
4195+
ENDIF
41914196
CALL HYPRE_PARCSRPCGSETUP(ZSL%HYPRE_ZSL%SOLVER, ZSL%HYPRE_ZSL%PARCSR_A_H,&
41924197
ZSL%HYPRE_ZSL%PAR_F_H, ZSL%HYPRE_ZSL%PAR_X_H, HYPRE_IERR)
41934198
#endif

Source/read.f90

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9826,7 +9826,8 @@ SUBROUTINE READ_PRES
98269826

98279827
NAMELIST /PRES/ BAROCLINIC,CHECK_POISSON,FISHPAK_BC,ITERATION_SUSPEND_FACTOR, &
98289828
MAX_PRESSURE_ITERATIONS,PRESSURE_RELAX_TIME,PRESSURE_TOLERANCE, &
9829-
RELAXATION_FACTOR,SOLVER,SUSPEND_PRESSURE_ITERATIONS,TUNNEL_PRECONDITIONER,VELOCITY_TOLERANCE
9829+
RELAXATION_FACTOR,SOLVER,SUSPEND_PRESSURE_ITERATIONS,TUNNEL_PRECONDITIONER,VELOCITY_TOLERANCE, &
9830+
WRITE_PARCSRPCG_MATRIX
98309831

98319832
! Read the single PRES line
98329833

0 commit comments

Comments
 (0)