USER_PROBLEM: Introduce parameter alpha for thickness scaling.

Parameter 'alpha' is the index of the scaling of the thickness of the
initial current sheet with the Lundquist number. Its default value of
1/2.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This commit is contained in:
Grzegorz Kowal 2023-03-15 16:40:34 -03:00
parent 1cd09d7c27
commit 7c65c0faa4

View File

@ -31,41 +31,42 @@ module user_problem
implicit none implicit none
real(kind=8), save :: beta = 1.00d+00 real(kind=8), save :: alpha = 5.00d-01
real(kind=8), save :: zeta = 0.00d+00 real(kind=8), save :: beta = 1.00d+00
real(kind=8), save :: eta = 0.00d+00 real(kind=8), save :: zeta = 0.00d+00
real(kind=8), save :: dens = 1.00d+00 real(kind=8), save :: eta = 0.00d+00
real(kind=8), save :: bamp = 1.00d+00 real(kind=8), save :: dens = 1.00d+00
real(kind=8), save :: bgui = 0.00d+00 real(kind=8), save :: bamp = 1.00d+00
real(kind=8), save :: bgui = 0.00d+00
real(kind=8), save :: pres = 5.00d-01 real(kind=8), save :: pres = 5.00d-01
real(kind=8), save :: pmag = 5.00d-01 real(kind=8), save :: pmag = 5.00d-01
real(kind=8), save :: ptot = 1.00d+00 real(kind=8), save :: ptot = 1.00d+00
real(kind=8), save :: valf = 1.00d+00 real(kind=8), save :: valf = 1.00d+00
real(kind=8), save :: lund = 1.00d+00 real(kind=8), save :: lund = 1.00d+00
real(kind=8), save :: dlta = 1.00d-16 real(kind=8), save :: dlta = 1.00d-16
real(kind=8), save :: tdec = 1.00d+00 real(kind=8), save :: tdec = 1.00d+00
integer , save :: pert = 0 integer , save :: pert = 0
integer , save :: nper = 10 integer , save :: nper = 10
real(kind=8), save :: bper = 0.00d+00 real(kind=8), save :: bper = 0.00d+00
real(kind=8), save :: vper = 0.00d+00 real(kind=8), save :: vper = 0.00d+00
real(kind=8), save :: kper = 1.00d+00 real(kind=8), save :: kper = 1.00d+00
real(kind=8), save :: kvec = 1.00d+00 real(kind=8), save :: kvec = 1.00d+00
real(kind=8), save :: xcut = 1.00d+99 real(kind=8), save :: xcut = 1.00d+99
real(kind=8), save :: ycut = 1.00d+99 real(kind=8), save :: ycut = 1.00d+99
real(kind=8), save :: xdec = 1.00d-01 real(kind=8), save :: xdec = 1.00d-01
real(kind=8), save :: ydec = 1.00d-01 real(kind=8), save :: ydec = 1.00d-01
real(kind=8), save :: ylo = -9.00d+99 real(kind=8), save :: ylo = -9.00d+99
real(kind=8), save :: yup = 9.00d+99 real(kind=8), save :: yup = 9.00d+99
real(kind=8), save :: tabs = 1.00d+00 real(kind=8), save :: tabs = 1.00d+00
real(kind=8), save :: adif = 5.00d-01 real(kind=8), save :: adif = 5.00d-01
real(kind=8), save :: acut = 1.00d+00 real(kind=8), save :: acut = 1.00d+00
real(kind=8), save :: adec = 1.00d+00 real(kind=8), save :: adec = 1.00d+00
real(kind=8), save :: yabs = 9.00d+99 real(kind=8), save :: yabs = 9.00d+99
integer(kind=4), save :: runit = 33 integer(kind=4), save :: runit = 33
@ -191,6 +192,17 @@ module user_problem
return return
end if end if
! get the index for the current sheet thickness scaling
!
call get_parameter("alpha", alpha)
if (alpha <= 0.0d+00) then
if (verbose) &
call print_message(loc, "Current sheet thickness scaling index " // &
"(alpha) must be larger than zero! " // &
"Resetting it to the default value of 1/2.")
alpha = 5.0d-01
end if
! calculate the maximum magnetic pressure, thermal pressure from the plasma-β ! calculate the maximum magnetic pressure, thermal pressure from the plasma-β
! parameters, and the sound speed in the case of isothermal equations of state ! parameters, and the sound speed in the case of isothermal equations of state
! !
@ -201,7 +213,7 @@ module user_problem
csnd = sqrt(csnd2) csnd = sqrt(csnd2)
valf = sqrt(2.0d+00 * pmag / dens) valf = sqrt(2.0d+00 * pmag / dens)
lund = valf / max(tiny(eta), eta) lund = valf / max(tiny(eta), eta)
dlta = lund**(- 1.0d+00 / 3.0d+00) dlta = lund**(-alpha)
! fill up the boundary values ! fill up the boundary values
! !