Skip to content

Commit 123fbb7

Browse files
committed
FDS Source: Allow CVODE_ORDER at the COMB line
1 parent 0724de2 commit 123fbb7

File tree

3 files changed

+12
-21
lines changed

3 files changed

+12
-21
lines changed

Source/chem.f90

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -928,13 +928,14 @@ SUBROUTINE CVODE_SERIAL(CC,ZZ_0, TMP_IN, TMP_UNMIX, PR_IN, ZETA0, TAU_MIX, CELL_
928928
END IF
929929

930930
! SET MAX ORDER
931-
MAXORD_C = 5
932-
!IF (IS_EXPONENT_LT_1) MAXORD_C = 1
933-
IERR_C = FCVODESETMAXORD(CVODE_MEM, MAXORD_C)
934-
IF (IERR_C /= 0) THEN
935-
WRITE(LU_ERR,*) 'ERROR IN FCVODESETMAXORD, IERR = ', IERR_C, '; HALTING'
936-
STOP 1
937-
END IF
931+
IF (CVODE_ORDER > 0) THEN
932+
MAXORD_C = CVODE_ORDER
933+
IERR_C = FCVODESETMAXORD(CVODE_MEM, MAXORD_C)
934+
IF (IERR_C /= 0) THEN
935+
WRITE(LU_ERR,*) 'ERROR IN FCVODESETMAXORD, IERR = ', IERR_C, '; HALTING'
936+
STOP 1
937+
END IF
938+
ENDIF
938939

939940
! SET ERROR HANDLER
940941
IERR_C = FCVODESETERRHANDLERFN(CVODE_MEM, C_FUNLOC(FDS_CVODE_ERR_HANDLER), C_NULL_PTR)

Source/cons.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -905,7 +905,7 @@ MODULE CHEMCONS
905905
LOGICAL :: DO_CHEM_LOAD_BALANCE = .FALSE.
906906
INTEGER :: MAX_CVODE_SUBSTEPS=100000
907907
INTEGER :: CVODE_MAX_TRY=4
908-
LOGICAL :: IS_EXPONENT_LT_1 = .FALSE.
908+
INTEGER :: CVODE_ORDER=0
909909

910910
! FOR WRITING CVODE SUBSTEPS
911911
LOGICAL :: WRITE_CVODE_SUBSTEPS = .FALSE.

Source/read.f90

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4506,11 +4506,11 @@ END SUBROUTINE PROC_SPEC_2
45064506
!> \brief Read the COMBustion namelist line
45074507

45084508
SUBROUTINE READ_COMB
4509-
USE CHEMCONS, ONLY: ODE_MIN_ATOL, EQUIV_RATIO_CHECK, MIN_EQUIV_RATIO, MAX_EQUIV_RATIO, DO_CHEM_LOAD_BALANCE, &
4509+
USE CHEMCONS, ONLY: ODE_MIN_ATOL,CVODE_ORDER,EQUIV_RATIO_CHECK, MIN_EQUIV_RATIO, MAX_EQUIV_RATIO, DO_CHEM_LOAD_BALANCE, &
45104510
FUEL_ID_FOR_AFT,USE_MIXED_ZN_AFT_TMP
45114511
REAL(EB) :: ODE_REL_ERROR
45124512
CHARACTER(LABEL_LENGTH) :: RAMP_ZETA_0='null'
4513-
NAMELIST /COMB/ CHECK_REALIZABILITY,COMPUTE_ADIABATIC_FLAME_TEMPERATURE, DO_CHEM_LOAD_BALANCE, EQUIV_RATIO_CHECK, &
4513+
NAMELIST /COMB/ CHECK_REALIZABILITY,COMPUTE_ADIABATIC_FLAME_TEMPERATURE,CVODE_ORDER,DO_CHEM_LOAD_BALANCE, EQUIV_RATIO_CHECK, &
45144514
EXTINCTION_MODEL,FINITE_RATE_MIN_TEMP, FIXED_MIX_TIME,FREE_BURN_TEMPERATURE, &
45154515
FUEL_ID_FOR_AFT,INITIAL_UNMIXED_FRACTION, MAX_CHEMISTRY_SUBSTEPS, MAX_EQUIV_RATIO, MIN_EQUIV_RATIO, &
45164516
N_FIXED_CHEMISTRY_SUBSTEPS, ODE_MIN_ATOL,ODE_REL_ERROR,ODE_SOLVER,SUPPRESSION,TAU_CHEM, &
@@ -5092,7 +5092,7 @@ END SUBROUTINE READ_REAC
50925092

50935093

50945094
SUBROUTINE PROC_REAC_1
5095-
USE CHEMCONS, ONLY: YP2ZZ,IS_EXPONENT_LT_1,FUEL_ID_FOR_AFT,I_FUEL,I_CO2,I_H2O,I_O2,I_N2
5095+
USE CHEMCONS, ONLY: YP2ZZ,FUEL_ID_FOR_AFT,I_FUEL,I_CO2,I_H2O,I_O2,I_N2
50965096
USE PROPERTY_DATA, ONLY : PARSE_EQUATION, SHUTDOWN_ATOM
50975097
REAL(EB) :: MASS_PRODUCT,MASS_REACTANT,REACTION_BALANCE(118),NU_Y(N_SPECIES)
50985098
INTEGER :: NS,NS2, NR
@@ -5315,16 +5315,6 @@ SUBROUTINE PROC_REAC_1
53155315
ENDIF
53165316
ENDDO
53175317

5318-
IF(TRIM(ODE_SOLVER)=='CVODE' .AND. .NOT. IS_EXPONENT_LT_1) THEN
5319-
DO NS=1,RN%N_SPEC
5320-
IF (RN%N_S(NS) .LT. 1) THEN
5321-
IS_EXPONENT_LT_1 = .TRUE.
5322-
!IF (MY_RANK==0) WRITE(LU_ERR,'(A)')"INFO: CVODE solver order set to 1 because one REAC has an N_S < 1."
5323-
EXIT
5324-
ENDIF
5325-
ENDDO
5326-
ENDIF
5327-
53285318
! Normalize the stoichiometric coefficients by that of the fuel.
53295319
RN%NU_FUEL_0 = -RN%NU(RN%FUEL_SMIX_INDEX)
53305320
RN%NU_NN = RN%NU

0 commit comments

Comments
 (0)