USER_PROBLEM: Adapt the sincos profile for the periodic box.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This commit is contained in:
Grzegorz Kowal 2024-08-16 16:30:31 -03:00
parent d62d29d0ed
commit ab481646b6

View File

@ -290,7 +290,7 @@ module user_problem
integer :: i, j, k
real(kind=8) :: r1, r2, bx, by, bz
real(kind=8), dimension(nn) :: x, y
real(kind=8), dimension(nn) :: snx, csx, sny, csy, thy, ch2
real(kind=8), dimension(nn) :: snx, csx, sny, csy, thy, shy
real(kind=8), dimension(nn,nn) :: az
!-------------------------------------------------------------------------------
@ -301,16 +301,19 @@ module user_problem
select case(profile)
case(2)
snx(:) = sin(pi * x(:))
csx(:) = cos(pi * x(:))
snx(:) = sin(pi * x(:))
csx(:) = cos(pi * x(:))
sny(:) = sin(pi2 * y(:))
csy(:) = cos(pi2 * y(:))
thy(:) = tanh(y(:) / dlta)
ch2(:) = cosh(y(:) / dlta)**2
thy(:) = tanh( y(:) / dlta) &
- tanh((y(:) + 1.0d+00) / dlta) &
+ 1.0d+00
shy(:) = tanh((y(:) + 1.0d+00) / dlta)**2 / dlta &
- tanh( y(:) / dlta)**2 / dlta
do j = 1, nn
do i = 1, nn
bx = bamp * csx(i) * (csy(j) * thy(j) + sny(j) / (pi2 * dlta * ch2(j)))
bx = bamp * csx(i) * (csy(j) * thy(j) + sny(j) * shy(j) / pi2)
by = bamp * 5.0d-01 * snx(i) * sny(j) * thy(j)
bz = sqrt(max(0.0d+00, bgui**2 + zeta * (bamp**2 - bx**2 - by**2)))