From dc58f6686d806c3f225cae5bc422711195627c6a Mon Sep 17 00:00:00 2001 From: Grzegorz Kowal <grzegorz@amuncode.org> Date: Tue, 17 Feb 2015 17:16:37 -0200 Subject: [PATCH] PROBLEMS: Separate jet and ambient magnetic fields in jet problem. Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org> --- src/problems.F90 | 26 +++++++++++++++++++++----- src/shapes.F90 | 6 +++--- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/problems.F90 b/src/problems.F90 index 28e5ee6..a270e88 100644 --- a/src/problems.F90 +++ b/src/problems.F90 @@ -1288,9 +1288,10 @@ module problems ! real(kind=8), save :: djet = 1.00d-01 real(kind=8), save :: damb = 1.00d+01 + real(kind=8), save :: bamb = 1.00d-08 real(kind=8), save :: pres = 1.00d-02 - real(kind=8), save :: bphi = 1.00d-03 real(kind=8), save :: vjet = 0.99d+00 + real(kind=8), save :: bjet = 1.00d-03 real(kind=8), save :: ljet = 1.00d-00 real(kind=8), save :: rjet = 1.00d+00 real(kind=8), save :: rjet2 = 1.00d+00 @@ -1307,6 +1308,7 @@ module problems ! local arrays ! real(kind=8), dimension(nv,im) :: q, u + real(kind=8), dimension(nv) :: qj real(kind=8), dimension(im) :: x real(kind=8), dimension(jm) :: y real(kind=8), dimension(km) :: z @@ -1328,7 +1330,8 @@ module problems call get_parameter_real("djet" , djet) call get_parameter_real("damb" , damb) call get_parameter_real("pres" , pres) - call get_parameter_real("bphi" , bphi) + call get_parameter_real("bamb" , bamb) + call get_parameter_real("bjet" , bjet) call get_parameter_real("vjet" , vjet) call get_parameter_real("ljet" , ljet) call get_parameter_real("rjet" , rjet) @@ -1343,6 +1346,20 @@ module problems end if ! first call +! set the conditions inside the jet radius +! + qj(idn) = djet + if (ipr > 0) qj(ipr) = pres + qj(ivx) = vjet + qj(ivy) = 0.0d+00 + qj(ivz) = 0.0d+00 + if (ibx > 0) then + qj(ibx) = 0.0d+00 + qj(iby) = 0.0d+00 + qj(ibz) = bjet + qj(ibp) = 0.0d+00 + end if ! ibx > 0 + ! prepare block coordinates ! x(1:im) = pdata%meta%xmin + ax(pdata%meta%level,1:im) @@ -1381,7 +1398,7 @@ module problems if (ibx > 0) then q(ibx,1:im) = 0.0d+00 q(iby,1:im) = 0.0d+00 - q(ibz,1:im) = bphi + q(ibz,1:im) = bamb q(ibp,1:im) = 0.0d+00 end if ! ibx > 0 @@ -1390,8 +1407,7 @@ module problems if (rr <= max(rm, rjet2)) then do i = 1, im if (x(i) <= max(dx, ljet)) then - q(idn,i) = djet - q(ivx,i) = vjet + q(1:nv,i) = qj(1:nv) end if end do ! i = 1, im end if ! R < Rjet diff --git a/src/shapes.F90 b/src/shapes.F90 index 5fe4a91..7c2993d 100644 --- a/src/shapes.F90 +++ b/src/shapes.F90 @@ -583,8 +583,8 @@ module shapes ! real(kind=8), save :: djet = 1.00d-01 real(kind=8), save :: pres = 1.00d-02 - real(kind=8), save :: bphi = 1.00d-03 real(kind=8), save :: vjet = 0.99d+00 + real(kind=8), save :: bjet = 1.00d-03 real(kind=8), save :: ljet = 1.00d+00 real(kind=8), save :: rjet = 1.00d+00 real(kind=8), save :: rjet2 = 1.00d+00 @@ -622,8 +622,8 @@ module shapes ! call get_parameter_real("djet" , djet) call get_parameter_real("pres" , pres) - call get_parameter_real("bphi" , bphi) call get_parameter_real("ljet" , ljet) + call get_parameter_real("bjet" , bjet) call get_parameter_real("vjet" , vjet) call get_parameter_real("rjet" , rjet) @@ -647,7 +647,7 @@ module shapes if (ibx > 0) then qj(ibx) = 0.0d+00 qj(iby) = 0.0d+00 - qj(ibz) = bphi + qj(ibz) = bjet qj(ibp) = 0.0d+00 end if ! ibx > 0