aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/BoostedFrame_module.F90
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Diagnostics/BoostedFrame_module.F90')
-rw-r--r--Source/Diagnostics/BoostedFrame_module.F90106
1 files changed, 0 insertions, 106 deletions
diff --git a/Source/Diagnostics/BoostedFrame_module.F90 b/Source/Diagnostics/BoostedFrame_module.F90
deleted file mode 100644
index 3bce1817e..000000000
--- a/Source/Diagnostics/BoostedFrame_module.F90
+++ /dev/null
@@ -1,106 +0,0 @@
-
-module warpx_boosted_frame_module
-
- use iso_c_binding
- use amrex_fort_module, only : amrex_real
- use constants, only : clight
-
- implicit none
-
-contains
-
-!
-! Given cell-centered data in the boosted reference frame of the simulation,
-! this transforms E and B in place so that the multifab now contains values
-! in the lab frame. This routine assumes that the simulation frame is moving
-! in the positive z direction with respect to the lab frame.
-!
- subroutine warpx_lorentz_transform_z(data, dlo, dhi, tlo, thi, gamma_boost, beta_boost) &
- bind(C, name="warpx_lorentz_transform_z")
-
- integer(c_int), intent(in) :: dlo(3), dhi(3)
- integer(c_int), intent(in) :: tlo(3), thi(3)
- real(amrex_real), intent(inout) :: data(dlo(1):dhi(1),dlo(2):dhi(2),dlo(3):dhi(3), 10)
- real(amrex_real), intent(in) :: gamma_boost, beta_boost
-
- integer i, j, k
- real(amrex_real) e_lab, b_lab, j_lab, r_lab
-
- do k = tlo(3), thi(3)
- do j = tlo(2), thi(2)
- do i = tlo(1), thi(1)
-
- ! Transform the transverse E and B fields. Note that ez and bz are not
- ! changed by the tranform.
- e_lab = gamma_boost * (data(i, j, k, 1) + beta_boost*clight*data(i, j, k, 5))
- b_lab = gamma_boost * (data(i, j, k, 5) + beta_boost*data(i, j, k, 1)/clight)
-
- data(i, j, k, 1) = e_lab
- data(i, j, k, 5) = b_lab
-
- e_lab = gamma_boost * (data(i, j, k, 2) - beta_boost*clight*data(i, j, k, 4))
- b_lab = gamma_boost * (data(i, j, k, 4) - beta_boost*data(i, j, k, 2)/clight)
-
- data(i, j, k, 2) = e_lab
- data(i, j, k, 4) = b_lab
-
- ! Transform the charge and current density. Only the z component of j is affected.
- j_lab = gamma_boost*(data(i, j, k, 9) + beta_boost*clight*data(i, j, k, 10))
- r_lab = gamma_boost*(data(i, j, k, 10) + beta_boost*data(i, j, k, 9)/clight)
-
- data(i, j, k, 9) = j_lab
- data(i, j, k, 10) = r_lab
-
- end do
- end do
- end do
-
- end subroutine warpx_lorentz_transform_z
-
- subroutine warpx_copy_slice_3d(lo, hi, tmp, tlo, thi, &
- buf, blo, bhi, ncomp, &
- i_boost, i_lab) &
- bind(C, name="warpx_copy_slice_3d")
-
- integer , intent(in) :: ncomp, i_boost, i_lab
- integer , intent(in) :: lo(3), hi(3)
- integer , intent(in) :: tlo(3), thi(3)
- integer , intent(in) :: blo(3), bhi(3)
- real(amrex_real), intent(inout) :: tmp(tlo(1):thi(1),tlo(2):thi(2),tlo(3):thi(3),ncomp)
- real(amrex_real), intent(inout) :: buf(blo(1):bhi(1),blo(2):bhi(2),blo(3):bhi(3),ncomp)
-
- integer n, i, j, k
-
- do n = 1, ncomp
- do j = lo(2), hi(2)
- do i = lo(1), hi(1)
- buf(i, j, i_lab, n) = tmp(i, j, i_boost, n)
- end do
- end do
- end do
-
- end subroutine warpx_copy_slice_3d
-
- subroutine warpx_copy_slice_2d(lo, hi, tmp, tlo, thi, &
- buf, blo, bhi, ncomp, &
- i_boost, i_lab) &
- bind(C, name="warpx_copy_slice_2d")
-
- integer , intent(in) :: ncomp, i_boost, i_lab
- integer , intent(in) :: lo(2), hi(2)
- integer , intent(in) :: tlo(2), thi(2)
- integer , intent(in) :: blo(2), bhi(2)
- real(amrex_real), intent(inout) :: tmp(tlo(1):thi(1),tlo(2):thi(2),ncomp)
- real(amrex_real), intent(inout) :: buf(blo(1):bhi(1),blo(2):bhi(2),ncomp)
-
- integer n, i, j, k
-
- do n = 1, ncomp
- do i = lo(1), hi(1)
- buf(i, i_lab, n) = tmp(i, i_boost, n)
- end do
- end do
-
- end subroutine warpx_copy_slice_2d
-
-end module warpx_boosted_frame_module