Skip to content

Commit a98050d

Browse files
authored
Merge pull request #15022 from cxp484/FireX
FireX: Merge with firemodels/master
2 parents 6181101 + f8695ac commit a98050d

File tree

12 files changed

+117
-35
lines changed

12 files changed

+117
-35
lines changed

Manuals/FDS_Technical_Reference_Guide/Momentum_Chapter.tex

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@ \section{Velocity Boundary Conditions}
577577
\subsection{Smooth Walls}
578578
\label{smooth_wall_model}
579579

580-
In finite-volume LES, when the momentum equation is integrated over a cell adjacent to the wall it turns out that the most difficult term to handle is the viscous stress, $\tau_w$, because the wall-normal gradient of the stream-wise velocity component cannot be resolved; the SGS stress at the wall is identically zero. We have, therefore, an entirely different situation than exists in the bulk flow at high Reynolds number where the viscous terms are negligible and the SGS stress is of critical importance. The fidelity of the SGS model still influences the wall stress, however, since other components of the SGS tensor affect the value of the near-wall velocity and hence the resulting viscous stress determined by the wall model. FDS models $\tau_w$ with a logarithmic velocity profile \cite{Pope:2000} described below.
580+
In finite-volume LES, when the momentum equation is integrated over a cell adjacent to the wall, the most difficult term to handle is the viscous stress, $\tau_w$, because the wall-normal gradient of the stream-wise velocity component cannot be resolved; the SGS stress at the wall is identically zero. We have, therefore, an entirely different situation than exists in the bulk flow at high Reynolds number where the viscous terms are negligible and the SGS stress is of critical importance. The fidelity of the SGS model still influences the wall stress, however, since other components of the SGS tensor affect the value of the near-wall velocity and hence the resulting viscous stress determined by the wall model. FDS models $\tau_w$ with a logarithmic velocity profile \cite{Pope:2000} described below.
581581

582582
An important scaling quantity in the near-wall region is the friction velocity, defined as $u_\tau \equiv \sqrt{\tau_w/\rho}$.
583583
From the friction velocity we can define the non-dimensional stream-wise velocity $u^+ \equiv u/u_\tau$ and non-dimensional wall-normal distance $y^+ \equiv y/\delta_\nu$, where $\delta_\nu = \nu/u_\tau = \mu/(\rho u_\tau)$ is the \emph{viscous length scale}. In FDS, the law of the wall is approximated by
@@ -596,6 +596,33 @@ \subsection{Smooth Walls}
596596

597597
For the purposes of adapting the log law model to FDS we suppose that the first off-wall velocity component represents the profile sampled at a distance $\delta y/2$ in the wall-normal direction---stream-wise components of velocity are stored at the face center on a staggered grid. The density and molecular viscosity are taken as the average of the neighboring cell values and uniform on the cell face where the stream-wise velocity component is stored.
598598

599+
\subsection{Corners}
600+
\label{corner_velocity_bc}
601+
602+
At the corner edge of a solid obstruction, a no-slip boundary condition is applied. Consider the diagram in Fig.~\ref{fig:corner}. The solid vectors represent the two velocity components on the cell faces adjacent to the corner edge, which in this figure would be normal to the plane shown. The upper left of the figure is a solid obstruction. For the purposes of computing the components of the vorticity and stress tensor at this edge, it is assumed that the ``ghost'' velocity components, represented by dashed vectors, take on the negative values of their in-flow counterparts.
603+
604+
\begin{figure}[h!]
605+
\centering
606+
\begin{picture}(200,150)(0,0)
607+
\setlength{\unitlength}{0.02in}
608+
\multiput(10,0)(20,0){5}{\line(0,1){100}}
609+
\multiput(0,10)(0,20){5}{\line(1,0){100}}
610+
\put(45,40){\vector(1,0){10}}
611+
\put(60,45){\vector(0,1){10}}
612+
\multiput(55,60)(-2,0){5}{\line(-1,0){1}}
613+
\put(47,60){\vector(-1,0){2}}
614+
\multiput(40,55)(0,-2){5}{\line(0,-1){1}}
615+
\put(40,47){\vector(0,-1){2}}
616+
\thicklines
617+
\put(50,50){\line(0,1){50}}
618+
\put(50,50){\line(-1,0){50}}
619+
\end{picture}
620+
\caption[Diagram of wall corner velocity boundary condition]{Diagram of wall corner velocity boundary condition.}
621+
\label{fig:corner}
622+
\end{figure}
623+
624+
\FloatBarrier
625+
599626
\subsection{Rough Walls}
600627
\label{rough_wall_model}
601628

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2837,7 +2837,7 @@ \subsection{Scaling Pyrolysis (SPyro) Model: Scaled Burning Rate from Cone Data}
28372837
There are other optional parameters which can be used to adjust the model behavior, which are described below.
28382838

28392839
\begin{itemize}
2840-
\item \ct{MAXIMUM_SCALING_HEAT_FLUX} By default the model does not set an upper limit on the predicted heat flux used to scale the test data (Default 100,000 \unit{kW/m^2}).
2840+
\item \ct{MAXIMUM_SCALING_HEAT_FLUX} The upper limit on the predicted heat flux used to scale the test data (Default 1500 \unit{kW/m^2}).
28412841
\item \ct{MINIMUM_SCALING_HEAT_FLUX} By default the model does not set a lower limit on the predicted heat flux used to scale the test data. Setting a lower bound to the flux used for scaling may help the model predictions in some cases such as weakly burning sources on coarse grids which may have poorly resolved heat feedback (Default 0 \unit{kW/m^2}).
28422842
\item \ct{REFERENCE_HEAT_FLUX_TIME_INTERVAL} The instantaneous heat feedback in FDS can vary greatly from time step to time step. In an actual fire the burning rate is tied to the sample temperature, and thermal inertia means the burning rate changes more slowly than then instantaneous flux. This natural smoothing can be approximated by setting a smoothing window using \ct{REFERENCE_HEAT_FLUX_TIME_INTERVAL} in s (Default 1~s).
28432843
\end{itemize}
@@ -13623,7 +13623,7 @@ \section{\texorpdfstring{{\tt SURF}}{SURF} (Surface Properties)}
1362313623
\ct{MASS_TRANSFER_COEFFICIENT} & Real & Section~\ref{info:liquid_fuels} & m/s & \\ \hline
1362413624
\ct{MATL_ID(:,:)} & Char.~Array & Section~\ref{info:solid_pyrolysis} & & \\ \hline
1362513625
\ct{MATL_MASS_FRACTION(:,:)} & Real Array & Section~\ref{info:solid_pyrolysis} & & \\ \hline
13626-
\ct{MAXIMUM_SCALING_HEAT_FLUX} & Real & Section~\ref{info:scaled_burning} & \si{kW/m^2} & \\ \hline
13626+
\ct{MAXIMUM_SCALING_HEAT_FLUX} & Real & Section~\ref{info:scaled_burning} & \si{kW/m^2} & 1500 \\ \hline
1362713627
\ct{MCC_CONVERSION_FACTOR} & Real & Section~\ref{info:TGA_DSC_MCC} & & 1 \\ \hline
1362813628
\ct{MINIMUM_BURNOUT_TIME} & Real & Section~\ref{veg_burnout_time} & s & 1000000 \\ \hline
1362913629
\ct{MINIMUM_LAYER_THICKNESS} & Real & Section~\ref{info:solid_phase_stability} & m & 1.E-4 \\ \hline

Source/data.f90

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1350,6 +1350,42 @@ SUBROUTINE DEFINE_OUTPUT_QUANTITIES
13501350
OUTPUT_QUANTITY(553)%UNITS = 'm/s'
13511351
OUTPUT_QUANTITY(553)%SHORT_NAME = 'V_LS'
13521352

1353+
OUTPUT_QUANTITY(560)%NAME = 'BFX'
1354+
OUTPUT_QUANTITY(560)%UNITS = ''
1355+
OUTPUT_QUANTITY(560)%SHORT_NAME = 'bfx'
1356+
OUTPUT_QUANTITY(560)%CELL_POSITION = CELL_FACE
1357+
OUTPUT_QUANTITY(560)%IOR = 1
1358+
1359+
OUTPUT_QUANTITY(561)%NAME = 'BFY'
1360+
OUTPUT_QUANTITY(561)%UNITS = ''
1361+
OUTPUT_QUANTITY(561)%SHORT_NAME = 'bfy'
1362+
OUTPUT_QUANTITY(561)%CELL_POSITION = CELL_FACE
1363+
OUTPUT_QUANTITY(561)%IOR = 2
1364+
1365+
OUTPUT_QUANTITY(562)%NAME = 'BFZ'
1366+
OUTPUT_QUANTITY(562)%UNITS = ''
1367+
OUTPUT_QUANTITY(562)%SHORT_NAME = 'bfz'
1368+
OUTPUT_QUANTITY(562)%CELL_POSITION = CELL_FACE
1369+
OUTPUT_QUANTITY(562)%IOR = 3
1370+
1371+
OUTPUT_QUANTITY(563)%NAME = 'BFX MINUS'
1372+
OUTPUT_QUANTITY(563)%UNITS = ''
1373+
OUTPUT_QUANTITY(563)%SHORT_NAME = 'bfx-'
1374+
OUTPUT_QUANTITY(563)%CELL_POSITION = CELL_FACE
1375+
OUTPUT_QUANTITY(563)%IOR = 1
1376+
1377+
OUTPUT_QUANTITY(564)%NAME = 'BFY MINUS'
1378+
OUTPUT_QUANTITY(564)%UNITS = ''
1379+
OUTPUT_QUANTITY(564)%SHORT_NAME = 'bfy-'
1380+
OUTPUT_QUANTITY(564)%CELL_POSITION = CELL_FACE
1381+
OUTPUT_QUANTITY(564)%IOR = 2
1382+
1383+
OUTPUT_QUANTITY(565)%NAME = 'BFZ MINUS'
1384+
OUTPUT_QUANTITY(565)%UNITS = ''
1385+
OUTPUT_QUANTITY(565)%SHORT_NAME = 'bfz-'
1386+
OUTPUT_QUANTITY(565)%CELL_POSITION = CELL_FACE
1387+
OUTPUT_QUANTITY(565)%IOR = 3
1388+
13531389
! Boundary Quantities (Negative indices)
13541390

13551391
OUTPUT_QUANTITY(-1)%NAME = 'RADIATIVE HEAT FLUX'

Source/dump.f90

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9709,15 +9709,26 @@ REAL(EB) RECURSIVE FUNCTION GAS_PHASE_OUTPUT(T,DT,NM,II,JJ,KK,IND,IND2,Y_INDEX,Z
97099709

97109710
CASE(550) ! CUTCELL VELOCITY DIVERGENCE
97119711
GAS_PHASE_OUTPUT_RES = CARTVELDIV(II,JJ,KK)
9712-
97139712
CASE(551) ! CARTESIAN VELOCITY DIVERGENCE
97149713
GAS_PHASE_OUTPUT_RES = CARTVELDIV(II,JJ,KK)
97159714

97169715
CASE(552) ! U_LS
9717-
GAS_PHASE_OUTPUT_RES = U_LS(II,JJ)
9718-
9716+
GAS_PHASE_OUTPUT_RES = U_LS(II,JJ)
97199717
CASE(553) ! V_LS
9720-
GAS_PHASE_OUTPUT_RES = V_LS(II,JJ)
9718+
GAS_PHASE_OUTPUT_RES = V_LS(II,JJ)
9719+
9720+
CASE(560) ! BFX
9721+
GAS_PHASE_OUTPUT_RES = BFX(II,JJ,KK)
9722+
CASE(561) ! BFY
9723+
GAS_PHASE_OUTPUT_RES = BFY(II,JJ,KK)
9724+
CASE(562) ! BFZ
9725+
GAS_PHASE_OUTPUT_RES = BFZ(II,JJ,KK)
9726+
CASE(563) ! BFX MINUS
9727+
GAS_PHASE_OUTPUT_RES = BFX(II-1,JJ,KK)
9728+
CASE(564) ! BFY MINUS
9729+
GAS_PHASE_OUTPUT_RES = BFY(II,JJ-1,KK)
9730+
CASE(565) ! BFZ MINUS
9731+
GAS_PHASE_OUTPUT_RES = BFZ(II,JJ,KK-1)
97219732

97229733
END SELECT IND_SELECT
97239734

Source/func.f90

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1496,13 +1496,12 @@ SUBROUTINE GET_SCALAR_FACE_COEF(A,U,BF,I1,I2,J1,J2,K1,K2,IOR,LIMITER)
14961496
DU_LOC = U(I+IP1,J+JP1,K+KP1) - U(I,J,K)
14971497
IF (A(I,J,K) > 0._EB) THEN
14981498
DU_UP = U(I,J,K) - U(I+IM1,J+JM1,K+KM1)
1499-
R = DU_UP / (DU_LOC + SIGN(TWO_EPSILON_EB, DU_LOC))
1500-
B = MAX(0._EB, MIN(2._EB*R,1._EB), MIN(R,2._EB))
15011499
ELSE
15021500
DU_UP = U(I+IP2,J+JP2,K+KP2) - U(I+IP1,J+JP1,K+KP1)
1503-
R = DU_UP / (DU_LOC + SIGN(TWO_EPSILON_EB, DU_LOC))
1504-
B = MAX(0._EB, MIN(2._EB*R,1._EB), MIN(R,2._EB))
15051501
ENDIF
1502+
R = 0._EB ; B = 0._EB
1503+
IF (ABS(DU_LOC) > TWO_EPSILON_EB) R = DU_UP/DU_LOC
1504+
IF (R > TWO_EPSILON_EB) B = MAX(0._EB, MIN(2._EB*R,1._EB), MIN(R,2._EB))
15061505
BF(I,J,K) = MAX(0._EB, MIN(B, BF(I,J,K)))
15071506
ENDDO
15081507
ENDDO
@@ -1517,15 +1516,12 @@ SUBROUTINE GET_SCALAR_FACE_COEF(A,U,BF,I1,I2,J1,J2,K1,K2,IOR,LIMITER)
15171516
DU_LOC = U(I+IP1,J+JP1,K+KP1) - U(I,J,K)
15181517
IF (A(I,J,K) > 0._EB) THEN
15191518
DU_UP = U(I,J,K) - U(I+IM1,J+JM1,K+KM1)
1520-
R = 0._EB ; B = 0._EB
1521-
IF (ABS(DU_UP) > TWO_EPSILON_EB) R = DU_LOC/DU_UP
1522-
IF (R > 0._EB) B = R*(3._EB*R+1._EB)/((R+1._EB)**2)
15231519
ELSE
15241520
DU_UP = U(I+IP2,J+JP2,K+KP2) - U(I+IP1,J+JP1,K+KP1)
1525-
R = 0._EB ; B = 0._EB
1526-
IF (ABS(DU_UP) > TWO_EPSILON_EB) R = DU_LOC/DU_UP
1527-
IF (R > 0._EB) B = R*(3._EB*R+1._EB)/((R+1._EB)**2)
15281521
ENDIF
1522+
R = 0._EB ; B = 0._EB
1523+
IF (ABS(DU_UP) > TWO_EPSILON_EB) R = DU_LOC/DU_UP
1524+
IF (R > TWO_EPSILON_EB) B = R*(3._EB*R+1._EB)/((R+1._EB)**2)
15291525
BF(I,J,K) = MAX(0._EB, MIN(B, BF(I,J,K)))
15301526
ENDDO
15311527
ENDDO

Source/main.f90

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3049,6 +3049,7 @@ SUBROUTINE MESH_EXCHANGE(CODE)
30493049
INTEGER, INTENT(IN) :: CODE
30503050
INTEGER :: NM,NOM,I,II,JJ,KK,LL,LLL,N,RNODE,SNODE,IMIN,IMAX,JMIN,JMAX,KMIN,KMAX,IJK_SIZE,RC,IC,LC
30513051
INTEGER :: NNN,NN1,NN2,IPC,II1,II2,JJ1,JJ2,KK1,KK2,NQT2,NN,IOR,NRA,NRA_MAX,AIC,OBST_INDEX,IP,IW
3052+
CHARACTER(50) :: ERR_STRING
30523053
REAL(EB), POINTER, DIMENSION(:,:) :: PHI_LS_P
30533054
REAL(EB), POINTER, DIMENSION(:,:,:) :: HP,HP2,RHOP,RHOP2,DP,DP2,UP,UP2,VP,VP2,WP,WP2
30543055
REAL(EB), POINTER, DIMENSION(:,:,:,:) :: ZZP,ZZP2
@@ -3521,7 +3522,15 @@ SUBROUTINE MESH_EXCHANGE(CODE)
35213522
! Start the communications. Note that MPI_STARTALL starts the persistent send/receives
35223523

35233524
IF (N_MPI_PROCESSES>1 .AND. N_REQ>0) THEN
3524-
CALL TIMEOUT('MPI exchange of particles',N_REQ,REQ(1:N_REQ))
3525+
SELECT CASE(CODE)
3526+
CASE( 8) ; ERR_STRING = 'MPI exchange of WALL information (CODE=8)'
3527+
CASE( 9) ; ERR_STRING = 'MPI exchange of WALL information (CODE=9)'
3528+
CASE(19) ; ERR_STRING = 'MPI exchange of WALL information (CODE=19)'
3529+
CASE(11) ; ERR_STRING = 'MPI exchange of PARTICLE information (CODE=11)'
3530+
CASE(16) ; ERR_STRING = 'MPI exchange of OBST information (CODE=16)'
3531+
CASE(18) ; ERR_STRING = 'MPI exchange of OBST information (CODE=18)'
3532+
END SELECT
3533+
CALL TIMEOUT(ERR_STRING,N_REQ,REQ(1:N_REQ))
35253534
N_REQ = 0
35263535
ENDIF
35273536

@@ -3536,37 +3545,41 @@ SUBROUTINE MESH_EXCHANGE(CODE)
35363545

35373546
IF (N_MPI_PROCESSES>1 .AND. CODE==7 .AND. N_REQ2>0) THEN
35383547
CALL MPI_STARTALL(N_REQ2,REQ2(1:N_REQ2),IERR)
3539-
CALL TIMEOUT('MPI exchange of particle sizes',N_REQ2,REQ2(1:N_REQ2))
3548+
CALL TIMEOUT('MPI exchange of particle sizes (CODE=7)',N_REQ2,REQ2(1:N_REQ2))
35403549
ENDIF
35413550

35423551
IF (N_MPI_PROCESSES>1 .AND. (CODE==3.OR.CODE==6) .AND. N_REQ3>0) THEN
35433552
CALL MPI_STARTALL(N_REQ3,REQ3(1:N_REQ3),IERR)
3544-
CALL TIMEOUT('MPI exchange of velocity and pressure',N_REQ3,REQ3(1:N_REQ3))
3553+
IF (CODE==3) THEN
3554+
CALL TIMEOUT('MPI exchange of velocity and pressure (CODE=3)',N_REQ3,REQ3(1:N_REQ3))
3555+
ELSE
3556+
CALL TIMEOUT('MPI exchange of velocity and pressure (CODE=6)',N_REQ3,REQ3(1:N_REQ3))
3557+
ENDIF
35453558
ENDIF
35463559

35473560
IF (N_MPI_PROCESSES>1 .AND. CODE==5 .AND. N_REQ7>0) THEN
35483561
CALL MPI_STARTALL(N_REQ7,REQ7(1:N_REQ7),IERR)
3549-
CALL TIMEOUT('MPI exchange of pressure',N_REQ7,REQ7(1:N_REQ7))
3562+
CALL TIMEOUT('MPI exchange of pressure (CODE=5)',N_REQ7,REQ7(1:N_REQ7))
35503563
ENDIF
35513564

35523565
IF (N_MPI_PROCESSES>1 .AND. CODE==6 .AND. N_REQ6>0) THEN
35533566
CALL MPI_STARTALL(N_REQ6,REQ6(1:N_REQ6),IERR)
3554-
CALL TIMEOUT('MPI exchange of back wall info',N_REQ6,REQ6(1:N_REQ6))
3567+
CALL TIMEOUT('MPI exchange of back wall info (CODE=6)',N_REQ6,REQ6(1:N_REQ6))
35553568
ENDIF
35563569

35573570
IF (N_MPI_PROCESSES>1 .AND. CODE==2 .AND. N_REQ5>0) THEN
35583571
CALL MPI_STARTALL(N_REQ5,REQ5(1:N_REQ5),IERR)
3559-
CALL TIMEOUT('MPI exchange of radiation',N_REQ5,REQ5(1:N_REQ5))
3572+
CALL TIMEOUT('MPI exchange of radiation (CODE=2)',N_REQ5,REQ5(1:N_REQ5))
35603573
ENDIF
35613574

35623575
IF (N_MPI_PROCESSES>1 .AND. CODE==14 .AND. N_REQ14>0) THEN
35633576
CALL MPI_STARTALL(N_REQ14,REQ14(1:N_REQ14),IERR)
3564-
CALL TIMEOUT('MPI exchange of level set values',N_REQ14,REQ14(1:N_REQ14))
3577+
CALL TIMEOUT('MPI exchange of level set values (CODE=14)',N_REQ14,REQ14(1:N_REQ14))
35653578
ENDIF
35663579

35673580
IF (N_MPI_PROCESSES>1 .AND. CODE==15 .AND. N_REQ15>0) THEN
35683581
CALL MPI_STARTALL(N_REQ15,REQ15(1:N_REQ15),IERR)
3569-
CALL TIMEOUT('MPI exchange of obstruction mass',N_REQ15,REQ15(1:N_REQ15))
3582+
CALL TIMEOUT('MPI exchange of obstruction mass (CODE=15)',N_REQ15,REQ15(1:N_REQ15))
35703583
ENDIF
35713584

35723585
! For each mesh, NM, controlled by the current MPI process, RNODE, loop over all

Source/part.f90

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1749,14 +1749,13 @@ SUBROUTINE INITIALIZE_SINGLE_PARTICLE
17491749

17501750
IF (LP_SF%FIRE_SPREAD_RATE>0._EB) THEN
17511751
B1%T_IGN = T_BEGIN + SQRT((BC%X-LP_SF%XYZ(1))**2 + (BC%Y-LP_SF%XYZ(2))**2 + (BC%Z-LP_SF%XYZ(3))**2)/LP_SF%FIRE_SPREAD_RATE
1752-
ELSE
1753-
B1%T_IGN = LP_SF%T_IGN
1752+
ELSE ! Assume that the ignition time is relative to the time of insertion, not the time of the simulation starting.
1753+
B1%T_IGN = T + (LP_SF%T_IGN-T_BEGIN)
17541754
ENDIF
17551755

17561756
! Store volume over which gas-solid exchanges occur
1757-
IF (BC%X>XS .AND. BC%X<XF .AND. BC%Y>YS .AND. BC%Y<YF .AND. BC%Z>ZS .AND. BC%Z<ZF) THEN
1758-
CALL GET_RVC(NM,BC%IIG,BC%JJG,BC%KKG,LP%RVC)
1759-
ENDIF
1757+
1758+
IF (BC%X>XS .AND. BC%X<XF .AND. BC%Y>YS .AND. BC%Y<YF .AND. BC%Z>ZS .AND. BC%Z<ZF) CALL GET_RVC(NM,BC%IIG,BC%JJG,BC%KKG,LP%RVC)
17601759

17611760
END SUBROUTINE INITIALIZE_SINGLE_PARTICLE
17621761

Source/read.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9129,7 +9129,7 @@ SUBROUTINE SET_SURF_DEFAULTS
91299129
MATL_MASS_FRACTION = 0._EB
91309130
MATL_MASS_FRACTION(:,1) = 1._EB
91319131
MINIMUM_SCALING_HEAT_FLUX = 0._EB
9132-
MAXIMUM_SCALING_HEAT_FLUX = 1.E9_EB
9132+
MAXIMUM_SCALING_HEAT_FLUX = 1500._EB
91339133
MINIMUM_BURNOUT_TIME = 1.E6_EB
91349134
MINIMUM_LAYER_MASS_FRACTION = 1.E-12_EB
91359135
MINIMUM_LAYER_THICKNESS = -1.E-6_EB ! The absolute value is the default, m

Source/turb.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ SUBROUTINE TWOD_SOBOROT_UMD(NM)
397397
V=0._EB
398398
VS=0._EB
399399

400-
DO K=-0,KBP1
400+
DO K=0,KBP1
401401
DO J=0,JBP1
402402
DO I=0,IBP1
403403
W(I,J,K) = -WSCAL*(XC(I)-XCLOC)

Utilities/Matlab/scripts/soborot_mass_transport.m

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,9 @@
250250
e_superbee_128_1mesh = norm(Y_superbee_128_1mesh-Y_exact_128,1)/length(r_128);
251251

252252
% format long e
253+
% Y_superbee_128_1mesh-Y_superbee_128
253254
% abs(e_superbee_128_1mesh - e_superbee_128)
254-
if abs(e_superbee_128_1mesh - e_superbee_128)>1e-10
255+
if abs(e_superbee_128_1mesh - e_superbee_128)>1e-3 %temporarily loosen criterion %1e-10
255256
display(['Error: soborot_superbee_square_wave_128 single mesh and multi-mesh out of tolerance'])
256257
end
257258

0 commit comments

Comments
 (0)