5 integer,
intent(in) :: igrid
24 integer,
intent(in):: ixI^L,ix^L
25 double precision,
intent(inout) :: wB0(ixI^S,1:ndir)
26 double precision,
intent(in) :: x(ixI^S,1:ndim)
34 if (dabs(
bdip)>smalldouble)
then
35 wb0(ix^s,1)=2.0d0*
bdip*dcos(x(ix^s,2))/x(ix^s,1)**3
36 wb0(ix^s,2)=
bdip*dsin(x(ix^s,2))/x(ix^s,1)**3
39 if (abs(
bquad)>smalldouble)
then
40 wb0(ix^s,1)=wb0(ix^s,1) &
41 +
bquad*0.5d0*(1.0d0+3.0d0*dcos(2.0d0*x(ix^s,2)))/x(ix^s,1)**4
42 wb0(ix^s,2)=wb0(ix^s,2)+
bquad*dsin(2.0d0*x(ix^s,2))/x(ix^s,1)**4
44 if (abs(
boct)>smalldouble)
then
45 wb0(ix^s,1)=wb0(ix^s,1) &
46 +
boct*(10.0d0*dcos(2.0d0*x(ix^s,2))-2.0d0) &
47 *dcos(x(ix^s,2))/x(ix^s,1)**5
48 wb0(ix^s,2)=wb0(ix^s,2) &
49 +
boct*1.5d0*(3.0d0+5.0d0*dcos(2.0d0*x(ix^s,2))) &
50 *dsin(x(ix^s,2))/x(ix^s,1)**5
64 integer,
intent(in):: igrid,ixI^L,ix^L
65 double precision,
intent(inout) :: wJ0(ixI^S,7-2*ndir:3)
66 integer :: idirmin0, idirmin
72 call curlvector(ps(igrid)%B0(ixi^s,:,0),ixi^l,ix^l,wj0,idirmin,idirmin0,ndir)
80 integer,
intent(in) :: igrid, ixI^L, ixO^L
81 double precision,
intent(in) :: x(ixI^S,1:ndim)
83 double precision :: delx(ixI^S,1:ndim)
84 double precision :: xC(ixI^S,1:ndim),xshift^D
85 integer :: idims, ixC^L, hxO^L, ix, idims2
91 delx(ixi^s,1:ndim)=ps(igrid)%dx(ixi^s,1:ndim)
96 hxo^l=ixo^l-
kr(idims,^d);
102 ixcmax^d=ixomax^d; ixcmin^d=hxomin^d;
105 xshift^d=half*(one-
kr(^d,idims));
112 xc(ix^d%ixC^s,^d)=x(ix^d%ixC^s,^d)+(half-xshift^d)*delx(ix^d%ixC^s,^d)
116 call set_b0_cell(ps(igrid)%B0(ixi^s,:,idims),xc,ixi^l,ixc^l)
Module with geometry-related routines (e.g., divergence, curl)
integer, parameter spherical
subroutine curlvector(qvec, ixIL, ixOL, curlvec, idirmin, idirmin0, ndir0, fourthorder)
Calculate curl of a vector qvec within ixL Options to employ standard second order CD evaluations use...
This module contains definitions of global parameters and variables and some generic functions/subrou...
integer ixghi
Upper index of grid block arrays.
integer, dimension(3, 3) kr
Kronecker delta tensor.
logical stagger_grid
True for using stagger grid.
double precision bdip
amplitude of background dipolar, quadrupolar, octupolar, user's field
integer, dimension(:), allocatable, parameter d
integer ixm
the mesh range (within a block with ghost cells)
double precision, dimension(:,:), allocatable rnode
Corner coordinates.
integer nghostcells
Number of ghost cells surrounding a grid.
logical slab_uniform
uniform Cartesian geometry or not (stretched Cartesian)
Magneto-hydrodynamics module.
logical, public, protected mhd_semirelativistic
Whether semirelativistic MHD equations (Gombosi 2002 JCP) are solved.
Module with all the methods that users can customize in AMRVAC.
procedure(set_j0), pointer usr_set_j0
procedure(set_b0), pointer usr_set_b0
subroutine set_b0_grid(igrid)
subroutine set_b0_cell(wB0, x, ixIL, ixL)
subroutine set_j0_cell(igrid, wJ0, ixIL, ixL)
subroutine set_b0_face(igrid, x, ixIL, ixOL)