mod_constrained_transport Module


Used by

  • module~~mod_constrained_transport~~UsedByGraph module~mod_constrained_transport mod_constrained_transport proc~improve_initial_condition improve_initial_condition proc~improve_initial_condition->module~mod_constrained_transport

Subroutines

public subroutine b_from_vector_potentialA(ixIsmin1, ixIsmin2, ixIsmin3, ixIsmax1, ixIsmax2, ixIsmax3, ixImin1, ixImin2, ixImin3, ixImax1, ixImax2, ixImax3, ixOmin1, ixOmin2, ixOmin3, ixOmax1, ixOmax2, ixOmax3, ws, x, A)

calculate magnetic field from vector potential A at cell edges

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ixIsmin1
integer, intent(in) :: ixIsmin2
integer, intent(in) :: ixIsmin3
integer, intent(in) :: ixIsmax1
integer, intent(in) :: ixIsmax2
integer, intent(in) :: ixIsmax3
integer, intent(in) :: ixImin1
integer, intent(in) :: ixImin2
integer, intent(in) :: ixImin3
integer, intent(in) :: ixImax1
integer, intent(in) :: ixImax2
integer, intent(in) :: ixImax3
integer, intent(in) :: ixOmin1
integer, intent(in) :: ixOmin2
integer, intent(in) :: ixOmin3
integer, intent(in) :: ixOmax1
integer, intent(in) :: ixOmax2
integer, intent(in) :: ixOmax3
double precision, intent(inout) :: ws(ixIsmin1:ixIsmax1,ixIsmin2:ixIsmax2,ixIsmin3:ixIsmax3,1:nws)
double precision, intent(in) :: x(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,1:ndim)
double precision, intent(inout) :: A(ixIsmin1:ixIsmax1,ixIsmin2:ixIsmax2,ixIsmin3:ixIsmax3,1:3)

public subroutine fake_advance(igrid, idimmin, idimmax, s)

fake advance a step to calculate magnetic field

Arguments

Type IntentOptional Attributes Name
integer :: igrid
integer :: idimmin
integer :: idimmax
type(state) :: s

public subroutine fake_update(ixImin1, ixImin2, ixImin3, ixImax1, ixImax2, ixImax3, s, fC, fE, dx1, dx2, dx3)

fake update magnetic field from vector potential

Arguments

Type IntentOptional Attributes Name
integer :: ixImin1
integer :: ixImin2
integer :: ixImin3
integer :: ixImax1
integer :: ixImax2
integer :: ixImax3
type(state) :: s
double precision :: fC(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,1:nwflux,1:ndim)
double precision :: fE(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,sdim:3)
double precision :: dx1
double precision :: dx2
double precision :: dx3

public subroutine recalculateB()

re-calculate the magnetic field from the vector potential in a completely divergency free way

Arguments

None

public subroutine reconstruct(ixImin1, ixImin2, ixImin3, ixImax1, ixImax2, ixImax3, ixCmin1, ixCmin2, ixCmin3, ixCmax1, ixCmax2, ixCmax3, idir, q, qL, qR)

Reconstruct scalar q within ixO^L to 1/2 dx in direction idir Return both left and right reconstructed values

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ixImin1
integer, intent(in) :: ixImin2
integer, intent(in) :: ixImin3
integer, intent(in) :: ixImax1
integer, intent(in) :: ixImax2
integer, intent(in) :: ixImax3
integer, intent(in) :: ixCmin1
integer, intent(in) :: ixCmin2
integer, intent(in) :: ixCmin3
integer, intent(in) :: ixCmax1
integer, intent(in) :: ixCmax2
integer, intent(in) :: ixCmax3
integer, intent(in) :: idir
double precision, intent(in) :: q(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3)
double precision, intent(out) :: qL(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3)
double precision, intent(out) :: qR(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3)