MFIX  2016-1
calc_dif_s.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Subroutine: CALC_DIF_S C
4 ! Purpose: Calculate the effective diffusivity of solids phases C
5 ! C
6 ! C
7 ! Comments: C
8 ! This routine will not be called if dif_s0(M) is defined C
9 ! C
10 ! C
11 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
12  SUBROUTINE calc_dif_s(M)
13 
14 ! Modules
15 !---------------------------------------------------------------------//
16  USE param1, only: undefined
17  USE physprop, only: dif_s0, dif_s
18  USE sendrecv, only: send_recv
19 ! invoke user defined quantity
20  USE usr_prop, only: usr_difs, calc_usr_prop
21  USE usr_prop, only: solids_diffusivity
22  IMPLICIT NONE
23 
24 ! Dummy arguments
25 !---------------------------------------------------------------------//
26 ! Solids phase index
27  INTEGER, INTENT(IN) :: M
28 
29 !---------------------------------------------------------------------//
30 
31  IF (usr_difs(m)) THEN
32  CALL calc_usr_prop(solids_diffusivity,lm=m)
33  ELSEIF (dif_s0(m) == undefined) THEN
35  ENDIF
36 
37  CALL send_recv(dif_s, 2)
38 
39  RETURN
40  END SUBROUTINE calc_dif_s
41 
42 
43 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
44 ! C
45 ! Subroutine: CALC_DEFAULT_DIF_SOLIDS C
46 ! Purpose: Compute the default value of each solids phases effective C
47 ! diffusivity. Because species are not considered to diffuse in a C
48 ! solids the default diffusivsity is zero. C
49 ! C
50 ! Author:M. Syamlal Date: 13-EFB-98 C
51 ! C
52 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
53  SUBROUTINE calc_default_dif_solids(M)
54 
55 ! Modules
56 !---------------------------------------------------------------------//
57  USE compar, only: ijkstart3, ijkend3
58  USE functions, only: fluid_at
59  USE fldvar, only: rop_s
60  USE param1, only: zero
61  USE physprop, only: nmax, dif_s
62  USE run, only: units
63  IMPLICIT NONE
64 
65 ! Dummy arguments
66 !---------------------------------------------------------------------//
67 ! Solids phase index
68  INTEGER, INTENT(IN) :: M
69 
70 ! Local variables
71 !---------------------------------------------------------------------//
72 ! Indices
73  INTEGER :: IJK
74  INTEGER :: N
75 ! binary diffusivity coefficient
76  DOUBLE PRECISION :: Dab
77 !---------------------------------------------------------------------//
78 
79  dab = zero !cm^2/s
80  IF(units == 'SI') dab = dab*0.0001d0 !m^2/s
81 
82 !!$omp parallel do private(n,ijk) &
83 !!$omp& schedule(dynamic,chunk_size)
84  DO n = 1, nmax(m)
85  DO ijk = ijkstart3, ijkend3
86  IF (fluid_at(ijk)) THEN
87  dif_s(ijk,m,n) = rop_s(ijk,m)*dab
88  ELSE
89  dif_s(ijk,m,n) = zero
90  ENDIF
91  ENDDO
92  ENDDO
93 
94  RETURN
95  END SUBROUTINE calc_default_dif_solids
96 
97 
98 
integer ijkend3
Definition: compar_mod.f:80
double precision, dimension(dim_m) dif_s0
Definition: physprop_mod.f:113
double precision, parameter undefined
Definition: param1_mod.f:18
subroutine calc_usr_prop(lprop, lM, lL, lerr)
Definition: usr_prop_mod.f:49
logical, dimension(dim_m) usr_difs
Definition: usr_prop_mod.f:18
double precision, dimension(:,:,:), allocatable dif_s
Definition: physprop_mod.f:116
Definition: run_mod.f:13
character(len=16) units
Definition: run_mod.f:30
integer, dimension(0:dim_m) nmax
Definition: physprop_mod.f:119
integer ijkstart3
Definition: compar_mod.f:80
subroutine calc_default_dif_solids(M)
Definition: calc_dif_s.f:54
double precision, dimension(:,:), allocatable rop_s
Definition: fldvar_mod.f:51
double precision, parameter zero
Definition: param1_mod.f:27
subroutine calc_dif_s(M)
Definition: calc_dif_s.f:13