28 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE ::
chi_e 29 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE ::
chi_n 30 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE ::
chi_t 43 SUBROUTINE set_chi(DISCR, PHI, Nmax, U, V, W)
56 INTEGER,
INTENT(IN) :: DISCR
58 INTEGER,
INTENT(IN) :: NMax
60 DOUBLE PRECISION,
INTENT(IN) :: PHI(
dimension_3, nmax)
68 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: Chi_e_temp
69 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: Chi_n_temp
70 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: Chi_t_temp
85 CALL init_err_msg(
"SET_CHI")
87 1102
FORMAT(
'ERROR 1102: Cannot call Set_Chi again, before Unset_chi')
105 CALL calc_chi(discr, phi(1,n), u, v, w, chi_e_temp, &
106 chi_n_temp, chi_t_temp)
120 Deallocate( chi_e_temp , &
145 SUBROUTINE calc_chi(DISCR, PHI, U, V, W, CHI_E, CHI_N, CHI_T)
153 USE functions, only: east_of, west_of, north_of, south_of
168 INTEGER,
INTENT(IN) :: DISCR
176 DOUBLE PRECISION,
INTENT(INOUT) :: CHI_e(
dimension_3)
177 DOUBLE PRECISION,
INTENT(INOUT) :: CHI_n(
dimension_3)
178 DOUBLE PRECISION,
INTENT(INOUT) :: CHI_t(
dimension_3)
183 INTEGER :: IJK, IJKC, IJKD, IJKU
184 DOUBLE PRECISION :: PHI_C
213 IF (.NOT.wall_at(ijk))
THEN 214 IF (u(ijk) >=
zero)
THEN 223 phi_c =
phi_c_of(phi(ijku),phi(ijkc),phi(ijkd))
224 chi_e(ijk) =
chi4smart(phi_c, phi(ijku), phi(ijkc), phi(ijkd
226 IF (v(ijk) >=
zero)
THEN 229 ijku = south_of(ijkc)
233 ijku = north_of(ijkc)
235 phi_c =
phi_c_of(phi(ijku),phi(ijkc),phi(ijkd))
236 chi_n(ijk) =
chi4smart(phi_c,phi(ijku),phi(ijkc),phi(ijkd
239 IF (w(ijk) >=
zero)
THEN 242 ijku = bottom_of(ijkc)
248 phi_c =
phi_c_of(phi(ijku),phi(ijkc),phi(ijkd))
249 chi_t(ijk) =
chi4smart(phi_c,phi(ijku),phi(ijkc),phi(ijkd
269 IF (.NOT.wall_at(ijk))
THEN 270 IF (u(ijk) >=
zero)
THEN 279 phi_c =
phi_c_of(phi(ijku),phi(ijkc),phi(ijkd))
280 chi_e(ijk) =
chi4muscl(phi_c,phi(ijku),phi(ijkc),phi(ijkd
282 IF (v(ijk) >=
zero)
THEN 285 ijku = south_of(ijkc)
289 ijku = north_of(ijkc)
291 phi_c =
phi_c_of(phi(ijku),phi(ijkc),phi(ijkd))
292 chi_n(ijk) =
chi4muscl(phi_c,phi(ijku),phi(ijkc),phi(ijkd
295 IF (w(ijk) >=
zero)
THEN 298 ijku = bottom_of(ijkc)
304 phi_c =
phi_c_of(phi(ijku),phi(ijkc),phi(ijkd))
305 chi_t(ijk) =
chi4muscl(phi_c,phi(ijku),phi(ijkc),phi(ijkd
323 CALL init_err_msg(
"CALC_CHI")
324 WRITE(err_msg, 1103)
ival(discr)
325 1103
FORMAT(
'ERROR 1103: Invalid DISCRETIZE= ', a,
' when using '&
326 'chi_scheme',/
'The check_data routines should have already ',&
327 'caught this error and ',/,
'pevented the simulation from ',&
328 'running. Please notify the MFIX ',/,
'MFIX developers.')
subroutine calc_chi(DISCR, PHI, U, V, W, CHI_E, CHI_N, CHI_T)
double precision function phi_c_of(PHI_U, PHI_C, PHI_D)
subroutine init_err_msg(CALLER)
logical chischeme_allocated
double precision, dimension(:), allocatable chi_t
double precision, parameter large_number
double precision function chi4smart(PHI_C, PHIU, PHIC, PHID)
double precision function chi4muscl(PHI_C, PHIU, PHIC, PHID)
double precision, dimension(:), allocatable chi_n
character(len=line_length), dimension(line_count) err_msg
subroutine set_chi(DISCR, PHI, Nmax, U, V, W)
double precision, dimension(:), allocatable chi_e
double precision, parameter zero
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)