MFIX  2016-1
mass_outflow_pic.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2 ! !
3 ! Subroutine: Mass_OUTFLOW_PIC !
4 ! Author: R. Garg Date: 23-Jun-14 !
5 ! !
6 ! Purpose: Routine to delete out of domain parcels for PIC !
7 ! implementation !
8 ! !
9 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
10  SUBROUTINE mass_outflow_pic
11 
12  USE error_manager
13  USE mpi_utility
14  use bc
15  use derived_types, only: pic
16  use discretelement
17  use functions
18  use pic_bc
19 
20  implicit none
21 
22  INTEGER :: IJK
23  INTEGER :: LC, LP, NP
24  INTEGER :: BCV, BCV_I
25 
26  DOUBLE PRECISION :: DIST
27 
28 
29  DO bcv_i = 1, pic_bcmo
30 
31  bcv = pic_bcmo_map(bcv_i)
32 
33  DO lc=pic_bcmo_ijkstart(bcv_i), pic_bcmo_ijkend(bcv_i)
34  ijk = pic_bcmo_ijk(lc)
35  DO lp= 1,pinc(ijk)
36 
37  np = pic(ijk)%p(lp)
38  IF(is_nonexistent(np)) cycle
39 
40  SELECT CASE (bc_plane(bcv))
41  CASE('S'); dist = yn(bc_j_s(bcv)-1) - des_pos_new(np,2)
42  CASE('N'); dist = des_pos_new(np,2) - yn(bc_j_s(bcv))
43  CASE('W'); dist = xe(bc_i_w(bcv)-1) - des_pos_new(np,1)
44  CASE('E'); dist = des_pos_new(np,1) - xe(bc_i_w(bcv))
45  CASE('B'); dist = zt(bc_k_b(bcv)-1) - des_pos_new(np,3)
46  CASE('T'); dist = des_pos_new(np,3) - zt(bc_k_b(bcv))
47  END SELECT
48 
49  IF(dist < des_radius(np)) CALL delete_parcel(np)
50 
51  ENDDO
52  ENDDO
53  ENDDO
54 
55 
56  RETURN
57  END SUBROUTINE mass_outflow_pic
58 
59 
60 
61 
62 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
63 ! !
64 ! Subroutine: DELETE_PARCEL !
65 ! Author: R. Garg Date: 23-Jun-14 !
66 ! !
67 ! Purpose: Routine to delete parcel !
68 ! !
69 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
70  SUBROUTINE delete_parcel(NP)
71 
72  USE compar
73  USE constant
74  USE des_bc
75  USE discretelement
76  USE funits
77  USE geometry
78  USE indices
79  USE param1
80  USE physprop
81  USE mfix_pic
82  USE functions
83 
84  IMPLICIT NONE
85 
86  INTEGER, INTENT(IN) :: NP
87 
88  CALL set_nonexistent(np)
89 
90  des_pos_old(np,:) = zero
91  des_pos_new(np,:) = zero
92  des_vel_old(np,:) = zero
93  des_vel_new(np,:) = zero
94  des_radius(np) = zero
95  pmass(np) = zero
96  pvol(np) = zero
97  ro_sol(np) = zero
98  omoi(np) = zero
99 
100  des_stat_wt(np) = zero
101 
102  fc(np,:) = zero
103 
104  pip = pip - 1
105 
106  RETURN
107  END SUBROUTINE delete_parcel
integer, dimension(dimension_bc) bc_k_b
Definition: bc_mod.f:70
subroutine mass_outflow_pic
integer, dimension(dimension_bc) bc_i_w
Definition: bc_mod.f:54
subroutine delete_parcel(NP)
integer, dimension(:), allocatable pic_bcmo_ijkstart
Definition: pic_bc_mod.f:28
character, dimension(dimension_bc) bc_plane
Definition: bc_mod.f:217
integer, dimension(dimension_bc) bc_j_s
Definition: bc_mod.f:62
integer, dimension(dimension_bc) pic_bcmo_map
Definition: pic_bc_mod.f:25
integer, dimension(:), allocatable pic_bcmo_ijk
Definition: pic_bc_mod.f:31
integer pic_bcmo
Definition: pic_bc_mod.f:19
type(iap1), dimension(:), allocatable pic
double precision, dimension(:), allocatable des_stat_wt
Definition: mfix_pic_mod.f:54
double precision, parameter zero
Definition: param1_mod.f:27
Definition: bc_mod.f:23
integer, dimension(:), allocatable pic_bcmo_ijkend
Definition: pic_bc_mod.f:29