15 integer,
intent(in) :: igrid
34 integer,
intent(in):: ixI^L,ix^L
35 double precision,
intent(inout) :: wB0(ixI^S,1:ndir)
36 double precision,
intent(in) :: x(ixI^S,1:ndim)
44 if (dabs(
bdip)>smalldouble)
then
45 wb0(ix^s,1)=2.0d0*
bdip*dcos(x(ix^s,2))/x(ix^s,1)**3
46 wb0(ix^s,2)=
bdip*dsin(x(ix^s,2))/x(ix^s,1)**3
49 if (abs(
bquad)>smalldouble)
then
50 wb0(ix^s,1)=wb0(ix^s,1) &
51 +
bquad*0.5d0*(1.0d0+3.0d0*dcos(2.0d0*x(ix^s,2)))/x(ix^s,1)**4
52 wb0(ix^s,2)=wb0(ix^s,2)+
bquad*dsin(2.0d0*x(ix^s,2))/x(ix^s,1)**4
54 if (abs(
boct)>smalldouble)
then
55 wb0(ix^s,1)=wb0(ix^s,1) &
56 +
boct*(10.0d0*dcos(2.0d0*x(ix^s,2))-2.0d0) &
57 *dcos(x(ix^s,2))/x(ix^s,1)**5
58 wb0(ix^s,2)=wb0(ix^s,2) &
59 +
boct*1.5d0*(3.0d0+5.0d0*dcos(2.0d0*x(ix^s,2))) &
60 *dsin(x(ix^s,2))/x(ix^s,1)**5
74 integer,
intent(in):: igrid,ixI^L,ix^L
75 double precision,
intent(inout) :: wJ0(ixI^S,7-2*ndir:3)
76 integer :: idirmin0, idirmin
82 call curlvector(ps(igrid)%B0(ixi^s,:,0),ixi^l,ix^l,wj0,idirmin,idirmin0,ndir)
90 integer,
intent(in) :: igrid, ixI^L, ixO^L
91 double precision,
intent(in) :: x(ixI^S,1:ndim)
93 double precision :: delx(ixI^S,1:ndim)
94 double precision :: xC(ixI^S,1:ndim),xshift^D
95 integer :: idims, ixC^L, hxO^L, ix, idims2
101 delx(ixi^s,1:ndim)=ps(igrid)%dx(ixi^s,1:ndim)
106 hxo^l=ixo^l-
kr(idims,^d);
112 ixcmax^d=ixomax^d; ixcmin^d=hxomin^d;
115 xshift^d=half*(one-
kr(^d,idims));
122 xc(ix^d%ixC^s,^d)=x(ix^d%ixC^s,^d)+(half-xshift^d)*delx(ix^d%ixC^s,^d)
126 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
integer, 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