Merge branch 'master' into gem-reconnection-challenge

This commit is contained in:
Grzegorz Kowal 2022-11-27 16:00:41 -03:00
commit d9101794bc
2 changed files with 32 additions and 5 deletions

View File

@ -19,7 +19,7 @@ following features are already implemented:
* high order reconstructions: from 2nd to 9th order WENO and MP, both explicit
and compact methods, the 2nd order TVD interpolation has a number of limiters
supported,
* Riemann solvers of Roe- and HLL-types (HLL, HLLC, and HLLD),
* Riemann solvers of KEPES-, Roe- and HLL-types (HLL, HLLC, and HLLD),
* standard boundary conditions: periodic, open, reflective, hydrostatic, etc.
* turbulence driving using Alvelius or OrnsteinUhlenbeck methods,
* viscous and resistive source terms,

View File

@ -96,7 +96,7 @@ module forcing
real(kind=8), save :: fpower = 1.0d+00
real(kind=8), save :: lscale = 5.0d-01
real(kind=8), save :: tscale = 1.0d+00
real(kind=8), save :: vscale = 5.0d-01
real(kind=8), save :: vscale = 0.0d+00
real(kind=8), save :: ascale = 5.0d-01
real(kind=8), save :: kf = 2.0d+00
real(kind=8), save :: kl = 0.0d+00
@ -274,6 +274,15 @@ module forcing
end if
tscale = 1.0d+00
end if
call get_parameter("driving_velocity", vscale)
if (vscale < 0.0d+00) then
if (verbose) then
write(*,*)
write(*,wfmt) "'driving_velocity' must be positive!"
write(*,wfmt) "Resetting it to the default value: 0.0!"
end if
vscale = 0.0d+00
end if
case("Alvelius", "alvelius", "al")
forcing_enabled = .true.
@ -292,6 +301,15 @@ module forcing
end if
fpower = 1.0d+00
end if
call get_parameter("driving_velocity", vscale)
if (vscale < 0.0d+00) then
if (verbose) then
write(*,*)
write(*,wfmt) "'driving_velocity' must be positive!"
write(*,wfmt) "Resetting it to the default value: 0.0!"
end if
vscale = 0.0d+00
end if
case default
injection_method = injection_none
@ -706,7 +724,11 @@ module forcing
! instantenous injection rate)
!
lscale = 1.0d+00 / kf
vscale = lscale / tscale
if (vscale > 0.0d+00) then
tscale = lscale / vscale
else
vscale = lscale / tscale
end if
ascale = sqrt(2.0d+00) * lscale / tscale**2 / sqrt(tscale)
fpower = vscale**2 / tscale
@ -742,8 +764,13 @@ module forcing
! get the characteristic driving length, velocity, time, and acceleration scales
!
lscale = 1.0d+00 / kf
tscale = sqrt(lscale / sqrt(2.0d+00 * fpower))
vscale = lscale / tscale
if (vscale > 0.0d+00) then
tscale = lscale / vscale
fpower = 5.0d-01 * (vscale**2 / lscale)**2
else
tscale = sqrt(lscale / sqrt(2.0d+00 * fpower))
vscale = lscale / tscale
end if
ascale = vscale / tscale
! normalize the driving amplitude profile to the driving power