23 LOGICAL,
INTENT(INOUT) :: FORCE_NSEARCH
26 INTEGER :: LC, LP, NP, M
27 INTEGER :: BCV, BCV_I, IDX
29 DOUBLE PRECISION :: SGN
30 DOUBLE PRECISION :: DIST
33 DOUBLE PRECISION :: FREEZE(3)
42 CASE(
'N'); freeze = (/0.0d0, 1.0d0, 0.0d0/); idx=2; sgn=-1.0d0
43 CASE(
'S'); freeze = (/0.0d0, 1.0d0, 0.0d0/); idx=2; sgn= 1.0d0
44 CASE(
'E'); freeze = (/1.0d0, 0.0d0, 0.0d0/); idx=1; sgn=-1.0d0
45 CASE(
'W'); freeze = (/1.0d0, 0.0d0, 0.0d0/); idx=1; sgn= 1.0d0
46 CASE(
'T'); freeze = (/0.0d0, 0.0d0, 1.0d0/); idx=3; sgn=-1.0d0
47 CASE(
'B'); freeze = (/0.0d0, 0.0d0, 1.0d0/); idx=3; sgn= 1.0d0
56 IF(is_nonexistent(np)) cycle
57 IF(is_any_ghost(np)) cycle
58 IF(is_entering(np)) cycle
61 CASE(
'S'); dist = yn(
bc_j_s(bcv)-1) - des_pos_new(np,2)
62 CASE(
'N'); dist = des_pos_new(np,2) - yn(
bc_j_s(bcv))
63 CASE(
'W'); dist = xe(
bc_i_w(bcv)-1) - des_pos_new(np,1)
64 CASE(
'E'); dist = des_pos_new(np,1) - xe(
bc_i_w(bcv))
65 CASE(
'B'); dist = zt(
bc_k_b(bcv)-1) - des_pos_new(np,3)
66 CASE(
'T'); dist = des_pos_new(np,3) - zt(
bc_k_b(bcv))
70 IF(dist > des_radius(np))
THEN 74 ELSEIF(dist >
zero)
THEN 83 IF(des_vel_new(np,idx)*sgn > 0.0d0)
THEN 84 des_vel_new(np,:) = des_vel_new(np,:)*freeze(:)
86 IF (is_ghost(np))
THEN 87 CALL set_exiting_ghost(np)
98 des_vel_new(np,1) =
bc_u_s(bcv,m)
99 des_vel_new(np,2) =
bc_v_s(bcv,m)
100 des_vel_new(np,3) =
bc_w_s(bcv,m)
102 IF (is_ghost(np))
THEN 103 CALL set_exiting_ghost(np)
112 force_nsearch = .true.
151 INTEGER,
INTENT(IN) :: NP
158 CALL set_nonexistent(np)
160 des_pos_new(np,:) =
zero 161 des_vel_new(np,:) =
zero 162 omega_new(np,:) =
zero 164 IF(particle_orientation) orientation(1:3,np) = init_orientation
167 des_pos_old(np,:) =
zero 168 des_vel_old(np,:) =
zero 169 omega_old(np,:) =
zero 172 des_radius(np) =
zero 173 pmass(np) = huge(0.0)
183 wall_collision_facet_id(:,np) = -1
integer, dimension(dimension_bc) bc_k_b
integer, dimension(:), allocatable dem_bcmo_ijkstart
integer, dimension(:), allocatable dem_bcmo_ijk
integer, dimension(:), allocatable dem_bcmo_ijkend
subroutine mass_outflow_dem(FORCE_NSEARCH)
integer, dimension(dimension_bc) bc_i_w
double precision, dimension(dimension_bc, dim_m) bc_w_s
integer, dimension(dimension_bc) bc_type_enum
type(iap2), dimension(:), allocatable dg_pic
character, dimension(dimension_bc) bc_plane
integer, dimension(dimension_bc) bc_j_s
double precision, dimension(dimension_bc, dim_m) bc_v_s
double precision, dimension(dimension_bc, dim_m) bc_u_s
subroutine delete_particle(NP)
integer, dimension(dimension_bc) dem_bcmo_map
double precision, parameter zero