10 integer,
intent(in) :: igrid
27 integer,
intent(in):: ixI^L,ix^L
28 double precision,
intent(inout) :: wB0(ixI^S,1:ndir)
29 double precision,
intent(in) :: x(ixI^S,1:ndim)
37 if (dabs(
bdip)>smalldouble)
then
38 wb0(ix^s,1)=2.0d0*
bdip*dcos(x(ix^s,2))/x(ix^s,1)**3
39 wb0(ix^s,2)=
bdip*dsin(x(ix^s,2))/x(ix^s,1)**3
42 if (abs(
bquad)>smalldouble)
then
43 wb0(ix^s,1)=wb0(ix^s,1) &
44 +
bquad*0.5d0*(1.0d0+3.0d0*dcos(2.0d0*x(ix^s,2)))/x(ix^s,1)**4
45 wb0(ix^s,2)=wb0(ix^s,2)+
bquad*dsin(2.0d0*x(ix^s,2))/x(ix^s,1)**4
47 if (abs(
boct)>smalldouble)
then
48 wb0(ix^s,1)=wb0(ix^s,1) &
49 +
boct*(10.0d0*dcos(2.0d0*x(ix^s,2))-2.0d0) &
50 *dcos(x(ix^s,2))/x(ix^s,1)**5
51 wb0(ix^s,2)=wb0(ix^s,2) &
52 +
boct*1.5d0*(3.0d0+5.0d0*dcos(2.0d0*x(ix^s,2))) &
53 *dsin(x(ix^s,2))/x(ix^s,1)**5
65 integer,
intent(in):: igrid,ixI^L,ix^L
66 double precision,
intent(inout) :: wJ0(ixI^S,7-2*ndir:3)
67 integer :: idirmin0, idirmin
73 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)
95 hxo^l=ixo^l-
kr(idims,^d);
101 ixcmax^d=ixomax^d; ixcmin^d=hxomin^d;
104 xshift^d=half*(one-
kr(^d,idims));
111 xc(ix^d%ixC^s,^d)=x(ix^d%ixC^s,^d)+(half-xshift^d)*delx(ix^d%ixC^s,^d)
115 call set_b0_cell(ps(igrid)%B0(ixi^s,:,idims),xc,ixi^l,ixc^l)
subroutine, public set_b0_grid(igrid)
subroutine set_b0_cell(wB0, x, ixIL, ixL)
subroutine set_b0_face(igrid, x, ixIL, ixOL)
subroutine set_j0_cell(igrid, wJ0, ixIL, ixL)
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.
logical b0fieldalloccoarse
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
double precision, dimension(:), allocatable, parameter d
integer ixm
the mesh range of a physical block without 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)
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