Skip to content

Commit a69e49f

Browse files
committed
wip remove macros
1 parent 0e3e05b commit a69e49f

File tree

3 files changed

+77
-70
lines changed

3 files changed

+77
-70
lines changed

examples/2D_shockbubble/case.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
"p": 0,
3636
"dt": dt,
3737
"t_step_start": 0,
38-
"t_step_stop": Nt,
39-
"t_step_save": int(Nt / 20.0),
38+
"t_step_stop": 1000,
39+
"t_step_save": 10,
4040
# Simulation Algorithm Parameters
4141
"num_patches": 3,
4242
"model_eqns": 2,

src/common/include/inline_boundary_conditions.fpp

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,3 @@
1-
#:def PRIM_GHOST_CELL_EXTRAPOLATION_BC(DEST, SRC)
2-
do i = 1, sys_size
3-
do j = 1, buff_size
4-
q_prim_vf(i)%sf(${DEST}$) = q_prim_vf(i)%sf(${SRC}$)
5-
end do
6-
end do
7-
#:enddef
8-
9-
#:def PRIM_SYMMETRY_BC(DIR,DEST,SRC)
10-
do j = 1, buff_size
11-
do i = 1, momxb + ${DIR}$-2
12-
q_prim_vf(i)%sf(${DEST}$) = q_prim_vf(i)%sf(${SRC}$)
13-
end do
14-
15-
q_prim_vf(momxb + ${DIR}$-1)%sf(${DEST}$) = &
16-
-q_prim_vf(momxb + ${DIR}$-1)%sf(${SRC}$)
17-
18-
do i = momxb + ${DIR}$, sys_size
19-
q_prim_vf(i)%sf(${DEST}$) = q_prim_vf(i)%sf(${SRC}$)
20-
end do
21-
22-
if (elasticity) then
23-
do i = 1, shear_BC_flip_num
24-
q_prim_vf(shear_BC_flip_indices(${DIR}$, i))%sf(${DEST}$) = &
25-
-q_prim_vf(shear_BC_flip_indices(${DIR}$, i))%sf(${SRC}$)
26-
end do
27-
end if
28-
29-
if (hyperelasticity) then
30-
q_prim_vf(xibeg + ${DIR}$-1)%sf(${DEST}$) = &
31-
-q_prim_vf(xibeg + ${DIR}$-1)%sf(${SRC}$)
32-
end if
33-
end do
34-
#:enddef
35-
36-
#:def PRIM_PERIODIC_BC(DEST, SRC)
37-
do i = 1, sys_size
38-
do j = 1, buff_size
39-
q_prim_vf(i)%sf(${DEST}$) = q_prim_vf(i)%sf(${SRC}$)
40-
end do
41-
end do
42-
#:enddef
43-
441
#:def PRIM_SLIP_WALL_BC(DIR,LOC)
452
#:if DIR == "x"
463
#:if LOC == "L"

src/common/m_boundary_common.fpp

Lines changed: 75 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -88,27 +88,27 @@ contains
8888
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:), intent(inout) :: pb, mv
8989

9090
integer :: i, j, k, l, q
91-
9291
!< x-direction
9392
if (bcxb >= 0) then
9493
call s_mpi_sendrecv_variables_buffers(q_prim_vf, pb, mv, 1, -1)
9594
else
9695
!$acc parallel loop collapse(2) gang vector default(present)
9796
do l = 0, p
9897
do k = 0, n
98+
print *, bc_type(1, -1)%sf(0, k, l)
9999
if (bc_type(1, -1)%sf(0, k, l) >= -13 .and. bc_type(1, -1)%sf(0, k, l) <= -3) then
100-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("-j,k,l","0,k,l")}$
100+
call s_ghost_cell_periodic(q_prim_vf, (/-j, k, l/), (/0,k,l/))
101101
elseif (bc_type(1, -1)%sf(0, k, l) == -2) then
102-
${PRIM_SYMMETRY_BC(1,"-j,k,l","j-1,k,l")}$
102+
call s_symmetry(q_prim_vf, 1, (/-j,k,l/), (/j-1,k,l/))
103103
elseif (bc_type(1, -1)%sf(0, k, l) == -1) then
104-
${PRIM_PERIODIC_BC("-j,k,l","m-(j-1),k,l")}$
104+
call s_ghost_cell_periodic(q_prim_vf, (/-j, k, l/), (/m - (j - 1), k, l/))
105105
elseif (bc_type(1, -1)%sf(0, k, l) == -15) then
106106
${PRIM_SLIP_WALL_BC("x","L")}$
107107
elseif (bc_type(1, -1)%sf(0, k, l) == -16) then
108108
${PRIM_NO_SLIP_WALL_BC("x","L")}$
109109
elseif (bc_type(1, -1)%sf(0, k, l) == -17) then
110110
#ifdef MFC_PRE_PROCESS
111-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("-j,k,l","0,k,l")}$
111+
call s_ghost_cell_periodic(q_prim_vf, (/-j, k, l/), (/0,k,l/))
112112
#else
113113
${PRIM_DIRICHLET_BC(1,-1,"-j,k,l","i,k,l")}$
114114
#endif
@@ -124,18 +124,18 @@ contains
124124
do l = 0, p
125125
do k = 0, n
126126
if (bc_type(1, 1)%sf(0, k, l) >= -13 .and. bc_type(1, 1)%sf(0, k, l) <= -3) then
127-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("m+j,k,l","m,k,l")}$
127+
call s_ghost_cell_periodic(q_prim_vf, (/m+j, k, l/), (/m,k,l/))
128128
elseif (bc_type(1, 1)%sf(0, k, l) == -2) then
129-
${PRIM_SYMMETRY_BC(1,"m+j,k,l","m - (j-1),k,l")}$
129+
call s_symmetry(q_prim_vf, 1, (/m+j,k,l/), (/m - (j-1),k,l/))
130130
elseif (bc_type(1, 1)%sf(0, k, l) == -1) then
131-
${PRIM_PERIODIC_BC("m+j,k,l","j-1,k,l")}$
131+
call s_ghost_cell_periodic(q_prim_vf, (/m+j, k, l/), (/j - 1, k, l/))
132132
elseif (bc_type(1, 1)%sf(0, k, l) == -15) then
133133
${PRIM_SLIP_WALL_BC("x","R")}$
134134
elseif (bc_type(1, 1)%sf(0, k, l) == -16) then
135135
${PRIM_NO_SLIP_WALL_BC("x","R")}$
136136
elseif (bc_type(1, 1)%sf(0, k, l) == -17) then
137137
#ifdef MFC_PRE_PROCESS
138-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("m+j,k,l","m,k,l")}$
138+
call s_ghost_cell_periodic(q_prim_vf, (/m+j, k, l/), (/m,k,l/))
139139
#else
140140
${PRIM_DIRICHLET_BC(1,1,"m+j,k,l","i,k,l")}$
141141
#endif
@@ -231,18 +231,18 @@ contains
231231
do l = 0, p
232232
do k = -buff_size, m + buff_size
233233
if (bc_type(2, -1)%sf(k, 0, l) >= -13 .and. bc_type(2, -1)%sf(k, 0, l) <= -3) then
234-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("k,-j,l","k,0,l")}$
234+
call s_ghost_cell_periodic(q_prim_vf, (/k, -j, l/), (/k,0,l/))
235235
elseif (bc_type(2, -1)%sf(k, 0, l) == -2) then
236-
${PRIM_SYMMETRY_BC(2,"k,-j,l","k,j-1,l")}$
236+
call s_symmetry(q_prim_vf, 2, (/k,-j,l/), (/k,j-1,l/))
237237
elseif (bc_type(2, -1)%sf(k, 0, l) == -1) then
238-
${PRIM_PERIODIC_BC("k,-j,l","k,n-(j-1),l")}$
238+
call s_ghost_cell_periodic(q_prim_vf, (/k, -j, l/), (/k, n - (j - 1), l/))
239239
elseif (bc_type(2, -1)%sf(k, 0, l) == -15) then
240240
${PRIM_SLIP_WALL_BC("y","L")}$
241241
elseif (bc_type(2, -1)%sf(k, 0, l) == -16) then
242242
${PRIM_NO_SLIP_WALL_BC("y","L")}$
243243
elseif (bc_type(2, -1)%sf(k, 0, l) == -17) then
244244
#ifdef MFC_PRE_PROCESS
245-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("k,-j,l","k,0,l")}$
245+
call s_ghost_cell_periodic(q_prim_vf, (/k, -j, l/), (/k,0,l/))
246246
#else
247247
${PRIM_DIRICHLET_BC(2,-1,"k,-j,l","k,i,l")}$
248248
#endif
@@ -258,18 +258,18 @@ contains
258258
do l = 0, p
259259
do k = -buff_size, m + buff_size
260260
if (bc_type(2, 1)%sf(k, 0, l) >= -13 .and. bc_type(2, 1)%sf(k, 0, l) <= -3) then
261-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("k,n+j,l","k,n,l")}$
261+
call s_ghost_cell_periodic(q_prim_vf, (/k, n+j, l/), (/k,n,l/))
262262
elseif (bc_type(2, 1)%sf(k, 0, l) == -2) then
263-
${PRIM_SYMMETRY_BC(2,"k,n+j,l","k,n - (j-1),l")}$
263+
call s_symmetry(q_prim_vf, 2, (/k,n+j,l/), (/k,n - (j-1),l/))
264264
elseif (bc_type(2, 1)%sf(k, 0, l) == -1) then
265-
${PRIM_PERIODIC_BC("k,n+j,l","k,j-1,l")}$
265+
call s_ghost_cell_periodic(q_prim_vf, (/k, n+j, l/), (/k, j - 1, l/))
266266
elseif (bc_type(2, 1)%sf(k, 0, l) == -15) then
267267
${PRIM_SLIP_WALL_BC("y","R")}$
268268
elseif (bc_type(2, 1)%sf(k, 0, l) == -16) then
269269
${PRIM_NO_SLIP_WALL_BC("y","R")}$
270270
elseif (bc_type(2, 1)%sf(k, 0, l) == -17) then
271271
#ifdef FMC_PRE_PROCESS
272-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("k,n+j,l","k,n,l")}$
272+
call s_ghost_cell_periodic(q_prim_vf, (/k, n+j, l/), (/k,n,l/))
273273
#else
274274
${PRIM_DIRICHLET_BC(2,1,"k,n+j,l","k,i,l")}$
275275
#endif
@@ -320,18 +320,18 @@ contains
320320
do l = -buff_size, n + buff_size
321321
do k = -buff_size, m + buff_size
322322
if (bc_type(3, -1)%sf(k, l, 0) >= -13 .and. bc_type(3, -1)%sf(k, l, 0) <= -3) then
323-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("k,l,-j","k,l,0")}$
323+
call s_ghost_cell_periodic(q_prim_vf, (/k, l, -j/), (/k,l,0/))
324324
elseif (bc_type(3, -1)%sf(k, l, 0) == -2) then
325-
${PRIM_SYMMETRY_BC(3,"k,l,-j","k,l,j-1")}$
325+
call s_symmetry(q_prim_vf, 3, (/k,l,-j/), (/k,l,j-1/))
326326
elseif (bc_type(3, -1)%sf(k, l, 0) == -1) then
327-
${PRIM_PERIODIC_BC("k,l,-j","k,l,p-(j-1)")}$
327+
call s_ghost_cell_periodic(q_prim_vf, (/k, l, -j/), (/k, l, p-(j-1)/))
328328
elseif (bc_type(3, -1)%sf(k, l, 0) == -15) then
329329
${PRIM_SLIP_WALL_BC("z","L")}$
330330
elseif (bc_type(3, -1)%sf(k, l, 0) == -16) then
331331
${PRIM_NO_SLIP_WALL_BC("z","L")}$
332332
elseif (bc_type(3, -1)%sf(k, l, 0) == -17) then
333333
#ifdef MFC_PRE_PROCESS
334-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("k,l,-j","k,l,0")}$
334+
call s_ghost_cell_periodic(q_prim_vf, (/k, l, -j/), (/k,l,0/))
335335
#else
336336
${PRIM_DIRICHLET_BC(3,-1,"k,l,-j","k,l,i")}$
337337
#endif
@@ -347,18 +347,18 @@ contains
347347
do l = -buff_size, n + buff_size
348348
do k = -buff_size, m + buff_size
349349
if (bc_type(3, 1)%sf(k, l, 0) >= -13 .and. bc_type(3, 1)%sf(k, l, 0) <= -3) then
350-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("k,l,p+j","k,l,p")}$
350+
call s_ghost_cell_periodic(q_prim_vf, (/k, l, p+j/), (/k,l,p/))
351351
elseif (bc_type(3, 1)%sf(k, l, 0) == -2) then
352-
${PRIM_SYMMETRY_BC(3,"k,l,p+j","k,l,p - (j-1)")}$
352+
call s_symmetry(q_prim_vf, 3, (/k,l,p+j/), (/k,l,p - (j-1)/))
353353
elseif (bc_type(3, 1)%sf(k, l, 0) == -1) then
354-
${PRIM_PERIODIC_BC("k,l,p+j","k,l,j-1")}$
354+
call s_ghost_cell_periodic(q_prim_vf, (/k, l, p+j/), (/k, l, j-1/))
355355
elseif (bc_type(3, 1)%sf(k, l, 0) == -15) then
356356
${PRIM_SLIP_WALL_BC("z","R")}$
357357
elseif (bc_type(3, 1)%sf(k, l, 0) == -16) then
358358
${PRIM_NO_SLIP_WALL_BC("z","R")}$
359359
elseif (bc_type(3, 1)%sf(k, l, 0) == -17) then
360360
#ifdef MFC_PRE_PROCESS
361-
${PRIM_GHOST_CELL_EXTRAPOLATION_BC("k,l,p+j","k,l,p")}$
361+
call s_ghost_cell_periodic(q_prim_vf, (/k, l, p+j/), (/k,l,p/))
362362
#else
363363
${PRIM_DIRICHLET_BC(3,1,"k,l,p+j","k,l,i")}$
364364
#endif
@@ -401,6 +401,56 @@ contains
401401

402402
end subroutine s_populate_variables_buffers
403403

404+
subroutine s_ghost_cell_periodic(q_prim_vf, dest, src)
405+
type(scalar_field), dimension(sys_size), intent(inout) :: q_prim_vf
406+
integer, dimension(3), intent(in) :: dest, src
407+
408+
integer :: i, j
409+
410+
do i = 1, sys_size
411+
do j = 1, buff_size
412+
q_prim_vf(i)%sf(dest(1), dest(2), dest(3)) = q_prim_vf(i)%sf(src(1), src(2), src(3))
413+
end do
414+
end do
415+
end subroutine s_ghost_cell_periodic
416+
417+
subroutine s_symmetry(q_prim_vf, dir, dest, src)
418+
type(scalar_field), dimension(sys_size), intent(inout) :: q_prim_vf
419+
integer, intent(in) :: dir
420+
integer, dimension(3), intent(in) :: dest, src
421+
422+
integer :: i, j
423+
424+
do j = 1, buff_size
425+
do i = 1, momxb + dir-2
426+
q_prim_vf(i)%sf(dest(1), dest(2), dest(3)) = q_prim_vf(i)%sf(src(1), src(2), src(3))
427+
end do
428+
429+
q_prim_vf(momxb + dir-1)%sf(dest(1), dest(2), dest(3)) = &
430+
-q_prim_vf(momxb + dir-1)%sf(src(1), src(2), src(3))
431+
432+
do i = momxb + dir, sys_size
433+
q_prim_vf(i)%sf(dest(1), dest(2), dest(3)) = q_prim_vf(i)%sf(src(1), src(2), src(3))
434+
end do
435+
436+
if (elasticity) then
437+
do i = 1, shear_BC_flip_num
438+
q_prim_vf(shear_BC_flip_indices(dir, i))%sf(dest(1), dest(2), dest(3)) = &
439+
-q_prim_vf(shear_BC_flip_indices(dir, i))%sf(src(1), src(2), src(3))
440+
end do
441+
end if
442+
443+
if (hyperelasticity) then
444+
q_prim_vf(xibeg + dir-1)%sf(dest(1), dest(2), dest(3)) = &
445+
-q_prim_vf(xibeg + dir-1)%sf(src(1), src(2), src(3))
446+
end if
447+
end do
448+
449+
end subroutine s_symmetry
450+
451+
452+
453+
404454
#ifdef MFC_SIMULATION
405455
subroutine s_populate_capillary_buffers(c_divs, bc_type)
406456

0 commit comments

Comments
 (0)