MFIX  2016-1
qmomk_initial_conditions.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Module name: QMOMK_INITIAL_CONDITIONS C
4 ! Author: Alberto Passalacqua Date: 30-Jul-08 C
5 ! Reviewer: Date: C
6 ! C
7 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
8 
9  SUBROUTINE qmomk_initial_conditions
10 
11 !-----------------------------------------------
12 ! M o d u l e s
13 !-----------------------------------------------
14  USE param
15  USE param1
16  USE constant
17  USE physprop
18  USE fldvar
19  USE geometry
20  USE compar
21  USE indices
25  USE ic
26  USE functions
27 
28  IMPLICIT NONE
29 
30  DOUBLE PRECISION InitVal
31  INTEGER :: I, M, IJK
32 
33  DO ijk = ijkstart3, ijkend3
34 
35  IF(.NOT.fluid_at(ijk)) cycle
36  DO m = 1, mmax
37  ! A.P.
38  ! Initializing weights as volume_fraction/number_of_nodes
39  ! Note that MFIX doesn't initialize the volume fraction in
40  ! boundaries, and QMOM need a positive value there.
41  ! Here the boundaries are not considered, and they will
42  ! be initialized separetely in the correspoding module
43 
44  DO i = 1, qmomk_nn
45  qmomk_n0(i, ijk, m) = rop_s(ijk, m)/(qmomk_nn * ro_s(ijk,m))
46  END DO
47 
48  ! A.P. Granular temperature minimum value is bounded
49  ! This is required by QMOM
50  initval = max(sqrt(theta_m(ijk,m)), minimum_theta)
51 
52  qmomk_u0(1, ijk, m) = -initval + u_s(ijk, m)
53  qmomk_u0(2, ijk, m) = +initval + u_s(ijk, m)
54  qmomk_u0(3, ijk, m) = -initval + u_s(ijk, m)
55  qmomk_u0(4, ijk, m) = +initval + u_s(ijk, m)
56  qmomk_u0(5, ijk, m) = -initval + u_s(ijk, m)
57  qmomk_u0(6, ijk, m) = +initval + u_s(ijk, m)
58  qmomk_u0(7, ijk, m) = -initval + u_s(ijk, m)
59  qmomk_u0(8, ijk, m) = +initval + u_s(ijk, m)
60 
61  qmomk_v0(1, ijk, m) = -initval + v_s(ijk, m)
62  qmomk_v0(2, ijk, m) = -initval + v_s(ijk, m)
63  qmomk_v0(3, ijk, m) = +initval + v_s(ijk, m)
64  qmomk_v0(4, ijk, m) = +initval + v_s(ijk, m)
65  qmomk_v0(5, ijk, m) = -initval + v_s(ijk, m)
66  qmomk_v0(6, ijk, m) = -initval + v_s(ijk, m)
67  qmomk_v0(7, ijk, m) = +initval + v_s(ijk, m)
68  qmomk_v0(8, ijk, m) = +initval + v_s(ijk, m)
69 
70  qmomk_w0(1, ijk, m) = -initval + w_s(ijk, m)
71  qmomk_w0(2, ijk, m) = -initval + w_s(ijk, m)
72  qmomk_w0(3, ijk, m) = -initval + w_s(ijk, m)
73  qmomk_w0(4, ijk, m) = -initval + w_s(ijk, m)
74  qmomk_w0(5, ijk, m) = +initval + w_s(ijk, m)
75  qmomk_w0(6, ijk, m) = +initval + w_s(ijk, m)
76  qmomk_w0(7, ijk, m) = +initval + w_s(ijk, m)
77  qmomk_w0(8, ijk, m) = +initval + w_s(ijk, m)
78  END DO
79  END DO
80 
81  DO ijk = ijkstart3, ijkend3
82  DO m = 1, mmax
83  IF (fluid_at(ijk)) THEN
84  CALL moments_twenty_eight_nodes (qmomk_n0(:,ijk,m), &
85  qmomk_u0(:,ijk,m), qmomk_v0(:,ijk,m), qmomk_w0(:,ijk,m), qmomk_m0(:,ijk,m))
86 
87  CALL eight_node_3d (qmomk_m0(:,ijk,m), qmomk_n0(:,ijk,m), &
88  qmomk_u0(:,ijk,m), qmomk_v0(:,ijk,m), qmomk_w0(:,ijk,m))
89 
90  CALL moments_twenty_eight_nodes (qmomk_n0(:,ijk,m), &
91  qmomk_u0(:,ijk,m), qmomk_v0(:,ijk,m), qmomk_w0(:,ijk,m), qmomk_m0(:,ijk,m))
92  END IF
93  END DO
94  END DO
95 
96  END SUBROUTINE qmomk_initial_conditions
double precision, dimension(:,:), allocatable v_s
Definition: fldvar_mod.f:105
subroutine, public moments_twenty_eight_nodes(n, u, v, w, mom)
subroutine qmomk_initial_conditions
integer ijkend3
Definition: compar_mod.f:80
double precision, dimension(:,:), allocatable w_s
Definition: fldvar_mod.f:117
double precision, dimension(:,:,:), allocatable qmomk_v0
double precision, dimension(:,:,:), allocatable qmomk_w0
double precision, dimension(:,:), allocatable u_s
Definition: fldvar_mod.f:93
Definition: ic_mod.f:9
integer mmax
Definition: physprop_mod.f:19
subroutine, public eight_node_3d(mom, n, u, v, w)
double precision, dimension(:,:,:), allocatable qmomk_n0
double precision, dimension(:,:), allocatable theta_m
Definition: fldvar_mod.f:149
double precision, parameter minimum_theta
Definition: param_mod.f:2
double precision, dimension(:,:), allocatable ro_s
Definition: fldvar_mod.f:45
integer ijkstart3
Definition: compar_mod.f:80
double precision, dimension(:,:), allocatable rop_s
Definition: fldvar_mod.f:51
double precision, dimension(:,:,:), allocatable qmomk_m0
integer, parameter qmomk_nn
double precision, dimension(:,:,:), allocatable qmomk_u0