;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; bbsections.pro ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Author: wd (Wolfgang.Dobler@ncl.ac.uk) ;;; Date: 25-Jul-2002 ;;; ;;; Description: ;;; Plot magnetic field in various sections ; ---------------------------------------------------------------------- ; pro _opstuff, r, LGRAVz=lgravz, lgravr=lgravr ; ; Overplot some lines or circles (needed repeatedly). Plot white on ; black, so lines can be distinguished on any background ; hline = 2 ; line style hcol1 = !p.background ; color1 hcol2 = !p.color ; color2 ; default, lgravz, 0L default, lgravr, 0L if (lgravr) then begin opcircle, r, LINE=hline, THICK=3, COLOR=hcol1 opcircle, r, LINE=hline, COLOR=hcol2 endif end ; ---------------------------------------------------------------------- ; s = texsyms() default, t_bb, -1e20 ; time of current bb if ((t_bb ne t) or (n_elements(bb) lt n_elements(aa))) then begin print, 'bb outdated.. recalculating' bb = curl(aa) t_bb = t endif default, absolute, 0 ; flag four absolute colour scaling (i.e. ; relative to absolute min and max of ; colour-represented data default, show_ghosts, 0 default, z1,0 ; possibly needed later default, z2,0 default, z3,0 if (par.r_ext gt 0.) then begin ; choose planes based on geometry nx0 = (where(abs(x) eq min(abs(x))))[0] ny0 = (where(abs(y) eq min(abs(y))))[0] nz0 = (where(abs(z) eq min(abs(z))))[0] nxi = nx0 + [-1, 0, 1]*0.7*par.r_ext/dx + 1 nyi = ny0 + [-1, 0, 1]*0.7*par.r_ext/dy + 1 nzi = nz0 + [-1, 0, 1]*0.7*par.r_ext/dz + 1 endif else begin ; choose plains based on grid nxi = [0.25,0.5,0.75]*mx nyi = [0.25,0.5,0.75]*my nzi = [0.25,0.5,0.75]*mz endelse ;; Sanitize nxi = nxi > 3 < (mx-4) nyi = nyi > 3 < (my-4) nzi = nzi > 3 < (mz-4) sxi = '!8x!6='+strtrim(x[nxi],2)+'!X' syi = '!8y!6='+strtrim(y[nyi],2)+'!X' szi = '!8z!6='+strtrim(z[nzi],2)+'!X' save_state wput !p.multi = [0,3,3] !p.charsize = 2 tit = '!17B!6 at ' !x.style = 1 !y.style = 1 if (show_ghosts) then begin xrange = [x[0], x[mx-1]] ; Include ghost zones yrange = [y[0], y[my-1]] zrange = [z[0], z[mz-1]] endif else begin xrange = [x[3], x[mx-4]] ; No ghost zones yrange = [y[3], y[my-4]] zrange = [z[3], z[mz-4]] endelse zrb = [-1,1]*max(sqrt(dot2(bb))) if (absolute) then begin zrbb = zrb endif else begin undefine, zrbb ; ZRANGE= is like no ZRANGE kw at all endelse !x.title = '!8y!X' !y.title = '!8z!X' for i=0,2 do begin pos = aspect_pos((zrange[1]-zrange[0])/(yrange[1]-yrange[0]),MARGIN=0.09) plot_3d_vect, bb[nxi[i],*,*,*], y, z, $ PERM=[1,2,0], /KEEP_CT, $ TITLE=tit+sxi[i]+'!X', $ XRANGE=yrange, XSTYLE=1, $ YRANGE=zrange, YSTYLE=1, $ ZRANGE=zrbb, $ POS=pos _opstuff, sqrt(1-x[nxi[i]]^2), $ LGRAVZ=lgravz, LGRAVR=lgravr endfor if (absolute) then begin zrbb = zrb endif else begin undefine, zrbb ; ZRANGE= is like no ZRANGE kw at all endelse !x.title = '!8x!X' !y.title = '!8z!X' for i=0,2 do begin pos = aspect_pos((zrange[1]-zrange[0])/(xrange[1]-xrange[0]),MARGIN=0.09) plot_3d_vect, bb[*,nyi[i],*,*], x, z, $ PERM=[0,2,1], /KEEP_CT, $ TITLE=tit+syi[i]+'!X', $ XRANGE=xrange, XSTYLE=1, $ YRANGE=zrange, YSTYLE=1, $ ZRANGE=zrbb, $ POS=pos _opstuff, sqrt(1-y[nyi[i]]^2), $ LGRAVZ=lgravz, LGRAVR=lgravr endfor if (absolute) then begin zrbb = zrb endif else begin undefine, zrbb ; ZRANGE= is like no ZRANGE kw at all endelse !x.title = '!8x!X' !y.title = '!8y!X' for i=0,2 do begin pos = aspect_pos((yrange[1]-yrange[0])/(xrange[1]-xrange[0]),MARGIN=0.09) plot_3d_vect, bb[*,*,nzi[i],*], x, y, $ PERM=[0,1,2], /KEEP_CT, $ TITLE=tit+szi[i]+'!X', $ XRANGE=xrange, XSTYLE=1, $ YRANGE=yrange, YSTYLE=1, $ ZRANGE=zrbb, $ POS=pos _opstuff, sqrt(1-z[nzi[i]]^2), $ LGRAVZ=lgravz, LGRAVR=lgravr endfor wget restore_state end ; End of file bbsections.pro